diff --git a/dokuwiki/README b/dokuwiki/README index 35de49ab..4254de08 100644 --- a/dokuwiki/README +++ b/dokuwiki/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 +DokuWiki - 2004-2016 (c) Andreas Gohr and the DokuWiki Community See COPYING and file headers for license info diff --git a/dokuwiki/VERSION b/dokuwiki/VERSION index 0a86ba46..1bba9996 100644 --- a/dokuwiki/VERSION +++ b/dokuwiki/VERSION @@ -1 +1 @@ -2014-09-29d "Hrun" +2017-02-19e "Frusterick Manners" diff --git a/dokuwiki/bin/.htaccess b/dokuwiki/bin/.htaccess index 281d5c33..5f279f18 100644 --- a/dokuwiki/bin/.htaccess +++ b/dokuwiki/bin/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all + + Require all denied + + + Order allow,deny + Deny from all + diff --git a/dokuwiki/bin/dwpage.php b/dokuwiki/bin/dwpage.php index a777fd3e..1c1a1c10 100755 --- a/dokuwiki/bin/dwpage.php +++ b/dokuwiki/bin/dwpage.php @@ -28,7 +28,8 @@ class PageCLI extends DokuCLI { $options->registerOption( 'user', 'work as this user. defaults to current CLI user', - 'u' + 'u', + 'username' ); $options->setHelp( 'Utility to help command line Dokuwiki page editing, allow '. @@ -239,6 +240,7 @@ class PageCLI extends DokuCLI { if($this->force) $this->deleteLock($wiki_id); $_SERVER['REMOTE_USER'] = $this->username; + if(checklock($wiki_id)) { $this->error("Page $wiki_id is already locked by another user"); exit(1); @@ -246,8 +248,7 @@ class PageCLI extends DokuCLI { lock($wiki_id); - $_SERVER['REMOTE_USER'] = '_'.$this->username.'_'; - 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/dokuwiki/bin/gittool.php b/dokuwiki/bin/gittool.php index 6944dde5..cbadb5bf 100755 --- a/dokuwiki/bin/gittool.php +++ b/dokuwiki/bin/gittool.php @@ -101,7 +101,7 @@ class GitToolCLI extends DokuCLI { /** * Tries to install the given extensions using git clone * - * @param $extensions + * @param array $extensions */ public function cmd_clone($extensions) { $errors = array(); @@ -130,7 +130,7 @@ class GitToolCLI extends DokuCLI { /** * Tries to install the given extensions using git clone with fallback to install * - * @param $extensions + * @param array $extensions */ public function cmd_install($extensions) { $errors = array(); @@ -206,12 +206,13 @@ class GitToolCLI extends DokuCLI { * Install extension from the given download URL * * @param string $ext - * @return bool + * @return bool|null */ private function downloadExtension($ext) { /** @var helper_plugin_extension_extension $plugin */ $plugin = plugin_load('helper', 'extension_extension'); if(!$ext) die("extension plugin not available, can't continue"); + $plugin->setExtension($ext); $url = $plugin->getDownloadURL(); @@ -291,12 +292,13 @@ class GitToolCLI extends DokuCLI { * Returns the repository for the given extension * * @param $extension - * @return bool|string + * @return false|string */ private function getSourceRepo($extension) { /** @var helper_plugin_extension_extension $ext */ $ext = plugin_load('helper', 'extension_extension'); if(!$ext) die("extension plugin not available, can't continue"); + $ext->setExtension($extension); $repourl = $ext->getSourcerepoURL(); diff --git a/dokuwiki/bin/striplangs.php b/dokuwiki/bin/striplangs.php index 6335bc84..82d27d46 100755 --- a/dokuwiki/bin/striplangs.php +++ b/dokuwiki/bin/striplangs.php @@ -26,7 +26,8 @@ class StripLangsCLI extends DokuCLI { $options->registerOption( 'keep', 'Comma separated list of languages to keep in addition to English.', - 'k' + 'k', + 'langcodes' ); $options->registerOption( 'english-only', diff --git a/dokuwiki/bin/wantedpages.php b/dokuwiki/bin/wantedpages.php index 8fc4ba74..54bfd475 100755 --- a/dokuwiki/bin/wantedpages.php +++ b/dokuwiki/bin/wantedpages.php @@ -61,6 +61,13 @@ class WantedPagesCLI extends DokuCLI { } } + /** + * Determine directions of the search loop + * + * @param string $entry + * @param string $basepath + * @return int + */ protected function dir_filter($entry, $basepath) { if($entry == '.' || $entry == '..') { return WantedPagesCLI::DIR_CONTINUE; @@ -77,6 +84,13 @@ class WantedPagesCLI extends DokuCLI { return WantedPagesCLI::DIR_CONTINUE; } + /** + * Collects recursively the pages in a namespace + * + * @param string $dir + * @return array + * @throws DokuCLI_Exception + */ protected function get_pages($dir) { static $trunclen = null; if(!$trunclen) { @@ -108,6 +122,12 @@ class WantedPagesCLI extends DokuCLI { return $pages; } + /** + * Parse instructions and returns the non-existing links + * + * @param array $page array with page id and file path + * @return array + */ function internal_links($page) { global $conf; $instructions = p_get_instructions(file_get_contents($page['file'])); diff --git a/dokuwiki/conf/.htaccess b/dokuwiki/conf/.htaccess index bcc3ea0b..b3ffca59 100644 --- a/dokuwiki/conf/.htaccess +++ b/dokuwiki/conf/.htaccess @@ -1,3 +1,8 @@ ## no access to the conf directory -order allow,deny -deny from all + + Require all denied + + + Order allow,deny + Deny from all + diff --git a/dokuwiki/conf/dokuwiki.php b/dokuwiki/conf/dokuwiki.php index bdc9739d..5b725063 100644 --- a/dokuwiki/conf/dokuwiki.php +++ b/dokuwiki/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 @@ -149,7 +149,7 @@ $conf['compression'] = 'gz'; //compress old revisions: (0: off) ('gz // bz2 generates smaller files, but needs more cpu-power $conf['gzip_output'] = 0; //use gzip content encodeing for the output xhtml (if allowed by browser) $conf['compress'] = 1; //Strip whitespaces and comments from Styles and JavaScript? 1|0 -$conf['cssdatauri'] = 0; //Maximum byte size of small images to embed into CSS, won't work on IE<8 +$conf['cssdatauri'] = 512; //Maximum byte size of small images to embed into CSS, won't work on IE<8 $conf['send404'] = 0; //Send a HTTP 404 status for non existing pages? $conf['broken_iua'] = 0; //Platform with broken ignore_user_abort (IIS+CGI) 0|1 $conf['xsendfile'] = 0; //Use X-Sendfile (1 = lighttpd, 2 = standard) @@ -158,6 +158,7 @@ $conf['readdircache'] = 0; //time cache in second for the readdir /* Network Settings */ $conf['dnslookups'] = 1; //disable to disallow IP to hostname lookups +$conf['jquerycdn'] = 0; //use a CDN for delivering jQuery? // Proxy setup - if your Server needs a proxy to access the web set these $conf['proxy']['host'] = ''; $conf['proxy']['port'] = ''; diff --git a/dokuwiki/conf/interwiki.conf b/dokuwiki/conf/interwiki.conf index d961912e..2432f111 100644 --- a/dokuwiki/conf/interwiki.conf +++ b/dokuwiki/conf/interwiki.conf @@ -1,37 +1,41 @@ -# 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/dp/{URL}?tag=splitbrain-20 +amazon.de https://www.amazon.de/dp/{URL}?tag=splitbrain-21 +amazon.uk https://www.amazon.co.uk/dp/{URL} 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 links +# To support VoIP/SIP/TEL links callto callto://{NAME} - +tel tel:{NAME} diff --git a/dokuwiki/conf/license.php b/dokuwiki/conf/license.php index 89728ab5..30d409e2 100644 --- a/dokuwiki/conf/license.php +++ b/dokuwiki/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/dokuwiki/conf/mysql.conf.php.example b/dokuwiki/conf/mysql.conf.php.example index c67e77c4..8337f51b 100644 --- a/dokuwiki/conf/mysql.conf.php.example +++ b/dokuwiki/conf/mysql.conf.php.example @@ -56,7 +56,7 @@ $conf['plugin']['authmysql']['TablesToLock']= array("users", "users AS u","group * of the user. If the result table is empty or contains more than one * row, access will be denied. * - * The plugin accesses the password as 'pass' so a alias might be necessary. + * The plugin accesses the password as 'pass' so an alias might be necessary. * * Following patters will be replaced: * %{user} user name @@ -107,10 +107,10 @@ $conf['plugin']['authmysql']['getGroups'] = "SELECT name as `group` /* This statement should return a table containing all user login names * that meet certain filter criteria. The filter expressions will be added * case dependend by the plugin. At the end a sort expression will be added. - * Important is that this list contains no double entries fo a user. Each + * Important is that this list contains no double entries for a user. Each * user name is only allowed once in the table. * - * The login name will be accessed as 'user' to a alias might be neseccary. + * The login name will be accessed as 'user' to an alias might be neseccary. * No patterns will be replaced in this statement but following patters * will be replaced in the filter expressions: * %{user} in FilterLogin user's login name @@ -174,7 +174,7 @@ $conf['plugin']['authmysql']['delGroup'] = "DELETE FROM groups WHERE gid='%{gid}'"; /* This statement should return the database index of a given user name. - * The plugin will access the index with the name 'id' so a alias might be + * The plugin will access the index with the name 'id' so an alias might be * necessary. * following patters will be replaced: * %{user} user name @@ -240,7 +240,7 @@ $conf['plugin']['authmysql']['delUserGroup']= "DELETE FROM usergroup AND gid='%{gid}'"; /* This statement should return the database index of a given group name. - * The plugin will access the index with the name 'id' so a alias might + * The plugin will access the index with the name 'id' so an alias might * be necessary. * * Following patters will be replaced: diff --git a/dokuwiki/conf/wordblock.conf b/dokuwiki/conf/wordblock.conf index fc939a4d..3040fa08 100644 --- a/dokuwiki/conf/wordblock.conf +++ b/dokuwiki/conf/wordblock.conf @@ -2,16 +2,12 @@ # patches welcome # https?:\/\/(\S*?)(-side-effects|top|pharm|pill|discount|discount-|deal|price|order|now|best|cheap|cheap-|online|buy|buy-|sale|sell)(\S*?)(cialis|viagra|prazolam|xanax|zanax|soma|vicodin|zenical|xenical|meridia|paxil|prozac|claritin|allegra|lexapro|wellbutrin|zoloft|retin|valium|levitra|phentermine) -gay\s*sex -bi\s*sex -incest +https?:\/\/(\S*?)(bi\s*sex|gay\s*sex|fetish|incest|penis|\brape\b) zoosex gang\s*bang facials ladyboy -fetish \btits\b -\brape\b bolea\.com 52crystal baida\.org diff --git a/dokuwiki/data/.htaccess b/dokuwiki/data/.htaccess index 281d5c33..5f279f18 100644 --- a/dokuwiki/data/.htaccess +++ b/dokuwiki/data/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all + + Require all denied + + + Order allow,deny + Deny from all + diff --git a/dokuwiki/data/deleted.files b/dokuwiki/data/deleted.files index cac352c9..0188e1c9 100644 --- a/dokuwiki/data/deleted.files +++ b/dokuwiki/data/deleted.files @@ -2,27 +2,263 @@ # but were removed later. An up to date DokuWiki should not have any of # the files installed +# remove in 2017-02-19 +inc/SimplePie.php +inc/Tar.class.php +inc/ZipLib.class.php +inc/phpseclib/Crypt_AES.php +inc/phpseclib/Crypt_Rijndael.php +inc/phpseclib/update.sh +inc/phpseclib/LICENSE +inc/phpseclib/Crypt_Base.php +inc/phpseclib/Crypt_Hash.php +inc/phpseclib/Math_BigInteger.php +lib/scripts/jquery/jquery-migrate.js +lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png +lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png +lib/scripts/jquery/jquery-ui.js +lib/scripts/jquery/jquery.js +lib/tpl/dokuwiki/css/_admin.css + +# removed in 2016-06-26 +inc/cliopts.php +lib/tpl/dokuwiki/css/mixins.less + +# 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 +370,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 +654,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/dokuwiki/data/media/wiki/dokuwiki-128.png b/dokuwiki/data/media/wiki/dokuwiki-128.png index b2306ac9..f3f1d66b 100644 Binary files a/dokuwiki/data/media/wiki/dokuwiki-128.png and b/dokuwiki/data/media/wiki/dokuwiki-128.png differ diff --git a/dokuwiki/data/pages/playground/playground.txt b/dokuwiki/data/pages/playground/playground.txt new file mode 100644 index 00000000..a2274bda --- /dev/null +++ b/dokuwiki/data/pages/playground/playground.txt @@ -0,0 +1 @@ +====== PlayGround ====== diff --git a/dokuwiki/data/pages/wiki/dokuwiki.txt b/dokuwiki/data/pages/wiki/dokuwiki.txt index 0e08fdcd..29843e5c 100644 --- a/dokuwiki/data/pages/wiki/dokuwiki.txt +++ b/dokuwiki/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 ((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 ((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/dokuwiki/data/pages/wiki/syntax.txt b/dokuwiki/data/pages/wiki/syntax.txt index 86ad815e..089cf826 100644 --- a/dokuwiki/data/pages/wiki/syntax.txt +++ b/dokuwiki/data/pages/wiki/syntax.txt @@ -83,17 +83,22 @@ 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]]): + ==== Image Links ==== You can also use an image to link to another internal or external page by combining the syntax for links and [[#images_and_other_files|images]] (see below) like this: - [[http://www.php.net|{{wiki:dokuwiki-128.png}}]] + [[http://php.net|{{wiki:dokuwiki-128.png}}]] -[[http://www.php.net|{{wiki:dokuwiki-128.png}}]] +[[http://php.net|{{wiki:dokuwiki-128.png}}]] Please note: The image formatting is the only formatting syntax accepted in link names. @@ -131,12 +136,12 @@ Resize to given width: {{wiki:dokuwiki-128.png?50}} Resize to given width and height((when the aspect ratio of the given width and height doesn't match that of the image, it will be cropped to the new ratio before resizing)): {{wiki:dokuwiki-128.png?200x50}} -Resized external image: {{http://de3.php.net/images/php.gif?200x50}} +Resized external image: {{http://php.net/images/php.gif?200x50}} Real size: {{wiki:dokuwiki-128.png}} Resize to given width: {{wiki:dokuwiki-128.png?50}} Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}} - Resized external image: {{http://de3.php.net/images/php.gif?200x50}} + Resized external image: {{http://php.net/images/php.gif?200x50}} By using left or right whitespaces you can choose the alignment. @@ -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! + +I think we should do it + +> No we shouldn't + +>> Well, I say we should + +> Really? + +>> Yes! + +>>> Then lets do it! + 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 | @@ -481,10 +494,13 @@ echo ''; | author | show item authors names | | date | show item dates | | description| show the item description. If [[doku>config:htmlok|HTML]] is disabled all tags will be stripped | +| nosort | do not sort the items in the feed | | //n//[dhm] | refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours). | The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. [[wiki:DokuWiki]] will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells [[wiki:DokuWiki]] to re-render the page if it is more than //refresh period// since the page was last rendered. +By default the feed will be sorted by date, newest items first. You can sort it by oldest first using the ''reverse'' parameter, or display the feed as is with ''nosort''. + **Example:** {{rss>http://slashdot.org/index.rss 5 author date 1h }} diff --git a/dokuwiki/data/security.png b/dokuwiki/data/security.png index c4f1a977..cea639ec 100644 Binary files a/dokuwiki/data/security.png and b/dokuwiki/data/security.png differ diff --git a/dokuwiki/doku.php b/dokuwiki/doku.php index 13e33538..6811540b 100644 --- a/dokuwiki/doku.php +++ b/dokuwiki/doku.php @@ -8,13 +8,18 @@ * @global Input $INPUT */ -// update message version -$updateVersion = 46.4; +// update message version - always use a string to avoid localized floats! +$updateVersion = "49.5"; // xdebug_start_profiling(); if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/'); +// define all DokuWiki globals here (needed within test requests but also helps to keep track) +global $ACT, $INPUT, $QUERY, $ID, $REV, $DATE_AT, $IDX, + $DATE, $RANGE, $HIGH, $TEXT, $PRE, $SUF, $SUM, $INFO, $JSINFO; + + if(isset($_SERVER['HTTP_X_DOKUWIKI_DO'])) { $ACT = trim(strtolower($_SERVER['HTTP_X_DOKUWIKI_DO'])); } elseif(!empty($_REQUEST['idx'])) { @@ -57,7 +62,7 @@ if($DATE_AT) { } else { // check for UNIX Timestamp $date_parse = @date('Ymd',$DATE_AT); if(!$date_parse || $date_parse === '19700101') { - msg(sprintf($lang['unable_to_parse_date'], $DATE_AT)); + msg(sprintf($lang['unable_to_parse_date'], htmlspecialchars($DATE_AT))); $DATE_AT = null; } } @@ -72,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/dokuwiki/feed.php b/dokuwiki/feed.php index a63e2216..7b3b5e94 100644 --- a/dokuwiki/feed.php +++ b/dokuwiki/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']); @@ -218,7 +218,7 @@ function rss_buildItems(&$rss, &$data, $opt) { $date = $ditem['date']; } elseif ($ditem['media']) { $date = @filemtime(mediaFN($id)); - } elseif (@file_exists(wikiFN($id))) { + } elseif (file_exists(wikiFN($id))) { $date = @filemtime(wikiFN($id)); } elseif($meta['date']['modified']) { $date = $meta['date']['modified']; @@ -306,7 +306,7 @@ function rss_buildItems(&$rss, &$data, $opt) { $src_r = ''; $src_l = ''; - if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)), 300)) { + if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)), 300)) { $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id)); $src_r = ml($id, $more, true, '&', true); } @@ -355,7 +355,7 @@ function rss_buildItems(&$rss, &$data, $opt) { break; case 'html': if($ditem['media']) { - if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) { + if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)))) { $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id)); $src = ml($id, $more, true, '&', true); $content = ''.$id.''; @@ -386,7 +386,7 @@ function rss_buildItems(&$rss, &$data, $opt) { case 'abstract': default: if($ditem['media']) { - if($size = media_image_preview_size($id, false, new JpegMeta(mediaFN($id)))) { + if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)))) { $more = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id)); $src = ml($id, $more, true, '&', true); $content = ''.$id.''; diff --git a/dokuwiki/inc/.htaccess b/dokuwiki/inc/.htaccess index 2d9c357f..2b34c725 100644 --- a/dokuwiki/inc/.htaccess +++ b/dokuwiki/inc/.htaccess @@ -1,3 +1,8 @@ ## no access to the inc directory -order allow,deny -deny from all + + Require all denied + + + Order allow,deny + Deny from all + diff --git a/dokuwiki/inc/DifferenceEngine.php b/dokuwiki/inc/DifferenceEngine.php index 3c955cf8..de91a54f 100644 --- a/dokuwiki/inc/DifferenceEngine.php +++ b/dokuwiki/inc/DifferenceEngine.php @@ -14,6 +14,9 @@ class _DiffOp { var $orig; var $closing; + /** + * @return _DiffOp + */ function reverse() { trigger_error("pure virtual", E_USER_ERROR); } @@ -104,6 +107,21 @@ class _DiffOp_Change extends _DiffOp { */ class _DiffEngine { + var $xchanged = array(); + var $ychanged = array(); + var $xv = array(); + var $yv = array(); + var $xind = array(); + var $yind = array(); + var $seq; + var $in_seq; + var $lcs; + + /** + * @param array $from_lines + * @param array $to_lines + * @return _DiffOp[] + */ function diff($from_lines, $to_lines) { $n_from = count($from_lines); $n_to = count($to_lines); @@ -495,9 +513,9 @@ class Diff { * Constructor. * Computes diff between sequences of strings. * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) - * @param $to_lines array An array of strings. + * @param array $from_lines An array of strings. + * (Typically these are lines from a file.) + * @param array $to_lines An array of strings. */ function __construct($from_lines, $to_lines) { $eng = new _DiffEngine; @@ -512,8 +530,9 @@ class Diff { * * $diff = new Diff($lines1, $lines2); * $rev = $diff->reverse(); - * @return object A Diff object representing the inverse of the - * original diff. + * + * @return Diff A Diff object representing the inverse of the + * original diff. */ function reverse() { $rev = $this; @@ -631,19 +650,19 @@ class MappedDiff extends Diff { * case-insensitve diffs, or diffs which ignore * changes in white-space. * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) + * @param string[] $from_lines An array of strings. + * (Typically these are lines from a file.) * - * @param $to_lines array An array of strings. + * @param string[] $to_lines An array of strings. * - * @param $mapped_from_lines array This array should - * have the same size number of elements as $from_lines. - * The elements in $mapped_from_lines and - * $mapped_to_lines are what is actually compared - * when computing the diff. + * @param string[] $mapped_from_lines This array should + * have the same size number of elements as $from_lines. + * The elements in $mapped_from_lines and + * $mapped_to_lines are what is actually compared + * when computing the diff. * - * @param $mapped_to_lines array This array should - * have the same number of elements as $to_lines. + * @param string[] $mapped_to_lines This array should + * have the same number of elements as $to_lines. */ function __construct($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) { @@ -697,12 +716,13 @@ class DiffFormatter { /** * Format a diff. * - * @param $diff object A Diff object. + * @param Diff $diff A Diff object. * @return string The formatted output. */ function format($diff) { $xi = $yi = 1; + $x0 = $y0 = 0; $block = false; $context = array(); @@ -752,6 +772,13 @@ class DiffFormatter { return $this->_end_diff(); } + /** + * @param int $xbeg + * @param int $xlen + * @param int $ybeg + * @param int $ylen + * @param array $edits + */ function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) { $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen)); foreach ($edits as $edit) { @@ -779,6 +806,13 @@ class DiffFormatter { return $val; } + /** + * @param int $xbeg + * @param int $xlen + * @param int $ybeg + * @param int $ylen + * @return string + */ function _block_header($xbeg, $xlen, $ybeg, $ylen) { if ($xlen > 1) $xbeg .= "," . ($xbeg + $xlen - 1); @@ -788,6 +822,9 @@ class DiffFormatter { return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg; } + /** + * @param string $header + */ function _start_block($header) { echo $header; } @@ -896,6 +933,9 @@ class _HWLDF_WordAccumulator { $this->_tag = $new_tag; } + /** + * @param string $new_tag + */ function _flushLine($new_tag) { $this->_flushGroup($new_tag); if ($this->_line != '') @@ -1055,6 +1095,10 @@ class TableDiffFormatter extends DiffFormatter { $this->trailing_context_lines = 2; } + /** + * @param Diff $diff + * @return string + */ function format($diff) { // Preserve whitespaces by converting some to non-breaking spaces. // Do not convert all of them to allow word-wrap. @@ -1165,6 +1209,10 @@ class InlineDiffFormatter extends DiffFormatter { $this->trailing_context_lines = 2; } + /** + * @param Diff $diff + * @return string + */ function format($diff) { // Preserve whitespaces by converting some to non-breaking spaces. // Do not convert all of them to allow word-wrap. @@ -1233,5 +1281,241 @@ class InlineDiffFormatter extends DiffFormatter { } } +/** + * A class for computing three way diffs. + * + * @author Geoffrey T. Dairiki + */ +class Diff3 extends Diff { + + /** + * Conflict counter. + * + * @var integer + */ + var $_conflictingBlocks = 0; + + /** + * Computes diff between 3 sequences of strings. + * + * @param array $orig The original lines to use. + * @param array $final1 The first version to compare to. + * @param array $final2 The second version to compare to. + */ + function __construct($orig, $final1, $final2) { + $engine = new _DiffEngine(); + + $this->_edits = $this->_diff3($engine->diff($orig, $final1), + $engine->diff($orig, $final2)); + } + + /** + * Returns the merged lines + * + * @param string $label1 label for first version + * @param string $label2 label for second version + * @param string $label3 separator between versions + * @return array lines of the merged text + */ + function mergedOutput($label1='<<<<<<<',$label2='>>>>>>>',$label3='=======') { + $lines = array(); + foreach ($this->_edits as $edit) { + if ($edit->isConflict()) { + /* FIXME: this should probably be moved somewhere else. */ + $lines = array_merge($lines, + array($label1), + $edit->final1, + array($label3), + $edit->final2, + array($label2)); + $this->_conflictingBlocks++; + } else { + $lines = array_merge($lines, $edit->merged()); + } + } + + return $lines; + } + + /** + * @access private + */ + function _diff3($edits1, $edits2) { + $edits = array(); + $bb = new _Diff3_BlockBuilder(); + + $e1 = current($edits1); + $e2 = current($edits2); + while ($e1 || $e2) { + if ($e1 && $e2 && is_a($e1, '_DiffOp_copy') && is_a($e2, '_DiffOp_copy')) { + /* We have copy blocks from both diffs. This is the (only) + * time we want to emit a diff3 copy block. Flush current + * diff3 diff block, if any. */ + if ($edit = $bb->finish()) { + $edits[] = $edit; + } + + $ncopy = min($e1->norig(), $e2->norig()); + assert($ncopy > 0); + $edits[] = new _Diff3_Op_copy(array_slice($e1->orig, 0, $ncopy)); + + if ($e1->norig() > $ncopy) { + array_splice($e1->orig, 0, $ncopy); + array_splice($e1->closing, 0, $ncopy); + } else { + $e1 = next($edits1); + } + + if ($e2->norig() > $ncopy) { + array_splice($e2->orig, 0, $ncopy); + array_splice($e2->closing, 0, $ncopy); + } else { + $e2 = next($edits2); + } + } else { + if ($e1 && $e2) { + if ($e1->orig && $e2->orig) { + $norig = min($e1->norig(), $e2->norig()); + $orig = array_splice($e1->orig, 0, $norig); + array_splice($e2->orig, 0, $norig); + $bb->input($orig); + } + + if (is_a($e1, '_DiffOp_copy')) { + $bb->out1(array_splice($e1->closing, 0, $norig)); + } + + if (is_a($e2, '_DiffOp_copy')) { + $bb->out2(array_splice($e2->closing, 0, $norig)); + } + } + + if ($e1 && ! $e1->orig) { + $bb->out1($e1->closing); + $e1 = next($edits1); + } + if ($e2 && ! $e2->orig) { + $bb->out2($e2->closing); + $e2 = next($edits2); + } + } + } + + if ($edit = $bb->finish()) { + $edits[] = $edit; + } + + return $edits; + } +} + +/** + * @author Geoffrey T. Dairiki + * + * @access private + */ +class _Diff3_Op { + + function __construct($orig = false, $final1 = false, $final2 = false) { + $this->orig = $orig ? $orig : array(); + $this->final1 = $final1 ? $final1 : array(); + $this->final2 = $final2 ? $final2 : array(); + } + + function merged() { + if (!isset($this->_merged)) { + if ($this->final1 === $this->final2) { + $this->_merged = &$this->final1; + } elseif ($this->final1 === $this->orig) { + $this->_merged = &$this->final2; + } elseif ($this->final2 === $this->orig) { + $this->_merged = &$this->final1; + } else { + $this->_merged = false; + } + } + + return $this->_merged; + } + + function isConflict() { + return $this->merged() === false; + } + +} + +/** + * @author Geoffrey T. Dairiki + * + * @access private + */ +class _Diff3_Op_copy extends _Diff3_Op { + + function __construct($lines = false) { + $this->orig = $lines ? $lines : array(); + $this->final1 = &$this->orig; + $this->final2 = &$this->orig; + } + + function merged() { + return $this->orig; + } + + function isConflict() { + return false; + } +} + +/** + * @author Geoffrey T. Dairiki + * + * @access private + */ +class _Diff3_BlockBuilder { + + function __construct() { + $this->_init(); + } + + function input($lines) { + if ($lines) { + $this->_append($this->orig, $lines); + } + } + + function out1($lines) { + if ($lines) { + $this->_append($this->final1, $lines); + } + } + + function out2($lines) { + if ($lines) { + $this->_append($this->final2, $lines); + } + } + + function isEmpty() { + return !$this->orig && !$this->final1 && !$this->final2; + } + + function finish() { + if ($this->isEmpty()) { + return false; + } else { + $edit = new _Diff3_Op($this->orig, $this->final1, $this->final2); + $this->_init(); + return $edit; + } + } + + function _init() { + $this->orig = $this->final1 = $this->final2 = array(); + } + + function _append(&$array, $lines) { + array_splice($array, sizeof($array), 0, $lines); + } +} //Setup VIM: ex: et ts=4 : diff --git a/dokuwiki/inc/FeedParser.php b/dokuwiki/inc/FeedParser.php index 96d32e83..f3ce96c2 100644 --- a/dokuwiki/inc/FeedParser.php +++ b/dokuwiki/inc/FeedParser.php @@ -41,14 +41,17 @@ class FeedParser_File extends SimplePie_File { var $headers = array(); var $body; var $error; + /** @noinspection PhpMissingParentConstructorInspection */ /** * Inititializes the HTTPClient * * We ignore all given parameters - they are set in DokuHTTPClient + * + * @inheritdoc */ function __construct($url, $timeout=10, $redirects=5, - $headers=null, $useragent=null, $force_fsockopen=false) { + $headers=null, $useragent=null, $force_fsockopen=false, $curl_options = array()) { $this->http = new DokuHTTPClient(); $this->success = $this->http->sendRequest($url); @@ -61,14 +64,17 @@ class FeedParser_File extends SimplePie_File { return $this->success; } + /** @inheritdoc */ function headers(){ return $this->headers; } + /** @inheritdoc */ function body(){ return $this->body; } + /** @inheritdoc */ function close(){ return true; } diff --git a/dokuwiki/inc/Form/ButtonElement.php b/dokuwiki/inc/Form/ButtonElement.php new file mode 100644 index 00000000..77c30ed4 --- /dev/null +++ b/dokuwiki/inc/Form/ButtonElement.php @@ -0,0 +1,34 @@ + $name, 'value' => 1)); + $this->content = $content; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return ''; + } + +} diff --git a/dokuwiki/inc/Form/CheckableElement.php b/dokuwiki/inc/Form/CheckableElement.php new file mode 100644 index 00000000..27d5c2ea --- /dev/null +++ b/dokuwiki/inc/Form/CheckableElement.php @@ -0,0 +1,62 @@ +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/dokuwiki/inc/Form/DropdownElement.php b/dokuwiki/inc/Form/DropdownElement.php new file mode 100644 index 00000000..023b67dd --- /dev/null +++ b/dokuwiki/inc/Form/DropdownElement.php @@ -0,0 +1,190 @@ +rmattr('type'); + $this->optGroups[''] = new OptGroup(null, $options); + $this->val(''); + } + + /** + * Add an `` and respective options + * + * @param string $label + * @param array $options + * @return OptGroup a reference to the added optgroup + * @throws \Exception + */ + public function addOptGroup($label, $options) { + if (empty($label)) { + throw new \InvalidArgumentException(hsc(' must have a label!')); + } + $this->optGroups[$label] = new OptGroup($label, $options); + return end($this->optGroups); + } + + /** + * Set or get the optgroups of an Dropdown-Element. + * + * optgroups have to be given as associative array + * * the key being the label of the group + * * the value being an array of options as defined in @see OptGroup::options() + * + * @param null|array $optGroups + * @return OptGroup[]|DropdownElement + */ + public function optGroups($optGroups = null) { + if($optGroups === null) { + return $this->optGroups; + } + if (!is_array($optGroups)) { + throw new \InvalidArgumentException(hsc('Argument must be an associative array of label => [options]!')); + } + $this->optGroups = array(); + foreach ($optGroups as $label => $options) { + $this->addOptGroup($label, $options); + } + return $this; + } + + /** + * Get or set the options of the Dropdown + * + * Options can be given as associative array (value => label) or as an + * indexd array (label = value) or as an array of arrays. In the latter + * case an element has to look as follows: + * option-value => array ( + * 'label' => option-label, + * 'attrs' => array ( + * attr-key => attr-value, ... + * ) + * ) + * + * @param null|array $options + * @return $this|array + */ + public function options($options = null) { + if ($options === null) { + return $this->optGroups['']->options(); + } + $this->optGroups[''] = new OptGroup(null, $options); + return $this; + } + + /** + * 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) { + if(strtolower($name) == 'multiple') { + throw new \InvalidArgumentException('Sorry, the dropdown element does not support the "multiple" attribute'); + } + return parent::attr($name, $value); + } + + /** + * Get or set the current value + * + * When setting a value that is not defined in the options, the value is ignored + * and the first option's value is selected instead + * + * @param null|string $value The value to set + * @return $this|string + */ + public function val($value = null) { + if($value === null) return $this->value; + + $value_exists = $this->setValueInOptGroups($value); + + if($value_exists) { + $this->value = $value; + } else { + // unknown value set, select first option instead + $this->value = $this->getFirstOption(); + $this->setValueInOptGroups($this->value); + } + + return $this; + } + + /** + * Returns the first options as it will be rendered in HTML + * + * @return string + */ + protected function getFirstOption() { + $options = $this->options(); + if (!empty($options)) { + $keys = array_keys($options); + return (string) array_shift($keys); + } + foreach ($this->optGroups as $optGroup) { + $options = $optGroup->options(); + if (!empty($options)) { + $keys = array_keys($options); + return (string) array_shift($keys); + } + } + } + + /** + * Set the value in the OptGroups, including the optgroup for the options without optgroup. + * + * @param string $value + * @return bool + */ + protected function setValueInOptGroups($value) { + $value_exists = false; + /** @var OptGroup $optGroup */ + foreach ($this->optGroups as $optGroup) { + $value_exists = $optGroup->storeValue($value) || $value_exists; + if ($value_exists) { + $value = null; + } + } + return $value_exists; + } + + /** + * Create the HTML for the select it self + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + + $html = ''; + + return $html; + } + +} diff --git a/dokuwiki/inc/Form/Element.php b/dokuwiki/inc/Form/Element.php new file mode 100644 index 00000000..a357882e --- /dev/null +++ b/dokuwiki/inc/Form/Element.php @@ -0,0 +1,151 @@ +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 string $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/dokuwiki/inc/Form/FieldsetCloseElement.php b/dokuwiki/inc/Form/FieldsetCloseElement.php new file mode 100644 index 00000000..8f26717a --- /dev/null +++ b/dokuwiki/inc/Form/FieldsetCloseElement.php @@ -0,0 +1,30 @@ +type = 'fieldsetclose'; + } + + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return ''; + } +} diff --git a/dokuwiki/inc/Form/FieldsetOpenElement.php b/dokuwiki/inc/Form/FieldsetOpenElement.php new file mode 100644 index 00000000..a7de461f --- /dev/null +++ b/dokuwiki/inc/Form/FieldsetOpenElement.php @@ -0,0 +1,36 @@ +type = 'fieldsetopen'; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + $html = '
attrs()).'>'; + $legend = $this->val(); + if($legend) $html .= DOKU_LF.''.hsc($legend).''; + return $html; + } +} diff --git a/dokuwiki/inc/Form/Form.php b/dokuwiki/inc/Form/Form.php new file mode 100644 index 00000000..2d534aee --- /dev/null +++ b/dokuwiki/inc/Form/Form.php @@ -0,0 +1,439 @@ +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 string $name + * @param string $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 int $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 int $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 int $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 string $name + * @param string $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 string $name + * @param string $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 string $name + * @param string $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 string $name + * @param string $label + * @param int $pos + * @return CheckableElement + */ + public function addCheckbox($name, $label = '', $pos = -1) { + return $this->addElement(new CheckableElement('checkbox', $name, $label), $pos); + } + + /** + * Adds a dropdown field + * + * @param string $name + * @param array $options + * @param string $label + * @param int $pos + * @return DropdownElement + */ + public function addDropdown($name, $options, $label = '', $pos = -1) { + return $this->addElement(new DropdownElement($name, $options, $label), $pos); + } + + /** + * Adds a textarea field + * + * @param string $name + * @param string $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 string $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 string $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 string $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 string $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 string $tag + * @param int $pos + * @return TagCloseElement + */ + public function addTagClose($tag, $pos = -1) { + return $this->addElement(new TagCloseElement($tag), $pos); + } + + /** + * Open a Fieldset + * + * @param string $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 = '
attrs()) . '>'; + + foreach($this->hidden as $name => $value) { + $html .= ''; + } + + foreach($this->elements as $element) { + $html .= $element->toHTML(); + } + + $html .= '
'; + + return $html; + } +} diff --git a/dokuwiki/inc/Form/HTMLElement.php b/dokuwiki/inc/Form/HTMLElement.php new file mode 100644 index 00000000..591cf472 --- /dev/null +++ b/dokuwiki/inc/Form/HTMLElement.php @@ -0,0 +1,29 @@ +val(); + } +} diff --git a/dokuwiki/inc/Form/InputElement.php b/dokuwiki/inc/Form/InputElement.php new file mode 100644 index 00000000..0242b617 --- /dev/null +++ b/dokuwiki/inc/Form/InputElement.php @@ -0,0 +1,159 @@ + $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 = ''; + } + } + $this->val($value); + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return 'attrs()) . ' />'; + } + + /** + * The HTML representation of this element wrapped in a label + * + * @return string + */ + public function toHTML() { + if($this->label) { + return ''; + } else { + return $this->mainElementHTML(); + } + } +} diff --git a/dokuwiki/inc/Form/LabelElement.php b/dokuwiki/inc/Form/LabelElement.php new file mode 100644 index 00000000..9c8d5427 --- /dev/null +++ b/dokuwiki/inc/Form/LabelElement.php @@ -0,0 +1,27 @@ +attrs()) . '>' . $this->val() . ''; + } +} diff --git a/dokuwiki/inc/Form/LegacyForm.php b/dokuwiki/inc/Form/LegacyForm.php new file mode 100644 index 00000000..1b47ba20 --- /dev/null +++ b/dokuwiki/inc/Form/LegacyForm.php @@ -0,0 +1,181 @@ +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/dokuwiki/inc/Form/OptGroup.php b/dokuwiki/inc/Form/OptGroup.php new file mode 100644 index 00000000..fa0b516d --- /dev/null +++ b/dokuwiki/inc/Form/OptGroup.php @@ -0,0 +1,97 @@ + $label)); + $this->options($options); + } + + /** + * Store the given value so it can be used during rendering + * + * This is intended to be only called from within @see DropdownElement::val() + * + * @param string $value + * @return bool true if an option with the given value exists, false otherwise + */ + public function storeValue($value) { + $this->value = $value; + return isset($this->options[$value]); + } + + /** + * Get or set the options of the optgroup + * + * Options can be given as associative array (value => label) or as an + * indexd array (label = value) or as an array of arrays. In the latter + * case an element has to look as follows: + * option-value => array ( + * 'label' => option-label, + * 'attrs' => array ( + * attr-key => attr-value, ... + * ) + * ) + * + * @param null|array $options + * @return $this|array + */ + public function options($options = null) { + if($options === null) return $this->options; + if(!is_array($options)) throw new \InvalidArgumentException('Options have to be an array'); + $this->options = array(); + foreach($options as $key => $val) { + if (is_array($val)) { + if (!key_exists('label', $val)) throw new \InvalidArgumentException('If option is given as array, it has to have a "label"-key!'); + $this->options[$key] = $val; + } elseif(is_int($key)) { + $this->options[$val] = array('label' => (string) $val); + } else { + $this->options[$key] = array('label' => (string) $val); + } + } + return $this; + } + + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + if ($this->attributes['label'] === null) { + return $this->renderOptions(); + } + $html = 'attrs()) . '>'; + $html .= $this->renderOptions(); + $html .= ''; + return $html; + } + + + /** + * @return string + */ + protected function renderOptions() { + $html = ''; + foreach($this->options as $key => $val) { + $selected = ($key == $this->value) ? ' selected="selected"' : ''; + $attrs = ''; + if (!empty($val['attrs']) && is_array($val['attrs'])) { + $attrs = buildAttributes($val['attrs']); + } + $html .= '' . hsc($val['label']) . ''; + } + return $html; + } +} diff --git a/dokuwiki/inc/Form/TagCloseElement.php b/dokuwiki/inc/Form/TagCloseElement.php new file mode 100644 index 00000000..b6bf7536 --- /dev/null +++ b/dokuwiki/inc/Form/TagCloseElement.php @@ -0,0 +1,88 @@ +val().'>'; + } + +} diff --git a/dokuwiki/inc/Form/TagElement.php b/dokuwiki/inc/Form/TagElement.php new file mode 100644 index 00000000..ea5144c9 --- /dev/null +++ b/dokuwiki/inc/Form/TagElement.php @@ -0,0 +1,29 @@ +val().' '.buildAttributes($this->attrs()).' />'; + } +} diff --git a/dokuwiki/inc/Form/TagOpenElement.php b/dokuwiki/inc/Form/TagOpenElement.php new file mode 100644 index 00000000..0afe97b4 --- /dev/null +++ b/dokuwiki/inc/Form/TagOpenElement.php @@ -0,0 +1,30 @@ +val().' '.buildAttributes($this->attrs()).'>'; + } +} diff --git a/dokuwiki/inc/Form/TextareaElement.php b/dokuwiki/inc/Form/TextareaElement.php new file mode 100644 index 00000000..92741eec --- /dev/null +++ b/dokuwiki/inc/Form/TextareaElement.php @@ -0,0 +1,51 @@ +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 = cleanText($value); + return $this; + } + return $this->text; + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return ''; + } + +} diff --git a/dokuwiki/inc/Form/ValueElement.php b/dokuwiki/inc/Form/ValueElement.php new file mode 100644 index 00000000..88db167f --- /dev/null +++ b/dokuwiki/inc/Form/ValueElement.php @@ -0,0 +1,45 @@ +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/dokuwiki/inc/HTTPClient.php b/dokuwiki/inc/HTTPClient.php index cd4c7c4c..88a86c6b 100644 --- a/dokuwiki/inc/HTTPClient.php +++ b/dokuwiki/inc/HTTPClient.php @@ -57,6 +57,12 @@ class DokuHTTPClient extends HTTPClient { * @triggers HTTPCLIENT_REQUEST_SEND * @author Andreas Gohr */ + /** + * @param string $url + * @param string|array $data the post data either as array or raw data + * @param string $method + * @return bool + */ function sendRequest($url,$data='',$method='GET'){ $httpdata = array('url' => $url, 'data' => $data, @@ -104,7 +110,7 @@ class HTTPClient { var $header_regexp; // if set this RE must match against the headers, else abort var $headers; var $debug; - var $start = 0; // for timings + var $start = 0.0; // for timings var $keep_alive = true; // keep alive rocks // don't set these, read on error @@ -166,7 +172,8 @@ class HTTPClient { * * @param string $url The URL to fetch * @param bool $sloppy304 Return body on 304 not modified - * @return bool|string response body, false on error + * @return false|string response body, false on error + * * @author Andreas Gohr */ function get($url,$sloppy304=false){ @@ -187,7 +194,8 @@ class HTTPClient { * @param string $url The URL to fetch * @param array $data Associative array of parameters * @param bool $sloppy304 Return body on 304 not modified - * @return bool|string response body, false on error + * @return false|string response body, false on error + * * @author Andreas Gohr */ function dget($url,$data,$sloppy304=false){ @@ -207,7 +215,7 @@ class HTTPClient { * * @param string $url The URL to fetch * @param array $data Associative array of parameters - * @return bool|string response body, false on error + * @return false|string response body, false on error * @author Andreas Gohr */ function post($url,$data){ @@ -229,6 +237,7 @@ class HTTPClient { * @param mixed $data - the post data either as array or raw data * @param string $method - HTTP Method usually GET or POST. * @return bool - true on success + * * @author Andreas Goetz * @author Andreas Gohr */ @@ -263,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'; @@ -294,10 +305,15 @@ class HTTPClient { $data = $this->_postEncode($data); } } - $headers['Content-Length'] = strlen($data); }elseif($method == 'GET'){ $data = ''; //no data allowed on GET requests } + + $contentlength = strlen($data); + if($contentlength) { + $headers['Content-Length'] = $contentlength; + } + if($this->user) { $headers['Authorization'] = 'Basic '.base64_encode($this->user.':'.$this->pass); } @@ -580,10 +596,27 @@ class HTTPClient { $this->_debug('SSL Tunnel Response',$r_headers); if(preg_match('/^HTTP\/1\.[01] 200/i',$r_headers)){ - if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) { - $requesturl = $requestinfo['path']; + // set correct peer name for verification (enabled since PHP 5.6) + stream_context_set_option($socket, 'ssl', 'peer_name', $requestinfo['host']); + + // because SSLv3 is mostly broken, we try TLS connections here first. + // according to https://github.com/splitbrain/dokuwiki/commit/c05ef534 we had problems with certain + // 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']. + (!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']. + (!empty($requestinfo['query'])?'?'.$requestinfo['query']:''); + return true; + } + + throw new HTTPClientException('Failed to set up crypto for secure connection to '.$requestinfo['host'], -151); } throw new HTTPClientException('Failed to establish secure proxy connection', -150); @@ -596,6 +629,7 @@ class HTTPClient { * @param string $data The data to write * @param string $message Description of what is being read * @throws HTTPClientException + * * @author Tom N Harris */ function _sendData($socket, $data, $message) { @@ -640,6 +674,7 @@ class HTTPClient { * @param bool $ignore_eof End-of-file is not an error if this is set * @throws HTTPClientException * @return string + * * @author Tom N Harris */ function _readData($socket, $nbytes, $message, $ignore_eof = false) { @@ -689,6 +724,7 @@ class HTTPClient { * @param string $message Description of what is being read * @throws HTTPClientException * @return string + * * @author Tom N Harris */ function _readLine($socket, $message) { @@ -723,6 +759,9 @@ class HTTPClient { * Uses _debug_text or _debug_html depending on the SAPI name * * @author Andreas Gohr + * + * @param string $info + * @param mixed $var */ function _debug($info,$var=null){ if(!$this->debug) return; @@ -736,8 +775,8 @@ class HTTPClient { /** * print debug info as HTML * - * @param $info - * @param null $var + * @param string $info + * @param mixed $var */ function _debug_html($info, $var=null){ print ''.$info.' '.($this->_time() - $this->start).'s
'; @@ -753,8 +792,8 @@ class HTTPClient { /** * prints debug info as plain text * - * @param $info - * @param null $var + * @param string $info + * @param mixed $var */ function _debug_text($info, $var=null){ print '*'.$info.'* '.($this->_time() - $this->start)."s\n"; @@ -764,6 +803,8 @@ class HTTPClient { /** * Return current timestamp in microsecond resolution + * + * @return float */ static function _time(){ list($usec, $sec) = explode(" ", microtime()); @@ -776,6 +817,9 @@ class HTTPClient { * All Keys are lowercased. * * @author Andreas Gohr + * + * @param string $string + * @return array */ function _parseHeaders($string){ $headers = array(); @@ -804,6 +848,9 @@ class HTTPClient { * convert given header array to header string * * @author Andreas Gohr + * + * @param array $headers + * @return string */ function _buildHeaders($headers){ $string = ''; @@ -818,6 +865,8 @@ class HTTPClient { * get cookies as http header string * * @author Andreas Goetz + * + * @return string */ function _getCookies(){ $headers = ''; @@ -833,6 +882,9 @@ class HTTPClient { * Encode data for posting * * @author Andreas Gohr + * + * @param array $data + * @return string */ function _postEncode($data){ return http_build_query($data,'','&'); @@ -843,6 +895,9 @@ class HTTPClient { * * @fixme use of urlencode might be wrong here * @author Andreas Gohr + * + * @param array $data + * @return string */ function _postMultipartEncode($data){ $boundary = '--'.$this->boundary; diff --git a/dokuwiki/inc/IXR_Library.php b/dokuwiki/inc/IXR_Library.php index 979dc4d1..5ae1402b 100644 --- a/dokuwiki/inc/IXR_Library.php +++ b/dokuwiki/inc/IXR_Library.php @@ -1,101 +1,146 @@ */ - - class IXR_Value { + + /** @var IXR_Value[]|IXR_Date|IXR_Base64|int|bool|double|string */ var $data; + /** @var string */ var $type; - function IXR_Value ($data, $type = false) { + + /** + * @param mixed $data + * @param bool $type + */ + function __construct($data, $type = false) { $this->data = $data; - if (!$type) { + if(!$type) { $type = $this->calculateType(); } $this->type = $type; - if ($type == 'struct') { - /* Turn all the values in the array in to new IXR_Value objects */ - foreach ($this->data as $key => $value) { + if($type == 'struct') { + // Turn all the values in the array in to new IXR_Value objects + foreach($this->data as $key => $value) { $this->data[$key] = new IXR_Value($value); } } - if ($type == 'array') { - for ($i = 0, $j = count($this->data); $i < $j; $i++) { + if($type == 'array') { + for($i = 0, $j = count($this->data); $i < $j; $i++) { $this->data[$i] = new IXR_Value($this->data[$i]); } } } + + /** + * @return string + */ function calculateType() { - if ($this->data === true || $this->data === false) { + if($this->data === true || $this->data === false) { return 'boolean'; } - if (is_integer($this->data)) { + if(is_integer($this->data)) { return 'int'; } - if (is_double($this->data)) { + if(is_double($this->data)) { return 'double'; } + // Deal with IXR object types base64 and date - if (is_object($this->data) && is_a($this->data, 'IXR_Date')) { + if(is_object($this->data) && is_a($this->data, 'IXR_Date')) { return 'date'; } - if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) { + if(is_object($this->data) && is_a($this->data, 'IXR_Base64')) { return 'base64'; } - // If it is a normal PHP object convert it in to a struct - if (is_object($this->data)) { + // If it is a normal PHP object convert it in to a struct + if(is_object($this->data)) { $this->data = get_object_vars($this->data); return 'struct'; } - if (!is_array($this->data)) { + if(!is_array($this->data)) { return 'string'; } - /* We have an array - is it an array or a struct ? */ - if ($this->isStruct($this->data)) { + + // We have an array - is it an array or a struct? + if($this->isStruct($this->data)) { return 'struct'; } else { return 'array'; } } + + /** + * @return bool|string + */ function getXml() { - /* Return XML for this value */ - switch ($this->type) { + // Return XML for this value + switch($this->type) { case 'boolean': - return ''.(($this->data) ? '1' : '0').''; + return '' . (($this->data) ? '1' : '0') . ''; break; case 'int': - return ''.$this->data.''; + return '' . $this->data . ''; break; case 'double': - return ''.$this->data.''; + return '' . $this->data . ''; break; case 'string': - return ''.htmlspecialchars($this->data).''; + return '' . htmlspecialchars($this->data) . ''; break; case 'array': - $return = ''."\n"; - foreach ($this->data as $item) { - $return .= ' '.$item->getXml()."\n"; + $return = '' . "\n"; + foreach($this->data as $item) { + $return .= ' ' . $item->getXml() . "\n"; } $return .= ''; return $return; break; case 'struct': - $return = ''."\n"; - foreach ($this->data as $name => $value) { + $return = '' . "\n"; + foreach($this->data as $name => $value) { $return .= " $name"; - $return .= $value->getXml()."\n"; + $return .= $value->getXml() . "\n"; } $return .= ''; return $return; @@ -107,11 +152,17 @@ class IXR_Value { } return false; } + + /** + * Checks whether or not the supplied array is a struct or not + * + * @param array $array + * @return boolean + */ function isStruct($array) { - /* Nasty function to check if an array is a struct or not */ $expected = 0; - foreach ($array as $key => $value) { - if ((string)$key != (string)$expected) { + foreach($array as $key => $value) { + if((string) $key != (string) $expected) { return true; } $expected++; @@ -120,18 +171,25 @@ class IXR_Value { } } - +/** + * IXR_MESSAGE + * + * @package IXR + * @since 1.5 + * + */ class IXR_Message { var $message; - var $messageType; // methodCall / methodResponse / fault + var $messageType; // methodCall / methodResponse / fault var $faultCode; var $faultString; var $methodName; var $params; + // Current variable stacks - var $_arraystructs = array(); // The stack used to keep track of the current array/struct + var $_arraystructs = array(); // The stack used to keep track of the current array/struct var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array - var $_currentStructName = array(); // A stack as well + var $_currentStructName = array(); // A stack as well var $_param; var $_value; var $_currentTag; @@ -139,12 +197,23 @@ class IXR_Message { var $_lastseen; // The XML parser var $_parser; - function IXR_Message ($message) { - $this->message = $message; + + /** + * @param string $message + */ + function __construct($message) { + $this->message =& $message; } + + /** + * @return bool + */ function parse() { // first remove the XML declaration - $this->message = preg_replace('/<\?xml(.*)?\?'.'>/', '', $this->message); + // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages + $header = preg_replace('/<\?xml.*?\?' . '>/', '', substr($this->message, 0, 100), 1); + $this->message = substr_replace($this->message, $header, 0, 100); + // workaround for a bug in PHP/libxml2, see http://bugs.php.net/bug.php?id=45996 $this->message = str_replace('<', '<', $this->message); $this->message = str_replace('>', '>', $this->message); @@ -152,7 +221,7 @@ class IXR_Message { $this->message = str_replace(''', ''', $this->message); $this->message = str_replace('"', '"', $this->message); $this->message = str_replace("\x0b", ' ', $this->message); //vertical tab - if (trim($this->message) == '') { + if(trim($this->message) == '') { return false; } $this->_parser = xml_parser_create(); @@ -162,23 +231,40 @@ class IXR_Message { xml_set_object($this->_parser, $this); xml_set_element_handler($this->_parser, 'tag_open', 'tag_close'); xml_set_character_data_handler($this->_parser, 'cdata'); - if (!xml_parse($this->_parser, $this->message)) { - /* die(sprintf('XML error: %s at line %d', - xml_error_string(xml_get_error_code($this->_parser)), - xml_get_current_line_number($this->_parser))); */ - return false; - } + $chunk_size = 262144; // 256Kb, parse in chunks to avoid the RAM usage on very large messages + $final = false; + do { + if(strlen($this->message) <= $chunk_size) { + $final = true; + } + $part = substr($this->message, 0, $chunk_size); + $this->message = substr($this->message, $chunk_size); + if(!xml_parse($this->_parser, $part, $final)) { + return false; + } + if($final) { + break; + } + } while(true); xml_parser_free($this->_parser); + // Grab the error messages, if any - if ($this->messageType == 'fault') { + if($this->messageType == 'fault') { $this->faultCode = $this->params[0]['faultCode']; $this->faultString = $this->params[0]['faultString']; } return true; } + + /** + * @param $parser + * @param string $tag + * @param $attr + */ function tag_open($parser, $tag, $attr) { - $this->currentTag = $tag; $this->_currentTagContents = ''; + $this->_currentTag = $tag; + switch($tag) { case 'methodCall': case 'methodResponse': @@ -186,7 +272,7 @@ class IXR_Message { $this->messageType = $tag; break; /* Deal with stacks of arrays and structs */ - case 'data': // data is to all intents and puposes more interesting than array + case 'data': // data is to all intents and purposes more interesting than array $this->_arraystructstypes[] = 'array'; $this->_arraystructs[] = array(); break; @@ -197,50 +283,53 @@ class IXR_Message { } $this->_lastseen = $tag; } + + /** + * @param $parser + * @param string $cdata + */ function cdata($parser, $cdata) { $this->_currentTagContents .= $cdata; } + + /** + * @param $parser + * @param $tag + */ function tag_close($parser, $tag) { + $value = null; $valueFlag = false; switch($tag) { case 'int': case 'i4': - $value = (int)trim($this->_currentTagContents); - $this->_currentTagContents = ''; + $value = (int) trim($this->_currentTagContents); $valueFlag = true; break; case 'double': - $value = (double)trim($this->_currentTagContents); - $this->_currentTagContents = ''; + $value = (double) trim($this->_currentTagContents); $valueFlag = true; break; case 'string': - $value = (string)$this->_currentTagContents; - $this->_currentTagContents = ''; + $value = (string) $this->_currentTagContents; $valueFlag = true; break; case 'dateTime.iso8601': $value = new IXR_Date(trim($this->_currentTagContents)); - // $value = $iso->getTimestamp(); - $this->_currentTagContents = ''; $valueFlag = true; break; case 'value': // "If no type is indicated, the type is string." - if($this->_lastseen == 'value'){ - $value = (string)$this->_currentTagContents; - $this->_currentTagContents = ''; + if($this->_lastseen == 'value') { + $value = (string) $this->_currentTagContents; $valueFlag = true; } break; case 'boolean': - $value = (boolean)trim($this->_currentTagContents); - $this->_currentTagContents = ''; + $value = (boolean) trim($this->_currentTagContents); $valueFlag = true; break; case 'base64': $value = base64_decode($this->_currentTagContents); - $this->_currentTagContents = ''; $valueFlag = true; break; /* Deal with stacks of arrays and structs */ @@ -255,75 +344,94 @@ class IXR_Message { break; case 'name': $this->_currentStructName[] = trim($this->_currentTagContents); - $this->_currentTagContents = ''; break; case 'methodName': $this->methodName = trim($this->_currentTagContents); - $this->_currentTagContents = ''; break; } - if ($valueFlag) { - /* - if (!is_array($value) && !is_object($value)) { - $value = trim($value); - } - */ - if (count($this->_arraystructs) > 0) { + + if($valueFlag) { + if(count($this->_arraystructs) > 0) { // Add value to struct or array - if ($this->_arraystructstypes[count($this->_arraystructstypes)-1] == 'struct') { + if($this->_arraystructstypes[count($this->_arraystructstypes) - 1] == 'struct') { // Add to struct - $this->_arraystructs[count($this->_arraystructs)-1][$this->_currentStructName[count($this->_currentStructName)-1]] = $value; + $this->_arraystructs[count($this->_arraystructs) - 1][$this->_currentStructName[count($this->_currentStructName) - 1]] = $value; } else { // Add to array - $this->_arraystructs[count($this->_arraystructs)-1][] = $value; + $this->_arraystructs[count($this->_arraystructs) - 1][] = $value; } } else { - // Just add as a paramater + // Just add as a parameter $this->params[] = $value; } } + $this->_currentTagContents = ''; $this->_lastseen = $tag; } } - +/** + * IXR_Server + * + * @package IXR + * @since 1.5 + */ class IXR_Server { var $data; + /** @var array */ var $callbacks = array(); var $message; + /** @var array */ var $capabilities; - function IXR_Server($callbacks = false, $data = false) { + + /** + * @param array|bool $callbacks + * @param bool $data + * @param bool $wait + */ + function __construct($callbacks = false, $data = false, $wait = false) { $this->setCapabilities(); - if ($callbacks) { + if($callbacks) { $this->callbacks = $callbacks; } $this->setCallbacks(); - $this->serve($data); + + if(!$wait) { + $this->serve($data); + } } + + /** + * @param bool|string $data + */ function serve($data = false) { - if (!$data) { + if(!$data) { $postData = trim(http_get_raw_post_data()); - if (!$postData) { + if(!$postData) { + header('Content-Type: text/plain'); // merged from WP #9093 die('XML-RPC server accepts POST requests only.'); } $data = $postData; } $this->message = new IXR_Message($data); - if (!$this->message->parse()) { + if(!$this->message->parse()) { $this->error(-32700, 'parse error. not well formed'); } - if ($this->message->messageType != 'methodCall') { + if($this->message->messageType != 'methodCall') { $this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall'); } $result = $this->call($this->message->methodName, $this->message->params); + // Is the result an error? - if (is_a($result, 'IXR_Error')) { + if(is_a($result, 'IXR_Error')) { $this->error($result); } + // Encode the result $r = new IXR_Value($result); $resultxml = $r->getXml(); + // Create the XML $xml = << @@ -340,16 +448,23 @@ EOD; // Send it $this->output($xml); } + + /** + * @param string $methodname + * @param array $args + * @return IXR_Error|mixed + */ function call($methodname, $args) { - if (!$this->hasMethod($methodname)) { - return new IXR_Error(-32601, 'server error. requested method '.$methodname.' does not exist.'); + if(!$this->hasMethod($methodname)) { + return new IXR_Error(-32601, 'server error. requested method ' . $methodname . ' does not exist.'); } $method = $this->callbacks[$methodname]; + // Perform the callback and send the response # Removed for DokuWiki to have a more consistent interface # if (count($args) == 1) { - # // If only one paramater just send that instead of the whole array + # // If only one parameter just send that instead of the whole array # $args = $args[0]; # } @@ -359,16 +474,16 @@ EOD; $args = (array) $args; // Are we dealing with a function or a method? - if (substr($method, 0, 5) == 'this:') { + if(is_string($method) && substr($method, 0, 5) == 'this:') { // It's a class method - check it exists $method = substr($method, 5); - if (!method_exists($this, $method)) { - return new IXR_Error(-32601, 'server error. requested class method "'.$method.'" does not exist.'); + if(!method_exists($this, $method)) { + return new IXR_Error(-32601, 'server error. requested class method "' . $method . '" does not exist.'); } // Call the method #$result = $this->$method($args); - $result = call_user_func_array(array(&$this,$method),$args); - } elseif (substr($method, 0, 7) == 'plugin:') { + $result = call_user_func_array(array(&$this, $method), $args); + } elseif(substr($method, 0, 7) == 'plugin:') { list($pluginname, $callback) = explode(':', substr($method, 7), 2); if(!plugin_isdisabled($pluginname)) { $plugin = plugin_load('action', $pluginname); @@ -378,31 +493,49 @@ EOD; } } else { // It's a function - does it exist? - if (!function_exists($method)) { - return new IXR_Error(-32601, 'server error. requested function "'.$method.'" does not exist.'); + if(is_array($method)) { + if(!is_callable(array($method[0], $method[1]))) { + return new IXR_Error(-32601, 'server error. requested object method "' . $method[1] . '" does not exist.'); + } + } else if(!function_exists($method)) { + return new IXR_Error(-32601, 'server error. requested function "' . $method . '" does not exist.'); } + // Call the function - #$result = $method($args); - $result = call_user_func_array($method,$args); + $result = call_user_func($method, $args); } return $result; } + /** + * @param int $error + * @param string|bool $message + */ function error($error, $message = false) { // Accepts either an error object or an error code and message - if ($message && !is_object($error)) { + if($message && !is_object($error)) { $error = new IXR_Error($error, $message); } $this->output($error->getXml()); } + + /** + * @param string $xml + */ function output($xml) { header('Content-Type: text/xml; charset=utf-8'); echo '', "\n", $xml; exit; } + + /** + * @param string $method + * @return bool + */ function hasMethod($method) { return in_array($method, array_keys($this->callbacks)); } + function setCapabilities() { // Initialises capabilities array $this->capabilities = array( @@ -420,31 +553,45 @@ EOD; ), ); } + + /** + * @return mixed + */ function getCapabilities() { return $this->capabilities; } + function setCallbacks() { $this->callbacks['system.getCapabilities'] = 'this:getCapabilities'; $this->callbacks['system.listMethods'] = 'this:listMethods'; $this->callbacks['system.multicall'] = 'this:multiCall'; } + + /** + * @return array + */ function listMethods() { // Returns a list of methods - uses array_reverse to ensure user defined // methods are listed before server defined methods return array_reverse(array_keys($this->callbacks)); } + + /** + * @param array $methodcalls + * @return array + */ function multiCall($methodcalls) { // See http://www.xmlrpc.com/discuss/msgReader$1208 $return = array(); - foreach ($methodcalls as $call) { + foreach($methodcalls as $call) { $method = $call['methodName']; $params = $call['params']; - if ($method == 'system.multicall') { + if($method == 'system.multicall') { $result = new IXR_Error(-32800, 'Recursive calls to system.multicall are forbidden'); } else { $result = $this->call($method, $params); } - if (is_a($result, 'IXR_Error')) { + if(is_a($result, 'IXR_Error')) { $return[] = array( 'faultCode' => $result->code, 'faultString' => $result->message @@ -457,11 +604,25 @@ EOD; } } +/** + * IXR_Request + * + * @package IXR + * @since 1.5 + */ class IXR_Request { + /** @var string */ var $method; + /** @var array */ var $args; + /** @var string */ var $xml; - function IXR_Request($method, $args) { + + /** + * @param string $method + * @param array $args + */ + function __construct($method, $args) { $this->method = $method; $this->args = $args; $this->xml = << EOD; - foreach ($this->args as $arg) { + foreach($this->args as $arg) { $this->xml .= ''; $v = new IXR_Value($arg); $this->xml .= $v->getXml(); @@ -479,15 +640,28 @@ EOD; } $this->xml .= ''; } + + /** + * @return int + */ function getLength() { return strlen($this->xml); } + + /** + * @return string + */ function getXml() { return $this->xml; } } /** + * IXR_Client + * + * @package IXR + * @since 1.5 + * * Changed for DokuWiki to use DokuHTTPClient * * This should be compatible to the original class, but uses DokuWiki's @@ -498,19 +672,34 @@ EOD; */ class IXR_Client extends DokuHTTPClient { var $posturl = ''; + /** @var IXR_Message|bool */ var $message = false; + + // Storage place for an error message + /** @var IXR_Error|bool */ var $xmlerror = false; - function IXR_Client($server, $path = false, $port = 80) { + /** + * @param string $server + * @param string|bool $path + * @param int $port + * @param int $timeout + */ + function __construct($server, $path = false, $port = 80, $timeout = 15) { parent::__construct(); - if (!$path) { + if(!$path) { // Assume we have been given a URL instead $this->posturl = $server; - }else{ - $this->posturl = 'http://'.$server.':'.$port.$path; + } else { + $this->posturl = 'http://' . $server . ':' . $port . $path; } + $this->timeout = $timeout; } + /** + * parameters: method and arguments + * @return bool success or error + */ function query() { $args = func_get_args(); $method = array_shift($args); @@ -518,55 +707,87 @@ class IXR_Client extends DokuHTTPClient { $xml = $request->getXml(); $this->headers['Content-Type'] = 'text/xml'; - if(!$this->sendRequest($this->posturl,$xml,'POST')){ - $this->xmlerror = new IXR_Error(-32300, 'transport error - '.$this->error); + if(!$this->sendRequest($this->posturl, $xml, 'POST')) { + $this->xmlerror = new IXR_Error(-32300, 'transport error - ' . $this->error); return false; } // Check HTTP Response code - if($this->status < 200 || $this->status > 206){ - $this->xmlerror = new IXR_Error(-32300, 'transport error - HTTP status '.$this->status); + if($this->status < 200 || $this->status > 206) { + $this->xmlerror = new IXR_Error(-32300, 'transport error - HTTP status ' . $this->status); return false; } // Now parse what we've got back $this->message = new IXR_Message($this->resp_body); - if (!$this->message->parse()) { + if(!$this->message->parse()) { // XML error $this->xmlerror = new IXR_Error(-32700, 'parse error. not well formed'); return false; } + // Is the message a fault? - if ($this->message->messageType == 'fault') { + if($this->message->messageType == 'fault') { $this->xmlerror = new IXR_Error($this->message->faultCode, $this->message->faultString); return false; } + // Message must be OK return true; } + + /** + * @return mixed + */ function getResponse() { // methodResponses can only have one param - return that return $this->message->params[0]; } + + /** + * @return bool + */ function isError() { return (is_object($this->xmlerror)); } + + /** + * @return int + */ function getErrorCode() { return $this->xmlerror->code; } + + /** + * @return string + */ function getErrorMessage() { return $this->xmlerror->message; } } - +/** + * IXR_Error + * + * @package IXR + * @since 1.5 + */ class IXR_Error { var $code; var $message; - function IXR_Error($code, $message) { + + /** + * @param int $code + * @param string $message + */ + function __construct($code, $message) { $this->code = $code; - $this->message = $message; + $this->message = htmlspecialchars($message); } + + /** + * @return string + */ function getXml() { $xml = << @@ -591,67 +812,115 @@ EOD; } } - +/** + * IXR_Date + * + * @package IXR + * @since 1.5 + */ class IXR_Date { - var $year; - var $month; - var $day; - var $hour; - var $minute; - var $second; - function IXR_Date($time) { + + /** @var DateTime */ + protected $date; + + /** + * @param int|string $time + */ + public function __construct($time) { // $time can be a PHP timestamp or an ISO one - if (is_numeric($time)) { + if(is_numeric($time)) { $this->parseTimestamp($time); } else { $this->parseIso($time); } } - 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); + + /** + * Parse unix timestamp + * + * @param int $timestamp + */ + protected function parseTimestamp($timestamp) { + $this->date = new DateTime('@' . $timestamp); } - 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]; - } + + /** + * Parses less or more complete iso dates and much more, if no timezone given assumes UTC + * + * @param string $iso + */ + protected function parseIso($iso) { + $this->date = new DateTime($iso, new DateTimeZone("UTC")); } - function getIso() { - return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; + + /** + * Returns date in ISO 8601 format + * + * @return string + */ + public function getIso() { + return $this->date->format(DateTime::ISO8601); } - function getXml() { - return ''.$this->getIso().''; + + /** + * Returns date in valid xml + * + * @return string + */ + public function getXml() { + return '' . $this->getIso() . ''; } + + /** + * 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(); } } - +/** + * IXR_Base64 + * + * @package IXR + * @since 1.5 + */ class IXR_Base64 { var $data; - function IXR_Base64($data) { + + /** + * @param string $data + */ + function __construct($data) { $this->data = $data; } + + /** + * @return string + */ function getXml() { - return ''.base64_encode($this->data).''; + return '' . base64_encode($this->data) . ''; } } - +/** + * IXR_IntrospectionServer + * + * @package IXR + * @since 1.5 + */ class IXR_IntrospectionServer extends IXR_Server { + /** @var array[] */ var $signatures; + /** @var string[] */ var $help; - function IXR_IntrospectionServer() { + + /** + * Constructor + */ + function __construct() { $this->setCallbacks(); $this->setCapabilities(); $this->capabilities['introspection'] = array( @@ -683,82 +952,102 @@ class IXR_IntrospectionServer extends IXR_Server { 'Returns a documentation string for the specified method' ); } + + /** + * @param string $method + * @param string $callback + * @param string[] $args + * @param string $help + */ function addCallback($method, $callback, $args, $help) { $this->callbacks[$method] = $callback; $this->signatures[$method] = $args; $this->help[$method] = $help; } + + /** + * @param string $methodname + * @param array $args + * @return IXR_Error|mixed + */ function call($methodname, $args) { // Make sure it's in an array - if ($args && !is_array($args)) { + if($args && !is_array($args)) { $args = array($args); } + // Over-rides default call method, adds signature check - if (!$this->hasMethod($methodname)) { - return new IXR_Error(-32601, 'server error. requested method "'.$this->message->methodName.'" not specified.'); + if(!$this->hasMethod($methodname)) { + return new IXR_Error(-32601, 'server error. requested method "' . $this->message->methodName . '" not specified.'); } $method = $this->callbacks[$methodname]; $signature = $this->signatures[$methodname]; $returnType = array_shift($signature); // Check the number of arguments. Check only, if the minimum count of parameters is specified. More parameters are possible. // This is a hack to allow optional parameters... - if (count($args) < count($signature)) { + if(count($args) < count($signature)) { // print 'Num of args: '.count($args).' Num in signature: '.count($signature); return new IXR_Error(-32602, 'server error. wrong number of method parameters'); } + // Check the argument types $ok = true; $argsbackup = $args; - for ($i = 0, $j = count($args); $i < $j; $i++) { + for($i = 0, $j = count($args); $i < $j; $i++) { $arg = array_shift($args); $type = array_shift($signature); - switch ($type) { + switch($type) { case 'int': case 'i4': - if (is_array($arg) || !is_int($arg)) { + if(is_array($arg) || !is_int($arg)) { $ok = false; } break; case 'base64': case 'string': - if (!is_string($arg)) { + if(!is_string($arg)) { $ok = false; } break; case 'boolean': - if ($arg !== false && $arg !== true) { + if($arg !== false && $arg !== true) { $ok = false; } break; case 'float': case 'double': - if (!is_float($arg)) { + if(!is_float($arg)) { $ok = false; } break; case 'date': case 'dateTime.iso8601': - if (!is_a($arg, 'IXR_Date')) { + if(!is_a($arg, 'IXR_Date')) { $ok = false; } break; } - if (!$ok) { + if(!$ok) { return new IXR_Error(-32602, 'server error. invalid method parameters'); } } // It passed the test - run the "real" method call return parent::call($methodname, $argsbackup); } + + /** + * @param string $method + * @return array|IXR_Error + */ function methodSignature($method) { - if (!$this->hasMethod($method)) { - return new IXR_Error(-32601, 'server error. requested method "'.$method.'" not specified.'); + if(!$this->hasMethod($method)) { + return new IXR_Error(-32601, 'server error. requested method "' . $method . '" not specified.'); } // We should be returning an array of types $types = $this->signatures[$method]; $return = array(); - foreach ($types as $type) { - switch ($type) { + foreach($types as $type) { + switch($type) { case 'string': $return[] = 'string'; break; @@ -788,18 +1077,40 @@ class IXR_IntrospectionServer extends IXR_Server { } return $return; } + + /** + * @param string $method + * @return mixed + */ function methodHelp($method) { return $this->help[$method]; } } - +/** + * IXR_ClientMulticall + * + * @package IXR + * @since 1.5 + */ class IXR_ClientMulticall extends IXR_Client { + + /** @var array[] */ var $calls = array(); - function IXR_ClientMulticall($server, $path = false, $port = 80) { - parent::IXR_Client($server, $path, $port); + + /** + * @param string $server + * @param string|bool $path + * @param int $port + */ + function __construct($server, $path = false, $port = 80) { + parent::__construct($server, $path, $port); //$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)'; } + + /** + * Add a call + */ function addCall() { $args = func_get_args(); $methodName = array_shift($args); @@ -809,6 +1120,10 @@ class IXR_ClientMulticall extends IXR_Client { ); $this->calls[] = $struct; } + + /** + * @return bool + */ function query() { // Prepare multicall, then call the parent::query() method return parent::query('system.multicall', $this->calls); diff --git a/dokuwiki/inc/Input.class.php b/dokuwiki/inc/Input.class.php index 94da2a10..199994d8 100644 --- a/dokuwiki/inc/Input.class.php +++ b/dokuwiki/inc/Input.class.php @@ -83,7 +83,6 @@ class Input { * * @see isset * @param string $name Parameter name - * @return bool */ public function remove($name) { if(isset($this->access[$name])) { @@ -132,7 +131,7 @@ class Input { * @param string $name Parameter name * @param mixed $default If parameter is not set, initialize with this value * @param bool $nonempty Init with $default if parameter is set but empty() - * @return &mixed + * @return mixed (reference) */ public function &ref($name, $default = '', $nonempty = false) { if(!isset($this->access[$name]) || ($nonempty && empty($this->access[$name]))) { @@ -146,7 +145,7 @@ class Input { * Access a request parameter as int * * @param string $name Parameter name - * @param mixed $default Default to return if parameter isn't set or is an array + * @param int $default Default to return if parameter isn't set or is an array * @param bool $nonempty Return $default if parameter is set but empty() * @return int */ @@ -164,7 +163,7 @@ class Input { * Access a request parameter as string * * @param string $name Parameter name - * @param mixed $default Default to return if parameter isn't set or is an array + * @param string $default Default to return if parameter isn't set or is an array * @param bool $nonempty Return $default if parameter is set but empty() * @return string */ @@ -246,7 +245,7 @@ class Input { * * This function returns the $INPUT object itself for easy chaining * - * @param $name + * @param string $name * @return Input */ public function extract($name){ diff --git a/dokuwiki/inc/JSON.php b/dokuwiki/inc/JSON.php index 7f89005f..e01488e1 100644 --- a/dokuwiki/inc/JSON.php +++ b/dokuwiki/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/dokuwiki/inc/JpegMeta.php b/dokuwiki/inc/JpegMeta.php index a35ec3ed..a826c8f6 100644 --- a/dokuwiki/inc/JpegMeta.php +++ b/dokuwiki/inc/JpegMeta.php @@ -42,6 +42,7 @@ class JpegMeta { var $_fileName; var $_fp = null; + var $_fpout = null; var $_type = 'unknown'; var $_markers; @@ -53,7 +54,7 @@ class JpegMeta { * * @author Sebastian Delmont */ - function JpegMeta($fileName) { + function __construct($fileName) { $this->_fileName = $fileName; @@ -132,6 +133,9 @@ class JpegMeta { * through one function * * @author Andreas Gohr + * + * @param array|string $fields field name or array with field names + * @return bool|string */ function getField($fields) { if(!is_array($fields)) $fields = array($fields); @@ -177,6 +181,10 @@ class JpegMeta { * through one function * * @author Andreas Gohr + * + * @param string $field field name + * @param string $value + * @return bool success or fail */ function setField($field, $value) { if(strtolower(substr($field,0,5)) == 'iptc.'){ @@ -193,6 +201,9 @@ class JpegMeta { * through one function * * @author Andreas Gohr + * + * @param string $field field name + * @return bool */ function deleteField($field) { if(strtolower(substr($field,0,5)) == 'iptc.'){ @@ -208,6 +219,9 @@ class JpegMeta { * Return a date field * * @author Andreas Gohr + * + * @param string $field + * @return false|string */ function getDateField($field) { if (!isset($this->_info['dates'])) { @@ -225,6 +239,9 @@ class JpegMeta { * Return a file info field * * @author Andreas Gohr + * + * @param string $field field name + * @return false|string */ function getFileField($field) { if (!isset($this->_info['file'])) { @@ -243,6 +260,8 @@ class JpegMeta { * * @author Andreas Gohr * @todo handle makernotes + * + * @return false|string */ function getCamera(){ $make = $this->getField(array('Exif.Make','Exif.TIFFMake')); @@ -256,6 +275,8 @@ class JpegMeta { * Return shutter speed as a ratio * * @author Joe Lapp + * + * @return string */ function getShutterSpeed() { if (!isset($this->_info['exif'])) { @@ -274,6 +295,9 @@ class JpegMeta { * Return an EXIF field * * @author Sebastian Delmont + * + * @param string $field field name + * @return false|string */ function getExifField($field) { if (!isset($this->_info['exif'])) { @@ -295,6 +319,9 @@ class JpegMeta { * Return an XMP field * * @author Hakan Sandell + * + * @param string $field field name + * @return false|string */ function getXmpField($field) { if (!isset($this->_info['xmp'])) { @@ -316,6 +343,9 @@ class JpegMeta { * Return an Adobe Field * * @author Sebastian Delmont + * + * @param string $field field name + * @return false|string */ function getAdobeField($field) { if (!isset($this->_info['adobe'])) { @@ -337,6 +367,9 @@ class JpegMeta { * Return an IPTC field * * @author Sebastian Delmont + * + * @param string $field field name + * @return false|string */ function getIPTCField($field) { if (!isset($this->_info['iptc'])) { @@ -359,6 +392,10 @@ class JpegMeta { * * @author Sebastian Delmont * @author Joe Lapp + * + * @param string $field field name + * @param string $value + * @return bool */ function setExifField($field, $value) { if (!isset($this->_info['exif'])) { @@ -389,6 +426,10 @@ class JpegMeta { * Set an Adobe Field * * @author Sebastian Delmont + * + * @param string $field field name + * @param string $value + * @return bool */ function setAdobeField($field, $value) { if (!isset($this->_info['adobe'])) { @@ -413,6 +454,10 @@ class JpegMeta { * dimensions * * @author Andreas Gohr + * + * @param int $maxwidth + * @param int $maxheight + * @return float|int */ function getResizeRatio($maxwidth,$maxheight=0){ if(!$maxheight) $maxheight = $maxwidth; @@ -442,6 +487,10 @@ class JpegMeta { * Set an IPTC field * * @author Sebastian Delmont + * + * @param string $field field name + * @param string $value + * @return bool */ function setIPTCField($field, $value) { if (!isset($this->_info['iptc'])) { @@ -465,6 +514,9 @@ class JpegMeta { * Delete an EXIF field * * @author Sebastian Delmont + * + * @param string $field field name + * @return bool */ function deleteExifField($field) { if (!isset($this->_info['exif'])) { @@ -486,6 +538,9 @@ class JpegMeta { * Delete an Adobe field * * @author Sebastian Delmont + * + * @param string $field field name + * @return bool */ function deleteAdobeField($field) { if (!isset($this->_info['adobe'])) { @@ -507,6 +562,9 @@ class JpegMeta { * Delete an IPTC field * * @author Sebastian Delmont + * + * @param string $field field name + * @return bool */ function deleteIPTCField($field) { if (!isset($this->_info['iptc'])) { @@ -527,12 +585,12 @@ class JpegMeta { /** * Get the image's title, tries various fields * - * @param int $max maximum number chars (keeps words) + * @param int $max maximum number chars (keeps words) + * @return false|string + * * @author Andreas Gohr */ function getTitle($max=80){ - $cap = ''; - // try various fields $cap = $this->getField(array('Iptc.Headline', 'Iptc.Caption', @@ -555,11 +613,14 @@ class JpegMeta { * Gather various date fields * * @author Sebastian Delmont + * + * @return array|bool */ function getDates() { $this->_parseAll(); if ($this->_markers == null) { if (@isset($this->_info['file']['UnixTime'])) { + $dates = array(); $dates['FileModified'] = $this->_info['file']['UnixTime']; $dates['Time'] = $this->_info['file']['UnixTime']; $dates['TimeSource'] = 'FileModified'; @@ -690,6 +751,8 @@ class JpegMeta { * Get the image width, tries various fields * * @author Sebastian Delmont + * + * @return false|string */ function getWidth() { if (!isset($this->_info['sof'])) { @@ -719,6 +782,8 @@ class JpegMeta { * Get the image height, tries various fields * * @author Sebastian Delmont + * + * @return false|string */ function getHeight() { if (!isset($this->_info['sof'])) { @@ -748,6 +813,8 @@ class JpegMeta { * Get an dimension string for use in img tag * * @author Sebastian Delmont + * + * @return false|string */ function getDimStr() { if ($this->_markers == null) { @@ -764,6 +831,9 @@ class JpegMeta { * Checks for an embedded thumbnail * * @author Sebastian Delmont + * + * @param string $which possible values: 'any', 'exif' or 'adobe' + * @return false|string */ function hasThumbnail($which = 'any') { if (($which == 'any') || ($which == 'exif')) { @@ -805,6 +875,9 @@ class JpegMeta { * Send embedded thumbnail to browser * * @author Sebastian Delmont + * + * @param string $which possible values: 'any', 'exif' or 'adobe' + * @return bool */ function sendThumbnail($which = 'any') { $data = null; @@ -855,12 +928,15 @@ class JpegMeta { * * @author Sebastian Delmont * @author Andreas Gohr + * + * @param string $fileName file name or empty string for a random name + * @return bool */ function save($fileName = "") { if ($fileName == "") { $tmpName = tempnam(dirname($this->_fileName),'_metatemp_'); $this->_writeJPEG($tmpName); - if (@file_exists($tmpName)) { + if (file_exists($tmpName)) { return io_rename($tmpName, $this->_fileName); } } else { @@ -1030,6 +1106,10 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param string $outputName + */ function _writeJPEG($outputName) { $this->_parseAll(); @@ -1162,6 +1242,12 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $marker + * @param integer $length + * @param integer $origLength + */ function _writeJPEGMarker($marker, $length, &$data, $origLength) { if ($length <= 0) { return false; @@ -1228,8 +1314,8 @@ class JpegMeta { $this->_info['file']['Width'] = $size[0]; $this->_info['file']['Height'] = $size[1]; // set mime types and formats - // http://www.php.net/manual/en/function.getimagesize.php - // http://www.php.net/manual/en/function.image-type-to-mime-type.php + // http://php.net/manual/en/function.getimagesize.php + // http://php.net/manual/en/function.image-type-to-mime-type.php switch ($size[2]){ case 1: $this->_info['file']['Mime'] = 'image/gif'; @@ -1334,7 +1420,6 @@ class JpegMeta { return false; } - $pos = 0; $this->_info['jfif'] = array(); $vmaj = $this->_getByte($data, 5); @@ -1420,7 +1505,6 @@ class JpegMeta { break; default: return false; - break; } $this->_info['sof']['Format'] = $format; @@ -1491,6 +1575,7 @@ class JpegMeta { * Parses XMP nodes by recursion * * @author Hakan Sandell + * @param integer $count */ function _parseXmpNode($values, &$i, &$meta, $count) { if ($values[$i]['type'] == 'close') return; @@ -1594,6 +1679,12 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $base + * @param boolean $isBigEndian + * @param string $mode + */ function _readIFD($data, $base, $offset, $isBigEndian, $mode) { $EXIFTags = $this->_exifTagNames($mode); @@ -1849,6 +1940,12 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $offsetBase + * @param boolean $isBigEndian + * @param boolean $hasNext + */ function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) { $tiffData = null; $tiffDataOffsetPos = -1; @@ -1905,6 +2002,11 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param boolean $isBigEndian + * @param string $mode + */ function & _getIFDEntries($isBigEndian, $mode) { $EXIFNames = $this->_exifTagNames($mode); $EXIFTags = $this->_exifNameTags($mode); @@ -2413,6 +2515,10 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $pos + */ function _write8BIM(&$data, $pos, $type, $header, &$value) { $signature = "8BIM"; @@ -2473,6 +2579,10 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $pos + */ function _writeIPTCEntry(&$data, $pos, $type, &$value) { $pos = $this->_putShort($data, $pos, 0x1C02); $pos = $this->_putByte($data, $pos, $type); @@ -2833,11 +2943,19 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $pos + */ function _getByte(&$data, $pos) { return ord($data{$pos}); } /*************************************************************/ + + /** + * @param integer $pos + */ function _putByte(&$data, $pos, $val) { $val = intval($val); @@ -2873,6 +2991,10 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $pos + */ function _getLong(&$data, $pos, $bigEndian = true) { if ($bigEndian) { return (ord($data{$pos}) << 24) @@ -2888,6 +3010,10 @@ class JpegMeta { } /*************************************************************/ + + /** + * @param integer $pos + */ function _putLong(&$data, $pos, $val, $bigEndian = true) { $val = intval($val); diff --git a/dokuwiki/inc/Mailer.class.php b/dokuwiki/inc/Mailer.class.php index e90b45f9..9d078d06 100644 --- a/dokuwiki/inc/Mailer.class.php +++ b/dokuwiki/inc/Mailer.class.php @@ -32,10 +32,12 @@ class Mailer { protected $validator = null; protected $allowhtml = true; + protected $replacements = array('text'=> array(), 'html' => array()); + /** * Constructor * - * Initializes the boundary strings and part counters + * Initializes the boundary strings, part counters and token replacements */ public function __construct() { global $conf; @@ -61,6 +63,8 @@ class Mailer { $this->setHeader('X-Auto-Response-Suppress', 'OOF'); $this->setHeader('List-Id', $conf['title'].' <'.$listid.'>'); $this->setHeader('Date', date('r'), false); + + $this->prepareTokenReplacements(); } /** @@ -108,6 +112,9 @@ class Mailer { /** * Callback function to automatically embed images referenced in HTML templates + * + * @param array $matches + * @return string placeholder */ protected function autoembed_cb($matches) { static $embeds = 0; @@ -130,7 +137,7 @@ class Mailer { * If an empy value is passed, the header is removed * * @param string $header the header name (no trailing colon!) - * @param string $value the value of the header + * @param string|string[] $value the value of the header * @param bool $clean remove all non-ASCII chars and line feeds? */ public function setHeader($header, $value, $clean = true) { @@ -160,6 +167,8 @@ class Mailer { * * Whatever is set here is directly passed to PHP's mail() command as last * parameter. Depending on the PHP setup this might break mailing alltogether + * + * @param string $param */ public function setParameters($param) { $this->sendparam = $param; @@ -169,7 +178,7 @@ class Mailer { * Set the text and HTML body and apply replacements * * This function applies a whole bunch of default replacements in addition - * to the ones specidifed as parameters + * to the ones specified as parameters * * If you pass the HTML part or HTML replacements yourself you have to make * sure you encode all HTML special chars correctly @@ -177,14 +186,10 @@ class Mailer { * @param string $text plain text body * @param array $textrep replacements to apply on the text part * @param array $htmlrep replacements to apply on the HTML part, leave null to use $textrep - * @param array $html the HTML body, leave null to create it from $text + * @param string $html the HTML body, leave null to create it from $text * @param bool $wrap wrap the HTML in the default header/Footer */ public function setBody($text, $textrep = null, $htmlrep = null, $html = null, $wrap = true) { - global $INFO; - global $conf; - /* @var Input $INPUT */ - global $INPUT; $htmlrep = (array)$htmlrep; $textrep = (array)$textrep; @@ -193,15 +198,20 @@ class Mailer { if(is_null($html)) { $html = $text; $html = hsc($html); - $html = preg_replace('/^-----*$/m', '
', $html); + $html = preg_replace('/^----+$/m', '
', $html); $html = nl2br($html); } if($wrap) { $wrap = rawLocale('mailwrap', 'html'); $html = preg_replace('/\n--
.*$/s', '', $html); //strip signature + $html = str_replace('@EMAILSIGNATURE@', '', $html); //strip @EMAILSIGNATURE@ $html = str_replace('@HTMLBODY@', $html, $wrap); } + if(strpos($text, '@EMAILSIGNATURE@') === false) { + $text .= '@EMAILSIGNATURE@'; + } + // copy over all replacements missing for HTML (autolink URLs) foreach($textrep as $key => $value) { if(isset($htmlrep[$key])) continue; @@ -218,34 +228,9 @@ class Mailer { array($this, 'autoembed_cb'), $html ); - // prepare default replacements - $ip = clientIP(); - $cip = gethostsbyaddrs($ip); - $trep = array( - 'DATE' => dformat(), - 'BROWSER' => $INPUT->server->str('HTTP_USER_AGENT'), - 'IPADDRESS' => $ip, - 'HOSTNAME' => $cip, - 'TITLE' => $conf['title'], - 'DOKUWIKIURL' => DOKU_URL, - 'USER' => $INPUT->server->str('REMOTE_USER'), - 'NAME' => $INFO['userinfo']['name'], - 'MAIL' => $INFO['userinfo']['mail'], - ); - $trep = array_merge($trep, (array)$textrep); - $hrep = array( - 'DATE' => ''.hsc(dformat()).'', - 'BROWSER' => hsc($INPUT->server->str('HTTP_USER_AGENT')), - 'IPADDRESS' => ''.hsc($ip).'', - 'HOSTNAME' => ''.hsc($cip).'', - 'TITLE' => hsc($conf['title']), - 'DOKUWIKIURL' => ''.DOKU_URL.'', - 'USER' => hsc($INPUT->server->str('REMOTE_USER')), - 'NAME' => hsc($INFO['userinfo']['name']), - 'MAIL' => ''. - hsc($INFO['userinfo']['mail']).'', - ); - $hrep = array_merge($hrep, (array)$htmlrep); + // add default token replacements + $trep = array_merge($this->replacements['text'], (array)$textrep); + $hrep = array_merge($this->replacements['html'], (array)$htmlrep); // Apply replacements foreach($trep as $key => $substitution) { @@ -265,6 +250,8 @@ class Mailer { * Placeholders can be used to reference embedded attachments * * You probably want to use setBody() instead + * + * @param string $html */ public function setHTML($html) { $this->html = $html; @@ -274,6 +261,8 @@ class Mailer { * Set the plain text part of the mail * * You probably want to use setBody() instead + * + * @param string $text */ public function setText($text) { $this->text = $text; @@ -283,7 +272,7 @@ class Mailer { * Add the To: recipients * * @see cleanAddress - * @param string|array $address Multiple adresses separated by commas or as array + * @param string|string[] $address Multiple adresses separated by commas or as array */ public function to($address) { $this->setHeader('To', $address, false); @@ -293,7 +282,7 @@ class Mailer { * Add the Cc: recipients * * @see cleanAddress - * @param string|array $address Multiple adresses separated by commas or as array + * @param string|string[] $address Multiple adresses separated by commas or as array */ public function cc($address) { $this->setHeader('Cc', $address, false); @@ -303,7 +292,7 @@ class Mailer { * Add the Bcc: recipients * * @see cleanAddress - * @param string|array $address Multiple adresses separated by commas or as array + * @param string|string[] $address Multiple adresses separated by commas or as array */ public function bcc($address) { $this->setHeader('Bcc', $address, false); @@ -340,8 +329,8 @@ class Mailer { * Example: * cc("föö , me@somewhere.com","TBcc"); * - * @param string|array $addresses Multiple adresses separated by commas or as array - * @return bool|string the prepared header (can contain multiple lines) + * @param string|string[] $addresses Multiple adresses separated by commas or as array + * @return false|string the prepared header (can contain multiple lines) */ public function cleanAddress($addresses) { // No named recipients for To: in Windows (see FS#652) @@ -418,6 +407,8 @@ class Mailer { * Prepare the mime multiparts for all attachments * * Replaces placeholders in the HTML with the correct CIDs + * + * @return string mime multiparts */ protected function prepareAttachments() { $mime = ''; @@ -565,9 +556,9 @@ class Mailer { /** * Returns a complete, EOL terminated header line, wraps it if necessary * - * @param $key - * @param $val - * @return string + * @param string $key + * @param string $val + * @return string line */ protected function wrappedHeaderLine($key, $val){ return wordwrap("$key: $val", 78, MAILHEADER_EOL.' ').MAILHEADER_EOL; @@ -604,6 +595,66 @@ class Mailer { return $headers.MAILHEADER_EOL.$body; } + /** + * Prepare default token replacement strings + * + * Populates the '$replacements' property. + * Should be called by the class constructor + */ + protected function prepareTokenReplacements() { + global $INFO; + global $conf; + /* @var Input $INPUT */ + global $INPUT; + global $lang; + + $ip = clientIP(); + $cip = gethostsbyaddrs($ip); + + $this->replacements['text'] = array( + 'DATE' => dformat(), + 'BROWSER' => $INPUT->server->str('HTTP_USER_AGENT'), + 'IPADDRESS' => $ip, + 'HOSTNAME' => $cip, + 'TITLE' => $conf['title'], + 'DOKUWIKIURL' => DOKU_URL, + 'USER' => $INPUT->server->str('REMOTE_USER'), + 'NAME' => $INFO['userinfo']['name'], + 'MAIL' => $INFO['userinfo']['mail'] + ); + $signature = str_replace('@DOKUWIKIURL@', $this->replacements['text']['DOKUWIKIURL'], $lang['email_signature_text']); + $this->replacements['text']['EMAILSIGNATURE'] = "\n-- \n" . $signature . "\n"; + + $this->replacements['html'] = array( + 'DATE' => '' . hsc(dformat()) . '', + 'BROWSER' => hsc($INPUT->server->str('HTTP_USER_AGENT')), + 'IPADDRESS' => '' . hsc($ip) . '', + 'HOSTNAME' => '' . hsc($cip) . '', + 'TITLE' => hsc($conf['title']), + 'DOKUWIKIURL' => '' . DOKU_URL . '', + 'USER' => hsc($INPUT->server->str('REMOTE_USER')), + 'NAME' => hsc($INFO['userinfo']['name']), + 'MAIL' => '' . + hsc($INFO['userinfo']['mail']) . '' + ); + $signature = $lang['email_signature_text']; + if(!empty($lang['email_signature_html'])) { + $signature = $lang['email_signature_html']; + } + $signature = str_replace( + array( + '@DOKUWIKIURL@', + "\n" + ), + array( + $this->replacements['html']['DOKUWIKIURL'], + '
' + ), + $signature + ); + $this->replacements['html']['EMAILSIGNATURE'] = $signature; + } + /** * Send the mail * diff --git a/dokuwiki/inc/PassHash.class.php b/dokuwiki/inc/PassHash.class.php index db6a3a77..444fe4ff 100644 --- a/dokuwiki/inc/PassHash.class.php +++ b/dokuwiki/inc/PassHash.class.php @@ -16,8 +16,9 @@ class PassHash { * match true is is returned else false * * @author Andreas Gohr - * @param $clear string Clear-Text password - * @param $hash string Hash to compare against + * + * @param string $clear Clear-Text password + * @param string $hash Hash to compare against * @return bool */ function verify_hash($clear, $hash) { @@ -41,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}') { @@ -82,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; @@ -109,9 +118,9 @@ class PassHash { * If $salt is not null, the value is kept, but the lenght restriction is * applied (unless, $cut is false). * - * @param string &$salt The salt, pass null if you want one generated - * @param int $len The length of the salt - * @param bool $cut Apply length restriction to existing salt? + * @param string|null &$salt The salt, pass null if you want one generated + * @param int $len The length of the salt + * @param bool $cut Apply length restriction to existing salt? */ public function init_salt(&$salt, $len = 32, $cut = true) { if(is_null($salt)) { @@ -134,7 +143,8 @@ class PassHash { * * @author Andreas Gohr * @author - * @link http://de.php.net/manual/en/function.crypt.php#73619 + * @link http://php.net/manual/en/function.crypt.php#73619 + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @return string Hashed password @@ -174,7 +184,8 @@ class PassHash { * This is basically the same as smd1 above, but as used by Apache. * * @author - * @link http://de.php.net/manual/en/function.crypt.php#73619 + * @link http://php.net/manual/en/function.crypt.php#73619 + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @param string $magic The hash identifier (apr1 or 1) @@ -273,7 +284,7 @@ class PassHash { * * This method was used by old MySQL systems * - * @link http://www.php.net/mysql + * @link http://php.net/mysql * @author * @param string $clear The clear text to hash * @return string Hashed password @@ -302,7 +313,7 @@ class PassHash { * @return string Hashed password */ public function hash_my411($clear) { - return '*'.sha1(pack("H*", sha1($clear))); + return '*'.strtoupper(sha1(pack("H*", sha1($clear)))); } /** @@ -337,6 +348,7 @@ class PassHash { * an exception. * * @link http://www.openwall.com/phpass/ + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @param string $magic The hash identifier (P or H) @@ -404,6 +416,7 @@ class PassHash { * This is used by the Django Python framework * * @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @return string Hashed password @@ -420,6 +433,7 @@ class PassHash { * This is used by the Django Python framework * * @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @return string Hashed password @@ -429,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' * @@ -486,6 +563,7 @@ class PassHash { * method 'A' is not supported. * * @link http://www.mediawiki.org/wiki/Manual_talk:User_table#user_password_column + * * @param string $clear The clear text to hash * @param string $salt The salt to use, null for random * @return string Hashed password @@ -504,14 +582,13 @@ class PassHash { * * @see hash_hmac() * @author KC Cloyd - * @link http://www.php.net/manual/en/function.hash-hmac.php#93440 + * @link http://php.net/manual/en/function.hash-hmac.php#93440 * * @param string $algo Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", * etc..) See hash_algos() for a list of supported algorithms. * @param string $data Message to be hashed. * @param string $key Shared secret key used for generating the HMAC variant of the message digest. * @param bool $raw_output When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits. - * * @return string */ public static function hmac($algo, $data, $key, $raw_output = false) { @@ -545,16 +622,11 @@ class PassHash { /** * Use DokuWiki's secure random generator if available * - * @param $min - * @param $max - * + * @param int $min + * @param int $max * @return int */ protected function random($min, $max){ - if(function_exists('auth_random')){ - return auth_random($min, $max); - }else{ - return mt_rand($min, $max); - } + return random_int($min, $max); } } diff --git a/dokuwiki/inc/RemoteAPICore.php b/dokuwiki/inc/RemoteAPICore.php index ffa03ee9..0ff358cf 100644 --- a/dokuwiki/inc/RemoteAPICore.php +++ b/dokuwiki/inc/RemoteAPICore.php @@ -3,17 +3,29 @@ /** * Increased whenever the API is changed */ -define('DOKU_API_VERSION', 9); +define('DOKU_API_VERSION', 10); +/** + * Provides the core methods for the remote API. + * The methods are ordered in 'wiki.' and 'dokuwiki.' namespaces + */ class RemoteAPICore { private $api; + /** + * @param RemoteAPI $api + */ public function __construct(RemoteAPI $api) { $this->api = $api; } - function __getRemoteInfo() { + /** + * Returns details about the core methods + * + * @return array + */ + public function __getRemoteInfo() { return array( 'dokuwiki.getVersion' => array( 'args' => array(), @@ -92,7 +104,7 @@ class RemoteAPICore { ), 'wiki.getPageInfo' => array( 'args' => array('string'), 'return' => 'array', - 'doc' => 'Returns a struct with info about the page.', + 'doc' => 'Returns a struct with info about the page, latest version.', 'name' => 'pageInfo' ), 'wiki.getPageInfoVersion' => array( 'args' => array('string', 'int'), @@ -121,9 +133,9 @@ class RemoteAPICore { 'return' => 'array', 'Returns a struct about all recent media changes since given timestamp.' ), 'wiki.aclCheck' => array( - 'args' => array('string'), + 'args' => array('string', 'string', 'array'), 'return' => 'int', - 'doc' => 'Returns the permissions of a given wiki page.' + 'doc' => 'Returns the permissions of a given wiki page. By default, for current user/groups' ), 'wiki.putAttachment' => array( 'args' => array('string', 'file', 'array'), 'return' => 'array', @@ -158,21 +170,29 @@ class RemoteAPICore { ); } - function getVersion() { + /** + * @return string + */ + public function getVersion() { return getVersion(); } - function getTime() { + /** + * @return int unix timestamp + */ + public function getTime() { return time(); } /** * Return a raw wiki page + * * @param string $id wiki page id - * @param string $rev revision number of the page - * @return page text. + * @param int|string $rev revision timestamp of the page or empty string + * @return string page text. + * @throws RemoteAccessDeniedException if no permission for page */ - function rawPage($id,$rev=''){ + public function rawPage($id,$rev=''){ $id = $this->resolvePageId($id); if(auth_quickaclcheck($id) < AUTH_READ){ throw new RemoteAccessDeniedException('You are not allowed to read this file', 111); @@ -189,10 +209,13 @@ class RemoteAPICore { * Return a media file * * @author Gina Haeussge + * * @param string $id file id - * @return media file + * @return mixed media file + * @throws RemoteAccessDeniedException no permission for media + * @throws RemoteException not exist */ - function getAttachment($id){ + public function getAttachment($id){ $id = cleanID($id); if (auth_quickaclcheck(getNS($id).':*') < AUTH_READ) { throw new RemoteAccessDeniedException('You are not allowed to read this file', 211); @@ -211,8 +234,11 @@ class RemoteAPICore { * Return info about a media file * * @author Gina Haeussge + * + * @param string $id page id + * @return array */ - function getAttachmentInfo($id){ + public function getAttachmentInfo($id){ $id = cleanID($id); $info = array( 'lastModified' => $this->api->toDate(0), @@ -220,9 +246,18 @@ class RemoteAPICore { ); $file = mediaFN($id); - if ((auth_quickaclcheck(getNS($id).':*') >= AUTH_READ) && file_exists($file)){ - $info['lastModified'] = $this->api->toDate(filemtime($file)); - $info['size'] = filesize($file); + if(auth_quickaclcheck(getNS($id) . ':*') >= AUTH_READ) { + if(file_exists($file)) { + $info['lastModified'] = $this->api->toDate(filemtime($file)); + $info['size'] = filesize($file); + } else { + //Is it deleted media with changelog? + $medialog = new MediaChangeLog($id); + $revisions = $medialog->getRevisions(0, 1); + if(!empty($revisions)) { + $info['lastModified'] = $this->api->toDate($revisions[0]); + } + } } return $info; @@ -230,8 +265,13 @@ class RemoteAPICore { /** * Return a wiki page rendered to html + * + * @param string $id page id + * @param string|int $rev revision timestamp or empty string + * @return null|string html + * @throws RemoteAccessDeniedException no access to page */ - function htmlPage($id,$rev=''){ + public function htmlPage($id,$rev=''){ $id = $this->resolvePageId($id); if(auth_quickaclcheck($id) < AUTH_READ){ throw new RemoteAccessDeniedException('You are not allowed to read this page', 111); @@ -241,8 +281,10 @@ class RemoteAPICore { /** * List all pages - we use the indexer list here + * + * @return array */ - function listPages(){ + public function listPages(){ $list = array(); $pages = idx_get_indexer()->getPages(); $pages = array_filter(array_filter($pages,'isVisiblePage'),'page_exists'); @@ -265,8 +307,14 @@ class RemoteAPICore { /** * List all pages in the given namespace (and below) + * + * @param string $ns + * @param array $opts + * $opts['depth'] recursion level, 0 for all + * $opts['hash'] do md5 sum of content? + * @return array */ - function readNamespace($ns,$opts){ + public function readNamespace($ns,$opts){ global $conf; if(!is_array($opts)) $opts=array(); @@ -281,9 +329,12 @@ class RemoteAPICore { /** * List all pages in the given namespace (and below) + * + * @param string $query + * @return array */ - function search($query){ - $regex = ''; + public function search($query){ + $regex = array(); $data = ft_pageSearch($query,$regex); $pages = array(); @@ -314,8 +365,10 @@ class RemoteAPICore { /** * Returns the wiki title. + * + * @return string */ - function getTitle(){ + public function getTitle(){ global $conf; return $conf['title']; } @@ -328,8 +381,17 @@ class RemoteAPICore { * a regular expression matching their name. * * @author Gina Haeussge + * + * @param string $ns + * @param array $options + * $options['depth'] recursion level, 0 for all + * $options['showmsg'] shows message if invalid media id is used + * $options['pattern'] check given pattern + * $options['hash'] add hashes to result list + * @return array + * @throws RemoteAccessDeniedException no access to the media files */ - function listAttachments($ns, $options = array()) { + public function listAttachments($ns, $options = array()) { global $conf; $ns = cleanID($ns); @@ -359,6 +421,9 @@ class RemoteAPICore { /** * Return a list of backlinks + * + * @param string $id page id + * @return array */ function listBackLinks($id){ return ft_backlinks($this->resolvePageId($id)); @@ -366,8 +431,14 @@ class RemoteAPICore { /** * Return some basic data about a page + * + * @param string $id page id + * @param string|int $rev revision timestamp or empty string + * @return array + * @throws RemoteAccessDeniedException no access for page + * @throws RemoteException page not exist */ - function pageInfo($id,$rev=''){ + public function pageInfo($id,$rev=''){ $id = $this->resolvePageId($id); if(auth_quickaclcheck($id) < AUTH_READ){ throw new RemoteAccessDeniedException('You are not allowed to read this page', 111); @@ -378,14 +449,20 @@ class RemoteAPICore { throw new RemoteException('The requested page does not exist', 121); } + // set revision to current version if empty, use revision otherwise + // as the timestamps of old files are not necessarily correct + if($rev === '') { + $rev = $time; + } + $pagelog = new PageChangeLog($id, 1024); - $info = $pagelog->getRevisionInfo($time); + $info = $pagelog->getRevisionInfo($rev); $data = array( 'name' => $id, - 'lastModified' => $this->api->toDate($time), + 'lastModified' => $this->api->toDate($rev), 'author' => (($info['user']) ? $info['user'] : $info['ip']), - 'version' => $time + 'version' => $rev ); return ($data); @@ -395,8 +472,15 @@ class RemoteAPICore { * Save a wiki page * * @author Michael Klier + * + * @param string $id page id + * @param string $text wiki text + * @param array $params parameters: summary, minor edit + * @return bool + * @throws RemoteAccessDeniedException no write access for page + * @throws RemoteException no id, empty new page or locked */ - function putPage($id, $text, $params) { + public function putPage($id, $text, $params) { global $TEXT; global $lang; @@ -451,8 +535,13 @@ class RemoteAPICore { /** * Appends text to a wiki page. + * + * @param string $id page id + * @param string $text wiki text + * @param array $params such as summary,minor + * @return bool|string */ - function appendPage($id, $text, $params) { + public function appendPage($id, $text, $params) { $currentpage = $this->rawPage($id); if (!is_string($currentpage)) { return $currentpage; @@ -464,8 +553,14 @@ class RemoteAPICore { * Uploads a file to the wiki. * * Michael Klier + * + * @param string $id page id + * @param string $file + * @param array $params such as overwrite + * @return false|string + * @throws RemoteException */ - function putAttachment($id, $file, $params) { + public function putAttachment($id, $file, $params) { $id = cleanID($id); $auth = auth_quickaclcheck(getNS($id).':*'); @@ -493,8 +588,13 @@ class RemoteAPICore { * Deletes a file from the wiki. * * @author Gina Haeussge + * + * @param string $id page id + * @return int + * @throws RemoteAccessDeniedException no permissions + * @throws RemoteException file in use or not deleted */ - function deleteAttachment($id){ + public function deleteAttachment($id){ $id = cleanID($id); $auth = auth_quickaclcheck(getNS($id).':*'); $res = media_delete($id, $auth); @@ -510,19 +610,43 @@ class RemoteAPICore { } /** - * Returns the permissions of a given wiki page + * Returns the permissions of a given wiki page for the current user or another user + * + * @param string $id page id + * @param string|null $user username + * @param array|null $groups array of groups + * @return int permission level */ - function aclCheck($id) { + public function aclCheck($id, $user = null, $groups = null) { + /** @var DokuWiki_Auth_Plugin $auth */ + global $auth; + $id = $this->resolvePageId($id); - return auth_quickaclcheck($id); + if($user === null) { + return auth_quickaclcheck($id); + } else { + if($groups === null) { + $userinfo = $auth->getUserData($user); + if($userinfo === false) { + $groups = array(); + } else { + $groups = $userinfo['grps']; + } + } + return auth_aclcheck($id, $user, $groups); + } } /** * Lists all links contained in a wiki page * * @author Michael Klier + * + * @param string $id page id + * @return array + * @throws RemoteAccessDeniedException no read access for page */ - function listLinks($id) { + public function listLinks($id) { $id = $this->resolvePageId($id); if(auth_quickaclcheck($id) < AUTH_READ){ throw new RemoteAccessDeniedException('You are not allowed to read this page', 111); @@ -533,7 +657,6 @@ class RemoteAPICore { $ins = p_cached_instructions(wikiFN($id)); // instantiate new Renderer - needed for interwiki links - include(DOKU_INC.'inc/parser/xhtml.php'); $Renderer = new Doku_Renderer_xhtml(); $Renderer->interwiki = getInterwiki(); @@ -571,8 +694,12 @@ class RemoteAPICore { * * @author Michael Hamann * @author Michael Klier + * + * @param int $timestamp unix timestamp + * @return array + * @throws RemoteException no valid timestamp */ - function getRecentChanges($timestamp) { + public function getRecentChanges($timestamp) { if(strlen($timestamp) != 10) { throw new RemoteException('The provided value is not a valid timestamp', 311); } @@ -596,7 +723,7 @@ class RemoteAPICore { return $changes; } else { // in case we still have nothing at this point - return new RemoteException('There are no changes in the specified timeframe', 321); + throw new RemoteException('There are no changes in the specified timeframe', 321); } } @@ -605,8 +732,12 @@ class RemoteAPICore { * * @author Michael Hamann * @author Michael Klier + * + * @param int $timestamp unix timestamp + * @return array + * @throws RemoteException no valid timestamp */ - function getRecentMediaChanges($timestamp) { + public function getRecentMediaChanges($timestamp) { if(strlen($timestamp) != 10) throw new RemoteException('The provided value is not a valid timestamp', 311); @@ -635,10 +766,18 @@ class RemoteAPICore { /** * Returns a list of available revisions of a given wiki page + * Number of returned pages is set by $conf['recent'] + * However not accessible pages are skipped, so less than $conf['recent'] could be returned * * @author Michael Klier + * + * @param string $id page id + * @param int $first skip the first n changelog lines (0 = from current(if exists), 1 = from 1st old rev, 2 = from 2nd old rev, etc) + * @return array + * @throws RemoteAccessDeniedException no read access for page + * @throws RemoteException empty id */ - function pageVersions($id, $first) { + public function pageVersions($id, $first) { $id = $this->resolvePageId($id); if(auth_quickaclcheck($id) < AUTH_READ) { throw new RemoteAccessDeniedException('You are not allowed to read this page', 111); @@ -651,25 +790,19 @@ class RemoteAPICore { throw new RemoteException('Empty page ID', 131); } + $first = (int) $first; + $first_rev = $first - 1; + $first_rev = $first_rev < 0 ? 0 : $first_rev; $pagelog = new PageChangeLog($id); - $revisions = $pagelog->getRevisions($first, $conf['recent']+1); + $revisions = $pagelog->getRevisions($first_rev, $conf['recent']); - if(count($revisions)==0 && $first!=0) { - $first=0; - $revisions = $pagelog->getRevisions($first, $conf['recent']+1); - } - - if(count($revisions)>0 && $first==0) { + if($first == 0) { array_unshift($revisions, ''); // include current revision if ( count($revisions) > $conf['recent'] ){ array_pop($revisions); // remove extra log entry } } - if(count($revisions) > $conf['recent']) { - array_pop($revisions); // remove extra log entry - } - if(!empty($revisions)) { foreach($revisions as $rev) { $file = wikiFN($id,$rev); @@ -679,8 +812,9 @@ class RemoteAPICore { // specified via $conf['recent'] if($time){ $pagelog->setChunkSize(1024); - $info = $pagelog->getRevisionInfo($time); + $info = $pagelog->getRevisionInfo($rev ? $rev : $time); if(!empty($info)) { + $data = array(); $data['user'] = $info['user']; $data['ip'] = $info['ip']; $data['type'] = $info['type']; @@ -700,7 +834,7 @@ class RemoteAPICore { /** * The version of Wiki RPC API supported */ - function wiki_RPCVersion(){ + public function wiki_RPCVersion(){ return 2; } @@ -713,8 +847,11 @@ class RemoteAPICore { * * Returns an associative array with the keys locked, lockfail, unlocked and * unlockfail, each containing lists of pages. + * + * @param array[] $set list pages with array('lock' => array, 'unlock' => array) + * @return array */ - function setLocks($set){ + public function setLocks($set){ $locked = array(); $lockfail = array(); $unlocked = array(); @@ -747,13 +884,27 @@ class RemoteAPICore { ); } - function getAPIVersion(){ + /** + * Return API version + * + * @return int + */ + public function getAPIVersion(){ return DOKU_API_VERSION; } - function login($user,$pass){ + /** + * Login + * + * @param string $user + * @param string $pass + * @return int + */ + public function login($user,$pass){ global $conf; + /** @var DokuWiki_Auth_Plugin $auth */ global $auth; + if(!$conf['useacl']) return 0; if(!$auth) return 0; @@ -774,17 +925,28 @@ class RemoteAPICore { return $ok; } - function logoff(){ + /** + * Log off + * + * @return int + */ + public function logoff(){ global $conf; global $auth; if(!$conf['useacl']) return 0; if(!$auth) return 0; - + auth_logoff(); return 1; } + /** + * Resolve page id + * + * @param string $id page id + * @return string + */ private function resolvePageId($id) { $id = cleanID($id); if(empty($id)) { diff --git a/dokuwiki/inc/Sitemapper.php b/dokuwiki/inc/Sitemapper.php index 6332746a..037990e9 100644 --- a/dokuwiki/inc/Sitemapper.php +++ b/dokuwiki/inc/Sitemapper.php @@ -24,6 +24,8 @@ class Sitemapper { * @author Andreas Gohr * @link https://www.google.com/webmasters/sitemaps/docs/en/about.html * @link http://www.sitemaps.org/ + * + * @return bool */ public static function generate(){ global $conf; @@ -31,7 +33,7 @@ class Sitemapper { $sitemap = Sitemapper::getFilePath(); - if(@file_exists($sitemap)){ + if(file_exists($sitemap)){ if(!is_writable($sitemap)) return false; }else{ if(!is_writable(dirname($sitemap))) return false; @@ -53,7 +55,7 @@ class Sitemapper { foreach($pages as $id){ //skip hidden, non existing and restricted files if(isHiddenPage($id)) continue; - if(auth_aclcheck($id,'','') < AUTH_READ) continue; + if(auth_aclcheck($id,'',array()) < AUTH_READ) continue; $item = SitemapItem::createFromID($id); if ($item !== null) $items[] = $item; @@ -75,6 +77,7 @@ class Sitemapper { * * @param $items array The SitemapItems that shall be included in the sitemap. * @return string The sitemap XML. + * * @author Michael Hamann */ private static function getXML($items) { @@ -95,6 +98,7 @@ class Sitemapper { * Helper function for getting the path to the sitemap file. * * @return string The path to the sitemap file. + * * @author Michael Hamann */ public static function getFilePath() { @@ -123,6 +127,8 @@ class Sitemapper { * urls to ping using the SITEMAP_PING event. * * @author Michael Hamann + * + * @return bool */ public static function pingSearchEngines() { //ping search engines... @@ -168,9 +174,9 @@ class SitemapItem { /** * Create a new item. * - * @param $url string The url of the item - * @param $lastmod int Timestamp of the last modification - * @param $changefreq string How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never. + * @param string $url The url of the item + * @param int $lastmod Timestamp of the last modification + * @param string $changefreq How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never. * @param $priority float|string The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0. */ public function __construct($url, $lastmod, $changefreq = null, $priority = null) { @@ -183,9 +189,9 @@ class SitemapItem { /** * Helper function for creating an item for a wikipage id. * - * @param $id string A wikipage id. - * @param $changefreq string How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never. - * @param $priority float|string The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0. + * @param string $id A wikipage id. + * @param string $changefreq How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never. + * @param float|string $priority The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0. * @return SitemapItem The sitemap item. */ public static function createFromID($id, $changefreq = null, $priority = null) { diff --git a/dokuwiki/inc/Ui/Admin.php b/dokuwiki/inc/Ui/Admin.php new file mode 100644 index 00000000..ed2fa256 --- /dev/null +++ b/dokuwiki/inc/Ui/Admin.php @@ -0,0 +1,173 @@ + + * @author HÃ¥kan Sandell + */ +class Admin extends Ui { + + protected $menu; + + /** + * Display the UI element + * + * @return void + */ + public function show() { + $this->menu = $this->getPluginList(); + echo '
'; + echo p_locale_xhtml('admin'); + $this->showSecurityCheck(); + $this->showAdminMenu(); + $this->showManagerMenu(); + $this->showVersion(); + $this->showPluginMenu(); + echo '
'; + } + + /** + * Display the standard admin tasks + */ + protected function showAdminMenu() { + /** @var \DokuWiki_Auth_Plugin $auth */ + global $auth; + global $INFO; + + if(!$INFO['isadmin']) return; + + // user manager only if the auth backend supports it + if(!$auth || !$auth->canDo('getUsers') ) { + if(isset($this->menu['usermanager'])) unset($this->menu['usermanager']); + } + + echo '
    '; + foreach(array('usermanager','acl', 'extension', 'config', 'styling') as $plugin) { + if(!isset($this->menu[$plugin])) continue; + $this->showMenuItem($this->menu[$plugin]); + unset($this->menu[$plugin]); + } + echo '
'; + } + + /** + * Display the standard manager tasks + */ + protected function showManagerMenu() { + echo '
    '; + foreach(array('revert','popularity') as $plugin) { + if(!isset($this->menu[$plugin])) continue; + $this->showMenuItem($this->menu[$plugin]); + unset($this->menu[$plugin]); + } + echo '
'; + } + + /** + * Display all the remaining plugins + */ + protected function showPluginMenu() { + if(!count($this->menu)) return; + echo p_locale_xhtml('adminplugins'); + echo '
    '; + foreach ($this->menu as $item) { + $this->showMenuItem($item); + } + echo '
'; + } + + /** + * Display the DokuWiki version + */ + protected function showVersion() { + echo '
'; + echo getVersion(); + echo '
'; + } + + /** + * data security check + * + * simple check if the 'savedir' is relative and accessible when appended to DOKU_URL + * + * it verifies either: + * 'savedir' has been moved elsewhere, or + * has protection to prevent the webserver serving files from it + */ + protected function showSecurityCheck() { + global $conf; + if(substr($conf['savedir'], 0, 2) !== './') return; + echo ' + Your data directory seems to be protected properly.'; + } + + /** + * Display a single Admin menu item + * + * @param array $item + */ + protected function showMenuItem($item) { + global $ID; + if(blank($item['prompt'])) return; + echo '
  • '; + } + + /** + * Build list of admin functions from the plugins that handle them + * + * Checks the current permissions to decide on manager or admin plugins + * + * @return array list of plugins with their properties + */ + protected function getPluginList() { + global $INFO; + global $conf; + + $pluginlist = plugin_list('admin'); + $menu = array(); + foreach($pluginlist as $p) { + /** @var \DokuWiki_Admin_Plugin $obj */ + if(($obj = plugin_load('admin', $p)) === null) continue; + + // check permissions + if($obj->forAdminOnly() && !$INFO['isadmin']) continue; + + $menu[$p] = array( + 'plugin' => $p, + 'prompt' => $obj->getMenuText($conf['lang']), + 'icon' => $obj->getMenuIcon(), + 'sort' => $obj->getMenuSort(), + ); + } + + // sort by name, then sort + uasort( + $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; + } + ); + + return $menu; + } + +} diff --git a/dokuwiki/inc/Ui/Ui.php b/dokuwiki/inc/Ui/Ui.php new file mode 100644 index 00000000..8aac0de4 --- /dev/null +++ b/dokuwiki/inc/Ui/Ui.php @@ -0,0 +1,20 @@ +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(); } } } @@ -221,6 +214,9 @@ function act_sendheaders($headers) { * Sanitize the action command * * @author Andreas Gohr + * + * @param array|string $act + * @return string */ function act_clean($act){ // check if the action was given as array key @@ -245,6 +241,9 @@ function act_clean($act){ * Add all allowed commands here. * * @author Andreas Gohr + * + * @param array|string $act + * @return string */ function act_validate($act) { global $conf; @@ -284,10 +283,12 @@ function act_validate($act) { * Run permissionchecks * * @author Andreas Gohr + * + * @param string $act action command + * @return string action command */ function act_permcheck($act){ global $INFO; - global $conf; if(in_array($act,array('save','preview','edit','recover'))){ if($INFO['exists']){ @@ -330,6 +331,9 @@ function act_permcheck($act){ * Handle 'draftdel' * * Deletes the draft for the current page and user + * + * @param string $act action command + * @return string action command */ function act_draftdel($act){ global $INFO; @@ -342,6 +346,9 @@ function act_draftdel($act){ * Saves a draft on preview * * @todo this currently duplicates code from ajax.php :-/ + * + * @param string $act action command + * @return string action command */ function act_draftsave($act){ global $INFO; @@ -372,6 +379,9 @@ function act_draftsave($act){ * returns a new action. * * @author Andreas Gohr + * + * @param string $act action command + * @return string action command */ function act_save($act){ global $ID; @@ -394,7 +404,7 @@ function act_save($act){ return 'conflict'; //save it - saveWikiText($ID,con($PRE,$TEXT,$SUF,1),$SUM,$INPUT->bool('minor')); //use pretty mode for con + saveWikiText($ID,con($PRE,$TEXT,$SUF,true),$SUM,$INPUT->bool('minor')); //use pretty mode for con //unlock it unlock($ID); @@ -410,6 +420,9 @@ function act_save($act){ * Revert to a certain revision * * @author Andreas Gohr + * + * @param string $act action command + * @return string action command */ function act_revert($act){ global $ID; @@ -457,6 +470,9 @@ function act_revert($act){ * Do a redirect after receiving post data * * Tries to add the section id as hash mark after section editing + * + * @param string $id page id + * @param string $preact action command before redirect */ function act_redirect($id,$preact){ global $PRE; @@ -478,7 +494,7 @@ function act_redirect($id,$preact){ /** * Execute the redirect * - * @param array $opts id and fragment for the redirect + * @param array $opts id and fragment for the redirect and the preact */ function act_redirect_execute($opts){ $go = wl($opts['id'],'',true); @@ -492,6 +508,9 @@ function act_redirect_execute($opts){ * Handle 'login', 'logout' * * @author Andreas Gohr + * + * @param string $act action command + * @return string action command */ function act_auth($act){ global $ID; @@ -527,6 +546,9 @@ function act_auth($act){ * Handle 'edit', 'preview', 'recover' * * @author Andreas Gohr + * + * @param string $act action command + * @return string action command */ function act_edit($act){ global $ID; @@ -591,6 +613,9 @@ function act_edit($act){ * * @author Andreas Gohr * @author Michael Klier + * + * @param string $act action command + * @return string action command */ function act_export($act){ global $ID; @@ -600,7 +625,6 @@ function act_export($act){ $pre = ''; $post = ''; - $output = ''; $headers = array(); // search engines: never cache exported docs! (Google only currently) @@ -644,7 +668,7 @@ function act_export($act){ $output = p_wiki_xhtml($ID,$REV,false); break; default: - $output = p_cached_output(wikiFN($ID,$REV), $mode); + $output = p_cached_output(wikiFN($ID,$REV), $mode, $ID); $headers = p_get_metadata($ID,"format $mode"); break; } @@ -672,6 +696,8 @@ function act_export($act){ * Handle sitemap delivery * * @author Michael Hamann + * + * @param string $act action command */ function act_sitemap($act) { global $conf; @@ -720,6 +746,10 @@ function act_sitemap($act) { * Throws exception on error. * * @author Adrian Lang + * + * @param string $act action command + * @return string action command + * @throws Exception if (un)subscribing fails */ function act_subscription($act){ global $lang; @@ -779,6 +809,9 @@ function act_subscription($act){ * default action for the event ACTION_HANDLE_SUBSCRIBE. * * @author Adrian Lang + * + * @param array &$params the parameters: target, style and action + * @throws Exception */ function subscription_handle_post(&$params) { global $INFO; diff --git a/dokuwiki/inc/auth.php b/dokuwiki/inc/auth.php index 4b1e6ce3..d9928cea 100644 --- a/dokuwiki/inc/auth.php +++ b/dokuwiki/inc/auth.php @@ -51,11 +51,6 @@ function auth_setup() { if ($conf['authtype'] === $plugin) { $auth = $plugin_controller->load('auth', $plugin); break; - } elseif ('auth' . $conf['authtype'] === $plugin) { - // matches old auth backends (pre-Weatherwax) - $auth = $plugin_controller->load('auth', $plugin); - msg('Your authtype setting is deprecated. You must set $conf[\'authtype\'] = "auth' . $conf['authtype'] . '"' - . ' in your configuration (see Authentication Backends)',-1,'','',MSG_ADMINS_ONLY); } } @@ -101,10 +96,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 { @@ -127,6 +119,7 @@ function auth_setup() { * Loads the ACL setup and handle user wildcards * * @author Andreas Gohr + * * @return array */ function auth_loadACL() { @@ -173,7 +166,7 @@ function auth_loadACL() { /** * Event hook callback for AUTH_LOGIN_CHECK * - * @param $evdata + * @param array $evdata * @return bool */ function auth_login_wrapper($evdata) { @@ -273,50 +266,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 - * @param string $token The authentication token - * @return boolean 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 - * @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 * @@ -350,6 +299,7 @@ function auth_browseruid() { * and stored in this file. * * @author Andreas Gohr + * * @param bool $addsession if true, the sessionid is added to the salt * @param bool $secure if security is more important than keeping the old value * @return string @@ -372,97 +322,28 @@ function auth_cookiesalt($addsession = false, $secure = false) { } /** - * Return truly (pseudo) random bytes if available, otherwise fall back to mt_rand + * Return cryptographically secure random bytes. * - * @author Mark Seecof - * @author Michael Hamann - * @link http://www.php.net/manual/de/function.mt-rand.php#83655 - * @param int $length number of bytes to get - * @return string binary random strings + * @author Niklas Keller + * + * @param int $length number of bytes + * @return string cryptographically secure random bytes */ function auth_randombytes($length) { - $strong = false; - $rbytes = false; - - if (function_exists('openssl_random_pseudo_bytes') - && (version_compare(PHP_VERSION, '5.3.4') >= 0 - || strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') - ) { - $rbytes = openssl_random_pseudo_bytes($length, $strong); - } - - if (!$strong && function_exists('mcrypt_create_iv') - && (version_compare(PHP_VERSION, '5.3.7') >= 0 - || strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') - ) { - $rbytes = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); - if ($rbytes !== false && strlen($rbytes) === $length) { - $strong = true; - } - } - - // If no strong randoms available, try OS the specific ways - if(!$strong) { - // Unix/Linux platform - $fp = @fopen('/dev/urandom', 'rb'); - if($fp !== false) { - $rbytes = fread($fp, $length); - fclose($fp); - } - - // MS-Windows platform - if(class_exists('COM')) { - // http://msdn.microsoft.com/en-us/library/aa388176(VS.85).aspx - try { - $CAPI_Util = new COM('CAPICOM.Utilities.1'); - $rbytes = $CAPI_Util->GetRandom($length, 0); - - // if we ask for binary data PHP munges it, so we - // request base64 return value. - if($rbytes) $rbytes = base64_decode($rbytes); - } catch(Exception $ex) { - // fail - } - } - } - if(strlen($rbytes) < $length) $rbytes = false; - - // still no random bytes available - fall back to mt_rand() - if($rbytes === false) { - $rbytes = ''; - for ($i = 0; $i < $length; ++$i) { - $rbytes .= chr(mt_rand(0, 255)); - } - } - - return $rbytes; + return random_bytes($length); } /** - * Random number generator using the best available source + * Cryptographically secure random number generator. + * + * @author Niklas Keller * - * @author Michael Samuel - * @author Michael Hamann * @param int $min * @param int $max * @return int */ function auth_random($min, $max) { - $abs_max = $max - $min; - - $nbits = 0; - for ($n = $abs_max; $n > 0; $n >>= 1) { - ++$nbits; - } - - $mask = (1 << $nbits) - 1; - do { - $bytes = auth_randombytes(PHP_INT_SIZE); - $integers = unpack('Inum', $bytes); - $integer = $integers["num"] & $mask; - } while ($integer > $abs_max); - - return $min + $integer; + return random_int($min, $max); } /** @@ -477,7 +358,7 @@ function auth_random($min, $max) { */ function auth_encrypt($data, $secret) { $iv = auth_randombytes(16); - $cipher = new Crypt_AES(); + $cipher = new \phpseclib\Crypt\AES(); $cipher->setPassword($secret); /* @@ -500,7 +381,7 @@ function auth_encrypt($data, $secret) { */ function auth_decrypt($ciphertext, $secret) { $iv = substr($ciphertext, 0, 16); - $cipher = new Crypt_AES(); + $cipher = new \phpseclib\Crypt\AES(); $cipher->setPassword($secret); $cipher->setIV($iv); @@ -514,6 +395,7 @@ function auth_decrypt($ciphertext, $secret) { * off. It also clears session data. * * @author Andreas Gohr + * * @param bool $keepbc - when true, the breadcrumb data is not cleared */ function auth_logoff($keepbc = false) { @@ -554,6 +436,7 @@ function auth_logoff($keepbc = false) { * * @author Andreas Gohr * @see auth_isadmin + * * @param string $user Username * @param array $groups List of groups the user is in * @param bool $adminonly when true checks if user is admin @@ -598,6 +481,7 @@ function auth_ismanager($user = null, $groups = null, $adminonly = false) { * * @author Andreas Gohr * @see auth_ismanager() + * * @param string $user Username * @param array $groups List of groups the user is in * @return bool @@ -612,9 +496,9 @@ function auth_isadmin($user = null, $groups = null) { * * Note: all input should NOT be nameencoded. * - * @param $memberlist string commaseparated list of allowed users and groups - * @param $user string user to match against - * @param $groups array groups the user is member of + * @param string $memberlist commaseparated list of allowed users and groups + * @param string $user user to match against + * @param array $groups groups the user is member of * @return bool true for membership acknowledged */ function auth_isMember($memberlist, $user, array $groups) { @@ -677,6 +561,7 @@ function auth_quickaclcheck($id) { * Returns the maximum rights a user has for the given ID or its namespace * * @author Andreas Gohr + * * @triggers AUTH_ACL_CHECK * @param string $id page ID (needs to be resolved and cleaned) * @param string $user Username @@ -699,6 +584,7 @@ function auth_aclcheck($id, $user, $groups) { * DO NOT CALL DIRECTLY, use auth_aclcheck() instead * * @author Andreas Gohr + * * @param array $data event data * @return int permission level */ @@ -728,27 +614,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); @@ -831,6 +712,10 @@ function auth_aclcheck_cb($data) { * * @author Andreas Gohr * @see rawurldecode() + * + * @param string $name + * @param bool $skip_group + * @return string */ function auth_nameencode($name, $skip_group = false) { global $cache_authname; @@ -912,6 +797,7 @@ function auth_pwgen($foruser = '') { * Sends a password to the given user * * @author Andreas Gohr + * * @param string $user Login name of the user * @param string $password The new password in clear text * @return bool true on success @@ -947,6 +833,7 @@ function auth_sendPassword($user, $password) { * This registers a new user - Data is read directly from $_POST * * @author Andreas Gohr + * * @return bool true on success, false on any error */ function register() { @@ -989,7 +876,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; } @@ -1081,17 +968,25 @@ 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; + if($changes['pass']) { + // update cookie and session with the changed data + 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); + } else { + // make sure the session is writable + @session_start(); + // invalidate session cache + $_SESSION[DOKU_COOKIE]['auth']['time'] = 0; + session_write_close(); + } + + return true; } /** @@ -1128,6 +1023,7 @@ function auth_deleteprofile(){ } } + $deleted = array(); $deleted[] = $INPUT->server->str('REMOTE_USER'); if($auth->triggerUserMod('delete', array($deleted))) { // force and immediate logout including removing the sticky cookie @@ -1171,7 +1067,7 @@ function act_resendpwd() { // we're in token phase - get user info from token $tfile = $conf['cachedir'].'/'.$token{0}.'/'.$token.'.pwauth'; - if(!@file_exists($tfile)) { + if(!file_exists($tfile)) { msg($lang['resendpwdbadauth'], -1); $INPUT->remove('pwauth'); return false; @@ -1203,7 +1099,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; } @@ -1211,7 +1107,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; } @@ -1278,6 +1174,7 @@ function act_resendpwd() { * is chosen. * * @author Andreas Gohr + * * @param string $clear The clear text password * @param string $method The hashing method * @param string $salt A salt, null for random @@ -1302,6 +1199,7 @@ function auth_cryptPassword($clear, $method = '', $salt = null) { * Verifies a cleartext password against a crypted hash * * @author Andreas Gohr + * * @param string $clear The clear text password * @param string $crypt The hash to compare with * @return bool true if both match diff --git a/dokuwiki/inc/blowfish.php b/dokuwiki/inc/blowfish.php index bcf5804a..7499515b 100644 --- a/dokuwiki/inc/blowfish.php +++ b/dokuwiki/inc/blowfish.php @@ -356,7 +356,7 @@ class Horde_Cipher_blowfish * Encrypt a block on data. * * @param String $block The data to encrypt - * @param optional String $key The key to use + * @param String $key optional The key to use * * @return String the encrypted output */ @@ -404,8 +404,8 @@ class Horde_Cipher_blowfish /** * Decrypt a block on data. * - * @param String $block The data to decrypt - * @param optional String $key The key to use + * @param String $block The data to decrypt + * @param String $key optional The key to use * * @return String the decrypted output */ @@ -452,6 +452,7 @@ class Horde_Cipher_blowfish /** * Converts a text key into an array. * + * @param string $key * @return array The key. */ function _formatKey($key) { @@ -464,8 +465,8 @@ class Horde_Cipher_blowfish /** * Encryption using blowfish algorithm * - * @param string original data - * @param string the secret + * @param string $data original data + * @param string $secret the secret * * @return string the encrypted result * @@ -493,8 +494,8 @@ function PMA_blowfish_encrypt($data, $secret) { /** * Decryption using blowfish algorithm * - * @param string encrypted data - * @param string the secret + * @param string $encdata encrypted data + * @param string $secret the secret * * @return string original data * diff --git a/dokuwiki/inc/cache.php b/dokuwiki/inc/cache.php index 6817e771..9375dc86 100644 --- a/dokuwiki/inc/cache.php +++ b/dokuwiki/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); @@ -50,7 +50,7 @@ class cache { $this->_addDependencies(); if ($this->_event) { - return $this->_stats(trigger_event($this->_event,$this,array($this,'_useCache'))); + return $this->_stats(trigger_event($this->_event, $this, array($this,'_useCache'))); } else { return $this->_stats($this->_useCache()); } @@ -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); } /** @@ -203,7 +203,7 @@ class cache_parser extends cache { */ public function _useCache() { - if (!@file_exists($this->file)) return false; // source exists? + if (!file_exists($this->file)) return false; // source exists? return parent::_useCache(); } @@ -308,15 +308,15 @@ 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'); } /** * retrieve the cached data * * @param bool $clean true to clean line endings, false to leave line endings alone - * @return string cache contents + * @return array cache contents */ public function retrieveCache($clean=true) { $contents = io_readFile($this->cache, false); @@ -326,7 +326,7 @@ class cache_instructions extends cache_parser { /** * cache $instructions * - * @param string $instructions the instruction to be cached + * @param array $instructions the instruction to be cached * @return bool true on success, false otherwise */ public function storeCache($instructions) { diff --git a/dokuwiki/inc/changelog.php b/dokuwiki/inc/changelog.php index 6af336fc..d77b0180 100644 --- a/dokuwiki/inc/changelog.php +++ b/dokuwiki/inc/changelog.php @@ -23,6 +23,7 @@ define('DOKU_CHANGE_TYPE_REVERT', 'R'); * @return array|bool parsed line or false */ function parseChangelogLine($line) { + $line = rtrim($line, "\n"); $tmp = explode("\t", $line); if ($tmp!==false && count($tmp)>1) { $info = array(); @@ -32,9 +33,16 @@ function parseChangelogLine($line) { $info['id'] = $tmp[3]; // page id $info['user'] = $tmp[4]; // user name $info['sum'] = $tmp[5]; // edit summary (or action reason) - $info['extra'] = rtrim($tmp[6], "\n"); // extra data (varies by line type) + $info['extra'] = $tmp[6]; // extra data (varies by line type) + if(isset($tmp[7]) && $tmp[7] !== '') { //last item has line-end|| + $info['sizechange'] = (int) $tmp[7]; + } else { + $info['sizechange'] = null; + } return $info; - } else { return false; } + } else { + return false; + } } /** @@ -48,12 +56,13 @@ function parseChangelogLine($line) { * @param array $flags Additional flags in a key value array. * Available flags: * - ExternalEdit - mark as an external edit. + * @param null|int $sizechange Change of filesize * * @author Andreas Gohr * @author Esther Brunner * @author Ben Coburn */ -function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ +function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null, $sizechange = null){ global $conf, $INFO; /** @var Input $INPUT */ global $INPUT; @@ -71,29 +80,37 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr if(!$date) $date = time(); //use current time if none supplied $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; $user = (!$flagExternalEdit)?$INPUT->server->str('REMOTE_USER'):''; + if($sizechange === null) { + $sizechange = ''; + } else { + $sizechange = (int) $sizechange; + } $strip = array("\t", "\n"); $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => utf8_substr(str_replace($strip, '', $summary),0,255), - 'extra' => str_replace($strip, '', $extra) - ); + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => utf8_substr(str_replace($strip, '', $summary), 0, 255), + 'extra' => str_replace($strip, '', $extra), + 'sizechange' => $sizechange + ); + $wasCreated = ($type===DOKU_CHANGE_TYPE_CREATE); + $wasReverted = ($type===DOKU_CHANGE_TYPE_REVERT); // update metadata if (!$wasRemoved) { $oldmeta = p_read_metadata($id); $meta = array(); - if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created + if ($wasCreated && empty($oldmeta['persistent']['date']['created'])){ // newly created $meta['date']['created'] = $created; if ($user){ $meta['creator'] = $INFO['userinfo']['name']; $meta['user'] = $user; } - } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored + } elseif (($wasCreated || $wasReverted) && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored $meta['date']['created'] = $oldmeta['persistent']['date']['created']; $meta['date']['modified'] = $created; // use the files ctime here $meta['creator'] = $oldmeta['persistent']['creator']; @@ -128,8 +145,9 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr * @param array $flags Additional flags in a key value array. * Available flags: * - (none, so far) + * @param null|int $sizechange Change of filesize */ -function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ +function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null, $sizechange = null){ global $conf; /** @var Input $INPUT */ global $INPUT; @@ -139,17 +157,23 @@ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', if(!$date) $date = time(); //use current time if none supplied $remote = clientIP(true); $user = $INPUT->server->str('REMOTE_USER'); + if($sizechange === null) { + $sizechange = ''; + } else { + $sizechange = (int) $sizechange; + } $strip = array("\t", "\n"); $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => utf8_substr(str_replace($strip, '', $summary),0,255), - 'extra' => str_replace($strip, '', $extra) - ); + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => utf8_substr(str_replace($strip, '', $summary), 0, 255), + 'extra' => str_replace($strip, '', $extra), + 'sizechange' => $sizechange + ); // add changelog lines $logline = implode("\t", $logline)."\n"; @@ -349,7 +373,7 @@ function _handleRecent($line,$ns,$flags,&$seen){ // check existance if($flags & RECENTS_SKIP_DELETED){ $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id'])); - if(!@file_exists($fn)) return false; + if(!file_exists($fn)) return false; } return $recent; @@ -496,14 +520,14 @@ abstract class ChangeLog { if($first < 0) { $first = 0; - } else if(@file_exists($this->getFilename())) { + } else if(file_exists($this->getFilename())) { // skip current revision if the page exists $first = max($first + 1, 0); } $file = $this->getChangelogFilename(); - if(!@file_exists($file)) { + if(!file_exists($file)) { return $revs; } if(filesize($file) < $this->chunk_size || $this->chunk_size == 0) { @@ -725,13 +749,15 @@ abstract class ChangeLog { * If file larger than $chuncksize, only chunck is read that could contain $rev. * * @param int $rev revision timestamp - * @return array(fp, array(changeloglines), $head, $tail, $eof)|bool - * returns false when not succeed. fp only defined for chuck reading, needs closing. + * @return array|false + * if success returns array(fp, array(changeloglines), $head, $tail, $eof) + * where fp only defined for chuck reading, needs closing. + * otherwise false */ protected function readloglines($rev) { $file = $this->getChangelogFilename(); - if(!@file_exists($file)) { + if(!file_exists($file)) { return false; } @@ -845,18 +871,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(file_exists($this->getFilename()) && $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; @@ -1032,63 +1057,3 @@ class MediaChangelog extends ChangeLog { return mediaFN($this->id); } } - -/** - * Get the changelog information for a specific page id - * and revision (timestamp). Adjacent changelog lines - * are optimistically parsed and cached to speed up - * consecutive calls to getRevisionInfo. For large - * changelog files, only the chunk containing the - * requested changelog line is read. - * - * @deprecated 2013-11-20 - * - * @author Ben Coburn - * @author Kate Arzamastseva - */ -function getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false) { - dbg_deprecated('class PageChangeLog or class MediaChangelog'); - if($media) { - $changelog = new MediaChangeLog($id, $chunk_size); - } else { - $changelog = new PageChangeLog($id, $chunk_size); - } - return $changelog->getRevisionInfo($rev); -} - -/** - * Return a list of page revisions numbers - * Does not guarantee that the revision exists in the attic, - * only that a line with the date exists in the changelog. - * By default the current revision is skipped. - * - * The current revision is automatically skipped when the page exists. - * See $INFO['meta']['last_change'] for the current revision. - * - * For efficiency, the log lines are parsed and cached for later - * calls to getRevisionInfo. Large changelog files are read - * backwards in chunks until the requested number of changelog - * lines are recieved. - * - * @deprecated 2013-11-20 - * - * @author Ben Coburn - * @author Kate Arzamastseva - * - * @param string $id the page of interest - * @param int $first skip the first n changelog lines - * @param int $num number of revisions to return - * @param int $chunk_size - * @param bool $media - * @return array - */ -function getRevisions($id, $first, $num, $chunk_size = 8192, $media = false) { - dbg_deprecated('class PageChangeLog or class MediaChangelog'); - if($media) { - $changelog = new MediaChangeLog($id, $chunk_size); - } else { - $changelog = new PageChangeLog($id, $chunk_size); - } - return $changelog->getRevisions($first, $num); -} - diff --git a/dokuwiki/inc/cli.php b/dokuwiki/inc/cli.php index 25bfddf7..14e2c0c8 100644 --- a/dokuwiki/inc/cli.php +++ b/dokuwiki/inc/cli.php @@ -108,7 +108,7 @@ abstract class DokuCLI { /** * Print an error message * - * @param $string + * @param string $string */ public function error($string) { $this->colors->ptln("E: $string", 'red', STDERR); @@ -117,7 +117,7 @@ abstract class DokuCLI { /** * Print a success message * - * @param $string + * @param string $string */ public function success($string) { $this->colors->ptln("S: $string", 'green', STDERR); @@ -126,7 +126,7 @@ abstract class DokuCLI { /** * Print an info message * - * @param $string + * @param string $string */ public function info($string) { $this->colors->ptln("I: $string", 'cyan', STDERR); @@ -199,8 +199,8 @@ class DokuCLI_Colors { /** * Convenience function to print a line in a given color * - * @param $line - * @param $color + * @param string $line + * @param string $color * @param resource $channel */ public function ptln($line, $color, $channel = STDOUT) { @@ -470,8 +470,8 @@ class DokuCLI_Options { * Can only be used after parseOptions() has been run * * @param string $option - * @param mixed $default what to return if the option was not set - * @return mixed + * @param bool|string $default what to return if the option was not set + * @return bool|string */ public function getOpt($option, $default = false) { if(isset($this->options[$option])) return $this->options[$option]; @@ -593,8 +593,8 @@ class DokuCLI_Options { /** * Displays text in multiple word wrapped columns * - * @param array $widths list of column widths (in characters) - * @param array $texts list of texts for each column + * @param int[] $widths list of column widths (in characters) + * @param string[] $texts list of texts for each column * @return string */ private function tableFormat($widths, $texts) { @@ -640,6 +640,11 @@ class DokuCLI_Exception extends Exception { const E_OPT_ABIGUOUS = 4; //Option abiguous const E_ARG_READ = 5; //Could not read argv + /** + * @param string $message The Exception message to throw. + * @param int $code The Exception code + * @param Exception $previous The previous exception used for the exception chaining. + */ public function __construct($message = "", $code = 0, Exception $previous = null) { if(!$code) $code = DokuCLI_Exception::E_ANY; parent::__construct($message, $code, $previous); diff --git a/dokuwiki/inc/common.php b/dokuwiki/inc/common.php index 11b8a7e2..d23c0c53 100644 --- a/dokuwiki/inc/common.php +++ b/dokuwiki/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 * @@ -49,7 +75,7 @@ function ptln($string, $indent = 0) { * * @author Andreas Gohr * - * @param $string string being stripped + * @param string $string being stripped * @return string */ function stripctl($string) { @@ -62,12 +88,19 @@ function stripctl($string) { * @author Andreas Gohr * @link http://en.wikipedia.org/wiki/Cross-site_request_forgery * @link http://christ1an.blogspot.com/2007/04/preventing-csrf-efficiently.html + * * @return string */ function getSecurityToken() { /** @var Input $INPUT */ global $INPUT; - return PassHash::hmac('md5', session_id().$INPUT->server->str('REMOTE_USER'), auth_cookiesalt()); + + $user = $INPUT->server->str('REMOTE_USER'); + $session = session_id(); + + // CSRF checks are only for logged in users - do not generate for anonymous + if(trim($user) == '' || trim($session) == '') return ''; + return PassHash::hmac('md5', $session.$user, auth_cookiesalt()); } /** @@ -95,7 +128,7 @@ function checkSecurityToken($token = null) { * @author Andreas Gohr * * @param bool $print if true print the field, otherwise html of the field is returned - * @return void|string html of hidden form field + * @return string html of hidden form field */ function formSecurityToken($print = true) { $ret = '
    '."\n"; @@ -120,6 +153,7 @@ function basicinfo($id, $htmlClient=true){ global $INPUT; // set info about manager/admin status. + $info = array(); $info['isadmin'] = false; $info['ismanager'] = false; if($INPUT->server->has('REMOTE_USER')) { @@ -185,8 +219,8 @@ function pageinfo() { } $info['locked'] = checklock($ID); - $info['filepath'] = fullpath(wikiFN($ID)); - $info['exists'] = @file_exists($info['filepath']); + $info['filepath'] = wikiFN($ID); + $info['exists'] = file_exists($info['filepath']); $info['currentrev'] = @filemtime($info['filepath']); if($REV) { //check if current revision was meant @@ -199,8 +233,8 @@ function pageinfo() { msg($lang['nosecedit'], 0); } else { //really use old revision - $info['filepath'] = fullpath(wikiFN($ID, $REV)); - $info['exists'] = @file_exists($info['filepath']); + $info['filepath'] = wikiFN($ID, $REV); + $info['exists'] = file_exists($info['filepath']); } } $info['rev'] = $REV; @@ -254,7 +288,7 @@ function pageinfo() { // draft $draft = getCacheName($info['client'].$ID, '.draft'); - if(@file_exists($draft)) { + if(file_exists($draft)) { if(@filemtime($draft) < @filemtime(wikiFN($ID))) { // remove stale draft @unlink($draft); @@ -335,7 +369,7 @@ function buildAttributes($params, $skipempty = false) { * * @author Andreas Gohr * - * @return array(pageid=>name, ... ) + * @return string[] with the data: array(pageid=>name, ... ) */ function breadcrumbs() { // we prepare the breadcrumbs early for quick session closing @@ -350,7 +384,7 @@ function breadcrumbs() { $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array(); //we only save on show and existing wiki documents $file = wikiFN($ID); - if($ACT != 'show' || !@file_exists($file)) { + if($ACT != 'show' || !file_exists($file)) { $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; return $crumbs; } @@ -688,6 +722,7 @@ function checkwordblock($text = '') { } if(count($re) && preg_match('#('.join('|', $re).')#si', $text, $matches)) { // prepare event data + $data = array(); $data['matches'] = $matches; $data['userinfo']['ip'] = $INPUT->server->str('REMOTE_ADDR'); if($INPUT->server->str('REMOTE_USER')) { @@ -805,6 +840,17 @@ function clientismobile() { return false; } +/** + * check if a given link is interwiki link + * + * @param string $link the link, e.g. "wiki>page" + * @return bool + */ +function link_isinterwiki($link){ + if (preg_match('/^[a-zA-Z0-9\.]+>/u',$link)) return true; + return false; +} + /** * Convert one or more comma separated IPs to hostnames * @@ -850,7 +896,7 @@ function checklock($id) { $lock = wikiLockFN($id); //no lockfile - if(!@file_exists($lock)) return false; + if(!file_exists($lock)) return false; //lockfile expired if((time() - filemtime($lock)) > $conf['locktime']) { @@ -904,7 +950,7 @@ function unlock($id) { global $INPUT; $lock = wikiLockFN($id); - if(@file_exists($lock)) { + if(file_exists($lock)) { @list($ip, $session) = explode("\n", io_readFile($lock)); if($ip == $INPUT->server->str('REMOTE_USER') || $ip == clientIP() || $session == session_id()) { @unlink($lock); @@ -971,7 +1017,7 @@ function rawLocale($id, $ext = 'txt') { * @author Andreas Gohr * * @param string $id page id - * @param string $rev timestamp when a revision of wikitext is desired + * @param string|int $rev timestamp when a revision of wikitext is desired * @return string */ function rawWiki($id, $rev = '') { @@ -1007,13 +1053,13 @@ function pageTemplate($id) { // if the before event did not set a template file, try to find one if(empty($data['tplfile'])) { $path = dirname(wikiFN($id)); - if(@file_exists($path.'/_template.txt')) { + if(file_exists($path.'/_template.txt')) { $data['tplfile'] = $path.'/_template.txt'; } else { // search upper namespaces for templates $len = strlen(rtrim($conf['datadir'], '/')); while(strlen($path) >= $len) { - if(@file_exists($path.'/__template.txt')) { + if(file_exists($path.'/__template.txt')) { $data['tplfile'] = $path.'/__template.txt'; break; } @@ -1111,7 +1157,7 @@ function parsePageTemplate(&$data) { * @param string $range in form "from-to" * @param string $id page id * @param string $rev optional, the revision timestamp - * @return array with three slices + * @return string[] with three slices */ function rawWikiSlices($range, $id, $rev = '') { $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); @@ -1122,6 +1168,7 @@ function rawWikiSlices($range, $id, $rev = '') { $from = !$from ? 0 : ($from - 1); $to = !$to ? strlen($text) : ($to - 1); + $slices = array(); $slices[0] = substr($text, 0, $from); $slices[1] = substr($text, $from, $to - $from); $slices[2] = substr($text, $to); @@ -1160,6 +1207,48 @@ 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; + + $fileLastMod = wikiFN($id); + $lastMod = @filemtime($fileLastMod); // from page + $pagelog = new PageChangeLog($id, 1024); + $lastRev = $pagelog->getRevisions(-1, 1); // from changelog + $lastRev = (int) (empty($lastRev) ? 0 : $lastRev[0]); + + if(!file_exists(wikiFN($id, $lastMod)) && file_exists($fileLastMod) && $lastMod >= $lastRev) { + // add old revision to the attic if missing + saveOldRevision($id); + // add a changelog entry if this edit came from outside dokuwiki + if($lastMod > $lastRev) { + $fileLastRev = wikiFN($id, $lastRev); + $revinfo = $pagelog->getRevisionInfo($lastRev); + if(empty($lastRev) || !file_exists($fileLastRev) || $revinfo['type'] == DOKU_CHANGE_TYPE_DELETE) { + $filesize_old = 0; + } else { + $filesize_old = io_getSizeFile($fileLastRev); + } + $filesize_new = filesize($fileLastMod); + $sizechange = $filesize_new - $filesize_old; + + addLogEntry($lastMod, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=> true), $sizechange); + // remove soon to be stale instructions + $cache = new cache_instructions($id, $fileLastMod); + $cache->removeCache(); + } + } +} + /** * Saves a wikitext by calling io_writeWikiPage. * Also directs changelog and attic updates. @@ -1185,77 +1274,88 @@ 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; + $svdta['sizechange'] = null; - $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_CREATE || + ($svdta['changeType'] == DOKU_CHANGE_TYPE_REVERT && !file_exists($svdta['file'])) + ) { + $filesize_old = 0; + } else { + $filesize_old = filesize($svdta['file']); + } + 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); + $svdta['newRevision'] = saveOldRevision($id); // remove empty file - @unlink($file); + @unlink($svdta['file']); + $filesize_new = 0; // 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'], $svdta['newContent'], $id); // pre-save the revision, to keep the attic in sync - $newRev = saveOldRevision($id); - $del = false; + $svdta['newRevision'] = saveOldRevision($id); + $filesize_new = filesize($svdta['file']); } + $svdta['sizechange'] = $filesize_new - $filesize_old; - // 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($svdta['newRevision'], $svdta['id'], $svdta['changeType'], $svdta['summary'], $svdta['changeInfo'], null, $svdta['sizechange']); - addLogEntry($newRev, $id, $type, $summary, $extra); // 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()); @@ -1281,7 +1381,7 @@ function saveWikiText($id, $text, $summary, $minor = false) { */ function saveOldRevision($id) { $oldf = wikiFN($id); - if(!@file_exists($oldf)) return ''; + if(!file_exists($oldf)) return ''; $date = filemtime($oldf); $newf = wikiFN($id, $date); io_writeWikiPage($newf, rawWiki($id), $id, $date); @@ -1296,7 +1396,7 @@ function saveOldRevision($id) { * @param int|string $rev Old page revision * @param string $summary What changed * @param boolean $minor Is this a minor edit? - * @param array $replace Additional string substitutions, @KEY@ to be replaced by value + * @param string[] $replace Additional string substitutions, @KEY@ to be replaced by value * @return bool * * @author Andreas Gohr @@ -1376,8 +1476,8 @@ function getGoogleQuery() { /** * Return the human readable size of a file * - * @param int $size A file size - * @param int $dec A number of decimal places + * @param int $size A file size + * @param int $dec A number of decimal places * @return string human readable size * * @author Martin Benjamin @@ -1394,7 +1494,7 @@ function filesize_h($size, $dec = 1) { $i++; } - return round($size, $dec).' '.$sizes[$i]; + return round($size, $dec)."\xC2\xA0".$sizes[$i]; //non-breaking space } /** @@ -1458,9 +1558,9 @@ function dformat($dt = null, $format = '') { * Formats a timestamp as ISO 8601 date * * @author - * @link http://www.php.net/manual/en/function.date.php#54072 + * @link http://php.net/manual/en/function.date.php#54072 * - * @param int $int_date: current date in UNIX timestamp + * @param int $int_date current date in UNIX timestamp * @return string */ function date_iso8601($int_date) { @@ -1519,7 +1619,7 @@ function unslash($string, $char = "'") { * Convert php.ini shorthands to byte * * @author - * @link http://de3.php.net/manual/en/ini.core.php#79564 + * @link http://php.net/manual/en/ini.core.php#79564 * * @param string $v shorthands * @return int|string @@ -1739,7 +1839,7 @@ function license_img($type) { $try[] = 'lib/images/license/'.$type.'/cc.png'; } foreach($try as $src) { - if(@file_exists(DOKU_INC.$src)) return $src; + if(file_exists(DOKU_INC.$src)) return $src; } return ''; } @@ -1789,6 +1889,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; @@ -1803,17 +1905,6 @@ function send_redirect($url) { // always close the session session_write_close(); - // work around IE bug - // http://www.ianhoar.com/2008/11/16/internet-explorer-6-and-redirected-anchor-links/ - @list($url, $hash) = explode('#', $url); - if($hash) { - if(strpos($url, '?')) { - $url = $url.'&#'.$hash; - } else { - $url = $url.'?&#'.$hash; - } - } - // check if running on IIS < 6 with CGI-PHP if($INPUT->server->has('SERVER_SOFTWARE') && $INPUT->server->has('GATEWAY_INTERFACE') && (strpos($INPUT->server->str('GATEWAY_INTERFACE'), 'CGI') !== false) && @@ -1824,6 +1915,8 @@ function send_redirect($url) { } else { header('Location: '.$url); } + + if(defined('DOKU_UNITTEST')) return; // no exits during unit tests exit; } @@ -1865,7 +1958,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) { @@ -1880,6 +1973,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 @@ -1896,12 +1990,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); } @@ -1914,10 +2013,39 @@ function set_doku_pref($pref, $val) { /** * Strips source mapping declarations from given text #601 * - * @param &string $text reference to the CSS or JavaScript code to clean + * @param string &$text reference to the CSS or JavaScript code to clean */ function stripsourcemaps(&$text){ $text = preg_replace('/^(\/\/|\/\*)[@#]\s+sourceMappingURL=.*?(\*\/)?$/im', '\\1\\2', $text); } +/** + * Returns the contents of a given SVG file for embedding + * + * Inlining SVGs saves on HTTP requests and more importantly allows for styling them through + * CSS. However it should used with small SVGs only. The $maxsize setting ensures only small + * files are embedded. + * + * This strips unneeded headers, comments and newline. The result is not a vaild standalone SVG! + * + * @param string $file full path to the SVG file + * @param int $maxsize maximum allowed size for the SVG to be embedded + * @return string|false the SVG content, false if the file couldn't be loaded + */ +function inlineSVG($file, $maxsize = 2048) { + $file = trim($file); + if($file === '') return false; + if(!file_exists($file)) return false; + if(filesize($file) > $maxsize) return false; + if(!is_readable($file)) return false; + $content = file_get_contents($file); + $content = preg_replace('/)/s','', $content); // comments + $content = preg_replace('/<\?xml .*?\?>/i', '', $content); // xml header + $content = preg_replace('//i', '', $content); // doc type + $content = preg_replace('/>\s+<', $content); // newlines between tags + $content = trim($content); + if(substr($content, 0, 5) !== ' array(DOKU_CONF . 'wordblock.local.conf'), ), 'userstyle' => array( - 'screen' => DOKU_CONF . 'userstyle.css', - 'print' => DOKU_CONF . 'userprint.css', - 'feed' => DOKU_CONF . 'userfeed.css', - 'all' => DOKU_CONF . 'userall.css', + 'screen' => array(DOKU_CONF . 'userstyle.css', DOKU_CONF . 'userstyle.less'), + 'print' => array(DOKU_CONF . 'userprint.css', DOKU_CONF . 'userprint.less'), + 'feed' => array(DOKU_CONF . 'userfeed.css', DOKU_CONF . 'userfeed.less'), + 'all' => array(DOKU_CONF . 'userall.css', DOKU_CONF . 'userall.less') ), 'userscript' => array( - 'default' => DOKU_CONF . 'userscript.js' + 'default' => array(DOKU_CONF . 'userscript.js') ), 'acl' => array( 'default' => DOKU_CONF . 'acl.auth.php', ), 'plainauth.users' => array( 'default' => DOKU_CONF . 'users.auth.php', + 'protected' => '' // not used by default ), 'plugins' => array( 'default' => array(DOKU_CONF . 'plugins.php'), diff --git a/dokuwiki/inc/confutils.php b/dokuwiki/inc/confutils.php index 31371d41..e3d2bf99 100644 --- a/dokuwiki/inc/confutils.php +++ b/dokuwiki/inc/confutils.php @@ -6,6 +6,12 @@ * @author Harry Fuecks */ +/* + * 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 @@ -14,6 +20,10 @@ * are returned. * * @author Andreas Gohr + * + * @param string $file file name + * @param bool $knownonly + * @return array with extension, mimetype and if it should be downloaded */ function mimetype($file, $knownonly=true){ $mtypes = getMimeTypes(); // known mimetypes @@ -45,6 +55,7 @@ function getMimeTypes() { static $mime = null; if ( !$mime ) { $mime = retrieveConfig('mime','confToHash'); + $mime = array_filter($mime); } return $mime; } @@ -58,6 +69,7 @@ function getAcronyms() { static $acronyms = null; if ( !$acronyms ) { $acronyms = retrieveConfig('acronyms','confToHash'); + $acronyms = array_filter($acronyms, 'strlen'); } return $acronyms; } @@ -71,6 +83,7 @@ function getSmileys() { static $smileys = null; if ( !$smileys ) { $smileys = retrieveConfig('smileys','confToHash'); + $smileys = array_filter($smileys, 'strlen'); } return $smileys; } @@ -84,6 +97,7 @@ function getEntities() { static $entities = null; if ( !$entities ) { $entities = retrieveConfig('entities','confToHash'); + $entities = array_filter($entities, 'strlen'); } return $entities; } @@ -97,12 +111,60 @@ 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; } +/** + * Returns the jquery script URLs for the versions defined in lib/scripts/jquery/versions + * + * @trigger CONFUTIL_CDN_SELECT + * @return array + */ +function getCdnUrls() { + global $conf; + + // load version info + $versions = array(); + $lines = file(DOKU_INC . 'lib/scripts/jquery/versions'); + foreach($lines as $line) { + $line = trim(preg_replace('/#.*$/', '', $line)); + if($line === '') continue; + list($key, $val) = explode('=', $line, 2); + $key = trim($key); + $val = trim($val); + $versions[$key] = $val; + } + + $src = array(); + $data = array( + 'versions' => $versions, + 'src' => &$src + ); + $event = new Doku_Event('CONFUTIL_CDN_SELECT', $data); + if($event->advise_before()) { + if(!$conf['jquerycdn']) { + $jqmod = md5(join('-', $versions)); + $src[] = DOKU_BASE . 'lib/exe/jquery.php' . '?tseed=' . $jqmod; + } elseif($conf['jquerycdn'] == 'jquery') { + $src[] = sprintf('https://code.jquery.com/jquery-%s.min.js', $versions['JQ_VERSION']); + $src[] = sprintf('https://code.jquery.com/jquery-migrate-%s.min.js', $versions['JQM_VERSION']); + $src[] = sprintf('https://code.jquery.com/ui/%s/jquery-ui.min.js', $versions['JQUI_VERSION']); + } elseif($conf['jquerycdn'] == 'cdnjs') { + $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jquery/%s/jquery.min.js', $versions['JQ_VERSION']); + $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/%s/jquery-migrate.min.js', $versions['JQM_VERSION']); + $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jqueryui/%s/jquery-ui.min.js', $versions['JQUI_VERSION']); + } + } + $event->advise_after(); + + return $src; +} + /** * returns array of wordblock patterns * @@ -110,7 +172,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; } @@ -123,11 +185,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; } @@ -190,9 +252,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(); @@ -202,9 +269,9 @@ function retrieveConfig($type,$fn,$params=null) { foreach (array('default','local','protected') as $config_group) { if (empty($config_cascade[$type][$config_group])) continue; foreach ($config_cascade[$type][$config_group] as $file) { - if (@file_exists($file)) { + if (file_exists($file)) { $config = call_user_func_array($fn,array_merge(array($file),$params)); - $combined = array_merge($combined, $config); + $combined = $combine($combined, $config); } } } @@ -288,6 +355,7 @@ function actionOK($action){ */ function useHeading($linktype) { static $useHeading = null; + if(defined('DOKU_UNITTEST')) $useHeading = null; // don't cache during unit tests if (is_null($useHeading)) { global $conf; @@ -339,8 +407,31 @@ function conf_decodeString($str) { switch (substr($str,0,3)) { case '' : return base64_decode(substr($str,3)); case '' : return convert_uudecode(substr($str,3)); - default: // not encode (or unknown) + default: // not encoded (or unknown) 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/dokuwiki/inc/events.php b/dokuwiki/inc/events.php index 318a7617..35d55d0e 100644 --- a/dokuwiki/inc/events.php +++ b/dokuwiki/inc/events.php @@ -27,8 +27,11 @@ class Doku_Event { /** * event constructor + * + * @param string $name + * @param mixed $data */ - function Doku_Event($name, &$data) { + function __construct($name, &$data) { $this->name = $name; $this->data =& $data; @@ -120,14 +123,18 @@ class Doku_Event { * stop any further processing of the event by event handlers * this function does not prevent the default action taking place */ - function stopPropagation() { $this->_continue = false; } + function stopPropagation() { + $this->_continue = false; + } /** * preventDefault * * prevent the default action taking place */ - function preventDefault() { $this->_default = false; } + function preventDefault() { + $this->_default = false; + } } /** @@ -146,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 */ @@ -165,13 +172,13 @@ class Doku_Event_Handler { * * register a hook for an event * - * @param $event string name used by the event, (incl '_before' or '_after' for triggers) - * @param $advise string - * @param $obj object object in whose scope method is to be executed, + * @param string $event string name used by the event, (incl '_before' or '_after' for triggers) + * @param string $advise + * @param object $obj object in whose scope method is to be executed, * if NULL, method is assumed to be a globally available function - * @param $method string event handler function - * @param $param mixed data passed to the event handler - * @param $seq int sequence number for ordering hook execution (ascending) + * @param string $method event handler function + * @param mixed $param data passed to the event handler + * @param int $seq sequence number for ordering hook execution (ascending) */ function register_hook($event, $advise, $obj, $method, $param=null, $seq=0) { $seq = (int)$seq; @@ -216,14 +223,14 @@ class Doku_Event_Handler { * * function wrapper to process (create, trigger and destroy) an event * - * @param $name string name for the event - * @param $data mixed event data - * @param $action callback (optional, default=NULL) default action, a php callback function - * @param $canPreventDefault bool (optional, default=true) can hooks prevent the default action + * @param string $name name for the event + * @param mixed $data event data + * @param callback $action (optional, default=NULL) default action, a php callback function + * @param bool $canPreventDefault (optional, default=true) can hooks prevent the default action * * @return mixed the event results value after all event processing is complete - * by default this is the return value of the default action however - * it can be set or modified by event handler hooks + * by default this is the return value of the default action however + * it can be set or modified by event handler hooks */ function trigger_event($name, &$data, $action=null, $canPreventDefault=true) { diff --git a/dokuwiki/inc/farm.php b/dokuwiki/inc/farm.php index cee61816..87fcdade 100644 --- a/dokuwiki/inc/farm.php +++ b/dokuwiki/inc/farm.php @@ -135,12 +135,12 @@ $config_cascade = array( ), ), 'userstyle' => array( - 'screen' => DOKU_CONF.'userstyle.css', - 'print' => DOKU_CONF.'userprint.css', - 'feed' => DOKU_CONF.'userfeed.css', - 'all' => DOKU_CONF.'userall.css', + 'screen' => array(DOKU_CONF . 'userstyle.css', DOKU_CONF . 'userstyle.less'), + 'print' => array(DOKU_CONF . 'userprint.css', DOKU_CONF . 'userprint.less'), + 'feed' => array(DOKU_CONF . 'userfeed.css', DOKU_CONF . 'userfeed.less'), + 'all' => array(DOKU_CONF . 'userall.css', DOKU_CONF . 'userall.less') ), 'userscript' => array( - 'default' => DOKU_CONF.'userscript.js' + 'default' => array(DOKU_CONF . 'userscript.js') ), ); diff --git a/dokuwiki/inc/feedcreator.class.php b/dokuwiki/inc/feedcreator.class.php index b90da572..fe444b39 100644 --- a/dokuwiki/inc/feedcreator.class.php +++ b/dokuwiki/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 */ 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/dokuwiki/inc/fetch.functions.php b/dokuwiki/inc/fetch.functions.php index c61c5450..b8e75eae 100644 --- a/dokuwiki/inc/fetch.functions.php +++ b/dokuwiki/inc/fetch.functions.php @@ -1,4 +1,4 @@ - * @author Ben Coburn * @author Gerry Weissbach + * * @param string $file local file to send * @param string $mime mime type of the file * @param bool $dl set to true to force a browser download @@ -46,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 @@ -71,9 +69,9 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) { //download or display? if($dl) { - header('Content-Disposition: attachment; filename="'.utf8_basename($orig).'";'); + header('Content-Disposition: attachment;'.rfc2231_encode('filename', utf8_basename($orig)).';'); } else { - header('Content-Disposition: inline; filename="'.utf8_basename($orig).'";'); + header('Content-Disposition: inline;'.rfc2231_encode('filename', utf8_basename($orig)).';'); } //use x-sendfile header to pass the delivery to compatible webservers @@ -89,6 +87,31 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) { } } +/** + * Try an rfc2231 compatible encoding. This ensures correct + * interpretation of filenames outside of the ASCII set. + * This seems to be needed for file names with e.g. umlauts that + * would otherwise decode wrongly in IE. + * + * There is no additional checking, just the encoding and setting the key=value for usage in headers + * + * @author Gerry Weissbach + * @param string $name name of the field to be set in the header() call + * @param string $value value of the field to be set in the header() call + * @param string $charset used charset for the encoding of value + * @param string $lang language used. + * @return string in the format " name=value" for values WITHOUT special characters + * @return string in the format " name*=charset'lang'value" for values WITH special characters + */ +function rfc2231_encode($name, $value, $charset='utf-8', $lang='en') { + $internal = preg_replace_callback('/[\x00-\x20*\'%()<>@,;:\\\\"\/[\]?=\x80-\xFF]/', function($match) { return rawurlencode($match[0]); }, $value); + if ( $value != $internal ) { + return ' '.$name.'*='.$charset."'".$lang."'".$internal; + } else { + return ' '.$name.'="'.$value.'"'; + } +} + /** * Check for media for preconditions and return correct status code * @@ -96,12 +119,13 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) { * WRITE: MEDIA, FILE, array( STATUS, STATUSMESSAGE ) * * @author Gerry Weissbach + * * @param string $media reference to the media id * @param string $file reference to the file variable * @param string $rev * @param int $width * @param int $height - * @return array(STATUS, STATUSMESSAGE) + * @return array as array(STATUS, STATUSMESSAGE) */ function checkFileStatus(&$media, &$file, $rev = '', $width=0, $height=0) { global $MIME, $EXT, $CACHE, $INPUT; @@ -136,7 +160,7 @@ function checkFileStatus(&$media, &$file, $rev = '', $width=0, $height=0) { } //check file existance - if(!@file_exists($file)) { + if(!file_exists($file)) { return array(404, 'Not Found'); } @@ -149,6 +173,9 @@ function checkFileStatus(&$media, &$file, $rev = '', $width=0, $height=0) { * Resolves named constants * * @author Andreas Gohr + * + * @param string $cache + * @return int cachetime in seconds */ function calc_cache($cache) { global $conf; diff --git a/dokuwiki/inc/form.php b/dokuwiki/inc/form.php index fadc71d3..91a17155 100644 --- a/dokuwiki/inc/form.php +++ b/dokuwiki/inc/form.php @@ -52,9 +52,10 @@ class Doku_Form { * @param bool|string $action (optional, deprecated) submit URL, defaults to current page * @param bool|string $method (optional, deprecated) 'POST' or 'GET', default is POST * @param bool|string $enctype (optional, deprecated) Encoding type of the data + * * @author Tom N Harris */ - 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; @@ -84,6 +85,7 @@ class Doku_Form { * Usually results in a border drawn around the form. * * @param string $legend Label that will be printed with the border. + * * @author Tom N Harris */ function startFieldset($legend) { @@ -115,6 +117,7 @@ class Doku_Form { * * @param string $name Field name. * @param string $value Field value. If null, remove a previously added field. + * * @author Tom N Harris */ function addHidden($name, $value) { @@ -132,6 +135,7 @@ class Doku_Form { * If string, it is printed without escaping special chars. * * * @param string|array $elem Pseudo-tag or string to add to the form. + * * @author Tom N Harris */ function addElement($elem) { @@ -145,6 +149,7 @@ class Doku_Form { * * @param string $pos 0-based index where the element will be inserted. * @param string|array $elem Pseudo-tag or string to add to the form. + * * @author Tom N Harris */ function insertElement($pos, $elem) { @@ -158,6 +163,7 @@ class Doku_Form { * * @param int $pos 0-based index the element will be placed at. * @param string|array $elem Pseudo-tag or string to add to the form. + * * @author Tom N Harris */ function replaceElement($pos, $elem) { @@ -172,7 +178,8 @@ class Doku_Form { * Gets the position of the first of a type of element. * * @param string $type Element type to look for. - * @return int position of element if found, otherwise false + * @return int|false position of element if found, otherwise false + * * @author Tom N Harris */ function findElementByType($type) { @@ -189,7 +196,8 @@ class Doku_Form { * Gets the position of the element with an ID attribute. * * @param string $id ID of the element to find. - * @return int position of element if found, otherwise false + * @return int|false position of element if found, otherwise false + * * @author Tom N Harris */ function findElementById($id) { @@ -207,7 +215,8 @@ class Doku_Form { * * @param string $name Attribute name. * @param string $value Attribute value. - * @return int position of element if found, otherwise false + * @return int|false position of element if found, otherwise false + * * @author Tom N Harris */ function findElementByAttribute($name, $value) { @@ -227,6 +236,7 @@ class Doku_Form { * * @param int $pos 0-based index * @return array reference pseudo-element + * * @author Tom N Harris */ function &getElementAt($pos) { @@ -243,6 +253,8 @@ class Doku_Form { * 'form_$type'. The function should return the HTML to be printed. * * @author Tom N Harris + * + * @return string html of the form */ function getForm() { global $lang; @@ -310,6 +322,7 @@ class Doku_Form { * @param string $tag Tag name. * @param array $attrs Optional attributes. * @return array pseudo-tag + * * @author Tom N Harris */ function form_makeTag($tag, $attrs=array()) { @@ -326,6 +339,7 @@ function form_makeTag($tag, $attrs=array()) { * @param string $tag Tag name. * @param array $attrs Optional attributes. * @return array pseudo-tag + * * @author Tom N Harris */ function form_makeOpenTag($tag, $attrs=array()) { @@ -341,6 +355,7 @@ function form_makeOpenTag($tag, $attrs=array()) { * * @param string $tag Tag name. * @return array pseudo-tag + * * @author Tom N Harris */ function form_makeCloseTag($tag) { @@ -358,6 +373,7 @@ function form_makeCloseTag($tag) { * @param string $text Text to fill the field with. * @param array $attrs Optional attributes. * @return array pseudo-tag + * * @author Tom N Harris */ function form_makeWikiText($text, $attrs=array()) { @@ -378,12 +394,13 @@ function form_makeWikiText($text, $attrs=array()) { * @param string $value (optional) Displayed label. Uses $act if not provided. * @param array $attrs Optional attributes. * @return array pseudo-tag + * * @author Tom N Harris */ 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']).']'; } @@ -406,6 +423,7 @@ function form_makeButton($type, $act, $value='', $attrs=array()) { * reference it with a 'for' attribute. * @param array $attrs Optional attributes. * @return array pseudo-tag + * * @author Tom N Harris */ function form_makeField($type, $name, $value='', $label=null, $id='', $class='', $attrs=array()) { @@ -522,6 +540,18 @@ function form_makeRadioField($name, $value='1', $label=null, $id='', $class='', * a string. * * @author Tom N Harris + * + * @param string $name Name attribute of the input. + * @param string[]|array[] $values The list of values can be strings, arrays of (value,text), + * or an associative array with the values as keys and labels as values. + * @param string|int $selected default selected value, string or index number + * @param string $class Class attribute of the label. If this is 'block', + * then a line break will be added after the field. + * @param string $label Label that will be printed before the input. + * @param string $id ID attribute of the input. If set, the label will + * reference it with a 'for' attribute. + * @param array $attrs Optional attributes. + * @return array pseudo-tag */ function form_makeMenuField($name, $values, $selected='', $label=null, $id='', $class='', $attrs=array()) { if (is_null($label)) $label = $name; @@ -556,6 +586,18 @@ function form_makeMenuField($name, $values, $selected='', $label=null, $id='', $ * Items are selected by supplying its value or an array of values. * * @author Tom N Harris + * + * @param string $name Name attribute of the input. + * @param string[]|array[] $values The list of values can be strings, arrays of (value,text), + * or an associative array with the values as keys and labels as values. + * @param array|string $selected value or array of values of the items that need to be selected + * @param string $class Class attribute of the label. If this is 'block', + * then a line break will be added after the field. + * @param string $label Label that will be printed before the input. + * @param string $id ID attribute of the input. If set, the label will + * reference it with a 'for' attribute. + * @param array $attrs Optional attributes. + * @return array pseudo-tag */ function form_makeListboxField($name, $values, $selected='', $label=null, $id='', $class='', $attrs=array()) { if (is_null($label)) $label = $name; @@ -595,6 +637,9 @@ function form_makeListboxField($name, $values, $selected='', $label=null, $id='' * Attributes are passed to buildAttributes() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html of tag */ function form_tag($attrs) { return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'/>'; @@ -608,6 +653,9 @@ function form_tag($attrs) { * Attributes are passed to buildAttributes() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html of tag */ function form_opentag($attrs) { return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'>'; @@ -621,6 +669,9 @@ function form_opentag($attrs) { * There are no attributes. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html of tag */ function form_closetag($attrs) { return ''; @@ -634,6 +685,9 @@ function form_closetag($attrs) { * Attributes are passed to buildAttributes() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_openfieldset($attrs) { $s = '
    '; @@ -648,6 +702,8 @@ function form_openfieldset($attrs) { * There are no attributes. * * @author Tom N Harris + * + * @return string html */ function form_closefieldset() { return '
    '; @@ -661,6 +717,9 @@ function form_closefieldset() { * Value is passed to formText() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_hidden($attrs) { return ''; @@ -674,6 +733,9 @@ function form_hidden($attrs) { * Text will be passed to formText(), attributes to buildAttributes() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_wikitext($attrs) { // mandatory attributes @@ -693,10 +755,15 @@ function form_wikitext($attrs) { * Other attributes are passed to buildAttributes() * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_button($attrs) { $p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : ''; - return ''; + $value = $attrs['value']; + unset($attrs['value']); + return ''; } /** @@ -708,6 +775,9 @@ function form_button($attrs) { * Other attributes are passed to buildAttributes() for the input tag. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_field($attrs) { $s = ' + * + * @param array $attrs attributes + * @return string html */ function form_fieldright($attrs) { $s = ' + * + * @param array $attrs attributes + * @return string html */ function form_textfield($attrs) { // mandatory attributes @@ -773,6 +849,9 @@ function form_textfield($attrs) { * Other attributes are passed to buildAttributes() for the input tag. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_passwordfield($attrs) { // mandatory attributes @@ -798,6 +877,9 @@ function form_passwordfield($attrs) { * Other attributes are passed to buildAttributes() for the input tag * * @author Michael Klier + * + * @param array $attrs attributes + * @return string html */ function form_filefield($attrs) { $s = ' + * + * @param array $attrs attributes + * @return string html */ function form_checkboxfield($attrs) { // mandatory attributes @@ -853,6 +938,9 @@ function form_checkboxfield($attrs) { * Other attributes are passed to buildAttributes() for the input tag. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_radiofield($attrs) { // mandatory attributes @@ -879,6 +967,9 @@ function form_radiofield($attrs) { * Other attributes are passed to buildAttributes() for the input tag. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_menufield($attrs) { $attrs['size'] = '1'; @@ -924,6 +1015,9 @@ function form_menufield($attrs) { * Other attributes are passed to buildAttributes() for the input tag. * * @author Tom N Harris + * + * @param array $attrs attributes + * @return string html */ function form_listboxfield($attrs) { $s = ' * @author Kazutaka Miyasaka + * + * @param array $data event data + * @return array matching documents */ function _ft_pageSearch(&$data) { $Indexer = idx_get_indexer(); @@ -205,6 +212,11 @@ function ft_mediause($id, $ignore_perms = false){ * @triggers SEARCH_QUERY_PAGELOOKUP * @author Andreas Gohr * @author Adrian Lang + * + * @param string $id page id + * @param bool $in_ns match against namespace as well? + * @param bool $in_title search in title? + * @return string[] */ function ft_pageLookup($id, $in_ns=false, $in_title=false){ $data = compact('id', 'in_ns', 'in_title'); @@ -212,6 +224,12 @@ function ft_pageLookup($id, $in_ns=false, $in_title=false){ return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } +/** + * Returns list of pages as array(pageid => First Heading) + * + * @param array &$data event data + * @return string[] + */ function _ft_pageLookup(&$data){ // split out original parameters $id = $data['id']; @@ -269,6 +287,10 @@ function _ft_pageLookup(&$data){ * Tiny helper function for comparing the searched title with the title * from the search index. This function is a wrapper around stripos with * adapted argument order and return value. + * + * @param string $search searched title + * @param string $title title from index + * @return bool */ function _ft_pageLookupTitleCompare($search, $title) { return stripos($title, $search) !== false; @@ -278,6 +300,10 @@ function _ft_pageLookupTitleCompare($search, $title) { * Sort pages based on their namespace level first, then on their string * values. This makes higher hierarchy pages rank higher than lower hierarchy * pages. + * + * @param string $a + * @param string $b + * @return int Returns < 0 if $a is less than $b; > 0 if $a is greater than $b, and 0 if they are equal. */ function ft_pagesorter($a, $b){ $ac = count(explode(':',$a)); @@ -295,6 +321,10 @@ function ft_pagesorter($a, $b){ * * @author Andreas Gohr * @triggers FULLTEXT_SNIPPET_CREATE + * + * @param string $id page id + * @param array $highlight + * @return mixed */ function ft_snippet($id,$highlight){ $text = rawWiki($id); @@ -389,6 +419,9 @@ function ft_snippet($id,$highlight){ /** * Wraps a search term in regex boundary checks. + * + * @param string $term + * @return string */ function ft_snippet_re_preprocess($term) { // do not process asian terms where word boundaries are not explicit @@ -432,6 +465,7 @@ function ft_snippet_re_preprocess($term) { * based upon PEAR's PHP_Compat function for array_intersect_key() * * @param array $args An array of page arrays + * @return array */ function ft_resultCombine($args){ $array_count = count($args); @@ -461,6 +495,8 @@ function ft_resultCombine($args){ * based upon ft_resultCombine() function * * @param array $args An array of page arrays + * @return array + * * @author Kazutaka Miyasaka */ function ft_resultUnite($args) { @@ -484,6 +520,8 @@ function ft_resultUnite($args) { * nearly identical to PHP5's array_diff_key() * * @param array $args An array of page arrays + * @return array + * * @author Kazutaka Miyasaka */ function ft_resultComplement($args) { @@ -506,6 +544,10 @@ function ft_resultComplement($args) { * * @author Andreas Gohr * @author Kazutaka Miyasaka + * + * @param Doku_Indexer $Indexer + * @param string $query search query + * @return array of search formulas */ function ft_queryParser($Indexer, $query){ /** @@ -659,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); } @@ -736,6 +778,12 @@ function ft_queryParser($Indexer, $query){ * This function is used in ft_queryParser() and not for general purpose use. * * @author Kazutaka Miyasaka + * + * @param Doku_Indexer $Indexer + * @param string $term + * @param bool $consider_asian + * @param bool $phrase_mode + * @return string */ function ft_termParser($Indexer, $term, $consider_asian = true, $phrase_mode = false) { $parsed = ''; diff --git a/dokuwiki/inc/html.php b/dokuwiki/inc/html.php index 495bdf91..70ba4dcf 100644 --- a/dokuwiki/inc/html.php +++ b/dokuwiki/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(); } } @@ -83,6 +83,10 @@ function html_denied() { * inserts section edit buttons if wanted or removes the markers * * @author Andreas Gohr + * + * @param string $text + * @param bool $show show section edit buttons? + * @return string */ function html_secedit($text,$show=true){ global $INFO; @@ -101,8 +105,11 @@ function html_secedit($text,$show=true){ * prepares section edit button data for event triggering * used as a callback in html_secedit * - * @triggers HTML_SECEDIT_BUTTON * @author Andreas Gohr + * + * @param array $matches matches with regexp + * @return string + * @triggers HTML_SECEDIT_BUTTON */ function html_secedit_button($matches){ $data = array('secid' => $matches[1], @@ -121,6 +128,9 @@ function html_secedit_button($matches){ * used as default action form HTML_SECEDIT_BUTTON * * @author Adrian Lang + * + * @param array $data name, section id and target + * @return string html */ function html_secedit_get_button($data) { global $ID; @@ -147,6 +157,8 @@ function html_secedit_get_button($data) { * Just the back to top button (in its own form) * * @author Andreas Gohr + * + * @return string html */ function html_topbtn(){ global $lang; @@ -161,8 +173,17 @@ function html_topbtn(){ * If tooltip exists, the access key tooltip is replaced. * * @author Andreas Gohr + * + * @param string $name + * @param string $id + * @param string $akey access key + * @param string[] $params key-value pairs added as hidden inputs + * @param string $method + * @param string $tooltip + * @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; @@ -200,22 +221,33 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false $tip = htmlspecialchars($label); } - $ret .= ''; + $ret .= hsc($label); + $ret .= ''; $ret .= ''; return $ret; } +/** + * show a revision warning + * + * @author Szymon Olewniczak + */ +function html_showrev() { + print p_locale_xhtml('showrev'); +} /** - * show a wiki page + * Show a wiki page * * @author Andreas Gohr + * + * @param null|string $txt wiki text or null for showing $ID */ function html_show($txt=null){ global $ID; @@ -242,7 +274,10 @@ function html_show($txt=null){ echo ''; }else{ - if ($REV||$DATE_AT) print p_locale_xhtml('showrev'); + if ($REV||$DATE_AT){ + $data = array('rev' => &$REV, 'date_at' => &$DATE_AT); + trigger_event('HTML_SHOWREV_OUTPUT', $data, 'html_showrev'); + } $html = p_wiki_xhtml($ID,$REV,true,$DATE_AT); $html = html_secedit($html,$secedit); if($INFO['prependTOC']) $html = tpl_toc(true).$html; @@ -282,6 +317,10 @@ function html_draft(){ * * @author Andreas Gohr * @author Harry Fuecks + * + * @param string $html + * @param array|string $phrases + * @return string html */ function html_hilight($html,$phrases){ $phrases = (array) $phrases; @@ -300,6 +339,9 @@ function html_hilight($html,$phrases){ * Callback used by html_hilight() * * @author Harry Fuecks + * + * @param array $m matches + * @return string html */ function html_hilight_callback($m) { $hlight = unslash($m[0]); @@ -425,6 +467,9 @@ function html_locked(){ * @author Andreas Gohr * @author Ben Coburn * @author Kate Arzamastseva + * + * @param int $first skip the first n changelog lines + * @param bool|string $media_id id of media, or false for current page */ function html_revisions($first=0, $media_id = false){ global $ID; @@ -456,28 +501,64 @@ function html_revisions($first=0, $media_id = false){ array_pop($revisions); // remove extra log entry } - if (!$media_id) $date = dformat($INFO['lastmod']); - else $date = dformat(@filemtime(mediaFN($id))); - if (!$media_id) print p_locale_xhtml('revisions'); $params = array('id' => 'page__revisions', 'class' => 'changes'); - if ($media_id) $params['action'] = media_managerURL(array('image' => $media_id), '&'); + if($media_id) { + $params['action'] = media_managerURL(array('image' => $media_id), '&'); + } + + if(!$media_id) { + $exists = $INFO['exists']; + $display_name = useHeading('navigation') ? hsc(p_get_first_heading($id)) : $id; + if(!$display_name) { + $display_name = $id; + } + } else { + $exists = file_exists(mediaFN($id)); + $display_name = $id; + } $form = new Doku_Form($params); $form->addElement(form_makeOpenTag('ul')); - if (!$media_id) $exists = $INFO['exists']; - else $exists = @file_exists(mediaFN($id)); + if($exists && $first == 0) { + $minor = false; + if($media_id) { + $date = dformat(@filemtime(mediaFN($id))); + $href = media_managerURL(array('image' => $id, 'tab_details' => 'view'), '&'); - $display_name = (!$media_id && useHeading('navigation')) ? hsc(p_get_first_heading($id)) : $id; - if (!$display_name) $display_name = $id; + $changelog->setChunkSize(1024); + $revinfo = $changelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id)))); - if($exists && $first==0){ - if (!$media_id && isset($INFO['meta']) && isset($INFO['meta']['last_change']) && $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) - $form->addElement(form_makeOpenTag('li', array('class' => 'minor'))); - else - $form->addElement(form_makeOpenTag('li')); + $summary = $revinfo['sum']; + if($revinfo['user']) { + $editor = $revinfo['user']; + } else { + $editor = $revinfo['ip']; + } + $sizechange = $revinfo['sizechange']; + } else { + $date = dformat($INFO['lastmod']); + if(isset($INFO['meta']) && isset($INFO['meta']['last_change'])) { + if($INFO['meta']['last_change']['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) { + $minor = true; + } + if(isset($INFO['meta']['last_change']['sizechange'])) { + $sizechange = $INFO['meta']['last_change']['sizechange']; + } else { + $sizechange = null; + } + } + $pagelog = new PageChangeLog($ID); + $latestrev = $pagelog->getRevisions(-1, 1); + $latestrev = array_pop($latestrev); + $href = wl($id,"rev=$latestrev",false,'&'); + $summary = $INFO['sum']; + $editor = $INFO['editor']; + } + + $form->addElement(form_makeOpenTag('li', array('class' => ($minor ? 'minor' : '')))); $form->addElement(form_makeOpenTag('div', array('class' => 'li'))); $form->addElement(form_makeTag('input', array( 'type' => 'checkbox', @@ -490,8 +571,6 @@ function html_revisions($first=0, $media_id = false){ $form->addElement(''); - if (!$media_id) $href = wl($id); - else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view'), '&'); $form->addElement(form_makeOpenTag('a', array( 'class' => 'wikilink1', 'href' => $href))); @@ -500,29 +579,19 @@ function html_revisions($first=0, $media_id = false){ if ($media_id) $form->addElement(form_makeOpenTag('div')); - if (!$media_id) { + if($summary) { $form->addElement(form_makeOpenTag('span', array('class' => 'sum'))); - $form->addElement(' – '); - $form->addElement(htmlspecialchars($INFO['sum'])); + if(!$media_id) $form->addElement(' – '); + $form->addElement('' . htmlspecialchars($summary) . ''); $form->addElement(form_makeCloseTag('span')); } - $changelog->setChunkSize(1024); - $form->addElement(form_makeOpenTag('span', array('class' => 'user'))); - if($media_id) { - $revinfo = $changelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id)))); - if($revinfo['user']) { - $editor = $revinfo['user']; - } else { - $editor = $revinfo['ip']; - } - } else { - $editor = $INFO['editor']; - } - $form->addElement((empty($editor))?('('.$lang['external_edit'].')'):editorinfo($editor)); + $form->addElement((empty($editor))?('('.$lang['external_edit'].')'):''.editorinfo($editor).''); $form->addElement(form_makeCloseTag('span')); + html_sizechange($sizechange, $form); + $form->addElement('('.$lang['current'].')'); if ($media_id) $form->addElement(form_makeCloseTag('div')); @@ -531,19 +600,20 @@ function html_revisions($first=0, $media_id = false){ $form->addElement(form_makeCloseTag('li')); } - foreach($revisions as $rev){ + foreach($revisions as $rev) { $date = dformat($rev); $info = $changelog->getRevisionInfo($rev); if($media_id) { - $exists = @file_exists(mediaFN($id, $rev)); + $exists = file_exists(mediaFN($id, $rev)); } else { $exists = page_exists($id, $rev); } - if ($info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) - $form->addElement(form_makeOpenTag('li', array('class' => 'minor'))); - else - $form->addElement(form_makeOpenTag('li')); + $class = ''; + if($info['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) { + $class = 'minor'; + } + $form->addElement(form_makeOpenTag('li', array('class' => $class))); $form->addElement(form_makeOpenTag('div', array('class' => 'li'))); if($exists){ $form->addElement(form_makeTag('input', array( @@ -559,9 +629,14 @@ function html_revisions($first=0, $media_id = false){ $form->addElement(form_makeCloseTag('span')); if($exists){ - if (!$media_id) $href = wl($id,"rev=$rev,do=diff", false, '&'); - else $href = media_managerURL(array('image' => $id, 'rev' => $rev, 'mediado' => 'diff'), '&'); - $form->addElement(form_makeOpenTag('a', array('href' => $href, 'class' => 'diff_link'))); + if (!$media_id) { + $href = wl($id,"rev=$rev,do=diff", false, '&'); + } else { + $href = media_managerURL(array('image' => $id, 'rev' => $rev, 'mediado' => 'diff'), '&'); + } + $form->addElement(form_makeOpenTag('a', array( + 'class' => 'diff_link', + 'href' => $href))); $form->addElement(form_makeTag('img', array( 'src' => DOKU_BASE.'lib/images/diff.png', 'width' => 15, @@ -569,9 +644,15 @@ function html_revisions($first=0, $media_id = false){ 'title' => $lang['diff'], 'alt' => $lang['diff']))); $form->addElement(form_makeCloseTag('a')); - if (!$media_id) $href = wl($id,"rev=$rev",false,'&'); - else $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev), '&'); - $form->addElement(form_makeOpenTag('a', array('href' => $href, 'class' => 'wikilink1'))); + + if (!$media_id) { + $href = wl($id,"rev=$rev",false,'&'); + } else { + $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev), '&'); + } + $form->addElement(form_makeOpenTag('a', array( + 'class' => 'wikilink1', + 'href' => $href))); $form->addElement($display_name); $form->addElement(form_makeCloseTag('a')); }else{ @@ -583,7 +664,7 @@ function html_revisions($first=0, $media_id = false){ if ($info['sum']) { $form->addElement(form_makeOpenTag('span', array('class' => 'sum'))); - if (!$media_id) $form->addElement(' – '); + if(!$media_id) $form->addElement(' – '); $form->addElement(''.htmlspecialchars($info['sum']).''); $form->addElement(form_makeCloseTag('span')); } @@ -599,6 +680,8 @@ function html_revisions($first=0, $media_id = false){ } $form->addElement(form_makeCloseTag('span')); + html_sizechange($info['sizechange'], $form); + if ($media_id) $form->addElement(form_makeCloseTag('div')); $form->addElement(form_makeCloseTag('div')); @@ -646,8 +729,11 @@ function html_revisions($first=0, $media_id = false){ * @author Matthias Grimm * @author Ben Coburn * @author Kate Arzamastseva + * + * @param int $first + * @param string $show_changes */ -function html_recent($first=0, $show_changes='both'){ +function html_recent($first = 0, $show_changes = 'both') { global $conf; global $lang; global $ID; @@ -656,48 +742,50 @@ function html_recent($first=0, $show_changes='both'){ * This is the cheapest solution to get this information. */ $flags = 0; - if ($show_changes == 'mediafiles' && $conf['mediarevisions']) { + if($show_changes == 'mediafiles' && $conf['mediarevisions']) { $flags = RECENTS_MEDIA_CHANGES; - } elseif ($show_changes == 'pages') { + } elseif($show_changes == 'pages') { $flags = 0; - } elseif ($conf['mediarevisions']) { + } elseif($conf['mediarevisions']) { $show_changes = 'both'; $flags = RECENTS_MEDIA_PAGES_MIXED; } - $recents = getRecents($first,$conf['recent'] + 1,getNS($ID),$flags); - if(count($recents) == 0 && $first != 0){ - $first=0; - $recents = getRecents($first,$conf['recent'] + 1,getNS($ID),$flags); + $recents = getRecents($first, $conf['recent'] + 1, getNS($ID), $flags); + if(count($recents) == 0 && $first != 0) { + $first = 0; + $recents = getRecents($first, $conf['recent'] + 1, getNS($ID), $flags); } $hasNext = false; - if (count($recents)>$conf['recent']) { + if(count($recents) > $conf['recent']) { $hasNext = true; array_pop($recents); // remove extra log entry } print p_locale_xhtml('recent'); - if (getNS($ID) != '') + if(getNS($ID) != '') { print '

    ' . sprintf($lang['recent_global'], getNS($ID), wl('', 'do=recent')) . '

    '; + } $form = new Doku_Form(array('id' => 'dw__recent', 'method' => 'GET', 'class' => 'changes')); $form->addHidden('sectok', null); $form->addHidden('do', 'recent'); $form->addHidden('id', $ID); - if ($conf['mediarevisions']) { + if($conf['mediarevisions']) { $form->addElement('
    '); $form->addElement(form_makeListboxField( 'show_changes', array( 'pages' => $lang['pages_changes'], 'mediafiles' => $lang['media_changes'], - 'both' => $lang['both_changes']), + 'both' => $lang['both_changes'] + ), $show_changes, $lang['changes_type'], - '','', - array('class'=>'quickselect'))); + '', '', + array('class' => 'quickselect'))); $form->addElement(form_makeButton('submit', 'recent', $lang['btn_apply'])); $form->addElement('
    '); @@ -705,20 +793,21 @@ function html_recent($first=0, $show_changes='both'){ $form->addElement(form_makeOpenTag('ul')); - foreach($recents as $recent){ + foreach($recents as $recent) { $date = dformat($recent['date']); - if ($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) - $form->addElement(form_makeOpenTag('li', array('class' => 'minor'))); - else - $form->addElement(form_makeOpenTag('li')); + $class = ''; + if($recent['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) { + $class = 'minor'; + } + $form->addElement(form_makeOpenTag('li', array('class' => $class))); $form->addElement(form_makeOpenTag('div', array('class' => 'li'))); - if (!empty($recent['media'])) { + if(!empty($recent['media'])) { $form->addElement(media_printicon($recent['id'])); } else { - $icon = DOKU_BASE.'lib/images/fileicons/file.png'; - $form->addElement(''.$recent['id'].''); + $icon = DOKU_BASE . 'lib/images/fileicons/file.png'; + $form->addElement('' . $recent['id'] . ''); } $form->addElement(form_makeOpenTag('span', array('class' => 'date'))); @@ -728,70 +817,81 @@ function html_recent($first=0, $show_changes='both'){ $diff = false; $href = ''; - if (!empty($recent['media'])) { - $diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && @file_exists(mediaFN($recent['id']))); - if ($diff) { - $href = media_managerURL(array('tab_details' => 'history', - 'mediado' => 'diff', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); + if(!empty($recent['media'])) { + $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']) + ), '&'); } } else { - $href = wl($recent['id'],"do=diff", false, '&'); + $href = wl($recent['id'], "do=diff", false, '&'); } - if (!empty($recent['media']) && !$diff) { - $form->addElement(''); + if(!empty($recent['media']) && !$diff) { + $form->addElement(''); } else { $form->addElement(form_makeOpenTag('a', array('class' => 'diff_link', 'href' => $href))); $form->addElement(form_makeTag('img', array( - 'src' => DOKU_BASE.'lib/images/diff.png', - 'width' => 15, - 'height'=> 11, - 'title' => $lang['diff'], - 'alt' => $lang['diff'] - ))); + 'src' => DOKU_BASE . 'lib/images/diff.png', + 'width' => 15, + 'height' => 11, + 'title' => $lang['diff'], + 'alt' => $lang['diff'] + ))); $form->addElement(form_makeCloseTag('a')); } - if (!empty($recent['media'])) { - $href = media_managerURL(array('tab_details' => 'history', - 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); + if(!empty($recent['media'])) { + $href = media_managerURL(array('tab_details' => 'history', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); } else { - $href = wl($recent['id'],"do=revisions",false,'&'); + $href = wl($recent['id'], "do=revisions", false, '&'); } - $form->addElement(form_makeOpenTag('a', array('class' => 'revisions_link', 'href' => $href))); + $form->addElement(form_makeOpenTag('a', array( + 'class' => 'revisions_link', + 'href' => $href))); $form->addElement(form_makeTag('img', array( - 'src' => DOKU_BASE.'lib/images/history.png', - 'width' => 12, - 'height'=> 14, - 'title' => $lang['btn_revs'], - 'alt' => $lang['btn_revs'] - ))); + 'src' => DOKU_BASE . 'lib/images/history.png', + 'width' => 12, + 'height' => 14, + 'title' => $lang['btn_revs'], + 'alt' => $lang['btn_revs'] + ))); $form->addElement(form_makeCloseTag('a')); - if (!empty($recent['media'])) { + if(!empty($recent['media'])) { $href = media_managerURL(array('tab_details' => 'view', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); - $class = (file_exists(mediaFN($recent['id']))) ? 'wikilink1' : $class = 'wikilink2'; - $form->addElement(form_makeOpenTag('a', array('class' => $class, 'href' => $href))); + $class = file_exists(mediaFN($recent['id'])) ? 'wikilink1' : 'wikilink2'; + $form->addElement(form_makeOpenTag('a', array( + 'class' => $class, + 'href' => $href))); $form->addElement($recent['id']); $form->addElement(form_makeCloseTag('a')); } else { - $form->addElement(html_wikilink(':'.$recent['id'],useHeading('navigation')?null:$recent['id'])); + $form->addElement(html_wikilink(':' . $recent['id'], useHeading('navigation') ? null : $recent['id'])); } $form->addElement(form_makeOpenTag('span', array('class' => 'sum'))); - $form->addElement(' – '.htmlspecialchars($recent['sum'])); + $form->addElement(' – ' . htmlspecialchars($recent['sum'])); $form->addElement(form_makeCloseTag('span')); $form->addElement(form_makeOpenTag('span', array('class' => 'user'))); - if($recent['user']){ - $form->addElement(''.editorinfo($recent['user']).''); - if(auth_ismanager()){ - $form->addElement(' ('.$recent['ip'].')'); + if($recent['user']) { + $form->addElement('' . editorinfo($recent['user']) . ''); + if(auth_ismanager()) { + $form->addElement(' (' . $recent['ip'] . ')'); } - }else{ - $form->addElement(''.$recent['ip'].''); + } else { + $form->addElement('' . $recent['ip'] . ''); } $form->addElement(form_makeCloseTag('span')); + html_sizechange($recent['sizechange'], $form); + $form->addElement(form_makeCloseTag('div')); $form->addElement(form_makeCloseTag('li')); } @@ -799,30 +899,32 @@ function html_recent($first=0, $show_changes='both'){ $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav'))); $last = $first + $conf['recent']; - if ($first > 0) { + if($first > 0) { $first -= $conf['recent']; - if ($first < 0) $first = 0; + if($first < 0) $first = 0; $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev'))); - $form->addElement(form_makeTag('input', array( - 'type' => 'submit', - 'name' => 'first['.$first.']', - 'value' => $lang['btn_newer'], - 'accesskey' => 'n', - 'title' => $lang['btn_newer'].' [N]', - 'class' => 'button show' + $form->addElement(form_makeOpenTag('button', array( + 'type' => 'submit', + 'name' => 'first[' . $first . ']', + '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) { + if($hasNext) { $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next'))); - $form->addElement(form_makeTag('input', array( - 'type' => 'submit', - 'name' => 'first['.$last.']', - 'value' => $lang['btn_older'], + $form->addElement(form_makeOpenTag('button', array( + 'type' => 'submit', + 'name' => 'first[' . $last . ']', 'accesskey' => 'p', - 'title' => $lang['btn_older'].' [P]', - 'class' => 'button show' - ))); + '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')); @@ -833,15 +935,16 @@ function html_recent($first=0, $show_changes='both'){ * Display page index * * @author Andreas Gohr + * + * @param string $ns */ 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)); @@ -861,6 +964,9 @@ function html_index($ns){ * User function for html_buildlist() * * @author Andreas Gohr + * + * @param array $item + * @return string */ function html_list_index($item){ global $ID, $conf; @@ -891,10 +997,24 @@ function html_list_index($item){ * it gives different classes to opened or closed "folders" * * @author Andreas Gohr + * + * @param array $item + * @return string html */ function html_li_index($item){ + global $INFO; + global $ACT; + + $class = ''; + $id = ''; + if($item['type'] == "f"){ - return '
  • '; + // scroll to the current item + if($item['id'] == $INFO['id'] && $ACT == 'index') { + $id = ' id="scroll__here"'; + $class = ' bounce'; + } + return '
  • '; }elseif($item['open']){ return '
  • '; }else{ @@ -906,6 +1026,9 @@ function html_li_index($item){ * Default List item * * @author Andreas Gohr + * + * @param array $item + * @return string html */ function html_li_default($item){ return '
  • '; @@ -929,9 +1052,9 @@ function html_li_default($item){ * @param array $data array with item arrays * @param string $class class of ul wrapper * @param callable $func callback to print an list item - * @param string $lifunc callback to the opening li tag + * @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){ @@ -1021,12 +1144,13 @@ function html_backlinks(){ /** * Get header of diff HTML + * * @param string $l_rev Left revisions * @param string $r_rev Right revision * @param string $id Page id, if null $ID is used * @param bool $media If it is for media files * @param bool $inline Return the header on a single line - * @return array HTML snippets for diff header + * @return string[] HTML snippets for diff header */ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = false) { global $lang; @@ -1334,7 +1458,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); @@ -1482,7 +1612,7 @@ function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) { /** * Insert soft breaks in diff html * - * @param $diffhtml + * @param string $diffhtml * @return string */ function html_insert_softbreaks($diffhtml) { @@ -1521,6 +1651,9 @@ REGEX; * show warning on conflict detection * * @author Andreas Gohr + * + * @param string $text + * @param string $summary */ function html_conflict($text,$summary){ global $ID; @@ -1681,7 +1814,6 @@ function html_edit(){ global $lang; global $conf; global $TEXT; - global $RANGE; if ($INPUT->has('changecheck')) { $check = $INPUT->str('changecheck'); @@ -1783,6 +1915,7 @@ function html_edit(){ * Display the default edit form * * Is the default action for HTML_EDIT_FORMSELECTION. + * * @param mixed[] $param */ function html_edit_form($param) { @@ -1802,6 +1935,8 @@ function html_edit_form($param) { * Adds a checkbox for minor edits for logged in users * * @author Andreas Gohr + * + * @return array|bool */ function html_minoredit(){ global $conf; @@ -1902,6 +2037,7 @@ function html_debug(){ print ''; if (function_exists('apache_get_version')) { + $apache = array(); $apache['version'] = apache_get_version(); if (function_exists('apache_get_modules')) { @@ -1915,121 +2051,6 @@ function html_debug(){ print ''; } -/** - * List available Administration Tasks - * - * @author Andreas Gohr - * @author HÃ¥kan Sandell - */ -function html_admin(){ - global $ID; - global $INFO; - global $conf; - /** @var DokuWiki_Auth_Plugin $auth */ - global $auth; - - // build menu of admin functions from the plugins that handle them - $pluginlist = plugin_list('admin'); - $menu = array(); - foreach ($pluginlist as $p) { - /** @var DokuWiki_Admin_Plugin $obj */ - if(($obj = plugin_load('admin',$p)) === null) continue; - - // check permissions - if($obj->forAdminOnly() && !$INFO['isadmin']) continue; - - $menu[$p] = array('plugin' => $p, - 'prompt' => $obj->getMenuText($conf['lang']), - 'sort' => $obj->getMenuSort() - ); - } - - // data security check - // simple check if the 'savedir' is relative and accessible when appended to DOKU_URL - // it verifies either: - // 'savedir' has been moved elsewhere, or - // has protection to prevent the webserver serving files from it - if (substr($conf['savedir'],0,2) == './'){ - echo ' - Your data directory seems to be protected properly.'; - } - - print p_locale_xhtml('admin'); - - // Admin Tasks - if($INFO['isadmin']){ - ptln(''); - - // Manager Tasks - ptln(''); - echo '
    '; - echo getVersion(); - echo '
    '; - - // print the rest as sorted list - if(count($menu)){ - usort($menu, 'p_sort_modes'); - // output the menu - ptln('
    '); - print p_locale_xhtml('adminplugins'); - ptln('
      '); - foreach ($menu as $item) { - if (!$item['prompt']) continue; - ptln('
    • '); - } - ptln('
    '); - } -} - /** * Form to request a new password for an existing account * @@ -2080,6 +2101,9 @@ function html_resendpwd() { * Return the TOC rendered to XHTML * * @author Andreas Gohr + * + * @param array $toc + * @return string html */ function html_TOC($toc){ if(!count($toc)) return ''; @@ -2098,6 +2122,9 @@ function html_TOC($toc){ /** * Callback for html_buildlist + * + * @param array $item + * @return string html */ function html_list_toc($item){ if(isset($item['hid'])){ @@ -2132,6 +2159,7 @@ function html_mktocitem($link, $text, $level, $hash='#'){ * Triggers an event with the form name: HTML_{$name}FORM_OUTPUT * * @author Tom N Harris + * * @param string $name The name of the form * @param Doku_Form $form The form */ @@ -2144,6 +2172,7 @@ function html_form($name, &$form) { /** * Form print function. * Just calls printForm() on the data object. + * * @param Doku_Form $data The form */ function html_form_output($data) { @@ -2242,6 +2271,7 @@ function html_tabs($tabs, $current_tab = null) { echo ''.NL; } + /** * Prints a single tab * @@ -2266,3 +2296,28 @@ function html_tab($href, $caption, $selected=false) { echo $tab; } +/** + * Display size change + * + * @param int $sizechange - size of change in Bytes + * @param Doku_Form $form - form to add elements to + */ + +function html_sizechange($sizechange, Doku_Form $form) { + if(isset($sizechange)) { + $class = 'sizechange'; + $value = filesize_h(abs($sizechange)); + if($sizechange > 0) { + $class .= ' positive'; + $value = '+' . $value; + } elseif($sizechange < 0) { + $class .= ' negative'; + $value = '-' . $value; + } else { + $value = '±' . $value; + } + $form->addElement(form_makeOpenTag('span', array('class' => $class))); + $form->addElement($value); + $form->addElement(form_makeCloseTag('span')); + } +} diff --git a/dokuwiki/inc/httputils.php b/dokuwiki/inc/httputils.php index efeb2a56..c365f4f5 100644 --- a/dokuwiki/inc/httputils.php +++ b/dokuwiki/inc/httputils.php @@ -15,6 +15,7 @@ define('HTTP_CHUNK_SIZE',16*1024); * * @author Simon Willison * @link http://simonwillison.net/2003/Apr/23/conditionalGet/ + * * @param int $timestamp lastmodified time of the cache file * @returns void or exits with previously header() commands executed */ @@ -64,6 +65,7 @@ function http_conditionalRequest($timestamp){ * Let the webserver send the given file via x-sendfile method * * @author Chris Smith + * * @param string $file absolute path of file to send * @returns void or exits with previous header() commands executed */ @@ -190,8 +192,13 @@ function http_rangeRequest($fh,$size,$mime){ * (samepath/samefilename.sameext.gz) created after the uncompressed file * * @author Chris Smith + * + * @param string $uncompressed_file + * @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); @@ -206,6 +213,9 @@ function http_gzip_valid($uncompressed_file) { * This function handles output of cacheable resource files. It ses the needed * HTTP headers. If a useable cache is present, it is passed to the web server * and the script is terminated. + * + * @param string $cache cache file name + * @param bool $cache_ok if cache can be used */ function http_cached($cache, $cache_ok) { global $conf; @@ -235,16 +245,19 @@ function http_cached($cache, $cache_ok) { /** * Cache content and print it + * + * @param string $file file name + * @param string $content */ function http_cached_finish($file, $content) { global $conf; // 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/dokuwiki/inc/indexer.php b/dokuwiki/inc/indexer.php index 5ca2f0bb..a86bfc65 100644 --- a/dokuwiki/inc/indexer.php +++ b/dokuwiki/inc/indexer.php @@ -61,6 +61,8 @@ define('IDX_ASIAN', '(?:'.IDX_ASIAN1.'|'.IDX_ASIAN2.'|'.IDX_ASIAN3.')'); * * @author Tom N Harris * @author Michael Hamann + * + * @return int|string */ function idx_get_version(){ static $indexer_version = null; @@ -84,6 +86,9 @@ function idx_get_version(){ * Differs from strlen in handling of asian characters. * * @author Tom N Harris + * + * @param string $w + * @return int */ function wordlen($w){ $l = strlen($w); @@ -115,7 +120,8 @@ class Doku_Indexer { * * @param string $page a page name * @param string $text the body of the page - * @return boolean the function completed successfully + * @return string|boolean the function completed successfully + * * @author Tom N Harris * @author Andreas Gohr */ @@ -190,6 +196,7 @@ class Doku_Indexer { * * @param string $text content of the page * @return array list of word IDs and number of times used + * * @author Andreas Gohr * @author Christopher Smith * @author Tom N Harris @@ -245,7 +252,8 @@ class Doku_Indexer { * @param string $page a page name * @param mixed $key a key string or array of key=>value pairs * @param mixed $value the value or list of values - * @return boolean the function completed successfully + * @return boolean|string the function completed successfully + * * @author Tom N Harris * @author Michael Hamann */ @@ -453,7 +461,8 @@ class Doku_Indexer { * Erases entries in all known indexes. * * @param string $page a page name - * @return boolean the function completed successfully + * @return string|boolean the function completed successfully + * * @author Tom N Harris */ public function deletePage($page) { @@ -474,6 +483,7 @@ class Doku_Indexer { * * @param string $page a page name * @return boolean the function completed successfully + * * @author Tom N Harris */ protected function deletePageNoLock($page) { @@ -568,6 +578,7 @@ class Doku_Indexer { * @param string $text plain text * @param boolean $wc are wildcards allowed? * @return array list of words in the text + * * @author Tom N Harris * @author Andreas Gohr */ @@ -676,6 +687,7 @@ class Doku_Indexer { * * @param array $tokens list of words to search for * @return array list of page names with usage counts + * * @author Tom N Harris * @author Andreas Gohr */ @@ -730,6 +742,7 @@ class Doku_Indexer { * @param string $value search term to look for, must be a string or array of strings * @param callback $func comparison function * @return array lists with page names, keys are query values if $value is array + * * @author Tom N Harris * @author Michael Hamann */ @@ -829,6 +842,7 @@ class Doku_Indexer { * @param array $words The query terms. * @param array $result Set to word => array("length*id" ...) * @return array Set to length => array(id ...) + * * @author Tom N Harris */ protected function getIndexWords(&$words, &$result) { @@ -909,6 +923,7 @@ class Doku_Indexer { * * @param string $key list only pages containing the metadata key (optional) * @return array list of page names + * * @author Tom N Harris */ public function getPages($key=null) { @@ -942,6 +957,7 @@ class Doku_Indexer { * @param int $minlen minimum length of words to count * @param string $key metadata key to list. Uses the fulltext index if not given * @return array list of words as the keys and frequency as values + * * @author Tom N Harris */ public function histogram($min=1, $max=0, $minlen=3, $key=null) { @@ -1002,6 +1018,8 @@ class Doku_Indexer { * Lock the indexer. * * @author Tom N Harris + * + * @return bool|string */ protected function lock() { global $conf; @@ -1033,6 +1051,8 @@ class Doku_Indexer { * Release the indexer lock. * * @author Tom N Harris + * + * @return bool */ protected function unlock() { global $conf; @@ -1050,12 +1070,13 @@ class Doku_Indexer { * @param string $idx name of the index * @param string $suffix subpart identifier * @return array list of lines without CR or LF + * * @author Tom N Harris */ protected function getIndex($idx, $suffix) { global $conf; $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx'; - if (!@file_exists($fn)) return array(); + if (!file_exists($fn)) return array(); return file($fn, FILE_IGNORE_NEW_LINES); } @@ -1066,6 +1087,7 @@ class Doku_Indexer { * @param string $suffix subpart identifier * @param array $lines list of lines without LF * @return bool If saving succeeded + * * @author Tom N Harris */ protected function saveIndex($idx, $suffix, &$lines) { @@ -1090,12 +1112,13 @@ class Doku_Indexer { * @param string $suffix subpart identifier * @param int $id the line number * @return string a line with trailing whitespace removed + * * @author Tom N Harris */ protected function getIndexKey($idx, $suffix, $id) { global $conf; $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx'; - if (!@file_exists($fn)) return ''; + if (!file_exists($fn)) return ''; $fh = @fopen($fn, 'r'); if (!$fh) return ''; $ln = -1; @@ -1114,6 +1137,7 @@ class Doku_Indexer { * @param int $id the line number * @param string $line line to write * @return bool If saving succeeded + * * @author Tom N Harris */ protected function saveIndexKey($idx, $suffix, $id, $line) { @@ -1155,6 +1179,7 @@ class Doku_Indexer { * @param string $suffix subpart identifier * @param string $value line to find in the index * @return int|bool line number of the value in the index or false if writing the index failed + * * @author Tom N Harris */ protected function addIndexKey($idx, $suffix, $value) { @@ -1178,6 +1203,8 @@ class Doku_Indexer { * a sorted array of lengths of the words used in the wiki. * * @author YoBoY + * + * @return array */ protected function listIndexLengths() { return idx_listIndexLengths(); @@ -1190,6 +1217,9 @@ class Doku_Indexer { * that there are indices for. * * @author YoBoY + * + * @param array|int $filter + * @return array */ protected function indexLengths($filter) { global $conf; @@ -1198,7 +1228,7 @@ class Doku_Indexer { // testing if index files exist only $path = $conf['indexdir']."/i"; foreach ($filter as $key => $value) { - if (@file_exists($path.$key.'.idx')) + if (file_exists($path.$key.'.idx')) $idx[] = $key; } } else { @@ -1216,6 +1246,11 @@ class Doku_Indexer { * Insert or replace a tuple in a line. * * @author Tom N Harris + * + * @param string $line + * @param string|int $id + * @param int $count + * @return string */ protected function updateTuple($line, $id, $count) { if ($line != ''){ @@ -1237,6 +1272,10 @@ class Doku_Indexer { * * @author Tom N Harris * @author Andreas Gohr + * + * @param array $keys + * @param string $line + * @return array */ protected function parseTuples(&$keys, $line) { $result = array(); @@ -1257,13 +1296,16 @@ class Doku_Indexer { * Sum the counts in a list of tuples. * * @author Tom N Harris + * + * @param string $line + * @return int */ protected function countTuples($line) { $freq = 0; $parts = explode(':', $line); foreach ($parts as $tuple) { if ($tuple === '') continue; - list($pid, $cnt) = explode('*', $tuple); + list(/* $pid */, $cnt) = explode('*', $tuple); $freq += (int)$cnt; } return $freq; @@ -1273,7 +1315,8 @@ class Doku_Indexer { /** * Create an instance of the indexer. * - * @return Doku_Indexer a Doku_Indexer + * @return Doku_Indexer a Doku_Indexer + * * @author Tom N Harris */ function idx_get_indexer() { @@ -1288,6 +1331,7 @@ function idx_get_indexer() { * Returns words that will be ignored. * * @return array list of stop words + * * @author Tom N Harris */ function & idx_get_stopwords() { @@ -1295,7 +1339,7 @@ function & idx_get_stopwords() { if (is_null($stopwords)) { global $conf; $swfile = DOKU_INC.'inc/lang/'.$conf['lang'].'/stopwords.txt'; - if(@file_exists($swfile)){ + if(file_exists($swfile)){ $stopwords = file($swfile, FILE_IGNORE_NEW_LINES); }else{ $stopwords = array(); @@ -1312,14 +1356,15 @@ function & idx_get_stopwords() { * @param string $page name of the page to index * @param boolean $verbose print status messages * @param boolean $force force reindexing even when the index is up to date - * @return boolean the function completed successfully + * @return string|boolean the function completed successfully + * * @author Tom N Harris */ function idx_addPage($page, $verbose=false, $force=false) { $idxtag = metaFN($page,'.indexed'); // check if page was deleted but is still in the index if (!page_exists($page)) { - if (!@file_exists($idxtag)) { + if (!file_exists($idxtag)) { if ($verbose) print("Indexer: $page does not exist, ignoring".DOKU_LF); return false; } @@ -1334,7 +1379,7 @@ function idx_addPage($page, $verbose=false, $force=false) { } // check if indexing needed - if(!$force && @file_exists($idxtag)){ + if(!$force && file_exists($idxtag)){ if(trim(io_readFile($idxtag)) == idx_get_version()){ $last = @filemtime($idxtag); if($last > @filemtime(wikiFN($page))){ @@ -1347,7 +1392,7 @@ function idx_addPage($page, $verbose=false, $force=false) { $indexenabled = p_get_metadata($page, 'internal index', METADATA_RENDER_UNLIMITED); if ($indexenabled === false) { $result = false; - if (@file_exists($idxtag)) { + if (file_exists($idxtag)) { $Indexer = idx_get_indexer(); $result = $Indexer->deletePage($page); if ($result === "locked") { @@ -1441,11 +1486,15 @@ function idx_tokenizer($string, $wc=false) { * Read the list of words in an index (if it exists). * * @author Tom N Harris + * + * @param string $idx + * @param string $suffix + * @return array */ function idx_getIndex($idx, $suffix) { global $conf; $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx'; - if (!@file_exists($fn)) return array(); + if (!file_exists($fn)) return array(); return file($fn); } @@ -1456,6 +1505,8 @@ function idx_getIndex($idx, $suffix) { * a sorted array of lengths of the words used in the wiki. * * @author YoBoY + * + * @return array */ function idx_listIndexLengths() { global $conf; @@ -1464,7 +1515,7 @@ function idx_listIndexLengths() { $docache = false; } else { clearstatcache(); - if (@file_exists($conf['indexdir'].'/lengths.idx') + if (file_exists($conf['indexdir'].'/lengths.idx') && (time() < @filemtime($conf['indexdir'].'/lengths.idx') + $conf['readdircache'])) { if (($lengths = @file($conf['indexdir'].'/lengths.idx', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) !== false) { $idx = array(); @@ -1510,6 +1561,9 @@ function idx_listIndexLengths() { * that there are indices for. * * @author YoBoY + * + * @param array|int $filter + * @return array */ function idx_indexLengths($filter) { global $conf; @@ -1518,7 +1572,7 @@ function idx_indexLengths($filter) { // testing if index files exist only $path = $conf['indexdir']."/i"; foreach ($filter as $key => $value) { - if (@file_exists($path.$key.'.idx')) + if (file_exists($path.$key.'.idx')) $idx[] = $key; } } else { @@ -1539,6 +1593,9 @@ function idx_indexLengths($filter) { * not a letter, number, or underscore. * * @author Tom N Harris + * + * @param string $name + * @return string */ function idx_cleanName($name) { $name = utf8_romanize(trim((string)$name)); diff --git a/dokuwiki/inc/infoutils.php b/dokuwiki/inc/infoutils.php index f9ba1156..a124e2c9 100644 --- a/dokuwiki/inc/infoutils.php +++ b/dokuwiki/inc/infoutils.php @@ -20,27 +20,28 @@ function checkUpdateMessages(){ if(!$conf['updatecheck']) return; if($conf['useacl'] && !$INFO['ismanager']) return; - $cf = $conf['cachedir'].'/messages.txt'; + $cf = getCacheName($updateVersion, '.updmsg'); $lm = @filemtime($cf); // check if new messages needs to be fetched if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.DOKU_SCRIPT)){ @touch($cf); - dbglog("checkUpdateMessages(): downloading messages.txt"); + dbglog("checkUpdateMessages(): downloading messages to ".$cf); $http = new DokuHTTPClient(); $http->timeout = 12; - $data = $http->get(DOKU_MESSAGEURL.$updateVersion); - if(substr(trim($data), -1) != '%') { - // this doesn't look like one of our messages, maybe some WiFi login interferred - $data = ''; - }else { - io_saveFile($cf,$data); + $resp = $http->get(DOKU_MESSAGEURL.$updateVersion); + if(is_string($resp) && ($resp == "" || substr(trim($resp), -1) == '%')) { + // basic sanity check that this is either an empty string response (ie "no messages") + // or it looks like one of our messages, not WiFi login or other interposed response + io_saveFile($cf,$resp); + } else { + dbglog("checkUpdateMessages(): unexpected HTTP response received"); } }else{ - dbglog("checkUpdateMessages(): messages.txt up to date"); - $data = io_readFile($cf); + dbglog("checkUpdateMessages(): messages up to date"); } + $data = io_readFile($cf); // show messages through the usual message mechanism $msgs = explode("\n%\n",$data); foreach($msgs as $msg){ @@ -57,9 +58,9 @@ function checkUpdateMessages(){ function getVersionData(){ $version = array(); //import version string - if(@file_exists(DOKU_INC.'VERSION')){ + if(file_exists(DOKU_INC.'VERSION')){ //official release - $version['date'] = trim(io_readfile(DOKU_INC.'VERSION')); + $version['date'] = trim(io_readFile(DOKU_INC.'VERSION')); $version['type'] = 'Release'; }elseif(is_dir(DOKU_INC.'.git')){ $version['type'] = 'Git'; @@ -113,13 +114,13 @@ function check(){ if ($INFO['isadmin'] || $INFO['ismanager']){ msg('DokuWiki version: '.getVersion(),1); - if(version_compare(phpversion(),'5.2.0','<')){ - msg('Your PHP version is too old ('.phpversion().' vs. 5.2.0+ needed)',-1); + if(version_compare(phpversion(),'5.3.3','<')){ + msg('Your PHP version is too old ('.phpversion().' vs. 5.3.3+ needed)',-1); }else{ msg('PHP version '.phpversion(),1); } } else { - if(version_compare(phpversion(),'5.2.0','<')){ + if(version_compare(phpversion(),'5.3.3','<')){ msg('Your PHP version is too old',-1); } } @@ -140,20 +141,20 @@ function check(){ if(is_writable($conf['changelog'])){ msg('Changelog is writable',1); }else{ - if (@file_exists($conf['changelog'])) { + if (file_exists($conf['changelog'])) { msg('Changelog is not writable',-1); } } - if (isset($conf['changelog_old']) && @file_exists($conf['changelog_old'])) { + if (isset($conf['changelog_old']) && file_exists($conf['changelog_old'])) { msg('Old changelog exists', 0); } - if (@file_exists($conf['changelog'].'_failed')) { + if (file_exists($conf['changelog'].'_failed')) { msg('Importing old changelog failed', -1); - } else if (@file_exists($conf['changelog'].'_importing')) { + } else if (file_exists($conf['changelog'].'_importing')) { msg('Importing old changelog now.', 0); - } else if (@file_exists($conf['changelog'].'_import_ok')) { + } else if (file_exists($conf['changelog'].'_import_ok')) { msg('Old changelog imported', 1); if (!plugin_isdisabled('importoldchangelog')) { msg('Importoldchangelog plugin not disabled after import', -1); @@ -248,18 +249,41 @@ function check(){ } } - if ($index_corrupted) - msg('The search index is corrupted. It might produce wrong results and most + if($index_corrupted) { + msg( + 'The search index is corrupted. It might produce wrong results and most probably needs to be rebuilt. See faq:searchindex - for ways to rebuild the search index.', -1); - elseif (!empty($lengths)) + for ways to rebuild the search index.', -1 + ); + } elseif(!empty($lengths)) { msg('The search index seems to be working', 1); - else - msg('The search index is empty. See + } else { + msg( + 'The search index is empty. See faq:searchindex for help on how to fix the search index. If the default indexer - isn\'t used or the wiki is actually empty this is normal.'); + isn\'t used or the wiki is actually empty this is normal.' + ); + } + + // rough time check + $http = new DokuHTTPClient(); + $http->max_redirect = 0; + $http->timeout = 3; + $http->sendRequest('http://www.dokuwiki.org', '', 'HEAD'); + $now = time(); + if(isset($http->resp_headers['date'])) { + $time = strtotime($http->resp_headers['date']); + $diff = $time - $now; + + if(abs($diff) < 4) { + msg("Server time seems to be okay. Diff: {$diff}s", 1); + } else { + msg("Your server's clock seems to be out of sync! Consider configuring a sync with a NTP server. Diff: {$diff}s"); + } + } + } /** @@ -296,6 +320,7 @@ define('MSG_ADMINS_ONLY',4); */ function msg($message,$lvl=0,$line='',$file='',$allow=MSG_PUBLIC){ global $MSG, $MSG_shown; + $errors = array(); $errors[-1] = 'error'; $errors[0] = 'info'; $errors[1] = 'success'; @@ -452,7 +477,7 @@ function dbg_backtrace(){ }elseif(is_array($arg)){ $params[] = '[Array]'; }elseif(is_null($arg)){ - $param[] = '[NULL]'; + $params[] = '[NULL]'; }else{ $params[] = (string) '"'.$arg.'"'; } diff --git a/dokuwiki/inc/init.php b/dokuwiki/inc/init.php index 24920a17..5317c25a 100644 --- a/dokuwiki/inc/init.php +++ b/dokuwiki/inc/init.php @@ -16,7 +16,7 @@ $config_cascade = array(); // if available load a preload config file $preload = fullpath(dirname(__FILE__)).'/preload.php'; -if (@file_exists($preload)) include($preload); +if (file_exists($preload)) include($preload); // define the include path if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/'); @@ -28,7 +28,7 @@ if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/'); // check for error reporting override or set error reporting to sane values -if (!defined('DOKU_E_LEVEL') && @file_exists(DOKU_CONF.'report_e_all')) { +if (!defined('DOKU_E_LEVEL') && file_exists(DOKU_CONF.'report_e_all')) { define('DOKU_E_LEVEL', E_ALL); } if (!defined('DOKU_E_LEVEL')) { @@ -65,7 +65,7 @@ $conf = array(); foreach (array('default','local','protected') as $config_group) { if (empty($config_cascade['main'][$config_group])) continue; foreach ($config_cascade['main'][$config_group] as $config_file) { - if (@file_exists($config_file)) { + if (file_exists($config_file)) { include($config_file); } } @@ -79,7 +79,7 @@ $license = array(); foreach (array('default','local') as $config_group) { if (empty($config_cascade['license'][$config_group])) continue; foreach ($config_cascade['license'][$config_group] as $config_file) { - if(@file_exists($config_file)){ + if(file_exists($config_file)){ include($config_file); } } @@ -149,9 +149,8 @@ if(!headers_sent() && !defined('NOSESSION')) { } if(!defined('DOKU_SESSION_DOMAIN')) define ('DOKU_SESSION_DOMAIN', ''); - session_name(DOKU_SESSION_NAME); - session_set_cookie_params(DOKU_SESSION_LIFETIME, DOKU_SESSION_PATH, DOKU_SESSION_DOMAIN, ($conf['securecookie'] && is_ssl()), true); - session_start(); + // start the session + init_session(); // load left over messages if(isset($_SESSION[DOKU_COOKIE]['msg'])) { @@ -178,14 +177,6 @@ $_REQUEST = array_merge($_GET,$_POST); // we don't want a purge URL to be digged if(isset($_REQUEST['purge']) && !empty($_SERVER['HTTP_REFERER'])) unset($_REQUEST['purge']); -// disable gzip if not available -if($conf['compression'] == 'bz2' && !function_exists('bzopen')){ - $conf['compression'] = 'gz'; -} -if($conf['compression'] == 'gz' && !function_exists('gzopen')){ - $conf['compression'] = 0; -} - // precalculate file creation modes init_creationmodes(); @@ -199,8 +190,19 @@ 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 +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' && !DOKU_HAS_GZIP) { + $conf['compression'] = 0; +} + // input handle class global $INPUT; $INPUT = new Input(); @@ -224,6 +226,28 @@ if (!defined('NOSESSION')) { // setup mail system mail_setup(); +/** + * Initializes the session + * + * Makes sure the passed session cookie is valid, invalid ones are ignored an a new session ID is issued + * + * @link http://stackoverflow.com/a/33024310/172068 + * @link http://php.net/manual/en/session.configuration.php#ini.session.sid-length + */ +function init_session() { + global $conf; + session_name(DOKU_SESSION_NAME); + session_set_cookie_params(DOKU_SESSION_LIFETIME, DOKU_SESSION_PATH, DOKU_SESSION_DOMAIN, ($conf['securecookie'] && is_ssl()), true); + + // make sure the session cookie contains a valid session ID + if(isset($_COOKIE[DOKU_SESSION_NAME]) && !preg_match('/^[-,a-zA-Z0-9]{22,256}$/', $_COOKIE[DOKU_SESSION_NAME])) { + unset($_COOKIE[DOKU_SESSION_NAME]); + } + + session_start(); +} + + /** * Checks paths from config file */ @@ -272,7 +296,7 @@ function init_lang($langCode) { //load the language files require(DOKU_INC.'inc/lang/en/lang.php'); foreach ($config_cascade['lang']['core'] as $config_file) { - if (@file_exists($config_file . 'en/lang.php')) { + if (file_exists($config_file . 'en/lang.php')) { include($config_file . 'en/lang.php'); } } @@ -282,7 +306,7 @@ function init_lang($langCode) { require(DOKU_INC."inc/lang/$langCode/lang.php"); } foreach ($config_cascade['lang']['core'] as $config_file) { - if (@file_exists($config_file . "$langCode/lang.php")) { + if (file_exists($config_file . "$langCode/lang.php")) { include($config_file . "$langCode/lang.php"); } } @@ -298,7 +322,7 @@ function init_files(){ $files = array($conf['indexdir'].'/page.idx'); foreach($files as $file){ - if(!@file_exists($file)){ + if(!file_exists($file)){ $fh = @fopen($file,'a'); if($fh){ fclose($fh); @@ -308,24 +332,6 @@ function init_files(){ } } } - - # create title index (needs to have same length as page.idx) - /* - $file = $conf['indexdir'].'/title.idx'; - if(!@file_exists($file)){ - $pages = file($conf['indexdir'].'/page.idx'); - $pages = count($pages); - $fh = @fopen($file,'a'); - if($fh){ - for($i=0; $i<$pages; $i++){ - fwrite($fh,"\n"); - } - fclose($fh); - }else{ - nice_die("$file is not writable. Check your permissions settings!"); - } - } - */ } /** @@ -339,9 +345,9 @@ function init_files(){ function init_path($path){ // check existence $p = fullpath($path); - if(!@file_exists($p)){ + if(!file_exists($p)){ $p = fullpath(DOKU_INC.$path); - if(!@file_exists($p)){ + if(!file_exists($p)){ return ''; } } @@ -352,7 +358,7 @@ function init_path($path){ } // check accessability (execute bit) for directories - if(@is_dir($p) && !@file_exists("$p/.")){ + if(@is_dir($p) && !file_exists("$p/.")){ return ''; } @@ -429,7 +435,7 @@ function getBaseURL($abs=null){ //if canonical url enabled always return absolute if(is_null($abs)) $abs = $conf['canonical']; - if($conf['basedir']){ + if(!empty($conf['basedir'])){ $dir = $conf['basedir']; }elseif(substr($_SERVER['SCRIPT_NAME'],-4) == '.php'){ $dir = dirname($_SERVER['SCRIPT_NAME']); @@ -456,7 +462,7 @@ function getBaseURL($abs=null){ if(!$abs) return $dir; //use config option if available, trim any slash from end of baseurl to avoid multiple consecutive slashes in the path - if($conf['baseurl']) return rtrim($conf['baseurl'],'/').$dir; + if(!empty($conf['baseurl'])) return rtrim($conf['baseurl'],'/').$dir; //split hostheader into host and port if(isset($_SERVER['HTTP_HOST'])){ @@ -535,7 +541,7 @@ function nice_die($msg){ EOT; - exit; + exit(1); } /** @@ -546,7 +552,7 @@ EOT; * * @author Andreas Gohr * @author - * @link http://de3.php.net/manual/en/function.realpath.php#75992 + * @link http://php.net/manual/en/function.realpath.php#75992 */ function fullpath($path,$exists=false){ static $run = 0; @@ -593,7 +599,7 @@ function fullpath($path,$exists=false){ $finalpath = $root.implode('/', $newpath); // check for existence when needed (except when unit testing) - if($exists && !defined('DOKU_UNITTEST') && !@file_exists($finalpath)) { + if($exists && !defined('DOKU_UNITTEST') && !file_exists($finalpath)) { return false; } return $finalpath; diff --git a/dokuwiki/inc/io.php b/dokuwiki/inc/io.php index 27a34b04..a736d645 100644 --- a/dokuwiki/inc/io.php +++ b/dokuwiki/inc/io.php @@ -20,6 +20,7 @@ if(!defined('DOKU_INC')) die('meh.'); * @param string $id - a pageid, the namespace of that id will be tried to deleted * @param string $basedir - the config name of the type to delete (datadir or mediadir usally) * @return bool - true if at least one namespace was deleted + * * @author Andreas Gohr * @author Ben Coburn */ @@ -60,6 +61,11 @@ function io_sweepNS($id,$basedir='datadir'){ * $data[3] rev: The page revision, false for current wiki pages. * * @author Ben Coburn + * + * @param string $file filename + * @param string $id page id + * @param bool|int $rev revision timestamp + * @return string */ function io_readWikiPage($file, $id, $rev=false) { if (empty($rev)) { $rev = false; } @@ -69,7 +75,11 @@ function io_readWikiPage($file, $id, $rev=false) { /** * Callback adapter for io_readFile(). + * * @author Ben Coburn + * + * @param array $data event data + * @return string */ function _io_readWikiPage_action($data) { if (is_array($data) && is_array($data[0]) && count($data[0])===2) { @@ -88,19 +98,27 @@ function _io_readWikiPage_action($data) { * be sure to set $clean to false! * * @author Andreas Gohr + * + * @param string $file filename + * @param bool $clean + * @return string|bool the file contents or false on error */ function io_readFile($file,$clean=true){ $ret = ''; - if(@file_exists($file)){ + 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($clean){ + if($ret === null) return false; + if($ret !== false && $clean){ return cleanText($ret); }else{ return $ret; @@ -108,21 +126,44 @@ function io_readFile($file,$clean=true){ } /** * Returns the content of a .bz2 compressed file as string + * * @author marcel senf + * @author Andreas Gohr + * + * @param string $file filename + * @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? - $str = $str . bzread($bz,8192); + $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; } - /** * Used to write out a DokuWiki page to file, and send IO_WIKIPAGE_WRITE events. * @@ -138,6 +179,12 @@ function bzfile($file){ * $data[3] rev: The page revision, false for current wiki pages. * * @author Ben Coburn + * + * @param string $file filename + * @param string $content + * @param string $id page id + * @param int|bool $rev timestamp of revision + * @return bool */ function io_writeWikiPage($file, $content, $id, $rev=false) { if (empty($rev)) { $rev = false; } @@ -149,15 +196,66 @@ function io_writeWikiPage($file, $content, $id, $rev=false) { /** * Callback adapter for io_saveFile(). * @author Ben Coburn + * + * @param array $data event data + * @return bool */ function _io_writeWikiPage_action($data) { if (is_array($data) && is_array($data[0]) && count($data[0])===3) { - return call_user_func_array('io_saveFile', $data[0]); + $ok = call_user_func_array('io_saveFile', $data[0]); + // for attic files make sure the file has the mtime of the revision + if($ok && is_int($data[3]) && $data[3] > 0) { + @touch($data[0][0], $data[3]); + } + return $ok; } else { return false; //callback error } } +/** + * Internal function to save contents to a file. + * + * @author Andreas Gohr + * + * @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) { + global $conf; + $mode = ($append) ? 'ab' : 'wb'; + $fileexists = file_exists($file); + + if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; + $fh = @gzopen($file,$mode.'9'); + if(!$fh) return false; + gzwrite($fh, $content); + gzclose($fh); + }else if(substr($file,-4) == '.bz2'){ + 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) return false; + fwrite($fh, $content); + fclose($fh); + } + + if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']); + return true; +} + /** * Saves $content to $file. * @@ -168,104 +266,99 @@ function _io_writeWikiPage_action($data) { * and bz2 if extension is .bz2 * * @author Andreas Gohr - * @return bool true on success + * + * @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){ - global $conf; - $mode = ($append) ? 'ab' : 'wb'; - - $fileexists = @file_exists($file); +function io_saveFile($file, $content, $append=false) { io_makeFileDir($file); io_lock($file); - if(substr($file,-3) == '.gz'){ - $fh = @gzopen($file,$mode.'9'); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - 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; - } - bzwrite($fh, $content); - bzclose($fh); - }else{ - $fh = @fopen($file,$mode); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - return false; - } - fwrite($fh, $content); - fclose($fh); + if(!_io_saveFile($file, $content, $append)) { + msg("Writing $file failed",-1); + io_unlock($file); + return false; } - - if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']); io_unlock($file); return true; } /** - * Delete exact linematch for $badline from $file. + * Replace one or more occurrences of a line in a file. * - * Be sure to include the trailing newline in $badline + * 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 - * - * 2005-10-14 : added regex option -- Christopher Smith + * and bz2 if extension is .bz2 * * @author Steven Danz + * @author Christopher Smith + * @author Patrick Brown + * + * @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){ - if (!@file_exists($file)) return true; +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); @@ -275,6 +368,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 + * + * @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 * @@ -285,6 +394,8 @@ function io_deleteFromFile($file,$badline,$regex=false){ * the lock is assumed to be stale and the function goes on * * @author Andreas Gohr + * + * @param string $file filename */ function io_lock($file){ global $conf; @@ -311,6 +422,8 @@ function io_lock($file){ * Unlocks a file * * @author Andreas Gohr + * + * @param string $file filename */ function io_unlock($file){ global $conf; @@ -331,6 +444,9 @@ function io_unlock($file){ * $data[1] ns_type: 'pages' or 'media' namespace tree. * * @author Ben Coburn + * + * @param string $id page id + * @param string $ns_type 'pages' or 'media' */ function io_createNamespace($id, $ns_type='pages') { // verify ns_type @@ -344,7 +460,7 @@ function io_createNamespace($id, $ns_type='pages') { $ns_stack = explode(':', $id); $ns = $id; $tmp = dirname( $file = call_user_func($types[$ns_type], $ns) ); - while (!@is_dir($tmp) && !(@file_exists($tmp) && !is_dir($tmp))) { + while (!@is_dir($tmp) && !(file_exists($tmp) && !is_dir($tmp))) { array_pop($ns_stack); $ns = implode(':', $ns_stack); if (strlen($ns)==0) { break; } @@ -365,6 +481,8 @@ function io_createNamespace($id, $ns_type='pages') { * Create the directory needed for the given file * * @author Andreas Gohr + * + * @param string $file file name */ function io_makeFileDir($file){ $dir = dirname($file); @@ -376,14 +494,17 @@ function io_makeFileDir($file){ /** * Creates a directory hierachy. * - * @link http://www.php.net/manual/en/function.mkdir.php + * @link http://php.net/manual/en/function.mkdir.php * @author * @author Andreas Gohr + * + * @param string $target filename + * @return bool|int|string */ function io_mkdir_p($target){ global $conf; if (@is_dir($target)||empty($target)) return 1; // best case check first - if (@file_exists($target) && !is_dir($target)) return 0; + if (file_exists($target) && !is_dir($target)) return 0; //recursion if (io_mkdir_p(substr($target,0,strrpos($target,'/')))){ if($conf['safemodehack']){ @@ -454,6 +575,9 @@ function io_rmdir($path, $removefiles = false) { * This is used when the safemode workaround is enabled * * @author + * + * @param string $dir name of the new directory + * @return false|string */ function io_mkdir_ftp($dir){ global $conf; @@ -488,6 +612,8 @@ function io_mkdir_ftp($dir){ * its path. * * @author Michael Klier + * + * @return false|string path to new directory or false */ function io_mktmpdir() { global $conf; @@ -516,6 +642,13 @@ function io_mktmpdir() { * * @author Andreas Gohr * @author Chris Smith + * + * @param string $url url to download + * @param string $file path to file or directory where to save + * @param bool $useAttachment if true: try to use name of download, uses otherwise $defaultName, false: uses $file as path to file + * @param string $defaultName fallback for if using $useAttachment + * @param int $maxSize maximum file size + * @return bool|string if failed false, otherwise true or the name of the file in the given dir */ function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=2097152){ global $conf; @@ -548,7 +681,7 @@ function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=20 $file = $file.$name; } - $fileexists = @file_exists($file); + $fileexists = file_exists($file); $fp = @fopen($file,"w"); if(!$fp) return false; fwrite($fp,$data); @@ -563,6 +696,10 @@ function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=20 * * rename() can not overwrite existing files on Windows * this function will use copy/unlink instead + * + * @param string $from + * @param string $to + * @return bool succes or fail */ function io_rename($from,$to){ global $conf; @@ -582,6 +719,11 @@ function io_rename($from,$to){ * Returns the exit code from the process. * * @author Tom N Harris + * + * @param string $cmd + * @param string $input input pipe + * @param string $output output pipe + * @return int exit code from process */ function io_exec($cmd, $input, &$output){ $descspec = array( @@ -639,3 +781,46 @@ function io_grep($file,$pattern,$max=0,$backref=false){ return $matches; } + +/** + * Get size of contents of a file, for a compressed file the uncompressed size + * Warning: reading uncompressed size of content of bz-files requires uncompressing + * + * @author Gerrit Uitslag + * + * @param string $file filename path to file + * @return int size of file + */ +function io_getSizeFile($file) { + if (!file_exists($file)) return 0; + + if(substr($file,-3) == '.gz'){ + $fp = @fopen($file, "rb"); + if($fp === false) return 0; + + fseek($fp, -4, SEEK_END); + $buffer = fread($fp, 4); + fclose($fp); + $array = unpack("V", $buffer); + $uncompressedsize = end($array); + }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return 0; + + $bz = bzopen($file,"r"); + if($bz === false) return 0; + + $uncompressedsize = 0; + while (!feof($bz)) { + //8192 seems to be the maximum buffersize? + $buffer = bzread($bz,8192); + if(($buffer === false) || (bzerrno($bz) !== 0)) { + return 0; + } + $uncompressedsize += strlen($buffer); + } + }else{ + $uncompressedsize = filesize($file); + } + + return $uncompressedsize; + } diff --git a/dokuwiki/inc/lang/.htaccess b/dokuwiki/inc/lang/.htaccess index 2d69be75..2aaae02f 100644 --- a/dokuwiki/inc/lang/.htaccess +++ b/dokuwiki/inc/lang/.htaccess @@ -1,3 +1,8 @@ ## no access to the lang directory -order allow,deny -deny from all + + Require all denied + + + Order allow,deny + Deny from all + diff --git a/dokuwiki/inc/lang/af/jquery.ui.datepicker.js b/dokuwiki/inc/lang/af/jquery.ui.datepicker.js index ec86242d..c7568888 100644 --- a/dokuwiki/inc/lang/af/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/af/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Afrikaans initialisation for the jQuery UI date picker plugin. */ /* Written by Renier Pretorius. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['af'] = { - closeText: 'Selekteer', - prevText: 'Vorige', - nextText: 'Volgende', - currentText: 'Vandag', - monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', - 'Julie','Augustus','September','Oktober','November','Desember'], - monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', - 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], - dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], - dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], - dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], - weekHeader: 'Wk', - dateFormat: 'dd/mm/yy', +datepicker.regional.af = { + closeText: "Selekteer", + prevText: "Vorige", + nextText: "Volgende", + currentText: "Vandag", + monthNames: [ "Januarie","Februarie","Maart","April","Mei","Junie", + "Julie","Augustus","September","Oktober","November","Desember" ], + monthNamesShort: [ "Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", + "Jul", "Aug", "Sep", "Okt", "Nov", "Des" ], + dayNames: [ "Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag" ], + dayNamesShort: [ "Son", "Maa", "Din", "Woe", "Don", "Vry", "Sat" ], + dayNamesMin: [ "So","Ma","Di","Wo","Do","Vr","Sa" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['af']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.af ); -return datepicker.regional['af']; +return datepicker.regional.af; -})); +} ) ); diff --git a/dokuwiki/inc/lang/af/lang.php b/dokuwiki/inc/lang/af/lang.php index 70672fbd..f7196471 100644 --- a/dokuwiki/inc/lang/af/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/ar/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ar/jquery.ui.datepicker.js index c93fed48..95784e88 100644 --- a/dokuwiki/inc/lang/ar/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ar/jquery.ui.datepicker.js @@ -1,37 +1,39 @@ /* 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 */ -(function( factory ) { +/* 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 ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ar'] = { - closeText: 'إغلاق', - prevText: '<السابق', - nextText: 'التالي>', - currentText: 'اليوم', - monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران', - 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], - monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], - dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], - dayNamesMin: ['Ø­', 'Ù†', 'Ø«', 'ر', 'Ø®', 'ج', 'س'], - weekHeader: 'أسبوع', - dateFormat: 'dd/mm/yy', - firstDay: 6, +datepicker.regional.ar = { + closeText: "إغلاق", + prevText: "<السابق", + nextText: "التالي>", + currentText: "اليوم", + monthNames: [ "يناير", "ÙØ¨Ø±Ø§ÙŠØ±", "مارس", "أبريل", "مايو", "يونيو", + "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوÙمبر", "ديسمبر" ], + monthNamesShort: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ], + dayNames: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ], + dayNamesShort: [ "أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت" ], + dayNamesMin: [ "Ø­", "Ù†", "Ø«", "ر", "Ø®", "ج", "س" ], + weekHeader: "أسبوع", + dateFormat: "dd/mm/yy", + firstDay: 0, isRTL: true, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['ar']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ar ); -return datepicker.regional['ar']; +return datepicker.regional.ar; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ar/lang.php b/dokuwiki/inc/lang/ar/lang.php index 50984e63..e25d0ee5 100644 --- a/dokuwiki/inc/lang/ar/lang.php +++ b/dokuwiki/inc/lang/ar/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mostafa Hussein * @author Yaman Hokan * @author Usama Akkad @@ -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'] = 'أنا أرغب ÙÙŠ حذ٠حسابي من هذه الموسوعة.
    +$lang['profconfdelete'] = 'أنا أرغب ÙÙŠ حذ٠حسابي من هذه الموسوعة.
    هذا الحدث غير ممكن.'; $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=%s)'; $lang['i_badval'] = 'القيمة %s غير شرعية أو ÙØ§Ø±ØºØ©'; $lang['i_success'] = 'الإعدادات تمت بنجاح، يرجى حذ٠المل٠install.php الآن. -ثم تابع إلى دوكو ويكي الجديدة'; -$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة Ù…Ù„ÙØ§Øª الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام دوكو ويكي الجديدة'; +ثم تابع إلى دوكو ويكي الجديدة'; +$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة Ù…Ù„ÙØ§Øª الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام دوكو ويكي الجديدة'; $lang['i_policy'] = 'تصريح ACL مبدئي'; $lang['i_pol0'] = 'ويكي Ù…ÙØªÙˆØ­Ø©Ø› أي القراءة والكتابة والتحميل مسموحة للجميع'; $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين Ùقط'; @@ -351,3 +345,5 @@ $lang['currentns'] = 'مساحة الاسم الحالية'; $lang['searchresult'] = 'نتيجة البحث'; $lang['plainhtml'] = 'نص HTML غير منسق'; $lang['wikimarkup'] = 'علامات الوكي'; +$lang['email_signature_text'] = 'أنشئت هذه الرسالة من دوكو ويكي ÙÙŠ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ar/mailtext.txt b/dokuwiki/inc/lang/ar/mailtext.txt index 21d41656..132e36ef 100644 --- a/dokuwiki/inc/lang/ar/mailtext.txt +++ b/dokuwiki/inc/lang/ar/mailtext.txt @@ -10,8 +10,3 @@ مستخدم : @USER@ @DIFF@ - - --- -تم أرسال هذه الرسالة من دوكو ويكي ÙÙ‰ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ar/mailwrap.html b/dokuwiki/inc/lang/ar/mailwrap.html index 554e3451..d2571909 100644 --- a/dokuwiki/inc/lang/ar/mailwrap.html +++ b/dokuwiki/inc/lang/ar/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -تم انشاء هذا البريد الالكتروني بواسطة DokuWiki ÙÙŠ @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ar/password.txt b/dokuwiki/inc/lang/ar/password.txt index c8530bb0..2489800a 100644 --- a/dokuwiki/inc/lang/ar/password.txt +++ b/dokuwiki/inc/lang/ar/password.txt @@ -4,7 +4,3 @@ أسم المستخدم : @LOGIN@ كلمة السر : @PASSWORD@ - --- -تم أرسال هذه الرسالة من دوكو ويكي -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ar/pwconfirm.txt b/dokuwiki/inc/lang/ar/pwconfirm.txt index 401053ea..6e971d36 100644 --- a/dokuwiki/inc/lang/ar/pwconfirm.txt +++ b/dokuwiki/inc/lang/ar/pwconfirm.txt @@ -2,7 +2,5 @@ شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ ÙÙŠ @DOKUWIKIURL@ إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة . -لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط ÙÙŠ الأسÙÙ„ . -@CONFIRM@ - -- -لقد تم عمل هذه الرسالة من قبل DokuWiki .. ÙÙŠ @DOKUWIKIURL@ +لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط ÙÙŠ الأسÙÙ„ . +@CONFIRM@ diff --git a/dokuwiki/inc/lang/ar/register.txt b/dokuwiki/inc/lang/ar/register.txt index 57406ddd..10a7fa20 100644 --- a/dokuwiki/inc/lang/ar/register.txt +++ b/dokuwiki/inc/lang/ar/register.txt @@ -1,3 +1,3 @@ ====== سجل كمستخدم جديد ====== -أملئ البيانات التالية لتسجيل حساب جديد على الويكي. تأكد من كتابة **بريد إلكترونى صحيح** - سترسل اليك كلمة سر جديدة. أسم الدخول يجب أن يكون [[doku>pagename|أسم ØµÙØ­Ø©]] صحيح. +املئ البيانات التالية لتسجيل حساب جديد على الويكي. تأكد من كتابة **بريد إلكتروني صحيح** - سترسل إليك كلمة سر جديدة. اسم الدخول يجب أن يكون [[doku>pagename|أسم ØµÙØ­Ø©]] صحيح. diff --git a/dokuwiki/inc/lang/ar/registermail.txt b/dokuwiki/inc/lang/ar/registermail.txt index f04801f2..7c1cae08 100644 --- a/dokuwiki/inc/lang/ar/registermail.txt +++ b/dokuwiki/inc/lang/ar/registermail.txt @@ -8,7 +8,3 @@ Ø§Ù„Ù…ØªØµÙØ­ : @BROWSER@ عنوان-IP: @IPADDRESS@ اسم المضيÙ: @HOSTNAME@ - --- -ÙˆÙلد هذا البريد من دوكو ويكي ÙÙŠ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ar/stopwords.txt b/dokuwiki/inc/lang/ar/stopwords.txt index bc6eb48a..1a885988 100644 --- a/dokuwiki/inc/lang/ar/stopwords.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/ar/subscr_digest.txt b/dokuwiki/inc/lang/ar/subscr_digest.txt index 6e8c2fa9..58256f5b 100644 --- a/dokuwiki/inc/lang/ar/subscr_digest.txt +++ b/dokuwiki/inc/lang/ar/subscr_digest.txt @@ -14,7 +14,3 @@ @DOKUWIKIURL@ ثم Ø²ÙØ± @SUBSCRIBE@ وألغ اشتراكك من Ø§Ù„ØµÙØ­Ø§Øª أو النظاقات - --- -أنشئت هذه الرسالة من دوكو ويكي ÙÙŠ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ar/subscr_list.txt b/dokuwiki/inc/lang/ar/subscr_list.txt index 22773a8e..681fed24 100644 --- a/dokuwiki/inc/lang/ar/subscr_list.txt +++ b/dokuwiki/inc/lang/ar/subscr_list.txt @@ -11,7 +11,3 @@ @DOKUWIKIURL@ ثم Ø²ÙØ± @SUBSCRIBE@ ثم ألغ اشتراك تغييرات Ø§Ù„ØµÙØ­Ø© Ùˆ/أو النطاق. - --- -ÙˆÙلد هذا البريد من دوكو ويكي ÙÙŠ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ar/subscr_single.txt b/dokuwiki/inc/lang/ar/subscr_single.txt index 61168841..6ac7d21d 100644 --- a/dokuwiki/inc/lang/ar/subscr_single.txt +++ b/dokuwiki/inc/lang/ar/subscr_single.txt @@ -13,11 +13,7 @@ الاصدار القديم: @OLDPAGE@ الاصدار الحديث: @NEWPAGE@ -لإلغاء إشعارات Ø§Ù„ØµÙØ­Ø©,Ù„ÙØ¬ الويكي ÙÙŠ +لإلغاء إشعارات Ø§Ù„ØµÙØ­Ø©,Ù„ÙØ¬ الويكي ÙÙŠ @DOKUWIKIURL@ ثم Ø²ÙØ± @SUBSCRIBE@ وألغ الاشتراك من تغييرات Ø§Ù„ØµÙØ­Ø© Ùˆ/أو النطاق. - --- -ولد هذا البريد باستخدام دوكو ويكي ÙÙŠ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ar/uploadmail.txt b/dokuwiki/inc/lang/ar/uploadmail.txt index e4f16c7a..bc61e6ef 100644 --- a/dokuwiki/inc/lang/ar/uploadmail.txt +++ b/dokuwiki/inc/lang/ar/uploadmail.txt @@ -8,7 +8,3 @@ الحجم : @SIZE@ نوع MIME : @MIME@ المستخدم: @USER@ - --- -ولد هذا البريد من دوكو ويكي ÙÙŠ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/az/jquery.ui.datepicker.js b/dokuwiki/inc/lang/az/jquery.ui.datepicker.js index be87ad41..2ebdcfa8 100644 --- a/dokuwiki/inc/lang/az/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/az/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Jamil Najafov (necefov33@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['az'] = { - closeText: 'BaÄŸla', - prevText: '<Geri', - nextText: 'İrÉ™li>', - currentText: 'Bugün', - monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', - 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], - monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', - 'İyul','Avq','Sen','Okt','Noy','Dek'], - dayNames: ['Bazar','Bazar ertÉ™si','ÇərÅŸÉ™nbÉ™ axÅŸamı','ÇərÅŸÉ™nbÉ™','CümÉ™ axÅŸamı','CümÉ™','ŞənbÉ™'], - dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Åž'], - dayNamesMin: ['B','B','Ç','С','Ç','C','Åž'], - weekHeader: 'Hf', - dateFormat: 'dd.mm.yy', +datepicker.regional.az = { + closeText: "BaÄŸla", + prevText: "<Geri", + nextText: "İrÉ™li>", + currentText: "Bugün", + monthNames: [ "Yanvar","Fevral","Mart","Aprel","May","İyun", + "İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr" ], + monthNamesShort: [ "Yan","Fev","Mar","Apr","May","İyun", + "İyul","Avq","Sen","Okt","Noy","Dek" ], + dayNames: [ "Bazar","Bazar ertÉ™si","ÇərÅŸÉ™nbÉ™ axÅŸamı","ÇərÅŸÉ™nbÉ™","CümÉ™ axÅŸamı","CümÉ™","ŞənbÉ™" ], + dayNamesShort: [ "B","Be","Ça","Ç","Ca","C","Åž" ], + dayNamesMin: [ "B","B","Ç","С","Ç","C","Åž" ], + weekHeader: "Hf", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['az']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.az ); -return datepicker.regional['az']; +return datepicker.regional.az; -})); +} ) ); diff --git a/dokuwiki/inc/lang/az/lang.php b/dokuwiki/inc/lang/az/lang.php index bcec31da..b842c798 100644 --- a/dokuwiki/inc/lang/az/lang.php +++ b/dokuwiki/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ı'; @@ -216,3 +213,5 @@ $lang['days'] = '%d gün É™vvÉ™l'; $lang['hours'] = '%d saat É™vvÉ™l'; $lang['minutes'] = '%d dÉ™qiqÉ™ É™vvÉ™l'; $lang['seconds'] = '%d saniyÉ™ É™vvÉ™l'; +$lang['email_signature_text'] = 'DokuWiki aÅŸağıdakı adresdÉ™ yerləşir +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/az/mailtext.txt b/dokuwiki/inc/lang/az/mailtext.txt index 43945865..97cb68d0 100644 --- a/dokuwiki/inc/lang/az/mailtext.txt +++ b/dokuwiki/inc/lang/az/mailtext.txt @@ -10,9 +10,3 @@ DÉ™yiÅŸiklÉ™rin xülasÉ™si : @SUMMARY@ İstifadəçi : @USER@ @DIFF@ - - --- -Bu mÉ™ktub DokuWiki tÉ™rÉ™findÉ™n yaradıldı. -DokuWiki aÅŸağıdakı adresdÉ™ yerləşir: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/az/password.txt b/dokuwiki/inc/lang/az/password.txt index 31bf387d..6424161f 100644 --- a/dokuwiki/inc/lang/az/password.txt +++ b/dokuwiki/inc/lang/az/password.txt @@ -4,8 +4,3 @@ Sizin @TITLE@ (@DOKUWIKIURL@) üçün olan mÉ™lumatlarınız İstifadəçi adı : @LOGIN@ ÅžifrÉ™ : @PASSWORD@ - --- -Bu mÉ™ktub DokuWiki tÉ™rÉ™findÉ™n yaradıldı. -DokuWiki aÅŸağıdakı adresdÉ™ yerləşir: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/az/pwconfirm.txt b/dokuwiki/inc/lang/az/pwconfirm.txt index 177e5a1f..582124af 100644 --- a/dokuwiki/inc/lang/az/pwconfirm.txt +++ b/dokuwiki/inc/lang/az/pwconfirm.txt @@ -7,8 +7,3 @@ KimsÉ™ @DOKUWIKIURL@ adresindÉ™ yerləşən @TITLE@ adlı wiki-yÉ™ giriÅŸ üçü TÉ™lÉ™bi tÉ™sdiq etmÉ™k üçün, aÅŸağıdakı link-É™ keçin. @CONFIRM@ - --- -Bu mÉ™ktub DokuWiki tÉ™rÉ™findÉ™n yaradıldı. -DokuWiki aÅŸağıdakı adresdÉ™ yerləşir: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/az/registermail.txt b/dokuwiki/inc/lang/az/registermail.txt index 51919756..b080e9b5 100644 --- a/dokuwiki/inc/lang/az/registermail.txt +++ b/dokuwiki/inc/lang/az/registermail.txt @@ -8,8 +8,3 @@ Tarix : @DATE@ Brauzer : @BROWSER@ IP adres : @IPADDRESS@ Host : @HOSTNAME@ - --- -Bu mÉ™ktub DokuWiki tÉ™rÉ™findÉ™n yaradıldı. -DokuWiki aÅŸağıdakı adresdÉ™ yerləşir: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/az/uploadmail.txt b/dokuwiki/inc/lang/az/uploadmail.txt index d538f825..88103fd8 100644 --- a/dokuwiki/inc/lang/az/uploadmail.txt +++ b/dokuwiki/inc/lang/az/uploadmail.txt @@ -8,8 +8,3 @@ Host : @HOSTNAME@ HÉ™cm : @SIZE@ MIME Növ : @MIME@ İstifadəçi : @USER@ - --- -Bu mÉ™ktub DokuWiki tÉ™rÉ™findÉ™n yaradıldı. -DokuWiki aÅŸağıdakı adresdÉ™ yerləşir: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/bg/jquery.ui.datepicker.js b/dokuwiki/inc/lang/bg/jquery.ui.datepicker.js index 0ee1b171..cb066a4c 100644 --- a/dokuwiki/inc/lang/bg/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/bg/jquery.ui.datepicker.js @@ -1,38 +1,38 @@ /* Bulgarian initialisation for the jQuery UI date picker plugin. */ /* Written by Stoyan Kyosev (http://svest.org). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['bg'] = { - closeText: 'затвори', - prevText: '<назад', - nextText: 'напред>', - nextBigText: '>>', - currentText: 'днеÑ', - monthNames: ['Януари','Февруари','Март','Ðприл','Май','Юни', - 'Юли','ÐвгуÑÑ‚','Септември','Октомври','Ðоември','Декември'], - monthNamesShort: ['Яну','Фев','Мар','Ðпр','Май','Юни', - 'Юли','Ðвг','Сеп','Окт','Ðов','Дек'], - dayNames: ['ÐеделÑ','Понеделник','Вторник','СрÑда','Четвъртък','Петък','Събота'], - dayNamesShort: ['Ðед','Пон','Вто','СрÑ','Чет','Пет','Съб'], - dayNamesMin: ['Ðе','По','Ð’Ñ‚','Ср','Че','Пе','Съ'], - weekHeader: 'Wk', - dateFormat: 'dd.mm.yy', +datepicker.regional.bg = { + closeText: "затвори", + prevText: "<назад", + nextText: "напред>", + nextBigText: ">>", + currentText: "днеÑ", + monthNames: [ "Януари","Февруари","Март","Ðприл","Май","Юни", + "Юли","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември" ], + monthNamesShort: [ "Яну","Фев","Мар","Ðпр","Май","Юни", + "Юли","Ðвг","Сеп","Окт","Ðов","Дек" ], + dayNames: [ "ÐеделÑ","Понеделник","Вторник","СрÑда","Четвъртък","Петък","Събота" ], + dayNamesShort: [ "Ðед","Пон","Вто","СрÑ","Чет","Пет","Съб" ], + dayNamesMin: [ "Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Съ" ], + weekHeader: "Wk", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['bg']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.bg ); -return datepicker.regional['bg']; +return datepicker.regional.bg; -})); +} ) ); diff --git a/dokuwiki/inc/lang/bg/lang.php b/dokuwiki/inc/lang/bg/lang.php index cfacd09a..6296070d 100644 --- a/dokuwiki/inc/lang/bg/lang.php +++ b/dokuwiki/inc/lang/bg/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Nikolay Vladimirov * @author Viktor Usunov * @author Kiril @@ -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.
    Веднъж изтрит, профилът не може да бъде възÑтановен!'; $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'] = 'Поради мерки за ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾Ñ Ð¢Ñ€Ñбва да разархивирате отново файловете от ÑÐ²Ð°Ð»ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð² или да Ñе поÑъветвате Ñ Ð˜Ð½Ñтрукциите за инÑталиране на Dokuwiki.'; $lang['i_funcna'] = 'PHP функциÑта %s не е доÑтъпна. Може би е забранена от доÑтавчика на хоÑтинг.'; $lang['i_phpver'] = 'ИнÑталираната верÑÐ¸Ñ %s на PHP е по-Ñтара от необходимата %s. Ðктуализирайте PHP инÑталациÑта.'; +$lang['i_mbfuncoverload'] = 'Ðеобходимо е да изключите mbstring.func_overload в php.ini за да може DokuWiki да Ñтартира.'; $lang['i_permfail'] = '%s не е доÑтъпна за пиÑане от DokuWiki. ТрÑбва да промените правата за доÑтъп до директориÑта!'; $lang['i_confexists'] = '%s вече ÑъщеÑтвува'; $lang['i_writeerr'] = '%s не можа да бъде Ñъздаден. ТрÑбва да проверите правата за доÑтъп до директориÑта/файла и да Ñъздадете файла ръчно.'; $lang['i_badhash'] = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=%s)'; $lang['i_badval'] = '%s - непозволена или празна ÑтойноÑÑ‚'; -$lang['i_success'] = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към Вашето ново DokuWiki.'; +$lang['i_success'] = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към Вашето новата инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° DokuWiki.'; $lang['i_failure'] = 'Възникнаха грешки при запиÑването на файловете Ñ Ð½Ð°Ñтройки. ВероÑтно ще Ñе наложи да ги поправите ръчно, за да можете да ползвате Вашето ново DokuWiki.'; $lang['i_policy'] = 'Първоначална политика за доÑтъп'; @@ -329,5 +331,8 @@ $lang['media_perm_read'] = 'За Ñъжаление нÑмате доÑÑ‚ $lang['media_perm_upload'] = 'За Ñъжаление нÑмате доÑтатъчно права, за да можете да качите файла.'; $lang['media_update'] = 'Качване на нова верÑиÑ'; $lang['media_restore'] = 'ВъзÑтановÑване на тази верÑиÑ'; +$lang['currentns'] = 'Текущо именно проÑтранÑтво'; $lang['searchresult'] = 'Резултати от търÑенето'; $lang['plainhtml'] = 'Обикновен HTML'; +$lang['email_signature_text'] = 'ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/bg/mailtext.txt b/dokuwiki/inc/lang/bg/mailtext.txt index a5f0cbd9..60cffed2 100644 --- a/dokuwiki/inc/lang/bg/mailtext.txt +++ b/dokuwiki/inc/lang/bg/mailtext.txt @@ -10,7 +10,3 @@ IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@ Потребител : @USER@ @DIFF@ - - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/bg/mailwrap.html b/dokuwiki/inc/lang/bg/mailwrap.html index 26b0a1e6..7df0cdce 100644 --- a/dokuwiki/inc/lang/bg/mailwrap.html +++ b/dokuwiki/inc/lang/bg/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@. +@EMAILSIGNATURE@ diff --git a/dokuwiki/inc/lang/bg/password.txt b/dokuwiki/inc/lang/bg/password.txt index 7a70ef1d..77fa48b9 100644 --- a/dokuwiki/inc/lang/bg/password.txt +++ b/dokuwiki/inc/lang/bg/password.txt @@ -4,6 +4,3 @@ Потребител : @LOGIN@ Парола : @PASSWORD@ - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bg/pwconfirm.txt b/dokuwiki/inc/lang/bg/pwconfirm.txt index 802153fd..3d0a9671 100644 --- a/dokuwiki/inc/lang/bg/pwconfirm.txt +++ b/dokuwiki/inc/lang/bg/pwconfirm.txt @@ -8,6 +8,3 @@ За да потвърдите, че иÑкането е наиÑтина от ваÑ, Ð¼Ð¾Ð»Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº: @CONFIRM@ - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/bg/registermail.txt b/dokuwiki/inc/lang/bg/registermail.txt index 4b0828c7..3c555f54 100644 --- a/dokuwiki/inc/lang/bg/registermail.txt +++ b/dokuwiki/inc/lang/bg/registermail.txt @@ -8,6 +8,3 @@ E. поща : @NEWEMAIL@ Браузър : @BROWSER@ IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@ Име на хоÑта : @HOSTNAME@ - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bg/subscr_digest.txt b/dokuwiki/inc/lang/bg/subscr_digest.txt index f0533daf..8f8cfeaa 100644 --- a/dokuwiki/inc/lang/bg/subscr_digest.txt +++ b/dokuwiki/inc/lang/bg/subscr_digest.txt @@ -13,6 +13,3 @@ Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите @SUBSCRIBE@ и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво. - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bg/subscr_list.txt b/dokuwiki/inc/lang/bg/subscr_list.txt index e9e65bc3..1e2b9817 100644 --- a/dokuwiki/inc/lang/bg/subscr_list.txt +++ b/dokuwiki/inc/lang/bg/subscr_list.txt @@ -10,6 +10,3 @@ Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите @SUBSCRIBE@ и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво. - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bg/subscr_single.txt b/dokuwiki/inc/lang/bg/subscr_single.txt index a74a21fb..36b2df3e 100644 --- a/dokuwiki/inc/lang/bg/subscr_single.txt +++ b/dokuwiki/inc/lang/bg/subscr_single.txt @@ -16,7 +16,3 @@ Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите @SUBSCRIBE@ и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво. - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bg/uploadmail.txt b/dokuwiki/inc/lang/bg/uploadmail.txt index ebd8d911..0c14437b 100644 --- a/dokuwiki/inc/lang/bg/uploadmail.txt +++ b/dokuwiki/inc/lang/bg/uploadmail.txt @@ -8,6 +8,3 @@ IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@ Размер : @SIZE@ MIME тип : @MIME@ Потребител : @USER@ - --- -ПиÑмото е генерирано от DokuWiki на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/bn/lang.php b/dokuwiki/inc/lang/bn/lang.php index 0995bc47..5cb66a85 100644 --- a/dokuwiki/inc/lang/bn/lang.php +++ b/dokuwiki/inc/lang/bn/lang.php @@ -2,24 +2,24 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Foysol * @author ninetailz * @author Khan M. B. Asad + * @author Ninetailz */ $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/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$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/dokuwiki/inc/lang/ca-valencia/lang.php b/dokuwiki/inc/lang/ca-valencia/lang.php index 3a4e3092..b899bf36 100644 --- a/dokuwiki/inc/lang/ca-valencia/lang.php +++ b/dokuwiki/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'; @@ -221,3 +218,6 @@ $lang['days'] = 'fa %d dies'; $lang['hours'] = 'fa %d hores'; $lang['minutes'] = 'fa %d minuts'; $lang['seconds'] = 'fa %d segons'; +$lang['email_signature_text'] = 'Este correu ha segut generat per DokuWiki en +@DOKUWIKIURL@'; + diff --git a/dokuwiki/inc/lang/ca-valencia/mailtext.txt b/dokuwiki/inc/lang/ca-valencia/mailtext.txt index e8da6f8d..b9de236d 100644 --- a/dokuwiki/inc/lang/ca-valencia/mailtext.txt +++ b/dokuwiki/inc/lang/ca-valencia/mailtext.txt @@ -10,8 +10,3 @@ Resum: @SUMMARY@ Usuari: @USER@ @DIFF@ - - --- -Este correu l'ha generat DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca-valencia/password.txt b/dokuwiki/inc/lang/ca-valencia/password.txt index 73e14e51..d9a781e0 100644 --- a/dokuwiki/inc/lang/ca-valencia/password.txt +++ b/dokuwiki/inc/lang/ca-valencia/password.txt @@ -4,7 +4,3 @@ Estes són les seues senyes d'usuari per a @TITLE@ en @DOKUWIKIURL@ Usuari : @LOGIN@ Contrasenya : @PASSWORD@ - --- -Este correu l'ha generat DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca-valencia/pwconfirm.txt b/dokuwiki/inc/lang/ca-valencia/pwconfirm.txt index 919c3d89..a537567a 100644 --- a/dokuwiki/inc/lang/ca-valencia/pwconfirm.txt +++ b/dokuwiki/inc/lang/ca-valencia/pwconfirm.txt @@ -9,7 +9,3 @@ Per a confirmar que la petició ha segut feta realment per vosté utilise el següent víncul. @CONFIRM@ - --- -Este correu l'ha generat DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca-valencia/registermail.txt b/dokuwiki/inc/lang/ca-valencia/registermail.txt index 47b9318b..02f2c1a3 100644 --- a/dokuwiki/inc/lang/ca-valencia/registermail.txt +++ b/dokuwiki/inc/lang/ca-valencia/registermail.txt @@ -8,7 +8,3 @@ Data : @DATE@ Navegador : @BROWSER@ Direcció IP : @IPADDRESS@ Nom de la màquina : @HOSTNAME@ - --- -Este correu l'ha generat DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca-valencia/uploadmail.txt b/dokuwiki/inc/lang/ca-valencia/uploadmail.txt index c5a33027..73837d07 100644 --- a/dokuwiki/inc/lang/ca-valencia/uploadmail.txt +++ b/dokuwiki/inc/lang/ca-valencia/uploadmail.txt @@ -8,7 +8,3 @@ Nom de la màquina: @HOSTNAME@ Tamany: @SIZE@ Tipo MIME: @MIME@ Usuari: @USER@ - --- -Este correu ha segut generat per DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ca/jquery.ui.datepicker.js index ab1dbc34..9febd90e 100644 --- a/dokuwiki/inc/lang/ca/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ca/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */ /* Writers: (joan.leon@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ca'] = { - closeText: 'Tanca', - prevText: 'Anterior', - nextText: 'Següent', - currentText: 'Avui', - monthNames: ['gener','febrer','març','abril','maig','juny', - 'juliol','agost','setembre','octubre','novembre','desembre'], - monthNamesShort: ['gen','feb','març','abr','maig','juny', - 'jul','ag','set','oct','nov','des'], - dayNames: ['diumenge','dilluns','dimarts','dimecres','dijous','divendres','dissabte'], - dayNamesShort: ['dg','dl','dt','dc','dj','dv','ds'], - dayNamesMin: ['dg','dl','dt','dc','dj','dv','ds'], - weekHeader: 'Set', - dateFormat: 'dd/mm/yy', +datepicker.regional.ca = { + closeText: "Tanca", + prevText: "Anterior", + nextText: "Següent", + currentText: "Avui", + monthNames: [ "gener","febrer","març","abril","maig","juny", + "juliol","agost","setembre","octubre","novembre","desembre" ], + monthNamesShort: [ "gen","feb","març","abr","maig","juny", + "jul","ag","set","oct","nov","des" ], + dayNames: [ "diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte" ], + dayNamesShort: [ "dg","dl","dt","dc","dj","dv","ds" ], + dayNamesMin: [ "dg","dl","dt","dc","dj","dv","ds" ], + weekHeader: "Set", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['ca']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ca ); -return datepicker.regional['ca']; +return datepicker.regional.ca; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ca/lang.php b/dokuwiki/inc/lang/ca/lang.php index 31c16ee2..998cb549 100644 --- a/dokuwiki/inc/lang/ca/lang.php +++ b/dokuwiki/inc/lang/ca/lang.php @@ -1,11 +1,14 @@ * @author Carles Bellver * @author daniel@6temes.cat + * @author Eduard Díaz + * @author controlonline.net + * @author Pauet */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -37,7 +40,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 +50,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 +65,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 +84,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.
    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 +154,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 +187,11 @@ $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['diffbothprevrev'] = 'Ambdós costats versió prèvia'; +$lang['diffbothnextrev'] = 'Ambdós costats nova versio'; $lang['line'] = 'Línia'; $lang['breadcrumb'] = 'Camí:'; $lang['youarehere'] = 'Sou aquí:'; @@ -194,6 +212,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 +244,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 +276,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'; @@ -269,19 +285,24 @@ $lang['i_problems'] = 'L\'instal·lador ha trobat alguns problemes, q $lang['i_modified'] = 'Per raons de seguretat aquesta seqüència només funciona amb una instal·lació nova i no modificada de Dokuwiki. Hauríeu de tornar a baixar el paquet i/o descomprimir-lo o consultar les instruccions d\'instal·lació de Dokuwiki completes'; $lang['i_funcna'] = 'La funció PHP %s no està disponible. Potser el vostre proveïdor de serveis l\'ha inhabilitada per alguna raó'; $lang['i_phpver'] = 'La vostra versió de PHP %s és inferior a la requerida %s. Necessiteu actualitzar la vostra instal·lació de PHP.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload cal que sigui deshabilitada en php.ini perquè funcioni DokuWiki'; $lang['i_permfail'] = 'DokuWiki no pot escriure %s. Heu d\'arreglar els permisos d\'aquest directori'; $lang['i_confexists'] = '%s ja existeix'; $lang['i_writeerr'] = 'No es pot crear %s. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.'; $lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=%s)'; $lang['i_badval'] = '%s - 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 DokuWiki.'; -$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 DokuWiki.'; +$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou DokuWiki.'; +$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 DokuWiki.'; $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 %s. També podeu veure els canvis recents de tot el wiki.'; $lang['years'] = 'fa %d anys'; $lang['months'] = 'fa %d mesos'; @@ -314,3 +335,12 @@ $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['media_acl_warning'] = 'Aquesta llista pot no estar completa per restriccions ACL i per llistes ocultes'; +$lang['currentns'] = 'Espai de noms actual'; +$lang['searchresult'] = 'Resultats cerca'; +$lang['plainhtml'] = 'HTML pla'; +$lang['wikimarkup'] = 'Wiki Marcatge'; +$lang['page_nonexist_rev'] = 'Pàgina no existeix a %s. Aixó es conseqüencia d\'haver-la creada a %s.'; +$lang['unable_to_parse_date'] = 'Impossible de esbrinar el paràmetre "%s".'; +$lang['email_signature_text'] = 'Aquest mail ha estat generat per DokuWiki a +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ca/mailtext.txt b/dokuwiki/inc/lang/ca/mailtext.txt index eda33095..dd7f0c56 100644 --- a/dokuwiki/inc/lang/ca/mailtext.txt +++ b/dokuwiki/inc/lang/ca/mailtext.txt @@ -9,8 +9,3 @@ Resum d'edició : @SUMMARY@ Usuari : @USER@ @DIFF@ - - --- -Missatge generat per DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca/mailwrap.html b/dokuwiki/inc/lang/ca/mailwrap.html index ed3bb6e9..d2571909 100644 --- a/dokuwiki/inc/lang/ca/mailwrap.html +++ b/dokuwiki/inc/lang/ca/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Aquest correu electrònic ha estat generat per DokuWiki a @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/password.txt b/dokuwiki/inc/lang/ca/password.txt index 4735fda3..d4bd9f96 100644 --- a/dokuwiki/inc/lang/ca/password.txt +++ b/dokuwiki/inc/lang/ca/password.txt @@ -4,7 +4,3 @@ Aquestes són les teves dades per a entrar en @TITLE@ en l'adreça @DOKUWIKIURL@ Usuari : @LOGIN@ Contrasenya : @PASSWORD@ - --- -Missatge generat per DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ca/pwconfirm.txt b/dokuwiki/inc/lang/ca/pwconfirm.txt index 119c4292..226e1262 100644 --- a/dokuwiki/inc/lang/ca/pwconfirm.txt +++ b/dokuwiki/inc/lang/ca/pwconfirm.txt @@ -9,7 +9,3 @@ Per confirmar que realment heu sol·licitat una nova contrasenya, utilitzeu l'enllaç següent: @CONFIRM@ - --- -Missatge generat per DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/registermail.txt b/dokuwiki/inc/lang/ca/registermail.txt index 84bf5f1a..a15351a5 100644 --- a/dokuwiki/inc/lang/ca/registermail.txt +++ b/dokuwiki/inc/lang/ca/registermail.txt @@ -8,7 +8,3 @@ Data: @DATE@ Navegador: @BROWSER@ Adreça IP: @IPADDRESS@ Ordinador: @HOSTNAME@ - --- -Missatge generat per DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/subscr_digest.txt b/dokuwiki/inc/lang/ca/subscr_digest.txt index 2b95f97a..c5666d25 100644 --- a/dokuwiki/inc/lang/ca/subscr_digest.txt +++ b/dokuwiki/inc/lang/ca/subscr_digest.txt @@ -14,8 +14,3 @@ Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a @DOKUWIKIURL@, visiteu @SUBSCRIBE@ i doneu-vos de baixa dels canvis de la pàgina o de l'espai. - - --- -Aquest mail ha estat generat per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/subscr_form.txt b/dokuwiki/inc/lang/ca/subscr_form.txt index d3679454..3c63ce66 100644 --- a/dokuwiki/inc/lang/ca/subscr_form.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/ca/subscr_list.txt b/dokuwiki/inc/lang/ca/subscr_list.txt index 56bcad54..56b9ee97 100644 --- a/dokuwiki/inc/lang/ca/subscr_list.txt +++ b/dokuwiki/inc/lang/ca/subscr_list.txt @@ -14,8 +14,3 @@ Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a @DOKUWIKIURL@, visiteu @SUBSCRIBE@ i doneu-vos de baixa dels canvis de la pàgina o de l'espai. - - --- -Aquest mail ha estat generat per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/subscr_single.txt b/dokuwiki/inc/lang/ca/subscr_single.txt new file mode 100644 index 00000000..a1711f25 --- /dev/null +++ b/dokuwiki/inc/lang/ca/subscr_single.txt @@ -0,0 +1,16 @@ +Hola! + +La pàgina @PAGE@ amb el títol @TITLE@ ha canviat. +Aquí son els canvis: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usuari : @USER@ +Resum edició: @SUMMARY@ +Versió vella: @OLDPAGE@ +Nova versió: @NEWPAGE@ + +Per cancel·lar la pàgina de notificacions, entra a la wiki a @DOKUWIKIURL@ i llavors ves a @SUBSCRIBE@ i desinscriu-te dels canvis dels noms d'espai(namespace) i pàgines. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ca/uploadmail.txt b/dokuwiki/inc/lang/ca/uploadmail.txt index c282f1f3..01b76482 100644 --- a/dokuwiki/inc/lang/ca/uploadmail.txt +++ b/dokuwiki/inc/lang/ca/uploadmail.txt @@ -8,7 +8,3 @@ Ordinador: @HOSTNAME@ Mida: @SIZE@ Tipus MIME: @MIME@ Usuari: @USER@ - --- -Missatge generat per DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/admin.txt b/dokuwiki/inc/lang/cs/admin.txt index ccfbc445..df7c5b61 100644 --- a/dokuwiki/inc/lang/cs/admin.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/cs/adminplugins.txt b/dokuwiki/inc/lang/cs/adminplugins.txt index 005f8f2d..88e547ab 100644 --- a/dokuwiki/inc/lang/cs/adminplugins.txt +++ b/dokuwiki/inc/lang/cs/adminplugins.txt @@ -1 +1 @@ -===== Další pluginy ===== \ No newline at end of file +===== Další zásuvné moduly ===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/jquery.ui.datepicker.js b/dokuwiki/inc/lang/cs/jquery.ui.datepicker.js index 34dae5ec..c2f79cf9 100644 --- a/dokuwiki/inc/lang/cs/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/cs/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Czech initialisation for the jQuery UI date picker plugin. */ /* Written by Tomas Muller (tomas@tomas-muller.net). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['cs'] = { - closeText: 'Zavřít', - prevText: '<Dříve', - nextText: 'PozdÄ›ji>', - currentText: 'Nyní', - monthNames: ['leden','únor','bÅ™ezen','duben','kvÄ›ten','Äerven', - 'Äervenec','srpen','září','říjen','listopad','prosinec'], - monthNamesShort: ['led','úno','bÅ™e','dub','kvÄ›','Äer', - 'Ävc','srp','zář','říj','lis','pro'], - dayNames: ['nedÄ›le', 'pondÄ›lí', 'úterý', 'stÅ™eda', 'Ätvrtek', 'pátek', 'sobota'], - dayNamesShort: ['ne', 'po', 'út', 'st', 'Ät', 'pá', 'so'], - dayNamesMin: ['ne','po','út','st','Ät','pá','so'], - weekHeader: 'Týd', - dateFormat: 'dd.mm.yy', +datepicker.regional.cs = { + closeText: "Zavřít", + prevText: "<Dříve", + nextText: "PozdÄ›ji>", + currentText: "Nyní", + monthNames: [ "leden","únor","bÅ™ezen","duben","kvÄ›ten","Äerven", + "Äervenec","srpen","září","říjen","listopad","prosinec" ], + monthNamesShort: [ "led","úno","bÅ™e","dub","kvÄ›","Äer", + "Ävc","srp","zář","říj","lis","pro" ], + dayNames: [ "nedÄ›le", "pondÄ›lí", "úterý", "stÅ™eda", "Ätvrtek", "pátek", "sobota" ], + dayNamesShort: [ "ne", "po", "út", "st", "Ät", "pá", "so" ], + dayNamesMin: [ "ne","po","út","st","Ät","pá","so" ], + weekHeader: "Týd", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['cs']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.cs ); -return datepicker.regional['cs']; +return datepicker.regional.cs; -})); +} ) ); diff --git a/dokuwiki/inc/lang/cs/lang.php b/dokuwiki/inc/lang/cs/lang.php index fd0820b1..e96f313b 100644 --- a/dokuwiki/inc/lang/cs/lang.php +++ b/dokuwiki/inc/lang/cs/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Bohumir Zamecnik * @author Tomas Valenta * @author Tomas Valenta @@ -19,6 +19,8 @@ * @author Radovan Buroň * @author Viktor Zavadil * @author Jaroslav Lichtblau + * @author Turkislav + * @author Daniel SlováÄek */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,7 +43,7 @@ $lang['btn_revs'] = 'Starší verze'; $lang['btn_recent'] = 'Poslední úpravy'; $lang['btn_upload'] = 'NaÄíst'; $lang['btn_cancel'] = 'Storno'; -$lang['btn_index'] = 'Index'; +$lang['btn_index'] = 'Mapa stránek'; $lang['btn_secedit'] = 'Upravit'; $lang['btn_login'] = 'PÅ™ihlásit se'; $lang['btn_logout'] = 'Odhlásit se'; @@ -50,8 +52,7 @@ $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 emailem zmÄ›ny stránky'; +$lang['btn_subscribe'] = 'Odebírat e-mailem zmÄ›ny stránky'; $lang['btn_profile'] = 'Upravit profil'; $lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Nastavit nové heslo'; @@ -70,8 +71,8 @@ $lang['user'] = 'Uživatelské jméno'; $lang['pass'] = 'Heslo'; $lang['newpass'] = 'Nové heslo'; $lang['oldpass'] = 'SouÄasné heslo'; -$lang['passchk'] = 'jeÅ¡tÄ› jednou'; -$lang['remember'] = 'PÅ™ihlásit se nastálo'; +$lang['passchk'] = 'Zopakovat'; +$lang['remember'] = 'Zapamatovat'; $lang['fullname'] = 'Celé jméno'; $lang['email'] = 'E-mail'; $lang['profile'] = 'Uživatelský profil'; @@ -80,33 +81,35 @@ $lang['badpassconfirm'] = 'Bohužel Å¡patné heslo'; $lang['minoredit'] = 'Drobné zmÄ›ny'; $lang['draftdate'] = 'Koncept automaticky uložen v'; $lang['nosecedit'] = 'Stránka byla v meziÄase zmÄ›nÄ›na. Informace o sekci již nebylo platné, byla naÄtena celá stránka.'; -$lang['searchcreatepage'] = "Pokud jste nenaÅ¡li, co hledáte, zkuste požadovanou stránku sami vytvoÅ™it stisknutím tlaÄítka ''VytvoÅ™it stránku''."; +$lang['searchcreatepage'] = 'Pokud jste nenaÅ¡li, co hledáte, zkuste požadovanou stránku sami vytvoÅ™it stisknutím tlaÄítka \'\'VytvoÅ™it stránku\'\'.'; $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 mailem.'; +$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á mailová adresa není platná. Pokud si myslíte, že to je Å¡patnÄ›, 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.'; $lang['regpwmail'] = 'VaÅ¡e heslo do systému DokuWiki'; $lang['reghere'] = 'Nemáte uživatelský úÄet? ZÅ™iÄte si ho'; $lang['profna'] = 'Tato wiki neumožňuje zmÄ›nu profilu'; $lang['profnochange'] = 'Žádné zmÄ›ny nebyly provedeny.'; -$lang['profnoempty'] = 'Nelze zadat prázdné jméno nebo mailová adresa.'; +$lang['profnoempty'] = 'Nelze vynechat jméno nebo e-mailovou adresu.'; $lang['profchanged'] = 'Uživatelský profil zmÄ›nÄ›n.'; $lang['profnodelete'] = 'Tato wiki nepodporuje mazání uživatelů'; $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.
    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'; $lang['resendpwdmissing'] = 'Musíte vyplnit vÅ¡echny položky.'; $lang['resendpwdnouser'] = 'Bohužel takový uživatel v systému není.'; -$lang['resendpwdbadauth'] = 'AutorizaÄní kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?'; -$lang['resendpwdconfirm'] = 'Odkaz na potvrzovací stránku byl odeslán mailem.'; -$lang['resendpwdsuccess'] = 'VaÅ¡e nové heslo bylo odesláno emailem.'; +$lang['resendpwdbadauth'] = 'Tento autorizaÄní kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?'; +$lang['resendpwdconfirm'] = 'Odkaz na potvrzovací stránku byl odeslán e-mailem.'; +$lang['resendpwdsuccess'] = 'VaÅ¡e nové heslo bylo odesláno e-mailem.'; $lang['license'] = 'KromÄ› míst, kde je explicitnÄ› uvedeno jinak, je obsah této wiki licencován pod následující licencí:'; $lang['licenseok'] = 'Poznámka: Tím, že editujete tuto stránku, souhlasíte, aby váš obsah byl licencován pod následující licencí:'; $lang['searchmedia'] = 'Hledat jméno souboru:'; @@ -163,7 +166,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.'; @@ -200,6 +202,8 @@ $lang['diff_side'] = 'PÅ™idané'; $lang['diffprevrev'] = 'PÅ™edchozí verze'; $lang['diffnextrev'] = 'Následující verze'; $lang['difflastrev'] = 'Poslední revize'; +$lang['diffbothprevrev'] = 'ObÄ› strany pÅ™edchozí revize'; +$lang['diffbothnextrev'] = 'ObÄ› strany příští revize'; $lang['line'] = 'Řádek'; $lang['breadcrumb'] = 'Historie:'; $lang['youarehere'] = 'UmístÄ›ní:'; @@ -252,7 +256,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'; @@ -276,16 +279,15 @@ $lang['subscr_unsubscribe_error'] = 'DoÅ¡lo k chybÄ› pÅ™i odhlaÅ¡ování %s ze s $lang['subscr_already_subscribed'] = '%s již je pÅ™ihlášen do seznamu odbÄ›ratelů %s'; $lang['subscr_not_subscribed'] = '%s není pÅ™ihlášen do seznamu odbÄ›ratelů %s'; $lang['subscr_m_not_subscribed'] = 'V souÄasné dobÄ› neodebíráte zmÄ›ny na aktuální stránce nebo ve jmenném prostoru.'; -$lang['subscr_m_new_header'] = 'PÅ™ihlásit k odebírání zmÄ›n emailem'; +$lang['subscr_m_new_header'] = 'PÅ™ihlásit k odebírání zmÄ›n e-mailem'; $lang['subscr_m_current_header'] = 'Aktuální odbÄ›ratelé zmÄ›n'; -$lang['subscr_m_unsubscribe'] = 'Odhlásit z odbÄ›ru zmÄ›n emailem'; -$lang['subscr_m_subscribe'] = 'PÅ™ihlásit se k odbÄ›ru zmÄ›n emailem'; +$lang['subscr_m_unsubscribe'] = 'Odhlásit z odbÄ›ru zmÄ›n e-mailem'; +$lang['subscr_m_subscribe'] = 'PÅ™ihlásit se k odbÄ›ru zmÄ›n e-mailem'; $lang['subscr_m_receive'] = 'PÅ™ejete si dostávat'; -$lang['subscr_style_every'] = 'email pro každou zmÄ›nu'; -$lang['subscr_style_digest'] = 'souhrnný email zmÄ›n pro každou stránku (každé %.2f dny/dní)'; -$lang['subscr_style_list'] = 'seznam zmÄ›nÄ›ných stránek od posledního emailu (každé %.2f dny/dní)'; +$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'; @@ -295,6 +297,7 @@ $lang['i_problems'] = 'Instalátor narazil na níže popsané problé $lang['i_modified'] = 'Instalátor bude z bezpeÄnostních důvodů pracovat pouze s Äistou a jeÅ¡tÄ› neupravenou instalací DokuWiki. BuÄ znovu rozbalte soubory z instalaÄního balíÄku, nebo zkuste prostudovat instrukce pro instalaci DokuWiki.'; $lang['i_funcna'] = 'PHP funkce %s není dostupná. Váš webhosting ji možná z nÄ›jakého důvodu vypnul.'; $lang['i_phpver'] = 'Verze vaší instalace PHP %s je nižší než požadovaná %s. Budete muset aktualizovat svou instalaci PHP.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload musí být vypnut v php.ini pro bÄ›h DokuWiki.'; $lang['i_permfail'] = 'DokuWiki nemůže zapisovat do %s. Budete muset opravit práva k tomuto adresáři.'; $lang['i_confexists'] = '%s již existuje'; $lang['i_writeerr'] = 'Nelze vytvoÅ™it %s. Budete muset zkontrolovat práva k souborům Äi adresářům a vytvoÅ™it tento soubor ruÄnÄ›.'; @@ -344,7 +347,13 @@ $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'; $lang['wikimarkup'] = 'Wiki jazyk'; +$lang['page_nonexist_rev'] = 'Stránka neexistovala na %s. Byla vytvoÅ™ena dodateÄne na %s.'; +$lang['unable_to_parse_date'] = 'Nelze rozebrat parametr "%s".'; +$lang['email_signature_text'] = 'Tento e-mail byl automaticky vygenerován systémem DokuWiki +@DOKUWIKIURL@'; +$lang['email_signature_html'] = ' '; diff --git a/dokuwiki/inc/lang/cs/mailtext.txt b/dokuwiki/inc/lang/cs/mailtext.txt index f235a299..8036ebec 100644 --- a/dokuwiki/inc/lang/cs/mailtext.txt +++ b/dokuwiki/inc/lang/cs/mailtext.txt @@ -10,8 +10,3 @@ Komentář : @SUMMARY@ Uživatel : @USER@ @DIFF@ - - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/cs/mailwrap.html b/dokuwiki/inc/lang/cs/mailwrap.html index dacd38d5..f15ec066 100644 --- a/dokuwiki/inc/lang/cs/mailwrap.html +++ b/dokuwiki/inc/lang/cs/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    - Tento mail byl vygenerován systémem DokuWiki na adrese @DOKUWIKIURL@. + @EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/password.txt b/dokuwiki/inc/lang/cs/password.txt index 18f21f1b..6b7c6827 100644 --- a/dokuwiki/inc/lang/cs/password.txt +++ b/dokuwiki/inc/lang/cs/password.txt @@ -1,11 +1,7 @@ -Dobrý den, +Dobrý den! Zde jsou pÅ™ihlaÅ¡ovací informace pro wiki @TITLE@ (@DOKUWIKIURL@) Jméno : @FULLNAME@ Uživatelské jméno : @LOGIN@ Heslo : @PASSWORD@ - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/cs/pwconfirm.txt b/dokuwiki/inc/lang/cs/pwconfirm.txt index aa37b3b8..2605b488 100644 --- a/dokuwiki/inc/lang/cs/pwconfirm.txt +++ b/dokuwiki/inc/lang/cs/pwconfirm.txt @@ -1,13 +1,9 @@ -Dobrý den, +Dobrý den! NÄ›kdo požádal o nové heslo k vaÅ¡emu uživatelskému úÄtu na wiki @TITLE@ (@DOKUWIKIURL@) -Pokud jste o nové heslo nežádali, ignorujte prosím tento email. +Pokud jste o nové heslo nežádali, ignorujte prosím tento e-mail. Pro potvrzení, že jste tento požadavek poslali opravdu vy, prosím otevÅ™ete následující odkaz. @CONFIRM@ - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/registermail.txt b/dokuwiki/inc/lang/cs/registermail.txt index 201e7b77..3c449bca 100644 --- a/dokuwiki/inc/lang/cs/registermail.txt +++ b/dokuwiki/inc/lang/cs/registermail.txt @@ -8,7 +8,3 @@ Datum : @DATE@ ProhlížeÄ : @BROWSER@ IP adresa : @IPADDRESS@ Hostitel : @HOSTNAME@ - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/resendpwd.txt b/dokuwiki/inc/lang/cs/resendpwd.txt index 1d2aa0d9..0820f287 100644 --- a/dokuwiki/inc/lang/cs/resendpwd.txt +++ b/dokuwiki/inc/lang/cs/resendpwd.txt @@ -1,3 +1,3 @@ ====== Zaslat nové heslo ====== -Abyste získali nové heslo k vaÅ¡emu uÄtu v této wiki, vyplňte vÅ¡echny níže uvedené informace . VaÅ¡e nové heslo bude zasláno na emailovou adresu, kterou jste zadali pÅ™i registraci. Uživatelské jméno by mÄ›lo být stejné jako vaÅ¡e uživatelské jméno, s nímž se pÅ™ihlaÅ¡ujete do této wiki. +Abyste získali nové heslo ke svému úÄtu v této wiki, vyplňte vÅ¡echny níže uvedené informace. Nové heslo bude zasláno na e-mailovou adresu, kterou jste zadali pÅ™i registraci. Uživatelské jméno by mÄ›lo být stejné jako vaÅ¡e uživatelské jméno, s nímž se pÅ™ihlaÅ¡ujete do této wiki. diff --git a/dokuwiki/inc/lang/cs/showrev.txt b/dokuwiki/inc/lang/cs/showrev.txt index 48be467b..971f836c 100644 --- a/dokuwiki/inc/lang/cs/showrev.txt +++ b/dokuwiki/inc/lang/cs/showrev.txt @@ -1,3 +1,2 @@ **Toto je starší verze dokumentu!** ---- - diff --git a/dokuwiki/inc/lang/cs/subscr_digest.txt b/dokuwiki/inc/lang/cs/subscr_digest.txt index 1b177096..49869b31 100644 --- a/dokuwiki/inc/lang/cs/subscr_digest.txt +++ b/dokuwiki/inc/lang/cs/subscr_digest.txt @@ -11,12 +11,8 @@ Stará revize: @OLDPAGE@ Nová revize: @NEWPAGE@ Pro odhlášení z odebírání zmÄ›n na této webové stránce -se prosím příhlaÅ¡te do wiki na adrese -@DOKUWIKIURL@, pak navÅ¡tivte -@SUBSCRIBE@ -a odhlaÅ¡tÄ› se z odebírání zmÄ›n na stránce Äi +se prosím pÅ™ihlaÅ¡te do wiki na adrese +@DOKUWIKIURL@, pak navÅ¡tivte +@SUBSCRIBE@ +a odhlaste se z odebírání zmÄ›n na stránce Äi ve jmenném prostoru. - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/subscr_list.txt b/dokuwiki/inc/lang/cs/subscr_list.txt index f85be8a9..d7699886 100644 --- a/dokuwiki/inc/lang/cs/subscr_list.txt +++ b/dokuwiki/inc/lang/cs/subscr_list.txt @@ -8,12 +8,8 @@ Zde jsou: -------------------------------------------------------- Pro odhlášení z odebírání zmÄ›n -se prosím příhlaÅ¡te do wiki na adrese -@DOKUWIKIURL@, pak navÅ¡tivte -@SUBSCRIBE@ -a odhlaÅ¡tÄ› se z odebírání zmÄ›n na stránce Äi +se prosím příhlaÅ¡te do wiki na adrese +@DOKUWIKIURL@, pak navÅ¡tivte +@SUBSCRIBE@ +a odhlaste se z odebírání zmÄ›n na stránce Äi ve jmenném prostoru. - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/subscr_single.txt b/dokuwiki/inc/lang/cs/subscr_single.txt index 1ee33da0..ea6b4bd9 100644 --- a/dokuwiki/inc/lang/cs/subscr_single.txt +++ b/dokuwiki/inc/lang/cs/subscr_single.txt @@ -14,12 +14,8 @@ Stará revize: @OLDPAGE@ Nová revize: @NEWPAGE@ Pro odhlášení z odebírání zmÄ›n na této webové stránce -se prosím příhlaÅ¡te do wiki na adrese -@DOKUWIKIURL@, pak navÅ¡tivte -@SUBSCRIBE@ -a odhlaÅ¡tÄ› se z odebírání zmÄ›n na stránce Äi +se prosím pÅ™ihlaÅ¡te do wiki na adrese +@DOKUWIKIURL@, pak navÅ¡tivte +@SUBSCRIBE@ +a odhlaste se z odebírání zmÄ›n na stránce Äi ve jmenném prostoru. - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cs/uploadmail.txt b/dokuwiki/inc/lang/cs/uploadmail.txt index b19b0bf7..d66ae268 100644 --- a/dokuwiki/inc/lang/cs/uploadmail.txt +++ b/dokuwiki/inc/lang/cs/uploadmail.txt @@ -1,4 +1,4 @@ -Do vaší DokuWiki byl nahrán nový dokument. Tady jsou detaily: +Do DokuWiki byl nahrán nový dokument. Tady jsou detaily: Soubor : @MEDIA@ Datum : @DATE@ @@ -8,7 +8,3 @@ Hostitel : @HOSTNAME@ Velikost : @SIZE@ MIME typ : @MIME@ Uživatel : @USER@ - --- -Tento email byl automaticky vygenerován systémem DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/cy/admin.txt b/dokuwiki/inc/lang/cy/admin.txt new file mode 100644 index 00000000..75485fcf --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/adminplugins.txt b/dokuwiki/inc/lang/cy/adminplugins.txt new file mode 100644 index 00000000..ff21264f --- /dev/null +++ b/dokuwiki/inc/lang/cy/adminplugins.txt @@ -0,0 +1,2 @@ +===== Ategion Ychwanegol ===== + diff --git a/dokuwiki/inc/lang/cy/backlinks.txt b/dokuwiki/inc/lang/cy/backlinks.txt new file mode 100644 index 00000000..2180e550 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/conflict.txt b/dokuwiki/inc/lang/cy/conflict.txt new file mode 100644 index 00000000..133e863e --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/denied.txt b/dokuwiki/inc/lang/cy/denied.txt new file mode 100644 index 00000000..2c0eb001 --- /dev/null +++ b/dokuwiki/inc/lang/cy/denied.txt @@ -0,0 +1,4 @@ +====== Gwrthodwyd Hawl ====== + +Sori, 'sdim hawliau digonol 'da chi i barhau. + diff --git a/dokuwiki/inc/lang/cy/diff.txt b/dokuwiki/inc/lang/cy/diff.txt new file mode 100644 index 00000000..69a9ff68 --- /dev/null +++ b/dokuwiki/inc/lang/cy/diff.txt @@ -0,0 +1,4 @@ +====== Gwahaniaethau ====== + +Mae hwn yn dangos y gwahaniaethau rhwng dau fersiwn y dudalen. + diff --git a/dokuwiki/inc/lang/cy/draft.txt b/dokuwiki/inc/lang/cy/draft.txt new file mode 100644 index 00000000..3b10c511 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/edit.txt b/dokuwiki/inc/lang/cy/edit.txt new file mode 100644 index 00000000..7e2d899e --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/editrev.txt b/dokuwiki/inc/lang/cy/editrev.txt new file mode 100644 index 00000000..5d32e9a6 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/index.txt b/dokuwiki/inc/lang/cy/index.txt new file mode 100644 index 00000000..607a2f69 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/install.html b/dokuwiki/inc/lang/cy/install.html new file mode 100644 index 00000000..406c7b45 --- /dev/null +++ b/dokuwiki/inc/lang/cy/install.html @@ -0,0 +1,24 @@ +

    Mae'r dudalen hon yn eich helpu chi i arsefydlu am y tro cyntaf a gyda ffurfweddu +Dokuwiki. Mae mwy o wybodaeth ar yr arsefydlwr hwn +ar dudalen ddogfennaeth ei hun.

    + +

    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 +rhaid 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).

    + +

    Bydd yr arsefydlwr hwn yn gosod eich ffurfwedd DokuWiki ar gyfer +ACL, 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.

    + +

    Dylai defnyddwyr profiadol neu'r rheiny gydag anghenion gosodiad rrbennig special +ddefnyddio'r dolenni hyn am wybodaeth parthed +canllawiau arsefydlu +and gosodiadau ffurfwedd.

    diff --git a/dokuwiki/inc/lang/cy/jquery.ui.datepicker.js b/dokuwiki/inc/lang/cy/jquery.ui.datepicker.js new file mode 100644 index 00000000..14fce914 --- /dev/null +++ b/dokuwiki/inc/lang/cy/jquery.ui.datepicker.js @@ -0,0 +1,45 @@ +/* Welsh/UK initialisation for the jQuery UI date picker plugin. */ +/* Written by William Griffiths. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "cy-GB" ] = { + closeText: "Done", + prevText: "Prev", + nextText: "Next", + currentText: "Today", + 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: "Wy", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "cy-GB" ] ); + +return datepicker.regional[ "cy-GB" ]; + +} ) ); diff --git a/dokuwiki/inc/lang/cy/lang.php b/dokuwiki/inc/lang/cy/lang.php new file mode 100644 index 00000000..7018e007 --- /dev/null +++ b/dokuwiki/inc/lang/cy/lang.php @@ -0,0 +1,373 @@ + + * @author Anika Henke + * @author Matthias Grimm + * @author Matthias Schulte + * @author Alan Davies + */ +$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.
    \'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 Ategyn Adobe Flash 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 + canllawiau arsefydylu Dokuwiki cyfan'; +$lang['i_funcna'] = 'Swyddogaeth PHP %s ddim ar gael. Posib bod eich gwesteiwr wedi\'i hanalluogi am ryw reswm?'; +$lang['i_phpver'] = 'Mae\'ch fersiwn PHP %s yn is na\'r hyn sydd ei angen %s. 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 %s. Mae angen newid gosodiadau hawliau ar gyfer y ffolder hwn!'; +$lang['i_confexists'] = 'Mae %s eisoes yn bodoli'; +$lang['i_writeerr'] = 'Methu creu %s. 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=%s)'; +$lang['i_badval'] = '%s - gwerth anghyfreithlon neu wag'; +$lang['i_success'] = 'Gorffennodd y ffurfwedd yn llwyddiannus. Gallwch chi ddileu\'r ffeil install.php nawr. Ewch + i\'ch DokuWiki newydd.'; +$lang['i_failure'] = 'Ymddangosodd gwallau wrth ysgrifennu\'r ffeiliau ffurfwedd. Bydd angen i chi eu cywiro + nhw gan law cyn gallwch chi ddefnyddio\'ch DokuWiki newydd.'; +$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 %s. Gallwch chi hefyd weld y newidiadau diweddar ar gyfer y wici cyfan.'; //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 %s.'; +$lang['unable_to_parse_date'] = 'Methu dosbarthu ar baramedr "%s".'; +//Setup VIM: ex: et ts=2 : diff --git a/dokuwiki/inc/lang/cy/locked.txt b/dokuwiki/inc/lang/cy/locked.txt new file mode 100644 index 00000000..4c7865dd --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/login.txt b/dokuwiki/inc/lang/cy/login.txt new file mode 100644 index 00000000..dbdde0e6 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/mailtext.txt b/dokuwiki/inc/lang/cy/mailtext.txt new file mode 100644 index 00000000..27462332 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/mailwrap.html b/dokuwiki/inc/lang/cy/mailwrap.html new file mode 100644 index 00000000..254fcca7 --- /dev/null +++ b/dokuwiki/inc/lang/cy/mailwrap.html @@ -0,0 +1,13 @@ + + + @TITLE@ + + + + +@HTMLBODY@ + +

    +Cafodd y neges hon ei generadu gan DokuWiki ar @DOKUWIKIURL@. + + diff --git a/dokuwiki/inc/lang/cy/newpage.txt b/dokuwiki/inc/lang/cy/newpage.txt new file mode 100644 index 00000000..dfe8a79d --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/norev.txt b/dokuwiki/inc/lang/cy/norev.txt new file mode 100644 index 00000000..7d978c55 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/password.txt b/dokuwiki/inc/lang/cy/password.txt new file mode 100644 index 00000000..da0678ef --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/preview.txt b/dokuwiki/inc/lang/cy/preview.txt new file mode 100644 index 00000000..477879d5 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/pwconfirm.txt b/dokuwiki/inc/lang/cy/pwconfirm.txt new file mode 100644 index 00000000..529571e1 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/read.txt b/dokuwiki/inc/lang/cy/read.txt new file mode 100644 index 00000000..8703ef93 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/recent.txt b/dokuwiki/inc/lang/cy/recent.txt new file mode 100644 index 00000000..2affbf90 --- /dev/null +++ b/dokuwiki/inc/lang/cy/recent.txt @@ -0,0 +1,5 @@ +====== Newidiadau Diweddar ====== + +Cafodd y tudalennau canlynol eu newid yn ddiweddar. + + diff --git a/dokuwiki/inc/lang/cy/register.txt b/dokuwiki/inc/lang/cy/register.txt new file mode 100644 index 00000000..6fbc8505 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/registermail.txt b/dokuwiki/inc/lang/cy/registermail.txt new file mode 100644 index 00000000..0cb2b4fd --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/resendpwd.txt b/dokuwiki/inc/lang/cy/resendpwd.txt new file mode 100644 index 00000000..ddad8a90 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/resetpwd.txt b/dokuwiki/inc/lang/cy/resetpwd.txt new file mode 100644 index 00000000..57f19928 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/revisions.txt b/dokuwiki/inc/lang/cy/revisions.txt new file mode 100644 index 00000000..afbc9fed --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/searchpage.txt b/dokuwiki/inc/lang/cy/searchpage.txt new file mode 100644 index 00000000..fd554e1e --- /dev/null +++ b/dokuwiki/inc/lang/cy/searchpage.txt @@ -0,0 +1,5 @@ +====== Chwilio ====== + +Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@ + +===== Canlyniadau ===== diff --git a/dokuwiki/inc/lang/cy/showrev.txt b/dokuwiki/inc/lang/cy/showrev.txt new file mode 100644 index 00000000..6cc9d6c2 --- /dev/null +++ b/dokuwiki/inc/lang/cy/showrev.txt @@ -0,0 +1,2 @@ +**Dyma hen adolygiad y ddogfen!** +---- diff --git a/dokuwiki/inc/lang/cy/stopwords.txt b/dokuwiki/inc/lang/cy/stopwords.txt new file mode 100644 index 00000000..2ac4c317 --- /dev/null +++ b/dokuwiki/inc/lang/cy/stopwords.txt @@ -0,0 +1,31 @@ +# This is a list of words the indexer ignores, one word per line +# When you edit this file be sure to use UNIX line endings (single newline) +# No need to include words shorter than 3 chars - these are ignored anyway +# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +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/dokuwiki/inc/lang/cy/subscr_digest.txt b/dokuwiki/inc/lang/cy/subscr_digest.txt new file mode 100644 index 00000000..611e0570 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/subscr_form.txt b/dokuwiki/inc/lang/cy/subscr_form.txt new file mode 100644 index 00000000..47d1a171 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/subscr_list.txt b/dokuwiki/inc/lang/cy/subscr_list.txt new file mode 100644 index 00000000..592f2902 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/subscr_single.txt b/dokuwiki/inc/lang/cy/subscr_single.txt new file mode 100644 index 00000000..2a774ebd --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/updateprofile.txt b/dokuwiki/inc/lang/cy/updateprofile.txt new file mode 100644 index 00000000..ce9ca503 --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/cy/uploadmail.txt b/dokuwiki/inc/lang/cy/uploadmail.txt new file mode 100644 index 00000000..8102232a --- /dev/null +++ b/dokuwiki/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/dokuwiki/inc/lang/da/denied.txt b/dokuwiki/inc/lang/da/denied.txt index 7bf3b8b9..217d8937 100644 --- a/dokuwiki/inc/lang/da/denied.txt +++ b/dokuwiki/inc/lang/da/denied.txt @@ -1,3 +1,3 @@ -====== Adgang nægtet! ====== +====== Adgang nægtet ====== Du har ikke rettigheder til at fortsætte. diff --git a/dokuwiki/inc/lang/da/jquery.ui.datepicker.js b/dokuwiki/inc/lang/da/jquery.ui.datepicker.js index d8881e1b..273f0e3f 100644 --- a/dokuwiki/inc/lang/da/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/da/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Danish initialisation for the jQuery UI date picker plugin. */ /* Written by Jan Christensen ( deletestuff@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['da'] = { - closeText: 'Luk', - prevText: '<Forrige', - nextText: 'Næste>', - currentText: 'Idag', - monthNames: ['Januar','Februar','Marts','April','Maj','Juni', - 'Juli','August','September','Oktober','November','December'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dec'], - dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], - dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], - dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], - weekHeader: 'Uge', - dateFormat: 'dd-mm-yy', +datepicker.regional.da = { + closeText: "Luk", + prevText: "<Forrige", + nextText: "Næste>", + currentText: "Idag", + monthNames: [ "Januar","Februar","Marts","April","Maj","Juni", + "Juli","August","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ "Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag" ], + dayNamesShort: [ "Søn","Man","Tir","Ons","Tor","Fre","Lør" ], + dayNamesMin: [ "Sø","Ma","Ti","On","To","Fr","Lø" ], + weekHeader: "Uge", + dateFormat: "dd-mm-yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['da']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.da ); -return datepicker.regional['da']; +return datepicker.regional.da; -})); +} ) ); diff --git a/dokuwiki/inc/lang/da/lang.php b/dokuwiki/inc/lang/da/lang.php index d27f0aa3..00f02704 100644 --- a/dokuwiki/inc/lang/da/lang.php +++ b/dokuwiki/inc/lang/da/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author koeppe * @author Jon Bendtsen * @author Lars Næsbye Christensen @@ -17,6 +17,9 @@ * @author Soren Birk * @author Jens Hyllegaard * @author soer9648 + * @author Søren Birk + * @author Søren Birk + * @author Jacob Palm */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -48,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'; @@ -56,11 +58,13 @@ $lang['btn_resendpwd'] = 'Vælg ny adgangskode'; $lang['btn_draft'] = 'Redigér kladde'; $lang['btn_recover'] = 'Gendan kladde'; $lang['btn_draftdel'] = 'Slet kladde'; -$lang['btn_revert'] = 'Reetablér'; +$lang['btn_revert'] = 'Gendan'; $lang['btn_register'] = 'Registrér'; $lang['btn_apply'] = 'Anvend'; $lang['btn_media'] = 'Media Manager'; $lang['btn_deleteuser'] = 'Fjern Min Konto'; +$lang['btn_img_backto'] = 'Tilbage til %s'; +$lang['btn_mediaManager'] = 'Vis i Media Manager'; $lang['loggedinas'] = 'Logget ind som:'; $lang['user'] = 'Brugernavn'; $lang['pass'] = 'Adgangskode'; @@ -72,38 +76,40 @@ $lang['fullname'] = 'Fulde navn'; $lang['email'] = 'E-mail'; $lang['profile'] = 'Brugerprofil'; $lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.'; -$lang['badpassconfirm'] = 'Kodeordet var desværre forkert'; +$lang['badpassconfirm'] = 'Adgangkode var desværre forkert'; $lang['minoredit'] = 'Mindre ændringer'; $lang['draftdate'] = 'Kladde automatisk gemt d.'; $lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.'; -$lang['searchcreatepage'] = "Hvis resultaterne ikke indeholder det du søgte efter kan du oprette et nyt dokument med samme navn som søgningen ved at trykke på knappen **''[Opret dette dokument]''**."; +$lang['searchcreatepage'] = 'Hvis resultaterne ikke indeholder det du søgte efter kan du oprette et nyt dokument med samme navn som søgningen ved at trykke på knappen **\'\'[Opret dette dokument]\'\'**.'; $lang['regmissing'] = 'Du skal udfylde alle felter.'; $lang['reguexists'] = 'Dette brugernavn er allerede i brug.'; $lang['regsuccess'] = 'Du er nu oprettet som bruger. Dit adgangskode bliver sendt til dig i en e-mail.'; $lang['regsuccess2'] = 'Du er nu oprettet som bruger.'; +$lang['regfail'] = 'Brugeren kunne ikke oprettes.'; $lang['regmailfail'] = 'Dit adgangskode blev ikke sendt. Kontakt venligst administratoren.'; $lang['regbadmail'] = 'E-mail-adressen er ugyldig. Kontakt venligst administratoren, hvis du mener dette er en fejl.'; $lang['regbadpass'] = 'De to adgangskoder er ikke ens, vær venlig at prøve igen.'; -$lang['regpwmail'] = 'Dit DokuWiki password'; +$lang['regpwmail'] = 'Dit adgangskode til DokuWiki'; $lang['reghere'] = 'Opret en DokuWiki-konto her'; $lang['profna'] = 'Denne wiki understøtter ikke ændring af profiler'; $lang['profnochange'] = 'Ingen ændringer, intet modificeret.'; $lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt.'; $lang['profchanged'] = 'Brugerprofil opdateret korrekt.'; -$lang['profnodelete'] = 'Denne wiki supporterer ikke sletning af brugere'; -$lang['profdeleteuser'] = 'Slet Konto'; +$lang['profnodelete'] = 'Denne wiki understøtter ikke sletning af brugere'; +$lang['profdeleteuser'] = 'Slet konto'; $lang['profdeleted'] = 'Din brugerkonto er blevet slettet fra denne wiki'; $lang['profconfdelete'] = 'Jeg ønsker at slette min konto fra denne wiki.
    Denne handling kan ikke fortrydes.'; -$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få et nyt'; -$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.'; -$lang['resendpwd'] = 'Vælg ny adgangskode for'; +$lang['proffail'] = 'Brugerprofilen blev ikke opdateret.'; +$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få en ny'; +$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af ny adgangskode.'; +$lang['resendpwd'] = 'Vælg en ny adgangskode for'; $lang['resendpwdmissing'] = 'Du skal udfylde alle felter.'; $lang['resendpwdnouser'] = 'Vi kan ikke finde denne bruger i vores database.'; $lang['resendpwdbadauth'] = 'Beklager, denne autoriseringskode er ikke gyldig. Kontroller venligst at du benyttede det fulde link til bekræftelse.'; -$lang['resendpwdconfirm'] = 'Et henvisning med bekræftelse er blevet sendt med email.'; -$lang['resendpwdsuccess'] = 'Dit nye adgangskode er blevet sendt med e-mail.'; -$lang['license'] = 'Med mindre andet angivet, vil indhold på denne wiki blive frigjort under følgende licens:'; -$lang['licenseok'] = 'Note: ved at ændre denne side, acceptere du at dit indhold bliver frigivet under følgende licens:'; +$lang['resendpwdconfirm'] = 'En e-mail med et link til bekræftelse er blevet sendt.'; +$lang['resendpwdsuccess'] = 'Din nye adgangskode er blevet sendt med e-mail.'; +$lang['license'] = 'Med mindre andet angivet, vil indhold på denne wiki blive udgivet under følgende licens:'; +$lang['licenseok'] = 'Bemærk - ved at redigere denne side, accepterer du at dit indhold bliver frigivet under følgende licens:'; $lang['searchmedia'] = 'Søg filnavn'; $lang['searchmedia_in'] = 'Søg i %s'; $lang['txt_upload'] = 'Vælg den fil der skal overføres:'; @@ -113,75 +119,75 @@ $lang['maxuploadsize'] = 'Upload max. %s pr. fil.'; $lang['lockedby'] = 'Midlertidig låst af:'; $lang['lockexpire'] = 'Lås udløber kl:.'; $lang['js']['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.'; -$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet +$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet. Fortsæt alligevel?'; $lang['js']['searchmedia'] = 'Søg efter filer'; $lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; $lang['js']['hidedetails'] = 'Skjul detaljer'; $lang['js']['mediatitle'] = 'Link indstillinger'; $lang['js']['mediadisplay'] = 'Link type'; -$lang['js']['mediaalign'] = 'Juster'; +$lang['js']['mediaalign'] = 'Justering'; $lang['js']['mediasize'] = 'Billede størrelse'; -$lang['js']['mediatarget'] = 'Link mål'; +$lang['js']['mediatarget'] = 'Link destination'; $lang['js']['mediaclose'] = 'Luk'; $lang['js']['mediainsert'] = 'Indsæt'; $lang['js']['mediadisplayimg'] = 'Vis billedet'; $lang['js']['mediadisplaylnk'] = 'Vis kun linket'; $lang['js']['mediasmall'] = 'Lille version'; -$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['mediamedium'] = 'Mellem version'; $lang['js']['medialarge'] = 'Stor version'; $lang['js']['mediaoriginal'] = 'Original version'; $lang['js']['medialnk'] = 'Link til detajle side'; $lang['js']['mediadirect'] = 'Direkte link til originalen'; $lang['js']['medianolnk'] = 'Intet link'; -$lang['js']['medianolink'] = 'Link ikke billedet'; +$lang['js']['medianolink'] = 'Link ikke til billedet'; $lang['js']['medialeft'] = 'Juster billedet til venstre'; $lang['js']['mediaright'] = 'Juster billedet til højre'; $lang['js']['mediacenter'] = 'Centreret'; $lang['js']['medianoalign'] = 'Brug ingen justering'; $lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. Du kan stadig kopiere og indsætte linket.'; -$lang['js']['linkwiz'] = 'guiden til henvisninger'; -$lang['js']['linkto'] = 'Henvise til:'; +$lang['js']['linkwiz'] = 'Guiden til henvisninger'; +$lang['js']['linkto'] = 'Henvis til:'; $lang['js']['del_confirm'] = 'Slet valgte post(er)?'; -$lang['js']['restore_confirm'] = 'Vil du virkeligt genskabe denne version?'; +$lang['js']['restore_confirm'] = 'Er du sikker på at du vil genskabe denne version?'; $lang['js']['media_diff'] = 'Vis forskelle:'; $lang['js']['media_diff_both'] = 'Side ved Side'; -$lang['js']['media_diff_opacity'] = 'Skin-igennem'; +$lang['js']['media_diff_opacity'] = 'Skin igennem'; +$lang['js']['media_diff_portions'] = 'Skub'; $lang['js']['media_select'] = 'Vælg filer...'; -$lang['js']['media_upload_btn'] = 'Upload'; +$lang['js']['media_upload_btn'] = 'Overfør'; $lang['js']['media_done_btn'] = 'Færdig'; -$lang['js']['media_drop'] = 'Drop filer her for at uploade'; +$lang['js']['media_drop'] = 'Træk filer hertil for at overføre'; $lang['js']['media_cancel'] = 'fjern'; $lang['js']['media_overwrt'] = 'Overskriv eksisterende filer'; -$lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; +$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øre mediefil'; -$lang['uploadsucc'] = 'Overførelse var en succes'; -$lang['uploadfail'] = 'Overførelse fejlede. Der er muligvis problemer med rettighederne.'; -$lang['uploadwrong'] = 'Overførelse afvist. Filtypen er ikke tilladt.'; +$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.'; $lang['uploadexist'] = 'Filen eksisterer allerede.'; -$lang['uploadbadcontent'] = 'Overføret indhold tilsvaret ikke til %s fil-endelsen.'; +$lang['uploadbadcontent'] = 'Det overført indhold svarer ikke til %s fil-endelsen.'; $lang['uploadspam'] = 'Overførelsen blev blokeret af spam sortlisten.'; $lang['uploadxss'] = 'Overførelsen blev blokeret på grund af mulig skadeligt indhold.'; -$lang['uploadsize'] = 'Den overføret fil var for stor (max. %s)'; +$lang['uploadsize'] = 'Den overførte fil var for stor (maksimal størrelse %s)'; $lang['deletesucc'] = 'Filen "%s" er blevet slettet.'; -$lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne.'; -$lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.'; +$lang['deletefail'] = '"%s" kunne ikke slettes - kontroller rettighederne.'; +$lang['mediainuse'] = 'Filen "%s" kan ikke slettes - den er stadig i brug.'; $lang['namespaces'] = 'Navnerum'; $lang['mediafiles'] = 'Tilgængelige filer i'; -$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side'; +$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side.'; $lang['mediausage'] = 'Brug den følgende syntaks til at henvise til denne fil:'; $lang['mediaview'] = 'Vis oprindelig fil'; $lang['mediaroot'] = 'rod'; $lang['mediaupload'] = 'Overføre en fil til det nuværende navnerum her. For at oprette under-navnerum, tilføj dem til "Overføre som" filnavnet, adskilt af kolontegn.'; -$lang['mediaextchange'] = 'Filudvidelse ændret fra .%s til .%s!'; +$lang['mediaextchange'] = 'Filtype ændret fra .%s til .%s!'; $lang['reference'] = 'Henvisning til'; $lang['ref_inuse'] = 'Filen kan ikke slettes, da den stadig er i brug på følgende sider:'; -$lang['ref_hidden'] = 'Nogle henvisninger er i dokumenter du ikke har læserettigheder til'; +$lang['ref_hidden'] = 'Nogle henvisninger er på sider du ikke har læserettigheder til'; $lang['hits'] = 'Besøg'; -$lang['quickhits'] = 'Tilsvarende dokumentnavne'; +$lang['quickhits'] = 'Tilsvarende sidenavne'; $lang['toc'] = 'Indholdsfortegnelse'; $lang['current'] = 'nuværende'; $lang['yours'] = 'Din version'; @@ -190,7 +196,12 @@ $lang['diff2'] = 'Vis forskelle i forhold til de valgte revision $lang['difflink'] = 'Link til denne sammenlinings vising'; $lang['diff_type'] = 'Vis forskelle:'; $lang['diff_inline'] = 'Indeni'; -$lang['diff_side'] = 'Side ved Side'; +$lang['diff_side'] = 'Side ved side'; +$lang['diffprevrev'] = 'Forrige revision'; +$lang['diffnextrev'] = 'Næste revision'; +$lang['difflastrev'] = 'Sidste revision'; +$lang['diffbothprevrev'] = 'Begge sider forrige revision'; +$lang['diffbothnextrev'] = 'Begge sider næste revision'; $lang['line'] = 'Linje'; $lang['breadcrumb'] = 'Sti:'; $lang['youarehere'] = 'Du er her:'; @@ -198,26 +209,26 @@ $lang['lastmod'] = 'Sidst ændret:'; $lang['by'] = 'af'; $lang['deleted'] = 'slettet'; $lang['created'] = 'oprettet'; -$lang['restored'] = 'gammel udgave reetableret (%s)'; +$lang['restored'] = 'gammel udgave gendannet (%s)'; $lang['external_edit'] = 'ekstern redigering'; -$lang['summary'] = 'Redigerings resumé'; -$lang['noflash'] = 'Den Adobe Flash Plugin er nødvendig til at vise denne indehold.'; -$lang['download'] = 'Hente kodestykke'; +$lang['summary'] = 'Resumé af ændrigner'; +$lang['noflash'] = 'Du skal installere Adobe Flash Player for at kunne se dette indhold.'; +$lang['download'] = 'Hent kodestykke'; $lang['tools'] = 'Værktøjer'; $lang['user_tools'] = 'Brugerværktøjer'; $lang['site_tools'] = 'Webstedsværktøjer'; $lang['page_tools'] = 'Sideværktøjer'; $lang['skip_to_content'] = 'hop til indhold'; $lang['sidebar'] = 'Sidebjælke'; -$lang['mail_newpage'] = 'dokument tilføjet:'; -$lang['mail_changed'] = 'dokument ændret:'; -$lang['mail_subscribe_list'] = 'sider ændret i navnerum'; +$lang['mail_newpage'] = 'side tilføjet:'; +$lang['mail_changed'] = 'side ændret:'; +$lang['mail_subscribe_list'] = 'sider ændret i navnerum:'; $lang['mail_new_user'] = 'Ny bruger'; -$lang['mail_upload'] = 'fil overføret:'; +$lang['mail_upload'] = 'fil overført:'; $lang['changes_type'] = 'Vis ændringer af'; $lang['pages_changes'] = 'Sider'; -$lang['media_changes'] = 'Media filer'; -$lang['both_changes'] = 'Både sider og media filer'; +$lang['media_changes'] = 'Mediefiler'; +$lang['both_changes'] = 'Både sider og medie filer'; $lang['qb_bold'] = 'Fed'; $lang['qb_italic'] = 'Kursiv'; $lang['qb_underl'] = 'Understregning'; @@ -229,7 +240,7 @@ $lang['qb_h3'] = 'Niveau 3 overskrift'; $lang['qb_h4'] = 'Niveau 4 overskrift'; $lang['qb_h5'] = 'Niveau 5 overskrift'; $lang['qb_h'] = 'Overskrift'; -$lang['qb_hs'] = 'Vælg overskriften'; +$lang['qb_hs'] = 'Vælg overskrift'; $lang['qb_hplus'] = 'Højere overskriftsniveau'; $lang['qb_hminus'] = 'Lavere overskriftsniveau'; $lang['qb_hequal'] = 'Samme overskriftsniveau'; @@ -237,17 +248,15 @@ $lang['qb_link'] = 'Intern henvisning'; $lang['qb_extlink'] = 'Ekstern henvisning'; $lang['qb_hr'] = 'Vandret linje'; $lang['qb_ol'] = 'Nummereret liste'; -$lang['qb_ul'] = 'Unummereret liste'; +$lang['qb_ul'] = 'Punktopstilling'; $lang['qb_media'] = 'Tilføj billeder og andre filer'; $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'] = 'Skrivning af metadata fejlede'; +$lang['metasaveerr'] = 'Fejl under skrivning af metadata'; $lang['metasaveok'] = 'Metadata gemt'; -$lang['btn_img_backto'] = 'Tilbage til %s'; $lang['img_title'] = 'Titel:'; $lang['img_caption'] = 'Billedtekst:'; $lang['img_date'] = 'Dato:'; @@ -260,7 +269,6 @@ $lang['img_camera'] = 'Kamera:'; $lang['img_keywords'] = 'Emneord:'; $lang['img_width'] = 'Bredde:'; $lang['img_height'] = 'Højde:'; -$lang['btn_mediaManager'] = 'Vis i Media Manager'; $lang['subscr_subscribe_success'] = 'Tilføjede %s til abonnement listen for %s'; $lang['subscr_subscribe_error'] = 'Fejl ved tilføjelse af %s til abonnement listen for %s'; $lang['subscr_subscribe_noaddress'] = 'Der er ikke nogen addresse forbundet til din bruger, så du kan ikke blive tilføjet til abonnement listen'; @@ -278,7 +286,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'; @@ -290,6 +297,7 @@ Du burde enten gen-udpakke filerne fra den hentede pakke eller tjekke den fuldst DokuWiki installations instruktioner'; $lang['i_funcna'] = 'PHP funtionen %s er ikke tilgængelig. Måske har din udbyder slået det fra af en eller anden grund?'; $lang['i_phpver'] = 'Din PHP version %s er mindre en den nødvendige %s. Du er nød til at opgradere din PHP installation.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload skal være deaktiveret i php.ini for at køre DokuWiki.'; $lang['i_permfail'] = 'DokuWiki kan ikke skrive til %s. Du er nød til at rette tilladelses indstillingerne for denne mappe!'; $lang['i_confexists'] = '%s eksisterer allerede'; $lang['i_writeerr'] = 'Kunne ikke oprette %s. Du bliver nød til at tjekke mappe/fil- tilladelserne og oprette filen manuelt.'; @@ -301,10 +309,12 @@ $lang['i_policy'] = 'Begyndende ACL politik'; $lang['i_pol0'] = 'Åben Wiki (alle kan læse, skrive og uploade)'; $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrerede brugere kan skrive og overføre)'; $lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)'; +$lang['i_allowreg'] = 'Tillad at brugere kan registrere sig selv'; $lang['i_retry'] = 'Forsøg igen'; $lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:'; $lang['i_license_none'] = 'Vis ikke licensinformationer'; $lang['i_pop_field'] = 'Hjælp os venligst med at forbedre oplevelsen af DokuWiki:'; +$lang['i_pop_label'] = 'Send anonymt brugsdata til DokuWikis udviklere, én gang om måneden'; $lang['recent_global'] = 'Du ser lige nu ændringerne i %s navnerummet. Du kan også se de sidste ændringer for hele wiki siden '; $lang['years'] = '%d år siden'; $lang['months'] = '%d måned siden'; @@ -337,3 +347,11 @@ $lang['media_perm_read'] = 'Du har ikke nok rettigheder til at læse filer $lang['media_perm_upload'] = 'Du har ikke nok rettigheder til at uploade filer.'; $lang['media_update'] = 'Upload ny version'; $lang['media_restore'] = 'Genskab denne version'; +$lang['media_acl_warning'] = 'Listen er måske ikke komplet pga. ACL restriktioner og skjulte sider.'; +$lang['currentns'] = 'Nuværende navnerum'; +$lang['searchresult'] = 'Søgsresultat'; +$lang['plainhtml'] = 'Ren HTML'; +$lang['wikimarkup'] = 'Wiki Opmærkning'; +$lang['page_nonexist_rev'] = 'Siden blev ikke fundet ved %s. Den blev efterfølgende oprettet ved %s.'; +$lang['email_signature_text'] = 'Denne e-mail blev genereret af DokuWiki på +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/da/mailtext.txt b/dokuwiki/inc/lang/da/mailtext.txt index 948a265f..bea9cd3e 100644 --- a/dokuwiki/inc/lang/da/mailtext.txt +++ b/dokuwiki/inc/lang/da/mailtext.txt @@ -10,8 +10,3 @@ Redigerings resumé : @SUMMARY@ Bruger : @USER@ @DIFF@ - - --- -Denne e-mail blev genereret af DokuWiki på: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/da/mailwrap.html b/dokuwiki/inc/lang/da/mailwrap.html index 0eb2e0bc..d2571909 100644 --- a/dokuwiki/inc/lang/da/mailwrap.html +++ b/dokuwiki/inc/lang/da/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Denne mail blev sendt af DokuWiki på @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/da/password.txt b/dokuwiki/inc/lang/da/password.txt index 051564cb..b129bb9b 100644 --- a/dokuwiki/inc/lang/da/password.txt +++ b/dokuwiki/inc/lang/da/password.txt @@ -4,8 +4,3 @@ Her er dine brugeroplysninger @TITLE@ at @DOKUWIKIURL@ Brugernavn : @LOGIN@ Adgangskode : @PASSWORD@ - --- -Denne e-mail blev genereret af DokuWiki på -@DOKUWIKIURL@ - \ No newline at end of file diff --git a/dokuwiki/inc/lang/da/pwconfirm.txt b/dokuwiki/inc/lang/da/pwconfirm.txt index 3df556e6..25c20a4a 100644 --- a/dokuwiki/inc/lang/da/pwconfirm.txt +++ b/dokuwiki/inc/lang/da/pwconfirm.txt @@ -8,7 +8,3 @@ Hvis du ikke bad om dette, så ignorer venligst denne email. For at bekræfte at det var dig der bad om dette, benyt venligst det følgende henvisning. @CONFIRM@ - --- -Denne e-mail blev genereret af DokuWiki på -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/da/registermail.txt b/dokuwiki/inc/lang/da/registermail.txt index d431f759..8ce3b54d 100644 --- a/dokuwiki/inc/lang/da/registermail.txt +++ b/dokuwiki/inc/lang/da/registermail.txt @@ -8,7 +8,3 @@ Dato : @DATE@ Browser : @BROWSER@ IP-adresse : @IPADDRESS@ Værtsnavn : @HOSTNAME@ - --- -Denne mail blev genereret af DokuWiki på -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/da/subscr_digest.txt b/dokuwiki/inc/lang/da/subscr_digest.txt index 0aa19ac0..06a28d68 100644 --- a/dokuwiki/inc/lang/da/subscr_digest.txt +++ b/dokuwiki/inc/lang/da/subscr_digest.txt @@ -14,7 +14,3 @@ For at stoppe notifikationer om sideændringer, login på wikien på @DOKUWIKIURL@ og besøg så @SUBSCRIBE@ for at afmelde side og/eller navneområde ændringer. - --- -Denne mail blev sendt af DokuWiki på -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/da/subscr_list.txt b/dokuwiki/inc/lang/da/subscr_list.txt index 02a34d25..62f8f66b 100644 --- a/dokuwiki/inc/lang/da/subscr_list.txt +++ b/dokuwiki/inc/lang/da/subscr_list.txt @@ -11,7 +11,3 @@ For at stoppe notifikationer om sideændringer, login på wikien på @DOKUWIKIURL@ og besøg så @SUBSCRIBE@ for at afmelde side og/eller navneområde ændringer. - --- -Denne mail blev sendt af DokuWiki på -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/da/subscr_single.txt b/dokuwiki/inc/lang/da/subscr_single.txt index cdc55451..fb505236 100644 --- a/dokuwiki/inc/lang/da/subscr_single.txt +++ b/dokuwiki/inc/lang/da/subscr_single.txt @@ -13,11 +13,7 @@ Summering: @SUMMARY@ Gammel Revision: @OLDPAGE@ Ny Revision: @NEWPAGE@ -For at slå side notifikationer fra, skal du logge ind på +For at slå side notifikationer fra, skal du logge ind på @DOKUWIKIURL@ og besøge @SUBSCRIBE@ og slå abonnoment for side / navnerum ændringer fra. - --- -Denne email blev generet af DokuWiki på -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/da/uploadmail.txt b/dokuwiki/inc/lang/da/uploadmail.txt index 316463fe..87a08758 100644 --- a/dokuwiki/inc/lang/da/uploadmail.txt +++ b/dokuwiki/inc/lang/da/uploadmail.txt @@ -8,7 +8,3 @@ Værtsnavn : @HOSTNAME@ Størrelse : @SIZE@ MIME Type : @MIME@ Bruger : @USER@ - --- -Denne e-mail blev genereret af DokuWiki på -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de-informal/jquery.ui.datepicker.js b/dokuwiki/inc/lang/de-informal/jquery.ui.datepicker.js index bc92a931..a6779084 100644 --- a/dokuwiki/inc/lang/de-informal/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/de-informal/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* German initialisation for the jQuery UI date picker plugin. */ /* Written by Milian Wolff (mail@milianw.de). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['de'] = { - closeText: 'Schließen', - prevText: '<Zurück', - nextText: 'Vor>', - currentText: 'Heute', - monthNames: ['Januar','Februar','März','April','Mai','Juni', - 'Juli','August','September','Oktober','November','Dezember'], - monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dez'], - dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], - dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], - dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], - weekHeader: 'KW', - dateFormat: 'dd.mm.yy', +datepicker.regional.de = { + closeText: "Schließen", + prevText: "<Zurück", + nextText: "Vor>", + currentText: "Heute", + monthNames: [ "Januar","Februar","März","April","Mai","Juni", + "Juli","August","September","Oktober","November","Dezember" ], + monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun", + "Jul","Aug","Sep","Okt","Nov","Dez" ], + dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ], + dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + weekHeader: "KW", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['de']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.de ); -return datepicker.regional['de']; +return datepicker.regional.de; -})); +} ) ); diff --git a/dokuwiki/inc/lang/de-informal/lang.php b/dokuwiki/inc/lang/de-informal/lang.php index 1a1491f6..c3168769 100644 --- a/dokuwiki/inc/lang/de-informal/lang.php +++ b/dokuwiki/inc/lang/de-informal/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr * @author Christof * @author Anika Henke @@ -22,6 +22,7 @@ * @author Frank Loizzi * @author Volker Bödker * @author Janosch + * @author rnck */ $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.
    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 Dokuwiki-Installationsanleitung konsultieren.'; $lang['i_funcna'] = 'Die PHP-Funktion %s ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?'; $lang['i_phpver'] = 'Deine PHP-Version %s ist niedriger als die benötigte Version %s. Bitte aktualisiere deine PHP-Installation.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.'; $lang['i_permfail'] = '%s ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!'; $lang['i_confexists'] = '%s existiert bereits'; $lang['i_writeerr'] = '%s konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.'; @@ -342,5 +347,11 @@ $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['plainhtml'] = 'Reines HTML'; +$lang['wikimarkup'] = 'Wiki Markup'; +$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: %s.'; +$lang['email_signature_text'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/de-informal/mailtext.txt b/dokuwiki/inc/lang/de-informal/mailtext.txt index 508c080f..127b4816 100644 --- a/dokuwiki/inc/lang/de-informal/mailtext.txt +++ b/dokuwiki/inc/lang/de-informal/mailtext.txt @@ -10,9 +10,3 @@ Zusammenfassung: @SUMMARY@ Benutzer : @USER@ @DIFF@ - - --- -Diese Mail wurde vom DokuWiki auf -@DOKUWIKIURL@ -erzeugt. diff --git a/dokuwiki/inc/lang/de-informal/mailwrap.html b/dokuwiki/inc/lang/de-informal/mailwrap.html index 420fdf83..7df0cdce 100644 --- a/dokuwiki/inc/lang/de-informal/mailwrap.html +++ b/dokuwiki/inc/lang/de-informal/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Diese Mail kommt vom DokuWiki auf @DOKUWIKIURL@. +@EMAILSIGNATURE@ diff --git a/dokuwiki/inc/lang/de-informal/password.txt b/dokuwiki/inc/lang/de-informal/password.txt index e17dba4b..e99fc53b 100644 --- a/dokuwiki/inc/lang/de-informal/password.txt +++ b/dokuwiki/inc/lang/de-informal/password.txt @@ -4,8 +4,3 @@ Hier sind deine Benutzerdaten für @TITLE@ auf @DOKUWIKIURL@ Benutzername: @LOGIN@ Passwort : @PASSWORD@ - --- -Diese Mail wurde vom DokuWiki auf -@DOKUWIKIURL@ -erzeugt. \ No newline at end of file diff --git a/dokuwiki/inc/lang/de-informal/pwconfirm.txt b/dokuwiki/inc/lang/de-informal/pwconfirm.txt index 9029bf19..a3b95d82 100644 --- a/dokuwiki/inc/lang/de-informal/pwconfirm.txt +++ b/dokuwiki/inc/lang/de-informal/pwconfirm.txt @@ -10,8 +10,3 @@ Um die Anforderung zu bestätigen, folge bitte dem unten angegebenen Bestätigungslink. @CONFIRM@ - --- -Diese Mail wurde vom DokuWiki auf -@DOKUWIKIURL@ -erzeugt. diff --git a/dokuwiki/inc/lang/de-informal/registermail.txt b/dokuwiki/inc/lang/de-informal/registermail.txt index ed37a950..e19fb8f6 100644 --- a/dokuwiki/inc/lang/de-informal/registermail.txt +++ b/dokuwiki/inc/lang/de-informal/registermail.txt @@ -8,7 +8,3 @@ Date : @DATE@ Browser : @BROWSER@ IP-Address : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de-informal/subscr_digest.txt b/dokuwiki/inc/lang/de-informal/subscr_digest.txt index f8cab210..1e291374 100644 --- a/dokuwiki/inc/lang/de-informal/subscr_digest.txt +++ b/dokuwiki/inc/lang/de-informal/subscr_digest.txt @@ -14,8 +14,3 @@ Um das Abonnement für diese Seite aufzulösen, melde dich im Wiki an @DOKUWIKIURL@, besuchen dann @SUBSCRIBE@ und klicke auf den Link 'Aboverwaltung'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/de-informal/subscr_list.txt b/dokuwiki/inc/lang/de-informal/subscr_list.txt index 5f99cf9d..0bc7a6a5 100644 --- a/dokuwiki/inc/lang/de-informal/subscr_list.txt +++ b/dokuwiki/inc/lang/de-informal/subscr_list.txt @@ -7,11 +7,7 @@ Nachfolgenden findest du die geänderten Seiten: @DIFF@ -------------------------------------------------------- -Um die Benachrichtigungen zu deaktivieren, melde dich am Wiki unter -@DOKUWIKIURL@ an, gehe zur Seite +Um die Benachrichtigungen zu deaktivieren, melde dich am Wiki unter +@DOKUWIKIURL@ an, gehe zur Seite @SUBSCRIBE@ und deaktiviere das Abonnement für die Seite und/oder den Namensraum. - --- -Diese E-Mail wurde erzeugt vom DokuWiki unter -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/de-informal/subscr_single.txt b/dokuwiki/inc/lang/de-informal/subscr_single.txt index 6e3f58b9..7ab02ccc 100644 --- a/dokuwiki/inc/lang/de-informal/subscr_single.txt +++ b/dokuwiki/inc/lang/de-informal/subscr_single.txt @@ -17,8 +17,3 @@ Um das Abonnement für diese Seite aufzulösen, melde dich im Wiki an @DOKUWIKIURL@, besuche dann @SUBSCRIBE@ und klicke auf den Link 'Aboverwaltung'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/de-informal/uploadmail.txt b/dokuwiki/inc/lang/de-informal/uploadmail.txt index 69f11400..d608cd56 100644 --- a/dokuwiki/inc/lang/de-informal/uploadmail.txt +++ b/dokuwiki/inc/lang/de-informal/uploadmail.txt @@ -9,8 +9,3 @@ Hostname : @HOSTNAME@ Größe : @SIZE@ MIME-Typ : @MIME@ Benutzer : @USER@ - --- -Diese Mail wurde vom DokuWiki auf -@DOKUWIKIURL@ -erzeugt. diff --git a/dokuwiki/inc/lang/de/backlinks.txt b/dokuwiki/inc/lang/de/backlinks.txt index 25e0ed5f..b9caf945 100644 --- a/dokuwiki/inc/lang/de/backlinks.txt +++ b/dokuwiki/inc/lang/de/backlinks.txt @@ -1,4 +1,4 @@ -====== Links hierher ====== +====== Links hierher (Backlinks) ====== Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite führen. diff --git a/dokuwiki/inc/lang/de/conflict.txt b/dokuwiki/inc/lang/de/conflict.txt index d24e5b19..dc44f71c 100644 --- a/dokuwiki/inc/lang/de/conflict.txt +++ b/dokuwiki/inc/lang/de/conflict.txt @@ -1,4 +1,4 @@ -====== Eine neuere Version existiert ====== +====== Es gibt eine neuere Version ====== Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat parallel an der selben Seite gearbeitet und zuerst gespeichert. diff --git a/dokuwiki/inc/lang/de/jquery.ui.datepicker.js b/dokuwiki/inc/lang/de/jquery.ui.datepicker.js index bc92a931..a6779084 100644 --- a/dokuwiki/inc/lang/de/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/de/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* German initialisation for the jQuery UI date picker plugin. */ /* Written by Milian Wolff (mail@milianw.de). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['de'] = { - closeText: 'Schließen', - prevText: '<Zurück', - nextText: 'Vor>', - currentText: 'Heute', - monthNames: ['Januar','Februar','März','April','Mai','Juni', - 'Juli','August','September','Oktober','November','Dezember'], - monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dez'], - dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], - dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], - dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], - weekHeader: 'KW', - dateFormat: 'dd.mm.yy', +datepicker.regional.de = { + closeText: "Schließen", + prevText: "<Zurück", + nextText: "Vor>", + currentText: "Heute", + monthNames: [ "Januar","Februar","März","April","Mai","Juni", + "Juli","August","September","Oktober","November","Dezember" ], + monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun", + "Jul","Aug","Sep","Okt","Nov","Dez" ], + dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ], + dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + weekHeader: "KW", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['de']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.de ); -return datepicker.regional['de']; +return datepicker.regional.de; -})); +} ) ); diff --git a/dokuwiki/inc/lang/de/lang.php b/dokuwiki/inc/lang/de/lang.php index 2886b84d..b77ef75a 100644 --- a/dokuwiki/inc/lang/de/lang.php +++ b/dokuwiki/inc/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr * @author Christof * @author Anika Henke @@ -27,6 +27,10 @@ * @author Simon * @author Hoisl * @author Marcel Eickhoff + * @author Pascal Schröder + * @author Hendrik Diel + * @author Marco Hofmann + * @author Hella Breitkopf */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -43,7 +47,7 @@ $lang['btn_search'] = 'Suche'; $lang['btn_save'] = 'Speichern'; $lang['btn_preview'] = 'Vorschau'; $lang['btn_top'] = 'Nach oben'; -$lang['btn_newer'] = '<< jüngere Änderungen'; +$lang['btn_newer'] = '<< neuere Änderungen'; $lang['btn_older'] = 'ältere Änderungen >>'; $lang['btn_revs'] = 'Ältere Versionen'; $lang['btn_recent'] = 'Letzte Änderungen'; @@ -58,7 +62,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'; @@ -87,12 +90,13 @@ $lang['badlogin'] = 'Benutzername oder Passwort sind falsch.'; $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, Sektionsinfo ist veraltet, lade stattdessen volle Seite.'; -$lang['searchcreatepage'] = "Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue Seite für den Suchbegriff anlegen, indem Sie auf den **''[Seite anlegen]''** Knopf drücken."; -$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden.'; +$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, der Seitenabschnitt ist veraltet, lade stattdessen volle Seite.'; +$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue Seite für den Suchbegriff anlegen, indem Sie auf den **\'\'[Seite anlegen]\'\'** Knopf drücken.'; +$lang['regmissing'] = 'Bitte alle Felder ausfüllen!'; $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.'; @@ -106,8 +110,9 @@ $lang['profnodelete'] = 'Dieses Wiki unterstützt nicht das Löschen vo $lang['profdeleteuser'] = 'Benutzerprofil löschen'; $lang['profdeleted'] = 'Ihr Benutzerprofil wurde im Wiki gelöscht.'; $lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.
    Diese Aktion ist nicht umkehrbar.'; -$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.'; -$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; +$lang['profconfdeletemissing'] = 'Bestätigung im Ankreuzkästchen fehlt'; +$lang['proffail'] = 'Das Benutzerkonto konnte nicht aktualisiert werden.'; +$lang['pwdforget'] = 'Passwort vergessen? Fordern Sie ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort setzen für'; $lang['resendpwdmissing'] = 'Es tut mir leid, aber Sie müssen alle Felder ausfüllen.'; @@ -132,7 +137,7 @@ $lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; $lang['js']['hidedetails'] = 'Details ausblenden'; $lang['js']['mediatitle'] = 'Linkeinstellungen'; $lang['js']['mediadisplay'] = 'Linktyp'; -$lang['js']['mediaalign'] = 'Anordnung'; +$lang['js']['mediaalign'] = 'Ausrichtung'; $lang['js']['mediasize'] = 'Bildgröße'; $lang['js']['mediatarget'] = 'Linkziel'; $lang['js']['mediaclose'] = 'Schließen'; @@ -147,17 +152,17 @@ $lang['js']['medialnk'] = 'Link zur Detailseite'; $lang['js']['mediadirect'] = 'Direktlink zum Original'; $lang['js']['medianolnk'] = 'Kein Link'; $lang['js']['medianolink'] = 'Bild nicht verlinken'; -$lang['js']['medialeft'] = 'Das Bild links anordnen.'; -$lang['js']['mediaright'] = 'Das Bild rechts anordnen.'; -$lang['js']['mediacenter'] = 'Das Bild in der Mitte anordnen.'; -$lang['js']['medianoalign'] = 'Keine Anordnung benutzen.'; +$lang['js']['medialeft'] = 'Das Bild links ausrichten.'; +$lang['js']['mediaright'] = 'Das Bild rechts ausrichten.'; +$lang['js']['mediacenter'] = 'Das Bild in der Mitte ausrichten.'; +$lang['js']['medianoalign'] = 'Keine Ausrichtung benutzen.'; $lang['js']['nosmblinks'] = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer.\nDer Link kann jedoch durch Kopieren und Einfügen verwendet werden.'; $lang['js']['linkwiz'] = 'Link-Assistent'; $lang['js']['linkto'] = 'Link nach:'; $lang['js']['del_confirm'] = 'Eintrag wirklich löschen?'; $lang['js']['restore_confirm'] = 'Wirklich diese Version wiederherstellen?'; $lang['js']['media_diff'] = 'Unterschiede anzeigen:'; -$lang['js']['media_diff_both'] = 'Side by Side'; +$lang['js']['media_diff_both'] = 'Nebeneinander'; $lang['js']['media_diff_opacity'] = 'Überblenden'; $lang['js']['media_diff_portions'] = 'Übergang'; $lang['js']['media_select'] = 'Dateien auswählen…'; @@ -169,7 +174,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.'; @@ -183,12 +187,12 @@ $lang['deletefail'] = '"%s" konnte nicht gelöscht werden - prüfen S $lang['mediainuse'] = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.'; $lang['namespaces'] = 'Namensräume'; $lang['mediafiles'] = 'Vorhandene Dateien in'; -$lang['accessdenied'] = 'Es ist Ihnen nicht gestattet, diese Seite zu sehen.'; +$lang['accessdenied'] = 'Diese Seite dürfen sie nicht sehen.'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; $lang['mediaview'] = 'Originaldatei öffnen'; $lang['mediaroot'] = 'Wurzel'; $lang['mediaupload'] = 'Laden Sie hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stellen Sie diese dem Dateinamen durch Doppelpunkt getrennt voran, nachdem Sie die Datei ausgewählt haben.'; -$lang['mediaextchange'] = 'Dateiendung vom .%s nach .%s geändert!'; +$lang['mediaextchange'] = 'Dateiendung von .%s nach .%s geändert!'; $lang['reference'] = 'Verwendung von'; $lang['ref_inuse'] = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:'; $lang['ref_hidden'] = 'Einige Verweise sind auf Seiten, für die Sie keine Leseberechtigung haben.'; @@ -202,10 +206,12 @@ $lang['diff2'] = 'Zeige Unterschiede der ausgewählten Versionen $lang['difflink'] = 'Link zu dieser Vergleichsansicht'; $lang['diff_type'] = 'Unterschiede anzeigen:'; $lang['diff_inline'] = 'Inline'; -$lang['diff_side'] = 'Side by Side'; +$lang['diff_side'] = 'Nebeneinander'; $lang['diffprevrev'] = 'Vorhergehende Überarbeitung'; $lang['diffnextrev'] = 'Nächste Überarbeitung'; $lang['difflastrev'] = 'Letzte Überarbeitung'; +$lang['diffbothprevrev'] = 'Beide Seiten der vorigen Revision'; +$lang['diffbothnextrev'] = 'Beide Seiten der Revision'; $lang['line'] = 'Zeile'; $lang['breadcrumb'] = 'Zuletzt angesehen:'; $lang['youarehere'] = 'Sie befinden sich hier:'; @@ -213,7 +219,7 @@ $lang['lastmod'] = 'Zuletzt geändert:'; $lang['by'] = 'von'; $lang['deleted'] = 'gelöscht'; $lang['created'] = 'angelegt'; -$lang['restored'] = 'alte Version wieder hergestellt (%s)'; +$lang['restored'] = 'alte Version wiederhergestellt (%s)'; $lang['external_edit'] = 'Externe Bearbeitung'; $lang['summary'] = 'Zusammenfassung'; $lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Inhalt anzuzeigen.'; @@ -232,7 +238,7 @@ $lang['mail_upload'] = 'Datei hochgeladen:'; $lang['changes_type'] = 'Änderungen anzeigen von'; $lang['pages_changes'] = 'Seiten'; $lang['media_changes'] = 'Mediendateien'; -$lang['both_changes'] = 'Beides, Seiten- und Mediendateien'; +$lang['both_changes'] = 'Beides: Seiten- und Mediendateien'; $lang['qb_bold'] = 'Fetter Text'; $lang['qb_italic'] = 'Kursiver Text'; $lang['qb_underl'] = 'Unterstrichener Text'; @@ -258,7 +264,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'; @@ -288,10 +293,9 @@ $lang['subscr_m_unsubscribe'] = 'Löschen'; $lang['subscr_m_subscribe'] = 'Abonnieren'; $lang['subscr_m_receive'] = 'Benachrichtigung'; $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_digest'] = 'E-Mail-Zusammenfassung der Änderungen jeder 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['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich bitte an den Admin.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; $lang['i_installer'] = 'DokuWiki Installation'; $lang['i_wikiname'] = 'Wiki-Name'; @@ -336,8 +340,8 @@ $lang['media_edittab'] = 'Bearbeiten'; $lang['media_historytab'] = 'Verlauf'; $lang['media_list_thumbs'] = 'Vorschaubilder'; $lang['media_list_rows'] = 'Reihen'; -$lang['media_sort_name'] = 'nach Name'; -$lang['media_sort_date'] = 'nach Datum'; +$lang['media_sort_name'] = 'Name'; +$lang['media_sort_date'] = 'Datum'; $lang['media_namespaces'] = 'Namensraum wählen'; $lang['media_files'] = 'Dateien in %s'; $lang['media_upload'] = 'In den %s Namensraum hochladen.'; @@ -351,7 +355,12 @@ $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 %s'; +$lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.'; +$lang['email_signature_text'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/de/mailtext.txt b/dokuwiki/inc/lang/de/mailtext.txt index fee88d4d..5968a704 100644 --- a/dokuwiki/inc/lang/de/mailtext.txt +++ b/dokuwiki/inc/lang/de/mailtext.txt @@ -10,8 +10,3 @@ Zusammenfassung: @SUMMARY@ Benutzer : @USER@ @DIFF@ - - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de/mailwrap.html b/dokuwiki/inc/lang/de/mailwrap.html index 420fdf83..7df0cdce 100644 --- a/dokuwiki/inc/lang/de/mailwrap.html +++ b/dokuwiki/inc/lang/de/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Diese Mail kommt vom DokuWiki auf @DOKUWIKIURL@. +@EMAILSIGNATURE@ diff --git a/dokuwiki/inc/lang/de/password.txt b/dokuwiki/inc/lang/de/password.txt index cce3b8ea..e6ab83c3 100644 --- a/dokuwiki/inc/lang/de/password.txt +++ b/dokuwiki/inc/lang/de/password.txt @@ -4,7 +4,3 @@ Hier sind Ihre Benutzerdaten für @TITLE@ auf @DOKUWIKIURL@ Benutzername: @LOGIN@ Passwort : @PASSWORD@ - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de/pwconfirm.txt b/dokuwiki/inc/lang/de/pwconfirm.txt index 3aa81bf7..b571163e 100644 --- a/dokuwiki/inc/lang/de/pwconfirm.txt +++ b/dokuwiki/inc/lang/de/pwconfirm.txt @@ -10,7 +10,3 @@ Um die Anforderung zu bestätigen, folgen Sie bitte dem unten angegebenen Bestätigungslink. @CONFIRM@ - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de/registermail.txt b/dokuwiki/inc/lang/de/registermail.txt index ed37a950..e19fb8f6 100644 --- a/dokuwiki/inc/lang/de/registermail.txt +++ b/dokuwiki/inc/lang/de/registermail.txt @@ -8,7 +8,3 @@ Date : @DATE@ Browser : @BROWSER@ IP-Address : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/de/subscr_digest.txt b/dokuwiki/inc/lang/de/subscr_digest.txt index 7cc79bba..75d92361 100644 --- a/dokuwiki/inc/lang/de/subscr_digest.txt +++ b/dokuwiki/inc/lang/de/subscr_digest.txt @@ -14,8 +14,3 @@ Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an @DOKUWIKIURL@, besuchen dann @SUBSCRIBE@ und klicken auf den Link 'Aboverwaltung'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/de/subscr_list.txt b/dokuwiki/inc/lang/de/subscr_list.txt index 98ec4c2a..1b2331ad 100644 --- a/dokuwiki/inc/lang/de/subscr_list.txt +++ b/dokuwiki/inc/lang/de/subscr_list.txt @@ -7,12 +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'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/de/subscr_single.txt b/dokuwiki/inc/lang/de/subscr_single.txt index da9914e5..087ad5af 100644 --- a/dokuwiki/inc/lang/de/subscr_single.txt +++ b/dokuwiki/inc/lang/de/subscr_single.txt @@ -17,8 +17,3 @@ Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an @DOKUWIKIURL@, besuchen dann @SUBSCRIBE@ und klicken auf die Taste 'Aboverwaltung'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/de/uploadmail.txt b/dokuwiki/inc/lang/de/uploadmail.txt index 977e7561..3646bcc2 100644 --- a/dokuwiki/inc/lang/de/uploadmail.txt +++ b/dokuwiki/inc/lang/de/uploadmail.txt @@ -9,7 +9,3 @@ Hostname : @HOSTNAME@ Größe : @SIZE@ MIME-Typ : @MIME@ Benutzer : @USER@ - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/el/jquery.ui.datepicker.js b/dokuwiki/inc/lang/el/jquery.ui.datepicker.js index a852a77d..f08d6f27 100644 --- a/dokuwiki/inc/lang/el/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/el/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Greek (el) initialisation for the jQuery UI date picker plugin. */ /* Written by Alex Cicovic (http://www.alexcicovic.com) */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['el'] = { - closeText: 'Κλείσιμο', - prevText: 'ΠÏοηγοÏμενος', - nextText: 'Επόμενος', - currentText: 'ΤÏέχων Μήνας', - monthNames: ['ΙανουάÏιος','ΦεβÏουάÏιος','ΜάÏτιος','ΑπÏίλιος','Μάιος','ΙοÏνιος', - 'ΙοÏλιος','ΑÏγουστος','ΣεπτέμβÏιος','ΟκτώβÏιος','ÎοέμβÏιος','ΔεκέμβÏιος'], - monthNamesShort: ['Ιαν','Φεβ','ΜαÏ','ΑπÏ','Μαι','Ιουν', - 'Ιουλ','Αυγ','Σεπ','Οκτ','Îοε','Δεκ'], - dayNames: ['ΚυÏιακή','ΔευτέÏα','ΤÏίτη','ΤετάÏτη','Πέμπτη','ΠαÏασκευή','Σάββατο'], - dayNamesShort: ['ΚυÏ','Δευ','ΤÏι','Τετ','Πεμ','ΠαÏ','Σαβ'], - dayNamesMin: ['Κυ','Δε','ΤÏ','Τε','Πε','Πα','Σα'], - weekHeader: 'Εβδ', - dateFormat: 'dd/mm/yy', +datepicker.regional.el = { + 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['el']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.el ); -return datepicker.regional['el']; +return datepicker.regional.el; -})); +} ) ); diff --git a/dokuwiki/inc/lang/el/lang.php b/dokuwiki/inc/lang/el/lang.php index e5371c9f..c32a0b02 100644 --- a/dokuwiki/inc/lang/el/lang.php +++ b/dokuwiki/inc/lang/el/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thanos Massias * @author Αθανάσιος Îταής * @author Konstantinos Koryllos @@ -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'] = '%s υπάÏχει ήδη'; $lang['i_writeerr'] = 'Δεν είναι δυνατή η δημιουÏγία του %s. ΠÏέπει να διοÏθώσετε τα δικαιώματα Ï€Ïόσβασης Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… φακέλου/αÏχείου και να δημιουÏγήσετε το αÏχείο χειÏοκίνητα!'; $lang['i_badhash'] = 'Μη αναγνωÏίσιμο ή Ï„Ïοποποιημένο αÏχείο dokuwiki.php (hash=%s)'; $lang['i_badval'] = '%s - λάθος ή ανÏπαÏκτη τιμή'; -$lang['i_success'] = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλέον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο νέο σας DokuWiki.'; -$lang['i_failure'] = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανέωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το νέο σας DokuWiki.'; +$lang['i_success'] = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλέον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο νέο σας DokuWiki.'; +$lang['i_failure'] = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανέωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το νέο σας DokuWiki.'; $lang['i_policy'] = 'ΑÏχική πολιτική Λίστας Δικαιωμάτων ΠÏόσβασης - ACL'; $lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μποÏοÏν να διαβάσουν ή να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μποÏοÏν να διαβάσουν σελίδες αλλά μόνο οι εγγεγÏαμμένοι χÏήστες μποÏοÏν να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; @@ -330,3 +326,5 @@ $lang['media_perm_upload'] = 'Συγνώμη, δεν έχετε επαÏκή $lang['media_update'] = 'ΦόÏτωση νέας έκδοσης'; $lang['media_restore'] = 'ΕπαναφοÏά αυτή της έκδοσης'; $lang['searchresult'] = 'Αποτέλεσμα έÏευνας'; +$lang['email_signature_text'] = 'Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/el/mailtext.txt b/dokuwiki/inc/lang/el/mailtext.txt index a5059ca4..cc2a22f0 100644 --- a/dokuwiki/inc/lang/el/mailtext.txt +++ b/dokuwiki/inc/lang/el/mailtext.txt @@ -11,7 +11,3 @@ IP-ΔιεÏθυνση : @IPADDRESS@ ΧÏήστης : @USER@ @DIFF@ - --- -Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/el/mailwrap.html b/dokuwiki/inc/lang/el/mailwrap.html index b2e65578..d2571909 100644 --- a/dokuwiki/inc/lang/el/mailwrap.html +++ b/dokuwiki/inc/lang/el/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Το email έχει δημιουÏγηθεί από το DokuWiki στις @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/el/password.txt b/dokuwiki/inc/lang/el/password.txt index d27fbb3c..c664cb00 100644 --- a/dokuwiki/inc/lang/el/password.txt +++ b/dokuwiki/inc/lang/el/password.txt @@ -4,7 +4,3 @@ Όνομα : @LOGIN@ Συνθηματικό : @PASSWORD@ - --- -Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/el/pwconfirm.txt b/dokuwiki/inc/lang/el/pwconfirm.txt index a9e58be7..4c1559c3 100644 --- a/dokuwiki/inc/lang/el/pwconfirm.txt +++ b/dokuwiki/inc/lang/el/pwconfirm.txt @@ -8,7 +8,3 @@ Αν όντως εσείς ζητήσατε την δημιουÏγία νέου συνθηματικοÏ, ακολουθήστε τον παÏακάτω σÏνδεσμο για να το επιβεβαιώσετε. @CONFIRM@ - --- -Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/el/registermail.txt b/dokuwiki/inc/lang/el/registermail.txt index 0b3e0b78..5266fc19 100644 --- a/dokuwiki/inc/lang/el/registermail.txt +++ b/dokuwiki/inc/lang/el/registermail.txt @@ -8,7 +8,3 @@ e-mail : @NEWEMAIL@ ΦυλλομετÏητής : @BROWSER@ IP-ΔιεÏθυνση : @IPADDRESS@ Όνομα υπολογιστή: @HOSTNAME@ - --- -Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/el/subscr_digest.txt b/dokuwiki/inc/lang/el/subscr_digest.txt index 7dd0345d..5ee54d3e 100644 --- a/dokuwiki/inc/lang/el/subscr_digest.txt +++ b/dokuwiki/inc/lang/el/subscr_digest.txt @@ -10,11 +10,7 @@ Παλιά έκδοση: @OLDPAGE@ Îέα έκδοση: @NEWPAGE@ -Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε -στο wiki στην διεÏθυνση @DOKUWIKIURL@ -και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε +στο wiki στην διεÏθυνση @DOKUWIKIURL@ +και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου. - --- -Αυτό το μήνυμα παÏάχθηκε απο το DokuWiki στην -διεÏθυνση @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/el/subscr_list.txt b/dokuwiki/inc/lang/el/subscr_list.txt index 97b8dc47..11ebf156 100644 --- a/dokuwiki/inc/lang/el/subscr_list.txt +++ b/dokuwiki/inc/lang/el/subscr_list.txt @@ -2,7 +2,7 @@ Η σελίδα @PAGE@ στο @TITLE@ άλλαξε. -Κάποιες σελίδες στον φάκελο @PAGE@ του wiki +Κάποιες σελίδες στον φάκελο @PAGE@ του wiki @TITLE@ έχουν αλλάξει. ΟÏίστε οι αλλαγμένες σελίδες: @@ -10,11 +10,7 @@ @DIFF@ -------------------------------------------------------- -Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki -στην διεÏθυνση @DOKUWIKIURL@ -και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki +στην διεÏθυνση @DOKUWIKIURL@ +και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου. - --- -Αυτό το μήνυμα παÏάχθηκε απο το DokuWiki στην -διεÏθυνση @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/el/subscr_single.txt b/dokuwiki/inc/lang/el/subscr_single.txt index 610af49a..b67631c7 100644 --- a/dokuwiki/inc/lang/el/subscr_single.txt +++ b/dokuwiki/inc/lang/el/subscr_single.txt @@ -12,11 +12,7 @@ Παλιά έκδοση: @OLDPAGE@ Îέα έκδοση: @NEWPAGE@ -Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki -στην διεÏθυνση @DOKUWIKIURL@ -και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki +στην διεÏθυνση @DOKUWIKIURL@ +και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@ και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου. - --- -Αυτό το μήνυμα παÏάχθηκε απο το DokuWiki στην -διεÏθυνση @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/el/uploadmail.txt b/dokuwiki/inc/lang/el/uploadmail.txt index 52d2f1f5..c9cfca92 100644 --- a/dokuwiki/inc/lang/el/uploadmail.txt +++ b/dokuwiki/inc/lang/el/uploadmail.txt @@ -9,7 +9,3 @@ IP-ΔιεÏθυνση : @IPADDRESS@ Μέγεθος : @SIZE@ MIME Type : @MIME@ ΧÏήστης : @USER@ - --- -Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/lang.php b/dokuwiki/inc/lang/en/lang.php index fb455f85..2e7d368e 100644 --- a/dokuwiki/inc/lang/en/lang.php +++ b/dokuwiki/inc/lang/en/lang.php @@ -27,19 +27,18 @@ $lang['btn_top'] = 'Back to top'; $lang['btn_newer'] = '<< more recent'; $lang['btn_older'] = 'less recent >>'; $lang['btn_revs'] = 'Old revisions'; -$lang['btn_recent'] = 'Recent changes'; +$lang['btn_recent'] = 'Recent Changes'; $lang['btn_upload'] = 'Upload'; $lang['btn_cancel'] = 'Cancel'; $lang['btn_index'] = 'Sitemap'; $lang['btn_secedit'] = 'Edit'; -$lang['btn_login'] = 'Login'; -$lang['btn_logout'] = 'Logout'; +$lang['btn_login'] = 'Log In'; +$lang['btn_logout'] = 'Log Out'; $lang['btn_admin'] = 'Admin'; $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.
    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'; @@ -370,4 +368,7 @@ $lang['plainhtml'] = 'Plain HTML'; $lang['wikimarkup'] = 'Wiki Markup'; $lang['page_nonexist_rev'] = 'Page did not exist at %s. It was subsequently created at %s.'; $lang['unable_to_parse_date'] = 'Unable to parse at parameter "%s".'; +$lang['email_signature_text'] = 'This mail was generated by DokuWiki at +@DOKUWIKIURL@'; +$lang['email_signature_html'] = ''; //Setup VIM: ex: et ts=2 : diff --git a/dokuwiki/inc/lang/en/mailtext.txt b/dokuwiki/inc/lang/en/mailtext.txt index 44a3f655..aea14d45 100644 --- a/dokuwiki/inc/lang/en/mailtext.txt +++ b/dokuwiki/inc/lang/en/mailtext.txt @@ -10,8 +10,3 @@ Edit Summary: @SUMMARY@ User : @USER@ @DIFF@ - - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/mailwrap.html b/dokuwiki/inc/lang/en/mailwrap.html index f9f80fd8..7df0cdce 100644 --- a/dokuwiki/inc/lang/en/mailwrap.html +++ b/dokuwiki/inc/lang/en/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -This mail was generated by DokuWiki at @DOKUWIKIURL@. +@EMAILSIGNATURE@ diff --git a/dokuwiki/inc/lang/en/password.txt b/dokuwiki/inc/lang/en/password.txt index 6d5cbe67..0a0dfb52 100644 --- a/dokuwiki/inc/lang/en/password.txt +++ b/dokuwiki/inc/lang/en/password.txt @@ -4,7 +4,3 @@ Here is your userdata for @TITLE@ at @DOKUWIKIURL@ Login : @LOGIN@ Password : @PASSWORD@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/pwconfirm.txt b/dokuwiki/inc/lang/en/pwconfirm.txt index a342ff95..3732d8a0 100644 --- a/dokuwiki/inc/lang/en/pwconfirm.txt +++ b/dokuwiki/inc/lang/en/pwconfirm.txt @@ -9,7 +9,3 @@ To confirm that the request was really sent by you please use the following link. @CONFIRM@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/register.txt b/dokuwiki/inc/lang/en/register.txt index 29075eed..db68d4f2 100644 --- a/dokuwiki/inc/lang/en/register.txt +++ b/dokuwiki/inc/lang/en/register.txt @@ -1,21 +1,4 @@ -====== Register as a new wiki user ====== +====== Register as new user ====== -Welcome and thank you for desiring a PHP.net wiki account! +Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - if you are not asked to enter a password here, a new one will be sent to that address. The login name should be a valid [[doku>pagename|pagename]]. -**Be aware**: wiki account does not give you voting privileges, according to our [[https://wiki.php.net/rfc/voting#who_can_vote|rules]]. - -**Note**: wiki account does not give you edit privileges. -To get authorization you must send a quick introduction to the [[internals@lists.php.net|internals]] mailing list. -Mention your wiki username and say what you're planning to do. -This email lets us know you're a human (and not a robot) and what you'll be working on. - -Approval may take several hours or days. - -To create a new wiki account, please fill out all of the information below. -Make sure you supply a **valid e-mail address** - if you are not asked to enter a password here, a new one will be sent to that address. -The login name should be a valid [[doku>wiki:pagename|pagename]]. - - -**Note**: If you find a minor problem with the wiki (like a typo or invalid grammar) then please email the [[internals@lists.php.net|internals]] mailing list with the URL, and suggested change. - -**Note**: All information here is readable without registering. Write access is controlled however. All users with a php.net vcs account have full write access to the wiki, and may simply login with their VCS credentials. diff --git a/dokuwiki/inc/lang/en/registermail.txt b/dokuwiki/inc/lang/en/registermail.txt index f0201576..5517ca11 100644 --- a/dokuwiki/inc/lang/en/registermail.txt +++ b/dokuwiki/inc/lang/en/registermail.txt @@ -8,7 +8,3 @@ Date : @DATE@ Browser : @BROWSER@ IP-Address : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/subscr_digest.txt b/dokuwiki/inc/lang/en/subscr_digest.txt index 35011b6e..cc42e08d 100644 --- a/dokuwiki/inc/lang/en/subscr_digest.txt +++ b/dokuwiki/inc/lang/en/subscr_digest.txt @@ -14,7 +14,3 @@ To cancel the page notifications, log into the wiki at @DOKUWIKIURL@ then visit @SUBSCRIBE@ and unsubscribe page and/or namespace changes. - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/subscr_list.txt b/dokuwiki/inc/lang/en/subscr_list.txt index 4c38b932..dcf80004 100644 --- a/dokuwiki/inc/lang/en/subscr_list.txt +++ b/dokuwiki/inc/lang/en/subscr_list.txt @@ -11,7 +11,3 @@ To cancel the page notifications, log into the wiki at @DOKUWIKIURL@ then visit @SUBSCRIBE@ and unsubscribe page and/or namespace changes. - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/subscr_single.txt b/dokuwiki/inc/lang/en/subscr_single.txt index 0bc310e0..8f097dc3 100644 --- a/dokuwiki/inc/lang/en/subscr_single.txt +++ b/dokuwiki/inc/lang/en/subscr_single.txt @@ -17,7 +17,3 @@ To cancel the page notifications, log into the wiki at @DOKUWIKIURL@ then visit @SUBSCRIBE@ and unsubscribe page and/or namespace changes. - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/en/uploadmail.txt b/dokuwiki/inc/lang/en/uploadmail.txt index 16bb6989..dca8e334 100644 --- a/dokuwiki/inc/lang/en/uploadmail.txt +++ b/dokuwiki/inc/lang/en/uploadmail.txt @@ -9,7 +9,3 @@ Hostname : @HOSTNAME@ Size : @SIZE@ MIME Type : @MIME@ User : @USER@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/jquery.ui.datepicker.js b/dokuwiki/inc/lang/eo/jquery.ui.datepicker.js index ebbb7238..25f6162b 100644 --- a/dokuwiki/inc/lang/eo/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/eo/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Esperanto initialisation for the jQuery UI date picker plugin. */ /* Written by Olivier M. (olivierweb@ifrance.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['eo'] = { - closeText: 'Fermi', - prevText: '<Anta', - nextText: 'Sekv>', - currentText: 'Nuna', - monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', - 'Julio','AÅ­gusto','Septembro','Oktobro','Novembro','Decembro'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', - 'Jul','AÅ­g','Sep','Okt','Nov','Dec'], - dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ä´aÅ­do','Vendredo','Sabato'], - dayNamesShort: ['Dim','Lun','Mar','Mer','Ä´aÅ­','Ven','Sab'], - dayNamesMin: ['Di','Lu','Ma','Me','Ä´a','Ve','Sa'], - weekHeader: 'Sb', - dateFormat: 'dd/mm/yy', +datepicker.regional.eo = { + closeText: "Fermi", + prevText: "<Anta", + nextText: "Sekv>", + currentText: "Nuna", + monthNames: [ "Januaro","Februaro","Marto","Aprilo","Majo","Junio", + "Julio","AÅ­gusto","Septembro","Oktobro","Novembro","Decembro" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","AÅ­g","Sep","Okt","Nov","Dec" ], + dayNames: [ "Dimanĉo","Lundo","Mardo","Merkredo","Ä´aÅ­do","Vendredo","Sabato" ], + dayNamesShort: [ "Dim","Lun","Mar","Mer","Ä´aÅ­","Ven","Sab" ], + dayNamesMin: [ "Di","Lu","Ma","Me","Ä´a","Ve","Sa" ], + weekHeader: "Sb", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['eo']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.eo ); -return datepicker.regional['eo']; +return datepicker.regional.eo; -})); +} ) ); diff --git a/dokuwiki/inc/lang/eo/lang.php b/dokuwiki/inc/lang/eo/lang.php index 0cb84a2d..fdccb899 100644 --- a/dokuwiki/inc/lang/eo/lang.php +++ b/dokuwiki/inc/lang/eo/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Antono Vasiljev * @author Felipe Castro * @author Felipe Castro @@ -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'; @@ -341,3 +337,5 @@ $lang['currentns'] = 'Aktuala nomspaco'; $lang['searchresult'] = 'Serĉrezulto'; $lang['plainhtml'] = 'Plena HTML'; $lang['wikimarkup'] = 'Vikiteksto'; +$lang['email_signature_text'] = 'Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/eo/mailtext.txt b/dokuwiki/inc/lang/eo/mailtext.txt index 2765301e..6c5b80c8 100644 --- a/dokuwiki/inc/lang/eo/mailtext.txt +++ b/dokuwiki/inc/lang/eo/mailtext.txt @@ -10,6 +10,3 @@ Bulteno de ÅanÄoj: @SUMMARY@ Uzanto: @USER@ @DIFF@ - --- -Tiu ĉi mesaÄo kreiÄis de DokuWiki, kiu lokiÄas ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/mailwrap.html b/dokuwiki/inc/lang/eo/mailwrap.html index 9e92a00f..d2571909 100644 --- a/dokuwiki/inc/lang/eo/mailwrap.html +++ b/dokuwiki/inc/lang/eo/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Tiu retpoÅtaĵo venas de DokuWiki ĉe @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eo/password.txt b/dokuwiki/inc/lang/eo/password.txt index 6dc42a9d..6995ec5d 100644 --- a/dokuwiki/inc/lang/eo/password.txt +++ b/dokuwiki/inc/lang/eo/password.txt @@ -4,6 +4,3 @@ Jen viaj uzantodatumoj por @TITLE@ ĉe @DOKUWIKIURL@ Ensalutnomo: @LOGIN@ Pasvorto: @PASSWORD@ - --- -Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/pwconfirm.txt b/dokuwiki/inc/lang/eo/pwconfirm.txt index 5abc3d13..d6cde8dc 100644 --- a/dokuwiki/inc/lang/eo/pwconfirm.txt +++ b/dokuwiki/inc/lang/eo/pwconfirm.txt @@ -8,6 +8,3 @@ Se ne vi petis tion, ignoru tiun ĉi mesaÄon. Por konfirmi, ke la peto estis vere via, bonvolu musklaki jenan ligilon: @CONFIRM@ - --- -Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/registermail.txt b/dokuwiki/inc/lang/eo/registermail.txt index 9ef6013c..b9c3870d 100644 --- a/dokuwiki/inc/lang/eo/registermail.txt +++ b/dokuwiki/inc/lang/eo/registermail.txt @@ -8,6 +8,3 @@ Dato: @DATE@ Foliumilo: @BROWSER@ IP-Adreso: @IPADDRESS@ Provizanto: @HOSTNAME@ - --- -Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/subscr_digest.txt b/dokuwiki/inc/lang/eo/subscr_digest.txt index 42fc79ad..7e5310a1 100644 --- a/dokuwiki/inc/lang/eo/subscr_digest.txt +++ b/dokuwiki/inc/lang/eo/subscr_digest.txt @@ -14,6 +14,3 @@ Por nuligi la paÄinformojn, ensalutu la vikion ĉe @DOKUWIKIURL@, poste iru al @SUBSCRIBE@ kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn. - --- -Tiu retpoÅtaĵo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/subscr_list.txt b/dokuwiki/inc/lang/eo/subscr_list.txt index 1957e85e..ed0c809b 100644 --- a/dokuwiki/inc/lang/eo/subscr_list.txt +++ b/dokuwiki/inc/lang/eo/subscr_list.txt @@ -11,6 +11,3 @@ Por nuligi la paÄinformojn, ensalutu la vikion ĉe @DOKUWIKIURL@, poste iru al @SUBSCRIBE@ kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn. - --- -Tiu retpoÅtaĵo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/subscr_single.txt b/dokuwiki/inc/lang/eo/subscr_single.txt index e4847e8a..56d489c6 100644 --- a/dokuwiki/inc/lang/eo/subscr_single.txt +++ b/dokuwiki/inc/lang/eo/subscr_single.txt @@ -17,6 +17,3 @@ Por nuligi la paÄinformojn, ensalutu la vikion ĉe @DOKUWIKIURL@, poste iru al @SUBSCRIBE@ kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn. - --- -Tiu retpoÅtaĵo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eo/uploadmail.txt b/dokuwiki/inc/lang/eo/uploadmail.txt index 1cb48ade..6268824c 100644 --- a/dokuwiki/inc/lang/eo/uploadmail.txt +++ b/dokuwiki/inc/lang/eo/uploadmail.txt @@ -8,6 +8,3 @@ Ret-nodo: @HOSTNAME@ Grandeco: @SIZE@ Dosier-tipo: @MIME@ Uzanto: @USER@ - --- -Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/es/jquery.ui.datepicker.js b/dokuwiki/inc/lang/es/jquery.ui.datepicker.js index c51475e3..ea7116e0 100644 --- a/dokuwiki/inc/lang/es/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/es/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Inicialización en español para la extensión 'UI date picker' para jQuery. */ /* Traducido por Vester (xvester@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['es'] = { - closeText: 'Cerrar', - prevText: '<Ant', - nextText: 'Sig>', - currentText: 'Hoy', - monthNames: ['enero','febrero','marzo','abril','mayo','junio', - 'julio','agosto','septiembre','octubre','noviembre','diciembre'], - monthNamesShort: ['ene','feb','mar','abr','may','jun', - 'jul','ago','sep','oct','nov','dic'], - dayNames: ['domingo','lunes','martes','miércoles','jueves','viernes','sábado'], - dayNamesShort: ['dom','lun','mar','mié','jue','vie','sáb'], - dayNamesMin: ['D','L','M','X','J','V','S'], - weekHeader: 'Sm', - dateFormat: 'dd/mm/yy', +datepicker.regional.es = { + closeText: "Cerrar", + prevText: "<Ant", + nextText: "Sig>", + currentText: "Hoy", + monthNames: [ "enero","febrero","marzo","abril","mayo","junio", + "julio","agosto","septiembre","octubre","noviembre","diciembre" ], + monthNamesShort: [ "ene","feb","mar","abr","may","jun", + "jul","ago","sep","oct","nov","dic" ], + dayNames: [ "domingo","lunes","martes","miércoles","jueves","viernes","sábado" ], + dayNamesShort: [ "dom","lun","mar","mié","jue","vie","sáb" ], + dayNamesMin: [ "D","L","M","X","J","V","S" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['es']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.es ); -return datepicker.regional['es']; +return datepicker.regional.es; -})); +} ) ); diff --git a/dokuwiki/inc/lang/es/lang.php b/dokuwiki/inc/lang/es/lang.php index 8f4cb297..d3163c08 100644 --- a/dokuwiki/inc/lang/es/lang.php +++ b/dokuwiki/inc/lang/es/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Zigor Astarbe * @author Adrián Ariza * @author Gabiel Molina @@ -37,6 +37,14 @@ * @author Antonio Castilla * @author Jonathan Hernández * @author pokesakura + * @author Ãlvaro Iradier + * @author Alejandro Nunez + * @author Mauricio Segura + * @author Domingo Redal + * @author solohazlo + * @author Romano + * @author David Roy + * @author Enny Rodriguez */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -68,7 +76,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'; @@ -98,11 +105,12 @@ $lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea'; $lang['minoredit'] = 'Cambios menores'; $lang['draftdate'] = 'Borrador guardado automáticamente:'; $lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.'; -$lang['searchcreatepage'] = "Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón ''Crea esta página''."; +$lang['searchcreatepage'] = 'Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón \'\'Crea esta página\'\'.'; $lang['regmissing'] = 'Lo siento, tienes que completar todos los campos.'; $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.'; @@ -117,6 +125,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.
    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'; @@ -181,7 +190,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!'; @@ -272,7 +280,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'; @@ -305,7 +312,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'; @@ -365,7 +371,12 @@ $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'; $lang['wikimarkup'] = 'Etiquetado Wiki'; +$lang['page_nonexist_rev'] = 'La página no existía en %s. Por tanto fue creada en %s.'; +$lang['unable_to_parse_date'] = 'Incapaz de evaluar el parámetro "%s".'; +$lang['email_signature_text'] = 'Este mail ha sido generado por DokuWiki en +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/es/mailtext.txt b/dokuwiki/inc/lang/es/mailtext.txt index 893ec1cb..e74d3eb8 100644 --- a/dokuwiki/inc/lang/es/mailtext.txt +++ b/dokuwiki/inc/lang/es/mailtext.txt @@ -10,8 +10,3 @@ Resumen de la edición: @SUMMARY@ Usuario : @USER@ @DIFF@ - - --- -Este correo ha sido generado por DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/mailwrap.html b/dokuwiki/inc/lang/es/mailwrap.html index 3cf255f7..d2571909 100644 --- a/dokuwiki/inc/lang/es/mailwrap.html +++ b/dokuwiki/inc/lang/es/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Este correo ha sido generado por DokuWiki desde @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/password.txt b/dokuwiki/inc/lang/es/password.txt index 1312ed0a..64bded46 100644 --- a/dokuwiki/inc/lang/es/password.txt +++ b/dokuwiki/inc/lang/es/password.txt @@ -4,6 +4,3 @@ Estos son los datos de usuario para @TITLE@ en @DOKUWIKIURL@ Usuario : @LOGIN@ Contraseña : @PASSWORD@ - --- -Este correo ha sido generado por DokuWiki en @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/pwconfirm.txt b/dokuwiki/inc/lang/es/pwconfirm.txt index c3dad116..b03d309e 100644 --- a/dokuwiki/inc/lang/es/pwconfirm.txt +++ b/dokuwiki/inc/lang/es/pwconfirm.txt @@ -9,8 +9,3 @@ Para confirmar que la solicitud fue realizada realmente por usted, por favor use el siguiente enlace. @CONFIRM@ - - --- -Este mail ha sido generado por DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/es/registermail.txt b/dokuwiki/inc/lang/es/registermail.txt index e773e320..b9208a1a 100644 --- a/dokuwiki/inc/lang/es/registermail.txt +++ b/dokuwiki/inc/lang/es/registermail.txt @@ -8,7 +8,3 @@ Fecha : @DATE@ Navegador : @BROWSER@ Dirección-IP : @IPADDRESS@ Nombre del host : @HOSTNAME@ - --- -Este mail ha sido generado por DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/es/subscr_digest.txt b/dokuwiki/inc/lang/es/subscr_digest.txt index df03fcaf..5bb5012a 100644 --- a/dokuwiki/inc/lang/es/subscr_digest.txt +++ b/dokuwiki/inc/lang/es/subscr_digest.txt @@ -14,7 +14,3 @@ Para cancelar la página de notificaciones, entra a la wiki en @DOKUWIKIURL@ luego visita @SUBSCRIBE@ y date de baja en la página y/o cambios en el espacio de nombre. - --- -Este correo ha sido generado por DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/subscr_list.txt b/dokuwiki/inc/lang/es/subscr_list.txt index 80e8dc8a..4c58a2d6 100644 --- a/dokuwiki/inc/lang/es/subscr_list.txt +++ b/dokuwiki/inc/lang/es/subscr_list.txt @@ -11,7 +11,3 @@ Para cancelar la página de notificaciones, entra a la wiki en @DOKUWIKIURL@ luego visita @SUBSCRIBE@ y date de baja en la página y/o cambios en el espacio de nombre. - --- -Este correo ha sido generado por DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/subscr_single.txt b/dokuwiki/inc/lang/es/subscr_single.txt index abddeeb2..a974cc95 100644 --- a/dokuwiki/inc/lang/es/subscr_single.txt +++ b/dokuwiki/inc/lang/es/subscr_single.txt @@ -17,7 +17,3 @@ Para cancelar la página de notificaciones, entra a la wiki en @DOKUWIKIURL@ luego visita @SUBSCRIBE@ y date de baja en la página y/o cambios en el espacio de nombre. - --- -Este correo ha sido generado por DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/es/uploadmail.txt b/dokuwiki/inc/lang/es/uploadmail.txt index cf70d00d..eb1c5df2 100644 --- a/dokuwiki/inc/lang/es/uploadmail.txt +++ b/dokuwiki/inc/lang/es/uploadmail.txt @@ -9,7 +9,3 @@ Hostname : @HOSTNAME@ Tamaño : @SIZE@ MIME Type : @MIME@ Usuario : @USER@ - --- -Este correo fue generado por DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/et/jquery.ui.datepicker.js b/dokuwiki/inc/lang/et/jquery.ui.datepicker.js index 2a572125..b2e226ae 100644 --- a/dokuwiki/inc/lang/et/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/et/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Estonian initialisation for the jQuery UI date picker plugin. */ /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['et'] = { - closeText: 'Sulge', - prevText: 'Eelnev', - nextText: 'Järgnev', - currentText: 'Täna', - monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', - 'Juuli','August','September','Oktoober','November','Detsember'], - monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', - 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], - dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], - dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], - dayNamesMin: ['P','E','T','K','N','R','L'], - weekHeader: 'näd', - dateFormat: 'dd.mm.yy', +datepicker.regional.et = { + closeText: "Sulge", + prevText: "Eelnev", + nextText: "Järgnev", + currentText: "Täna", + monthNames: [ "Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni", + "Juuli","August","September","Oktoober","November","Detsember" ], + monthNamesShort: [ "Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", + "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets" ], + dayNames: [ + "Pühapäev", + "Esmaspäev", + "Teisipäev", + "Kolmapäev", + "Neljapäev", + "Reede", + "Laupäev" + ], + dayNamesShort: [ "Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup" ], + dayNamesMin: [ "P","E","T","K","N","R","L" ], + weekHeader: "näd", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['et']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.et ); -return datepicker.regional['et']; +return datepicker.regional.et; -})); +} ) ); diff --git a/dokuwiki/inc/lang/et/lang.php b/dokuwiki/inc/lang/et/lang.php index d3c510c4..f8051d0f 100644 --- a/dokuwiki/inc/lang/et/lang.php +++ b/dokuwiki/inc/lang/et/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oliver S6ro * @author Aari Juhanson * @author Kaiko Kaur @@ -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'; @@ -337,3 +333,5 @@ $lang['currentns'] = 'Hetke nimeruum'; $lang['searchresult'] = 'Otsingu tulemus'; $lang['plainhtml'] = 'Liht-HTML'; $lang['wikimarkup'] = 'Wiki märgistus'; +$lang['email_signature_text'] = 'See meil on saadetud DokuWiki poolt +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/et/mailtext.txt b/dokuwiki/inc/lang/et/mailtext.txt index 3214584f..f1a62029 100644 --- a/dokuwiki/inc/lang/et/mailtext.txt +++ b/dokuwiki/inc/lang/et/mailtext.txt @@ -10,7 +10,3 @@ Toimeta kokkuvõtet: @SUMMARY@ Kasutaja : @USER@ @DIFF@ - - --- -Selle e-posti tekitas Sulle DokuWiki @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/et/password.txt b/dokuwiki/inc/lang/et/password.txt index 19db86d7..9d75bb8d 100644 --- a/dokuwiki/inc/lang/et/password.txt +++ b/dokuwiki/inc/lang/et/password.txt @@ -4,6 +4,3 @@ Siin on sinu kasutajaandmed @TITLE@ks @DOKUWIKIURL@s Sisse logimisnimi : @LOGIN@ Parool : @PASSWORD@ - --- -Selle kirja saatis DokuWiki @DOKUWIKIURL@st diff --git a/dokuwiki/inc/lang/et/pwconfirm.txt b/dokuwiki/inc/lang/et/pwconfirm.txt index 4f17140e..ee3b3133 100644 --- a/dokuwiki/inc/lang/et/pwconfirm.txt +++ b/dokuwiki/inc/lang/et/pwconfirm.txt @@ -6,7 +6,3 @@ Kui see ei olnud Sina, siis võid seda meili lihtsalt ignoreerida. Kinnitamaks uue parooli saamise soovi mine aadressile: @CONFIRM@ - --- -See meil on saadetud DokuWiki poolt -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/et/registermail.txt b/dokuwiki/inc/lang/et/registermail.txt index 47d2ef14..3b789637 100644 --- a/dokuwiki/inc/lang/et/registermail.txt +++ b/dokuwiki/inc/lang/et/registermail.txt @@ -8,7 +8,3 @@ Kuupäev : @DATE@ Lehitseja : @BROWSER@ IP-Aaddress : @IPADDRESS@ Hosti nimi : @HOSTNAME@ - --- -See meil on saadetud DokuWiki poolt -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/et/subscr_digest.txt b/dokuwiki/inc/lang/et/subscr_digest.txt index 7446fd9f..d3829125 100644 --- a/dokuwiki/inc/lang/et/subscr_digest.txt +++ b/dokuwiki/inc/lang/et/subscr_digest.txt @@ -12,10 +12,6 @@ Endine: @OLDPAGE@ Uus: @NEWPAGE@ Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@ -ja mine: +ja mine: @SUBSCRIBE@ ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest. - --- -Selle e-kirja lõi DokuWiki aadressilt -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/et/subscr_list.txt b/dokuwiki/inc/lang/et/subscr_list.txt index 0629651b..ec32a6bb 100644 --- a/dokuwiki/inc/lang/et/subscr_list.txt +++ b/dokuwiki/inc/lang/et/subscr_list.txt @@ -10,10 +10,6 @@ Endine: @OLDPAGE@ Uus: @NEWPAGE@ Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@ -ja mine: +ja mine: @SUBSCRIBE@ ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest. - --- -Selle e-kirja lõi DokuWiki aadressilt -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/et/subscr_single.txt b/dokuwiki/inc/lang/et/subscr_single.txt index fff069f6..02069a63 100644 --- a/dokuwiki/inc/lang/et/subscr_single.txt +++ b/dokuwiki/inc/lang/et/subscr_single.txt @@ -1,23 +1,19 @@ -Tere! +Tere! -Wiki-s @TITLE@ toimetati lehekülge @PAGE@. -Muudatustest lähemalt: - --------------------------------------------------------- -@DIFF@ --------------------------------------------------------- +Wiki-s @TITLE@ toimetati lehekülge @PAGE@. +Muudatustest lähemalt: -Kuupäev : @DATE@ -Kasutaja : @USER@ -Kokkuvõte: @SUMMARY@ -Endine: @OLDPAGE@ -Uus: @NEWPAGE@ +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- -Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@ -ja mine: -@SUBSCRIBE@ +Kuupäev : @DATE@ +Kasutaja : @USER@ +Kokkuvõte: @SUMMARY@ +Endine: @OLDPAGE@ +Uus: @NEWPAGE@ + +Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@ +ja mine: +@SUBSCRIBE@ ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest. - --- -Selle e-kirja lõi DokuWiki aadressilt -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/et/uploadmail.txt b/dokuwiki/inc/lang/et/uploadmail.txt index 2d3a6aa7..2c21926e 100644 --- a/dokuwiki/inc/lang/et/uploadmail.txt +++ b/dokuwiki/inc/lang/et/uploadmail.txt @@ -10,7 +10,3 @@ Lähemalt: Suurus : @SIZE@ MIME liik : @MIME@ Kasutaja : @ USER@ - --- -Selle e-kirja lõi DokuWiki aadressilt -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/jquery.ui.datepicker.js b/dokuwiki/inc/lang/eu/jquery.ui.datepicker.js index 25b95981..8ea1ef9e 100644 --- a/dokuwiki/inc/lang/eu/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/eu/jquery.ui.datepicker.js @@ -1,36 +1,36 @@ /* Karrikas-ek itzulia (karrikas@karrikas.com) */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['eu'] = { - closeText: 'Egina', - prevText: '<Aur', - nextText: 'Hur>', - currentText: 'Gaur', - monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina', - 'uztaila','abuztua','iraila','urria','azaroa','abendua'], - monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.', - 'uzt.','abu.','ira.','urr.','aza.','abe.'], - dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'], - dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'], - dayNamesMin: ['ig','al','ar','az','og','ol','lr'], - weekHeader: 'As', - dateFormat: 'yy-mm-dd', +datepicker.regional.eu = { + closeText: "Egina", + prevText: "<Aur", + nextText: "Hur>", + currentText: "Gaur", + monthNames: [ "urtarrila","otsaila","martxoa","apirila","maiatza","ekaina", + "uztaila","abuztua","iraila","urria","azaroa","abendua" ], + monthNamesShort: [ "urt.","ots.","mar.","api.","mai.","eka.", + "uzt.","abu.","ira.","urr.","aza.","abe." ], + dayNames: [ "igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata" ], + dayNamesShort: [ "ig.","al.","ar.","az.","og.","ol.","lr." ], + dayNamesMin: [ "ig","al","ar","az","og","ol","lr" ], + weekHeader: "As", + dateFormat: "yy-mm-dd", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['eu']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.eu ); -return datepicker.regional['eu']; +return datepicker.regional.eu; -})); +} ) ); diff --git a/dokuwiki/inc/lang/eu/lang.php b/dokuwiki/inc/lang/eu/lang.php index 457c2a49..fc33830c 100644 --- a/dokuwiki/inc/lang/eu/lang.php +++ b/dokuwiki/inc/lang/eu/lang.php @@ -1,11 +1,12 @@ * @author Inko Illarramendi * @author Zigor Astarbe + * @author Yadav Gowda */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -37,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'; @@ -49,6 +49,9 @@ $lang['btn_revert'] = 'Berrezarri'; $lang['btn_register'] = 'Erregistratu'; $lang['btn_apply'] = 'Baieztatu'; $lang['btn_media'] = 'Media Kudeatzailea'; +$lang['btn_deleteuser'] = 'Nire kontua kendu'; +$lang['btn_img_backto'] = 'Atzera hona %s'; +$lang['btn_mediaManager'] = 'Media kudeatzailean ikusi'; $lang['loggedinas'] = 'Erabiltzailea:'; $lang['user'] = 'Erabiltzailea'; $lang['pass'] = 'Pasahitza'; @@ -63,7 +66,7 @@ $lang['badlogin'] = 'Barkatu, prozesuak huts egin du; saiatu berriz $lang['minoredit'] = 'Aldaketa Txikiak'; $lang['draftdate'] = 'Zirriborroa automatikoki gorde da hemen:'; $lang['nosecedit'] = 'Orria aldatua izan da bitartean, info atala zaharkituta geratu da, orri osoa kargatu da horren ordez.'; -$lang['searchcreatepage'] = "Bilatzen zabiltzana aurkitu ez baduzu, zuk zeuk sortu dezakezu orri berri bat bilaketa ostean ''Sortu orri hau'' erabiliz."; +$lang['searchcreatepage'] = 'Bilatzen zabiltzana aurkitu ez baduzu, zuk zeuk sortu dezakezu orri berri bat bilaketa ostean \'\'Sortu orri hau\'\' erabiliz.'; $lang['regmissing'] = 'Barkatu, hutsune guztiak bete behar dituzu.'; $lang['reguexists'] = 'Barkatu, izen bereko erabiltzailea existitzen da.'; $lang['regsuccess'] = 'Erabiltzailea sortu da. Pasahitza mailez bidaliko zaizu.'; @@ -77,6 +80,7 @@ $lang['profna'] = 'Wiki honek ez du profilaren aldaketa ahalbidet $lang['profnochange'] = 'Aldaketarik ez, ez dago egiteko ezer.'; $lang['profnoempty'] = 'Izen edota e-posta hutsa ez dago onartua.'; $lang['profchanged'] = 'Erabiltzaile profila arrakastaz eguneratua.'; +$lang['profdeleteuser'] = 'Kontua ezabatu'; $lang['pwdforget'] = 'Pasahitza ahaztu duzu? Eskuratu berri bat'; $lang['resendna'] = 'Wiki honek ez du pasahitz berbidalketa onartzen.'; $lang['resendpwd'] = '-entzat pasahitza berria ezarri'; @@ -138,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!'; @@ -224,11 +227,9 @@ $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'; -$lang['btn_img_backto'] = 'Atzera hona %s'; $lang['img_title'] = 'Izenburua:'; $lang['img_caption'] = 'Epigrafea:'; $lang['img_date'] = 'Data:'; @@ -241,7 +242,6 @@ $lang['img_camera'] = 'Kamera:'; $lang['img_keywords'] = 'Hitz-gakoak:'; $lang['img_width'] = 'Zabalera:'; $lang['img_height'] = 'Altuera:'; -$lang['btn_mediaManager'] = 'Media kudeatzailean ikusi'; $lang['subscr_subscribe_success'] = '%s gehitua %s-ren harpidetza zerrendara'; $lang['subscr_subscribe_error'] = 'Errorea %s gehitzen %s-ren harpidetza zerrendara'; $lang['subscr_subscribe_noaddress'] = 'Ez dago helbiderik zure login-arekin lotuta, ezin zara harpidetza zerrendara gehitua izan.'; @@ -259,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'; @@ -307,3 +306,5 @@ $lang['media_viewold'] = '%s -n %s'; $lang['media_edit'] = '%s editatu'; $lang['media_update'] = 'Bertsio berria igo'; $lang['media_restore'] = 'Bertsio hau berrezarri'; +$lang['email_signature_text'] = 'Email hau DokuWiki erabiliz sortu da +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/eu/mailtext.txt b/dokuwiki/inc/lang/eu/mailtext.txt index 86ab1a3a..ad0ff2f2 100644 --- a/dokuwiki/inc/lang/eu/mailtext.txt +++ b/dokuwiki/inc/lang/eu/mailtext.txt @@ -10,8 +10,3 @@ Aldatu laburpena : @SUMMARY@ Erabiltzailea : @USER@ @DIFF@ - - --- -Email hau DokuWiki erabiliz sortu da; -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eu/mailwrap.html b/dokuwiki/inc/lang/eu/mailwrap.html index 0cf92c28..d2571909 100644 --- a/dokuwiki/inc/lang/eu/mailwrap.html +++ b/dokuwiki/inc/lang/eu/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Mezu elektroniko hau DokuWiki-k sortua da @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/password.txt b/dokuwiki/inc/lang/eu/password.txt index cf2a0171..a9c079f2 100644 --- a/dokuwiki/inc/lang/eu/password.txt +++ b/dokuwiki/inc/lang/eu/password.txt @@ -4,7 +4,3 @@ Hau da zure erabiltzailea @TITLE@ -rentzako @DOKUWIKIURL@ Erabiltzailea : @LOGIN@ Pasahitza : @PASSWORD@ - --- -eMail hau DokuWikiren bitartez sortu da; -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/eu/pwconfirm.txt b/dokuwiki/inc/lang/eu/pwconfirm.txt index 0f0fd5e8..ee4e4f83 100644 --- a/dokuwiki/inc/lang/eu/pwconfirm.txt +++ b/dokuwiki/inc/lang/eu/pwconfirm.txt @@ -7,6 +7,3 @@ Ez baduzu zuk eskatu pasahitz berria, ez kasurik egin posta honi. Eskakizuna zuk bidalia dela egiaztatzeko, mesedez, ondorengo esteka erabili. @CONFIRM@ - --- -Posta hau @DOKUWIKIURL@ gunean DokuWikik sortua izan da. \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/registermail.txt b/dokuwiki/inc/lang/eu/registermail.txt index a0154444..a2897e6d 100644 --- a/dokuwiki/inc/lang/eu/registermail.txt +++ b/dokuwiki/inc/lang/eu/registermail.txt @@ -8,6 +8,3 @@ Data : @DATE@ Nabigatzailea : @BROWSER@ IP-Helbidea : @IPADDRESS@ Hostalari izena : @HOSTNAME@ - --- -Posta hau @DOKUWIKIURL@ gunean DokuWikik sortua izan da. \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/subscr_digest.txt b/dokuwiki/inc/lang/eu/subscr_digest.txt index e7962ca2..d4c32d7a 100644 --- a/dokuwiki/inc/lang/eu/subscr_digest.txt +++ b/dokuwiki/inc/lang/eu/subscr_digest.txt @@ -10,11 +10,7 @@ Hemen aldaketak: Berrikuste zaharra: @OLDPAGE@ Berrikuste berria: @NEWPAGE@ -Orri jakinarazpenak ezeztatzeko, sartu wikian +Orri jakinarazpenak ezeztatzeko, sartu wikian @DOKUWIKIURL@ helbidean, bisitatu @SUBSCRIBE@ eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza. - --- -E-posta hau DokuWiki-k sortua izan da helbide honetan: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/subscr_list.txt b/dokuwiki/inc/lang/eu/subscr_list.txt index 950cd352..10037c37 100644 --- a/dokuwiki/inc/lang/eu/subscr_list.txt +++ b/dokuwiki/inc/lang/eu/subscr_list.txt @@ -7,11 +7,7 @@ Hemen aldatutako orriak: @DIFF@ -------------------------------------------------------- -Orri jakinarazpenak ezeztatzeko, sartu wikian +Orri jakinarazpenak ezeztatzeko, sartu wikian @DOKUWIKIURL@ helbidean, bisitatu @SUBSCRIBE@ eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza. - --- -E-posta hau DokuWiki-k sortua izan da helbide honetan: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/subscr_single.txt b/dokuwiki/inc/lang/eu/subscr_single.txt index 49021178..13b17873 100644 --- a/dokuwiki/inc/lang/eu/subscr_single.txt +++ b/dokuwiki/inc/lang/eu/subscr_single.txt @@ -13,11 +13,7 @@ Aldaketaren Laburpena: @SUMMARY@ Berrikuste Zaharra: @OLDPAGE@ Berrikuste Berria: @NEWPAGE@ -Orri jakinarazpenak ezeztatzeko, sartu wikian +Orri jakinarazpenak ezeztatzeko, sartu wikian @DOKUWIKIURL@ helbidean, bisitatu @SUBSCRIBE@ eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza. - --- -E-posta hau DokuWiki-k sortua izan da helbide honetan: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/eu/uploadmail.txt b/dokuwiki/inc/lang/eu/uploadmail.txt index 639f3d95..7b685e04 100644 --- a/dokuwiki/inc/lang/eu/uploadmail.txt +++ b/dokuwiki/inc/lang/eu/uploadmail.txt @@ -8,6 +8,3 @@ Hostalari izena : @HOSTNAME@ Tamaina : @SIZE@ MIME Mota : @MIME@ Erabiltzailea : @USER@ - --- -Posta hau @DOKUWIKIURL@ gunean DokuWikik sortua izan da. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/admin.txt b/dokuwiki/inc/lang/fa/admin.txt index ce755097..e445b3b9 100644 --- a/dokuwiki/inc/lang/fa/admin.txt +++ b/dokuwiki/inc/lang/fa/admin.txt @@ -1,3 +1,3 @@ ====== مدیریت ====== -در اینجا لیستی از وظیÙه‌های مدیریتی را مشاهده می‌کنید. \ No newline at end of file +در اینجا Ùهرستی از وظیÙه‌های مدیریتی موجود در داکو ویکی را مشاهده می‌کنید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/adminplugins.txt b/dokuwiki/inc/lang/fa/adminplugins.txt index 3d2bb4a5..dab0251b 100644 --- a/dokuwiki/inc/lang/fa/adminplugins.txt +++ b/dokuwiki/inc/lang/fa/adminplugins.txt @@ -1 +1 @@ -===== برنامه های جانبی دیگر ===== \ No newline at end of file +===== برنامه‌های جانبی دیگر ===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/backlinks.txt b/dokuwiki/inc/lang/fa/backlinks.txt index 6864e22d..774d3d6c 100644 --- a/dokuwiki/inc/lang/fa/backlinks.txt +++ b/dokuwiki/inc/lang/fa/backlinks.txt @@ -1,3 +1,3 @@ ====== پیوندهای بازگشتی ====== -در این‌جا لیستی از ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ به این ØµÙØ­Ù‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file +در این‌جا Ùهرستی از ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ به این ØµÙØ­Ù‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/denied.txt b/dokuwiki/inc/lang/fa/denied.txt index 4bffa0f3..b3cb41cf 100644 --- a/dokuwiki/inc/lang/fa/denied.txt +++ b/dokuwiki/inc/lang/fa/denied.txt @@ -1,4 +1,4 @@ ====== دسترسی ممکن نیست ====== -شرمنده، شما اجازه‌ی دسترسی ب این ØµÙØ­Ù‡ را ندارید. +متاسÙÙ…ØŒ شما اجازهٔ دسترسی به این ØµÙØ­Ù‡ را ندارید. diff --git a/dokuwiki/inc/lang/fa/diff.txt b/dokuwiki/inc/lang/fa/diff.txt index d5354f72..80e1ce7a 100644 --- a/dokuwiki/inc/lang/fa/diff.txt +++ b/dokuwiki/inc/lang/fa/diff.txt @@ -1,3 +1,3 @@ ====== ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ ====== -ØªÙØ§ÙˆØª دو نسخه‌ی Ù…ØªÙØ§ÙˆØª از ØµÙØ­Ù‡ را مشاهده می‌کنید. \ No newline at end of file +ØªÙØ§ÙˆØª دو نسخهٔ Ù…ØªÙØ§ÙˆØª از ØµÙØ­Ù‡ را مشاهده می‌کنید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/draft.txt b/dokuwiki/inc/lang/fa/draft.txt index 164b217b..6ad11219 100644 --- a/dokuwiki/inc/lang/fa/draft.txt +++ b/dokuwiki/inc/lang/fa/draft.txt @@ -1,5 +1,5 @@ ====== ÙØ§ÛŒÙ„ چرک‌نویس ÛŒØ§ÙØª شد ====== -آخرین سشن ویرایش شما با موÙقیت به پایان نرسیده. Dokuwiki به طور خودکار چرک‌نویسی از ØµÙØ­Ù‡â€ŒÛŒ شما ذخیره می‌کند Ú©Ù‡ شما می‌توانید آن را کامل کنید. در زیر مقادیر موجود در چرک‌نویس را مشاهده می‌کنید. +آخرین سشن ویرایش شما با موÙقیت به پایان نرسیده. دوکوویکی به طور خودکار چرک‌نویسی از ØµÙØ­Ù‡â€ŒÛŒ شما ذخیره می‌کند Ú©Ù‡ شما می‌توانید آن را کامل کنید. در زیر مقادیر موجود در چرک‌نویس را مشاهده می‌کنید. خواهشمندیم تصمیم بگیرید Ú©Ù‡ می‌خواهید چرک‌نویس را //بازیابی//ØŒ یا آن را //حذÙ// کنید Ùˆ یا ویرایش را //لغو// نمایید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/editrev.txt b/dokuwiki/inc/lang/fa/editrev.txt index ca896fee..eae53941 100644 --- a/dokuwiki/inc/lang/fa/editrev.txt +++ b/dokuwiki/inc/lang/fa/editrev.txt @@ -1 +1,2 @@ -**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! \ No newline at end of file +**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! +---- \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/jquery.ui.datepicker.js b/dokuwiki/inc/lang/fa/jquery.ui.datepicker.js index 8ffd6641..71da4981 100644 --- a/dokuwiki/inc/lang/fa/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/fa/jquery.ui.datepicker.js @@ -1,73 +1,73 @@ /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ /* Javad Mowlanezhad -- jmowla@gmail.com */ /* Jalali calendar should supported soon! (Its implemented but I have to test it) */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['fa'] = { - closeText: 'بستن', - prevText: '<قبلی', - nextText: 'بعدی>', - currentText: 'امروز', +datepicker.regional.fa = { + closeText: "بستن", + prevText: "<قبلی", + nextText: "بعدی>", + currentText: "امروز", monthNames: [ - 'ÙØ±ÙˆØ±Ø¯ÙŠÙ†', - 'ارديبهشت', - 'خرداد', - 'تير', - 'مرداد', - 'شهريور', - 'مهر', - 'آبان', - 'آذر', - 'دی', - 'بهمن', - 'اسÙند' + "ژانویه", + "Ùوریه", + "مارس", + "آوریل", + "مه", + "ژوئن", + "ژوئیه", + "اوت", + "سپتامبر", + "اکتبر", + "نوامبر", + "دسامبر" ], - monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], + monthNamesShort: [ "1","2","3","4","5","6","7","8","9","10","11","12" ], dayNames: [ - 'يکشنبه', - 'دوشنبه', - 'سه‌شنبه', - 'چهارشنبه', - 'پنجشنبه', - 'جمعه', - 'شنبه' + "يکشنبه", + "دوشنبه", + "سه‌شنبه", + "چهارشنبه", + "پنجشنبه", + "جمعه", + "شنبه" ], dayNamesShort: [ - 'ÛŒ', - 'د', - 'س', - 'Ú†', - 'Ù¾', - 'ج', - 'Ø´' + "ÛŒ", + "د", + "س", + "Ú†", + "Ù¾", + "ج", + "Ø´" ], dayNamesMin: [ - 'ÛŒ', - 'د', - 'س', - 'Ú†', - 'Ù¾', - 'ج', - 'Ø´' + "ÛŒ", + "د", + "س", + "Ú†", + "Ù¾", + "ج", + "Ø´" ], - weekHeader: 'Ù‡Ù', - dateFormat: 'yy/mm/dd', + weekHeader: "Ù‡Ù", + dateFormat: "yy/mm/dd", firstDay: 6, isRTL: true, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['fa']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fa ); -return datepicker.regional['fa']; +return datepicker.regional.fa; -})); +} ) ); diff --git a/dokuwiki/inc/lang/fa/lang.php b/dokuwiki/inc/lang/fa/lang.php index fea8fa21..529c9f82 100644 --- a/dokuwiki/inc/lang/fa/lang.php +++ b/dokuwiki/inc/lang/fa/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author behrad eslamifar * @author Omid Mottaghi @@ -13,6 +13,11 @@ * @author reza_khn * @author Hamid * @author Mohamad Mehdi Habibi + * @author Mohammad Sadegh + * @author Omid Hezaveh + * @author Mohmmad Razavi + * @author Masoud Sadrnezhaad + * @author sam01 */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -22,9 +27,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'] = 'پیش‌نمایش'; @@ -44,7 +49,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,61 +66,62 @@ $lang['btn_mediaManager'] = 'مشاهده در مدیریت رسانه‌ه $lang['loggedinas'] = 'به این عنوان وارد شده‌اید:'; $lang['user'] = 'نام کاربری'; $lang['pass'] = 'گذرواژه‌'; -$lang['newpass'] = 'گذروازه‌ی جدید'; +$lang['newpass'] = 'گذرواژه‌ی جدید'; $lang['oldpass'] = 'گذرواژه‌ی ÙØ¹Ù„ÛŒ را تایید کنید'; $lang['passchk'] = 'یک بار دیگر'; -$lang['remember'] = 'مرا به خاطر بسپار.'; -$lang['fullname'] = '*نام واقعی شما'; -$lang['email'] = 'ایمیل شما*'; +$lang['remember'] = 'مرا به خاطر بسپار'; +$lang['fullname'] = 'نام واقعی شما'; +$lang['email'] = 'ایمیل'; $lang['profile'] = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر'; -$lang['badlogin'] = 'خطا در ورود به سیستم'; -$lang['badpassconfirm'] = 'متاسÙÙ… ØŒ رمز عبور اشتباه است'; -$lang['minoredit'] = 'این ویرایش Ø®ÙØ±Ø¯ است'; -$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس'; +$lang['badlogin'] = 'متاسÙÙ…ØŒ نام کاربری یا رمز عبور اشتباه است.'; +$lang['badpassconfirm'] = 'متاسÙÙ…ØŒ رمز عبور اشتباه است'; +$lang['minoredit'] = 'ویرایش‌های Ø®ÙØ±Ø¯'; +$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس در'; $lang['nosecedit'] = 'این ØµÙØ­Ù‡ در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض محتوای Ú©Ù„ نمایش داده می‌شود.'; $lang['searchcreatepage'] = 'اگر به نتیجه‌ی مطلوبی نرسیده‌اید، می‌توانید ØµÙØ­Ù‡â€ŒÛŒ مورد نظر را ایجاد کنید.'; $lang['regmissing'] = 'متاسÙÙ…ØŒ شما باید همه قسمت‌ها را پر کنید.'; -$lang['reguexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; +$lang['reguexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است.'; $lang['regsuccess'] = 'کاربر ساخته شد Ùˆ گذرواژه به صورت ایمیل ارسال گردید.'; $lang['regsuccess2'] = 'حساب ایجاد شد.'; -$lang['regmailfail'] = 'مشکلی در ارسال ایمیل پیش آمده است، با مدیر تماس بگیرید!'; -$lang['regbadmail'] = 'نشانی واردشده‌ی ایمیل قابل‌قبول نیست، چرا Ú©Ù‡ دارای ساختار نامعتبری است. خواهشمندیم نشانی‌ای با ساختار صحیح وارد کنید Ùˆ یا بخش مربوط را خالی بگذارید.'; -$lang['regbadpass'] = 'گذرواژه‌هایی Ú©Ù‡ وارد کردید یکسان نیستند.'; +$lang['regfail'] = 'ایجاد کاربر ممکن نیست.'; +$lang['regmailfail'] = 'مشکلی در ارسال ایمیل رمز عبور پیش آمده است، با مدیر تماس بگیرید!'; +$lang['regbadmail'] = 'نشانی واردشدهٔ ایمیل قابل‌قبول نیست، چرا Ú©Ù‡ دارای ساختار نامعتبری است. اگر Ùکر می‌کنید این یک ایراد سایت است با مدیر تماس بگیرید'; +$lang['regbadpass'] = 'گذرواژه‌هایی Ú©Ù‡ وارد کردید یکسان نیستند، Ù„Ø·ÙØ§Ù‹ یکبار دیگر تلاش کنید.'; $lang['regpwmail'] = 'گذرواژه‌ی DokuWiki شما'; $lang['reghere'] = 'شما هنوز حسابی در اینجا ندارید؟ یکی ایجاد کنید'; $lang['profna'] = 'این ویکی اجازه ویرایش Ù¾Ø±ÙˆÙØ§ÛŒÙ„ را نمی‌دهد'; -$lang['profnochange'] = 'تغییری صورت Ù†Ú¯Ø±ÙØª'; -$lang['profnoempty'] = 'نام Ùˆ آدرس ایمیل باید پر شود'; -$lang['profchanged'] = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر با موÙقیت به روز شد'; -$lang['profnodelete'] = 'ویکی توانایی پشتیبانی از حذ٠کاربران را ندارد'; +$lang['profnochange'] = 'تغییری صورت Ù†Ú¯Ø±ÙØª.'; +$lang['profnoempty'] = 'نام Ùˆ آدرس ایمیل باید پر شود.'; +$lang['profchanged'] = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر با موÙقیت به روز شد.'; +$lang['profnodelete'] = 'این ویکی از حذ٠کاربران پشتیبانی نمی‌کند'; $lang['profdeleteuser'] = 'حذ٠حساب کاربری'; -$lang['profdeleted'] = 'حساب کاربری شما حذ٠گردیده است.'; +$lang['profdeleted'] = 'حساب کاربری شما از این ویکی حذ٠گردیده است'; $lang['profconfdelete'] = 'می‌خواهم حساب کاربری من از این ویکی حذ٠شود.
    این عمل قابل برگشت نیست.'; -$lang['profconfdeletemissing'] = 'جعبه‌ی تأیید تیک نخورده است'; -$lang['pwdforget'] = 'گذرواژه‌ی خود را ÙØ±Ø§Ù…وش کرده‌اید؟ جدید Ø¯Ø±ÛŒØ§ÙØª کنید'; +$lang['profconfdeletemissing'] = 'جعبهٔ تأیید تیک نخورده است'; +$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'] = 'هم‌ترازی'; @@ -124,13 +129,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'] = 'تصویر را پیوند Ù†Ú©Ù†'; @@ -148,39 +153,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['accessdenied'] = 'شما اجازهٔ مشاهدهٔ این ØµÙØ­Ù‡ را ندارید.'; $lang['mediausage'] = 'برای ارجاع دادن به ÙØ§ÛŒÙ„ از نگارش زیر Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.'; -$lang['mediaview'] = 'مشاهده‌ی ÙØ§ÛŒÙ„ اصلی'; +$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'] = 'ÙØ¹Ù„ÛŒ'; @@ -248,7 +252,6 @@ $lang['qb_sig'] = 'Ø§ÙØ²ÙˆØ¯Ù† امضا'; $lang['qb_smileys'] = 'Ø´Ú©Ù„Ú©'; $lang['qb_chars'] = 'حرو٠ویژه'; $lang['upperns'] = 'پرش به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… بالا'; -$lang['admin_register'] = 'یک حساب جدید بسازید'; $lang['metaedit'] = 'ویرایش داده‌های متا'; $lang['metasaveerr'] = 'نوشتن داده‌نما با مشکل مواجه شد'; $lang['metasaveok'] = 'داده‌نما ذخیره شد'; @@ -281,23 +284,22 @@ $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_installer'] = 'نصب کننده‌ی دوکوویکی'; $lang['i_wikiname'] = 'نام ویکی'; $lang['i_enableacl'] = 'ÙØ¹Ø§Ù„ بودن کنترل دسترسی‌ها (توصیه شده)'; $lang['i_superuser'] = 'کاربر اصلی'; $lang['i_problems'] = 'نصب کننده با مشکلات زیر مواجه شد. در صورت Ø±ÙØ¹ این مشکلات، امکان ادامه نصب خواهد بود.'; -$lang['i_modified'] = 'به دلایل امنیتی، این اسکریپت Ùقط با نصب تازه Ùˆ بدون تغییر DokuWiki کار خواهد کرد.شما باید دوباره ÙØ§ÛŒÙ„ ÙØ´Ø±Ø¯Ù‡ را باز کنید راهنمای نصب DokuWiki را بررسی کنید.'; -$lang['i_funcna'] = 'تابع %s در PHP موجود نیست. ممکن است شرکت خدمات وب شما آن را مسدود کرده باشد.'; -$lang['i_phpver'] = 'نگارش پی‌اچ‌پی %s پایین‌تر از نگارش مورد نیاز، یعنی %s می‌باشد. خواهشمندیم به روز رسانی کنید.'; +$lang['i_modified'] = 'به دلایل امنیتی، این اسکریپت Ùقط با نصب تازه Ùˆ بدون تغییر دوکوویکی کار خواهد کرد. شما باید دوباره ÙØ§ÛŒÙ„ ÙØ´Ø±Ø¯Ù‡ را باز کنید راهنمای نصب DokuWiki را بررسی کنید.'; +$lang['i_funcna'] = 'تابع %s در پی‌اچ‌پی موجود نیست. ممکن است شرکت خدمات وب شما آن را مسدود کرده باشد.'; +$lang['i_phpver'] = 'نگارش پی‌اچ‌پی %s پایین‌تر از نگارش مورد نیاز، یعنی %s است. خواهشمندیم به روز رسانی کنید.'; $lang['i_mbfuncoverload'] = 'برای اجرای دوکوویکی باید mbstring.func_overload را در php.ini ØºÛŒØ±ÙØ¹Ø§Ù„ کنید.'; $lang['i_permfail'] = 'شاخه‌ی %s قابلیت نوشتن ندارد. شما باید دسترسی‌های این شاخه را تنظیم کنید!'; $lang['i_confexists'] = '%s پیش‌تر موجود است'; $lang['i_writeerr'] = 'توانایی ایجاد %s نیست. شما باید دسترسی‌های شاخه یا ÙØ§ÛŒÙ„ را بررسی کنید Ùˆ ÙØ§ÛŒÙ„ را به طور دستی ایجاد کنید.'; $lang['i_badhash'] = 'ÙØ§ÛŒÙ„ dokuwiki.php غیرقابل تشخیص بوده یا تغییر کرده است (hash=%s)'; $lang['i_badval'] = '%s - غیرقانونی Ùˆ یا مقادیر تهی'; -$lang['i_success'] = 'تنظیمات با موÙقیت به پایان رسید. بهتر است ÙØ§ÛŒÙ„ install.php رو حذ٠کنید. برای ادامه این‌جا کلیک کنید.'; +$lang['i_success'] = 'تنظیمات با موÙقیت به پایان رسید. بهتر است ÙØ§ÛŒÙ„ install.php را حذ٠کنید. برای ادامه این‌جا کلیک کنید.'; $lang['i_failure'] = 'مشکلاتی در زمان نوشتن ÙØ§ÛŒÙ„ تنظیمات پیش آمده است. شما باید این مشکلات را پیش از Ø§Ø³ØªÙØ§Ø¯Ù‡ از DokuWiki برطر٠کنید.'; $lang['i_policy'] = 'کنترل دسترسی‌های اولیه'; $lang['i_pol0'] = 'ویکی باز (همه می‌توانند بخوانند، بنویسند Ùˆ ÙØ§ÛŒÙ„ ارسال کنند)'; @@ -305,10 +307,10 @@ $lang['i_pol1'] = 'ویکی عمومی (همه می‌توانن $lang['i_pol2'] = 'ویکی بسته (Ùقط کاربران ثبت شده می‌توانند بخوانند، بنویسند Ùˆ ÙØ§ÛŒÙ„ ارسال کنند)'; $lang['i_allowreg'] = 'اجازه دهید Ú©Ù‡ کاربران خود را ثبت نام کنند'; $lang['i_retry'] = 'تلاش مجدد'; -$lang['i_license'] = 'لطÙÙ† مجوز این محتوا را وارد کنید:'; +$lang['i_license'] = 'Ù„Ø·ÙØ§Ù‹ مجوزی Ú©Ù‡ می‌خواهید برای محتوایتان Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید را وارد کنید:'; $lang['i_license_none'] = 'هیچ اطلاعات مجوزی را نشان نده'; -$lang['i_pop_field'] = 'Ù„Ø·ÙØ§ Ú©Ù…Ú© کنید تا تجربه‌ی دوکوویکی را بهبود دهیم.'; -$lang['i_pop_label'] = 'ماهی یک بار، اطلاعات بدون‌نامی از نحوه‌ی Ø§Ø³ØªÙØ§Ø¯Ù‡ به توسعه‌دهندگان دوکوویکی ارسال Ú©Ù†'; +$lang['i_pop_field'] = 'Ù„Ø·ÙØ§Ù‹ به ما Ú©Ù…Ú© کنید تا تجربهٔ دوکوویکی را بهبود دهیم.'; +$lang['i_pop_label'] = 'ماهی یک بار، اطلاعات ناشناس دربارهٔ نحوهٔ Ø§Ø³ØªÙØ§Ø¯Ù‡ به توسعه‌دهندگان دوکوویکی ارسال Ú©Ù†'; $lang['recent_global'] = 'شما هم‌اکنون تغییرات ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… %s را مشاهده می‌کنید. شما هم‌چنین می‌توانید تغییرات اخیر در Ú©Ù„ ویکی را مشاهده نمایید.'; $lang['years'] = '%d سال پیش'; $lang['months'] = '%d ماه پیش'; @@ -326,7 +328,7 @@ $lang['media_edittab'] = 'ویرایش'; $lang['media_historytab'] = 'تاریخچه'; $lang['media_list_thumbs'] = 'ریز عکسها'; $lang['media_list_rows'] = 'سطرها'; -$lang['media_sort_name'] = 'ستون ها'; +$lang['media_sort_name'] = 'نام'; $lang['media_sort_date'] = 'تاریخ'; $lang['media_namespaces'] = 'انتخاب ÙØ¶Ø§ÛŒ نام'; $lang['media_files'] = 'ÙØ§ÛŒÙ„ در %s'; @@ -334,14 +336,19 @@ $lang['media_upload'] = 'آپلود به %s'; $lang['media_search'] = 'جستجو در %s'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s در %s'; -$lang['media_edit'] = '%s ویرایش'; -$lang['media_history'] = 'تاریخچه %s'; +$lang['media_edit'] = 'ویرایش %s'; +$lang['media_history'] = 'تاریخچهٔ %s'; $lang['media_meta_edited'] = 'ÙØ±Ø§Ø¯Ø§Ø¯Ù‡â€ŒÙ‡Ø§ ویرایش شدند.'; -$lang['media_perm_read'] = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما حق خواندن این ÙØ§ÛŒÙ„‌ها را ندارید.'; -$lang['media_perm_upload'] = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما حق آپلود این ÙØ§ÛŒÙ„‌ها را ندارید.'; +$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['page_nonexist_rev'] = 'ØµÙØ­Ù‡ %s وجود نداشت. این ØµÙØ­Ù‡ معاقباً در%s ایجاد شد.'; +$lang['unable_to_parse_date'] = 'امکان تجزیه Ùˆ تحلیل پارامتر «%s» وجود ندارد.'; +$lang['email_signature_text'] = 'این ایمیل توسط دوکوویکی تولید شده است +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/fa/locked.txt b/dokuwiki/inc/lang/fa/locked.txt index 1400e22d..2c0ca88e 100644 --- a/dokuwiki/inc/lang/fa/locked.txt +++ b/dokuwiki/inc/lang/fa/locked.txt @@ -1,3 +1,3 @@ ====== Ù‚ÙÙ„ شده است ====== -این ØµÙØ­Ù‡ توسط یک کاربر دیگر، برای ویرایش، Ù‚ÙÙ„ شده است. شما باید تا پایان ویرایش این کاربر یا پایان زمان ویرایش، صبر کنید. \ No newline at end of file +این ØµÙØ­Ù‡ توسط یک کاربر دیگر، برای ویرایش، Ù‚ÙÙ„ شده است. شما باید تا پایان ویرایش این کاربر یا منقضی شدن Ù‚ÙÙ„ صبر کنید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/mailtext.txt b/dokuwiki/inc/lang/fa/mailtext.txt index 44e98db0..b51be6ba 100644 --- a/dokuwiki/inc/lang/fa/mailtext.txt +++ b/dokuwiki/inc/lang/fa/mailtext.txt @@ -10,8 +10,3 @@ کاربر: @USER@ @DIFF@ - - --- -این ایمیل توسط DokuWiki تولید شده است -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/mailwrap.html b/dokuwiki/inc/lang/fa/mailwrap.html index c313c0bf..d2571909 100644 --- a/dokuwiki/inc/lang/fa/mailwrap.html +++ b/dokuwiki/inc/lang/fa/mailwrap.html @@ -1,4 +1,4 @@ - + @TITLE@ @@ -8,7 +8,6 @@ @HTMLBODY@

    -This mail was generated by DokuWiki at @DOKUWIKIURL@. - این ایمیل توسط DokuWiki at @DOKUWIKIURL@ تولید شده است. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/norev.txt b/dokuwiki/inc/lang/fa/norev.txt index 78a3d94b..186e374a 100644 --- a/dokuwiki/inc/lang/fa/norev.txt +++ b/dokuwiki/inc/lang/fa/norev.txt @@ -1,3 +1,3 @@ ====== نگارشی ÛŒØ§ÙØª نشد ====== -نگارش موردنظر ÛŒØ§ÙØª نشد. از دکمه‌ی «نگارش‌های پیشین» برای مشاهده‌ی نگارش‌های پیشین این ØµÙØ­Ù‡ Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. \ No newline at end of file +نگارش مورد نظر ÛŒØ§ÙØª نشد. از دکمه‌ی «نگارش‌های پیشین» برای مشاهده‌ی نگارش‌های پیشین این ØµÙØ­Ù‡ Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/password.txt b/dokuwiki/inc/lang/fa/password.txt index 3f552c58..86e7289c 100644 --- a/dokuwiki/inc/lang/fa/password.txt +++ b/dokuwiki/inc/lang/fa/password.txt @@ -1,10 +1,6 @@ سلام @FULLNAME@! -اطلاعات شخصی خود را با عنوان @TITLE@ در @DOKUWIKIURL@ را در زیر مشاهده کنید: +اطلاعات شخصی شما با عنوان @TITLE@ در @DOKUWIKIURL@ در ادامه آمده است: نام کاربری: @LOGIN@ گذرواژه: @PASSWORD@ - --- -این ایمیل توسط DokuWiki تولید شده است -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/preview.txt b/dokuwiki/inc/lang/fa/preview.txt index 3a67326d..727aa708 100644 --- a/dokuwiki/inc/lang/fa/preview.txt +++ b/dokuwiki/inc/lang/fa/preview.txt @@ -1,3 +1,3 @@ ====== پیش‌نمایش ====== -این پیش‌نمایش متن شماست. به یاد داشته باشید Ú©Ù‡ این متن **هنوز ذخیره نشده‌است** \ No newline at end of file +این پیش‌نمایش متن شماست. به یاد داشته باشید Ú©Ù‡ این متن هنوز **ذخیره نشده‌است**! \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/pwconfirm.txt b/dokuwiki/inc/lang/fa/pwconfirm.txt index fd76b7dd..e97b612a 100644 --- a/dokuwiki/inc/lang/fa/pwconfirm.txt +++ b/dokuwiki/inc/lang/fa/pwconfirm.txt @@ -1,13 +1,9 @@ سلام @FULLNAME@! -یک Ù†ÙØ± برای ورود به @DOKUWIKIURL@ با عنوان @TITLE@ درخواست گذرواژه‌ای جدید کرده است: +یک Ù†ÙØ± با عنوان @TITLE@ برای ورود به @DOKUWIKIURL@ درخواست گذرواژه‌ای جدید کرده است: -اگر شما چنین درخواستی نداده‌اید، این ایمیل را پاک کنید. +اگر شما چنین درخواستی نداده‌اید، به این ایمیل توجه نکنید. -اگر این درخواست توسط شما داده شده است، باید آن را تایید کنید، پس روی پیوند زیر کلیک کنید. +اگر این درخواست توسط شما داده شده است، برای تایید روی لینک زیر کلیک کنید. @CONFIRM@ - --- -این ایمیل توسط DokuWiki تولید شده است -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/recent.txt b/dokuwiki/inc/lang/fa/recent.txt index 5d5b5b79..a3d0c558 100644 --- a/dokuwiki/inc/lang/fa/recent.txt +++ b/dokuwiki/inc/lang/fa/recent.txt @@ -1,3 +1,3 @@ ====== تغییرات اخیر ====== -این ØµÙØ­Ù‡â€ŒÙ‡Ø§ اخیرن تغییر کرده‌اند. \ No newline at end of file +این ØµÙØ­Ù‡â€ŒÙ‡Ø§ به تازگی تغییر کرده‌اند. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/registermail.txt b/dokuwiki/inc/lang/fa/registermail.txt index e22c2d0a..f69460f3 100644 --- a/dokuwiki/inc/lang/fa/registermail.txt +++ b/dokuwiki/inc/lang/fa/registermail.txt @@ -8,7 +8,3 @@ مرورگر: @BROWSER@ آدرس IP: @IPADDRESS@ نام هوست: @HOSTNAME@ - --- -این ایمیل توسط DokuWiki تولید شده است -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/resendpwd.txt b/dokuwiki/inc/lang/fa/resendpwd.txt index 8b7b0d38..75ace99d 100644 --- a/dokuwiki/inc/lang/fa/resendpwd.txt +++ b/dokuwiki/inc/lang/fa/resendpwd.txt @@ -1,3 +1,3 @@ ====== ارسال گذرواژه‌ی جدید ====== -خواهشمندیم نام کاربری خود را در ÙØ±Ù… زیر بنویسید تا گذرواژه‌ی جدید برای تان ارسال شود. یک پیوند تاییدیه برای ایمیل ثبت شده ارسال می‌شود. \ No newline at end of file +خواهش‌مندیم نام کاربری خود را در ÙØ±Ù… زیر بنویسید تا گذرواژه‌ی جدید برای‌تان ارسال شود. یک پیوند تاییدیه برای ایمیل ثبت شده ارسال می‌شود. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/showrev.txt b/dokuwiki/inc/lang/fa/showrev.txt index 9d050086..2117ee63 100644 --- a/dokuwiki/inc/lang/fa/showrev.txt +++ b/dokuwiki/inc/lang/fa/showrev.txt @@ -1 +1,2 @@ -**این یک نگارش قدیمی از این مطلب است!** \ No newline at end of file +**این یک نگارش قدیمی از این مطلب است!** +---- \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/subscr_digest.txt b/dokuwiki/inc/lang/fa/subscr_digest.txt index 0ba4c898..c5ac5153 100644 --- a/dokuwiki/inc/lang/fa/subscr_digest.txt +++ b/dokuwiki/inc/lang/fa/subscr_digest.txt @@ -11,6 +11,3 @@ نگارش نو: @NEWPAGE@ برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @SUBSCRIBE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید. - --- -این رای‌نامه با Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/subscr_list.txt b/dokuwiki/inc/lang/fa/subscr_list.txt index 92ac92b7..6970997c 100644 --- a/dokuwiki/inc/lang/fa/subscr_list.txt +++ b/dokuwiki/inc/lang/fa/subscr_list.txt @@ -11,6 +11,3 @@ نگارش نو: @NEWPAGE@ برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @SUBSCRIBE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید. - --- -این رای‌نامه با Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/subscr_single.txt b/dokuwiki/inc/lang/fa/subscr_single.txt index a0d2a5d4..75ffb24b 100644 --- a/dokuwiki/inc/lang/fa/subscr_single.txt +++ b/dokuwiki/inc/lang/fa/subscr_single.txt @@ -14,6 +14,3 @@ نگارش نو: @NEWPAGE@ برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @NEWPAGE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید. - --- -این رای‌نامه با Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file diff --git a/dokuwiki/inc/lang/fa/uploadmail.txt b/dokuwiki/inc/lang/fa/uploadmail.txt index 625df73d..e9218b6b 100644 --- a/dokuwiki/inc/lang/fa/uploadmail.txt +++ b/dokuwiki/inc/lang/fa/uploadmail.txt @@ -8,7 +8,3 @@ اندازه: @SIZE@ MIME: @MIME@ کاربر: @USER@ - --- -این ایمیل توسط DokuWiki تولید شده است -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/jquery.ui.datepicker.js b/dokuwiki/inc/lang/fi/jquery.ui.datepicker.js index eac17049..a8386ff6 100644 --- a/dokuwiki/inc/lang/fi/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/fi/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Finnish initialisation for the jQuery UI date picker plugin. */ /* Written by Harri Kilpiö (harrikilpio@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['fi'] = { - closeText: 'Sulje', - prevText: '«Edellinen', - nextText: 'Seuraava»', - currentText: 'Tänään', - monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', - 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], - monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', - 'Heinä','Elo','Syys','Loka','Marras','Joulu'], - dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'], - dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], - dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], - weekHeader: 'Vk', - dateFormat: 'd.m.yy', +datepicker.regional.fi = { + closeText: "Sulje", + prevText: "«Edellinen", + nextText: "Seuraava»", + currentText: "Tänään", + monthNames: [ "Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu", + "Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu" ], + monthNamesShort: [ "Tammi","Helmi","Maalis","Huhti","Touko","Kesä", + "Heinä","Elo","Syys","Loka","Marras","Joulu" ], + dayNamesShort: [ "Su","Ma","Ti","Ke","To","Pe","La" ], + dayNames: [ "Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai" ], + dayNamesMin: [ "Su","Ma","Ti","Ke","To","Pe","La" ], + weekHeader: "Vk", + dateFormat: "d.m.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['fi']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fi ); -return datepicker.regional['fi']; +return datepicker.regional.fi; -})); +} ) ); diff --git a/dokuwiki/inc/lang/fi/lang.php b/dokuwiki/inc/lang/fi/lang.php index 4856efe3..d16c856f 100644 --- a/dokuwiki/inc/lang/fi/lang.php +++ b/dokuwiki/inc/lang/fi/lang.php @@ -9,6 +9,8 @@ * @author Teemu Mattila * @author Sami Olmari * @author Rami Lehti + * @author Jussi Takala + * @author Wiki Doku */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -16,7 +18,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'; @@ -40,7 +42,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ä'; @@ -53,6 +54,8 @@ $lang['btn_register'] = 'Rekisteröidy'; $lang['btn_apply'] = 'Toteuta'; $lang['btn_media'] = 'Media manager'; $lang['btn_deleteuser'] = 'Poista tilini'; +$lang['btn_img_backto'] = 'Takaisin %s'; +$lang['btn_mediaManager'] = 'Näytä mediamanagerissa'; $lang['loggedinas'] = 'Kirjautunut nimellä:'; $lang['user'] = 'Käyttäjänimi'; $lang['pass'] = 'Salasana'; @@ -68,11 +71,12 @@ $lang['badpassconfirm'] = 'Valitan. Salasana oli väärin'; $lang['minoredit'] = 'Pieni muutos'; $lang['draftdate'] = 'Luonnos tallennettu automaattisesti'; $lang['nosecedit'] = 'Sivu on muuttunut välillä ja kappaleen tiedot olivat vanhentuneet. Koko sivu ladattu.'; -$lang['searchcreatepage'] = "Jos et löytänyt etsimääsi voit luoda uuden sivun tiedustelusi pohjalta käyttämällä ''Muokkaa tätä sivua'' -napilla."; +$lang['searchcreatepage'] = 'Jos et löytänyt etsimääsi voit luoda uuden sivun tiedustelusi pohjalta käyttämällä \'\'Muokkaa tätä sivua\'\' -napilla.'; $lang['regmissing'] = 'Kaikki kentät tulee täyttää.'; $lang['reguexists'] = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.'; $lang['regsuccess'] = 'Käyttäjä luotiin ja salasana lähetettiin sähköpostilla.'; $lang['regsuccess2'] = 'Käyttäjänimi on luotu.'; +$lang['regfail'] = 'Valitsemaasi käyttäjää ei voitu luoda.'; $lang['regmailfail'] = 'Näyttää siltä, että salasanan lähettämisessä tapahtui virhe. Ota yhteys ylläpitäjään!'; $lang['regbadmail'] = 'Antamasi sähköpostiosoite näyttää epäkelvolta. Jos pidät tätä virheenä ota yhteys ylläpitäjään.'; $lang['regbadpass'] = 'Annetut kaksi salasanaa eivät täsmää. Yritä uudelleen.'; @@ -151,7 +155,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'; @@ -185,6 +188,9 @@ $lang['difflink'] = 'Linkki vertailunäkymään'; $lang['diff_type'] = 'Näytä eroavaisuudet:'; $lang['diff_inline'] = 'Sisäkkäin'; $lang['diff_side'] = 'Vierekkäin'; +$lang['diffprevrev'] = 'Edellinen revisio'; +$lang['diffnextrev'] = 'Seuraava revisio'; +$lang['difflastrev'] = 'Viimeisin revisio'; $lang['line'] = 'Rivi'; $lang['breadcrumb'] = 'Jäljet:'; $lang['youarehere'] = 'Olet täällä:'; @@ -237,11 +243,9 @@ $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'; -$lang['btn_img_backto'] = 'Takaisin %s'; $lang['img_title'] = 'Otsikko:'; $lang['img_caption'] = 'Kuvateksti:'; $lang['img_date'] = 'Päivämäärä:'; @@ -254,7 +258,6 @@ $lang['img_camera'] = 'Kamera:'; $lang['img_keywords'] = 'Avainsanat:'; $lang['img_width'] = 'Leveys:'; $lang['img_height'] = 'Korkeus:'; -$lang['btn_mediaManager'] = 'Näytä mediamanagerissa'; $lang['subscr_subscribe_success'] = '%s lisätty %s tilauslistalle'; $lang['subscr_subscribe_error'] = 'Virhe lisättäessä %s tilauslistalle %s'; $lang['subscr_subscribe_noaddress'] = 'Login tiedoissasi ei ole sähköpostiosoitetta. Sinua ei voi lisätä tilaukseen'; @@ -272,7 +275,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'; @@ -282,6 +284,7 @@ $lang['i_problems'] = 'Asennusohjelma löysi alla listattuja ongelmia $lang['i_modified'] = 'Turvallisuussyistä tämä ohjelma toimii vain uusien ja muokkaamattomien Dokuwiki-asennusten kanssa. Pura tiedostot uudestaan asennuspaketista, tai lue Dokuwikin asennusohje (englanniksi)'; $lang['i_funcna'] = 'PHP:n funktio %s ei ole käytettävissä. Palveluntarjoajasi on saattanut poistaa sen jostain syystä.'; $lang['i_phpver'] = 'Käyttämäsi PHP-ohjelmiston versio %s on pienempi, kuin tarvitaan %s. PHP-asennuksesi pitää päivittää.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload pitää ottaa pois käytöstä php.ini -tiedostosta käyttääksesi DokuWikiä'; $lang['i_permfail'] = '%s ei ole DokuWikin kirjoitettavissa. Muokkaa hakemiston oikeuksia!'; $lang['i_confexists'] = '%s on jo olemassa'; $lang['i_writeerr'] = '%sn luonti epäonnistui. Tarkista hakemiston/tiedoston oikeudet ja luo tiedosto käsin.'; @@ -335,3 +338,6 @@ $lang['currentns'] = 'Nykyinen nimiavaruus'; $lang['searchresult'] = 'Haun tulokset'; $lang['plainhtml'] = 'pelkkä HTML'; $lang['wikimarkup'] = 'Wiki markup'; +$lang['unable_to_parse_date'] = 'Parametrin "%s" jäsennys ei onnistu.'; +$lang['email_signature_text'] = 'Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/fi/mailtext.txt b/dokuwiki/inc/lang/fi/mailtext.txt index 1808ebc3..015b3c32 100644 --- a/dokuwiki/inc/lang/fi/mailtext.txt +++ b/dokuwiki/inc/lang/fi/mailtext.txt @@ -10,8 +10,3 @@ Yhteenveto: @SUMMARY@ Käyttäjä : @USER@ @DIFF@ - - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/mailwrap.html b/dokuwiki/inc/lang/fi/mailwrap.html index 6ff63c04..d2571909 100644 --- a/dokuwiki/inc/lang/fi/mailwrap.html +++ b/dokuwiki/inc/lang/fi/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Tämä viesti on tehty DokuWiki:ssä @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/password.txt b/dokuwiki/inc/lang/fi/password.txt index 51e16046..e088166f 100644 --- a/dokuwiki/inc/lang/fi/password.txt +++ b/dokuwiki/inc/lang/fi/password.txt @@ -4,7 +4,3 @@ Tässä käyttäjätietosi sivulla @TITLE@ osoitteessa @DOKUWIKIURL@ Käyttäjätunnus : @LOGIN@ Salasana : @PASSWORD@ - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/pwconfirm.txt b/dokuwiki/inc/lang/fi/pwconfirm.txt index e552f5cd..de6780ca 100644 --- a/dokuwiki/inc/lang/fi/pwconfirm.txt +++ b/dokuwiki/inc/lang/fi/pwconfirm.txt @@ -7,7 +7,3 @@ Jos sinä ei pyytänyt uutta salasanaa, niin voit unohtaa tämän postin. Käytä alla olevaa linkkiä vahvistaaksesi, että pyynnön lähettäjä todella olet sinä. @CONFIRM@ - --- -Tämän postin loi DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fi/registermail.txt b/dokuwiki/inc/lang/fi/registermail.txt index c276873f..07c35be0 100644 --- a/dokuwiki/inc/lang/fi/registermail.txt +++ b/dokuwiki/inc/lang/fi/registermail.txt @@ -8,7 +8,3 @@ Päivämäärä : @DATE@ Selain : @BROWSER@ IP-osoite : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fi/subscr_digest.txt b/dokuwiki/inc/lang/fi/subscr_digest.txt index 46648448..e395e07e 100644 --- a/dokuwiki/inc/lang/fi/subscr_digest.txt +++ b/dokuwiki/inc/lang/fi/subscr_digest.txt @@ -14,7 +14,3 @@ Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa @DOKUWIKIURL@ , jonka jälkeen katso @SUBSCRIBE@ ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/subscr_list.txt b/dokuwiki/inc/lang/fi/subscr_list.txt index cd39014e..255f1239 100644 --- a/dokuwiki/inc/lang/fi/subscr_list.txt +++ b/dokuwiki/inc/lang/fi/subscr_list.txt @@ -11,8 +11,3 @@ Peruuttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa @DOKUWIKIURL@ , jonka jälkeen katso @SUBSCRIBE@ ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. - - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fi/subscr_single.txt b/dokuwiki/inc/lang/fi/subscr_single.txt index 0fd83e26..f373ff3e 100644 --- a/dokuwiki/inc/lang/fi/subscr_single.txt +++ b/dokuwiki/inc/lang/fi/subscr_single.txt @@ -17,7 +17,3 @@ Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa @DOKUWIKIURL@ , jonka jälkeen katso @SUBSCRIBE@ ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fi/uploadmail.txt b/dokuwiki/inc/lang/fi/uploadmail.txt index 0c116a78..e7b9abfe 100644 --- a/dokuwiki/inc/lang/fi/uploadmail.txt +++ b/dokuwiki/inc/lang/fi/uploadmail.txt @@ -8,7 +8,3 @@ Hostname : @HOSTNAME@ Koko : @SIZE@ MIME Type : @MIME@ Käyttäjä : @USER@ - --- -Tämän postin loi DokuWiki osoitteessa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fo/jquery.ui.datepicker.js b/dokuwiki/inc/lang/fo/jquery.ui.datepicker.js index 1754f7be..6c24b8bf 100644 --- a/dokuwiki/inc/lang/fo/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/fo/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Faroese initialisation for the jQuery UI date picker plugin */ /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['fo'] = { - closeText: 'Lat aftur', - prevText: '<Fyrra', - nextText: 'Næsta>', - currentText: 'à dag', - monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', - 'Juli','August','September','Oktober','November','Desember'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', - 'Jul','Aug','Sep','Okt','Nov','Des'], - dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], - dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], - dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], - weekHeader: 'Vk', - dateFormat: 'dd-mm-yy', +datepicker.regional.fo = { + closeText: "Lat aftur", + prevText: "<Fyrra", + nextText: "Næsta>", + currentText: "à dag", + monthNames: [ "Januar","Februar","Mars","Apríl","Mei","Juni", + "Juli","August","September","Oktober","November","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun", + "Jul","Aug","Sep","Okt","Nov","Des" ], + dayNames: [ + "Sunnudagur", + "Mánadagur", + "Týsdagur", + "Mikudagur", + "Hósdagur", + "Fríggjadagur", + "Leyardagur" + ], + dayNamesShort: [ "Sun","Mán","Týs","Mik","Hós","Frí","Ley" ], + dayNamesMin: [ "Su","Má","Tý","Mi","Hó","Fr","Le" ], + weekHeader: "Vk", + dateFormat: "dd-mm-yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['fo']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fo ); -return datepicker.regional['fo']; +return datepicker.regional.fo; -})); +} ) ); diff --git a/dokuwiki/inc/lang/fo/lang.php b/dokuwiki/inc/lang/fo/lang.php index 0aee76e0..50f2faca 100644 --- a/dokuwiki/inc/lang/fo/lang.php +++ b/dokuwiki/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'; @@ -170,3 +167,5 @@ $lang['img_format'] = 'Snið:'; $lang['img_camera'] = 'Fototól:'; $lang['img_keywords'] = 'Evnisorð:'; $lang['authtempfail'] = 'Validering av brúkara virkar fyribils ikki. Um hetta er varandi, fá so samband við umboðsstjóran á hesi wiki.'; +$lang['email_signature_text'] = 'Hesin t-postur var skaptur av DokuWiki á +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/fo/mailtext.txt b/dokuwiki/inc/lang/fo/mailtext.txt index 358a23be..331edfef 100644 --- a/dokuwiki/inc/lang/fo/mailtext.txt +++ b/dokuwiki/inc/lang/fo/mailtext.txt @@ -10,8 +10,3 @@ Rætti samandráttur : @SUMMARY@ Brúkari : @USER@ @DIFF@ - - --- -Hesin t-postur var skaptur av DokuWiki á: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fo/password.txt b/dokuwiki/inc/lang/fo/password.txt index 1e4797ba..df8b6e71 100644 --- a/dokuwiki/inc/lang/fo/password.txt +++ b/dokuwiki/inc/lang/fo/password.txt @@ -4,7 +4,3 @@ Her eru tínar brúkaraupplýsingar @TITLE@ at @DOKUWIKIURL@ Brúkaranavn : @LOGIN@ Loyniorð : @PASSWORD@ - --- -Hesin t-postur var skaptur av DokuWiki á: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fo/subscr_digest.txt b/dokuwiki/inc/lang/fo/subscr_digest.txt index 3d9f097a..ff76e53d 100644 --- a/dokuwiki/inc/lang/fo/subscr_digest.txt +++ b/dokuwiki/inc/lang/fo/subscr_digest.txt @@ -14,7 +14,3 @@ Fyri at avmelda síðu kunngerðir, logga inn í wikiina á @DOKUWIKIURL@ vitja so @SUBSCRIBE@ og avmelda hald á síðu og/ella navnaøkis broytingar. - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fr/jquery.ui.datepicker.js b/dokuwiki/inc/lang/fr/jquery.ui.datepicker.js index 2f5ff3cb..9e39fbd6 100644 --- a/dokuwiki/inc/lang/fr/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/fr/jquery.ui.datepicker.js @@ -2,38 +2,38 @@ /* Written by Keith Wood (kbwood{at}iinet.com.au), Stéphane Nahmani (sholby@sholby.net), Stéphane Raimbault */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['fr'] = { - closeText: 'Fermer', - prevText: 'Précédent', - nextText: 'Suivant', - 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', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], - dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], - dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], - dayNamesMin: ['D','L','M','M','J','V','S'], - weekHeader: 'Sem.', - dateFormat: 'dd/mm/yy', +datepicker.regional.fr = { + closeText: "Fermer", + prevText: "Précédent", + nextText: "Suivant", + currentText: "Aujourd'hui", + monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre" ], + 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." ], + dayNamesMin: [ "D","L","M","M","J","V","S" ], + weekHeader: "Sem.", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['fr']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fr ); -return datepicker.regional['fr']; +return datepicker.regional.fr; -})); +} ) ); diff --git a/dokuwiki/inc/lang/fr/lang.php b/dokuwiki/inc/lang/fr/lang.php index dfaa8df2..9f14918d 100644 --- a/dokuwiki/inc/lang/fr/lang.php +++ b/dokuwiki/inc/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sébastien Bauer * @author Antoine Fixary * @author cumulus @@ -35,6 +35,11 @@ * @author Caillot * @author Schplurtz le Déboulonné * @author YoBoY + * @author james + * @author Pietroni + * @author Floriang + * @author Eric + * @author Olivier Humbert */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -66,8 +71,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'; @@ -77,7 +81,7 @@ $lang['btn_draftdel'] = 'Effacer le brouillon'; $lang['btn_revert'] = 'Restaurer'; $lang['btn_register'] = 'Créer un compte'; $lang['btn_apply'] = 'Appliquer'; -$lang['btn_media'] = 'Gestionnaire de médias'; +$lang['btn_media'] = 'Gestionnaire Multimédia'; $lang['btn_deleteuser'] = 'Supprimer mon compte'; $lang['btn_img_backto'] = 'Retour vers %s'; $lang['btn_mediaManager'] = 'Voir dans le gestionnaire de médias'; @@ -96,11 +100,12 @@ $lang['badpassconfirm'] = 'Désolé, le mot de passe est erroné'; $lang['minoredit'] = 'Modification mineure'; $lang['draftdate'] = 'Brouillon enregistré automatiquement le'; $lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.'; -$lang['searchcreatepage'] = 'Si vous n\'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou modifier la page correspondante à votre requête en cliquant sur le bouton approprié.'; +$lang['searchcreatepage'] = 'Si vous n\'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou modifier la page correspondant à votre requête en cliquant sur le bouton approprié.'; $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.'; @@ -115,6 +120,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.
    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'; @@ -177,7 +183,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 !'; @@ -195,9 +200,9 @@ $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['reference'] = 'Utilisé par'; $lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :'; $lang['ref_hidden'] = 'Des références sont présentes dans des pages que vous ne pouvez pas voir (autorisations insuffisantes)'; $lang['hits'] = 'Occurrences trouvées'; @@ -227,7 +232,7 @@ $lang['restored'] = 'ancienne révision (%s) restaurée'; $lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Résumé'; $lang['noflash'] = 'L\'extension Adobe Flash est nécessaire pour afficher ce contenu.'; -$lang['download'] = 'Télécharger un extrait'; +$lang['download'] = 'Télécharger cet extrait'; $lang['tools'] = 'Outils'; $lang['user_tools'] = 'Outils pour utilisateurs'; $lang['site_tools'] = 'Outils du site'; @@ -268,7 +273,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'; @@ -284,24 +288,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'; @@ -318,7 +321,7 @@ $lang['i_writeerr'] = 'Impossible de créer %s. Vous dev $lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=%s)'; $lang['i_badval'] = '%s - 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 votre nouveau DokuWiki.'; -$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 votre nouveau DokuWiki.'; +$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 votre nouveau DokuWiki.'; $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)'; @@ -361,7 +364,12 @@ $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'; $lang['wikimarkup'] = 'Wiki balise'; +$lang['page_nonexist_rev'] = 'La page n\'existait pas le %s. Elle a été créée le %s.'; +$lang['unable_to_parse_date'] = 'Ne peut analyser le paramètre date "%s".'; +$lang['email_signature_text'] = 'Ce courriel a été généré par DokuWiki depuis +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/fr/mailtext.txt b/dokuwiki/inc/lang/fr/mailtext.txt index 3f191756..d93eb1e8 100644 --- a/dokuwiki/inc/lang/fr/mailtext.txt +++ b/dokuwiki/inc/lang/fr/mailtext.txt @@ -11,8 +11,3 @@ Résumé : @SUMMARY@ Utilisateur : @USER@ @DIFF@ - - --- -Ce courriel a été généré par DokuWiki depuis -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fr/mailwrap.html b/dokuwiki/inc/lang/fr/mailwrap.html index aa501102..d2571909 100644 --- a/dokuwiki/inc/lang/fr/mailwrap.html +++ b/dokuwiki/inc/lang/fr/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Ce courriel a été automatiquement généré par DokuWiki depuis @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fr/password.txt b/dokuwiki/inc/lang/fr/password.txt index 47cb391d..2ffe7158 100644 --- a/dokuwiki/inc/lang/fr/password.txt +++ b/dokuwiki/inc/lang/fr/password.txt @@ -4,7 +4,3 @@ Voici vos identifiants pour @TITLE@ sur @DOKUWIKIURL@ Utilisateur : @LOGIN@ Mot de passe : @PASSWORD@ - --- -Ce courriel a été envoyé par DokuWiki depuis -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fr/pwconfirm.txt b/dokuwiki/inc/lang/fr/pwconfirm.txt index 5cbfb224..187ec0bd 100644 --- a/dokuwiki/inc/lang/fr/pwconfirm.txt +++ b/dokuwiki/inc/lang/fr/pwconfirm.txt @@ -9,7 +9,3 @@ passe, ignorez simplement ce message. Pour confirmer que cette requête émane bien de vous, merci de cliquer sur le lien ci-dessous. @CONFIRM@ - --- -Ce courriel a été généré par DokuWiki depuis -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fr/registermail.txt b/dokuwiki/inc/lang/fr/registermail.txt index 43d72dba..fe39c2db 100644 --- a/dokuwiki/inc/lang/fr/registermail.txt +++ b/dokuwiki/inc/lang/fr/registermail.txt @@ -8,7 +8,3 @@ Date : @DATE@ Navigateur internet : @BROWSER@ Adresse IP : @IPADDRESS@ Nom d'hôte : @HOSTNAME@ - --- -Ce courriel a été généré par DokuWiki depuis -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/fr/subscr_digest.txt b/dokuwiki/inc/lang/fr/subscr_digest.txt index 7ec75ca7..c1fa4637 100644 --- a/dokuwiki/inc/lang/fr/subscr_digest.txt +++ b/dokuwiki/inc/lang/fr/subscr_digest.txt @@ -13,7 +13,3 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @DOKUWIKIURL@ puis visitez @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. - --- -Ce courriel a été généré par DokuWiki depuis -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fr/subscr_form.txt b/dokuwiki/inc/lang/fr/subscr_form.txt index d68c05e6..f14832e0 100644 --- a/dokuwiki/inc/lang/fr/subscr_form.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/fr/subscr_list.txt b/dokuwiki/inc/lang/fr/subscr_list.txt index d8c6b68e..4c5c55d1 100644 --- a/dokuwiki/inc/lang/fr/subscr_list.txt +++ b/dokuwiki/inc/lang/fr/subscr_list.txt @@ -10,7 +10,3 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @DOKUWIKIURL@ puis visitez @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. - --- -Ce courriel a été généré par Dokuwiki : -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fr/subscr_single.txt b/dokuwiki/inc/lang/fr/subscr_single.txt index 236d45e8..a13bd00e 100644 --- a/dokuwiki/inc/lang/fr/subscr_single.txt +++ b/dokuwiki/inc/lang/fr/subscr_single.txt @@ -16,7 +16,3 @@ Pour annuler les notifications de page, connectez-vous au wiki à l'adresse @DOKUWIKIURL@ puis visitez @SUBSCRIBE@ et désabonnez-vous de la page ou de la catégorie. - --- -Ce courriel a été généré par Dokuwiki depuis -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/fr/uploadmail.txt b/dokuwiki/inc/lang/fr/uploadmail.txt index 80be0de8..37273d95 100644 --- a/dokuwiki/inc/lang/fr/uploadmail.txt +++ b/dokuwiki/inc/lang/fr/uploadmail.txt @@ -8,7 +8,3 @@ Nom d'hôte : @HOSTNAME@ Taille : @SIZE@ Type MIME : @MIME@ Utilisateur : @USER@ - --- -Ce message a été généré par DokuWiki depuis -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/gl/jquery.ui.datepicker.js b/dokuwiki/inc/lang/gl/jquery.ui.datepicker.js index ed5b2d2f..27652307 100644 --- a/dokuwiki/inc/lang/gl/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/gl/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Galician localization for 'UI date picker' jQuery extension. */ /* Translated by Jorge Barreiro . */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['gl'] = { - closeText: 'Pechar', - prevText: '<Ant', - nextText: 'Seg>', - currentText: 'Hoxe', - monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', - 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], - monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', - 'Xul','Ago','Set','Out','Nov','Dec'], - dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], - dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], - dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'], - weekHeader: 'Sm', - dateFormat: 'dd/mm/yy', +datepicker.regional.gl = { + closeText: "Pechar", + prevText: "<Ant", + nextText: "Seg>", + currentText: "Hoxe", + monthNames: [ "Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño", + "Xullo","Agosto","Setembro","Outubro","Novembro","Decembro" ], + monthNamesShort: [ "Xan","Feb","Mar","Abr","Mai","Xuñ", + "Xul","Ago","Set","Out","Nov","Dec" ], + dayNames: [ "Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado" ], + dayNamesShort: [ "Dom","Lun","Mar","Mér","Xov","Ven","Sáb" ], + dayNamesMin: [ "Do","Lu","Ma","Mé","Xo","Ve","Sá" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['gl']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.gl ); -return datepicker.regional['gl']; +return datepicker.regional.gl; -})); +} ) ); diff --git a/dokuwiki/inc/lang/gl/lang.php b/dokuwiki/inc/lang/gl/lang.php index 82cbbbfa..941989a3 100644 --- a/dokuwiki/inc/lang/gl/lang.php +++ b/dokuwiki/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 %s. Terás de $lang['i_badhash'] = 'dokuwiki.php irrecoñecíbel ou modificado (hash=%s)'; $lang['i_badval'] = '%s - ilegal ou valor baleiro'; $lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o - teu novo DokuWiki.'; + teu novo DokuWiki.'; $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 o teu novo DokuWiki.'; + de poderes empregar o teu novo DokuWiki.'; $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)'; @@ -319,3 +315,5 @@ $lang['media_perm_read'] = 'Sentímolo, non tes permisos suficientes para $lang['media_perm_upload'] = 'Sentímolo, non tes permisos suficientes para subir arquivos.'; $lang['media_update'] = 'Subir nova versión'; $lang['media_restore'] = 'Restaurar esta versión'; +$lang['email_signature_text'] = 'Este correo foi xerado polo DokuWiki en +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/gl/mailtext.txt b/dokuwiki/inc/lang/gl/mailtext.txt index a6799d69..bf102e18 100644 --- a/dokuwiki/inc/lang/gl/mailtext.txt +++ b/dokuwiki/inc/lang/gl/mailtext.txt @@ -10,8 +10,3 @@ Resumo da Edición : @SUMMARY@ Usuario : @USER@ @DIFF@ - - --- -Este correo foi xerado polo DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/gl/mailwrap.html b/dokuwiki/inc/lang/gl/mailwrap.html index 19927c11..d2571909 100644 --- a/dokuwiki/inc/lang/gl/mailwrap.html +++ b/dokuwiki/inc/lang/gl/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Este correo era xerado por DokuWiki en @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/gl/password.txt b/dokuwiki/inc/lang/gl/password.txt index 652a5582..36f8562b 100644 --- a/dokuwiki/inc/lang/gl/password.txt +++ b/dokuwiki/inc/lang/gl/password.txt @@ -4,7 +4,3 @@ Aquí tes os teus datos de usuario para @TITLE@ en @DOKUWIKIURL@ Usuario : @LOGIN@ Contrasinal : @PASSWORD@ - --- -Este correo foi xerado polo DokuWiki en -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/gl/pwconfirm.txt b/dokuwiki/inc/lang/gl/pwconfirm.txt index ef20212f..8185560b 100644 --- a/dokuwiki/inc/lang/gl/pwconfirm.txt +++ b/dokuwiki/inc/lang/gl/pwconfirm.txt @@ -9,7 +9,3 @@ Para confirmares que esta solicitude foi realmente enviada por ti, por favor, visita a seguinte ligazón. @CONFIRM@ - --- -Este correo-e foi xerado polo DokuWiki de -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/gl/registermail.txt b/dokuwiki/inc/lang/gl/registermail.txt index 7d401748..aad8481b 100644 --- a/dokuwiki/inc/lang/gl/registermail.txt +++ b/dokuwiki/inc/lang/gl/registermail.txt @@ -8,7 +8,3 @@ Data : @DATE@ Navegador : @BROWSER@ Enderezo IP : @IPADDRESS@ Nome do Host : @HOSTNAME@ - --- -Este correo-e foi xerado polo DokuWiki de -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/gl/subscr_digest.txt b/dokuwiki/inc/lang/gl/subscr_digest.txt index 4ebd14dd..275a7d53 100644 --- a/dokuwiki/inc/lang/gl/subscr_digest.txt +++ b/dokuwiki/inc/lang/gl/subscr_digest.txt @@ -14,7 +14,3 @@ Para cancelares as notificacións da páxina inicia sesión no wiki en @DOKUWIKIURL@ e logo visita @SUBSCRIBE@ e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. - --- -Este correo-e foi xerado polo DokuWiki de -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/gl/subscr_list.txt b/dokuwiki/inc/lang/gl/subscr_list.txt index b62aae35..8ee1a7a2 100644 --- a/dokuwiki/inc/lang/gl/subscr_list.txt +++ b/dokuwiki/inc/lang/gl/subscr_list.txt @@ -11,7 +11,3 @@ Para cancelares as notificacións da páxina inicia sesión no wiki en @DOKUWIKIURL@ e logo visita @SUBSCRIBE@ e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. - --- -Este correo-e foi xerado polo DokuWiki de -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/gl/subscr_single.txt b/dokuwiki/inc/lang/gl/subscr_single.txt index 77102d47..b30c8172 100644 --- a/dokuwiki/inc/lang/gl/subscr_single.txt +++ b/dokuwiki/inc/lang/gl/subscr_single.txt @@ -17,7 +17,3 @@ Para cancelares as notificacións da páxina inicia sesión no wiki en @DOKUWIKIURL@ e logo visita @SUBSCRIBE@ e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. - --- -Este correo-e foi xerado polo DokuWiki de -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/gl/uploadmail.txt b/dokuwiki/inc/lang/gl/uploadmail.txt index 2a7c2476..c01bc7df 100644 --- a/dokuwiki/inc/lang/gl/uploadmail.txt +++ b/dokuwiki/inc/lang/gl/uploadmail.txt @@ -8,7 +8,3 @@ Nome do Host : @HOSTNAME@ Tamaño : @SIZE@ Tipo MIME : @MIME@ Usuario : @USER@ - --- -Este correo foi xerado polo DokuWiki en -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/he/jquery.ui.datepicker.js b/dokuwiki/inc/lang/he/jquery.ui.datepicker.js index 9b166135..fb6238fd 100644 --- a/dokuwiki/inc/lang/he/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/he/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Hebrew initialisation for the UI Datepicker extension. */ /* Written by Amir Hardon (ahardon at gmail dot com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['he'] = { - closeText: 'סגור', - prevText: '<הקוד×', - nextText: 'הב×>', - currentText: 'היו×', - monthNames: ['ינו×ר','פברו×ר','מרץ','×פריל','מ××™','יוני', - 'יולי','×וגוסט','ספטמבר','×וקטובר','נובמבר','דצמבר'], - monthNamesShort: ['ינו','פבר','מרץ','×פר','מ××™','יוני', - 'יולי','×וג','ספט','×וק','נוב','דצמ'], - dayNames: ['ר×שון','שני','שלישי','רביעי','חמישי','שישי','שבת'], - dayNamesShort: ['×\'','ב\'','×’\'','ד\'','×”\'','ו\'','שבת'], - dayNamesMin: ['×\'','ב\'','×’\'','ד\'','×”\'','ו\'','שבת'], - weekHeader: 'Wk', - dateFormat: 'dd/mm/yy', +datepicker.regional.he = { + closeText: "סגור", + prevText: "<הקוד×", + nextText: "הב×>", + currentText: "היו×", + monthNames: [ "ינו×ר","פברו×ר","מרץ","×פריל","מ××™","יוני", + "יולי","×וגוסט","ספטמבר","×וקטובר","נובמבר","דצמבר" ], + monthNamesShort: [ "ינו","פבר","מרץ","×פר","מ××™","יוני", + "יולי","×וג","ספט","×וק","נוב","דצמ" ], + dayNames: [ "ר×שון","שני","שלישי","רביעי","חמישי","שישי","שבת" ], + dayNamesShort: [ "×'","ב'","×’'","ד'","×”'","ו'","שבת" ], + dayNamesMin: [ "×'","ב'","×’'","ד'","×”'","ו'","שבת" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: true, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['he']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.he ); -return datepicker.regional['he']; +return datepicker.regional.he; -})); +} ) ); diff --git a/dokuwiki/inc/lang/he/lang.php b/dokuwiki/inc/lang/he/lang.php index 5e2ecbdf..49f17c3e 100644 --- a/dokuwiki/inc/lang/he/lang.php +++ b/dokuwiki/inc/lang/he/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ×’×™× ×©×¤×¨ * @author Denis Simakov * @author Dotan Kamber @@ -13,6 +13,9 @@ * @author alex * @author matt carroll * @author tomer + * @author itsho + * @author Menashe Tomer + * @author sagi */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -44,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'] = '×יפוס'; @@ -57,6 +59,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'] = 'ססמה'; @@ -77,6 +81,7 @@ $lang['regmissing'] = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך $lang['reguexists'] = 'משתמש ×‘×©× ×–×” כבר נרש×, עמך הסליחה.'; $lang['regsuccess'] = 'ההרשמה הצליחה, המשתמש × ×¨×©× ×•×”×•×“×¢×” נשלחה בדו×״ל.'; $lang['regsuccess2'] = 'ההרשמה הצליחה, המשתמש נוצר.'; +$lang['regfail'] = '×ין ×פשרות ליצור ×ת המשתמש'; $lang['regmailfail'] = 'שליחת הודעת הדו×״ל כשלה, × × ×œ×™×¦×•×¨ קשר ×¢× ×ž× ×”×œ ×”×תר!'; $lang['regbadmail'] = 'יתכן ×›×™ כתובת הדו×״ל ××™× ×” תקפה, ×× ×œ× ×›×š הדבר ליצור קשר ×¢× ×ž× ×”×œ ×”×תר'; $lang['regbadpass'] = 'שתי הססמ×ות ×ינן זהות זו לזו, × × ×œ× ×¡×•×ª שוב.'; @@ -91,6 +96,7 @@ $lang['profdeleteuser'] = 'הסר חשבון'; $lang['profdeleted'] = 'חשבון המשתמש שלך נמחק מויקי ×–×”'; $lang['profconfdelete'] = 'ברצוני להסיר ×ת החשבון שלי מוויקי ×–×”.
    ×œ× × ×™×ª×Ÿ לבטל פעולה זו.'; $lang['profconfdeletemissing'] = 'תיבת ×ישור ×ינו מסומן'; +$lang['proffail'] = 'פרופיל המשתמש ×œ× ×¢×•×“×›×Ÿ'; $lang['pwdforget'] = 'שכחת ×ת הססמה שלך? ניתן לקבל חדשה'; $lang['resendna'] = 'הוויקי ×”×–×” ×ינו תומך בחידוש ססמה'; $lang['resendpwd'] = 'הגדר ×¡×™×¡×ž× ×—×“×©×” בעבור'; @@ -106,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למניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי ל×פס ×ת מד משך הנעילה.'; @@ -154,7 +160,6 @@ $lang['js']['media_overwrt'] = 'שכתב ×§×‘×¦×™× ×§×™×™×ž×™×'; $lang['rssfailed'] = '×ירע כשל בעת קבלת ×”×–× ×” זו:'; $lang['nothingfound'] = '×œ× × ×ž×¦×ו תוצ×ות.'; $lang['mediaselect'] = 'קובצי מדיה'; -$lang['fileupload'] = 'העל×ת קובצי מדיה'; $lang['uploadsucc'] = 'ההעל××” הושלמה בהצלחה'; $lang['uploadfail'] = '×ירעה שגי××” בעת העל×ת הקובץ. היתכן שתקלה זו נוצרה עקב הרש×ות שגיות?'; $lang['uploadwrong'] = 'ההעל××” ×œ× ×ושרה. ×§×‘×¦×™× ×‘×¡×™×•×ž×ª זו ×סורי×!'; @@ -188,6 +193,11 @@ $lang['difflink'] = 'קישור לתצוגה השוו××” זו'; $lang['diff_type'] = 'הצגת הבדלי×:'; $lang['diff_inline'] = 'ב×ותה השורה'; $lang['diff_side'] = '×–×” לצד ×–×”'; +$lang['diffprevrev'] = 'הגירסה הקודמת'; +$lang['diffnextrev'] = 'הגירסה הב××”'; +$lang['difflastrev'] = 'הגירסה ×”×חרונה'; +$lang['diffbothprevrev'] = 'גירסה קודמת בשני הצדדי×'; +$lang['diffbothnextrev'] = 'הגירסה הב××” בשני הצדדי×'; $lang['line'] = 'שורה'; $lang['breadcrumb'] = '×‘×™×§×•×¨×™× ×חרוני×:'; $lang['youarehere'] = 'זהו מיקומך:'; @@ -240,11 +250,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'] = 'ת×ריך:'; @@ -257,7 +265,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'] = '×ין כתובת המשויכת ×¢× ×”×›× ×™×¡×” שלך, × × × ×™×ª×Ÿ להוסיף ×ותך לרשימת המינויי×'; @@ -275,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'] = '×©× ×”×•×•×™×§×™'; @@ -285,8 +291,9 @@ $lang['i_problems'] = 'תכנית ההתקנה זיהתה מספר ב $lang['i_modified'] = 'משיקולי ×בטחה סקריפט ×–×” יעבוד ×ך ורק ×¢× ×”×ª×§× ×ª DokuWiki חדשה ×©×œ× ×¢×‘×¨×” כל שינוי. עליך לחלץ שנית ×ת ×”×§×‘×¦×™× ×ž×”×—×‘×™×œ×” שהורדה ×ו להיעזר בדף Dokuwiki installation instructions'; -$lang['i_funcna'] = 'פונקציית ×”-PHP‏ %s ××™× ×” זמינה. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; +$lang['i_funcna'] = 'פונקציית ×”-PHP‏ %s ××™× ×” זמינה. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; $lang['i_phpver'] = 'גרסת PHP שלך %s נמוכה מ %s הצורך. ×תה צריך לשדרג PHP שלך להתקין.'; +$lang['i_mbfuncoverload'] = 'יש לבטל ×ת mbstring.func_overload בphp.ini בכדי להריץ ×ת DokuWiki'; $lang['i_permfail'] = '%s ××™× ×” ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרש×ות תיקייה זו!'; $lang['i_confexists'] = '%s כבר ×§×™×™×'; $lang['i_writeerr'] = '×ין ×פשרות ליצור ×ת %s. × × ×œ×‘×“×•×§ ×ת הרש×ות הקובץ/תיקייה וליצור ×ת הקובץ ידנית.'; @@ -324,5 +331,23 @@ $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'; +$lang['media_edit'] = 'ערוך %s'; +$lang['media_history'] = 'היסטוריה של %s'; +$lang['media_meta_edited'] = 'metadata נערך'; +$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 פשוט'; +$lang['page_nonexist_rev'] = 'העמוד ×œ× ×§×™×™× ×‘%s. העמוד נוצר ×‘×ž×§×•× ×–×ת ב%s.'; +$lang['unable_to_parse_date'] = '×œ× × ×™×ª×Ÿ לפענח פרמטר "%s".'; +$lang['email_signature_text'] = 'הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki הזמין בכתובת +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/he/mailtext.txt b/dokuwiki/inc/lang/he/mailtext.txt index 222ee1b6..f33760e7 100644 --- a/dokuwiki/inc/lang/he/mailtext.txt +++ b/dokuwiki/inc/lang/he/mailtext.txt @@ -2,7 +2,7 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת ×”Ö¾IP‏ : @IPADDRESS@ +כתובת ×”Ö¾IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ המהדורה הישנה: @OLDPAGE@ המהדורה החדשה: @NEWPAGE@ @@ -10,8 +10,3 @@ משתמש : @USER@ @DIFF@ - --- - -דף ×–×” נוצר ×¢×´×™ ×”Ö¾DokuWiki הזמין בכתובת -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/he/password.txt b/dokuwiki/inc/lang/he/password.txt index 745c5cb5..bfa29b68 100644 --- a/dokuwiki/inc/lang/he/password.txt +++ b/dokuwiki/inc/lang/he/password.txt @@ -4,7 +4,3 @@ ×©× ×›× ×™×¡×” : @LOGIN@ ססמה : @PASSWORD@ - --- -מכתב ×–×” נוצר על ידי ×”Ö¾DokuWiki הזמין בכתובת -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/he/pwconfirm.txt b/dokuwiki/inc/lang/he/pwconfirm.txt index 7dc46c34..3fa786c0 100644 --- a/dokuwiki/inc/lang/he/pwconfirm.txt +++ b/dokuwiki/inc/lang/he/pwconfirm.txt @@ -7,7 +7,3 @@ כדי ל×שר שהבקשה ב×מת נשלחה על ידך עליך השתמש בקישור הב×. @CONFIRM@ - --- -הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki הזמין בכתובת -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/he/registermail.txt b/dokuwiki/inc/lang/he/registermail.txt index 3edca3fa..2216cb36 100644 --- a/dokuwiki/inc/lang/he/registermail.txt +++ b/dokuwiki/inc/lang/he/registermail.txt @@ -6,9 +6,5 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת IP‏ : @IPADDRESS@ +כתובת IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ - --- -הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki הזמין בכתובת -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/he/resetpwd.txt b/dokuwiki/inc/lang/he/resetpwd.txt new file mode 100644 index 00000000..bd7b5ace --- /dev/null +++ b/dokuwiki/inc/lang/he/resetpwd.txt @@ -0,0 +1,3 @@ +====== קבע סיסמה חדשה ====== + +×× × ×”×›× ×¡ סיסמה חדשה לחשבון שלך בויקי ×–×”. \ No newline at end of file diff --git a/dokuwiki/inc/lang/he/subscr_digest.txt b/dokuwiki/inc/lang/he/subscr_digest.txt index af522022..5548a708 100644 --- a/dokuwiki/inc/lang/he/subscr_digest.txt +++ b/dokuwiki/inc/lang/he/subscr_digest.txt @@ -14,7 +14,3 @@ @DOKUWIKIURL@ ו××– לבקר ב××’×£ @SUBSCRIBE@ ולבטל ×ת המינוי ×œ×©×™× ×•×™×™× ×‘×“×£ ו/×ו במרחב הש×. - --- -הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki שבכתובת -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/he/subscr_single.txt b/dokuwiki/inc/lang/he/subscr_single.txt index 78b551e2..c2ddb723 100644 --- a/dokuwiki/inc/lang/he/subscr_single.txt +++ b/dokuwiki/inc/lang/he/subscr_single.txt @@ -16,7 +16,3 @@ @DOKUWIKIURL@ ו××– לבקר בדף @SUBSCRIBE@ ולבטל ×ת המינוי לקבלת ×©×™× ×•×™×™× ×‘×“×£ ו/×ו במרחב הש×. - --- -הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki הזמין בכתובת -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/he/uploadmail.txt b/dokuwiki/inc/lang/he/uploadmail.txt index fd670796..9c06f133 100644 --- a/dokuwiki/inc/lang/he/uploadmail.txt +++ b/dokuwiki/inc/lang/he/uploadmail.txt @@ -8,7 +8,3 @@ גודל : @SIZE@ סיווג : @MIME@ משתמש : @USER@ - --- -דו×ר ×–×” נוצר על ידי דוקוויקי בתובת -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hi/jquery.ui.datepicker.js b/dokuwiki/inc/lang/hi/jquery.ui.datepicker.js index f20a900c..3b120972 100644 --- a/dokuwiki/inc/lang/hi/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/hi/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Hindi initialisation for the jQuery UI date picker plugin. */ /* Written by Michael Dawart. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['hi'] = { - closeText: 'बंद', - prevText: 'पिछला', - nextText: 'अगला', - currentText: 'आज', - monthNames: ['जनवरी ','फरवरी','मारà¥à¤š','अपà¥à¤°à¥‡à¤²','मई','जून', - 'जूलाई','अगसà¥à¤¤ ','सितमà¥à¤¬à¤°','अकà¥à¤Ÿà¥‚बर','नवमà¥à¤¬à¤°','दिसमà¥à¤¬à¤°'], - monthNamesShort: ['जन', 'फर', 'मारà¥à¤š', 'अपà¥à¤°à¥‡à¤²', 'मई', 'जून', - 'जूलाई', 'अग', 'सित', 'अकà¥à¤Ÿ', 'नव', 'दि'], - dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बà¥à¤§à¤µà¤¾à¤°', 'गà¥à¤°à¥à¤µà¤¾à¤°', 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°', 'शनिवार'], - dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बà¥à¤§', 'गà¥à¤°à¥', 'शà¥à¤•à¥à¤°', 'शनि'], - dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बà¥à¤§', 'गà¥à¤°à¥', 'शà¥à¤•à¥à¤°', 'शनि'], - weekHeader: 'हफà¥à¤¤à¤¾', - dateFormat: 'dd/mm/yy', +datepicker.regional.hi = { + 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['hi']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hi ); -return datepicker.regional['hi']; +return datepicker.regional.hi; -})); +} ) ); diff --git a/dokuwiki/inc/lang/hi/lang.php b/dokuwiki/inc/lang/hi/lang.php index 71795191..79bc0a1a 100644 --- a/dokuwiki/inc/lang/hi/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/hr/admin.txt b/dokuwiki/inc/lang/hr/admin.txt index 15a2a2b1..eaf4d787 100644 --- a/dokuwiki/inc/lang/hr/admin.txt +++ b/dokuwiki/inc/lang/hr/admin.txt @@ -1,3 +1,3 @@ ====== Administracija ====== -Slijedi spisak svih administracijskih poslova koji su trenutno dostupni. +Slijedi popis svih administracijskih poslova koji su trenutno dostupni. diff --git a/dokuwiki/inc/lang/hr/backlinks.txt b/dokuwiki/inc/lang/hr/backlinks.txt index a78b9213..05838910 100644 --- a/dokuwiki/inc/lang/hr/backlinks.txt +++ b/dokuwiki/inc/lang/hr/backlinks.txt @@ -1,3 +1,3 @@ ====== Veze na stranicu ====== -Slijedi spisak svih stanica koje imaju vezu na trenutnu stranicu. +Slijedi popis svih stranica koje imaju poveznicu na trenutnu stranicu. diff --git a/dokuwiki/inc/lang/hr/conflict.txt b/dokuwiki/inc/lang/hr/conflict.txt index e33d7020..82fdd33c 100644 --- a/dokuwiki/inc/lang/hr/conflict.txt +++ b/dokuwiki/inc/lang/hr/conflict.txt @@ -1,5 +1,5 @@ -====== Postoji novija verzija ====== +====== Postoji novija inaÄica ====== -Već postoji novija verzija dokumenta kojeg ste mijenjali. To se deÅ¡ava jer je neki drugi korisnik snimio dokument za vrijeme dok ste ga Vi mijenjali. +Već postoji novija inaÄica dokumenta kojeg ste mijenjali. To se dogaÄ‘a jer je neki drugi korisnik snimio dokument za vrijeme dok ste ga Vi mijenjali. -ProuÄite promjene koje slijede i odaberite koje želite preuzeti. Odaberite ''Snimi'' da biste snimili VaÅ¡u verziju ili ''PoniÅ¡ti'' da ostavite saÄuvanu trenutnu verziju dokumenta. +ProuÄite promjene koje slijede i odaberite koje želite preuzeti. Odaberite ''Pohrani'' da biste snimili VaÅ¡u inaÄicu ili ''PoniÅ¡ti'' da ostavite saÄuvanu trenutnu inaÄicu dokumenta. diff --git a/dokuwiki/inc/lang/hr/denied.txt b/dokuwiki/inc/lang/hr/denied.txt index 172b0fc9..0613b583 100644 --- a/dokuwiki/inc/lang/hr/denied.txt +++ b/dokuwiki/inc/lang/hr/denied.txt @@ -1,4 +1,4 @@ -====== Niste autorizirani ====== +====== Niste ovlaÅ¡teni ====== -Nemate autorizaciju. +Nemate potrebne ovlasti za nastavak. diff --git a/dokuwiki/inc/lang/hr/diff.txt b/dokuwiki/inc/lang/hr/diff.txt index ce6c8c4c..295397ac 100644 --- a/dokuwiki/inc/lang/hr/diff.txt +++ b/dokuwiki/inc/lang/hr/diff.txt @@ -1,3 +1,3 @@ ====== Razlike ====== -Slijede sve razlike izmeÄ‘u odabrane i trenutne verzije dokumenta +Slijede razlike izmeÄ‘u dviju inaÄica stranice diff --git a/dokuwiki/inc/lang/hr/draft.txt b/dokuwiki/inc/lang/hr/draft.txt index 2e6e0842..6caa26e1 100644 --- a/dokuwiki/inc/lang/hr/draft.txt +++ b/dokuwiki/inc/lang/hr/draft.txt @@ -1,4 +1,4 @@ -====== NaÄ‘ena neuspjelo ureÄ‘ivanje stranice ====== +====== PronaÄ‘en prethodni pokuÅ¡aj izmjena ====== -VaÅ¡e zadnje ureÄ‘ivanje ove stranice nije zavrÅ¡ilo uredno. DokuWiki je automatski snimio kopiju tijekom rada koju sada možete iskoristiti da nastavite ureÄ‘ivanje. Niže možete vidjeti sadržaj koji je snimljen pri vaÅ¡em zadnjem ureÄ‘ivanju. -Molimo odluÄite da li želite //vratiti// ili //obrisati// snimljeni sadržaj pri vaÅ¡em zadnjem neuspjelom ureÄ‘ivanju, ili pak želite //odustati// od ureÄ‘ivanja. +VaÅ¡e zadnje ureÄ‘ivanje ove stranice nije zavrÅ¡ilo uredno. DokuWiki je automatski pohranio kopiju tijekom rada koju sada možete iskoristiti da nastavite ureÄ‘ivanje. Niže možete vidjeti sadržaj koji je pohranjen pri vaÅ¡em zadnjem ureÄ‘ivanju. +Molimo odluÄite da li želite //vratiti// ili //obrisati// pohranjeni sadržaj pri vaÅ¡em zadnjem neuspjelom ureÄ‘ivanju, ili pak želite //odustati// od ureÄ‘ivanja. diff --git a/dokuwiki/inc/lang/hr/edit.txt b/dokuwiki/inc/lang/hr/edit.txt index bce1abee..7ed55d50 100644 --- a/dokuwiki/inc/lang/hr/edit.txt +++ b/dokuwiki/inc/lang/hr/edit.txt @@ -1 +1 @@ -Uredite stranicu i pritisnite "Snimi". Pogledajte [[wiki:syntax]] za Wiki sintaksu. Molimo izmijenite samo ako možete unaprijediti sadržaj. Ako trebate testirati ili nauÄiti kako se neÅ¡to radi, molimo koristite za to namijenjene stranice kao Å¡to je [[playground:playground|igraonica]]. +Uredite stranicu i pritisnite "Pohrani". Pogledajte [[wiki:syntax]] za Wiki sintaksu. Molimo izmijenite samo ako možete unaprijediti sadržaj. Ako trebate testirati ili nauÄiti kako se neÅ¡to radi, molimo koristite za to namijenjene stranice kao Å¡to je [[playground:playground|igraonica]]. diff --git a/dokuwiki/inc/lang/hr/editrev.txt b/dokuwiki/inc/lang/hr/editrev.txt index 911855f4..9ac656e4 100644 --- a/dokuwiki/inc/lang/hr/editrev.txt +++ b/dokuwiki/inc/lang/hr/editrev.txt @@ -1,2 +1,2 @@ -**UÄitali ste stariju verziju dokumenta!** Ukoliko je snimite - biti će kreirana nova verzija dokumenta. +**UÄitali ste stariju inaÄicu dokumenta!** Ukoliko je pohranite - biti će kreirana nova inaÄica dokumenta. ---- \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/jquery.ui.datepicker.js b/dokuwiki/inc/lang/hr/jquery.ui.datepicker.js index e8b0414b..5e218c12 100644 --- a/dokuwiki/inc/lang/hr/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/hr/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Croatian i18n for the jQuery UI date picker plugin. */ /* Written by Vjekoslav Nesek. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['hr'] = { - closeText: 'Zatvori', - prevText: '<', - nextText: '>', - currentText: 'Danas', - monthNames: ['SijeÄanj','VeljaÄa','Ožujak','Travanj','Svibanj','Lipanj', - 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], - monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', - 'Srp','Kol','Ruj','Lis','Stu','Pro'], - dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','ÄŒetvrtak','Petak','Subota'], - dayNamesShort: ['Ned','Pon','Uto','Sri','ÄŒet','Pet','Sub'], - dayNamesMin: ['Ne','Po','Ut','Sr','ÄŒe','Pe','Su'], - weekHeader: 'Tje', - dateFormat: 'dd.mm.yy.', +datepicker.regional.hr = { + closeText: "Zatvori", + prevText: "<", + nextText: ">", + currentText: "Danas", + monthNames: [ "SijeÄanj","VeljaÄa","Ožujak","Travanj","Svibanj","Lipanj", + "Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac" ], + monthNamesShort: [ "Sij","Velj","Ožu","Tra","Svi","Lip", + "Srp","Kol","Ruj","Lis","Stu","Pro" ], + dayNames: [ "Nedjelja","Ponedjeljak","Utorak","Srijeda","ÄŒetvrtak","Petak","Subota" ], + dayNamesShort: [ "Ned","Pon","Uto","Sri","ÄŒet","Pet","Sub" ], + dayNamesMin: [ "Ne","Po","Ut","Sr","ÄŒe","Pe","Su" ], + weekHeader: "Tje", + dateFormat: "dd.mm.yy.", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['hr']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hr ); -return datepicker.regional['hr']; +return datepicker.regional.hr; -})); +} ) ); diff --git a/dokuwiki/inc/lang/hr/lang.php b/dokuwiki/inc/lang/hr/lang.php index d7c20b41..ce86b945 100644 --- a/dokuwiki/inc/lang/hr/lang.php +++ b/dokuwiki/inc/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tomo Krajina * @author Branko Rihtman * @author Dražen OdobaÅ¡ić @@ -15,13 +15,13 @@ $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'; $lang['btn_create'] = 'Stvori ovu stranicu'; $lang['btn_search'] = 'Pretraži'; -$lang['btn_save'] = 'Spremi'; +$lang['btn_save'] = 'Pohrani'; $lang['btn_preview'] = 'Prikaži'; $lang['btn_top'] = 'Na vrh'; $lang['btn_newer'] = '<< noviji'; @@ -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_backlink'] = 'Povratne veze'; $lang['btn_subscribe'] = 'UreÄ‘ivanje pretplata'; $lang['btn_profile'] = 'Dopuni profil'; $lang['btn_reset'] = 'PoniÅ¡ti'; @@ -62,9 +61,9 @@ $lang['oldpass'] = 'Potvrdi trenutnu lozinku'; $lang['passchk'] = 'joÅ¡ jednom'; $lang['remember'] = 'Zapamti me'; $lang['fullname'] = 'Ime i prezime'; -$lang['email'] = 'Email'; +$lang['email'] = 'E-poÅ¡ta'; $lang['profile'] = 'KorisniÄki profil'; -$lang['badlogin'] = 'Ne ispravno korisniÄko ime ili lozinka.'; +$lang['badlogin'] = 'Neispravno korisniÄko ime ili lozinka.'; $lang['badpassconfirm'] = 'Nažalost, lozinka nije ispravna'; $lang['minoredit'] = 'Manje izmjene'; $lang['draftdate'] = 'Nacrt promjena automatski spremljen u'; @@ -73,9 +72,10 @@ $lang['searchcreatepage'] = 'Ako ne možete naći Å¡to tražite, možete ur $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['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['regsuccess2'] = 'Korisnik je uspjeÅ¡no kreiran.'; +$lang['regfail'] = 'Korisnik ne može biti kreiran.'; +$lang['regmailfail'] = 'Pojavila se greÅ¡ka prilikom slanja lozinke e-poÅ¡tom. Kontaktirajte administratora!'; +$lang['regbadmail'] = 'Adresa e-poÅ¡te nije ispravna, ukoliko ovo smatrate greÅ¡kom, kontaktirajte administratora.'; $lang['regbadpass'] = 'Unesene lozinke nisu jednake, pokuÅ¡ajte ponovno.'; $lang['regpwmail'] = 'VaÅ¡a DokuWiki lozinka'; $lang['reghere'] = 'JoÅ¡ uvijek nemate korisniÄki raÄun? Registrirajte se.'; @@ -88,20 +88,21 @@ $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.
    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'; $lang['resendpwdmissing'] = 'Ispunite sva polja.'; $lang['resendpwdnouser'] = 'Nije moguće pronaći korisnika.'; -$lang['resendpwdbadauth'] = 'Neispravan autorizacijski kod. Provjerite da li ste koristili potpun potvrdni link.'; -$lang['resendpwdconfirm'] = 'Potvrdni link je poslan e-poÅ¡tom.'; +$lang['resendpwdbadauth'] = 'Neispravan autorizacijski kod. Provjerite da li ste koristili potpunu poveznicu za potvrdu.'; +$lang['resendpwdconfirm'] = 'Poveznica za potvrdu je poslana e-poÅ¡tom.'; $lang['resendpwdsuccess'] = 'Nova lozinka je poslana e-poÅ¡tom.'; $lang['license'] = 'Osim na mjestima gdje je naznaÄeno drugaÄije, sadržaj ovog wikija je licenciran sljedećom licencom:'; $lang['licenseok'] = 'Pažnja: promjenom ovog dokumenta pristajete licencirati sadržaj sljedećom licencom: '; $lang['searchmedia'] = 'Traži naziv datoteke:'; $lang['searchmedia_in'] = 'Traži u %s'; -$lang['txt_upload'] = 'Odaberite datoteku za postavljanje:'; -$lang['txt_filename'] = 'Postaviti kao (nije obavezno):'; +$lang['txt_upload'] = 'Odaberite datoteku za uÄitavanje:'; +$lang['txt_filename'] = 'UÄitaj kao (nije obavezno):'; $lang['txt_overwrt'] = 'PrepiÅ¡i postojeću datoteku'; $lang['maxuploadsize'] = 'Moguće je uÄitati maks. %s po datoteci.'; $lang['lockedby'] = 'Trenutno zakljuÄao:'; @@ -121,10 +122,10 @@ $lang['js']['mediaclose'] = 'Zatvori'; $lang['js']['mediainsert'] = 'Umetni'; $lang['js']['mediadisplayimg'] = 'Prikaži sliku.'; $lang['js']['mediadisplaylnk'] = 'Prikaži samo poveznicu.'; -$lang['js']['mediasmall'] = 'Mala verzija.'; -$lang['js']['mediamedium'] = 'Srednja verzija.'; -$lang['js']['medialarge'] = 'Velika verzija.'; -$lang['js']['mediaoriginal'] = 'Originalna verzija.'; +$lang['js']['mediasmall'] = 'Mala inaÄica.'; +$lang['js']['mediamedium'] = 'Srednja inaÄica.'; +$lang['js']['medialarge'] = 'Velika inaÄica.'; +$lang['js']['mediaoriginal'] = 'Originalna inaÄica.'; $lang['js']['medialnk'] = 'Poveznica na stranicu s detaljima'; $lang['js']['mediadirect'] = 'Direktna poveznica na original'; $lang['js']['medianolnk'] = 'Bez poveznice'; @@ -133,11 +134,11 @@ $lang['js']['medialeft'] = 'Poravnaj sliku lijevo.'; $lang['js']['mediaright'] = 'Poravnaj sliku desno.'; $lang['js']['mediacenter'] = 'Poravnaj sliku u sredinu.'; $lang['js']['medianoalign'] = 'Bez poravnanja.'; -$lang['js']['nosmblinks'] = 'Linkovi na dijeljene Windows mape rade samo s Internet Explorerom. Link je joÅ¡ uvijek moguće kopirati i zalijepiti.'; +$lang['js']['nosmblinks'] = 'Poveznicei na dijeljene Windows mape rade samo s Internet Explorerom. Poveznicu je joÅ¡ uvijek moguće kopirati i zalijepiti.'; $lang['js']['linkwiz'] = 'ÄŒarobnjak za poveznice'; $lang['js']['linkto'] = 'Poveznica na:'; $lang['js']['del_confirm'] = 'Zbilja želite obrisati odabrane stavke?'; -$lang['js']['restore_confirm'] = 'Zaista želite vratiti ovu verziju?'; +$lang['js']['restore_confirm'] = 'Zaista želite vratiti ovu inaÄicu?'; $lang['js']['media_diff'] = 'Pogledaj razlike:'; $lang['js']['media_diff_both'] = 'Usporedni prikaz'; $lang['js']['media_diff_opacity'] = 'Sjaj kroz'; @@ -151,12 +152,11 @@ $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!'; $lang['uploadexist'] = 'Datoteka već postoji.'; -$lang['uploadbadcontent'] = 'Postavljeni sadržaj ne odgovara ekstenziji %s datoteke.'; +$lang['uploadbadcontent'] = 'UÄitani sadržaj ne odgovara ekstenziji %s datoteke.'; $lang['uploadspam'] = 'UÄitavanje je sprijeÄeno od spam crne liste.'; $lang['uploadxss'] = 'UÄitavanje je sprijeÄeno zbog mogućeg zlonamjernog sadržaja.'; $lang['uploadsize'] = 'UÄitana datoteka je prevelika (max. %s)'; @@ -171,9 +171,9 @@ $lang['mediaview'] = 'Vidi izvornu datoteku'; $lang['mediaroot'] = 'root'; $lang['mediaupload'] = 'Postavi datoteku u odabrani imenski prostor. Podimenski prostori se stvaraju dodavanjem istih kao prefiks naziva datoteke u "Postavi kao" polju, tako da se odvoje dvotoÄkama.'; $lang['mediaextchange'] = 'Nastavak datoteke promijenjen iz .%s u .%s!'; -$lang['reference'] = 'Reference za'; +$lang['reference'] = 'Poveznice za'; $lang['ref_inuse'] = 'Datoteka se ne može obrisati jer se joÅ¡ uvijek koristi u sljedećim dokumentima:'; -$lang['ref_hidden'] = 'Neke reference se nalaze na dokumentima koje nemate dozvolu Äitati'; +$lang['ref_hidden'] = 'Neke poveznice se nalaze na dokumentima koje nemate dozvolu Äitati'; $lang['hits'] = 'PronaÄ‘eno'; $lang['quickhits'] = 'PronaÄ‘eno po nazivima dokumenata'; $lang['toc'] = 'Sadržaj'; @@ -191,7 +191,7 @@ $lang['difflastrev'] = 'Zadnja izmjena'; $lang['diffbothprevrev'] = 'Starije izmjene na obje strane'; $lang['diffbothnextrev'] = 'Novije izmjene na obje strane'; $lang['line'] = 'Redak'; -$lang['breadcrumb'] = 'Putanja:'; +$lang['breadcrumb'] = 'Zadnje viÄ‘eno:'; $lang['youarehere'] = 'Vi ste ovdje:'; $lang['lastmod'] = 'Zadnja izmjena:'; $lang['by'] = 'od'; @@ -209,10 +209,10 @@ $lang['page_tools'] = 'StraniÄni alati'; $lang['skip_to_content'] = 'preskoÄi na sadržaj'; $lang['sidebar'] = 'BoÄna traka'; $lang['mail_newpage'] = 'stranica dodana:'; -$lang['mail_changed'] = 'stranica izmjenjena:'; +$lang['mail_changed'] = 'stranica izmijenjena:'; $lang['mail_subscribe_list'] = 'stranice promijenjene u imenskom prostoru:'; $lang['mail_new_user'] = 'novi korisnik:'; -$lang['mail_upload'] = 'datoteka postavljena:'; +$lang['mail_upload'] = 'datoteka uÄitana:'; $lang['changes_type'] = 'Vidi promjene od'; $lang['pages_changes'] = 'Stranice'; $lang['media_changes'] = 'Datoteke'; @@ -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'; @@ -274,10 +273,9 @@ $lang['subscr_m_receive'] = 'Primi'; $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['authtempfail'] = 'Prijava korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora, ako ovo potraje.'; $lang['i_chooselang'] = 'Izaberite vaÅ¡ jezik'; -$lang['i_installer'] = 'DokuWiki instalacija'; +$lang['i_installer'] = 'DokuWiki postavljanje'; $lang['i_wikiname'] = 'Naziv Wikija'; $lang['i_enableacl'] = 'Omogući ACL (preporuÄeno)'; $lang['i_superuser'] = 'Superkorisnik'; @@ -285,14 +283,14 @@ $lang['i_problems'] = 'Instalacija je pronaÅ¡la probleme koji su nazn $lang['i_modified'] = 'Zbog sigurnosnih razlog, ova skripta raditi će samo sa novim i neizmijenjenim DokuWiki instalacijama. Molimo ponovno prekopirajte datoteke iz preuzetoga paketa ili pogledajte detaljno Uputstvo za postavljanje DokuWiki-a'; $lang['i_funcna'] = 'PHP funkcija %s nije dostupna. Možda ju je vaÅ¡ pružatelj hostinga onemogućio iz nekog razloga?'; -$lang['i_phpver'] = 'VaÅ¡a PHP verzija %s je niža od potrebne %s. Trebate nadograditi vaÅ¡u PHP instalaciju.'; +$lang['i_phpver'] = 'VaÅ¡a PHP inaÄica %s je niža od potrebne %s. Trebate nadograditi vaÅ¡u PHP instalaciju.'; $lang['i_mbfuncoverload'] = 'mbstring.func_overload mora biti onemogućena u php.ini da bi ste pokrenuli DokuWiki.'; $lang['i_permfail'] = '%s nema dozvolu pisanja od strane DokuWiki. Trebate podesiti dozvole pristupa tom direktoriju.'; $lang['i_confexists'] = '%s već postoji'; $lang['i_writeerr'] = 'Ne može se kreirati %s. Trebate provjeriti dozvole direktorija/datoteke i kreirati dokument ruÄno.'; $lang['i_badhash'] = 'neprepoznat ili promijenjen dokuwiki.php (hash=%s)'; $lang['i_badval'] = '%s - nedozvoljena ili prazna vrijednost'; -$lang['i_success'] = 'Konfiguracija je uspjeÅ¡no zavrÅ¡ena. Sada možete obrisati install.php datoteku. Nastavite na vaÅ¡ novi DokuWiki.'; +$lang['i_success'] = 'PodeÅ¡avanje je uspjeÅ¡no zavrÅ¡eno. Sada možete obrisati install.php datoteku. Nastavite na vaÅ¡ novi DokuWiki.'; $lang['i_failure'] = 'Pojavile su se neke greÅ¡ke prilikom pisanja konfiguracijskih datoteka. Morati ćete ih ruÄno ispraviti da bi mogli koristiti vaÅ¡ novi DokuWiki.'; $lang['i_policy'] = 'Inicijalna ACL politika'; $lang['i_pol0'] = 'Otvoreni Wiki (Äitanje, pisanje, uÄitavanje za sve)'; @@ -334,9 +332,14 @@ $lang['media_history'] = 'Povijest %s'; $lang['media_meta_edited'] = 'meta podaci ureÄ‘eni'; $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_update'] = 'UÄitaj novu inaÄicu'; +$lang['media_restore'] = 'Vrati ovu inaÄicu'; +$lang['media_acl_warning'] = 'Ova lista moguće da nije kompletna zbog ograniÄenja ovlasti i skrivenih stranica.'; $lang['currentns'] = 'Tekući imeniÄki prostor'; $lang['searchresult'] = 'Rezultati pretraživanja'; $lang['plainhtml'] = 'ÄŒisti HTML'; $lang['wikimarkup'] = 'Wiki kod'; +$lang['page_nonexist_rev'] = 'Stranica ne postoji na %s. Ona je naknadno napravljena na %s.'; +$lang['unable_to_parse_date'] = 'Ne mogu analizirati parametar "%s".'; +$lang['email_signature_text'] = 'Ovaj email je poslan na +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/hr/mailtext.txt b/dokuwiki/inc/lang/hr/mailtext.txt index 911f8ead..1719fd5a 100644 --- a/dokuwiki/inc/lang/hr/mailtext.txt +++ b/dokuwiki/inc/lang/hr/mailtext.txt @@ -4,13 +4,9 @@ Datum : @DATE@ Preglednik : @BROWSER@ IP-Adresa : @IPADDRESS@ Host : @HOSTNAME@ -PrijaÅ¡nja verzija : @OLDPAGE@ -Nova verzija : @NEWPAGE@ +PrijaÅ¡nja izmjena : @OLDPAGE@ +Nova izmjena : @NEWPAGE@ Opis izmjene : @SUMMARY@ Korisnik : @USER@ @DIFF@ - - --- -Ovaj email je poslan na: @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/hr/norev.txt b/dokuwiki/inc/lang/hr/norev.txt index 231fb5ed..8c9178e4 100644 --- a/dokuwiki/inc/lang/hr/norev.txt +++ b/dokuwiki/inc/lang/hr/norev.txt @@ -1,3 +1,3 @@ -====== Nepostojeća verzija ====== +====== Nepostojeća inaÄica ====== -Tražena verzija dokumenta ne postoji. +Tražena izmjena ne postoji. Pritisnite "Stare promjene" za listu starih promjena dokumenta. diff --git a/dokuwiki/inc/lang/hr/password.txt b/dokuwiki/inc/lang/hr/password.txt index bb156c29..76cccbd2 100644 --- a/dokuwiki/inc/lang/hr/password.txt +++ b/dokuwiki/inc/lang/hr/password.txt @@ -4,6 +4,3 @@ Slijede podaci za @TITLE@ sa @DOKUWIKIURL@ KorisniÄko ime : @LOGIN@ Lozinka : @PASSWORD@ - --- -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/hr/preview.txt b/dokuwiki/inc/lang/hr/preview.txt index 89ae86a7..4289f4d9 100644 --- a/dokuwiki/inc/lang/hr/preview.txt +++ b/dokuwiki/inc/lang/hr/preview.txt @@ -1,3 +1,3 @@ ====== Pregled ====== -Ovo je pregled kako će izgledati VaÅ¡ dokument nakon Å¡to se snimi. +Ovo je pregled kako će izgledati VaÅ¡ dokument nakon Å¡to se pohrani. diff --git a/dokuwiki/inc/lang/hr/pwconfirm.txt b/dokuwiki/inc/lang/hr/pwconfirm.txt index b2d9fa3a..506e98e9 100644 --- a/dokuwiki/inc/lang/hr/pwconfirm.txt +++ b/dokuwiki/inc/lang/hr/pwconfirm.txt @@ -7,7 +7,3 @@ Ako to niste bili Vi, molimo da samo ignorirate ovu poruku. Da bi ste potvrdili da ste to ipak bili Vi, molimo slijedite link u nastavku: @CONFIRM@ - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/registermail.txt b/dokuwiki/inc/lang/hr/registermail.txt index ceaf3fb8..9c556d9e 100644 --- a/dokuwiki/inc/lang/hr/registermail.txt +++ b/dokuwiki/inc/lang/hr/registermail.txt @@ -2,13 +2,9 @@ Novi korisnik je registriran. Ovdje su detalji: KorisniÄko ime : @NEWUSER@ Puno ime : @NEWNAME@ -e-poÅ¡ta : @NEWEMAIL@ +e-poÅ¡ta : @NEWEMAIL@ -Datum : @DATE@ +Datum : @DATE@ Preglednik : @BROWSER@ -IP-Adresa : @IPADDRESS@ +IP-Adresa : @IPADDRESS@ RaÄunalo : @HOSTNAME@ - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/resendpwd.txt b/dokuwiki/inc/lang/hr/resendpwd.txt index ed25f985..d5b2e654 100644 --- a/dokuwiki/inc/lang/hr/resendpwd.txt +++ b/dokuwiki/inc/lang/hr/resendpwd.txt @@ -1,3 +1,3 @@ ====== Slanje nove lozinke ====== -Ispunite potrebne podatke da biste dobili novu lozinku za VaÅ¡ korisniÄki raÄun. Link za potvrdu biti će poslan na VaÅ¡u email adresu. +Ispunite potrebne podatke da biste dobili novu lozinku za VaÅ¡ korisniÄki raÄun. Poveznica za potvrdu biti će poslana na VaÅ¡u adresu e-poÅ¡te. diff --git a/dokuwiki/inc/lang/hr/revisions.txt b/dokuwiki/inc/lang/hr/revisions.txt index 67d4cb89..990d50b0 100644 --- a/dokuwiki/inc/lang/hr/revisions.txt +++ b/dokuwiki/inc/lang/hr/revisions.txt @@ -1,3 +1,3 @@ -====== Stare verzije ====== +====== Stare izmjene ====== -Slijedi spisak starih verzija za traženi dokument. Da bi ste se vratili na neku od njih, odaberite ju, pritisnite UreÄ‘ivanje i snimite ju. +Slijedi popis starijih izmjena za trenutni dokument. Da bi ste se vratili na neku od njih, odaberite ju, pritisnite UreÄ‘ivanje i pohranite ju. diff --git a/dokuwiki/inc/lang/hr/stopwords.txt b/dokuwiki/inc/lang/hr/stopwords.txt index bc6eb48a..5b1bb207 100644 --- a/dokuwiki/inc/lang/hr/stopwords.txt +++ b/dokuwiki/inc/lang/hr/stopwords.txt @@ -1,7 +1,7 @@ -# This is a list of words the indexer ignores, one word per line -# When you edit this file be sure to use UNIX line endings (single newline) -# No need to include words shorter than 3 chars - these are ignored anyway -# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +# Ovo je popis rijeÄi koje indekser ignorira, jedna rijeÄ po retku +# Kada mijenjate ovu datoteku budite sigurni da koristite UNIX oznaku kraja retka (jedan newline znak) +# Nije potrebno navoditi rijeÄi kraće od 3 znaka - one su svakako ignorirane +# Ova lista je bazirana na onoj naÄ‘enoj na http://www.ranks.nlstopwords/ about are and diff --git a/dokuwiki/inc/lang/hr/subscr_digest.txt b/dokuwiki/inc/lang/hr/subscr_digest.txt index fad158d7..b58836d9 100644 --- a/dokuwiki/inc/lang/hr/subscr_digest.txt +++ b/dokuwiki/inc/lang/hr/subscr_digest.txt @@ -7,13 +7,9 @@ Ovdje su promjene: @DIFF@ -------------------------------------------------------- -Stara verzija: @OLDPAGE@ -Nova verzija: @NEWPAGE@ +Stara izmjena: @OLDPAGE@ +Nova izmjena: @NEWPAGE@ Da poniÅ¡tite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite @SUBSCRIBE@ i odjavite se s promjena na stranici i/ili imeniÄkom prostoru. - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/subscr_list.txt b/dokuwiki/inc/lang/hr/subscr_list.txt index 611c7693..75a43404 100644 --- a/dokuwiki/inc/lang/hr/subscr_list.txt +++ b/dokuwiki/inc/lang/hr/subscr_list.txt @@ -9,7 +9,3 @@ Stranice u imeniÄkom prostoru @PAGE@ na @TITLE@ wiki-u su izmijenjene. Ovo su i Da poniÅ¡tite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite @SUBSCRIBE@ i odjavite se s promjena na stranici i/ili imeniÄkom prostoru. - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/subscr_single.txt b/dokuwiki/inc/lang/hr/subscr_single.txt index 18f66901..4c7b329d 100644 --- a/dokuwiki/inc/lang/hr/subscr_single.txt +++ b/dokuwiki/inc/lang/hr/subscr_single.txt @@ -10,13 +10,9 @@ Ovo su promjene: Datum : @DATE@ Korisnik: @USER@ Sažetak izmjena: @SUMMARY@ -Stara verzija: @OLDPAGE@ -Nova verzija : @NEWPAGE@ +Stara izmjena: @OLDPAGE@ +Nova izmjena : @NEWPAGE@ Da poniÅ¡tite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite @SUBSCRIBE@ i odjavite se s promjena na stranici i/ili imeniÄkom prostoru. - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hr/uploadmail.txt b/dokuwiki/inc/lang/hr/uploadmail.txt index 5b18b2ba..f4ab91ea 100644 --- a/dokuwiki/inc/lang/hr/uploadmail.txt +++ b/dokuwiki/inc/lang/hr/uploadmail.txt @@ -1,7 +1,7 @@ Datoteka je uÄitana na VaÅ¡ DokuWiki. Ovdje su detalji: Datoteka : @MEDIA@ -Stara verzija: @OLD@ +Stara izmjena: @OLD@ Datum : @DATE@ Preglednik : @BROWSER@ IP-Adresa : @IPADDRESS@ @@ -9,7 +9,3 @@ RaÄunalo : @HOSTNAME@ VeliÄina : @SIZE@ MIME Tip : @MIME@ Korisnik : @USER@ - --- -Ova poruka je generirana od strane DokuWiki dostupnog na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu-formal/lang.php b/dokuwiki/inc/lang/hu-formal/lang.php index a98bdc0d..66ff893f 100644 --- a/dokuwiki/inc/lang/hu-formal/lang.php +++ b/dokuwiki/inc/lang/hu-formal/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Marina Vladi */ $lang['encoding'] = 'utf-8'; @@ -25,3 +25,5 @@ $lang['btn_older'] = 'régebbi >>'; $lang['btn_revs'] = 'Korábbi változatok'; $lang['btn_recent'] = 'Legújabb változások'; $lang['btn_upload'] = 'Feltöltés'; +$lang['email_signature_text'] = 'Ezt a levelet a DokuWiki generálta +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/hu/admin.txt b/dokuwiki/inc/lang/hu/admin.txt index 03d29243..51b13eb5 100644 --- a/dokuwiki/inc/lang/hu/admin.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/hu/jquery.ui.datepicker.js b/dokuwiki/inc/lang/hu/jquery.ui.datepicker.js index 8ea85506..22bbe703 100644 --- a/dokuwiki/inc/lang/hu/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/hu/jquery.ui.datepicker.js @@ -1,36 +1,36 @@ /* Hungarian initialisation for the jQuery UI date picker plugin. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['hu'] = { - closeText: 'bezár', - prevText: 'vissza', - nextText: 'elÅ‘re', - currentText: 'ma', - monthNames: ['Január', 'Február', 'Március', 'Ãprilis', 'Május', 'Június', - 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], - monthNamesShort: ['Jan', 'Feb', 'Már', 'Ãpr', 'Máj', 'Jún', - 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], - dayNames: ['Vasárnap', 'HétfÅ‘', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], - dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], - dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], - weekHeader: 'Hét', - dateFormat: 'yy.mm.dd.', +datepicker.regional.hu = { + closeText: "bezár", + prevText: "vissza", + nextText: "elÅ‘re", + currentText: "ma", + monthNames: [ "Január", "Február", "Március", "Ãprilis", "Május", "Június", + "Július", "Augusztus", "Szeptember", "Október", "November", "December" ], + monthNamesShort: [ "Jan", "Feb", "Már", "Ãpr", "Máj", "Jún", + "Júl", "Aug", "Szep", "Okt", "Nov", "Dec" ], + dayNames: [ "Vasárnap", "HétfÅ‘", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" ], + dayNamesShort: [ "Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo" ], + dayNamesMin: [ "V", "H", "K", "Sze", "Cs", "P", "Szo" ], + weekHeader: "Hét", + dateFormat: "yy.mm.dd.", firstDay: 1, isRTL: false, showMonthAfterYear: true, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['hu']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hu ); -return datepicker.regional['hu']; +return datepicker.regional.hu; -})); +} ) ); diff --git a/dokuwiki/inc/lang/hu/lang.php b/dokuwiki/inc/lang/hu/lang.php index bdc78f68..cbb33748 100644 --- a/dokuwiki/inc/lang/hu/lang.php +++ b/dokuwiki/inc/lang/hu/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ziegler Gábor * @author Sandor TIHANYI * @author Siaynoq Mage @@ -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.
    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 Dokuwiki telepítési útmutatót.'; $lang['i_funcna'] = 'A %s PHP funkció nem elérhető. Esetleg a tárhelyszolgáltató letiltotta biztonsági okok miatt?'; $lang['i_phpver'] = 'A PHP %s verziója alacsonyabb, mint ami szükséges lenne: %s. 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 %s könyvtárat. Be kell állítanod ehhez a könyvtárhoz a megfelelő jogosultságokat!'; $lang['i_confexists'] = '%s már létezik.'; $lang['i_writeerr'] = 'Nem tudom ezt létrehozni: %s. Ellenőrizd a könyvtár/fájl jogosultságokat, és hozd létre az állományt kézzel.'; @@ -341,7 +340,12 @@ $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_text'] = 'Ezt a levelet a DokuWiki generálta +@DOKUWIKIURL@'; +$lang['page_nonexist_rev'] = 'A(z) %s oldal nem létezik. Később lett létrehozva a(z) %s helyen.'; +$lang['unable_to_parse_date'] = 'A "%s" paraméter feldolgozása sikertelen.'; diff --git a/dokuwiki/inc/lang/hu/mailtext.txt b/dokuwiki/inc/lang/hu/mailtext.txt index 9b0c2921..d8d0336c 100644 --- a/dokuwiki/inc/lang/hu/mailtext.txt +++ b/dokuwiki/inc/lang/hu/mailtext.txt @@ -10,7 +10,3 @@ Előző változat: @OLDPAGE@ Felhasználó: @USER@ @DIFF@ - - --- -Ezt a levelet a @DOKUWIKIURL@ DokuWiki generálta. diff --git a/dokuwiki/inc/lang/hu/mailwrap.html b/dokuwiki/inc/lang/hu/mailwrap.html index 50fc497f..d2571909 100644 --- a/dokuwiki/inc/lang/hu/mailwrap.html +++ b/dokuwiki/inc/lang/hu/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Ezt a levelet a @DOKUWIKIURL@ DokuWiki generálta. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu/password.txt b/dokuwiki/inc/lang/hu/password.txt index db24b900..49cf69fe 100644 --- a/dokuwiki/inc/lang/hu/password.txt +++ b/dokuwiki/inc/lang/hu/password.txt @@ -4,7 +4,3 @@ A felhasználói adataid a @TITLE@ wikihez, a következÅ‘ helyen: @DOKUWIKIURL@ Azonosító: @LOGIN@ Jelszó: @PASSWORD@ - --- -Ezt a levelet @DOKUWIKIURL@ DokuWiki generálta. - diff --git a/dokuwiki/inc/lang/hu/pwconfirm.txt b/dokuwiki/inc/lang/hu/pwconfirm.txt index da677d15..203dc397 100644 --- a/dokuwiki/inc/lang/hu/pwconfirm.txt +++ b/dokuwiki/inc/lang/hu/pwconfirm.txt @@ -9,6 +9,3 @@ Ha Te voltál, az új jelszó kérelmed megerÅ‘sítéséhez kattints a következÅ‘ linkre vagy másold a böngészÅ‘dbe: @CONFIRM@ - --- -Ezt a levelet a @DOKUWIKIURL@ címen lévÅ‘ DokuWiki generálta. diff --git a/dokuwiki/inc/lang/hu/registermail.txt b/dokuwiki/inc/lang/hu/registermail.txt index d45ef0d3..d37d59b8 100644 --- a/dokuwiki/inc/lang/hu/registermail.txt +++ b/dokuwiki/inc/lang/hu/registermail.txt @@ -8,6 +8,3 @@ Dátum: @DATE@ BöngészÅ‘: @BROWSER@ IP-cím : @IPADDRESS@ Gép neve: @HOSTNAME@ - --- -Ezt a levelet @DOKUWIKIURL@ DokuWiki generálta. \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu/subscr_digest.txt b/dokuwiki/inc/lang/hu/subscr_digest.txt index b00e0bba..874c934a 100644 --- a/dokuwiki/inc/lang/hu/subscr_digest.txt +++ b/dokuwiki/inc/lang/hu/subscr_digest.txt @@ -11,6 +11,3 @@ Régi verzió: @OLDPAGE@ Új verzió: @NEWPAGE@ Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@. - --- -Ezt a levelet a @DOKUWIKIURL@ DokuWiki generálta. \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu/subscr_list.txt b/dokuwiki/inc/lang/hu/subscr_list.txt index 13295ff4..c87d6dc4 100644 --- a/dokuwiki/inc/lang/hu/subscr_list.txt +++ b/dokuwiki/inc/lang/hu/subscr_list.txt @@ -8,6 +8,3 @@ A módosított oldalak a következÅ‘k: -------------------------------------------------------- Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@. - --- -Ezt a levelet a @DOKUWIKIURL@ DokuWiki generálta. \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu/subscr_single.txt b/dokuwiki/inc/lang/hu/subscr_single.txt index e28226de..8d36def9 100644 --- a/dokuwiki/inc/lang/hu/subscr_single.txt +++ b/dokuwiki/inc/lang/hu/subscr_single.txt @@ -14,7 +14,3 @@ Régi verzió: @OLDPAGE@ Új verzió: @NEWPAGE@ Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @NEWPAGE@. - --- -Ezt a levelet a DokuWiki generálta -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/hu/uploadmail.txt b/dokuwiki/inc/lang/hu/uploadmail.txt index c772ab22..62e0c2e5 100644 --- a/dokuwiki/inc/lang/hu/uploadmail.txt +++ b/dokuwiki/inc/lang/hu/uploadmail.txt @@ -8,6 +8,3 @@ Gépnév: @HOSTNAME@ Méret: @SIZE@ MIME-típus: @MIME@ Felhasználó: @USER@ - --- -Ezt a levelet @DOKUWIKIURL@ DokuWiki generálta. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/lang.php b/dokuwiki/inc/lang/ia/lang.php index a533883b..b40d99c4 100644 --- a/dokuwiki/inc/lang/ia/lang.php +++ b/dokuwiki/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'; @@ -261,3 +258,5 @@ $lang['days'] = '%d dies retro'; $lang['hours'] = '%d horas retro'; $lang['minutes'] = '%d minutas retro'; $lang['seconds'] = '%d secundas retro'; +$lang['email_signature_text'] = 'Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ia/mailtext.txt b/dokuwiki/inc/lang/ia/mailtext.txt index 14c1a3a6..ed3eb251 100644 --- a/dokuwiki/inc/lang/ia/mailtext.txt +++ b/dokuwiki/inc/lang/ia/mailtext.txt @@ -10,8 +10,3 @@ Summario: @SUMMARY@ Usator : @USER@ @DIFF@ - - --- -Iste e-mail ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/password.txt b/dokuwiki/inc/lang/ia/password.txt index 9ad93d6e..bf0e4008 100644 --- a/dokuwiki/inc/lang/ia/password.txt +++ b/dokuwiki/inc/lang/ia/password.txt @@ -4,7 +4,3 @@ Ecce tu datos de usator pro @TITLE@ a @DOKUWIKIURL@ Nomine de usator : @LOGIN@ Contrasigno : @PASSWORD@ - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/pwconfirm.txt b/dokuwiki/inc/lang/ia/pwconfirm.txt index a490f792..c8e3d002 100644 --- a/dokuwiki/inc/lang/ia/pwconfirm.txt +++ b/dokuwiki/inc/lang/ia/pwconfirm.txt @@ -8,7 +8,3 @@ Si tu non ha requestate un nove contrasigno, alora simplemente ignora iste messa Pro confirmar que le requesta realmente ha essite inviate per te, per favor usa le ligamine sequente. @CONFIRM@ - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/registermail.txt b/dokuwiki/inc/lang/ia/registermail.txt index c4e9d56b..b6fa332a 100644 --- a/dokuwiki/inc/lang/ia/registermail.txt +++ b/dokuwiki/inc/lang/ia/registermail.txt @@ -8,7 +8,3 @@ Data : @DATE@ Navigator : @BROWSER@ Adresse IP : @IPADDRESS@ Nomine host : @HOSTNAME@ - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/subscr_digest.txt b/dokuwiki/inc/lang/ia/subscr_digest.txt index ba7b92d8..b2cac2c1 100644 --- a/dokuwiki/inc/lang/ia/subscr_digest.txt +++ b/dokuwiki/inc/lang/ia/subscr_digest.txt @@ -14,7 +14,3 @@ Pro cancellar le notificationes de paginas, aperi un session al wiki a @DOKUWIKIURL@ postea visita @SUBSCRIBE@ e cancella tu subscription al modificationes in paginas e/o spatios de nomines. - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/subscr_list.txt b/dokuwiki/inc/lang/ia/subscr_list.txt index 9f93db25..01ff3507 100644 --- a/dokuwiki/inc/lang/ia/subscr_list.txt +++ b/dokuwiki/inc/lang/ia/subscr_list.txt @@ -11,7 +11,3 @@ Pro cancellar le notificationes de paginas, aperi un session al wiki a @DOKUWIKIURL@ postea visita @SUBSCRIBE@ e cancella tu subscription al modificationes in paginas e/o spatios de nomines. - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/subscr_single.txt b/dokuwiki/inc/lang/ia/subscr_single.txt index 445df197..da670ca6 100644 --- a/dokuwiki/inc/lang/ia/subscr_single.txt +++ b/dokuwiki/inc/lang/ia/subscr_single.txt @@ -17,10 +17,3 @@ Pro cancellar le notificationes de paginas, aperi un session al wiki a @DOKUWIKIURL@ postea visita @SUBSCRIBE@ e cancella tu subscription al modificationes in paginas e/o spatios de nomines. - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ia/uploadmail.txt b/dokuwiki/inc/lang/ia/uploadmail.txt index 8f120f25..c406d4b3 100644 --- a/dokuwiki/inc/lang/ia/uploadmail.txt +++ b/dokuwiki/inc/lang/ia/uploadmail.txt @@ -8,7 +8,3 @@ Nomine host: @HOSTNAME@ Dimension : @SIZE@ Typo MIME : @MIME@ Usator : @USER@ - --- -Iste message ha essite generate per DokuWiki a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/id-ni/lang.php b/dokuwiki/inc/lang/id-ni/lang.php index 1ff714f3..9bd495c6 100644 --- a/dokuwiki/inc/lang/id-ni/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/id/jquery.ui.datepicker.js b/dokuwiki/inc/lang/id/jquery.ui.datepicker.js index 0db693fa..5aef348a 100644 --- a/dokuwiki/inc/lang/id/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/id/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Indonesian initialisation for the jQuery UI date picker plugin. */ /* Written by Deden Fathurahman (dedenf@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['id'] = { - closeText: 'Tutup', - prevText: '<mundur', - nextText: 'maju>', - currentText: 'hari ini', - monthNames: ['Januari','Februari','Maret','April','Mei','Juni', - 'Juli','Agustus','September','Oktober','Nopember','Desember'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', - 'Jul','Agus','Sep','Okt','Nop','Des'], - dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], - dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], - dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], - weekHeader: 'Mg', - dateFormat: 'dd/mm/yy', +datepicker.regional.id = { + closeText: "Tutup", + prevText: "<mundur", + nextText: "maju>", + currentText: "hari ini", + monthNames: [ "Januari","Februari","Maret","April","Mei","Juni", + "Juli","Agustus","September","Oktober","Nopember","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun", + "Jul","Agus","Sep","Okt","Nop","Des" ], + dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], + dayNamesShort: [ "Min","Sen","Sel","Rab","kam","Jum","Sab" ], + dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], + weekHeader: "Mg", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['id']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.id ); -return datepicker.regional['id']; +return datepicker.regional.id; -})); +} ) ); diff --git a/dokuwiki/inc/lang/id/lang.php b/dokuwiki/inc/lang/id/lang.php index dc4ca00e..fad99299 100644 --- a/dokuwiki/inc/lang/id/lang.php +++ b/dokuwiki/inc/lang/id/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author mubaidillah * @author Irwan Butar Butar * @author Yustinus Waruwu @@ -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'] = 'Adobe Flash Plugin 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:'; @@ -327,3 +309,5 @@ $lang['media_restore'] = 'Kembalikan versi ini'; $lang['currentns'] = 'Namespace saat ini'; $lang['searchresult'] = 'Hasil Pencarian'; $lang['wikimarkup'] = 'Markah Wiki'; +$lang['email_signature_text'] = 'Email ini dibuat otomatis oleh DokuWiki +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/id/mailtext.txt b/dokuwiki/inc/lang/id/mailtext.txt index 7eede9b3..df9699ee 100644 --- a/dokuwiki/inc/lang/id/mailtext.txt +++ b/dokuwiki/inc/lang/id/mailtext.txt @@ -10,8 +10,3 @@ Edit Summary: @SUMMARY@ User : @USER@ @DIFF@ - - --- -Email ini digenerate oleh DokuWiki di -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/id/password.txt b/dokuwiki/inc/lang/id/password.txt index 2e64b8dc..285915cc 100644 --- a/dokuwiki/inc/lang/id/password.txt +++ b/dokuwiki/inc/lang/id/password.txt @@ -4,7 +4,3 @@ Berikut data Anda untuk @TITLE@ di @DOKUWIKIURL@ Login : @LOGIN@ Password : @PASSWORD@ - --- -Email ini dibuat otomatis oleh DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/id/pwconfirm.txt b/dokuwiki/inc/lang/id/pwconfirm.txt index 19131ee4..a7877926 100644 --- a/dokuwiki/inc/lang/id/pwconfirm.txt +++ b/dokuwiki/inc/lang/id/pwconfirm.txt @@ -7,7 +7,3 @@ Jika Anda tidak meminta password baru, mohon mengacuhkan email ini. Untuk mengkonfirmasi bahwa permintaan tersebut adalah benar dari Anda, silahkan gunakan link dibawah. @CONFIRM@ - --- -Email ini dibuat otomatis oleh DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/id/registermail.txt b/dokuwiki/inc/lang/id/registermail.txt index ed8c97ca..5943e35a 100644 --- a/dokuwiki/inc/lang/id/registermail.txt +++ b/dokuwiki/inc/lang/id/registermail.txt @@ -8,7 +8,3 @@ Date : @DATE@ Browser : @BROWSER@ IP-Address : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Email ini dibuat otomatis oleh DokuWIki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/id/subscr_digest.txt b/dokuwiki/inc/lang/id/subscr_digest.txt index 5e1041c0..2a5176ba 100644 --- a/dokuwiki/inc/lang/id/subscr_digest.txt +++ b/dokuwiki/inc/lang/id/subscr_digest.txt @@ -1,17 +1,14 @@ -Hei! +Hei! -Halaman @PAGE@ di wiki @TITLE@ telah disunting. +Halaman @PAGE@ di wiki @TITLE@ telah disunting. Berikut perubahannya: --------------------------------------------------------- -@DIFF@ --------------------------------------------------------- +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- -Revisi lama: @OLDPAGE@ +Revisi lama: @OLDPAGE@ -Revisi baru: @NEWPAGE@ +Revisi baru: @NEWPAGE@ Untuk menonaktifkan pemberitahuan ini, masuk ke wiki di @DOKUWIKIURL@ kemudian kunjungi @SUBSCRIBE@ dan halaman batal berlangganan dan/atau namespace yang diubah. - --- -Email ini dibuat oleh DokuWiki di @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/id/uploadmail.txt b/dokuwiki/inc/lang/id/uploadmail.txt index dc628fc1..bb5f5e81 100644 --- a/dokuwiki/inc/lang/id/uploadmail.txt +++ b/dokuwiki/inc/lang/id/uploadmail.txt @@ -8,7 +8,3 @@ Hostname : @HOSTNAME@ Size : @SIZE@ MIME Type : @MIME@ User : @USER@ - --- -Email ini dibuat otomatis oleh DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/is/jquery.ui.datepicker.js b/dokuwiki/inc/lang/is/jquery.ui.datepicker.js index 16bc79ad..b15f37ab 100644 --- a/dokuwiki/inc/lang/is/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/is/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Icelandic initialisation for the jQuery UI date picker plugin. */ /* Written by Haukur H. Thorsson (haukur@eskill.is). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['is'] = { - closeText: 'Loka', - prevText: '< Fyrri', - nextText: 'Næsti >', - currentText: 'à dag', - monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', - 'Júlí','Ãgúst','September','Október','Nóvember','Desember'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', - 'Júl','Ãgú','Sep','Okt','Nóv','Des'], - dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], - dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], - dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], - weekHeader: 'Vika', - dateFormat: 'dd.mm.yy', +datepicker.regional.is = { + closeText: "Loka", + prevText: "< Fyrri", + nextText: "Næsti >", + currentText: "à dag", + monthNames: [ "Janúar","Febrúar","Mars","Apríl","Maí","Júní", + "Júlí","Ãgúst","September","Október","Nóvember","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maí","Jún", + "Júl","Ãgú","Sep","Okt","Nóv","Des" ], + dayNames: [ + "Sunnudagur", + "Mánudagur", + "Þriðjudagur", + "Miðvikudagur", + "Fimmtudagur", + "Föstudagur", + "Laugardagur" + ], + dayNamesShort: [ "Sun","Mán","Þri","Mið","Fim","Fös","Lau" ], + dayNamesMin: [ "Su","Má","Þr","Mi","Fi","Fö","La" ], + weekHeader: "Vika", + dateFormat: "dd.mm.yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['is']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.is ); -return datepicker.regional['is']; +return datepicker.regional.is; -})); +} ) ); diff --git a/dokuwiki/inc/lang/is/lang.php b/dokuwiki/inc/lang/is/lang.php index de1a01ed..0af4c57a 100644 --- a/dokuwiki/inc/lang/is/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/it/jquery.ui.datepicker.js b/dokuwiki/inc/lang/it/jquery.ui.datepicker.js index 4d4d62f9..d67cb6c2 100644 --- a/dokuwiki/inc/lang/it/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/it/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Italian initialisation for the jQuery UI date picker plugin. */ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['it'] = { - closeText: 'Chiudi', - prevText: '<Prec', - nextText: 'Succ>', - currentText: 'Oggi', - monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', - 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], - monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', - 'Lug','Ago','Set','Ott','Nov','Dic'], - dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], - dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], - dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'], - weekHeader: 'Sm', - dateFormat: 'dd/mm/yy', +datepicker.regional.it = { + closeText: "Chiudi", + prevText: "<Prec", + nextText: "Succ>", + currentText: "Oggi", + monthNames: [ "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno", + "Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre" ], + monthNamesShort: [ "Gen","Feb","Mar","Apr","Mag","Giu", + "Lug","Ago","Set","Ott","Nov","Dic" ], + dayNames: [ "Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato" ], + dayNamesShort: [ "Dom","Lun","Mar","Mer","Gio","Ven","Sab" ], + dayNamesMin: [ "Do","Lu","Ma","Me","Gi","Ve","Sa" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['it']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.it ); -return datepicker.regional['it']; +return datepicker.regional.it; -})); +} ) ); diff --git a/dokuwiki/inc/lang/it/lang.php b/dokuwiki/inc/lang/it/lang.php index 9cde9d28..3792c615 100644 --- a/dokuwiki/inc/lang/it/lang.php +++ b/dokuwiki/inc/lang/it/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Giorgio Vecchiocattivi * @author Roberto Bolli [http://www.rbnet.it/] * @author Silvia Sargentoni @@ -20,6 +20,10 @@ * @author Mirko * @author Francesco * @author Fabio + * @author Torpedo + * @author Maurizio + * @author Riccardo + * @author Paolo */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -51,7 +55,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'; @@ -81,11 +84,12 @@ $lang['badpassconfirm'] = 'La password è errata'; $lang['minoredit'] = 'Modifiche minori'; $lang['draftdate'] = 'Bozza salvata in automatico il'; $lang['nosecedit'] = 'La pagina è stata modificata nel frattempo; è impossibile modificare solo la sezione scelta, quindi è stata caricata la pagina intera.'; -$lang['searchcreatepage'] = "Se non hai trovato quello che cercavi, puoi creare una nuova pagina con questo titolo usando il pulsante ''Crea questa pagina''."; +$lang['searchcreatepage'] = 'Se non hai trovato quello che cercavi, puoi creare una nuova pagina con questo titolo usando il pulsante \'\'Crea questa pagina\'\'.'; $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.'; @@ -100,6 +104,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.
    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'; @@ -152,6 +157,7 @@ $lang['js']['del_confirm'] = 'Eliminare veramente questa voce?'; $lang['js']['restore_confirm'] = 'Vuoi davvero ripristinare questa versione?'; $lang['js']['media_diff'] = 'Guarda le differenze:'; $lang['js']['media_diff_both'] = 'Fianco a Fianco'; +$lang['js']['media_diff_opacity'] = 'Trasparire'; $lang['js']['media_diff_portions'] = 'rubare'; $lang['js']['media_select'] = 'Seleziona files..'; $lang['js']['media_upload_btn'] = 'Upload'; @@ -162,7 +168,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'; @@ -199,6 +204,8 @@ $lang['diff_side'] = 'Fianco a Fianco'; $lang['diffprevrev'] = 'Revisione precedente'; $lang['diffnextrev'] = 'Prossima revisione'; $lang['difflastrev'] = 'Ultima revisione'; +$lang['diffbothprevrev'] = 'Entrambe le parti precedenti la revisione'; +$lang['diffbothnextrev'] = 'Entrambe le parti successive la revisione'; $lang['line'] = 'Linea'; $lang['breadcrumb'] = 'Traccia:'; $lang['youarehere'] = 'Ti trovi qui:'; @@ -251,7 +258,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'; @@ -284,7 +290,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'; @@ -296,6 +301,7 @@ Prova a estrarre di nuovo i file dal pacchetto scaricato oppure consulta le istruzioni per l\'installazione di Dokuwiki'; $lang['i_funcna'] = 'La funzione PHP %s non è disponibile. Forse è stata disabilitata dal tuo provider per qualche motivo?'; $lang['i_phpver'] = 'La versione di PHP %s è inferiore a quella richiesta %s. Devi aggiornare l\'installazione di PHP.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload deve essere disabilitato in php.ini per eseguire DokuWiki.'; $lang['i_permfail'] = 'DokuWiki non può scrivere %s. E\' necessario correggere i permessi per questa directory!'; $lang['i_confexists'] = '%s esiste già'; $lang['i_writeerr'] = 'Impossibile creare %s. E\' necessario verificare i permessi della directory o del file oppure creare il file manualmente.'; @@ -345,6 +351,12 @@ $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 %s.'; +$lang['unable_to_parse_date'] = 'Impossibile eseguire l\'analisi al parametro "%s".'; +$lang['email_signature_text'] = 'Questa email è stata generata dal DokuWiki all\'indirizzo +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/it/mailtext.txt b/dokuwiki/inc/lang/it/mailtext.txt index 3a326961..3374d37d 100644 --- a/dokuwiki/inc/lang/it/mailtext.txt +++ b/dokuwiki/inc/lang/it/mailtext.txt @@ -10,8 +10,3 @@ Oggetto della modifica : @SUMMARY@ Utente : @USER@ @DIFF@ - - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/it/mailwrap.html b/dokuwiki/inc/lang/it/mailwrap.html index 24a2bc8a..d2571909 100644 --- a/dokuwiki/inc/lang/it/mailwrap.html +++ b/dokuwiki/inc/lang/it/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Questa email è stata generata da DokuWiki presso @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/it/password.txt b/dokuwiki/inc/lang/it/password.txt index 670d5ae4..f7ca9e98 100644 --- a/dokuwiki/inc/lang/it/password.txt +++ b/dokuwiki/inc/lang/it/password.txt @@ -4,7 +4,3 @@ Questi sono i tuoi dati di accesso per @TITLE@ su @DOKUWIKIURL@ Nome utente : @LOGIN@ Password : @PASSWORD@ - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/it/pwconfirm.txt b/dokuwiki/inc/lang/it/pwconfirm.txt index 8a594ded..3eb36fb6 100644 --- a/dokuwiki/inc/lang/it/pwconfirm.txt +++ b/dokuwiki/inc/lang/it/pwconfirm.txt @@ -9,7 +9,3 @@ Per confermare che la richiesta è stata realmente inviata da te usa il seguente collegamento. @CONFIRM@ - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/it/registermail.txt b/dokuwiki/inc/lang/it/registermail.txt index 30a6fed4..77454cd3 100644 --- a/dokuwiki/inc/lang/it/registermail.txt +++ b/dokuwiki/inc/lang/it/registermail.txt @@ -8,7 +8,3 @@ Data : @DATE@ Browser : @BROWSER@ Indirizzo IP : @IPADDRESS@ Nome host : @HOSTNAME@ - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/it/subscr_digest.txt b/dokuwiki/inc/lang/it/subscr_digest.txt index a1912870..29fd4bcc 100644 --- a/dokuwiki/inc/lang/it/subscr_digest.txt +++ b/dokuwiki/inc/lang/it/subscr_digest.txt @@ -10,11 +10,7 @@ Queste sono le modifiche: Vecchia revisione: @OLDPAGE@ Nuova revisione: @NEWPAGE@ -Per non ricevere più queste notifiche collegati al +Per non ricevere più queste notifiche collegati al wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ -e rimuovi la sottoscrizione alle modifiche delle +e rimuovi la sottoscrizione alle modifiche delle pagine e/o categorie. - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/it/subscr_list.txt b/dokuwiki/inc/lang/it/subscr_list.txt index 8eb7acd3..f8703885 100644 --- a/dokuwiki/inc/lang/it/subscr_list.txt +++ b/dokuwiki/inc/lang/it/subscr_list.txt @@ -8,11 +8,7 @@ Queste sono le pagine modificate: @DIFF@ -------------------------------------------------------- -Per non ricevere più queste notifiche collegati al +Per non ricevere più queste notifiche collegati al wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ -e rimuovi la sottoscrizione alle modifiche delle +e rimuovi la sottoscrizione alle modifiche delle pagine e/o categorie. - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/it/subscr_single.txt b/dokuwiki/inc/lang/it/subscr_single.txt index a8649a4e..421a156b 100644 --- a/dokuwiki/inc/lang/it/subscr_single.txt +++ b/dokuwiki/inc/lang/it/subscr_single.txt @@ -13,12 +13,8 @@ Sommario modifica: @SUMMARY@ Vecchia revisione: @OLDPAGE@ Nuova revisione: @NEWPAGE@ -Per non ricevere più queste notifiche, collegati al +Per non ricevere più queste notifiche, collegati al wiki all'indirizzo @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ -e rimuovi la sottoscrizione alle modifiche della +e rimuovi la sottoscrizione alle modifiche della pagina o categoria. - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/it/uploadmail.txt b/dokuwiki/inc/lang/it/uploadmail.txt index da3dacd3..4dd7cd46 100644 --- a/dokuwiki/inc/lang/it/uploadmail.txt +++ b/dokuwiki/inc/lang/it/uploadmail.txt @@ -8,7 +8,3 @@ Hostname : @HOSTNAME@ Dimensione : @SIZE@ Tipo MIME : @MIME@ Utente : @USER@ - --- -Questa email è stata generata dal DokuWiki all'indirizzo -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ja/index.txt b/dokuwiki/inc/lang/ja/index.txt index b0447899..eb168d14 100644 --- a/dokuwiki/inc/lang/ja/index.txt +++ b/dokuwiki/inc/lang/ja/index.txt @@ -1,4 +1,4 @@ ====== サイトマップ ====== -[[doku>namespaces|åå‰ç©ºé–“]] ã«åŸºã¥ãã€å…¨ã¦ã®æ–‡æ›¸ã®ç´¢å¼•ã§ã™ã€‚ +å…¨ã¦ã®é–²è¦§å¯èƒ½ãƒšãƒ¼ã‚¸ã‚’[[doku>ja:namespaces|åå‰ç©ºé–“]]é †ã«ä¸¦ã¹ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã§ã™ã€‚ diff --git a/dokuwiki/inc/lang/ja/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ja/jquery.ui.datepicker.js index 381f41b5..52b10583 100644 --- a/dokuwiki/inc/lang/ja/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ja/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Japanese initialisation for the jQuery UI date picker plugin. */ /* Written by Kentaro SATO (kentaro@ranvis.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ja'] = { - closeText: 'é–‰ã˜ã‚‹', - prevText: '<å‰', - nextText: '次>', - currentText: '今日', - monthNames: ['1月','2月','3月','4月','5月','6月', - '7月','8月','9月','10月','11月','12月'], - monthNamesShort: ['1月','2月','3月','4月','5月','6月', - '7月','8月','9月','10月','11月','12月'], - dayNames: ['日曜日','月曜日','ç«æ›œæ—¥','水曜日','木曜日','金曜日','土曜日'], - dayNamesShort: ['æ—¥','月','ç«','æ°´','木','金','土'], - dayNamesMin: ['æ—¥','月','ç«','æ°´','木','金','土'], - weekHeader: '週', - dateFormat: 'yy/mm/dd', +datepicker.regional.ja = { + closeText: "é–‰ã˜ã‚‹", + prevText: "<å‰", + nextText: "次>", + currentText: "今日", + monthNames: [ "1月","2月","3月","4月","5月","6月", + "7月","8月","9月","10月","11月","12月" ], + monthNamesShort: [ "1月","2月","3月","4月","5月","6月", + "7月","8月","9月","10月","11月","12月" ], + dayNames: [ "日曜日","月曜日","ç«æ›œæ—¥","水曜日","木曜日","金曜日","土曜日" ], + dayNamesShort: [ "æ—¥","月","ç«","æ°´","木","金","土" ], + dayNamesMin: [ "æ—¥","月","ç«","æ°´","木","金","土" ], + weekHeader: "週", + dateFormat: "yy/mm/dd", firstDay: 0, isRTL: false, showMonthAfterYear: true, - yearSuffix: 'å¹´'}; -datepicker.setDefaults(datepicker.regional['ja']); + yearSuffix: "å¹´" }; +datepicker.setDefaults( datepicker.regional.ja ); -return datepicker.regional['ja']; +return datepicker.regional.ja; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ja/lang.php b/dokuwiki/inc/lang/ja/lang.php index 30068d78..3f2101d1 100644 --- a/dokuwiki/inc/lang/ja/lang.php +++ b/dokuwiki/inc/lang/ja/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Yuji Takenaka * @author Ikuo Obataya * @author Daniel Dupriest @@ -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ã‹ã‚‰è‡ªåˆ†ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæŠ¹æ¶ˆã‚’希望ã—ã¾ã™ã€‚
    ã“ã®æ“作ã¯å–消ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。'; $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,7 +338,12 @@ $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'] = 'Wikiマークアップ'; +$lang['page_nonexist_rev'] = '指定ページ %s ã¯ã‚りã¾ã›ã‚“。ã“ã®ãƒªãƒ³ã‚¯ %s ã‹ã‚‰ä½œæˆã§ãã¾ã™ã€‚'; +$lang['unable_to_parse_date'] = 'パラメータ "%s" を処ç†ã§ãã¾ã›ã‚“。'; +$lang['email_signature_text'] = 'ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ja/mailtext.txt b/dokuwiki/inc/lang/ja/mailtext.txt index 09688cbb..4bad3d94 100644 --- a/dokuwiki/inc/lang/ja/mailtext.txt +++ b/dokuwiki/inc/lang/ja/mailtext.txt @@ -10,8 +10,3 @@ IPアドレス : @IPADDRESS@ ユーザーå : @USER@ @DIFF@ - - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ja/mailwrap.html b/dokuwiki/inc/lang/ja/mailwrap.html index a9dd4148..d2571909 100644 --- a/dokuwiki/inc/lang/ja/mailwrap.html +++ b/dokuwiki/inc/lang/ja/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã® DokuWiki ã«ã‚ˆã£ã¦ç”Ÿæˆã•れã¾ã—ãŸï¼š
    @DOKUWIKIURL@.
    +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ja/password.txt b/dokuwiki/inc/lang/ja/password.txt index c00fe0bc..fa11b104 100644 --- a/dokuwiki/inc/lang/ja/password.txt +++ b/dokuwiki/inc/lang/ja/password.txt @@ -4,7 +4,3 @@ ユーザーå : @LOGIN@ パスワード : @PASSWORD@ - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ja/pwconfirm.txt b/dokuwiki/inc/lang/ja/pwconfirm.txt index 98ccfcde..c53b784f 100644 --- a/dokuwiki/inc/lang/ja/pwconfirm.txt +++ b/dokuwiki/inc/lang/ja/pwconfirm.txt @@ -7,7 +7,3 @@ ã“ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’行ã£ãŸæœ¬äººã§ã‚れã°ã€ä»¥ä¸‹ã®ãƒªãƒ³ã‚¯ã‹ã‚‰ä½œæ¥­ã‚’完了ã•ã›ã¦ãã ã•ã„。 @CONFIRM@ - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ja/register.txt b/dokuwiki/inc/lang/ja/register.txt index b242d1e8..0cd27869 100644 --- a/dokuwiki/inc/lang/ja/register.txt +++ b/dokuwiki/inc/lang/ja/register.txt @@ -1,4 +1,4 @@ ====== æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ² ====== -ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’行ã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…報を全ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå­˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•れã¾ã™ã®ã§ã€ å¿…ãš**有効ãª**メールアドレスを入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒ­ã‚°ã‚¤ãƒ³å㯠[[doku>pagename|pagename]] ã«æº–æ‹ ã—ã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 +ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’行ã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…報を全ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå­˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•れã¾ã™ã®ã§ã€ å¿…ãš**有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹**を入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒ­ã‚°ã‚¤ãƒ³åã¯[[doku>ja:pagename|ページå]]ã«æº–æ‹ ã—ã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 diff --git a/dokuwiki/inc/lang/ja/registermail.txt b/dokuwiki/inc/lang/ja/registermail.txt index 2b272de4..ad5241a0 100644 --- a/dokuwiki/inc/lang/ja/registermail.txt +++ b/dokuwiki/inc/lang/ja/registermail.txt @@ -8,7 +8,3 @@ ブラウザ : @BROWSER@ IPアドレス : @IPADDRESS@ ホストå : @HOSTNAME@ - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ja/subscr_digest.txt b/dokuwiki/inc/lang/ja/subscr_digest.txt index b6c91a3a..026a2fe8 100644 --- a/dokuwiki/inc/lang/ja/subscr_digest.txt +++ b/dokuwiki/inc/lang/ja/subscr_digest.txt @@ -15,7 +15,3 @@ ãã®å¾Œã€ @SUBSCRIBE@ ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。 - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã® DokuWiki ã«ã‚ˆã£ã¦ç”Ÿæˆã•れã¾ã—ãŸï¼š -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ja/subscr_list.txt b/dokuwiki/inc/lang/ja/subscr_list.txt index 9869fb81..dbe37c7f 100644 --- a/dokuwiki/inc/lang/ja/subscr_list.txt +++ b/dokuwiki/inc/lang/ja/subscr_list.txt @@ -13,7 +13,3 @@ ãã®å¾Œã€ @SUBSCRIBE@ ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。 - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã® DokuWiki ã«ã‚ˆã£ã¦ç”Ÿæˆã•れã¾ã—ãŸï¼š -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ja/subscr_single.txt b/dokuwiki/inc/lang/ja/subscr_single.txt index 4620f73d..4dac31e0 100644 --- a/dokuwiki/inc/lang/ja/subscr_single.txt +++ b/dokuwiki/inc/lang/ja/subscr_single.txt @@ -18,7 +18,3 @@ ãã®å¾Œã€ @SUBSCRIBE@ ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。 - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã® DokuWiki ã«ã‚ˆã£ã¦ç”Ÿæˆã•れã¾ã—ãŸï¼š -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ja/uploadmail.txt b/dokuwiki/inc/lang/ja/uploadmail.txt index 53f30db6..8734c91d 100644 --- a/dokuwiki/inc/lang/ja/uploadmail.txt +++ b/dokuwiki/inc/lang/ja/uploadmail.txt @@ -8,7 +8,3 @@ IPアドレス : @IPADDRESS@ サイズ : @SIZE@ MIMEタイプ : @MIME@ ユーザーå : @USER@ - --- -ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ka/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ka/jquery.ui.datepicker.js new file mode 100644 index 00000000..1f596cb3 --- /dev/null +++ b/dokuwiki/inc/lang/ka/jquery.ui.datepicker.js @@ -0,0 +1,48 @@ +/* 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( [ "../widgets/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/dokuwiki/inc/lang/ka/lang.php b/dokuwiki/inc/lang/ka/lang.php index 28ca11e4..72594efe 100644 --- a/dokuwiki/inc/lang/ka/lang.php +++ b/dokuwiki/inc/lang/ka/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Luka Lejava */ $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'] = 'სáƒáƒ­áƒ˜áƒ áƒáƒ Adobe Flash Plugin'; $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 Dokuwiki installation instructions'; -$lang['i_funcna'] = 'PHP function %s is not available. Maybe your hosting provider disabled it for some reason?'; -$lang['i_phpver'] = 'Your PHP version %s is lower than the needed %s. You need to upgrade your PHP install.'; -$lang['i_permfail'] = '%s is not writable by DokuWiki. You need to fix the permission settings of this directory!'; -$lang['i_confexists'] = '%s already exists'; -$lang['i_writeerr'] = 'Unable to create %s. You will need to check directory/file permissions and create the file manually.'; -$lang['i_badhash'] = 'unrecognised or modified dokuwiki.php (hash=%s)'; -$lang['i_badval'] = '%s - 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 your new DokuWiki.'; -$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 %s namespace. You can also view the recent changes of the whole wiki.'; $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/dokuwiki/inc/lang/kk/jquery.ui.datepicker.js b/dokuwiki/inc/lang/kk/jquery.ui.datepicker.js index e85fd835..fa0121f8 100644 --- a/dokuwiki/inc/lang/kk/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/kk/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['kk'] = { - closeText: 'Жабу', - prevText: '<Ðлдыңғы', - nextText: 'КелеÑÑ–>', - currentText: 'Бүгін', - monthNames: ['Қаңтар','Ðқпан','Ðаурыз','Сәуір','Мамыр','МауÑым', - 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','ЖелтоқÑан'], - monthNamesShort: ['Қаң','Ðқп','Ðау','Сәу','Мам','Мау', - 'Шіл','Там','Қыр','Қаз','Қар','Жел'], - dayNames: ['ЖекÑенбі','ДүйÑенбі','СейÑенбі','СәрÑенбі','БейÑенбі','Жұма','Сенбі'], - dayNamesShort: ['жкÑ','дÑн','ÑÑн','ÑÑ€Ñ','бÑн','жма','Ñнб'], - dayNamesMin: ['Жк','ДÑ','СÑ','Ср','БÑ','Жм','Сн'], - weekHeader: 'Ðе', - dateFormat: 'dd.mm.yy', +datepicker.regional.kk = { + 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['kk']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.kk ); -return datepicker.regional['kk']; +return datepicker.regional.kk; -})); +} ) ); diff --git a/dokuwiki/inc/lang/kk/lang.php b/dokuwiki/inc/lang/kk/lang.php index 74afa24e..cb224d9a 100644 --- a/dokuwiki/inc/lang/kk/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/km/jquery.ui.datepicker.js b/dokuwiki/inc/lang/km/jquery.ui.datepicker.js index 599a4771..d8a4596b 100644 --- a/dokuwiki/inc/lang/km/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/km/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Khmer initialisation for the jQuery calendar extension. */ /* Written by Chandara Om (chandara.teacher@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['km'] = { - closeText: 'ធ្វើ​រួច', - prevText: 'មុន', - nextText: 'បន្ទាប់', - currentText: 'ážáŸ’ងៃ​នáŸáŸ‡', - monthNames: ['មករា','កុម្ភៈ','មីនា','មáŸážŸáž¶','ឧសភា','មិážáž»áž“áž¶', - 'កក្កដា','សីហា','កញ្ញា','ážáž»áž›áž¶','វិច្ឆិកា','ធ្នូ'], - monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មáŸážŸáž¶','ឧសភា','មិážáž»áž“áž¶', - 'កក្កដា','សីហា','កញ្ញា','ážáž»áž›áž¶','វិច្ឆិកា','ធ្នូ'], - dayNames: ['អាទិážáŸ’áž™', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បážáž·áŸ', 'សុក្រ', 'សៅរáŸ'], - dayNamesShort: ['អា', 'áž…', 'អ', 'áž–áž»', 'ព្រហ', 'សុ', 'សៅ'], - dayNamesMin: ['អា', 'áž…', 'អ', 'áž–áž»', 'ព្រហ', 'សុ', 'សៅ'], - weekHeader: 'សប្ដាហáŸ', - dateFormat: 'dd-mm-yy', +datepicker.regional.km = { + 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['km']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.km ); -return datepicker.regional['km']; +return datepicker.regional.km; -})); +} ) ); diff --git a/dokuwiki/inc/lang/km/lang.php b/dokuwiki/inc/lang/km/lang.php index 749fa419..2dbc0d38 100644 --- a/dokuwiki/inc/lang/km/lang.php +++ b/dokuwiki/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'] = '%s '; $lang['i_permfail'] = '%s មិនអាចសាស'; $lang['i_confexists'] = '%s មានហាយ'; $lang['i_writeerr'] = 'មិនអាចបណ្កើ%s។ អ្នកážáŸ’រវការពិនិážáŸ’យអធិក្រឹážáž·ážšáž”ស់ážážáž“ឹងឯកសារ។'; -$lang['i_badhash'] = '(hash=%s)'; -$lang['i_badval'] = '%s—'; $lang['i_success'] = ''; $lang['i_failure'] = 'ពលសាសារ'; $lang['i_policy'] = 'បញ្ជីអនុញ្ញážáž•្ដើម'; @@ -204,3 +198,5 @@ $lang['i_pol2'] = 'វីគីបិទជិáž'; $lang['i_retry'] = 'ម្ážáž„ទៀáž'; //Setup VIM: ex: et ts=2 : +$lang['email_signature_text'] = 'អ៊ីមáŸáž›áž“áŸáŸ‡áž”ន្ចáŸáž¢áž–ីឌោគូវីគីនៅ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/km/password.txt b/dokuwiki/inc/lang/km/password.txt index a3495e7a..8cdfcd81 100644 --- a/dokuwiki/inc/lang/km/password.txt +++ b/dokuwiki/inc/lang/km/password.txt @@ -4,7 +4,3 @@ នាមបង្រើ៖ @LOGIN@ ពាក្សសម្ងាážáŸ– @PASSWORD@ - --- -អ៊ីមáŸáž›áž“áŸáŸ‡áž”ន្ចáŸáž¢áž–ីឌោគូវីគីនៅ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/km/pwconfirm.txt b/dokuwiki/inc/lang/km/pwconfirm.txt index 7c6a3ac9..34051aa4 100644 --- a/dokuwiki/inc/lang/km/pwconfirm.txt +++ b/dokuwiki/inc/lang/km/pwconfirm.txt @@ -7,7 +7,3 @@ សុំអះអាងដែលសំណើនáŸáŸ‡ážŠáŸ„យទៅážáž¶áž˜ážáŸ’សែ @CONFIRM@ - --- -អ៊ីមáŸáž›áž“áŸáŸ‡áž”ង្កើážáž–ីឌក្គូវីគីនៅ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ko/backlinks.txt b/dokuwiki/inc/lang/ko/backlinks.txt index 6a6ad48a..457974d8 100644 --- a/dokuwiki/inc/lang/ko/backlinks.txt +++ b/dokuwiki/inc/lang/ko/backlinks.txt @@ -1,3 +1,3 @@ -====== ë°±ë§í¬ ====== +====== ì—­ë§í¬ ====== 현재 문서를 가리키는 ë§í¬ê°€ 있는 문서 목ë¡ìž…니다. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/denied.txt b/dokuwiki/inc/lang/ko/denied.txt index a4b94be6..bf82fbd3 100644 --- a/dokuwiki/inc/lang/ko/denied.txt +++ b/dokuwiki/inc/lang/ko/denied.txt @@ -1,4 +1,3 @@ ====== 권한 ê±°ì ˆ ====== -죄송하지만 계ì†í•  수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. - +죄송하지만 계ì†í•  수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/draft.txt b/dokuwiki/inc/lang/ko/draft.txt index 7e700f72..bb6dc8c0 100644 --- a/dokuwiki/inc/lang/ko/draft.txt +++ b/dokuwiki/inc/lang/ko/draft.txt @@ -2,4 +2,4 @@ ì´ ë¬¸ì„œì˜ ë§ˆì§€ë§‰ 편집 ì„¸ì…˜ì€ ì˜¬ë°”ë¥´ê²Œ ë나지 않았습니다. ë„쿠위키는 작업 ë„중 ìžë™ìœ¼ë¡œ ì €ìž¥ëœ ì´ˆì•ˆì„ ì‚¬ìš©í•´ íŽ¸ì§‘ì„ ê³„ì† í•  수 있습니다. 마지막 세션 ë™ì•ˆ ì €ìž¥ëœ ì´ˆì•ˆì„ ì•„ëž˜ì—서 ë³¼ 수 있습니다. -비정ìƒì ìœ¼ë¡œ ë난 편집 ì„¸ì…˜ì„ **ë˜ëŒë¦´**ì§€ 여부를 결정하고, ìžë™ìœ¼ë¡œ 저장ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚­ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file +비정ìƒì ìœ¼ë¡œ ë난 편집 ì„¸ì…˜ì„ **복구**í• ì§€ 여부를 결정하고, ìžë™ìœ¼ë¡œ 저장ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚­ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/edit.txt b/dokuwiki/inc/lang/ko/edit.txt index 8da90266..70b24ac7 100644 --- a/dokuwiki/inc/lang/ko/edit.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/ko/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ko/jquery.ui.datepicker.js index 991b5727..8879a995 100644 --- a/dokuwiki/inc/lang/ko/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ko/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Korean initialisation for the jQuery calendar extension. */ -/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ -(function( factory ) { +/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie and Myeongjin Lee. */ +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ko'] = { - closeText: '닫기', - prevText: 'ì´ì „달', - nextText: '다ìŒë‹¬', - currentText: '오늘', - monthNames: ['1ì›”','2ì›”','3ì›”','4ì›”','5ì›”','6ì›”', - '7ì›”','8ì›”','9ì›”','10ì›”','11ì›”','12ì›”'], - monthNamesShort: ['1ì›”','2ì›”','3ì›”','4ì›”','5ì›”','6ì›”', - '7ì›”','8ì›”','9ì›”','10ì›”','11ì›”','12ì›”'], - dayNames: ['ì¼ìš”ì¼','월요ì¼','화요ì¼','수요ì¼','목요ì¼','금요ì¼','토요ì¼'], - dayNamesShort: ['ì¼','ì›”','í™”','수','목','금','토'], - dayNamesMin: ['ì¼','ì›”','í™”','수','목','금','토'], - weekHeader: 'Wk', - dateFormat: 'yy-mm-dd', +datepicker.regional.ko = { + closeText: "닫기", + prevText: "ì´ì „달", + nextText: "다ìŒë‹¬", + currentText: "오늘", + monthNames: [ "1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”", + "7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”" ], + monthNamesShort: [ "1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”", + "7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”" ], + dayNames: [ "ì¼ìš”ì¼","월요ì¼","화요ì¼","수요ì¼","목요ì¼","금요ì¼","토요ì¼" ], + dayNamesShort: [ "ì¼","ì›”","í™”","수","목","금","토" ], + dayNamesMin: [ "ì¼","ì›”","í™”","수","목","금","토" ], + weekHeader: "주", + dateFormat: "yy. m. d.", firstDay: 0, isRTL: false, showMonthAfterYear: true, - yearSuffix: 'ë…„'}; -datepicker.setDefaults(datepicker.regional['ko']); + yearSuffix: "ë…„" }; +datepicker.setDefaults( datepicker.regional.ko ); -return datepicker.regional['ko']; +return datepicker.regional.ko; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ko/lang.php b/dokuwiki/inc/lang/ko/lang.php index 3cedf021..73b14e37 100644 --- a/dokuwiki/inc/lang/ko/lang.php +++ b/dokuwiki/inc/lang/ko/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Hyun Kim * @author jk Lee * @author dongnak@gmail.com @@ -13,6 +13,8 @@ * @author Gerrit Uitslag * @author Garam * @author Young gon Cha + * @author hyeonsoft + * @author Erial */ $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'] = '등ë¡'; @@ -74,25 +75,27 @@ $lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못ë˜ì—ˆ $lang['minoredit'] = '사소한 바뀜'; $lang['draftdate'] = '초안 ìžë™ 저장 시간'; $lang['nosecedit'] = '한 ë™ì•ˆ 문서가 바뀌었으며, 문단 ì •ë³´ê°€ 오래ë˜ì–´ 문서 전체를 대신 열었습니다.'; -$lang['searchcreatepage'] = "만약 ì›í•˜ëŠ” 문서를 찾지 못했다면, ''문서 만들기''나 ''문서 편집''ì„ ì‚¬ìš©í•´ 검색어와 ê°™ì€ ì´ë¦„ì˜ ë¬¸ì„œë¥¼ 만들거나 편집할 수 있습니다."; +$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'] = 'ì´ ìœ„í‚¤ì—서 ë‚´ ê³„ì •ì„ ì œê±°í•˜ê³  싶습니다.
    ì´ í–‰ë™ì€ ë˜ëŒë¦´ 수 없습니다.'; $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'] = 'ê·¸ë¦¼ì„ ë³´ì—¬ì¤ë‹ˆë‹¤.'; @@ -137,7 +140,7 @@ $lang['js']['medialeft'] = '왼쪽으로 그림 배치'; $lang['js']['mediaright'] = '오른쪽으로 그림 배치'; $lang['js']['mediacenter'] = '가운ë°ìœ¼ë¡œ 그림 배치'; $lang['js']['medianoalign'] = '배치하지 않ìŒ'; -$lang['js']['nosmblinks'] = '윈ë„ìš° 공유 파ì¼ê³¼ì˜ ì—°ê²°ì€ ë§ˆì´í¬ë¡œì†Œí”„트 ì¸í„°ë„· ìµìŠ¤í”Œë¡œëŸ¬ì—서만 ë™ìž‘합니다.\n그러나 ë§í¬ë¥¼ 복사하거나 붙여넣기를 í•  수 있습니다.'; +$lang['js']['nosmblinks'] = 'Windows 공유 파ì¼ê³¼ì˜ ì—°ê²°ì€ Microsoft Internet Explorerì—서만 ë™ìž‘합니다.\n그러나 ë§í¬ë¥¼ 복사하거나 붙여넣기를 í•  수 있습니다.'; $lang['js']['linkwiz'] = 'ë§í¬ 마법사'; $lang['js']['linkto'] = '다ìŒìœ¼ë¡œ ì—°ê²°:'; $lang['js']['del_confirm'] = 'ì •ë§ ì„ íƒëœ í•­ëª©ì„ ì‚­ì œí•˜ê² ìŠµë‹ˆê¹Œ?'; @@ -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'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 Adobe 플래시 플러그ì¸ì´ 필요합니다.'; +$lang['noflash'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 Adobe Flash 플러그ì¸ì´ 필요합니다.'; $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,15 +280,14 @@ $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_installer'] = 'ë„쿠위키 설치 관리ìž'; $lang['i_wikiname'] = '위키 ì´ë¦„'; $lang['i_enableacl'] = 'ACL 활성화 (권장)'; $lang['i_superuser'] = 'ìŠˆí¼ ì‚¬ìš©ìž'; -$lang['i_problems'] = '설치하는 ë™ì•ˆ 아래와 ê°™ì€ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. 문제를 해결한 후 설치를 계ì†í•  수 있습니다.'; +$lang['i_problems'] = '설치 관리ìžê°€ ì•„ëž˜ì— ë‚˜ì™€ 있는 몇 가지 문제를 찾았습니다. 문제를 해결하지 전까지 설치를 계ì†í•  수 없습니다.'; $lang['i_modified'] = '보안 ìƒì˜ ì´ìœ ë¡œ ì´ ìŠ¤í¬ë¦½íŠ¸ëŠ” 수정ë˜ì§€ ì•Šì€ ìƒˆ ë„쿠위키 설치ì—서만 ë™ìž‘ë©ë‹ˆë‹¤. -다운로드한 ì••ì¶• 패키지를 다시 설치하거나 ë„쿠위키 설치 ê³¼ì •ì„ ì°¸ê³ í•´ì„œ 설치하세요.'; + 다운로드한 ì••ì¶• 패키지를 다시 설치하거나 ë„쿠위키 설치 ê³¼ì •ì„ ì°¸ì¡°í•´ì„œ 설치하세요.'; $lang['i_funcna'] = '%s PHP 함수를 사용할 수 없습니다. 호스트 제공ìžê°€ ì–´ë–¤ ì´ìœ ì—서ì¸ì§€ 막아 놓았ì„ì§€ 모릅니다.'; $lang['i_phpver'] = 'PHP %s ë²„ì „ì€ í•„ìš”í•œ %s 버전보다 오래ë˜ì—ˆìŠµë‹ˆë‹¤. PHP를 업그레ì´ë“œí•  필요가 있습니다.'; $lang['i_mbfuncoverload'] = 'ë„쿠위키를 실행하려면 mbstring.func_overload를 php.iniì—서 비활성화해야 합니다.'; @@ -296,13 +296,15 @@ $lang['i_confexists'] = '%s(ì€)는 ì´ë¯¸ 존재합니다 $lang['i_writeerr'] = '%s(ì„)를 만들 수 없습니다. 먼저 디렉터리/íŒŒì¼ ê¶Œí•œì„ í™•ì¸í•˜ê³  파ì¼ì„ 수ë™ìœ¼ë¡œ 만드세요.'; $lang['i_badhash'] = 'dokuwiki.php를 ì¸ì‹í•  수 없거나 ì›ë³¸ 파ì¼ì´ 아닙니다 (해시=%s)'; $lang['i_badval'] = '%s - 잘못ë˜ì—ˆê±°ë‚˜ 빈 값입니다'; -$lang['i_success'] = '환경 ì„¤ì •ì´ ì„±ê³µì ìœ¼ë¡œ ë났습니다. 지금 install.php를 ì§€ì›Œë„ ìƒê´€ì—†ìŠµë‹ˆë‹¤. 새 ë„쿠위키로 들어가세요.'; -$lang['i_failure'] = '환경 설정 파ì¼ì— 쓰는 ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. 새 ë„쿠위키를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ 문제를 해결해야 합니다.'; +$lang['i_success'] = '환경 ì„¤ì •ì´ ì„±ê³µì ìœ¼ë¡œ ë났습니다. 지금 install.php를 ì§€ì›Œë„ ìƒê´€ì—†ìŠµë‹ˆë‹¤. + 새 ë„쿠위키로 들어가세요.'; +$lang['i_failure'] = '환경 설정 파ì¼ì— 쓰는 ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. + 새 ë„쿠위키를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ 문제를 해결해야 합니다.'; $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'] = 'ë¼ì´ì„ ìФ 정보를 보여주지 않습니다'; @@ -332,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'] = '메타ë°ì´í„° 편집ë¨'; @@ -340,7 +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['page_nonexist_rev'] = '문서가 %sì— ì¡´ìž¬í•˜ì§€ 않았습니다. ê·¸ 뒤로 %sì— ë§Œë“¤ì–´ì¡ŒìŠµë‹ˆë‹¤.'; +$lang['unable_to_parse_date'] = '"%s" 변수ì—서 구문 ë¶„ì„í•  수 없습니다.'; +$lang['email_signature_text'] = 'ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤'; diff --git a/dokuwiki/inc/lang/ko/mailtext.txt b/dokuwiki/inc/lang/ko/mailtext.txt index c97f446e..2b222585 100644 --- a/dokuwiki/inc/lang/ko/mailtext.txt +++ b/dokuwiki/inc/lang/ko/mailtext.txt @@ -10,7 +10,3 @@ IP 주소: @IPADDRESS@ 사용ìž: @USER@ @DIFF@ - - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/mailwrap.html b/dokuwiki/inc/lang/ko/mailwrap.html index ef061f10..7df0cdce 100644 --- a/dokuwiki/inc/lang/ko/mailwrap.html +++ b/dokuwiki/inc/lang/ko/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤. +@EMAILSIGNATURE@ diff --git a/dokuwiki/inc/lang/ko/password.txt b/dokuwiki/inc/lang/ko/password.txt index a60801ae..1bd92466 100644 --- a/dokuwiki/inc/lang/ko/password.txt +++ b/dokuwiki/inc/lang/ko/password.txt @@ -4,6 +4,3 @@ 로그ì¸: @LOGIN@ 비밀번호: @PASSWORD@ - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/pwconfirm.txt b/dokuwiki/inc/lang/ko/pwconfirm.txt index d820664f..dfe32a0f 100644 --- a/dokuwiki/inc/lang/ko/pwconfirm.txt +++ b/dokuwiki/inc/lang/ko/pwconfirm.txt @@ -8,6 +8,3 @@ ì •ë§ë¡œ ë‹¹ì‹ ì´ ìš”ì²­ì„ í•´ì„œ 보내졌는지 확ì¸í•˜ë ¤ë©´ ë‹¤ìŒ ë§í¬ë¥¼ 사용하세요. @CONFIRM@ - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/registermail.txt b/dokuwiki/inc/lang/ko/registermail.txt index afa66686..adc5a088 100644 --- a/dokuwiki/inc/lang/ko/registermail.txt +++ b/dokuwiki/inc/lang/ko/registermail.txt @@ -8,6 +8,3 @@ 브ë¼ìš°ì €: @BROWSER@ IP 주소: @IPADDRESS@ 호스트 ì´ë¦„: @HOSTNAME@ - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/searchpage.txt b/dokuwiki/inc/lang/ko/searchpage.txt index 6aa1c89a..bb834277 100644 --- a/dokuwiki/inc/lang/ko/searchpage.txt +++ b/dokuwiki/inc/lang/ko/searchpage.txt @@ -2,4 +2,4 @@ 아래ì—서 검색 결과를 ì°¾ì„ ìˆ˜ 있습니다. @CREATEPAGEINFO@ -===== ê²°ê³¼ ===== +===== ê²°ê³¼ ===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/subscr_digest.txt b/dokuwiki/inc/lang/ko/subscr_digest.txt index d1f2d4b9..bdb46ad3 100644 --- a/dokuwiki/inc/lang/ko/subscr_digest.txt +++ b/dokuwiki/inc/lang/ko/subscr_digest.txt @@ -13,6 +13,3 @@ 문서 ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ @SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/subscr_list.txt b/dokuwiki/inc/lang/ko/subscr_list.txt index 95133bbc..69a2d539 100644 --- a/dokuwiki/inc/lang/ko/subscr_list.txt +++ b/dokuwiki/inc/lang/ko/subscr_list.txt @@ -9,6 +9,3 @@ ë¬¸ì„œì˜ ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ @SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/subscr_single.txt b/dokuwiki/inc/lang/ko/subscr_single.txt index 1c7e551f..425d0d96 100644 --- a/dokuwiki/inc/lang/ko/subscr_single.txt +++ b/dokuwiki/inc/lang/ko/subscr_single.txt @@ -15,6 +15,3 @@ ë¬¸ì„œì˜ ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤ @SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”. - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/updateprofile.txt b/dokuwiki/inc/lang/ko/updateprofile.txt index 055272e9..0ddea30b 100644 --- a/dokuwiki/inc/lang/ko/updateprofile.txt +++ b/dokuwiki/inc/lang/ko/updateprofile.txt @@ -1,3 +1,3 @@ -====== 계정 프로필 바꾸기 ====== +====== 계정 프로필 ì—…ë°ì´íЏ ====== 바꾸고 ì‹¶ì€ í•­ëª©ì„ ìž…ë ¥í•˜ì„¸ìš”. ì‚¬ìš©ìž ì´ë¦„ì€ ë°”ê¿€ 수 없습니다. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ko/uploadmail.txt b/dokuwiki/inc/lang/ko/uploadmail.txt index 430a843b..1b6e55cd 100644 --- a/dokuwiki/inc/lang/ko/uploadmail.txt +++ b/dokuwiki/inc/lang/ko/uploadmail.txt @@ -9,6 +9,3 @@ IP 주소: @IPADDRESS@ í¬ê¸°: @SIZE@ MIME 유형: @MIME@ 사용ìž: @USER@ - --- -ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ku/lang.php b/dokuwiki/inc/lang/ku/lang.php index a3c91eee..460b5e8a 100644 --- a/dokuwiki/inc/lang/ku/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/la/lang.php b/dokuwiki/inc/lang/la/lang.php index 66cd1396..5f5f59e1 100644 --- a/dokuwiki/inc/lang/la/lang.php +++ b/dokuwiki/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.'; @@ -260,3 +257,5 @@ $lang['hours'] = 'a horis %d'; $lang['minutes'] = 'a minutis %d'; $lang['seconds'] = 'a secundis %d'; $lang['wordblock'] = 'Mutationes non seruantur, eo quod mala uerba contenit'; +$lang['email_signature_text'] = 'Hic cursus generatus a +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/la/mailtext.txt b/dokuwiki/inc/lang/la/mailtext.txt index 2d2504c8..8348378d 100644 --- a/dokuwiki/inc/lang/la/mailtext.txt +++ b/dokuwiki/inc/lang/la/mailtext.txt @@ -9,8 +9,3 @@ Summa recensere: @SUMMARY@ Sodalis : @USER@ @DIFF@ - - --- -Hic cursus generatus a(b) -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/password.txt b/dokuwiki/inc/lang/la/password.txt index f49f4b85..05573576 100644 --- a/dokuwiki/inc/lang/la/password.txt +++ b/dokuwiki/inc/lang/la/password.txt @@ -4,7 +4,3 @@ Hae res @TITLE@, i ad paginam: @DOKUWIKIURL@ Sodalis nomen : @LOGIN@ Tessera : @PASSWORD@ - --- -Hic cursus generatus a(b) -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/pwconfirm.txt b/dokuwiki/inc/lang/la/pwconfirm.txt index 32e351a9..ade0a1ca 100644 --- a/dokuwiki/inc/lang/la/pwconfirm.txt +++ b/dokuwiki/inc/lang/la/pwconfirm.txt @@ -8,7 +8,3 @@ Si nouam tesseram non petiuisti, hoc nuntium ignorat. Ut hoc nuntium petiuisti, premendo hunc nexum confirmas. @CONFIRM@ - --- -Hic cursus generatus a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/registermail.txt b/dokuwiki/inc/lang/la/registermail.txt index 73901950..1f286597 100644 --- a/dokuwiki/inc/lang/la/registermail.txt +++ b/dokuwiki/inc/lang/la/registermail.txt @@ -8,7 +8,3 @@ Dies : @DATE@ Machina interretis : @BROWSER@ IP-numerus : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Hic cursus generatus a -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/subscr_digest.txt b/dokuwiki/inc/lang/la/subscr_digest.txt index 32d378a7..d4ca79ab 100644 --- a/dokuwiki/inc/lang/la/subscr_digest.txt +++ b/dokuwiki/inc/lang/la/subscr_digest.txt @@ -14,7 +14,3 @@ Ut paginae adnotationes deleas, in uicem ineas in @DOKUWIKIURL@, deinde uideas @SUBSCRIBE@ et paginarum generum optiones mutes. - --- -Hic cursus a uicis generatus -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/subscr_list.txt b/dokuwiki/inc/lang/la/subscr_list.txt index e6ff8d89..3921ff6b 100644 --- a/dokuwiki/inc/lang/la/subscr_list.txt +++ b/dokuwiki/inc/lang/la/subscr_list.txt @@ -11,7 +11,3 @@ Ut adnotationes deleas, preme hic @DOKUWIKIURL@ then visit @SUBSCRIBE@ et paginarum et\aut generum mutationes tollis. - --- -Hic cursus generatus a(b) -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/subscr_single.txt b/dokuwiki/inc/lang/la/subscr_single.txt index 14285014..4bfd7ef4 100644 --- a/dokuwiki/inc/lang/la/subscr_single.txt +++ b/dokuwiki/inc/lang/la/subscr_single.txt @@ -17,7 +17,3 @@ Ut paginae adnotationes deleas, in uicem ineas in @DOKUWIKIURL@, deinde uideas @SUBSCRIBE@ et paginarum et\aut generum optiones mutasa. - --- -Hic cursus a uicis generatus -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/la/uploadmail.txt b/dokuwiki/inc/lang/la/uploadmail.txt index 04429797..329bf31a 100644 --- a/dokuwiki/inc/lang/la/uploadmail.txt +++ b/dokuwiki/inc/lang/la/uploadmail.txt @@ -8,7 +8,3 @@ Hospes situs : @HOSTNAME@ Pondus : @SIZE@ MIME Genus : @MIME@ Sodalis : @USER@ - --- -Hic cursu generatus a(b) -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lb/jquery.ui.datepicker.js b/dokuwiki/inc/lang/lb/jquery.ui.datepicker.js index 4f2e414b..02a9c510 100644 --- a/dokuwiki/inc/lang/lb/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/lb/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Luxembourgish initialisation for the jQuery UI date picker plugin. */ /* Written by Michel Weimerskirch */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['lb'] = { - closeText: 'Fäerdeg', - prevText: 'Zréck', - nextText: 'Weider', - currentText: 'Haut', - monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni', - 'Juli','August','September','Oktober','November','Dezember'], - monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', - 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], - dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'], - dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'], - dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'], - weekHeader: 'W', - dateFormat: 'dd.mm.yy', +datepicker.regional.lb = { + closeText: "Fäerdeg", + prevText: "Zréck", + nextText: "Weider", + currentText: "Haut", + monthNames: [ "Januar","Februar","Mäerz","Abrëll","Mee","Juni", + "Juli","August","September","Oktober","November","Dezember" ], + monthNamesShort: [ "Jan", "Feb", "Mäe", "Abr", "Mee", "Jun", + "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" ], + dayNames: [ + "Sonndeg", + "Méindeg", + "Dënschdeg", + "Mëttwoch", + "Donneschdeg", + "Freideg", + "Samschdeg" + ], + dayNamesShort: [ "Son", "Méi", "Dën", "Mët", "Don", "Fre", "Sam" ], + dayNamesMin: [ "So","Mé","Dë","Më","Do","Fr","Sa" ], + weekHeader: "W", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['lb']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lb ); -return datepicker.regional['lb']; +return datepicker.regional.lb; -})); +} ) ); diff --git a/dokuwiki/inc/lang/lb/lang.php b/dokuwiki/inc/lang/lb/lang.php index 1090878e..f15e878b 100644 --- a/dokuwiki/inc/lang/lb/lang.php +++ b/dokuwiki/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'; @@ -195,3 +192,5 @@ $lang['days'] = 'virun %d Deeg'; $lang['hours'] = 'virun %d Stonnen'; $lang['minutes'] = 'virun %d Minutten'; $lang['seconds'] = 'virun %d Sekonnen'; +$lang['email_signature_text'] = 'Dës Mail gouf generéiert vun DokuWiki op +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/lb/mailtext.txt b/dokuwiki/inc/lang/lb/mailtext.txt index 520cd848..59c46e08 100644 --- a/dokuwiki/inc/lang/lb/mailtext.txt +++ b/dokuwiki/inc/lang/lb/mailtext.txt @@ -10,8 +10,3 @@ Zesummefaassung: @SUMMARY@ Benotzer : @USER@ @DIFF@ - - --- -Dës Mail gouf generéiert vum DokuWiki op -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lb/password.txt b/dokuwiki/inc/lang/lb/password.txt index bd8062e4..1d058323 100644 --- a/dokuwiki/inc/lang/lb/password.txt +++ b/dokuwiki/inc/lang/lb/password.txt @@ -4,7 +4,3 @@ Hei sinn deng Benotzerdaten fir @TITLE@ op @DOKUWIKIURL@ Benotzernumm : @LOGIN@ Passwuert : @PASSWORD@ - --- -Dës Mail gouf generéiert vun DokuWiki op -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lb/pwconfirm.txt b/dokuwiki/inc/lang/lb/pwconfirm.txt index 11246572..efb0406e 100644 --- a/dokuwiki/inc/lang/lb/pwconfirm.txt +++ b/dokuwiki/inc/lang/lb/pwconfirm.txt @@ -1,6 +1,6 @@ Moien @FULLNAME@! -Iergendeen huet e neit Passwuert fir däin @TITLE@ +Iergendeen huet e neit Passwuert fir däin @TITLE@ login op @DOKUWIKIURL@ gefrot Wanns de kee nei Passwuert gefrot hues, dann ignoréier dës Mail. @@ -9,7 +9,3 @@ Fir ze konfirméieren dass du wierklech en neit Passwuert gefrot hues, klick op folgende Link. @CONFIRM@ - --- -Des Mail gouf generéiert vun DokuWiki op -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lb/registermail.txt b/dokuwiki/inc/lang/lb/registermail.txt index 0f4fee8e..5240dee8 100644 --- a/dokuwiki/inc/lang/lb/registermail.txt +++ b/dokuwiki/inc/lang/lb/registermail.txt @@ -8,7 +8,3 @@ Datum : @DATE@ Browser : @BROWSER@ IP-Adress : @IPADDRESS@ Hostnumm : @HOSTNAME@ - --- -Des Mail gouf generéiert vun DokuWiki op -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lb/uploadmail.txt b/dokuwiki/inc/lang/lb/uploadmail.txt index 3c2587cb..c4b9e8df 100644 --- a/dokuwiki/inc/lang/lb/uploadmail.txt +++ b/dokuwiki/inc/lang/lb/uploadmail.txt @@ -8,7 +8,3 @@ Hostnumm : @HOSTNAME@ Gréisst : @SIZE@ MIME Typ : @MIME@ Benotzer : @USER@ - --- -Dës Mail gouf generéiert vun DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/lt/jquery.ui.datepicker.js b/dokuwiki/inc/lang/lt/jquery.ui.datepicker.js index 60ccbefe..a57fd9df 100644 --- a/dokuwiki/inc/lang/lt/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/lt/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['lt'] = { - closeText: 'Uždaryti', - prevText: '<Atgal', - nextText: 'Pirmyn>', - currentText: 'Å iandien', - monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', - 'Liepa','RugpjÅ«tis','RugsÄ—jis','Spalis','Lapkritis','Gruodis'], - monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', - 'Lie','Rugp','Rugs','Spa','Lap','Gru'], - dayNames: ['sekmadienis','pirmadienis','antradienis','treÄiadienis','ketvirtadienis','penktadienis','Å¡eÅ¡tadienis'], - dayNamesShort: ['sek','pir','ant','tre','ket','pen','Å¡eÅ¡'], - dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Å e'], - weekHeader: 'SAV', - dateFormat: 'yy-mm-dd', +datepicker.regional.lt = { + closeText: "Uždaryti", + prevText: "<Atgal", + nextText: "Pirmyn>", + currentText: "Å iandien", + monthNames: [ "Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis", + "Liepa","RugpjÅ«tis","RugsÄ—jis","Spalis","Lapkritis","Gruodis" ], + monthNamesShort: [ "Sau","Vas","Kov","Bal","Geg","Bir", + "Lie","Rugp","Rugs","Spa","Lap","Gru" ], + dayNames: [ + "sekmadienis", + "pirmadienis", + "antradienis", + "treÄiadienis", + "ketvirtadienis", + "penktadienis", + "Å¡eÅ¡tadienis" + ], + dayNamesShort: [ "sek","pir","ant","tre","ket","pen","Å¡eÅ¡" ], + dayNamesMin: [ "Se","Pr","An","Tr","Ke","Pe","Å e" ], + weekHeader: "SAV", + dateFormat: "yy-mm-dd", firstDay: 1, isRTL: false, showMonthAfterYear: true, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['lt']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lt ); -return datepicker.regional['lt']; +return datepicker.regional.lt; -})); +} ) ); diff --git a/dokuwiki/inc/lang/lt/lang.php b/dokuwiki/inc/lang/lt/lang.php index d53a117f..dcf0985e 100644 --- a/dokuwiki/inc/lang/lt/lang.php +++ b/dokuwiki/inc/lang/lt/lang.php @@ -1,12 +1,13 @@ * @author Edmondas Girkantas * @author ArÅ«nas VaitekÅ«nas * @author audrius.klevas@gmail.com + * @author Tomas Darius Davainis */ $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:'; @@ -182,3 +180,5 @@ $lang['i_wikiname'] = 'Wiki vardas'; $lang['i_enableacl'] = 'Ä®jungti ACL (rekomenduojama)'; $lang['i_superuser'] = 'Supervartotojas'; $lang['i_problems'] = 'Instaliavimo metu buvo klaidų, kurios pateiktos žemiau. TÄ™sti negalima, kol nebus paÅ¡alintos priežastys.'; +$lang['email_signature_text'] = 'Å is laiÅ¡kas buvo sugeneruotas DokuWiki +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/lt/mailtext.txt b/dokuwiki/inc/lang/lt/mailtext.txt index 63b2f591..2abd3ab8 100644 --- a/dokuwiki/inc/lang/lt/mailtext.txt +++ b/dokuwiki/inc/lang/lt/mailtext.txt @@ -12,7 +12,3 @@ Vartotojas : @USER@ Pakeitimo diff'as: @DIFF@ - - --- -Å is laiÅ¡kas buvo sugeneruotas DokuWiki (@DOKUWIKIURL@). diff --git a/dokuwiki/inc/lang/lt/password.txt b/dokuwiki/inc/lang/lt/password.txt index 8c65cf8c..0bcc8e7b 100644 --- a/dokuwiki/inc/lang/lt/password.txt +++ b/dokuwiki/inc/lang/lt/password.txt @@ -4,6 +4,3 @@ Labas, @FULLNAME@! Prisijungimo vardas: @LOGIN@ Slaptažodis: @PASSWORD@ - --- -Å is laiÅ¡kas sugeneruotas DokuWiki sistemos (@DOKUWIKIURL@). diff --git a/dokuwiki/inc/lang/lv/jquery.ui.datepicker.js b/dokuwiki/inc/lang/lv/jquery.ui.datepicker.js index b9e28853..04556fbc 100644 --- a/dokuwiki/inc/lang/lv/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/lv/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['lv'] = { - closeText: 'AizvÄ“rt', - prevText: 'Iepr.', - nextText: 'NÄk.', - currentText: 'Å odien', - monthNames: ['JanvÄris','FebruÄris','Marts','AprÄ«lis','Maijs','JÅ«nijs', - 'JÅ«lijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','JÅ«n', - 'JÅ«l','Aug','Sep','Okt','Nov','Dec'], - dayNames: ['svÄ“tdiena','pirmdiena','otrdiena','treÅ¡diena','ceturtdiena','piektdiena','sestdiena'], - dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], - dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], - weekHeader: 'Ned.', - dateFormat: 'dd.mm.yy', +datepicker.regional.lv = { + closeText: "AizvÄ“rt", + prevText: "Iepr.", + nextText: "NÄk.", + currentText: "Å odien", + monthNames: [ "JanvÄris","FebruÄris","Marts","AprÄ«lis","Maijs","JÅ«nijs", + "JÅ«lijs","Augusts","Septembris","Oktobris","Novembris","Decembris" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mai","JÅ«n", + "JÅ«l","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ + "svÄ“tdiena", + "pirmdiena", + "otrdiena", + "treÅ¡diena", + "ceturtdiena", + "piektdiena", + "sestdiena" + ], + dayNamesShort: [ "svt","prm","otr","tre","ctr","pkt","sst" ], + dayNamesMin: [ "Sv","Pr","Ot","Tr","Ct","Pk","Ss" ], + weekHeader: "Ned.", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['lv']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lv ); -return datepicker.regional['lv']; +return datepicker.regional.lv; -})); +} ) ); diff --git a/dokuwiki/inc/lang/lv/lang.php b/dokuwiki/inc/lang/lv/lang.php index ddc97fa8..88f8e5f9 100644 --- a/dokuwiki/inc/lang/lv/lang.php +++ b/dokuwiki/inc/lang/lv/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aivars MiÅ¡ka */ $lang['encoding'] = 'utf-8'; @@ -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'; @@ -337,3 +333,5 @@ $lang['currentns'] = 'PaÅ¡reizÄ“jÄ sadaļa'; $lang['searchresult'] = 'Meklēšanas rezultÄti'; $lang['plainhtml'] = 'TÄ«rs HTML'; $lang['wikimarkup'] = 'Viki iezÄ«mēšana valoda'; +$lang['email_signature_text'] = 'VÄ“stuli nosÅ«tÄ«jusi DokuWiki programma no +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/lv/mailtext.txt b/dokuwiki/inc/lang/lv/mailtext.txt index cd4a5d6d..83160031 100644 --- a/dokuwiki/inc/lang/lv/mailtext.txt +++ b/dokuwiki/inc/lang/lv/mailtext.txt @@ -10,9 +10,3 @@ AnotÄcija : @SUMMARY@ LietotÄjs : @USER@ @DIFF@ - - --- -VÄ“stuli nosÅ«tÄ«jusi DokuWiki programma no -@DOKUWIKIURL@ datora - diff --git a/dokuwiki/inc/lang/lv/mailwrap.html b/dokuwiki/inc/lang/lv/mailwrap.html index 34b72390..d2571909 100644 --- a/dokuwiki/inc/lang/lv/mailwrap.html +++ b/dokuwiki/inc/lang/lv/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Å o vÄ“stuli nosÅ«tÄ«jusi programma DokuWiki no vietnes @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/password.txt b/dokuwiki/inc/lang/lv/password.txt index be5e7e2a..7cd7d8b2 100644 --- a/dokuwiki/inc/lang/lv/password.txt +++ b/dokuwiki/inc/lang/lv/password.txt @@ -4,6 +4,3 @@ Tavi dati @TITLE@ lapÄm uz servera @DOKUWIKIURL@ ir LietotÄjvÄrds: @LOGIN@ Parole: @PASSWORD@ - --- -Å o dokumentu izveidojusi DokuWiki programma uz servera @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/lv/pwconfirm.txt b/dokuwiki/inc/lang/lv/pwconfirm.txt index 308ca29a..62c8bedc 100644 --- a/dokuwiki/inc/lang/lv/pwconfirm.txt +++ b/dokuwiki/inc/lang/lv/pwconfirm.txt @@ -8,7 +8,3 @@ Ja paroli neesi prasÄ«jis, ignorÄ“ Å¡o vÄ“stuli. Lai apstiprinÄtu, ka esi paroli pieprasÄ«jis lieto norÄdÄ«to saiti. @CONFIRM@ - --- -Å o vÄ“stuli Ä£enerÄ“jusi DokuWiki no -@DOKUWIKIURL \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/registermail.txt b/dokuwiki/inc/lang/lv/registermail.txt index 50fd8a92..2a2084c9 100644 --- a/dokuwiki/inc/lang/lv/registermail.txt +++ b/dokuwiki/inc/lang/lv/registermail.txt @@ -8,7 +8,3 @@ Datums : @DATE@ PÄrlÅ«ks : @BROWSER@ IP aderese : @IPADDRESS@ Datora vÄrds: @HOSTNAME@ - --- -Å o vÄ“stuli Ä£enerÄ“jis DokuWiki no -@DOKUWIKIURL \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/subscr_digest.txt b/dokuwiki/inc/lang/lv/subscr_digest.txt index 98784050..fb24a31b 100644 --- a/dokuwiki/inc/lang/lv/subscr_digest.txt +++ b/dokuwiki/inc/lang/lv/subscr_digest.txt @@ -9,11 +9,7 @@ Labdien! VecÄ versija: @OLDPAGE@ JaunÄ versija: @NEWPAGE@ -Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties -@DOKUWIKIURL@, apmeklÄ“jiet +Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties +@DOKUWIKIURL@, apmeklÄ“jiet @SUBSCRIBE@ un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . - --- -Å o vÄ“stuli izveidoja DokuWiki no -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/subscr_list.txt b/dokuwiki/inc/lang/lv/subscr_list.txt index 986b3786..9c0ecf80 100644 --- a/dokuwiki/inc/lang/lv/subscr_list.txt +++ b/dokuwiki/inc/lang/lv/subscr_list.txt @@ -6,11 +6,7 @@ Labdien! @DIFF@ -------------------------------------------------------- -Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties -@DOKUWIKIURL@, apmeklÄ“jiet +Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties +@DOKUWIKIURL@, apmeklÄ“jiet @SUBSCRIBE@ un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . - --- -Å o vÄ“stuli izveidoja DokuWiki no -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/subscr_single.txt b/dokuwiki/inc/lang/lv/subscr_single.txt index ca617780..b5b05d33 100644 --- a/dokuwiki/inc/lang/lv/subscr_single.txt +++ b/dokuwiki/inc/lang/lv/subscr_single.txt @@ -13,11 +13,7 @@ VecÄ versija: @OLDPAGE@ JaunÄ versija: @NEWPAGE@ -Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties -@DOKUWIKIURL@, apmeklÄ“jiet +Lai atceltu izmaiņu paziņoÅ¡anu, ielogojieties +@DOKUWIKIURL@, apmeklÄ“jiet @SUBSCRIBE@ un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . - --- -Å o vÄ“stuli izveidoja DokuWiki no -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/lv/uploadmail.txt b/dokuwiki/inc/lang/lv/uploadmail.txt index 5975d5bd..8d664d6b 100644 --- a/dokuwiki/inc/lang/lv/uploadmail.txt +++ b/dokuwiki/inc/lang/lv/uploadmail.txt @@ -8,7 +8,3 @@ Datora vÄrds : @HOSTNAME@ IzmÄ“rs : @SIZE@ MIME tips : @MIME@ LietotÄjs : @USER@ - --- -VÄ“stuli nosÅ«tÄ«jusi DokuWiki programma no -@DOKUWIKIURL@ datora. \ No newline at end of file diff --git a/dokuwiki/inc/lang/mg/lang.php b/dokuwiki/inc/lang/mg/lang.php index b6e0cc6e..240133f2 100644 --- a/dokuwiki/inc/lang/mg/lang.php +++ b/dokuwiki/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,6 +114,7 @@ $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_text'] = 'Ity imailaka ity dia navoakan\'ny wiki tao amin\'ny +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/mg/mailtext.txt b/dokuwiki/inc/lang/mg/mailtext.txt index ca919345..c772686f 100644 --- a/dokuwiki/inc/lang/mg/mailtext.txt +++ b/dokuwiki/inc/lang/mg/mailtext.txt @@ -10,8 +10,3 @@ Fiovana : @SUMMARY@ Novain'i : @USER@ @DIFF@ - - --- -Ity imailaka ity dia navoakan'ny wiki tao amin'ny -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/mg/password.txt b/dokuwiki/inc/lang/mg/password.txt index 000bd91c..4ed28582 100644 --- a/dokuwiki/inc/lang/mg/password.txt +++ b/dokuwiki/inc/lang/mg/password.txt @@ -4,8 +4,3 @@ Ireto ny momba anao ho an'ny @TITLE@ ao amin'ny @DOKUWIKIURL@ Anarana : @LOGIN@ Alahidy : @PASSWORD@ - --- -Ity imailaka ity dia navoakan'ny wiki tao amin'ny -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/mk/jquery.ui.datepicker.js b/dokuwiki/inc/lang/mk/jquery.ui.datepicker.js index 15942e28..97864ab1 100644 --- a/dokuwiki/inc/lang/mk/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/mk/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Macedonian i18n for the jQuery UI date picker plugin. */ /* Written by Stojce Slavkovski. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['mk'] = { - closeText: 'Затвори', - prevText: '<', - nextText: '>', - currentText: 'ДенеÑ', - monthNames: ['Јануари','Февруари','Март','Ðприл','Мај','Јуни', - 'Јули','ÐвгуÑÑ‚','Септември','Октомври','Ðоември','Декември'], - monthNamesShort: ['Јан','Фев','Мар','Ðпр','Мај','Јун', - 'Јул','Ðвг','Сеп','Окт','Ðое','Дек'], - dayNames: ['Ðедела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'], - dayNamesShort: ['Ðед','Пон','Вто','Сре','Чет','Пет','Саб'], - dayNamesMin: ['Ðе','По','Ð’Ñ‚','Ср','Че','Пе','Са'], - weekHeader: 'Сед', - dateFormat: 'dd.mm.yy', +datepicker.regional.mk = { + 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['mk']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.mk ); -return datepicker.regional['mk']; +return datepicker.regional.mk; -})); +} ) ); diff --git a/dokuwiki/inc/lang/mk/lang.php b/dokuwiki/inc/lang/mk/lang.php index ddfae15c..034d98b3 100644 --- a/dokuwiki/inc/lang/mk/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/ml/admin.txt b/dokuwiki/inc/lang/ml/admin.txt new file mode 100644 index 00000000..0f9c8148 --- /dev/null +++ b/dokuwiki/inc/lang/ml/admin.txt @@ -0,0 +1,3 @@ +====== പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ====== + +താഴെ കാണàµà´¨àµà´¨ പടàµà´Ÿà´¿à´• ഡോകàµà´•àµà´µà´¿à´•àµà´•ിയിൽ ഉളàµà´³ പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ആണൠ. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ml/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ml/jquery.ui.datepicker.js new file mode 100644 index 00000000..440e09e0 --- /dev/null +++ b/dokuwiki/inc/lang/ml/jquery.ui.datepicker.js @@ -0,0 +1,37 @@ +/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Saji Nediyanchath (saji89@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ml = { + 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.ml ); + +return datepicker.regional.ml; + +} ) ); diff --git a/dokuwiki/inc/lang/mr/lang.php b/dokuwiki/inc/lang/mr/lang.php index 7ebb14b9..4b6d1bd6 100644 --- a/dokuwiki/inc/lang/mr/lang.php +++ b/dokuwiki/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'] = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾'; @@ -265,3 +262,5 @@ $lang['i_pol1'] = 'सारà¥à¤µà¤œà¤¨à¤¿à¤• विकी ( स $lang['i_pol2'] = 'बंदिसà¥à¤¤ विकी ( वाचन , लेखन व अपलोडची परवानगी फकà¥à¤¤ नोंदणीकृत सदसà¥à¤¯à¤¾à¤‚ना ) '; $lang['i_retry'] = 'पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨'; $lang['recent_global'] = 'तà¥à¤®à¥à¤¹à¥€ सधà¥à¤¯à¤¾ %s या नेमसà¥à¤ªà¥‡à¤¸ मधील बदल पाहात आहात.तà¥à¤®à¥à¤¹à¥€ पूरà¥à¤£ विकी मधले बदल सà¥à¤¦à¥à¤§à¤¾ पाहू शकता.'; +$lang['email_signature_text'] = 'हा ईमेल, येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/mr/mailtext.txt b/dokuwiki/inc/lang/mr/mailtext.txt index 18fa2384..826ab0c4 100644 --- a/dokuwiki/inc/lang/mr/mailtext.txt +++ b/dokuwiki/inc/lang/mr/mailtext.txt @@ -10,6 +10,3 @@ IP-पतà¥à¤¤à¤¾ : @IPADDRESS@ सदसà¥à¤¯ : @USER@ @DIFF@ - --- -हा ईमेल @DOKUWIKIURL@ येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे. \ No newline at end of file diff --git a/dokuwiki/inc/lang/mr/password.txt b/dokuwiki/inc/lang/mr/password.txt index 090c01df..a83f97e7 100644 --- a/dokuwiki/inc/lang/mr/password.txt +++ b/dokuwiki/inc/lang/mr/password.txt @@ -4,6 +4,3 @@ लॉगिन : @LOGIN@ पासवरà¥à¤¡ : @PASSWORD@ - --- -हा ईमेल @DOKUWIKIURL@ येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे. \ No newline at end of file diff --git a/dokuwiki/inc/lang/mr/pwconfirm.txt b/dokuwiki/inc/lang/mr/pwconfirm.txt index ec0b707a..8c03f174 100644 --- a/dokuwiki/inc/lang/mr/pwconfirm.txt +++ b/dokuwiki/inc/lang/mr/pwconfirm.txt @@ -6,6 +6,3 @@ जर नकà¥à¤•ी तà¥à¤®à¥à¤¹à¥€à¤š हा पासवरà¥à¤¡ मागवला असेल तर खालील लिंकवर कà¥à¤²à¤¿à¤• करून ते नकà¥à¤•ी करा. @CONFIRM@ - --- -हा ईमेल @DOKUWIKIURL@ येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे. \ No newline at end of file diff --git a/dokuwiki/inc/lang/mr/registermail.txt b/dokuwiki/inc/lang/mr/registermail.txt index a6fea4d0..ed3b92b4 100644 --- a/dokuwiki/inc/lang/mr/registermail.txt +++ b/dokuwiki/inc/lang/mr/registermail.txt @@ -8,6 +8,3 @@ बà¥à¤°à¤¾à¤‰à¤œà¤° : @BROWSER@ IP-पतà¥à¤¤à¤¾ : @IPADDRESS@ होसà¥à¤Ÿ नाम : @HOSTNAME@ - --- -हा ईमेल @DOKUWIKIURL@ येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे. \ No newline at end of file diff --git a/dokuwiki/inc/lang/mr/showrev.txt b/dokuwiki/inc/lang/mr/showrev.txt index aeaeee50..dc058307 100644 --- a/dokuwiki/inc/lang/mr/showrev.txt +++ b/dokuwiki/inc/lang/mr/showrev.txt @@ -1,2 +1,2 @@ ** ही हà¥à¤¯à¤¾ दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤šà¥€ जà¥à¤¨à¥€ आवृतà¥à¤¤à¥€ आहे. ** --- \ No newline at end of file +---- \ No newline at end of file diff --git a/dokuwiki/inc/lang/mr/uploadmail.txt b/dokuwiki/inc/lang/mr/uploadmail.txt index 66e73659..1aea97c3 100644 --- a/dokuwiki/inc/lang/mr/uploadmail.txt +++ b/dokuwiki/inc/lang/mr/uploadmail.txt @@ -8,6 +8,3 @@ IP-पतà¥à¤¤à¤¾ : @IPADDRESS@ साइज़ : @SIZE@ MIME टाइप : @MIME@ सदसà¥à¤¯ : @USER@ - --- -हा ईमेल @DOKUWIKIURL@ येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ms/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ms/jquery.ui.datepicker.js index d452df3e..58bc4f57 100644 --- a/dokuwiki/inc/lang/ms/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ms/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Malaysian initialisation for the jQuery UI date picker plugin. */ /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ms'] = { - closeText: 'Tutup', - prevText: '<Sebelum', - nextText: 'Selepas>', - currentText: 'hari ini', - monthNames: ['Januari','Februari','Mac','April','Mei','Jun', - 'Julai','Ogos','September','Oktober','November','Disember'], - monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', - 'Jul','Ogo','Sep','Okt','Nov','Dis'], - dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], - dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], - dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], - weekHeader: 'Mg', - dateFormat: 'dd/mm/yy', +datepicker.regional.ms = { + closeText: "Tutup", + prevText: "<Sebelum", + nextText: "Selepas>", + currentText: "hari ini", + monthNames: [ "Januari","Februari","Mac","April","Mei","Jun", + "Julai","Ogos","September","Oktober","November","Disember" ], + monthNamesShort: [ "Jan","Feb","Mac","Apr","Mei","Jun", + "Jul","Ogo","Sep","Okt","Nov","Dis" ], + dayNames: [ "Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu" ], + dayNamesShort: [ "Aha","Isn","Sel","Rab","kha","Jum","Sab" ], + dayNamesMin: [ "Ah","Is","Se","Ra","Kh","Ju","Sa" ], + weekHeader: "Mg", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['ms']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ms ); -return datepicker.regional['ms']; +return datepicker.regional.ms; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ms/lang.php b/dokuwiki/inc/lang/ms/lang.php index 30311642..14cb94eb 100644 --- a/dokuwiki/inc/lang/ms/lang.php +++ b/dokuwiki/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/dokuwiki/inc/lang/ne/adminplugins.txt b/dokuwiki/inc/lang/ne/adminplugins.txt new file mode 100644 index 00000000..93eff63f --- /dev/null +++ b/dokuwiki/inc/lang/ne/adminplugins.txt @@ -0,0 +1 @@ +===== थप पà¥à¤²à¤—िनहरू ===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/ne/lang.php b/dokuwiki/inc/lang/ne/lang.php index d4efc89b..fae403f2 100644 --- a/dokuwiki/inc/lang/ne/lang.php +++ b/dokuwiki/inc/lang/ne/lang.php @@ -5,6 +5,7 @@ * * @author Saroj Kumar Dhakal * @author Saroj Kumar Dhakal + * @author सरोज ढकाल */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -36,14 +37,20 @@ $lang['btn_update'] = 'अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹ $lang['btn_delete'] = 'मेटाउनà¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_back'] = 'पछाडि'; $lang['btn_backlink'] = 'पछाडिका लिङà¥à¤•हरॠ'; -$lang['btn_backtomedia'] = 'मिडिया छनौटमा फरà¥à¤•नà¥à¤¹à¥‹à¤¸à¥'; $lang['btn_subscribe'] = 'पृषà¥à¤  परिवरà¥à¤¤à¤¨ गà¥à¤°à¤¾à¤¹à¥à¤¯ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_reset'] = 'पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•ाउनà¥à¤¹à¥‹à¤¸'; +$lang['btn_resendpwd'] = 'नयाठपासवरà¥à¤¡ राखà¥à¤¨à¥à¤¹à¥‹à¤¸'; $lang['btn_draft'] = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_recover'] = 'पहिलेको डà¥à¤°à¤¾à¤«à¥à¤Ÿ हासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸ '; $lang['btn_draftdel'] = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ मेटाउनà¥à¤¹à¥‹à¤¸à¥ '; +$lang['btn_revert'] = 'पूरà¥à¤µà¤°à¥‚पमा फरà¥à¤•ाउने'; $lang['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'] = 'पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦'; @@ -55,6 +62,7 @@ $lang['fullname'] = 'पूरा नाम'; $lang['email'] = 'इमेल'; $lang['profile'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤²'; $lang['badlogin'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¨à¤¾à¤® वा पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ गलत भयो '; +$lang['badpassconfirm'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पासवरà¥à¤¡ गलत छ '; $lang['minoredit'] = 'सामानà¥à¤¯ परिवरà¥à¤¤à¤¨'; $lang['draftdate'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रà¥à¤ªà¤®à¤¾ वचत भà¤à¤•ो'; $lang['nosecedit'] = 'यो पृषà¥à¤  यसै बखतमा परिवरà¥à¤¤à¤¨ भयो, खणà¥à¤¡ जानकारी अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• हà¥à¤¨ सकेन र पूरै पृषà¥à¤  लोड भयो । '; @@ -72,6 +80,8 @@ $lang['profna'] = 'यो विकिले यो पà¥à¤°à¥‹ $lang['profnochange'] = 'केहि परिवरà¥à¤¤à¤¨ छैन , केहि गरà¥à¤¨à¥ छैन ।'; $lang['profnoempty'] = 'खाली नाम वा इमेल ठेगानालाई अनà¥à¤®à¤¤à¤¿ छैन ।'; $lang['profchanged'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो पà¥à¤°à¤«à¤¾à¤‡à¤² सफलरà¥à¤ªà¤®à¤¾ परिवरà¥à¤¤à¤¨ भयो ।'; +$lang['profnodelete'] = 'यो विकिले पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¹à¤°à¥‚ हटाउन समरà¥à¤¥à¤¨ गरà¥à¤¦à¥ˆà¤¨'; +$lang['profdeleteuser'] = 'खाता मेटà¥à¤¨à¥à¤¹à¥‹à¤¸'; $lang['pwdforget'] = 'आफà¥à¤¨à¥‹ पासवरà¥à¤¡ भà¥à¤²à¥à¤¨à¥ भयो ? नयाठहासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['resendna'] = 'यो विकिबाट पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउन समरà¥à¤¥à¤¿à¤¤ छैन ।'; $lang['resendpwd'] = 'नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउनà¥à¤¹à¥‹à¤¸à¥ '; @@ -90,12 +100,12 @@ $lang['js']['willexpire'] = 'तपाईलले यो पृषà¥à¤  $lang['js']['notsavedyet'] = 'तपाईले वचन गरà¥à¤¨à¥ नभà¤à¤•ो परिवरà¥à¤°à¤¨ हराउने छ। \n साचà¥à¤šà¥ˆ जारी गरà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।'; $lang['js']['keepopen'] = 'छनौटमा विनà¥à¤¡à¥‹ खà¥à¤²à¤¾ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['js']['hidedetails'] = 'जानकारी लà¥à¤•ाउनॠहोसॠ'; +$lang['js']['mediaclose'] = 'बनà¥à¤¦ गरà¥à¤¨à¥‡'; $lang['js']['nosmblinks'] = 'विनà¥à¤¡à¥‹à¤¹à¤°à¥ लिङà¥à¤• गरà¥à¤¦à¤¾ माइकà¥à¤°à¥‹ सफà¥à¤Ÿ à¤à¤•à¥à¤¸à¤ªà¥à¤²à¥‹à¤°à¤°à¤®à¤¾à¤®à¤¾à¤¤à¥à¤° काम साà¤à¤¾ हà¥à¤¨à¥à¤› । तर कपि गरà¥à¤¨ र टासà¥à¤¨ मिलà¥à¤›à¥¤ '; $lang['js']['del_confirm'] = 'साचà¥à¤šà¥ˆ छानिà¤à¤•ा वसà¥à¤¤à¥à¤¹à¤°à¥ मेटà¥à¤¨à¥‡ हो ?'; $lang['rssfailed'] = 'यो फिड लिइ आउदा गलà¥à¤¤à¤¿ भयो ।'; $lang['nothingfound'] = 'केहि पनि भेटिà¤à¤¨ ।'; $lang['mediaselect'] = 'मिडिया फाइलहरू '; -$lang['fileupload'] = 'मिडिया फाइल अपलोड '; $lang['uploadsucc'] = 'अपलोड सफल '; $lang['uploadfail'] = 'अपलोड असफल । सायद गलत अनà¥à¤®à¤¤à¤¿ । '; $lang['uploadwrong'] = 'अपलोड असमरà¥à¤¥à¤¿à¤¤ । फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ अमानà¥à¤¯à¥¤ '; @@ -155,11 +165,9 @@ $lang['qb_media'] = 'तसà¥à¤µà¤¿à¤° र अरॠफाइल $lang['qb_sig'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['qb_smileys'] = 'सà¥à¤®à¤¾à¤‡à¤²à¥€à¤¹à¤°à¥ '; $lang['qb_chars'] = 'विशेष वरà¥à¤£à¤¹à¤°à¥ '; -$lang['admin_register'] = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['metaedit'] = 'मेटाडेटा समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['metasaveerr'] = 'मेटाडाटा लेखन असफल'; $lang['metasaveok'] = 'मेटाडाटा वचत भयो '; -$lang['btn_img_backto'] = 'फिरà¥à¤¤à¤¾%s'; $lang['img_title'] = 'शिरà¥à¤·à¤•:'; $lang['img_caption'] = 'निमà¥à¤¨ लेख:'; $lang['img_date'] = 'मिति:'; @@ -193,3 +201,5 @@ $lang['i_pol1'] = 'Public विकि (पठन सवैका $lang['i_pol2'] = 'बनà¥à¤¦ विकि (पठन , लेखन, अपलोड ) दरà¥à¤¤à¤¾ भà¤à¤•ा पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ा लागि मातà¥à¤° ।'; $lang['i_retry'] = 'पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['recent_global'] = 'तपाई अहिले %s नेमसà¥à¤ªà¥‡à¤¸ भितà¥à¤° भà¤à¤•ा परिवरà¥à¤¤à¤¨ हेरà¥à¤¦à¥ˆà¤¹à¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›à¥¤ तपाई पà¥à¤°à¥ˆ विकिमा भà¤à¤•ो परिवरà¥à¤¤à¤¨ हेरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›.'; +$lang['email_signature_text'] = 'यो पतà¥à¤° DokuWiki ले, मा तयार पारेको हो । +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ne/pwconfirm.txt b/dokuwiki/inc/lang/ne/pwconfirm.txt index 1d8cd9fd..0552cc55 100644 --- a/dokuwiki/inc/lang/ne/pwconfirm.txt +++ b/dokuwiki/inc/lang/ne/pwconfirm.txt @@ -7,6 +7,3 @@ कृपया तपाईको माग साचà¥à¤šà¥ˆ पठाइà¤à¤•ो थियो भनà¥à¤¨à¥‡ यकिन गराउनाको लागि तलाको लिङà¥à¤•मा पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । @CONFIRM@ - --- -यो पतà¥à¤° DokuWiki ले @DOKUWIKIURL@ मा तयार पारेको हो । diff --git a/dokuwiki/inc/lang/ne/uploadmail.txt b/dokuwiki/inc/lang/ne/uploadmail.txt index 74ea4640..a0237978 100644 --- a/dokuwiki/inc/lang/ne/uploadmail.txt +++ b/dokuwiki/inc/lang/ne/uploadmail.txt @@ -7,7 +7,3 @@ आकार : @SIZE@ MIME पà¥à¤°à¤•ार : @MIME@ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ : @USER@ - --- -यो पतà¥à¤° DokuWiki ले -@DOKUWIKIURL@मा सà¥à¤µà¤¤: तयार पारेको हो। \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/adminplugins.txt b/dokuwiki/inc/lang/nl/adminplugins.txt index 916a9ca9..f006f922 100644 --- a/dokuwiki/inc/lang/nl/adminplugins.txt +++ b/dokuwiki/inc/lang/nl/adminplugins.txt @@ -1 +1 @@ -===== Additionele plugins ===== \ No newline at end of file +===== Toegevoegde plugins ===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/conflict.txt b/dokuwiki/inc/lang/nl/conflict.txt index 92621451..49a06b0a 100644 --- a/dokuwiki/inc/lang/nl/conflict.txt +++ b/dokuwiki/inc/lang/nl/conflict.txt @@ -2,4 +2,4 @@ Er bestaat een nieuwere versie van het document dat aangepast wordt. Dit komt voor als een andere gebruiker dit document tegelijk met jou wijzigt. -Bekijk de verschillen die beneden weergegeven worden uitvoerig, beslis dan welke versie de beste is en dus bewaard moet worden. Klik op ''opslaan'' om de eigen versie te bewaren. Klik op ''annuleren'' om de huidige versie te bewaren. +Bekijk de verschillen die beneden weergegeven worden uitvoerig, en beslis dan welke versie de beste is en dus bewaard moet worden. Kies ''opslaan'' om de eigen versie te bewaren. Kies ''annuleren'' om de huidige versie te bewaren. diff --git a/dokuwiki/inc/lang/nl/edit.txt b/dokuwiki/inc/lang/nl/edit.txt index 88a15cfe..4a441bf0 100644 --- a/dokuwiki/inc/lang/nl/edit.txt +++ b/dokuwiki/inc/lang/nl/edit.txt @@ -1 +1 @@ -Pas de pagina aan en klik op ''Opslaan''. Zie [[wiki:syntax]] voor de Wiki-syntax. Pas de pagina alleen aan als hij **verbeterd** kan worden. Als je iets wilt uitproberen kun je spelen in de [[playground:playground|zandbak]]. +Pas de pagina aan en klik op ''Opslaan''. Zie [[wiki:syntax]] voor de Wiki-syntax. Pas de pagina alleen aan als hij **verbeterd** kan worden. Als je iets wilt uitproberen kun je spelen in de [[playground:playground|speeltuin]]. diff --git a/dokuwiki/inc/lang/nl/jquery.ui.datepicker.js b/dokuwiki/inc/lang/nl/jquery.ui.datepicker.js index 9be14bb2..7fcbff1a 100644 --- a/dokuwiki/inc/lang/nl/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/nl/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Mathias Bynens */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { datepicker.regional.nl = { - closeText: 'Sluiten', - prevText: 'â†', - nextText: '→', - currentText: 'Vandaag', - monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', - 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], - monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', - 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], - dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], - dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], - dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], - weekHeader: 'Wk', - dateFormat: 'dd-mm-yy', + closeText: "Sluiten", + prevText: "â†", + nextText: "→", + currentText: "Vandaag", + monthNames: [ "januari", "februari", "maart", "april", "mei", "juni", + "juli", "augustus", "september", "oktober", "november", "december" ], + monthNamesShort: [ "jan", "feb", "mrt", "apr", "mei", "jun", + "jul", "aug", "sep", "okt", "nov", "dec" ], + dayNames: [ "zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag" ], + dayNamesShort: [ "zon", "maa", "din", "woe", "don", "vri", "zat" ], + dayNamesMin: [ "zo", "ma", "di", "wo", "do", "vr", "za" ], + weekHeader: "Wk", + dateFormat: "dd-mm-yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional.nl); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.nl ); return datepicker.regional.nl; -})); +} ) ); diff --git a/dokuwiki/inc/lang/nl/lang.php b/dokuwiki/inc/lang/nl/lang.php index aa008771..76c99bc0 100644 --- a/dokuwiki/inc/lang/nl/lang.php +++ b/dokuwiki/inc/lang/nl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author François Kooman * @author Jack van Klaren * @author Riny Heijdendael @@ -24,6 +24,15 @@ * @author gicalle * @author Rene * @author Johan Vervloet + * @author Mijndert + * @author Johan Wijnker + * @author Hugo Smet + * @author Mark C. Prins + * @author Wesley de Weerd + * @author Sjoerd + * @author Joachim David + * @author mark prins + * @author stafmans */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -33,18 +42,18 @@ $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Pagina aanpassen'; -$lang['btn_source'] = 'Toon broncode'; +$lang['btn_source'] = 'Toon bronpagina'; $lang['btn_show'] = 'Toon pagina'; $lang['btn_create'] = 'Maak deze pagina aan'; $lang['btn_search'] = 'Zoeken'; $lang['btn_save'] = 'Opslaan'; $lang['btn_preview'] = 'Voorbeeld'; $lang['btn_top'] = 'Terug naar boven'; -$lang['btn_newer'] = '<< recenter'; +$lang['btn_newer'] = '<< nieuwer'; $lang['btn_older'] = 'ouder >>'; $lang['btn_revs'] = 'Oude revisies'; $lang['btn_recent'] = 'Recente aanpassingen'; -$lang['btn_upload'] = 'Upload'; +$lang['btn_upload'] = 'Uploaden'; $lang['btn_cancel'] = 'Annuleren'; $lang['btn_index'] = 'Index'; $lang['btn_secedit'] = 'Aanpassen'; @@ -55,7 +64,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'; @@ -85,11 +93,12 @@ $lang['badpassconfirm'] = 'Sorry, het wachtwoord was onjuist'; $lang['minoredit'] = 'Kleine wijziging'; $lang['draftdate'] = 'Concept automatisch opgeslagen op'; $lang['nosecedit'] = 'De pagina is tussentijds veranderd, sectie-informatie was verouderd, volledige pagina geladen.'; -$lang['searchcreatepage'] = "Niks gevonden? Maak een nieuwe pagina met als naam je zoekopdracht. Klik hiervoor op ''Maak deze pagina aan''."; +$lang['searchcreatepage'] = 'Niks gevonden? Maak een nieuwe pagina met als naam je zoekopdracht. Klik hiervoor op \'\'Maak deze pagina aan\'\'.'; $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.'; @@ -104,6 +113,7 @@ $lang['profdeleteuser'] = 'Verwijder gebruiker'; $lang['profdeleted'] = 'Uw gebruikersaccount is verwijderd van deze wiki'; $lang['profconfdelete'] = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki.
    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'; @@ -168,7 +178,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!'; @@ -259,7 +268,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'; @@ -292,7 +300,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'; @@ -302,6 +309,7 @@ $lang['i_problems'] = 'De installer vond problemen, hieronder aangege $lang['i_modified'] = 'Uit veiligheidsoverwegingen werkt dit script alleen met nieuwe en onveranderde DokuWiki-installaties. Pak de bestanden opnieuw uit of raadpleeg de Dokuwiki installatie-instructies'; $lang['i_funcna'] = 'PHP functie %s is niet beschikbaar. Wellicht heeft je hosting provider deze uitgeschakeld?'; $lang['i_phpver'] = 'PHP-versie %s is lager dan de vereiste %s. Upgrade PHP.'; +$lang['i_mbfuncoverload'] = 'Om DokuWiki te draaien moet mbstring.func_overload uitgeschakeld zijn in php.ini.'; $lang['i_permfail'] = '%s is niet schrijfbaar voor DokuWiki. Pas de permissie-instellingen van deze directory aan.'; $lang['i_confexists'] = '%s bestaat reeds'; $lang['i_writeerr'] = 'Niet mogelijk om %s aan te maken. Controleer de directory/bestandspermissies en maak het bestand handmatig aan.'; @@ -316,7 +324,7 @@ $lang['i_pol2'] = 'Besloten wiki (lezen, schrijven en uploaden al $lang['i_allowreg'] = 'Toestaan dat gebruikers zichzelf registeren'; $lang['i_retry'] = 'Opnieuw'; $lang['i_license'] = 'Kies a.u.b. een licentie die u voor uw inhoud wilt gebruiken:'; -$lang['i_license_none'] = 'Toon geen licentie informatie'; +$lang['i_license_none'] = 'Toon geen licentie-informatie'; $lang['i_pop_field'] = 'Help ons om je DokuWiki ervaring te verbeteren'; $lang['i_pop_label'] = 'Stuur eens per maand geanonimiseerde gebruiksstatistieken naar de Dokuwiki ontwikkelaars'; $lang['recent_global'] = 'Je bekijkt momenteel de wijzigingen binnen de %s namespace. Je kunt ook de recente wijzigingen van de hele wiki bekijken.'; @@ -351,7 +359,12 @@ $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['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij %s.'; +$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "%s".'; +$lang['email_signature_text'] = 'Deze mail werd gegenereerd door DokuWiki op +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/nl/mailtext.txt b/dokuwiki/inc/lang/nl/mailtext.txt index d12093a5..32f6f635 100644 --- a/dokuwiki/inc/lang/nl/mailtext.txt +++ b/dokuwiki/inc/lang/nl/mailtext.txt @@ -10,8 +10,3 @@ Samenvatting : @SUMMARY@ User : @USER@ @DIFF@ - - --- -Deze mail werd gegenereerd door DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/nl/mailwrap.html b/dokuwiki/inc/lang/nl/mailwrap.html index 2ffe19a8..f15ec066 100644 --- a/dokuwiki/inc/lang/nl/mailwrap.html +++ b/dokuwiki/inc/lang/nl/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    - Deze mail is gegenereerd door DokuWiki op @DOKUWIKIURL@. + @EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/password.txt b/dokuwiki/inc/lang/nl/password.txt index 5041322d..94a180a9 100644 --- a/dokuwiki/inc/lang/nl/password.txt +++ b/dokuwiki/inc/lang/nl/password.txt @@ -4,7 +4,3 @@ Hier is je gebruikersinformatie voor @TITLE@ op @DOKUWIKIURL@ Gebruikersnaam: @LOGIN@ Wachtwoord : @PASSWORD@ - --- -Deze mail werd gegenereerd door DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/nl/pwconfirm.txt b/dokuwiki/inc/lang/nl/pwconfirm.txt index ab72ae7c..8b900b1b 100644 --- a/dokuwiki/inc/lang/nl/pwconfirm.txt +++ b/dokuwiki/inc/lang/nl/pwconfirm.txt @@ -7,7 +7,3 @@ Als je geen nieuw wachtwoord hebt aangevraagd kun je deze e-mail negeren. Volg de volgende link om te bevestigen dat je inderdaad een nieuw wachtwoord wilt: @CONFIRM@ - --- -Deze mail werd gegenereerd door DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/nl/registermail.txt b/dokuwiki/inc/lang/nl/registermail.txt index 5efb2514..8d23efdb 100644 --- a/dokuwiki/inc/lang/nl/registermail.txt +++ b/dokuwiki/inc/lang/nl/registermail.txt @@ -8,7 +8,3 @@ Datum : @DATE@ Browser : @BROWSER@ IP-adres : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Dit bericht is gegenereerd door DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/nl/subscr_digest.txt b/dokuwiki/inc/lang/nl/subscr_digest.txt index 9f0fe878..6a904a7c 100644 --- a/dokuwiki/inc/lang/nl/subscr_digest.txt +++ b/dokuwiki/inc/lang/nl/subscr_digest.txt @@ -10,6 +10,3 @@ Vorige revisie: @OLDPAGE@ Nieuwe revisie: @NEWPAGE@ Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op de wiki op @DOKUWIKIURL@ en bezoekt u @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven. - --- -Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/subscr_list.txt b/dokuwiki/inc/lang/nl/subscr_list.txt index 7cde7128..b77b075e 100644 --- a/dokuwiki/inc/lang/nl/subscr_list.txt +++ b/dokuwiki/inc/lang/nl/subscr_list.txt @@ -7,6 +7,3 @@ Pagina's in de namespace @PAGE@ van de @TITLE@ wiki zijn veranderd. Hier zijn de -------------------------------------------------------- Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven. - --- -Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/subscr_single.txt b/dokuwiki/inc/lang/nl/subscr_single.txt index 1cd0c85d..fe761f0f 100644 --- a/dokuwiki/inc/lang/nl/subscr_single.txt +++ b/dokuwiki/inc/lang/nl/subscr_single.txt @@ -1,6 +1,6 @@ Halllo! -De pagina @PAGE@ in de @TITLE@ wiki is veranderd. +De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen: -------------------------------------------------------- @@ -14,6 +14,3 @@ Vorige revisie: @OLDPAGE@ Nieuwe revisie: @NEWPAGE@ Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @NEWPAGE@. Vervolgens kunt u "Inschrijvingen wijzigen" gebruiken om inschrijvingen te stoppen. - --- -Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/nl/uploadmail.txt b/dokuwiki/inc/lang/nl/uploadmail.txt index 59920ae3..85a4b950 100644 --- a/dokuwiki/inc/lang/nl/uploadmail.txt +++ b/dokuwiki/inc/lang/nl/uploadmail.txt @@ -9,7 +9,3 @@ Hostname : @HOSTNAME@ Grootte : @SIZE@ MIME type: @MIME@ Gebruiker: @USER@ - --- -Dit bericht is gegenereerd door DokuWiki op -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/no/backlinks.txt b/dokuwiki/inc/lang/no/backlinks.txt index 9fe72066..2298acc4 100644 --- a/dokuwiki/inc/lang/no/backlinks.txt +++ b/dokuwiki/inc/lang/no/backlinks.txt @@ -1,3 +1,3 @@ -====== Tilbakelinker ====== +====== Tilbakelenker ====== -Dette er en liste over sider som ser ut til Ã¥ linke tilbake til den aktuelle siden. \ No newline at end of file +Dette er en liste over sider som ser ut til Ã¥ lenke tilbake til denne siden. \ No newline at end of file diff --git a/dokuwiki/inc/lang/no/jquery.ui.datepicker.js b/dokuwiki/inc/lang/no/jquery.ui.datepicker.js index 8917b6a2..8a755aae 100644 --- a/dokuwiki/inc/lang/no/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/no/jquery.ui.datepicker.js @@ -1,37 +1,50 @@ /* Norwegian initialisation for the jQuery UI date picker plugin. */ /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['no'] = { - closeText: 'Lukk', - prevText: '«Forrige', - nextText: 'Neste»', - currentText: 'I dag', - monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], - monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], - dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], - dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], - dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], - weekHeader: 'Uke', - dateFormat: 'dd.mm.yy', +datepicker.regional.no = { + closeText: "Lukk", + prevText: "«Forrige", + nextText: "Neste»", + currentText: "I dag", + monthNames: [ + "januar", + "februar", + "mars", + "april", + "mai", + "juni", + "juli", + "august", + "september", + "oktober", + "november", + "desember" + ], + monthNamesShort: [ "jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des" ], + dayNamesShort: [ "søn","man","tir","ons","tor","fre","lør" ], + dayNames: [ "søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag" ], + dayNamesMin: [ "sø","ma","ti","on","to","fr","lø" ], + weekHeader: "Uke", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: '' + yearSuffix: "" }; -datepicker.setDefaults(datepicker.regional['no']); +datepicker.setDefaults( datepicker.regional.no ); -return datepicker.regional['no']; +return datepicker.regional.no; -})); +} ) ); diff --git a/dokuwiki/inc/lang/no/lang.php b/dokuwiki/inc/lang/no/lang.php index aeea982f..bc946366 100644 --- a/dokuwiki/inc/lang/no/lang.php +++ b/dokuwiki/inc/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Reidar Mosvold * @author Jorge Barrera Grandon * @author Rune Rasmussen [http://www.syntaxerror.no/] @@ -21,6 +21,11 @@ * @author Thomas Juberg * @author Boris * @author Christopher Schive + * @author Patrick + * @author Danny Buckhof + * @author Arne Hanssen + * @author Arne Hanssen + * @author Patrick Sletvold */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -28,7 +33,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'; @@ -52,7 +57,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'; @@ -81,12 +85,13 @@ $lang['badlogin'] = 'Ugyldig brukernavn og/eller passord.'; $lang['badpassconfirm'] = 'Beklager, passordet var feil'; $lang['minoredit'] = 'Mindre endringer'; $lang['draftdate'] = 'Kladd autolagret'; -$lang['nosecedit'] = 'Siden ble endret i mellomtiden, seksjonsinfo har blitt foreldet - lastet full side istedet.'; -$lang['searchcreatepage'] = "Hvis du ikke finner det du leter etter, sÃ¥ kan du skape en ny side med samme navn som ditt søk ved Ã¥ klikke pÃ¥ ''**Lag denne siden**''-knappen."; +$lang['nosecedit'] = 'Siden er i mellomtiden endret, seksjonsinfo har blitt foreldet - lastet full side istedet.'; +$lang['searchcreatepage'] = 'Hvis du ikke finner det du leter etter, sÃ¥ kan du skape en ny side med samme navn som ditt søk ved Ã¥ klikke pÃ¥ \'\'**Lag denne siden**\'\'-knappen.'; $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.'; @@ -99,8 +104,9 @@ $lang['profchanged'] = 'Brukerprofilen ble vellykket oppdatert.'; $lang['profnodelete'] = 'Denne wikien støtter ikke sletting av brukere'; $lang['profdeleteuser'] = 'Slett konto'; $lang['profdeleted'] = 'Din brukerkonto har blitt slettet fra denne wikien'; -$lang['profconfdelete'] = 'Jeg ønsker Ã¥ fjerne min konto fra denne wikien.
    Denne handlingen kan ikke omgjøres.'; +$lang['profconfdelete'] = 'Jeg ønsker å fjerne min konto fra denne wikien.
    Denne handlingen kan ikke gjøres om.'; $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'; @@ -164,8 +170,7 @@ $lang['js']['media_cancel'] = 'fjern'; $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['mediaselect'] = 'Mediefiler'; $lang['uploadsucc'] = 'Opplastingen var vellykket'; $lang['uploadfail'] = 'Opplastingen var mislykket. Kanskje feil rettigheter?'; $lang['uploadwrong'] = 'Opplastingen ble nektet. Denne filendelsen er ikke tillatt!'; @@ -183,7 +188,7 @@ $lang['accessdenied'] = 'Du har ikke tilgang til Ã¥ se denne siden'; $lang['mediausage'] = 'Bruk følgende syntaks til Ã¥ referere til denne filen:'; $lang['mediaview'] = 'Vis original fil'; $lang['mediaroot'] = 'rot'; -$lang['mediaupload'] = 'Last opp en fil til gjeldende navnerom her. For Ã¥ opprette undernavnerom, før dem opp før filnavn i "Last opp som" adskilt med kolon.'; +$lang['mediaupload'] = 'Last opp en fil til gjeldende navnerom her. For Ã¥ opprette undernavnerom, før dem opp før filnavnet adskilt med kolon.'; $lang['mediaextchange'] = 'Filendelse endret fra .%s til .%s!'; $lang['reference'] = 'Referanser for'; $lang['ref_inuse'] = 'Denne filen kan ikke slettes fordi den er fortsatt i bruk pÃ¥ følgende sider:'; @@ -227,7 +232,7 @@ $lang['mail_changed'] = 'side endret:'; $lang['mail_subscribe_list'] = 'side endret i \'namespace\':'; $lang['mail_new_user'] = 'ny bruker:'; $lang['mail_upload'] = 'fil opplastet:'; -$lang['changes_type'] = 'Vis endringer av'; +$lang['changes_type'] = 'Vis endringer for'; $lang['pages_changes'] = 'Sider'; $lang['media_changes'] = 'Mediefiler'; $lang['both_changes'] = 'BÃ¥de sider og mediefiler'; @@ -256,7 +261,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'; @@ -289,7 +293,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'; @@ -299,8 +302,9 @@ $lang['i_problems'] = 'Installasjonen oppdaget noen problemer, disse $lang['i_modified'] = 'For sikkerhets skyld vil dette skriptet bare virke med en ny og uendret Dokuwiki-installsjon. Du bør enten pakke ut filene pÃ¥ nytt fra den nedlastede pakken, eller konsultere den komplette Dokuwiki-installasjonsinstruksen'; -$lang['i_funcna'] = 'PHP-funksjonen %s er ikke tilgjengelig. Kanskje din leverandør har deaktivert den av noen grunn?'; +$lang['i_funcna'] = 'PHP-funksjonen %s er ikke tilgjengelig. Kanskje din nettleverandør har deaktivert denne?'; $lang['i_phpver'] = 'Din PHP versjon %s er lavere enn kravet %s. Du mÃ¥ oppgradere PHP installasjonen. '; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload mÃ¥ deaktiveres i php.ini for Ã¥ kjøre DokuWiki.'; $lang['i_permfail'] = '%s er ikke skrivbar for DokuWiki. Du mÃ¥ fikse rettighetene for denne mappen!'; $lang['i_confexists'] = '%s eksisterer allerede'; $lang['i_writeerr'] = 'Kunne ikke opprette %s. Du mÃ¥ sjekke mappe-/filrettigheter og opprette filen manuelt.'; @@ -320,7 +324,7 @@ $lang['i_license'] = 'Velg lisens som du vil legge ut innholdet unde $lang['i_license_none'] = 'Ikke vis noen lisensinformasjon'; $lang['i_pop_field'] = 'Venligst hejlp oss Ã¥ forbedre Dokuwiki-opplevelsen:'; $lang['i_pop_label'] = 'Sand annonyme bruksdata til Dokuwiki-utviklerene, en gang i mÃ¥neden'; -$lang['recent_global'] = 'Du ser nÃ¥ pÃ¥ endringene i navnerommet %s. Du kan ogsÃ¥se pÃ¥ nylig foretatte endringer for hele wikien.'; +$lang['recent_global'] = 'Du ser nÃ¥ pÃ¥ endringene i navnerommet %s. Du kan ogsÃ¥ se pÃ¥ nylig foretatte endringer for hele wikien. '; $lang['years'] = '%d Ã¥r siden'; $lang['months'] = '%d mÃ¥neder siden'; $lang['weeks'] = '%d uker siden'; @@ -346,13 +350,18 @@ $lang['media_search'] = 'Søk i navnerommet %s.'; $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.'; $lang['media_update'] = 'Last opp ny versjon'; $lang['media_restore'] = 'Gjenopprett denne versjonen'; +$lang['media_acl_warning'] = 'Kanskje er denne listen ikke komplett, pga. restrisjoner satt i ACL eller skjulte sider.'; $lang['currentns'] = 'gjeldende navnemellomrom'; $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Ã¥ %s'; +$lang['unable_to_parse_date'] = 'Ikke mulig Ã¥ tolke "%s".'; +$lang['email_signature_text'] = 'Denne meldingen ble laget av DokuWiki +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/no/login.txt b/dokuwiki/inc/lang/no/login.txt index 149cf003..877fff0d 100644 --- a/dokuwiki/inc/lang/no/login.txt +++ b/dokuwiki/inc/lang/no/login.txt @@ -1,4 +1,4 @@ ====== Logg inn ====== -Du er ikke innlogget! Angi ditt brukernavn og passord nedenfor for Ã¥ logge inn. Støtte for sÃ¥kalte "cookies" mÃ¥ være aktivert i din nettleser for at du skal kunne logge inn. +Du er ikke innlogget! Angi ditt brukernavn og passord nedenfor for Ã¥ logge inn. Støtte for informasjonskapsler (cockies) mÃ¥ være aktivert i din nettleser for at du skal kunne logge inn. diff --git a/dokuwiki/inc/lang/no/mailtext.txt b/dokuwiki/inc/lang/no/mailtext.txt index 9c0714c2..7260733a 100644 --- a/dokuwiki/inc/lang/no/mailtext.txt +++ b/dokuwiki/inc/lang/no/mailtext.txt @@ -10,8 +10,3 @@ Redigeringskommentar : @SUMMARY@ Bruker : @USER@ @DIFF@ - - --- -Denne meldingen ble laget av DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/no/password.txt b/dokuwiki/inc/lang/no/password.txt index bc4e89f2..46023e33 100644 --- a/dokuwiki/inc/lang/no/password.txt +++ b/dokuwiki/inc/lang/no/password.txt @@ -4,7 +4,3 @@ Her er dine brukeropplysninger for @TITLE@ pÃ¥ @DOKUWIKIURL@ Brukernavn : @LOGIN@ Passord : @PASSWORD@ - --- -Denne meldingen ble laget av DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/no/pwconfirm.txt b/dokuwiki/inc/lang/no/pwconfirm.txt index 36163c6e..29ff6f20 100644 --- a/dokuwiki/inc/lang/no/pwconfirm.txt +++ b/dokuwiki/inc/lang/no/pwconfirm.txt @@ -9,7 +9,3 @@ For Ã¥ bekrefte at forespørselen virkelig kom fra deg kan du bruke følgende lenke: @CONFIRM@ - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/no/registermail.txt b/dokuwiki/inc/lang/no/registermail.txt index 35ed253a..89022738 100644 --- a/dokuwiki/inc/lang/no/registermail.txt +++ b/dokuwiki/inc/lang/no/registermail.txt @@ -8,7 +8,3 @@ Dato : @DATE@ Nettleser : @BROWSER@ IP-adresse : @IPADDRESS@ Tjener : @HOSTNAME@ - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/no/resendpwd.txt b/dokuwiki/inc/lang/no/resendpwd.txt index 21625d3f..315ab81e 100644 --- a/dokuwiki/inc/lang/no/resendpwd.txt +++ b/dokuwiki/inc/lang/no/resendpwd.txt @@ -1,4 +1,4 @@ ====== Send nytt passord ====== -Fyll inn ditt brukernavn i skjema nedenfor for Ã¥ be om nytt passord for din konto i denne wiki. En bekreftelseslenke vil bli sent til din e-postadresse. +Fyll inn ditt brukernavn i skjema nedenfor for Ã¥ be om nytt passord for din konto i denne wiki. En bekreftelseslenke vil bli sendt til din e-postadresse. diff --git a/dokuwiki/inc/lang/no/subscr_digest.txt b/dokuwiki/inc/lang/no/subscr_digest.txt index 670d39d3..90da8e69 100644 --- a/dokuwiki/inc/lang/no/subscr_digest.txt +++ b/dokuwiki/inc/lang/no/subscr_digest.txt @@ -11,10 +11,6 @@ Gammel versjon : @OLDPAGE@ Ny versjon: @NEWPAGE@ For Ã¥ avslutte varslingen, logg inn pÃ¥ -@DOKUWIKIURL@ og gÃ¥ til +@DOKUWIKIURL@ og gÃ¥ til @SUBSCRIBE@ og avslutt abonnementet pÃ¥ endringer av siden eller i navnerommet. - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/no/subscr_list.txt b/dokuwiki/inc/lang/no/subscr_list.txt index 860d88d2..d06bc234 100644 --- a/dokuwiki/inc/lang/no/subscr_list.txt +++ b/dokuwiki/inc/lang/no/subscr_list.txt @@ -8,10 +8,6 @@ Her er endringene: -------------------------------------------------------- For Ã¥ avslutte varslinga, logg inn pÃ¥ -@DOKUWIKIURL@ og gÃ¥ til +@DOKUWIKIURL@ og gÃ¥ til @SUBSCRIBE@ og avslutt abonnementet pÃ¥ endringer av sida eller i navnerommet. - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/no/subscr_single.txt b/dokuwiki/inc/lang/no/subscr_single.txt index b26b3a87..5fb77162 100644 --- a/dokuwiki/inc/lang/no/subscr_single.txt +++ b/dokuwiki/inc/lang/no/subscr_single.txt @@ -14,10 +14,6 @@ Gammel versjon : @OLDPAGE@ Ny versjon: @NEWPAGE@ For Ã¥ avslutte varslingen, logg inn pÃ¥ -@DOKUWIKIURL@, gÃ¥ til +@DOKUWIKIURL@, gÃ¥ til @SUBSCRIBE@ og avslutt abonnementet pÃ¥ endringer av siden eller i navnerommet. - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/no/uploadmail.txt b/dokuwiki/inc/lang/no/uploadmail.txt index 2890d962..237ec65b 100644 --- a/dokuwiki/inc/lang/no/uploadmail.txt +++ b/dokuwiki/inc/lang/no/uploadmail.txt @@ -9,7 +9,3 @@ Vertnavn : @HOSTNAME@ Størrelse : @SIZE@ MIME-type : @MIME@ Bruker : @USER@ - --- -Denne e-posten ble generert av DokuWiki pÃ¥ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pl/jquery.ui.datepicker.js b/dokuwiki/inc/lang/pl/jquery.ui.datepicker.js index a04de8e8..c2fddc13 100644 --- a/dokuwiki/inc/lang/pl/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/pl/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Polish initialisation for the jQuery UI date picker plugin. */ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['pl'] = { - closeText: 'Zamknij', - prevText: '<Poprzedni', - nextText: 'NastÄ™pny>', - currentText: 'DziÅ›', - monthNames: ['StyczeÅ„','Luty','Marzec','KwiecieÅ„','Maj','Czerwiec', - 'Lipiec','SierpieÅ„','WrzesieÅ„','Październik','Listopad','GrudzieÅ„'], - monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', - 'Lip','Sie','Wrz','Pa','Lis','Gru'], - dayNames: ['Niedziela','PoniedziaÅ‚ek','Wtorek','Åšroda','Czwartek','PiÄ…tek','Sobota'], - dayNamesShort: ['Nie','Pn','Wt','Åšr','Czw','Pt','So'], - dayNamesMin: ['N','Pn','Wt','Åšr','Cz','Pt','So'], - weekHeader: 'Tydz', - dateFormat: 'dd.mm.yy', +datepicker.regional.pl = { + closeText: "Zamknij", + prevText: "<Poprzedni", + nextText: "NastÄ™pny>", + currentText: "DziÅ›", + monthNames: [ "StyczeÅ„","Luty","Marzec","KwiecieÅ„","Maj","Czerwiec", + "Lipiec","SierpieÅ„","WrzesieÅ„","Październik","Listopad","GrudzieÅ„" ], + monthNamesShort: [ "Sty","Lu","Mar","Kw","Maj","Cze", + "Lip","Sie","Wrz","Pa","Lis","Gru" ], + dayNames: [ "Niedziela","PoniedziaÅ‚ek","Wtorek","Åšroda","Czwartek","PiÄ…tek","Sobota" ], + dayNamesShort: [ "Nie","Pn","Wt","Åšr","Czw","Pt","So" ], + dayNamesMin: [ "N","Pn","Wt","Åšr","Cz","Pt","So" ], + weekHeader: "Tydz", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['pl']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.pl ); -return datepicker.regional['pl']; +return datepicker.regional.pl; -})); +} ) ); diff --git a/dokuwiki/inc/lang/pl/lang.php b/dokuwiki/inc/lang/pl/lang.php index baf3c28a..d9c90cdf 100644 --- a/dokuwiki/inc/lang/pl/lang.php +++ b/dokuwiki/inc/lang/pl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Grzegorz Å»ur * @author Mariusz Kujawski * @author Maciej Kurczewski @@ -17,6 +17,7 @@ * @author Tomasz Bosak * @author PaweÅ‚ Jan CzochaÅ„ski * @author Mati + * @author Maciej Helt */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -24,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Ä™'; @@ -48,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'; @@ -161,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'; @@ -250,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'; @@ -283,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'; @@ -294,6 +291,7 @@ $lang['i_modified'] = 'Ze wzglÄ™dów bezpieczeÅ„stwa, ten skrypt dzia Aby uruchomić instalator ponownie, rozpakuj archiwum DokuWiki lub zapoznaj siÄ™ z instrukcjÄ… instalacji Dokuwiki'; $lang['i_funcna'] = 'Funkcja PHP %s jest niedostÄ™pna.'; $lang['i_phpver'] = 'Wersja PHP %s jest niższa od wymaganej %s. Zaktualizuj instalacjÄ™ PHP.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload musi zostać wyłączone w pliku php.ini aby móc uruchomić DokuWiki.'; $lang['i_permfail'] = 'DokuWiki nie ma prawa zapisu w katalogu %s. ZmieÅ„ uprawnienia zapisu dla tego katalogu!'; $lang['i_confexists'] = '%s już istnieje'; $lang['i_writeerr'] = 'Nie można utworzyć %s. Sprawdź uprawnienia do katalogu lub pliku i stwórz plik rÄ™cznie.'; @@ -347,3 +345,5 @@ $lang['currentns'] = 'Obecny katalog'; $lang['searchresult'] = 'Wyniki wyszukiwania'; $lang['plainhtml'] = 'Czysty HTML'; $lang['wikimarkup'] = 'Znaczniki'; +$lang['email_signature_text'] = 'List zostaÅ‚ wygenerowany przez DokuWiki pod adresem +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/pl/mailtext.txt b/dokuwiki/inc/lang/pl/mailtext.txt index 1180966b..cae98db3 100644 --- a/dokuwiki/inc/lang/pl/mailtext.txt +++ b/dokuwiki/inc/lang/pl/mailtext.txt @@ -11,8 +11,3 @@ Opis zmian : @SUMMARY@ Użytkownik : @USER@ @DIFF@ - - --- -List zostaÅ‚ wygenerowany przez DokuWiki pod adresem -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pl/mailwrap.html b/dokuwiki/inc/lang/pl/mailwrap.html index 61772866..d2571909 100644 --- a/dokuwiki/inc/lang/pl/mailwrap.html +++ b/dokuwiki/inc/lang/pl/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Ta wiadomość została wygenerowana przez DokuWiki na @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pl/password.txt b/dokuwiki/inc/lang/pl/password.txt index 948472f1..745556fa 100644 --- a/dokuwiki/inc/lang/pl/password.txt +++ b/dokuwiki/inc/lang/pl/password.txt @@ -4,7 +4,3 @@ Dane użytkownika @TITLE@ pod adresem @DOKUWIKIURL@ Użytkownik : @LOGIN@ Hasło : @PASSWORD@ - --- -List został wygenerowany przez DokuWiki pod adresem -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pl/pwconfirm.txt b/dokuwiki/inc/lang/pl/pwconfirm.txt index f6ccca47..989de79e 100644 --- a/dokuwiki/inc/lang/pl/pwconfirm.txt +++ b/dokuwiki/inc/lang/pl/pwconfirm.txt @@ -7,7 +7,3 @@ Jeśli to nie Ty prosiłeś(aś) o nowe hasło, zignoruj ten list. Aby potwierdzić prośbę o hasło, przejdź na następującą stronę. @CONFIRM@ - --- -List został wygenerowany przez DokuWiki pod adresem -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pl/registermail.txt b/dokuwiki/inc/lang/pl/registermail.txt index 18437fa0..00229673 100644 --- a/dokuwiki/inc/lang/pl/registermail.txt +++ b/dokuwiki/inc/lang/pl/registermail.txt @@ -9,7 +9,3 @@ Data : @DATE@ Przeglądarka : @BROWSER@ Adres IP : @IPADDRESS@ Nazwa DNS : @HOSTNAME@ - --- -List został wygenerowany przez DokuWiki pod adresem -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pl/subscr_digest.txt b/dokuwiki/inc/lang/pl/subscr_digest.txt index 2b1f63c1..7abbb359 100644 --- a/dokuwiki/inc/lang/pl/subscr_digest.txt +++ b/dokuwiki/inc/lang/pl/subscr_digest.txt @@ -15,7 +15,3 @@ Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na @SUBSCRIBE@ i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub katalogach. - --- -Ta wiadomość została wygenerowana przez DokuWiki na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pl/subscr_list.txt b/dokuwiki/inc/lang/pl/subscr_list.txt index 9a74d757..633225f8 100644 --- a/dokuwiki/inc/lang/pl/subscr_list.txt +++ b/dokuwiki/inc/lang/pl/subscr_list.txt @@ -12,7 +12,3 @@ Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na @SUBSCRIBE@ i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub katalogach. - --- -Ta wiadomość została wygenerowana przez DokuWiki na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pl/subscr_single.txt b/dokuwiki/inc/lang/pl/subscr_single.txt index 3f4bc731..0c8c3eae 100644 --- a/dokuwiki/inc/lang/pl/subscr_single.txt +++ b/dokuwiki/inc/lang/pl/subscr_single.txt @@ -18,7 +18,3 @@ Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na @SUBSCRIBE@ i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub katalogach. - --- -Ta wiadomość została wygenerowana przez DokuWiki na -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pl/uploadmail.txt b/dokuwiki/inc/lang/pl/uploadmail.txt index e76ec80e..a8daa05e 100644 --- a/dokuwiki/inc/lang/pl/uploadmail.txt +++ b/dokuwiki/inc/lang/pl/uploadmail.txt @@ -10,7 +10,3 @@ Nazwa DNS : @HOSTNAME@ Rozmiar : @SIZE@ Typ MIME : @MIME@ Użytkownik : @USER@ - --- -List został wygenerowany przez DokuWiki pod adresem -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pt-br/jquery.ui.datepicker.js b/dokuwiki/inc/lang/pt-br/jquery.ui.datepicker.js index d6bd8990..aeae7ca4 100644 --- a/dokuwiki/inc/lang/pt-br/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/pt-br/jquery.ui.datepicker.js @@ -1,37 +1,45 @@ /* Brazilian initialisation for the jQuery UI date picker plugin. */ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['pt-BR'] = { - closeText: 'Fechar', - prevText: '<Anterior', - nextText: 'Próximo>', - currentText: 'Hoje', - monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', - 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], - monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', - 'Jul','Ago','Set','Out','Nov','Dez'], - dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], - dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], - dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], - weekHeader: 'Sm', - dateFormat: 'dd/mm/yy', +datepicker.regional[ "pt-BR" ] = { + closeText: "Fechar", + prevText: "<Anterior", + nextText: "Próximo>", + currentText: "Hoje", + monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho", + "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ], + monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun", + "Jul","Ago","Set","Out","Nov","Dez" ], + dayNames: [ + "Domingo", + "Segunda-feira", + "Terça-feira", + "Quarta-feira", + "Quinta-feira", + "Sexta-feira", + "Sábado" + ], + dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['pt-BR']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "pt-BR" ] ); -return datepicker.regional['pt-BR']; +return datepicker.regional[ "pt-BR" ]; -})); +} ) ); diff --git a/dokuwiki/inc/lang/pt-br/lang.php b/dokuwiki/inc/lang/pt-br/lang.php index be62af6f..1074914c 100644 --- a/dokuwiki/inc/lang/pt-br/lang.php +++ b/dokuwiki/inc/lang/pt-br/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Luis Fernando Enciso * @author Alauton/Loug * @author Frederico Gonçalves Guimarães @@ -24,6 +24,9 @@ * @author Dário Estevão * @author Juliano Marconi Lanigra * @author Ednei + * @author Hudson FAS + * @author Guilherme Cardoso + * @author Viliam Dias */ $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.
    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,7 +354,12 @@ $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['page_nonexist_rev'] = 'Página não encontrada em %s. Foi criada posteriormente em %s.'; +$lang['unable_to_parse_date'] = 'Impossível analisar em "%s".'; +$lang['email_signature_text'] = 'Essa mensagem foi gerada pelo DokuWiki em +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/pt-br/mailtext.txt b/dokuwiki/inc/lang/pt-br/mailtext.txt index e52535bf..5bdbfdde 100644 --- a/dokuwiki/inc/lang/pt-br/mailtext.txt +++ b/dokuwiki/inc/lang/pt-br/mailtext.txt @@ -10,8 +10,3 @@ Resumo da edição: @SUMMARY@ Usuário: @USER@ @DIFF@ - - --- -Essa mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt-br/mailwrap.html b/dokuwiki/inc/lang/pt-br/mailwrap.html index 80bea7a2..d2571909 100644 --- a/dokuwiki/inc/lang/pt-br/mailwrap.html +++ b/dokuwiki/inc/lang/pt-br/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Esta mensagem foi gerada pelo DokuWiki em @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt-br/password.txt b/dokuwiki/inc/lang/pt-br/password.txt index 199d6e13..0a7587a9 100644 --- a/dokuwiki/inc/lang/pt-br/password.txt +++ b/dokuwiki/inc/lang/pt-br/password.txt @@ -4,7 +4,3 @@ Aqui estão os seus dados de usuário para @TITLE@ em @DOKUWIKIURL@ Usuário : @LOGIN@ Senha : @PASSWORD@ - --- -Essa mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pt-br/pwconfirm.txt b/dokuwiki/inc/lang/pt-br/pwconfirm.txt index 2a7c8853..324f9df2 100644 --- a/dokuwiki/inc/lang/pt-br/pwconfirm.txt +++ b/dokuwiki/inc/lang/pt-br/pwconfirm.txt @@ -7,7 +7,3 @@ Se não foi você quem fez essa requisição, simplesmente ignore essa mensagem. Se você realmente deseja receber uma nova senha, por favor, utilize o link abaixo, para confirmar sua requisição. @CONFIRM@ - --- -Essa mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt-br/registermail.txt b/dokuwiki/inc/lang/pt-br/registermail.txt index 9bb6a00b..bbf2547c 100644 --- a/dokuwiki/inc/lang/pt-br/registermail.txt +++ b/dokuwiki/inc/lang/pt-br/registermail.txt @@ -8,7 +8,3 @@ Data: @DATE@ Navegador: @BROWSER@ Endereço IP: @IPADDRESS@ Nome do host: @HOSTNAME@ - --- -Essa mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt-br/subscr_digest.txt b/dokuwiki/inc/lang/pt-br/subscr_digest.txt index 77f76e1c..8251651c 100644 --- a/dokuwiki/inc/lang/pt-br/subscr_digest.txt +++ b/dokuwiki/inc/lang/pt-br/subscr_digest.txt @@ -14,7 +14,3 @@ Para cancelar as notificações de mudanças, entre em @DOKUWIKIURL@, vá até @SUBSCRIBE@ e cancele o monitoramento da página e/ou do espaço de nomes. - --- -Este e-mail foi gerado pelo DokuWiki em -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pt-br/subscr_list.txt b/dokuwiki/inc/lang/pt-br/subscr_list.txt index c6011d06..fb46777d 100644 --- a/dokuwiki/inc/lang/pt-br/subscr_list.txt +++ b/dokuwiki/inc/lang/pt-br/subscr_list.txt @@ -20,9 +20,7 @@ e então visite @SUBSCRIBE@ e cancele a inscrição de edição da página ou na Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@, visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace. --- -Este e-mail foi gerado pelo DokuWiki em -@DOKUWIKIURL@ - -preview.txt ====== Preview ====== + + +preview.txt ====== Preview ====== diff --git a/dokuwiki/inc/lang/pt-br/subscr_single.txt b/dokuwiki/inc/lang/pt-br/subscr_single.txt index b1c052e8..e59a1e1f 100644 --- a/dokuwiki/inc/lang/pt-br/subscr_single.txt +++ b/dokuwiki/inc/lang/pt-br/subscr_single.txt @@ -17,6 +17,3 @@ Para cancelar as notificações de mudanças, entre em @DOKUWIKIURL@, vá até @NEWPAGE@ e cancele o monitoramento da página e/ou do espaço de nomes. --- -Este e-mail foi gerado pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt-br/uploadmail.txt b/dokuwiki/inc/lang/pt-br/uploadmail.txt index a3ac9bac..8527f8e1 100644 --- a/dokuwiki/inc/lang/pt-br/uploadmail.txt +++ b/dokuwiki/inc/lang/pt-br/uploadmail.txt @@ -8,7 +8,3 @@ Nome do host: @HOSTNAME@ Tamanho: @SIZE@ Tipo MIME: @MIME@ Usuário: @USER@ - --- -Essa mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/admin.txt b/dokuwiki/inc/lang/pt/admin.txt index 366792a9..5b103b38 100644 --- a/dokuwiki/inc/lang/pt/admin.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/pt/adminplugins.txt b/dokuwiki/inc/lang/pt/adminplugins.txt index 3eac7af5..259f5ce4 100644 --- a/dokuwiki/inc/lang/pt/adminplugins.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/pt/backlinks.txt b/dokuwiki/inc/lang/pt/backlinks.txt index e78ddf87..4eb82cb2 100644 --- a/dokuwiki/inc/lang/pt/backlinks.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/pt/conflict.txt b/dokuwiki/inc/lang/pt/conflict.txt index d2af1fe1..49575fdb 100644 --- a/dokuwiki/inc/lang/pt/conflict.txt +++ b/dokuwiki/inc/lang/pt/conflict.txt @@ -1,9 +1,5 @@ -====== Conflito de Edição ====== +====== Existe uma versão mais recente ====== -**Atenção**: Existe uma versão mais recente do que a versão usada no começo da sua edição. Isto acontece quando outra pessoa editou este documento entretanto e já gravou as alterações efectuadas. +Existe uma versão mais recente do documento editado. Isto acontece quando um outro utilizador alterou o documento enquanto o estava a editar. -Por favor, examine todas as diferenças mostradas abaixo com atenção, e decida qual a versão que deverá ser tornada a mais actual: * Se escolher a sua versão será sobreposta à versão editada pela outra pessoa, que será perdida. * Se escolher a versão editada pela outra pessoa será a versão final, e a sua será perdida. - -**Nota**: Sem que efectue a consolidação das alterações de ambas as revisões ao documento irá sempre perder uma das versões. - ----- +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/dokuwiki/inc/lang/pt/denied.txt b/dokuwiki/inc/lang/pt/denied.txt index 3af81666..f4e8e011 100644 --- a/dokuwiki/inc/lang/pt/denied.txt +++ b/dokuwiki/inc/lang/pt/denied.txt @@ -1,4 +1,4 @@ ====== Permissão Negada ====== -Não possui direitos e permissões suficientes para continuar. +Desculpe, não tem direitos suficientes para continuar. diff --git a/dokuwiki/inc/lang/pt/diff.txt b/dokuwiki/inc/lang/pt/diff.txt index e27640aa..b7332626 100644 --- a/dokuwiki/inc/lang/pt/diff.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/pt/jquery.ui.datepicker.js b/dokuwiki/inc/lang/pt/jquery.ui.datepicker.js index bb46838e..b1afd7b3 100644 --- a/dokuwiki/inc/lang/pt/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/pt/jquery.ui.datepicker.js @@ -1,36 +1,44 @@ /* Portuguese initialisation for the jQuery UI date picker plugin. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['pt'] = { - closeText: 'Fechar', - prevText: 'Anterior', - nextText: 'Seguinte', - currentText: 'Hoje', - monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', - 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], - monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', - 'Jul','Ago','Set','Out','Nov','Dez'], - dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], - dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], - dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], - weekHeader: 'Sem', - dateFormat: 'dd/mm/yy', +datepicker.regional.pt = { + closeText: "Fechar", + prevText: "Anterior", + nextText: "Seguinte", + currentText: "Hoje", + monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho", + "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ], + monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun", + "Jul","Ago","Set","Out","Nov","Dez" ], + dayNames: [ + "Domingo", + "Segunda-feira", + "Terça-feira", + "Quarta-feira", + "Quinta-feira", + "Sexta-feira", + "Sábado" + ], + dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + weekHeader: "Sem", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['pt']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.pt ); -return datepicker.regional['pt']; +return datepicker.regional.pt; -})); +} ) ); diff --git a/dokuwiki/inc/lang/pt/lang.php b/dokuwiki/inc/lang/pt/lang.php index 54f56f8e..890a6fd5 100644 --- a/dokuwiki/inc/lang/pt/lang.php +++ b/dokuwiki/inc/lang/pt/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author José Carlos Monteiro * @author José Monteiro * @author Enrico Nicoletto @@ -11,6 +11,10 @@ * @author José Campos zecarlosdecampos@gmail.com * @author Murilo * @author Paulo Silva + * @author Guido Salatino + * @author Romulo Pereira + * @author Paulo Carmino + * @author Alfredo Silva */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -19,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'] = 'Gravar'; -$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'; -$lang['btn_recent'] = 'Alt. Recentes'; -$lang['btn_upload'] = 'Carregar'; +$lang['btn_revs'] = 'Revisões antigas'; +$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'; @@ -77,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.'; @@ -91,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.
    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'; @@ -106,6 +111,7 @@ $lang['searchmedia_in'] = 'Procurar em %s'; $lang['txt_upload'] = 'Escolha ficheiro para carregar:'; $lang['txt_filename'] = 'Carregar como (opcional):'; $lang['txt_overwrt'] = 'Escrever por cima do ficheiro já existente'; +$lang['maxuploadsize'] = 'Publique max. %s por arquivo.'; $lang['lockedby'] = 'Bloqueado por:'; $lang['lockexpire'] = 'Expira em:'; $lang['js']['willexpire'] = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos use o botão Prever para re-iniciar o temporizador de bloqueio.'; @@ -153,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.'; @@ -190,6 +195,8 @@ $lang['diff_side'] = 'Lado a lado'; $lang['diffprevrev'] = 'Revisão anterior'; $lang['diffnextrev'] = 'Próxima revisão'; $lang['difflastrev'] = 'Última revisão'; +$lang['diffbothprevrev'] = 'Ambos os lados da revisão anterior'; +$lang['diffbothnextrev'] = 'Ambos os lados da próxima revisão'; $lang['line'] = 'Linha'; $lang['breadcrumb'] = 'Está em:'; $lang['youarehere'] = 'Está aqui:'; @@ -242,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'; @@ -275,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'; @@ -285,6 +290,7 @@ $lang['i_problems'] = 'O instalador encontrou alguns problemas, indic $lang['i_modified'] = 'Por razões de segurança, este script só funciona em novas e não-modificadas instalações do Dokuwiki. Deve por isso re-extrair os ficheiros do pacote que descarregou ou então deve consultar as completas instruções de instalação do Dokuwiki installation instructions'; $lang['i_funcna'] = 'A função PHP %s não está disponível. Terá o serviço de alojamento desactivado-a por alguma razão?'; $lang['i_phpver'] = 'A versão de PHP actual %s é inferior à versão mínima %s. É preciso actualizar a instalação PHP.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload deve ser desabilitada no php.ini para executar DokuWiki.'; $lang['i_permfail'] = '%s não permite que o DokuWiki escreva nela. É preciso corrigir as permissões desta pasta!'; $lang['i_confexists'] = '%s já existe'; $lang['i_writeerr'] = 'Não foi possível criar %s. É preciso verificar as permissões e criar o ficheiro manualmente.'; @@ -326,6 +332,7 @@ $lang['media_files'] = 'Ficheiros em %s'; $lang['media_upload'] = 'Enviar para o grupo %s.'; $lang['media_search'] = 'Procurar no grupo %s.'; $lang['media_view'] = '%s'; +$lang['media_viewold'] = '%s em %s'; $lang['media_edit'] = 'Editar %s'; $lang['media_history'] = 'Histórico do %s'; $lang['media_meta_edited'] = 'metadata editada'; @@ -337,3 +344,7 @@ $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 %s.'; +$lang['unable_to_parse_date'] = 'Não é possível analisar o parâmetro "%s".'; +$lang['email_signature_text'] = 'Este email foi gerado por DokuWiki em +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/pt/mailtext.txt b/dokuwiki/inc/lang/pt/mailtext.txt index 915a147e..844f2461 100644 --- a/dokuwiki/inc/lang/pt/mailtext.txt +++ b/dokuwiki/inc/lang/pt/mailtext.txt @@ -12,9 +12,3 @@ Edit Summary : @SUMMARY@ User : @USER@ @DIFF@ - - - ----- - -Esta mensagem foi gerada automaticamente pelo motor DokuWiki em @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/pt/password.txt b/dokuwiki/inc/lang/pt/password.txt index 70ecf91e..cfd81f3b 100644 --- a/dokuwiki/inc/lang/pt/password.txt +++ b/dokuwiki/inc/lang/pt/password.txt @@ -4,7 +4,3 @@ Aqui estão as suas credenciais de autenticação para @TITLE@, em @DOKUWIKIURL@ Utilizador : @LOGIN@ Senha : @PASSWORD@ - ----- -Esta mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/pwconfirm.txt b/dokuwiki/inc/lang/pt/pwconfirm.txt index 2848a116..00fee3e4 100644 --- a/dokuwiki/inc/lang/pt/pwconfirm.txt +++ b/dokuwiki/inc/lang/pt/pwconfirm.txt @@ -7,7 +7,3 @@ Se não foi você que efectuou o pedido então por favor ignore esta mensagem. Senão, para confirmar o pedido, por favor siga este link: @CONFIRM@ - --- - -Esta mensagem foi gerada automaticamente pelo motor DokuWiki em @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/registermail.txt b/dokuwiki/inc/lang/pt/registermail.txt index b9c1f164..7f5333da 100644 --- a/dokuwiki/inc/lang/pt/registermail.txt +++ b/dokuwiki/inc/lang/pt/registermail.txt @@ -8,7 +8,3 @@ Data : @DATE@ Browser : @BROWSER@ Endereço IP : @IPADDRESS@ Hostname : @HOSTNAME@ - ----- - -Esta mensagem foi gerada pelo DokuWiki em @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/resetpwd.txt b/dokuwiki/inc/lang/pt/resetpwd.txt new file mode 100644 index 00000000..898772a2 --- /dev/null +++ b/dokuwiki/inc/lang/pt/resetpwd.txt @@ -0,0 +1,3 @@ +====== Definir nova senha ====== + +Digite uma nova senha para a sua conta nesta wiki. \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/subscr_digest.txt b/dokuwiki/inc/lang/pt/subscr_digest.txt index 3f8a814c..943bba8a 100644 --- a/dokuwiki/inc/lang/pt/subscr_digest.txt +++ b/dokuwiki/inc/lang/pt/subscr_digest.txt @@ -14,7 +14,3 @@ Para cancelar as notificações de página, inicie sessão na wiki em @DOKUWIKIURL@, visite @SUBSCRIBE@ e des-subscreva as alterações à página e/ou nome espaço de nome. - --- -Este email foi gerado por DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/subscr_list.txt b/dokuwiki/inc/lang/pt/subscr_list.txt index 65325b9e..fdaef5e0 100644 --- a/dokuwiki/inc/lang/pt/subscr_list.txt +++ b/dokuwiki/inc/lang/pt/subscr_list.txt @@ -7,11 +7,7 @@ Eis as páginas alteradas: @DIFF@ -------------------------------------------------------- -Para cancelar as notificações de páginas, inicie sessão na wiki em +Para cancelar as notificações de páginas, inicie sessão na wiki em @DOKUWIKIURL@, visite @SUBSCRIBE@ e des-subscreva às alterações da página e/ou espaço de nome. - --- -Este email foi gerado por DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/subscr_single.txt b/dokuwiki/inc/lang/pt/subscr_single.txt index 469c6bfb..10674f75 100644 --- a/dokuwiki/inc/lang/pt/subscr_single.txt +++ b/dokuwiki/inc/lang/pt/subscr_single.txt @@ -17,7 +17,3 @@ Para cancelar as notificações de página, inicie sessão no wiki em @DOKUWIKIURL@, visite @SUBSCRIBE@ e des-subscreva às alterações de página e/ou espaço de nome. - --- -Este email foi gerado automaticamente por DokuWiki em -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/pt/uploadmail.txt b/dokuwiki/inc/lang/pt/uploadmail.txt index bb571ffa..09787e1d 100644 --- a/dokuwiki/inc/lang/pt/uploadmail.txt +++ b/dokuwiki/inc/lang/pt/uploadmail.txt @@ -9,7 +9,3 @@ Hostname : @HOSTNAME@ Tamanho : @SIZE@ MIME Type : @MIME@ Utilizador : @USER@ - --- -Esta mensagem foi gerada pelo DokuWiki em -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ro/jquery.ui.datepicker.js index 66ee1099..b26665c2 100644 --- a/dokuwiki/inc/lang/ro/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ro/jquery.ui.datepicker.js @@ -3,38 +3,38 @@ * Written by Edmond L. (ll_edmond@walla.com) * and Ionut G. Stan (ionut.g.stan@gmail.com) */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ro'] = { - closeText: 'ÃŽnchide', - prevText: '« Luna precedentă', - nextText: 'Luna următoare »', - currentText: 'Azi', - monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', - 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], - monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', - 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - dayNames: ['Duminică', 'Luni', 'MarÅ£i', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], - dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], - dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], - weekHeader: 'Săpt', - dateFormat: 'dd.mm.yy', +datepicker.regional.ro = { + closeText: "ÃŽnchide", + prevText: "« Luna precedentă", + nextText: "Luna următoare »", + currentText: "Azi", + monthNames: [ "Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie", + "Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie" ], + monthNamesShort: [ "Ian", "Feb", "Mar", "Apr", "Mai", "Iun", + "Iul", "Aug", "Sep", "Oct", "Nov", "Dec" ], + dayNames: [ "Duminică", "Luni", "MarÅ£i", "Miercuri", "Joi", "Vineri", "Sâmbătă" ], + dayNamesShort: [ "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm" ], + dayNamesMin: [ "Du","Lu","Ma","Mi","Jo","Vi","Sâ" ], + weekHeader: "Săpt", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['ro']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ro ); -return datepicker.regional['ro']; +return datepicker.regional.ro; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ro/lang.php b/dokuwiki/inc/lang/ro/lang.php index e8d8c4af..721785ae 100644 --- a/dokuwiki/inc/lang/ro/lang.php +++ b/dokuwiki/inc/lang/ro/lang.php @@ -1,15 +1,17 @@ * @author Sergiu Baltariu * @author Emanuel-Emeric AndraÈ™i * @author Emanuel-Emeric AndraÈ™i * @author Marius OLAR * @author Marius Olar - * @author Emanuel-Emeric AndraÈ™i + * @author Marian Banica + * @author Adrian Vesa + * @author valentina_prof */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -17,7 +19,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 +43,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ă'; @@ -53,6 +54,9 @@ $lang['btn_revert'] = 'Revenire'; $lang['btn_register'] = 'ÃŽnregistrează'; $lang['btn_apply'] = 'Aplică'; $lang['btn_media'] = 'Administrare media'; +$lang['btn_deleteuser'] = 'Sterge-mi contul'; +$lang['btn_img_backto'] = 'ÃŽnapoi la %s'; +$lang['btn_mediaManager'] = 'Vizualizează în administratorul media'; $lang['loggedinas'] = 'Autentificat ca:'; $lang['user'] = 'Utilizator'; $lang['pass'] = 'Parola'; @@ -64,14 +68,16 @@ $lang['fullname'] = 'Nume complet'; $lang['email'] = 'E-mail'; $lang['profile'] = 'Profil utilizator'; $lang['badlogin'] = 'Ne pare rău, utilizatorul È™i/sau parola au fost greÈ™ite.'; +$lang['badpassconfirm'] = 'Ne pare rau, parola este gresita'; $lang['minoredit'] = 'Modificare minoră'; $lang['draftdate'] = 'Schiță salvată automat la'; $lang['nosecedit'] = 'Pagina s-a modificat între timp, secÈ›iunea info a expirat, s-a încărcat pagina întreagă în loc.'; -$lang['searchcreatepage'] = "Dacă nu ai găsit ce ai căutat, poÈ›i crea o pagină nouă prin folosirea butonului ''Editează această pagină''."; +$lang['searchcreatepage'] = 'Dacă nu ai găsit ce ai căutat, poÈ›i crea o pagină nouă prin folosirea butonului \'\'Editează această pagină\'\'.'; $lang['regmissing'] = 'Ne pare rău, trebuie să completezi toate cîmpurile.'; $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.'; @@ -81,6 +87,11 @@ $lang['profna'] = 'Acest wiki nu permite modificarea profilului'; $lang['profnochange'] = 'Nici o modificare; nimic de făcut.'; $lang['profnoempty'] = 'Nu sunt permise numele sau adresa de e-mail necompletate.'; $lang['profchanged'] = 'Profilul de utilizator a fost actualizat cu succes.'; +$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.
    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'; @@ -96,6 +107,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.'; @@ -144,7 +156,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ă'; @@ -178,6 +189,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:'; @@ -229,11 +243,9 @@ $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'; -$lang['btn_img_backto'] = 'ÃŽnapoi la %s'; $lang['img_title'] = 'Titlu:'; $lang['img_caption'] = 'Legendă:'; $lang['img_date'] = 'Dată:'; @@ -246,7 +258,6 @@ $lang['img_camera'] = 'Camera:'; $lang['img_keywords'] = 'Cuvinte cheie:'; $lang['img_width'] = 'Lățime:'; $lang['img_height'] = 'ÃŽnălÈ›ime:'; -$lang['btn_mediaManager'] = 'Vizualizează în administratorul media'; $lang['subscr_subscribe_success'] = 'Adăugat %s la lista de abonare pentru %s'; $lang['subscr_subscribe_error'] = 'Eroare la adăugarea %s la lista de abonare pentru %s'; $lang['subscr_subscribe_noaddress'] = 'Nu există adresă de e-mail asociată autentificării curente, nu poÈ›i fi adăugat la lista de abonare'; @@ -264,7 +275,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'; @@ -286,8 +296,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 %s. De asemenea poÈ›i vizualiza modificările recente în întregului wiki-ul.'; $lang['years'] = 'acum %d ani'; $lang['months'] = 'acum %d luni'; @@ -320,3 +334,6 @@ $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['searchresult'] = 'Rezultatul cautarii'; +$lang['email_signature_text'] = 'Acest e-mail a fost generat de DokuWiki la +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ro/mailtext.txt b/dokuwiki/inc/lang/ro/mailtext.txt index 8d20a301..14a15384 100644 --- a/dokuwiki/inc/lang/ro/mailtext.txt +++ b/dokuwiki/inc/lang/ro/mailtext.txt @@ -11,7 +11,3 @@ Versiune curentă : @NEWPAGE@ Sumar editare: @SUMMARY@ @DIFF@ - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/password.txt b/dokuwiki/inc/lang/ro/password.txt index eb325204..3f8ae24b 100644 --- a/dokuwiki/inc/lang/ro/password.txt +++ b/dokuwiki/inc/lang/ro/password.txt @@ -4,7 +4,3 @@ Aici se găsesc credenÈ›ialele de utilizator pentru @TITLE@ la @DOKUWIKIURL@ Login : @LOGIN@ Parola : @PASSWORD@ - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/pwconfirm.txt b/dokuwiki/inc/lang/ro/pwconfirm.txt index 0728b2ef..1123b8b9 100644 --- a/dokuwiki/inc/lang/ro/pwconfirm.txt +++ b/dokuwiki/inc/lang/ro/pwconfirm.txt @@ -8,7 +8,3 @@ Dacă nu ai solicitat o parolă nouă, ignoră acest e-mail. Pentru a confirma că cererea a fost într-adevăr trimisă de tine, foloseÈ™te link-ul de mai jos. @CONFIRM@ - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/registermail.txt b/dokuwiki/inc/lang/ro/registermail.txt index 2aab247f..599deabd 100644 --- a/dokuwiki/inc/lang/ro/registermail.txt +++ b/dokuwiki/inc/lang/ro/registermail.txt @@ -9,7 +9,3 @@ Dată : @DATE@ Browser : @BROWSER@ Adresă IP : @IPADDRESS@ Hostname : @HOSTNAME@ - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/subscr_digest.txt b/dokuwiki/inc/lang/ro/subscr_digest.txt index 8b0aac5c..4e661b66 100644 --- a/dokuwiki/inc/lang/ro/subscr_digest.txt +++ b/dokuwiki/inc/lang/ro/subscr_digest.txt @@ -14,7 +14,3 @@ Pentru a anula notificarea paginii, autentifică-te pe wiki la @DOKUWIKIURL@ apoi accesează @SUBSCRIBE@ È™i dezabonează-te de la pagină È™i/sau modificările spaÈ›iului de nume. - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/subscr_list.txt b/dokuwiki/inc/lang/ro/subscr_list.txt index c3433426..c5614784 100644 --- a/dokuwiki/inc/lang/ro/subscr_list.txt +++ b/dokuwiki/inc/lang/ro/subscr_list.txt @@ -11,7 +11,3 @@ Pentru a anula notificarea paginii, autentificcă-te pe wiki la @DOKUWIKIURL@ apoi accesează @SUBSCRIBE@ È™i dezabonează-te de la pagină È™i/sau modificările spaÈ›iului de nume. - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/subscr_single.txt b/dokuwiki/inc/lang/ro/subscr_single.txt index 0fee1a83..6f8b2f96 100644 --- a/dokuwiki/inc/lang/ro/subscr_single.txt +++ b/dokuwiki/inc/lang/ro/subscr_single.txt @@ -17,7 +17,3 @@ Pentru a anula notificarea paginii, autentificcă-te pe wiki la @DOKUWIKIURL@ apoi accesează @SUBSCRIBE@ È™i dezabonează-te de la pagină È™i/sau modificările spaÈ›iului de nume. - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ro/uploadmail.txt b/dokuwiki/inc/lang/ro/uploadmail.txt index 81c2828e..cf8e8e02 100644 --- a/dokuwiki/inc/lang/ro/uploadmail.txt +++ b/dokuwiki/inc/lang/ro/uploadmail.txt @@ -10,7 +10,3 @@ Hostname : @HOSTNAME@ Dimensiune : @SIZE@ MIME Type : @MIME@ Utilizator : @USER@ - --- -Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ru/admin.txt b/dokuwiki/inc/lang/ru/admin.txt index cd609a34..8a670d5a 100644 --- a/dokuwiki/inc/lang/ru/admin.txt +++ b/dokuwiki/inc/lang/ru/admin.txt @@ -1,4 +1,4 @@ ====== Управление ====== -Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». +Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». diff --git a/dokuwiki/inc/lang/ru/conflict.txt b/dokuwiki/inc/lang/ru/conflict.txt index 6c5e33dc..e813d8c1 100644 --- a/dokuwiki/inc/lang/ru/conflict.txt +++ b/dokuwiki/inc/lang/ru/conflict.txt @@ -1,5 +1,5 @@ ====== СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ====== -СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. +СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. -Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. +Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. diff --git a/dokuwiki/inc/lang/ru/denied.txt b/dokuwiki/inc/lang/ru/denied.txt index 6b7c8251..791b30b1 100644 --- a/dokuwiki/inc/lang/ru/denied.txt +++ b/dokuwiki/inc/lang/ru/denied.txt @@ -1,4 +1,4 @@ ====== ДоÑтуп запрещён ====== -Извините, у Ð²Ð°Ñ Ð½Ðµ хватает прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. +Извините, ÑƒÂ Ð²Ð°Ñ Ð½ÐµÂ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. diff --git a/dokuwiki/inc/lang/ru/diff.txt b/dokuwiki/inc/lang/ru/diff.txt index 80252614..21b8a8ea 100644 --- a/dokuwiki/inc/lang/ru/diff.txt +++ b/dokuwiki/inc/lang/ru/diff.txt @@ -1,4 +1,3 @@ ====== Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ ====== ЗдеÑÑŒ показаны Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÑ€ÑиÑми данной Ñтраницы. - diff --git a/dokuwiki/inc/lang/ru/draft.txt b/dokuwiki/inc/lang/ru/draft.txt index cb35f72b..a92aa34c 100644 --- a/dokuwiki/inc/lang/ru/draft.txt +++ b/dokuwiki/inc/lang/ru/draft.txt @@ -1,6 +1,5 @@ ====== Ðайден черновик ====== -ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. - -ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. +ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Ð’Ð¾Â Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. +ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. diff --git a/dokuwiki/inc/lang/ru/edit.txt b/dokuwiki/inc/lang/ru/edit.txt index aac399d7..25ded411 100644 --- a/dokuwiki/inc/lang/ru/edit.txt +++ b/dokuwiki/inc/lang/ru/edit.txt @@ -1,2 +1 @@ -Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. - +Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. diff --git a/dokuwiki/inc/lang/ru/editrev.txt b/dokuwiki/inc/lang/ru/editrev.txt index 97b799a7..ac2464db 100644 --- a/dokuwiki/inc/lang/ru/editrev.txt +++ b/dokuwiki/inc/lang/ru/editrev.txt @@ -1,2 +1,2 @@ -**Ð’Ñ‹ загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. +**Вы загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. ---- diff --git a/dokuwiki/inc/lang/ru/index.txt b/dokuwiki/inc/lang/ru/index.txt index fc42f87f..a059b281 100644 --- a/dokuwiki/inc/lang/ru/index.txt +++ b/dokuwiki/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по ([[doku>namespaces|проÑтранÑтвам имён]]). +Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. diff --git a/dokuwiki/inc/lang/ru/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ru/jquery.ui.datepicker.js index c3fda5d5..223e7764 100644 --- a/dokuwiki/inc/lang/ru/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/ru/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Andrew Stromnov (stromnov@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['ru'] = { - closeText: 'Закрыть', - prevText: '<Пред', - nextText: 'След>', - currentText: 'СегоднÑ', - monthNames: ['Январь','Февраль','Март','Ðпрель','Май','Июнь', - 'Июль','ÐвгуÑÑ‚','СентÑбрь','ОктÑбрь','ÐоÑбрь','Декабрь'], - monthNamesShort: ['Янв','Фев','Мар','Ðпр','Май','Июн', - 'Июл','Ðвг','Сен','Окт','ÐоÑ','Дек'], - dayNames: ['воÑкреÑенье','понедельник','вторник','Ñреда','четверг','пÑтница','Ñуббота'], - dayNamesShort: ['вÑк','пнд','втр','Ñрд','чтв','птн','Ñбт'], - dayNamesMin: ['Ð’Ñ','Пн','Ð’Ñ‚','Ср','Чт','Пт','Сб'], - weekHeader: 'Ðед', - dateFormat: 'dd.mm.yy', +datepicker.regional.ru = { + 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['ru']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ru ); -return datepicker.regional['ru']; +return datepicker.regional.ru; -})); +} ) ); diff --git a/dokuwiki/inc/lang/ru/lang.php b/dokuwiki/inc/lang/ru/lang.php index ddc244a2..fec19c85 100644 --- a/dokuwiki/inc/lang/ru/lang.php +++ b/dokuwiki/inc/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Yuri Pimenov * @author Igor Tarasov * @author Denis Simakov @@ -27,8 +27,17 @@ * @author Aleksandr Selivanov * @author Владимир * @author Igor Degraf + * @author Type-kun + * @author Vitaly Filatenko + * @author Alex P + * @author Nolf + * @author Takumo <9206984@mail.ru> + * @author RainbowSpike <1@2.ru> + * @author dimsharav + * @author Radimir + * @author alexey */ -$lang['encoding'] = ' utf-8'; +$lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '«'; $lang['doublequoteclosing'] = '»'; @@ -39,7 +48,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'] = 'Ðаверх'; @@ -58,10 +67,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'] = 'ВоÑÑтановить черновик'; @@ -73,7 +81,7 @@ $lang['btn_media'] = 'Управление медиафайлами' $lang['btn_deleteuser'] = 'Удалить мой аккаунт'; $lang['btn_img_backto'] = 'ВернутьÑÑ Ðº %s'; $lang['btn_mediaManager'] = 'ПроÑмотр в «управлении медиафайлами»'; -$lang['loggedinas'] = 'Зашли как:'; +$lang['loggedinas'] = 'Зашли как'; $lang['user'] = 'Логин'; $lang['pass'] = 'Пароль'; $lang['newpass'] = 'Ðовый пароль'; @@ -87,74 +95,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'] = 'Я хочу удалить мой аккаунт из Ñтой вики.
    Это дейÑтвие необратимо.'; -$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен'; +$lang['profdeleted'] = 'Ваш аккаунт был удалён из Ñтой вики'; +$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики.
    +Это дейÑтвие необратимо.'; +$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'] = 'Ñ€Ñдом'; @@ -169,7 +181,6 @@ $lang['js']['media_overwrt'] = 'ПерезапиÑать ÑущеÑтвующ $lang['rssfailed'] = 'Произошла ошибка при получении Ñледующей новоÑтной ленты: '; $lang['nothingfound'] = 'Ðичего не найдено.'; $lang['mediaselect'] = 'Выбор медиафайла'; -$lang['fileupload'] = 'Загрузка медиафайла'; $lang['uploadsucc'] = 'Загрузка произведена уÑпешно'; $lang['uploadfail'] = 'Загрузка не удалаÑÑŒ. Возможно, проблемы Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупа?'; $lang['uploadwrong'] = 'Ð’ загрузке отказано. Файлы Ñ Ñ‚Ð°ÐºÐ¸Ð¼ раÑширением запрещены. '; @@ -177,35 +188,37 @@ $lang['uploadexist'] = 'Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем ÑÑƒÑ‰ÐµÑ $lang['uploadbadcontent'] = 'Содержание файла не ÑоответÑтвует раÑширению %s.'; $lang['uploadspam'] = 'Загрузка заблокирована Ñпам-фильтром.'; $lang['uploadxss'] = 'Загрузка заблокирована по ÑоображениÑм безопаÑноÑти.'; -$lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (макÑ. %s)'; -$lang['deletesucc'] = 'Файл «%s» был удалён.'; -$lang['deletefail'] = 'Ðевозможно удалить файл «%s». Проверьте права доÑтупа к файлу.'; -$lang['mediainuse'] = 'Файл «%s» не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; +$lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (МакÑ. %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['mediaextchange'] = 'РаÑширение изменилоÑÑŒ: Ñ .%s на .%s!'; +$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['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['diffnextrev'] = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['difflastrev'] = 'ПоÑледнÑÑ Ð²ÐµÑ€ÑиÑ'; +$lang['diffbothprevrev'] = 'ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñправа и Ñлева'; +$lang['diffbothnextrev'] = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñправа и Ñлева'; $lang['line'] = 'Строка'; $lang['breadcrumb'] = 'Ð’Ñ‹ поÑетили:'; $lang['youarehere'] = 'Ð’Ñ‹ находитеÑÑŒ здеÑÑŒ:'; @@ -213,7 +226,7 @@ $lang['lastmod'] = 'ПоÑледние изменениÑ:'; $lang['by'] = ' —'; $lang['deleted'] = 'удалено'; $lang['created'] = 'Ñоздано'; -$lang['restored'] = 'ÑÑ‚Ð°Ñ€Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ Ð²Ð¾ÑÑтановлена (%s)'; +$lang['restored'] = 'ÑÑ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð²Ð¾ÑÑтановлена (%s)'; $lang['external_edit'] = 'внешнее изменение'; $lang['summary'] = 'Сводка изменений'; $lang['noflash'] = 'Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтого Ñодержимого требуетÑÑ Adobe Flash Plugin.'; @@ -258,7 +271,6 @@ $lang['qb_sig'] = 'Ð’Ñтавить подпиÑÑŒ'; $lang['qb_smileys'] = 'Смайлики'; $lang['qb_chars'] = 'Специальные Ñимволы'; $lang['upperns'] = 'Перейти в родительÑкое проÑтранÑтво имён'; -$lang['admin_register'] = 'Добавить пользователÑ'; $lang['metaedit'] = 'Править метаданные'; $lang['metasaveerr'] = 'Ошибка запиÑи метаданных'; $lang['metasaveok'] = 'Метаданные Ñохранены'; @@ -288,10 +300,9 @@ $lang['subscr_m_unsubscribe'] = 'Отменить подпиÑку'; $lang['subscr_m_subscribe'] = 'ПодпиÑатьÑÑ'; $lang['subscr_m_receive'] = 'Получить'; $lang['subscr_style_every'] = 'уведомлÑть о каждом изменении'; -$lang['subscr_style_digest'] = 'информационное Ñлектронное пиÑьмо Ñо ÑпиÑком изменений Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтраницы (каждые %.2f дней)'; -$lang['subscr_style_list'] = 'ÑпиÑок изменённых Ñтраниц Ñо времени поÑледнего отправленного Ñлектронного пиÑьма (каждые %.2f дней)'; +$lang['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'] = 'Ðазвание вики'; @@ -303,16 +314,17 @@ $lang['i_modified'] = 'Из Ñоображений безопаÑно инÑтрукции по уÑтановке «Докувики»'; $lang['i_funcna'] = 'Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ PHP %s недоÑтупна. Может быть, она по какой-то причине заблокирована вашим хоÑтером?'; $lang['i_phpver'] = 'Ваша верÑÐ¸Ñ PHP (%s) ниже требуемой (%s). Вам необходимо обновить уÑтановленную верÑию PHP.'; +$lang['i_mbfuncoverload'] = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка «Докувики» необходимо отключить параметр mbstring.func_overload в php.ini'; $lang['i_permfail'] = '%s недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи «Докувики». Вам необходимо иÑправить ÑиÑтемные права доÑтупа Ð´Ð»Ñ Ñтой директории!'; $lang['i_confexists'] = '%s уже ÑущеÑтвует'; $lang['i_writeerr'] = 'Ðе удалоÑÑŒ Ñоздать %s. Вам необходимо проверить ÑиÑтемные права доÑтупа к файлу и директориÑм, и Ñоздать файл вручную. '; -$lang['i_badhash'] = 'dokuwiki.php не раÑпознан или изменён (Ñ…Ñш=%s)'; +$lang['i_badhash'] = 'dokuwiki.php не раÑпознан или изменён (hash=%s)'; $lang['i_badval'] = '%s — недопуÑтимое или пуÑтое значение'; $lang['i_success'] = 'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно. Теперь вы можете удалить файл install.php. Переходите к Ñвоей новой «Докувики».'; $lang['i_failure'] = 'При запиÑи в файлы конфигурации были обнаружены ошибки. Возможно, вам придётÑÑ Ð¸Ñправить их вручную, прежде чем вы Ñможете иÑпользовать Ñвою новую «Докувики».'; $lang['i_policy'] = 'ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° прав доÑтупа'; -$lang['i_pol0'] = 'ÐžÑ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение, запиÑÑŒ, закачка файлов Ð´Ð»Ñ Ð²Ñех)'; +$lang['i_pol0'] = 'ÐžÑ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение, запиÑÑŒ, загрузка файлов Ð´Ð»Ñ Ð²Ñех)'; $lang['i_pol1'] = 'ОбщедоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение Ð´Ð»Ñ Ð²Ñех, запиÑÑŒ и загрузка файлов Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтрированных пользователей)'; $lang['i_pol2'] = 'Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение, запиÑÑŒ и загрузка файлов только Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтрированных пользователей)'; $lang['i_allowreg'] = 'Разрешить пользователÑм ÑамоÑтоÑтельно региÑтрироватьÑÑ'; @@ -323,15 +335,15 @@ $lang['i_pop_field'] = 'ПожалуйÑта, помогите нам $lang['i_pop_label'] = 'ОтправлÑть раз в меÑÑц анонимную пользовательÑкую информацию разработчикам «Докувики»'; $lang['recent_global'] = 'Ð’Ñ‹ проÑматриваете Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² проÑтранÑтве имён %s. Ð’Ñ‹ можете также проÑмотреть недавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑей вики.'; $lang['years'] = '%d лет назад'; -$lang['months'] = '%d меÑÑц(ев) назад'; +$lang['months'] = '%d меÑÑц (-ев) назад'; $lang['weeks'] = '%d недель назад'; $lang['days'] = '%d дней назад'; -$lang['hours'] = '%d чаÑ(ов) назад'; +$lang['hours'] = '%d Ñ‡Ð°Ñ (-ов) назад'; $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'] = 'Правка'; @@ -342,8 +354,8 @@ $lang['media_sort_name'] = 'Сортировка по имени'; $lang['media_sort_date'] = 'Сортировка по дате'; $lang['media_namespaces'] = 'Выберите каталог'; $lang['media_files'] = 'Файлы в %s'; -$lang['media_upload'] = 'Загрузка в проÑтранÑтво имён %s.'; -$lang['media_search'] = 'ПоиÑк в проÑтранÑтве имён %s.'; +$lang['media_upload'] = 'Загрузка в проÑтранÑтво имён %s'; +$lang['media_search'] = 'ПоиÑк в проÑтранÑтве имён %s'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s в %s '; @@ -354,7 +366,12 @@ $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['page_nonexist_rev'] = 'Эта Ñтраница ещё не ÑущеÑтвовала %s. Она была Ñоздана %s.'; +$lang['unable_to_parse_date'] = 'Ðевозможно обработать параметр "%s".'; +$lang['email_signature_text'] = 'Это пиÑьмо Ñоздано «Докувики» Ñ Ñайта +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/ru/mailtext.txt b/dokuwiki/inc/lang/ru/mailtext.txt index 953daddf..0eb31a10 100644 --- a/dokuwiki/inc/lang/ru/mailtext.txt +++ b/dokuwiki/inc/lang/ru/mailtext.txt @@ -10,8 +10,3 @@ IP-адреÑ: @IPADDRESS@ Пользователь: @USER@ @DIFF@ - - --- -Это пиÑьмо было Ñгенерировано «Докувики» по адреÑу -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ru/password.txt b/dokuwiki/inc/lang/ru/password.txt index fabdf2b6..bee594e5 100644 --- a/dokuwiki/inc/lang/ru/password.txt +++ b/dokuwiki/inc/lang/ru/password.txt @@ -4,7 +4,3 @@ Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: @LOGIN@ Пароль: @PASSWORD@ - --- -Это пиÑьмо было Ñгенерировано «Докувики» по адреÑу -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ru/pwconfirm.txt b/dokuwiki/inc/lang/ru/pwconfirm.txt index 954c75df..fff66946 100644 --- a/dokuwiki/inc/lang/ru/pwconfirm.txt +++ b/dokuwiki/inc/lang/ru/pwconfirm.txt @@ -7,7 +7,3 @@ Ð”Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ, что Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» дейÑтвительно Ñделан вами, пожалуйÑта, перейдите по Ñледующей ÑÑылке. @CONFIRM@ - --- -Это Ñообщение было Ñгенерировано «Докувики» по адреÑу -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ru/recent.txt b/dokuwiki/inc/lang/ru/recent.txt index aa088c73..0d4d3285 100644 --- a/dokuwiki/inc/lang/ru/recent.txt +++ b/dokuwiki/inc/lang/ru/recent.txt @@ -1,5 +1,5 @@ ====== Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ====== -Эти Ñтраницы были изменены недавно. +Следующие Ñтраницы были недавно изменены diff --git a/dokuwiki/inc/lang/ru/registermail.txt b/dokuwiki/inc/lang/ru/registermail.txt index 86ef11e8..8e420aa4 100644 --- a/dokuwiki/inc/lang/ru/registermail.txt +++ b/dokuwiki/inc/lang/ru/registermail.txt @@ -8,7 +8,3 @@ Браузер: @BROWSER@ ÐÐ´Ñ€ÐµÑ IP: @IPADDRESS@ ХоÑÑ‚: @HOSTNAME@ - --- -Это Ñообщение было Ñгенерировано «Докувики» по адреÑу -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ru/revisions.txt b/dokuwiki/inc/lang/ru/revisions.txt index 55072cd8..40fbedf0 100644 --- a/dokuwiki/inc/lang/ru/revisions.txt +++ b/dokuwiki/inc/lang/ru/revisions.txt @@ -1,3 +1,3 @@ ====== ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñтраницы ====== -Перед вами — иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº текущего документа. Чтобы вернутьÑÑ Ðº одной из предыдущих верÑий, выберите нужную, нажмите «Править Ñтраницу» и Ñохраните. +Перед вами иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº текущего документа. Чтобы вернутьÑÑ Ðº одной из предыдущих верÑий, выберите нужную, нажмите «Править Ñтраницу» и Ñохраните. diff --git a/dokuwiki/inc/lang/ru/subscr_digest.txt b/dokuwiki/inc/lang/ru/subscr_digest.txt index ac0fc052..ee313b95 100644 --- a/dokuwiki/inc/lang/ru/subscr_digest.txt +++ b/dokuwiki/inc/lang/ru/subscr_digest.txt @@ -14,7 +14,3 @@ @DOKUWIKIURL@ в раздел @SUBSCRIBE@ и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имен. - --- -Это пиÑьмо Ñоздано «Докувики» Ñ Ñайта -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ru/subscr_list.txt b/dokuwiki/inc/lang/ru/subscr_list.txt index 984a25eb..bff32821 100644 --- a/dokuwiki/inc/lang/ru/subscr_list.txt +++ b/dokuwiki/inc/lang/ru/subscr_list.txt @@ -1,6 +1,7 @@ Привет. Страницы в проÑтранÑтве имён @PAGE@ в вики @TITLE@ были изменены. + СпиÑок изменившихÑÑ Ñтраниц: -------------------------------------------------------- @@ -11,7 +12,3 @@ @DOKUWIKIURL@ в раздел @SUBSCRIBE@ и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имён. - --- -Это пиÑьмо Ñоздано «Докувики» Ñ Ñайта -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ru/subscr_single.txt b/dokuwiki/inc/lang/ru/subscr_single.txt index 679ca6ff..744da56c 100644 --- a/dokuwiki/inc/lang/ru/subscr_single.txt +++ b/dokuwiki/inc/lang/ru/subscr_single.txt @@ -18,7 +18,3 @@ @DOKUWIKIURL@ в раздел @SUBSCRIBE@ и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имён. - --- -Это пиÑьмо Ñоздано «Докувики» Ñ Ñайта -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ru/uploadmail.txt b/dokuwiki/inc/lang/ru/uploadmail.txt index 84103b45..a92d8556 100644 --- a/dokuwiki/inc/lang/ru/uploadmail.txt +++ b/dokuwiki/inc/lang/ru/uploadmail.txt @@ -9,7 +9,3 @@ Размер: @SIZE@ Тип MIME: @MIME@ Пользователь: @USER@ - --- -Это пиÑьмо было Ñгенерировано «Докувики» по адреÑу -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sk/jquery.ui.datepicker.js b/dokuwiki/inc/lang/sk/jquery.ui.datepicker.js index 1f924f82..16d8bdfe 100644 --- a/dokuwiki/inc/lang/sk/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/sk/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Slovak initialisation for the jQuery UI date picker plugin. */ /* Written by Vojtech Rinik (vojto@hmm.sk). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['sk'] = { - closeText: 'ZavrieÅ¥', - prevText: '<Predchádzajúci', - nextText: 'Nasledujúci>', - currentText: 'Dnes', - monthNames: ['január','február','marec','apríl','máj','jún', - 'júl','august','september','október','november','december'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', - 'Júl','Aug','Sep','Okt','Nov','Dec'], - dayNames: ['nedeľa','pondelok','utorok','streda','Å¡tvrtok','piatok','sobota'], - dayNamesShort: ['Ned','Pon','Uto','Str','Å tv','Pia','Sob'], - dayNamesMin: ['Ne','Po','Ut','St','Å t','Pia','So'], - weekHeader: 'Ty', - dateFormat: 'dd.mm.yy', +datepicker.regional.sk = { + closeText: "ZavrieÅ¥", + prevText: "<Predchádzajúci", + nextText: "Nasledujúci>", + currentText: "Dnes", + monthNames: [ "január","február","marec","apríl","máj","jún", + "júl","august","september","október","november","december" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Máj","Jún", + "Júl","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ "nedeľa","pondelok","utorok","streda","Å¡tvrtok","piatok","sobota" ], + dayNamesShort: [ "Ned","Pon","Uto","Str","Å tv","Pia","Sob" ], + dayNamesMin: [ "Ne","Po","Ut","St","Å t","Pia","So" ], + weekHeader: "Ty", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['sk']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sk ); -return datepicker.regional['sk']; +return datepicker.regional.sk; -})); +} ) ); diff --git a/dokuwiki/inc/lang/sk/lang.php b/dokuwiki/inc/lang/sk/lang.php index afbf7950..6ab31843 100644 --- a/dokuwiki/inc/lang/sk/lang.php +++ b/dokuwiki/inc/lang/sk/lang.php @@ -2,11 +2,12 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ondrej Vegh with help of the scholars from Zdruzena stredna skola polygraficka in Bratislava * @author Michal Mesko * @author exusik@gmail.com * @author Martin Michalek + * @author Michalek */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -38,7 +39,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 +51,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 +62,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.
    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 +153,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ý.'; @@ -183,6 +186,9 @@ $lang['difflink'] = 'Odkaz na tento prehľad zmien'; $lang['diff_type'] = 'Prehľad zmien:'; $lang['diff_inline'] = 'Vnorený'; $lang['diff_side'] = 'Vedľa seba'; +$lang['diffprevrev'] = 'Predchádzajúca revízia'; +$lang['diffnextrev'] = 'Nasledujúca revízia'; +$lang['difflastrev'] = 'Posledná revízia'; $lang['line'] = 'Riadok'; $lang['breadcrumb'] = 'História:'; $lang['youarehere'] = 'Nachádzate sa:'; @@ -204,7 +210,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 +241,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 +256,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 +272,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 +291,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Å¥ vaÅ¡u novú DokuWiki.'; $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:'; @@ -333,3 +335,5 @@ $lang['currentns'] = 'Aktuálny menný priestor'; $lang['searchresult'] = 'Výsledky hľadania'; $lang['plainhtml'] = 'Jednoduché HTML'; $lang['wikimarkup'] = 'Wiki formát'; +$lang['email_signature_text'] = 'Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/sk/locked.txt b/dokuwiki/inc/lang/sk/locked.txt index 5063c060..fae400bc 100644 --- a/dokuwiki/inc/lang/sk/locked.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/sk/mailtext.txt b/dokuwiki/inc/lang/sk/mailtext.txt index 30b7f5c3..da2f441b 100644 --- a/dokuwiki/inc/lang/sk/mailtext.txt +++ b/dokuwiki/inc/lang/sk/mailtext.txt @@ -10,8 +10,3 @@ Komentár : @SUMMARY@ User : @USER@ @DIFF@ - - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sk/mailwrap.html b/dokuwiki/inc/lang/sk/mailwrap.html index 2e42515f..d2571909 100644 --- a/dokuwiki/inc/lang/sk/mailwrap.html +++ b/dokuwiki/inc/lang/sk/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sk/password.txt b/dokuwiki/inc/lang/sk/password.txt index 2b85e9c3..8d0907e4 100644 --- a/dokuwiki/inc/lang/sk/password.txt +++ b/dokuwiki/inc/lang/sk/password.txt @@ -3,9 +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@ - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sk/pwconfirm.txt b/dokuwiki/inc/lang/sk/pwconfirm.txt index 210740da..f8ba97ad 100644 --- a/dokuwiki/inc/lang/sk/pwconfirm.txt +++ b/dokuwiki/inc/lang/sk/pwconfirm.txt @@ -9,7 +9,3 @@ Pre potvrdenie, že požiadavka bola skutoÄne odoslaná vami, použite prosím nasledujúci odkaz. @CONFIRM@ - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sk/register.txt b/dokuwiki/inc/lang/sk/register.txt index 59c225d7..b939dccc 100644 --- a/dokuwiki/inc/lang/sk/register.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/sk/registermail.txt b/dokuwiki/inc/lang/sk/registermail.txt index a0bf9e31..2be1ac3b 100644 --- a/dokuwiki/inc/lang/sk/registermail.txt +++ b/dokuwiki/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@ @@ -8,7 +8,3 @@ Dátum : @DATE@ PrehliadaÄ : @BROWSER@ IP adresa : @IPADDRESS@ Meno servera : @HOSTNAME@ - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sk/showrev.txt b/dokuwiki/inc/lang/sk/showrev.txt index 03676969..b694c237 100644 --- a/dokuwiki/inc/lang/sk/showrev.txt +++ b/dokuwiki/inc/lang/sk/showrev.txt @@ -1,3 +1,2 @@ **Toto je starÅ¡ia verzia dokumentu!** ---- - diff --git a/dokuwiki/inc/lang/sk/subscr_digest.txt b/dokuwiki/inc/lang/sk/subscr_digest.txt index 273cc7e2..6d336cb9 100644 --- a/dokuwiki/inc/lang/sk/subscr_digest.txt +++ b/dokuwiki/inc/lang/sk/subscr_digest.txt @@ -14,7 +14,3 @@ Ak si neprajete zasielaÅ¥ tieto správy, prihláste sa do wiki @DOKUWIKIURL@, potom prejdite na @SUBSCRIBE@ a odhláste sa z informovania o zmenách stránky alebo menného priestoru. - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sk/subscr_list.txt b/dokuwiki/inc/lang/sk/subscr_list.txt index 3a5bfb57..7332e774 100644 --- a/dokuwiki/inc/lang/sk/subscr_list.txt +++ b/dokuwiki/inc/lang/sk/subscr_list.txt @@ -11,7 +11,3 @@ Ak si neprajete zasielaÅ¥ tieto správy, prihláste sa do wiki @DOKUWIKIURL@, potom prejdite na @SUBSCRIBE@ a odhláste sa z informovania o zmenách stránky alebo menného priestoru. - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sk/subscr_single.txt b/dokuwiki/inc/lang/sk/subscr_single.txt index 3abbc40b..48825a49 100644 --- a/dokuwiki/inc/lang/sk/subscr_single.txt +++ b/dokuwiki/inc/lang/sk/subscr_single.txt @@ -17,7 +17,3 @@ Ak si neprajete zasielaÅ¥ tieto správy, prihláste sa do wiki @DOKUWIKIURL@, potom prejdite na @SUBSCRIBE@ a odhláste sa z informovania o zmenách stránky alebo menného priestoru. - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sk/updateprofile.txt b/dokuwiki/inc/lang/sk/updateprofile.txt index 67b823dc..33b5e5b7 100644 --- a/dokuwiki/inc/lang/sk/updateprofile.txt +++ b/dokuwiki/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/dokuwiki/inc/lang/sk/uploadmail.txt b/dokuwiki/inc/lang/sk/uploadmail.txt index 18293799..df409678 100644 --- a/dokuwiki/inc/lang/sk/uploadmail.txt +++ b/dokuwiki/inc/lang/sk/uploadmail.txt @@ -8,7 +8,3 @@ Názov hostiteľa : @HOSTNAME@ VeľkosÅ¥ : @SIZE@ MIME Typ : @MIME@ Užívateľ : @USER@ - --- -Táto správa bola zaslaná DokuWiki -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sl/jquery.ui.datepicker.js b/dokuwiki/inc/lang/sl/jquery.ui.datepicker.js index 88d7f2b1..68916249 100644 --- a/dokuwiki/inc/lang/sl/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/sl/jquery.ui.datepicker.js @@ -1,38 +1,38 @@ /* Slovenian initialisation for the jQuery UI date picker plugin. */ /* Written by Jaka Jancar (jaka@kubje.org). */ /* c = Ä, s = Å¡ z = ž C = ÄŒ S = Å  Z = Ž */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['sl'] = { - closeText: 'Zapri', - prevText: '<PrejÅ¡nji', - nextText: 'Naslednji>', - currentText: 'Trenutni', - monthNames: ['Januar','Februar','Marec','April','Maj','Junij', - 'Julij','Avgust','September','Oktober','November','December'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', - 'Jul','Avg','Sep','Okt','Nov','Dec'], - dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','ÄŒetrtek','Petek','Sobota'], - dayNamesShort: ['Ned','Pon','Tor','Sre','ÄŒet','Pet','Sob'], - dayNamesMin: ['Ne','Po','To','Sr','ÄŒe','Pe','So'], - weekHeader: 'Teden', - dateFormat: 'dd.mm.yy', +datepicker.regional.sl = { + closeText: "Zapri", + prevText: "<PrejÅ¡nji", + nextText: "Naslednji>", + currentText: "Trenutni", + monthNames: [ "Januar","Februar","Marec","April","Maj","Junij", + "Julij","Avgust","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Avg","Sep","Okt","Nov","Dec" ], + dayNames: [ "Nedelja","Ponedeljek","Torek","Sreda","ÄŒetrtek","Petek","Sobota" ], + dayNamesShort: [ "Ned","Pon","Tor","Sre","ÄŒet","Pet","Sob" ], + dayNamesMin: [ "Ne","Po","To","Sr","ÄŒe","Pe","So" ], + weekHeader: "Teden", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['sl']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sl ); -return datepicker.regional['sl']; +return datepicker.regional.sl; -})); +} ) ); diff --git a/dokuwiki/inc/lang/sl/lang.php b/dokuwiki/inc/lang/sl/lang.php index b649d08c..9baa9dd0 100644 --- a/dokuwiki/inc/lang/sl/lang.php +++ b/dokuwiki/inc/lang/sl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Jaka Kranjc * @author BoÅ¡tjan SeniÄar * @author Dejan Levec @@ -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'; @@ -335,3 +331,5 @@ $lang['currentns'] = 'Trenutni imenski prostor'; $lang['searchresult'] = 'Rezultati iskanja'; $lang['plainhtml'] = 'Zapis HTML'; $lang['wikimarkup'] = 'Oblikovni jezik Wiki'; +$lang['email_signature_text'] = 'SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/sl/mailtext.txt b/dokuwiki/inc/lang/sl/mailtext.txt index e08d01d9..9b333731 100644 --- a/dokuwiki/inc/lang/sl/mailtext.txt +++ b/dokuwiki/inc/lang/sl/mailtext.txt @@ -10,6 +10,3 @@ Povzetek urejanja: @SUMMARY@ Uporabnik : @USER@ @DIFF@ - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/password.txt b/dokuwiki/inc/lang/sl/password.txt index 61929dcc..d0e1f69b 100644 --- a/dokuwiki/inc/lang/sl/password.txt +++ b/dokuwiki/inc/lang/sl/password.txt @@ -4,6 +4,3 @@ Spodaj so navedeni podatki za @TITLE@ na wiki spletiÅ¡Äu @DOKUWIKIURL@ UporabniÅ¡ko ime: @LOGIN@ Geslo : @PASSWORD@ - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/pwconfirm.txt b/dokuwiki/inc/lang/sl/pwconfirm.txt index a621821e..33f47871 100644 --- a/dokuwiki/inc/lang/sl/pwconfirm.txt +++ b/dokuwiki/inc/lang/sl/pwconfirm.txt @@ -6,6 +6,3 @@ S podatki vaÅ¡ega imena je bila poslana zahteva za pridobitev novega gesla za up - Za potrditev zahteve za pridobitev novega gesla, kliknite spodnjo povezavo. @CONFIRM@ - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/registermail.txt b/dokuwiki/inc/lang/sl/registermail.txt index 801b7d0d..255eb628 100644 --- a/dokuwiki/inc/lang/sl/registermail.txt +++ b/dokuwiki/inc/lang/sl/registermail.txt @@ -9,6 +9,3 @@ Datum : @DATE@ Brskalnik : @BROWSER@ Naslov IP : @IPADDRESS@ Ime gostitelja : @HOSTNAME@ - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/subscr_digest.txt b/dokuwiki/inc/lang/sl/subscr_digest.txt index aeb548be..5da0042f 100644 --- a/dokuwiki/inc/lang/sl/subscr_digest.txt +++ b/dokuwiki/inc/lang/sl/subscr_digest.txt @@ -14,6 +14,3 @@ Za odjavo prejemanja podrobnosti sprememb, se je treba prijaviti na spletiÅ¡Äe @DOKUWIKIURL@ in med možnostmi naroÄanja @SUBSCRIBE@ odjaviti prejemanje poroÄil sprememb strani ali imenskega prostora. - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/subscr_list.txt b/dokuwiki/inc/lang/sl/subscr_list.txt index 253cb410..914ae154 100644 --- a/dokuwiki/inc/lang/sl/subscr_list.txt +++ b/dokuwiki/inc/lang/sl/subscr_list.txt @@ -11,6 +11,3 @@ Za odjavo prejemanja podrobnosti sprememb, se je treba prijaviti na spletiÅ¡Äe @DOKUWIKIURL@ in med možnostmi naroÄanja @SUBSCRIBE@ odjaviti prejemanje poroÄil sprememb strani ali imenskega prostora. - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sl/subscr_single.txt b/dokuwiki/inc/lang/sl/subscr_single.txt index 9fd64be0..4324b2d7 100644 --- a/dokuwiki/inc/lang/sl/subscr_single.txt +++ b/dokuwiki/inc/lang/sl/subscr_single.txt @@ -17,6 +17,3 @@ Preklic obveÅ¡Äanja o spremembah strani je mogoÄe doloÄiti na Wiki naslovu @DOKUWIKIURL@ in z obiskom @NEWPAGE@, kjer se je mogoÄe odjaviti od spremljanja strani ali imenskega prostora. - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sl/uploadmail.txt b/dokuwiki/inc/lang/sl/uploadmail.txt index 0479be75..126ff2a4 100644 --- a/dokuwiki/inc/lang/sl/uploadmail.txt +++ b/dokuwiki/inc/lang/sl/uploadmail.txt @@ -9,6 +9,3 @@ Ponudnik : @HOSTNAME@ Velikost : @SIZE@ Vrsta MIME: @MIME@ Uporabnik : @USER@ - --- -SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/jquery.ui.datepicker.js b/dokuwiki/inc/lang/sq/jquery.ui.datepicker.js index f88c22c5..34fe66a5 100644 --- a/dokuwiki/inc/lang/sq/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/sq/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Albanian initialisation for the jQuery UI date picker plugin. */ /* Written by Flakron Bytyqi (flakron@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['sq'] = { - closeText: 'mbylle', - prevText: '<mbrapa', - nextText: 'Përpara>', - currentText: 'sot', - monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', - 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], - monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', - 'Kor','Gus','Sht','Tet','Nën','Dhj'], - dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], - dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], - dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], - weekHeader: 'Ja', - dateFormat: 'dd.mm.yy', +datepicker.regional.sq = { + closeText: "mbylle", + prevText: "<mbrapa", + nextText: "Përpara>", + currentText: "sot", + monthNames: [ "Janar","Shkurt","Mars","Prill","Maj","Qershor", + "Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor" ], + monthNamesShort: [ "Jan","Shk","Mar","Pri","Maj","Qer", + "Kor","Gus","Sht","Tet","Nën","Dhj" ], + dayNames: [ "E Diel","E Hënë","E Martë","E Mërkurë","E Enjte","E Premte","E Shtune" ], + dayNamesShort: [ "Di","Hë","Ma","Më","En","Pr","Sh" ], + dayNamesMin: [ "Di","Hë","Ma","Më","En","Pr","Sh" ], + weekHeader: "Ja", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['sq']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sq ); -return datepicker.regional['sq']; +return datepicker.regional.sq; -})); +} ) ); diff --git a/dokuwiki/inc/lang/sq/lang.php b/dokuwiki/inc/lang/sq/lang.php index 4c61b6a7..6de6af81 100644 --- a/dokuwiki/inc/lang/sq/lang.php +++ b/dokuwiki/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'; @@ -236,3 +233,5 @@ $lang['days'] = '%d ditë më parë'; $lang['hours'] = '%d orë më parë'; $lang['minutes'] = '%d minuta më parë'; $lang['seconds'] = '%d sekonda më parë'; +$lang['email_signature_text'] = 'Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/sq/mailtext.txt b/dokuwiki/inc/lang/sq/mailtext.txt index 0746ca42..0566aaf2 100644 --- a/dokuwiki/inc/lang/sq/mailtext.txt +++ b/dokuwiki/inc/lang/sq/mailtext.txt @@ -12,5 +12,5 @@ Përdoruesi: @USER@ @DIFF@ --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sq/password.txt b/dokuwiki/inc/lang/sq/password.txt index 1c8a8694..44acfe6f 100644 --- a/dokuwiki/inc/lang/sq/password.txt +++ b/dokuwiki/inc/lang/sq/password.txt @@ -6,5 +6,5 @@ Hyrje: @LOGIN@ Fjalëkalimi: @PASSWORD@ --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sq/pwconfirm.txt b/dokuwiki/inc/lang/sq/pwconfirm.txt index 44d6c2df..ec776d44 100644 --- a/dokuwiki/inc/lang/sq/pwconfirm.txt +++ b/dokuwiki/inc/lang/sq/pwconfirm.txt @@ -7,7 +7,3 @@ Nëse nuk kërkuat një fjalëkalim të ri atëherë thjesht injorojeni këtë e Për të konfirmuar që kërkesa u dërgua me të vërtetë nga ju, ju lutemi përdorni link-un e mëposhtëm. @CONFIRM@ - --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/registermail.txt b/dokuwiki/inc/lang/sq/registermail.txt index ef90e455..d0f7d518 100644 --- a/dokuwiki/inc/lang/sq/registermail.txt +++ b/dokuwiki/inc/lang/sq/registermail.txt @@ -8,7 +8,3 @@ Data: @DATE@ Shfletuesi: @BROWSER@ Adresa IP: @IPADDRESS@ Emri Hostit: @HOSTNAME@ - --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/subscr_digest.txt b/dokuwiki/inc/lang/sq/subscr_digest.txt index 41404cff..62ca057b 100644 --- a/dokuwiki/inc/lang/sq/subscr_digest.txt +++ b/dokuwiki/inc/lang/sq/subscr_digest.txt @@ -14,7 +14,3 @@ Për të fshirë lajmërimet e faqes, mund të hyni tek wiki në @DOKUWIKIURL@ pastaj vizitoni @SUBSCRIBE@ dhe ç'regjistro faqen dhe/ose ndryshimet e hapësirës së emrit. - --- -Ky eMail është gjeneruar nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/subscr_list.txt b/dokuwiki/inc/lang/sq/subscr_list.txt index cb10d422..0677f405 100644 --- a/dokuwiki/inc/lang/sq/subscr_list.txt +++ b/dokuwiki/inc/lang/sq/subscr_list.txt @@ -7,7 +7,3 @@ Faqet në hapësirën e emrit @PAGE@ të wiki-t @TITLE@ ndryshuan. Këto janë f -------------------------------------------------------- Për të fshirë lajmërimet e faqes, hyni në wiki-n tek @DOKUWIKIURL@ dhe pastaj vizitoni @SUBSCRIBE@ dhe fshini ndryshimet e faqes dhe/ose të hapësirës së emrit. - --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/subscr_single.txt b/dokuwiki/inc/lang/sq/subscr_single.txt index df28ee17..0e4a71c1 100644 --- a/dokuwiki/inc/lang/sq/subscr_single.txt +++ b/dokuwiki/inc/lang/sq/subscr_single.txt @@ -17,7 +17,3 @@ Për të fshirë lajmërimet e faqes, hyni në wiki tek @DOKUWIKIURL@ dhe pastaj vizitoni @SUBSCRIBE@ dhe fshini ndryshimet e faqes dhe/ose hapësirës së emrit. - --- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sq/uploadmail.txt b/dokuwiki/inc/lang/sq/uploadmail.txt index e7c62df1..126aefc0 100644 --- a/dokuwiki/inc/lang/sq/uploadmail.txt +++ b/dokuwiki/inc/lang/sq/uploadmail.txt @@ -8,7 +8,3 @@ Emri Hostit: @HOSTNAME@ Madhësia: @SIZE@ Tipi MIME: @MIME@ Përdoruesi: @USER@ - ---- -Ky email u gjenerua nga DokuWiki në -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/jquery.ui.datepicker.js b/dokuwiki/inc/lang/sr/jquery.ui.datepicker.js index 0f6d9e24..fa8827aa 100644 --- a/dokuwiki/inc/lang/sr/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/sr/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Serbian i18n for the jQuery UI date picker plugin. */ /* Written by Dejan Dimić. */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['sr'] = { - closeText: 'Затвори', - prevText: '<', - nextText: '>', - currentText: 'ДанаÑ', - monthNames: ['Јануар','Фебруар','Март','Ðприл','Мај','Јун', - 'Јул','ÐвгуÑÑ‚','Септембар','Октобар','Ðовембар','Децембар'], - monthNamesShort: ['Јан','Феб','Мар','Ðпр','Мај','Јун', - 'Јул','Ðвг','Сеп','Окт','Ðов','Дец'], - dayNames: ['Ðедеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], - dayNamesShort: ['Ðед','Пон','Уто','Сре','Чет','Пет','Суб'], - dayNamesMin: ['Ðе','По','Ут','Ср','Че','Пе','Су'], - weekHeader: 'Сед', - dateFormat: 'dd.mm.yy', +datepicker.regional.sr = { + 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['sr']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sr ); -return datepicker.regional['sr']; +return datepicker.regional.sr; -})); +} ) ); diff --git a/dokuwiki/inc/lang/sr/lang.php b/dokuwiki/inc/lang/sr/lang.php index 37a36c82..1856f66b 100644 --- a/dokuwiki/inc/lang/sr/lang.php +++ b/dokuwiki/inc/lang/sr/lang.php @@ -1,11 +1,12 @@ * @author Иван Петровић (Ivan Petrovic) * @author Miroslav Å olti + * @author Жељко Тодоровић */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -37,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'] = 'Поништи'; @@ -46,11 +46,13 @@ $lang['btn_recover'] = 'Опорави нацрт'; $lang['btn_draftdel'] = 'Обриши нацрт'; $lang['btn_revert'] = 'Врати на пређашњу верзију'; $lang['btn_register'] = 'РегиÑтруј Ñе'; +$lang['btn_deleteuser'] = 'Уклони мој налог'; +$lang['btn_img_backto'] = 'Ðатраг на %s'; $lang['loggedinas'] = 'Пријављен као:'; $lang['user'] = 'КориÑничко име'; $lang['pass'] = 'Лозинка'; $lang['newpass'] = 'Ðова лозинка'; -$lang['oldpass'] = 'Потврди нову лозинку'; +$lang['oldpass'] = 'УнеÑи Ñадашњу лозинку'; $lang['passchk'] = 'поново'; $lang['remember'] = 'Запамти ме'; $lang['fullname'] = 'Име и презиме'; @@ -60,7 +62,7 @@ $lang['badlogin'] = 'Извините, није добро кори $lang['minoredit'] = 'Мала измена'; $lang['draftdate'] = 'Ðацрт је аутоматÑки Ñачуван'; $lang['nosecedit'] = 'Страна је у међувремену промењена, поглавље је заÑтарело и поново Ñе учитава цела Ñтрана.'; -$lang['searchcreatepage'] = "Ðко ниÑте нашли то што Ñте тражили, можете да направите нову Ñтраницу названу по Вашем упиту кориÑтећи дугме ''Измени ову Ñтраницу''."; +$lang['searchcreatepage'] = 'Ðко ниÑте нашли то што Ñте тражили, можете да направите нову Ñтраницу названу по Вашем упиту кориÑтећи дугме \'\'Измени ову Ñтраницу\'\'.'; $lang['regmissing'] = 'Извините, морате да попуните Ñва поља.'; $lang['reguexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; $lang['regsuccess'] = 'КориÑник је направљен и лозинка је поÑлата путем е-поште.'; @@ -74,6 +76,8 @@ $lang['profna'] = 'Овај вики не дозвољава из $lang['profnochange'] = 'Ðема промена.'; $lang['profnoempty'] = 'Ðије дозвољено оÑтавити празно поље имена или е-адреÑе.'; $lang['profchanged'] = 'КориÑнички профил је ажуриран.'; +$lang['profdeleteuser'] = 'Избриши налог'; +$lang['profdeleted'] = 'Ваш кориÑнички налог је избриÑан Ñа овог викија'; $lang['pwdforget'] = 'Заборавили Ñте лозинку? Ðаправите нову'; $lang['resendna'] = 'Овај вики не дозвољава Ñлање лозинки.'; $lang['resendpwdmissing'] = 'Жао ми је, Ñва поља морају бити попуњена.'; @@ -90,7 +94,7 @@ $lang['txt_filename'] = 'УнеÑите вики-име (опционо $lang['txt_overwrt'] = 'Препишите тренутни фајл'; $lang['lockedby'] = 'Тренутно закључано од Ñтране:'; $lang['lockexpire'] = 'Закључавање иÑтиче:'; -$lang['js']['willexpire'] = 'Ваше закључавање за измену ове Ñтранице ће да иÑтекне за један минут.\nДа би Ñте избегли конфликте, иÑкориÑтите дугме за преглед како би Ñте реÑетовали тајмер закључавања.'; +$lang['js']['willexpire'] = 'Ваше закључавање за измену ове Ñтранице ће да иÑтекне за један минут.\nДа би Ñте избегли конфликте, иÑкориÑтите дугме за преглед како би Ñте реÑетовали тајмер закључавања.'; $lang['js']['notsavedyet'] = 'ÐеÑачуване измене ће бити изгубљене. Да ли Ñтварно желите да наÑтавите?'; $lang['js']['searchmedia'] = 'Потражи фајлове'; @@ -125,7 +129,6 @@ $lang['js']['del_confirm'] = 'Обриши овај уноÑ?'; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ðишта није нађено.'; $lang['mediaselect'] = 'Избор медијÑке датотеке'; -$lang['fileupload'] = 'Слање медијÑке датотеке'; $lang['uploadsucc'] = 'УÑпешно Ñлање'; $lang['uploadfail'] = 'ÐеуÑпешно Ñлање. Можда немате дозволу?'; $lang['uploadwrong'] = 'Слање је забрањено. Овај наÑтавак датотеке је забрањен!'; @@ -173,6 +176,8 @@ $lang['mail_changed'] = 'Ñтраница измењена:'; $lang['mail_subscribe_list'] = 'Странице промењене у именÑком проÑтору:'; $lang['mail_new_user'] = 'нови кориÑник:'; $lang['mail_upload'] = 'поÑлата датотека:'; +$lang['pages_changes'] = 'Странице'; +$lang['both_changes'] = 'И Ñтранице и датотеке'; $lang['qb_bold'] = 'МаÑтан текÑÑ‚'; $lang['qb_italic'] = 'Курзивни текÑÑ‚'; $lang['qb_underl'] = 'Подвучени текÑÑ‚'; @@ -198,11 +203,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'] = 'Датум:'; @@ -261,3 +264,5 @@ $lang['hours'] = 'Пре %d Ñати'; $lang['minutes'] = 'Пре %d минута'; $lang['seconds'] = 'Пре %d Ñекунди'; $lang['wordblock'] = 'Ваше измене ниÑу Ñачуване јер Ñадрже забрањен текÑÑ‚ (Ñпам)'; +$lang['email_signature_text'] = 'Ову поруку је генериÑао DokuWiki sa +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/sr/mailtext.txt b/dokuwiki/inc/lang/sr/mailtext.txt index 2ed99bf3..ab9d717f 100644 --- a/dokuwiki/inc/lang/sr/mailtext.txt +++ b/dokuwiki/inc/lang/sr/mailtext.txt @@ -10,8 +10,3 @@ КориÑник : @USER@ @DIFF@ - - --- -Ову поруку је генериÑао DokuWiki Ñа -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/password.txt b/dokuwiki/inc/lang/sr/password.txt index 11418557..453b9b68 100644 --- a/dokuwiki/inc/lang/sr/password.txt +++ b/dokuwiki/inc/lang/sr/password.txt @@ -4,7 +4,3 @@ КориÑничко име : @LOGIN@ Шифра : @PASSWORD@ - --- -Ову поруку је генериÑао DokuWiki на -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/pwconfirm.txt b/dokuwiki/inc/lang/sr/pwconfirm.txt index 35e23b75..ce44cd5f 100644 --- a/dokuwiki/inc/lang/sr/pwconfirm.txt +++ b/dokuwiki/inc/lang/sr/pwconfirm.txt @@ -7,7 +7,3 @@ У Ñупротном, да биÑте потврдили захтев кликните на Ñледећи линк: @CONFIRM@ - --- -Ову поруку је генериÑао DokuWiki sa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/registermail.txt b/dokuwiki/inc/lang/sr/registermail.txt index efdcbb5c..9dca20c8 100644 --- a/dokuwiki/inc/lang/sr/registermail.txt +++ b/dokuwiki/inc/lang/sr/registermail.txt @@ -8,8 +8,3 @@ Веб читач: @BROWSER@ ИП адреÑа: @IPADDRESS@ Домаћин: @HOSTNAME@ - - --- -Ову поруку је генериÑао DokuWiki sa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/subscr_digest.txt b/dokuwiki/inc/lang/sr/subscr_digest.txt index db841683..aaba525b 100644 --- a/dokuwiki/inc/lang/sr/subscr_digest.txt +++ b/dokuwiki/inc/lang/sr/subscr_digest.txt @@ -14,7 +14,3 @@ Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Вики овде @DOKUWIKIURL@ а затим поÑетите @SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора.. - --- -Овај имејл је направио DokuWiki на Ñтраници -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sr/subscr_list.txt b/dokuwiki/inc/lang/sr/subscr_list.txt index b3887013..09df43de 100644 --- a/dokuwiki/inc/lang/sr/subscr_list.txt +++ b/dokuwiki/inc/lang/sr/subscr_list.txt @@ -11,7 +11,3 @@ Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Вики овде @DOKUWIKIURL@ а затим поÑетите @SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора.. - --- -Овај имејл је направио DokuWiki на Ñтраници -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/subscr_single.txt b/dokuwiki/inc/lang/sr/subscr_single.txt index c0ed4d87..67102dd7 100644 --- a/dokuwiki/inc/lang/sr/subscr_single.txt +++ b/dokuwiki/inc/lang/sr/subscr_single.txt @@ -17,7 +17,3 @@ Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Бики овде @DOKUWIKIURL@ а затим поÑетите @SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора.. - --- -Овај имејл је направио DokuWiki на Ñтраници -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/updateprofile.txt b/dokuwiki/inc/lang/sr/updateprofile.txt index 15b9955e..1f31b225 100644 --- a/dokuwiki/inc/lang/sr/updateprofile.txt +++ b/dokuwiki/inc/lang/sr/updateprofile.txt @@ -1,3 +1,3 @@ ====== Ðжурирање Вашег профила ====== -Потребно је попунити Ñамо она поља која желите да промените. Поље КориÑничко име не можете да променити. \ No newline at end of file +Потребно је попунити Ñамо она поља која желите да промените. Поље КориÑничко име не можете да промените. \ No newline at end of file diff --git a/dokuwiki/inc/lang/sr/uploadmail.txt b/dokuwiki/inc/lang/sr/uploadmail.txt index 36b3bb31..0db6f9e1 100644 --- a/dokuwiki/inc/lang/sr/uploadmail.txt +++ b/dokuwiki/inc/lang/sr/uploadmail.txt @@ -8,7 +8,3 @@ Величина: @SIZE@ MIME тип: @MIME@ КориÑник: @USER@ - --- -Ову поруку је генериÑао DokuWiki sa -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sv/jquery.ui.datepicker.js b/dokuwiki/inc/lang/sv/jquery.ui.datepicker.js index 48747389..92686efa 100644 --- a/dokuwiki/inc/lang/sv/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/sv/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Swedish initialisation for the jQuery UI date picker plugin. */ /* Written by Anders Ekdahl ( anders@nomadiz.se). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['sv'] = { - closeText: 'Stäng', - prevText: '«Förra', - nextText: 'Nästa»', - currentText: 'Idag', - monthNames: ['Januari','Februari','Mars','April','Maj','Juni', - 'Juli','Augusti','September','Oktober','November','December'], - monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dec'], - dayNamesShort: ['Sön','MÃ¥n','Tis','Ons','Tor','Fre','Lör'], - dayNames: ['Söndag','MÃ¥ndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], - dayNamesMin: ['Sö','MÃ¥','Ti','On','To','Fr','Lö'], - weekHeader: 'Ve', - dateFormat: 'yy-mm-dd', +datepicker.regional.sv = { + closeText: "Stäng", + prevText: "«Förra", + nextText: "Nästa»", + currentText: "Idag", + monthNames: [ "Januari","Februari","Mars","April","Maj","Juni", + "Juli","Augusti","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aug","Sep","Okt","Nov","Dec" ], + dayNamesShort: [ "Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör" ], + dayNames: [ "Söndag","MÃ¥ndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag" ], + dayNamesMin: [ "Sö","MÃ¥","Ti","On","To","Fr","Lö" ], + weekHeader: "Ve", + dateFormat: "yy-mm-dd", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['sv']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sv ); -return datepicker.regional['sv']; +return datepicker.regional.sv; -})); +} ) ); diff --git a/dokuwiki/inc/lang/sv/lang.php b/dokuwiki/inc/lang/sv/lang.php index f22491db..b2bb0734 100644 --- a/dokuwiki/inc/lang/sv/lang.php +++ b/dokuwiki/inc/lang/sv/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Joaquim Homrighausen * @author Per Foreby * @author Nicklas Henriksson @@ -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'; @@ -345,3 +341,5 @@ $lang['media_update'] = 'Ladda upp ny version'; $lang['media_restore'] = 'Ã…terställ denna version'; $lang['searchresult'] = 'Sökresultat'; $lang['plainhtml'] = 'Ren HTML'; +$lang['email_signature_text'] = 'Detta meddelande har skapats av DokuWiki pÃ¥ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/sv/mailtext.txt b/dokuwiki/inc/lang/sv/mailtext.txt index 616bb4ee..a45bc2a3 100644 --- a/dokuwiki/inc/lang/sv/mailtext.txt +++ b/dokuwiki/inc/lang/sv/mailtext.txt @@ -10,8 +10,3 @@ Redigeringskommentar : @SUMMARY@ Användare : @USER@ @DIFF@ - - --- -Detta meddelande har skapats av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sv/mailwrap.html b/dokuwiki/inc/lang/sv/mailwrap.html index d8ab9ba5..d2571909 100644 --- a/dokuwiki/inc/lang/sv/mailwrap.html +++ b/dokuwiki/inc/lang/sv/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -Denna e-post har genererats av DokuWiki vid @DOKUWIKIURL@. +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sv/password.txt b/dokuwiki/inc/lang/sv/password.txt index 934d913d..f8465a4d 100644 --- a/dokuwiki/inc/lang/sv/password.txt +++ b/dokuwiki/inc/lang/sv/password.txt @@ -4,7 +4,3 @@ Här är dina användaruppgifter för @TITLE@ pÃ¥ @DOKUWIKIURL@ Användarnamn : @LOGIN@ Lösenord : @PASSWORD@ - --- -Detta meddelande har skapats av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sv/pwconfirm.txt b/dokuwiki/inc/lang/sv/pwconfirm.txt index 54143771..428cfa3d 100644 --- a/dokuwiki/inc/lang/sv/pwconfirm.txt +++ b/dokuwiki/inc/lang/sv/pwconfirm.txt @@ -10,7 +10,3 @@ För att bekräfta att förfrÃ¥gan verkligen kom frÃ¥n dig, var vänlig och använd följande länk. @CONFIRM@ - --- -Detta meddelande har skapats av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sv/registermail.txt b/dokuwiki/inc/lang/sv/registermail.txt index c0edc372..cbcf3f43 100644 --- a/dokuwiki/inc/lang/sv/registermail.txt +++ b/dokuwiki/inc/lang/sv/registermail.txt @@ -8,7 +8,3 @@ Datum : @DATE@ Webbläsare : @BROWSER@ IP-adress : @IPADDRESS@ Datornamn : @HOSTNAME@ - --- -Detta meddelande har skapats av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/sv/subscr_digest.txt b/dokuwiki/inc/lang/sv/subscr_digest.txt index 6724726a..adf6680a 100644 --- a/dokuwiki/inc/lang/sv/subscr_digest.txt +++ b/dokuwiki/inc/lang/sv/subscr_digest.txt @@ -10,10 +10,6 @@ Här är ändringarna: Äldre versionen: @OLDPAGE@ Ny version: @NEWPAGE@ -För att avbryta meddelanden om sidändringar logga in till wikin @DOKUWIKIURL@, besök sedan -@SUBSCRIBE@ +För att avbryta meddelanden om sidändringar logga in till wikin @DOKUWIKIURL@, besök sedan +@SUBSCRIBE@ och avbeställ ändringar av sidor och/eller namespace. - --- -Detta meddelande har skapats av DokuWiki vid -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sv/subscr_single.txt b/dokuwiki/inc/lang/sv/subscr_single.txt index dff88343..50ef0562 100644 --- a/dokuwiki/inc/lang/sv/subscr_single.txt +++ b/dokuwiki/inc/lang/sv/subscr_single.txt @@ -17,7 +17,3 @@ För att avsluta noteringar om sidor, logga in pÃ¥ wikin vid @DOKUWIKIURL@ gÃ¥ sedan till @SUBSCRIBE@ och avsluta prenumerationen av sida och/eller namnrymd ändringar. - --- -Denna e-post har genererats av DokuWiki vid -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/sv/uploadmail.txt b/dokuwiki/inc/lang/sv/uploadmail.txt index 5963adcb..8db5f552 100644 --- a/dokuwiki/inc/lang/sv/uploadmail.txt +++ b/dokuwiki/inc/lang/sv/uploadmail.txt @@ -8,7 +8,3 @@ Datornamn : @HOSTNAME@ Storlek : @SIZE@ MIME-typ : @MIME@ Användare : @USER@ - --- -Detta meddelande har skapats av DokuWiki pÃ¥ -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/ta/admin.txt b/dokuwiki/inc/lang/ta/admin.txt new file mode 100644 index 00000000..2538b456 --- /dev/null +++ b/dokuwiki/inc/lang/ta/admin.txt @@ -0,0 +1,3 @@ +====== நிரà¯à®µà®¾à®•ம௠====== + +கீழே டோகà¯à®µà®¿à®•à¯à®•ியின௠நிரà¯à®µà®¾à®•ம௠தொடரà¯à®ªà®¾à®© à®®à¯à®±à¯ˆà®®à¯ˆà®•ளைப௠பாரà¯à®•à¯à®•லாமà¯. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/adminplugins.txt b/dokuwiki/inc/lang/ta/adminplugins.txt new file mode 100644 index 00000000..54a363a8 --- /dev/null +++ b/dokuwiki/inc/lang/ta/adminplugins.txt @@ -0,0 +1 @@ +===== மேலதிக சொரà¯à®•ிகள௠===== \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/backlinks.txt b/dokuwiki/inc/lang/ta/backlinks.txt new file mode 100644 index 00000000..d8e618fc --- /dev/null +++ b/dokuwiki/inc/lang/ta/backlinks.txt @@ -0,0 +1,3 @@ +====== பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•ள௠====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இணைபà¯à®ªà¯ˆà®•௠கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯ அனைதà¯à®¤à¯à®ªà¯ பகà¯à®•à®™à¯à®•ளà¯à®®à¯ \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/conflict.txt b/dokuwiki/inc/lang/ta/conflict.txt new file mode 100644 index 00000000..301c2f07 --- /dev/null +++ b/dokuwiki/inc/lang/ta/conflict.txt @@ -0,0 +1,3 @@ +====== பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உணà¯à®Ÿà¯ ====== + +நீஙà¯à®•ள௠திரà¯à®¤à¯à®¤à®¿à®¯ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•௠பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உரà¯à®µà®¾à®•ியà¯à®³à¯à®³à®¤à¯. நீஙà¯à®•ள௠கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯à®®à¯ போதà¯, இனà¯à®©à¯à®®à¯Šà®°à¯ பயனர௠அதே பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯ இபà¯à®ªà®Ÿà®¿ à®à®±à¯à®ªà®Ÿ வாயà¯à®ªà¯à®ªà¯à®£à¯à®Ÿà¯. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/diff.txt b/dokuwiki/inc/lang/ta/diff.txt new file mode 100644 index 00000000..bbc28767 --- /dev/null +++ b/dokuwiki/inc/lang/ta/diff.txt @@ -0,0 +1,3 @@ +====== வேறà¯à®ªà®¾à®Ÿà¯à®•ள௠====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இரà¯à®µà¯‡à®±à¯à®ªà®Ÿà¯à®Ÿ மாறà¯à®¤à®²à¯à®•ளைக௠காடà¯à®Ÿà¯à®•ினà¯à®±à®¤à¯. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/draft.txt b/dokuwiki/inc/lang/ta/draft.txt new file mode 100644 index 00000000..2bb89219 --- /dev/null +++ b/dokuwiki/inc/lang/ta/draft.txt @@ -0,0 +1 @@ +====== பூரணமாகத கோபà¯à®ªà¯ ====== \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/edit.txt b/dokuwiki/inc/lang/ta/edit.txt new file mode 100644 index 00000000..e2d61d78 --- /dev/null +++ b/dokuwiki/inc/lang/ta/edit.txt @@ -0,0 +1 @@ +பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®µà¯à®Ÿà®©à¯, "செமி" எனà¯à®± படà¯à®Ÿà®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯. விகà¯à®•ியின௠வாகà¯à®•ிய அமைபà¯à®ªà¯à®•à¯à®•ளைப௠அறிநà¯à®¤à¯à®•ொளà¯à®³ [[wiki:syntax]] ஠பாரà¯à®•à¯à®•வà¯à®®à¯. நீஙà¯à®•ள௠விகà¯à®•ியில௠எழà¯à®¤à®¿à®ªà¯ பயிறà¯à®šà®¿à®ªà¯†à®± [playground:playground|விளையாடà¯à®Ÿà¯à®¤à¯à®¤à®¾à®Ÿà®²à¯ˆ]] பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯. \ No newline at end of file diff --git a/dokuwiki/inc/lang/ta/jquery.ui.datepicker.js b/dokuwiki/inc/lang/ta/jquery.ui.datepicker.js new file mode 100644 index 00000000..722614dd --- /dev/null +++ b/dokuwiki/inc/lang/ta/jquery.ui.datepicker.js @@ -0,0 +1,53 @@ +/* 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( [ "../widgets/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/dokuwiki/inc/lang/ta/lang.php b/dokuwiki/inc/lang/ta/lang.php index a5b89527..422613ec 100644 --- a/dokuwiki/inc/lang/ta/lang.php +++ b/dokuwiki/inc/lang/ta/lang.php @@ -2,23 +2,41 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Naveen Venugopal + * @author Sri Saravana */ +$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/dokuwiki/inc/lang/th/jquery.ui.datepicker.js b/dokuwiki/inc/lang/th/jquery.ui.datepicker.js index 9314268c..6de48cf9 100644 --- a/dokuwiki/inc/lang/th/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/th/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Thai initialisation for the jQuery UI date picker plugin. */ /* Written by pipo (pipo@sixhead.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['th'] = { - closeText: 'ปิด', - prevText: '« à¸¢à¹‰à¸­à¸™', - nextText: 'ถัดไป »', - currentText: 'วันนี้', - monthNames: ['มà¸à¸£à¸²à¸„ม','à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', - 'à¸à¸£à¸à¸Žà¸²à¸„ม','สิงหาคม','à¸à¸±à¸™à¸¢à¸²à¸¢à¸™','ตุลาคม','พฤศจิà¸à¸²à¸¢à¸™','ธันวาคม'], - monthNamesShort: ['ม.ค.','à¸.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', - 'à¸.ค.','ส.ค.','à¸.ย.','ต.ค.','พ.ย.','ธ.ค.'], - dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุà¸à¸£à¹Œ','เสาร์'], - dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], - dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], - weekHeader: 'Wk', - dateFormat: 'dd/mm/yy', +datepicker.regional.th = { + closeText: "ปิด", + prevText: "« à¸¢à¹‰à¸­à¸™", + nextText: "ถัดไป »", + currentText: "วันนี้", + monthNames: [ "มà¸à¸£à¸²à¸„ม","à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน", + "à¸à¸£à¸à¸Žà¸²à¸„ม","สิงหาคม","à¸à¸±à¸™à¸¢à¸²à¸¢à¸™","ตุลาคม","พฤศจิà¸à¸²à¸¢à¸™","ธันวาคม" ], + monthNamesShort: [ "ม.ค.","à¸.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.", + "à¸.ค.","ส.ค.","à¸.ย.","ต.ค.","พ.ย.","ธ.ค." ], + dayNames: [ "อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุà¸à¸£à¹Œ","เสาร์" ], + dayNamesShort: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ], + dayNamesMin: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['th']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.th ); -return datepicker.regional['th']; +return datepicker.regional.th; -})); +} ) ); diff --git a/dokuwiki/inc/lang/th/lang.php b/dokuwiki/inc/lang/th/lang.php index 11343127..570d9296 100644 --- a/dokuwiki/inc/lang/th/lang.php +++ b/dokuwiki/inc/lang/th/lang.php @@ -2,16 +2,17 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Komgrit Niyomrath * @author Arthit Suriyawongkul * @author Kittithat Arnontavilas * @author Thanasak Sompaisansin * @author Yuthana Tantirungrotechai + * @author Amnuay */ $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'] = 'ฉันอยาà¸à¸¥à¸šà¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚องฉันจาà¸à¸§à¸´à¸à¸´à¸™à¸µà¹‰
    à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่สามารถà¹à¸à¹‰à¹„ขคืนได้ '; +$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'] = 'บันทึà¸à¹€à¸¡à¸•้าดาต้าà¹à¸¥à¹‰à¸§'; @@ -225,3 +242,5 @@ $lang['days'] = '%d วันà¸à¹ˆà¸­à¸™'; $lang['hours'] = '%d ชั่วโมงà¸à¹ˆà¸­à¸™'; $lang['minutes'] = '%d นาทีà¸à¹ˆà¸­à¸™'; $lang['seconds'] = '%d วินาทีà¸à¹ˆà¸­à¸™'; +$lang['email_signature_text'] = 'จดหมายนี้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/th/mailtext.txt b/dokuwiki/inc/lang/th/mailtext.txt index a4af8a0f..5dec2226 100644 --- a/dokuwiki/inc/lang/th/mailtext.txt +++ b/dokuwiki/inc/lang/th/mailtext.txt @@ -10,8 +10,3 @@ ผู้ใช้: @USER@ @DIFF@ - - --- -จดหมายนี้สร้างขึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/th/password.txt b/dokuwiki/inc/lang/th/password.txt index 5f0dcfff..e463e761 100644 --- a/dokuwiki/inc/lang/th/password.txt +++ b/dokuwiki/inc/lang/th/password.txt @@ -4,7 +4,3 @@ ล็อà¸à¸­à¸´à¸™: @LOGIN@ รหัสผ่าน : @PASSWORD@ - --- -จดหมายนี้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/th/pwconfirm.txt b/dokuwiki/inc/lang/th/pwconfirm.txt index e6ab876c..1cf42c8e 100644 --- a/dokuwiki/inc/lang/th/pwconfirm.txt +++ b/dokuwiki/inc/lang/th/pwconfirm.txt @@ -8,7 +8,3 @@ หาà¸à¸•้องà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸§à¹ˆà¸²à¸™à¸µà¹ˆà¸à¸²à¸£à¸£à¹‰à¸­à¸‡à¸‚อนี้ถูà¸à¸ªà¹ˆà¸‡à¹‚ดยคุณจริงๆ à¸à¸£à¸¸à¸“าใช้ลิงค์ดังต่อไปนี้ @CONFIRM@ - --- -จดหมายนี้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/th/registermail.txt b/dokuwiki/inc/lang/th/registermail.txt index a96026d3..4cfaddd9 100644 --- a/dokuwiki/inc/lang/th/registermail.txt +++ b/dokuwiki/inc/lang/th/registermail.txt @@ -8,7 +8,3 @@ บราวเซอร์ : @BROWSER@ ที่อยู่ไอพี : @IPADDRESS@ ชื่อโฮสต์ : @HOSTNAME@ - --- -จดหมายนี้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/th/uploadmail.txt b/dokuwiki/inc/lang/th/uploadmail.txt index 02696575..9d042b99 100644 --- a/dokuwiki/inc/lang/th/uploadmail.txt +++ b/dokuwiki/inc/lang/th/uploadmail.txt @@ -8,7 +8,3 @@ ขนาด: @SIZE@ MIME Type : @MIME@ ผู้ใช้: @USER@ - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/tr/jquery.ui.datepicker.js b/dokuwiki/inc/lang/tr/jquery.ui.datepicker.js index c366eb16..8328e219 100644 --- a/dokuwiki/inc/lang/tr/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/tr/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Turkish initialisation for the jQuery UI date picker plugin. */ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['tr'] = { - closeText: 'kapat', - prevText: '<geri', - nextText: 'ileri>', - currentText: 'bugün', - monthNames: ['Ocak','Åžubat','Mart','Nisan','Mayıs','Haziran', - 'Temmuz','AÄŸustos','Eylül','Ekim','Kasım','Aralık'], - monthNamesShort: ['Oca','Åžub','Mar','Nis','May','Haz', - 'Tem','AÄŸu','Eyl','Eki','Kas','Ara'], - dayNames: ['Pazar','Pazartesi','Salı','ÇarÅŸamba','PerÅŸembe','Cuma','Cumartesi'], - dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], - dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], - weekHeader: 'Hf', - dateFormat: 'dd.mm.yy', +datepicker.regional.tr = { + closeText: "kapat", + prevText: "<geri", + nextText: "ileri>", + currentText: "bugün", + monthNames: [ "Ocak","Åžubat","Mart","Nisan","Mayıs","Haziran", + "Temmuz","AÄŸustos","Eylül","Ekim","Kasım","Aralık" ], + monthNamesShort: [ "Oca","Åžub","Mar","Nis","May","Haz", + "Tem","AÄŸu","Eyl","Eki","Kas","Ara" ], + dayNames: [ "Pazar","Pazartesi","Salı","ÇarÅŸamba","PerÅŸembe","Cuma","Cumartesi" ], + dayNamesShort: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ], + dayNamesMin: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ], + weekHeader: "Hf", + dateFormat: "dd.mm.yy", firstDay: 1, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['tr']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.tr ); -return datepicker.regional['tr']; +return datepicker.regional.tr; -})); +} ) ); diff --git a/dokuwiki/inc/lang/tr/lang.php b/dokuwiki/inc/lang/tr/lang.php index 1676256a..49236c5f 100644 --- a/dokuwiki/inc/lang/tr/lang.php +++ b/dokuwiki/inc/lang/tr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Selim FarsakoÄŸlu * @author Aydın CoÅŸkuner * @author Cihan Kahveci @@ -13,6 +13,7 @@ * @author huseyin can * @author ilker rifat kapaç * @author İlker R. Kapaç + * @author Mete Cuma */ $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.
    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 adresindeki Dokuwiki kurulum kılavuzuna bakmalısınız.'; $lang['i_funcna'] = '%s PHP fonksiyonu bulunmamaktadır. Barındırma(Hosting) hizmetinde bu özellik kapatılmış olabilir.'; $lang['i_phpver'] = '%s PHP sürümü, gereken %s 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'] = '%s Dokuwiki tarafından yazılabilir deÄŸil. İzin ayarlarını bu klasör için düzeltmeniz gerekmektedir!'; $lang['i_confexists'] = '%s zaten var'; $lang['i_writeerr'] = '%s 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=%s)'; $lang['i_badval'] = '%s - Yanlış veya boÅŸ deÄŸer'; -$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. Yeni DokuWikinizi kullanabilirsiniz.'; -$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. Yeni DokuWikinizi kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.'; +$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. Yeni DokuWikinizi kullanabilirsiniz.'; +$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. Yeni DokuWikinizi 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)'; @@ -329,3 +339,5 @@ $lang['currentns'] = 'Geçerli isimalanı'; $lang['searchresult'] = 'Arama Sonucu'; $lang['plainhtml'] = 'Yalın HTML'; $lang['wikimarkup'] = 'Wiki Biçimlendirmesi'; +$lang['email_signature_text'] = 'Bu e-posta aÅŸağıdaki DokuWiki tarafından otomatik olarak oluÅŸturulmuÅŸtur +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/tr/mailtext.txt b/dokuwiki/inc/lang/tr/mailtext.txt index 7e8fc8d8..dfcc39e7 100644 --- a/dokuwiki/inc/lang/tr/mailtext.txt +++ b/dokuwiki/inc/lang/tr/mailtext.txt @@ -10,7 +10,3 @@ DeÄŸiÅŸtirme Özeti : @SUMMARY@ Kullanıcı : @USER@ @DIFF@ - - --- -Bu e-posta @DOKUWIKIURL@ adresindeki DokuWiki tarafından hazırlandı. diff --git a/dokuwiki/inc/lang/tr/password.txt b/dokuwiki/inc/lang/tr/password.txt index 956a786d..852811d1 100644 --- a/dokuwiki/inc/lang/tr/password.txt +++ b/dokuwiki/inc/lang/tr/password.txt @@ -5,6 +5,3 @@ Merhaba @FULLNAME@! GiriÅŸ ismi : @LOGIN@ Parola : @PASSWORD@ - --- -Bu e-posta @DOKUWIKIURL@ adresindeki DokuWiki tarafından hazırlandı. \ No newline at end of file diff --git a/dokuwiki/inc/lang/tr/pwconfirm.txt b/dokuwiki/inc/lang/tr/pwconfirm.txt index 22348bb7..7e440e83 100644 --- a/dokuwiki/inc/lang/tr/pwconfirm.txt +++ b/dokuwiki/inc/lang/tr/pwconfirm.txt @@ -7,7 +7,3 @@ EÄŸer böyle bir talebiniz olmadıysa, bu e-postayı görmezden gelebilirsiniz. Onaylamak istiyorsanız aÅŸağıdaki linke tıklayınız. @CONFIRM@ - --- -Bu e-posta aÅŸağıdaki DokuWiki tarafından otomatik olarak oluÅŸturulmuÅŸtur. -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/tr/registermail.txt b/dokuwiki/inc/lang/tr/registermail.txt index 7754a567..26ff7390 100644 --- a/dokuwiki/inc/lang/tr/registermail.txt +++ b/dokuwiki/inc/lang/tr/registermail.txt @@ -8,6 +8,3 @@ Tarih : @DATE@ Tarayıcı : @BROWSER@ IP Numarası : @IPADDRESS@ Host : @HOSTNAME@ - --- -Bu e-posta @DOKUWIKIURL@ adresindeki DokuWiki tarafından hazırlandı. \ No newline at end of file diff --git a/dokuwiki/inc/lang/tr/uploadmail.txt b/dokuwiki/inc/lang/tr/uploadmail.txt index 2d75345b..92feef2a 100644 --- a/dokuwiki/inc/lang/tr/uploadmail.txt +++ b/dokuwiki/inc/lang/tr/uploadmail.txt @@ -8,6 +8,3 @@ Host : @HOSTNAME@ Boyut : @SIZE@ MIME Type : @MIME@ Kullanıcı : @USER@ - --- -Bu e-posta @DOKUWIKIURL@ adresindeki DokuWiki tarafından hazırlandı. \ No newline at end of file diff --git a/dokuwiki/inc/lang/uk/jquery.ui.datepicker.js b/dokuwiki/inc/lang/uk/jquery.ui.datepicker.js index ab4adb9d..c82501ad 100644 --- a/dokuwiki/inc/lang/uk/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/uk/jquery.ui.datepicker.js @@ -1,38 +1,38 @@ /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ /* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['uk'] = { - closeText: 'Закрити', - prevText: '<', - nextText: '>', - currentText: 'Сьогодні', - monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', - 'Липень','Серпень','ВереÑень','Жовтень','ЛиÑтопад','Грудень'], - monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', - 'Лип','Сер','Вер','Жов','ЛиÑ','Гру'], - dayNames: ['неділÑ','понеділок','вівторок','Ñереда','четвер','п’ÑтницÑ','Ñубота'], - dayNamesShort: ['нед','пнд','вів','Ñрд','чтв','птн','Ñбт'], - dayNamesMin: ['Ðд','Пн','Ð’Ñ‚','Ср','Чт','Пт','Сб'], - weekHeader: 'Тиж', - dateFormat: 'dd.mm.yy', +datepicker.regional.uk = { + 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['uk']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.uk ); -return datepicker.regional['uk']; +return datepicker.regional.uk; -})); +} ) ); diff --git a/dokuwiki/inc/lang/uk/lang.php b/dokuwiki/inc/lang/uk/lang.php index a6b08c90..2fe447b0 100644 --- a/dokuwiki/inc/lang/uk/lang.php +++ b/dokuwiki/inc/lang/uk/lang.php @@ -7,9 +7,12 @@ * @author serg_stetsuk@ukr.net * @author Oleksandr Kunytsia * @author Uko - * @author Ulrikhe Lukoie + * @author Ulrikhe Lukoie * @author Kate Arzamastseva pshns@ukr.net * @author Egor Smkv + * @author Max Lyashuk + * @author Pavel + * @author Maksim */ $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'] = 'Ви переглÑдаєте зміни в межах проÑтору імен %s. Також можна переглÑнути зміни в межах уÑієї Вікі.'; $lang['years'] = '%d років тому'; $lang['months'] = '%d міÑÑців тому'; @@ -286,3 +305,20 @@ $lang['hours'] = '%d годин тому'; $lang['minutes'] = '%d хвилин тому'; $lang['seconds'] = '%d Ñекунд тому'; $lang['wordblock'] = 'Ваші зміни не збережено, тому що вони розпізнані Ñк такі, що міÑÑ‚Ñть заблокований текÑÑ‚(Ñпам).'; +$lang['email_signature_text'] = 'Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з +@DOKUWIKIURL@'; +$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/dokuwiki/inc/lang/uk/mailtext.txt b/dokuwiki/inc/lang/uk/mailtext.txt index 5bd25c3c..4f3072c2 100644 --- a/dokuwiki/inc/lang/uk/mailtext.txt +++ b/dokuwiki/inc/lang/uk/mailtext.txt @@ -10,8 +10,3 @@ КориÑтувач : @USER@ @DIFF@ - - --- -Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/uk/password.txt b/dokuwiki/inc/lang/uk/password.txt index 8597d494..7db9be38 100644 --- a/dokuwiki/inc/lang/uk/password.txt +++ b/dokuwiki/inc/lang/uk/password.txt @@ -4,7 +4,3 @@ Login : @LOGIN@ Password : @PASSWORD@ - --- -Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/uk/pwconfirm.txt b/dokuwiki/inc/lang/uk/pwconfirm.txt index 54d7a200..cd981f11 100644 --- a/dokuwiki/inc/lang/uk/pwconfirm.txt +++ b/dokuwiki/inc/lang/uk/pwconfirm.txt @@ -8,6 +8,3 @@ перейдіть за наÑтупним поÑиланнÑм. @CONFIRM@ - --- -Цей лиÑÑ‚ було надіÑлано за допомогою Ñлужби повідомлень DokuWiki, Ñайту @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/uk/registermail.txt b/dokuwiki/inc/lang/uk/registermail.txt index 28735ed7..14f0e4b8 100644 --- a/dokuwiki/inc/lang/uk/registermail.txt +++ b/dokuwiki/inc/lang/uk/registermail.txt @@ -8,6 +8,3 @@ E-Mail : @NEWEMAIL@ Браузер : @BROWSER@ ÐдреÑа IP : @IPADDRESS@ Ðазва хоÑту : @HOSTNAME@ - --- -Цей лиÑÑ‚ було надіÑлано за допомогою Ñлужби повідомлень DokuWiki, Ñайту @DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/uk/resetpwd.txt b/dokuwiki/inc/lang/uk/resetpwd.txt new file mode 100644 index 00000000..b24e8847 --- /dev/null +++ b/dokuwiki/inc/lang/uk/resetpwd.txt @@ -0,0 +1,3 @@ +====== Ð’Ñтановити новий пароль ====== + +Будь-лаÑка, введіть новий пароль Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— wiki. \ No newline at end of file diff --git a/dokuwiki/inc/lang/uk/subscr_digest.txt b/dokuwiki/inc/lang/uk/subscr_digest.txt index 32379182..c226e296 100644 --- a/dokuwiki/inc/lang/uk/subscr_digest.txt +++ b/dokuwiki/inc/lang/uk/subscr_digest.txt @@ -12,6 +12,3 @@ Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @SUBSCRIBE@ та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен. - --- -Цей лиÑÑ‚ було надіÑлано за допомогою Ñлужби повідомлень DokuWiki, Ñайту @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/uk/subscr_list.txt b/dokuwiki/inc/lang/uk/subscr_list.txt index 7a538bc1..6c4001f5 100644 --- a/dokuwiki/inc/lang/uk/subscr_list.txt +++ b/dokuwiki/inc/lang/uk/subscr_list.txt @@ -9,6 +9,3 @@ Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @SUBSCRIBE@ та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен. - --- -Цей лиÑÑ‚ було надіÑлано за допомогою Ñлужби повідомлень DokuWiki, Ñайту @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/uk/subscr_single.txt b/dokuwiki/inc/lang/uk/subscr_single.txt index 22a06917..658bae5d 100644 --- a/dokuwiki/inc/lang/uk/subscr_single.txt +++ b/dokuwiki/inc/lang/uk/subscr_single.txt @@ -15,6 +15,3 @@ Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @NEWPAGE@ та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен. - --- -Цей лиÑÑ‚ було надіÑлано за допомогою Ñлужби повідомлень DokuWiki, Ñайту @DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/uk/uploadmail.txt b/dokuwiki/inc/lang/uk/uploadmail.txt index 6eb8c93c..ee982c85 100644 --- a/dokuwiki/inc/lang/uk/uploadmail.txt +++ b/dokuwiki/inc/lang/uk/uploadmail.txt @@ -8,7 +8,3 @@ IP-ÐдреÑа : @IPADDRESS@ Розмір : @SIZE@ Тип MIME : @MIME@ КориÑтувач : @USER@ - --- -Цей лиÑÑ‚ автоматично Ñтворено ДокуВікі на Ñайті: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/vi/jquery.ui.datepicker.js b/dokuwiki/inc/lang/vi/jquery.ui.datepicker.js index 187ec15e..2c208ab7 100644 --- a/dokuwiki/inc/lang/vi/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/vi/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Vietnamese initialisation for the jQuery UI date picker plugin. */ /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['vi'] = { - closeText: 'Äóng', - prevText: '<Trước', - nextText: 'Tiếp>', - currentText: 'Hôm nay', - monthNames: ['Tháng Má»™t', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', - 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mưá»i', 'Tháng Mưá»i Má»™t', 'Tháng Mưá»i Hai'], - monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', - 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], - dayNames: ['Chá»§ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], - dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], - dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], - weekHeader: 'Tu', - dateFormat: 'dd/mm/yy', +datepicker.regional.vi = { + closeText: "Äóng", + prevText: "<Trước", + nextText: "Tiếp>", + currentText: "Hôm nay", + monthNames: [ "Tháng Má»™t", "Tháng Hai", "Tháng Ba", "Tháng Tư", "Tháng Năm", "Tháng Sáu", + "Tháng Bảy", "Tháng Tám", "Tháng Chín", "Tháng Mưá»i", "Tháng Mưá»i Má»™t", "Tháng Mưá»i Hai" ], + monthNamesShort: [ "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", + "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12" ], + dayNames: [ "Chá»§ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy" ], + dayNamesShort: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ], + dayNamesMin: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ], + weekHeader: "Tu", + dateFormat: "dd/mm/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, - yearSuffix: ''}; -datepicker.setDefaults(datepicker.regional['vi']); + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.vi ); -return datepicker.regional['vi']; +return datepicker.regional.vi; -})); +} ) ); diff --git a/dokuwiki/inc/lang/vi/lang.php b/dokuwiki/inc/lang/vi/lang.php index 41a7d590..ea1d053a 100644 --- a/dokuwiki/inc/lang/vi/lang.php +++ b/dokuwiki/inc/lang/vi/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author James Do */ $lang['encoding'] = 'utf-8'; @@ -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'; @@ -240,3 +239,5 @@ $lang['media_perm_read'] = 'Sorry, bạn không đủ quyá»n truy cập.' $lang['media_perm_upload'] = 'Xin lá»—i, bạn không đủ quyá»n để upload file lên.'; $lang['media_update'] = 'Tải lên phiên bản má»›i'; $lang['media_restore'] = 'Phục hồi phiên bản này'; +$lang['email_signature_text'] = 'Äiện thư này tạo bởi DokuWiki ở +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/vi/mailtext.txt b/dokuwiki/inc/lang/vi/mailtext.txt index 836e02d2..bcbb6565 100644 --- a/dokuwiki/inc/lang/vi/mailtext.txt +++ b/dokuwiki/inc/lang/vi/mailtext.txt @@ -10,7 +10,3 @@ Edit Summary: @SUMMARY@ User : @USER@ @DIFF@ - --- -Äiện thư này tạo bởi DokuWiki ở -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/vi/password.txt b/dokuwiki/inc/lang/vi/password.txt index 798a20d3..9f80429f 100644 --- a/dokuwiki/inc/lang/vi/password.txt +++ b/dokuwiki/inc/lang/vi/password.txt @@ -4,6 +4,3 @@ Thân chào bạn @FULLNAME@! Username: @LOGIN@ Password: @PASSWORD@ - --- -Äiện thư này xuất phát từ @DOKUWIKIURL@. diff --git a/dokuwiki/inc/lang/zh-tw/jquery.ui.datepicker.js b/dokuwiki/inc/lang/zh-tw/jquery.ui.datepicker.js index c9e6dfcb..c20754bd 100644 --- a/dokuwiki/inc/lang/zh-tw/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/zh-tw/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Ressol (ressol@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['zh-TW'] = { - closeText: '關閉', - prevText: '<上月', - nextText: '下月>', - currentText: '今天', - monthNames: ['一月','二月','三月','四月','五月','六月', - '七月','八月','乿œˆ','åæœˆ','å一月','å二月'], - monthNamesShort: ['一月','二月','三月','四月','五月','六月', - '七月','八月','乿œˆ','åæœˆ','å一月','å二月'], - dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], - dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], - dayNamesMin: ['æ—¥','一','二','三','å››','五','å…­'], - weekHeader: '周', - dateFormat: 'yy/mm/dd', +datepicker.regional[ "zh-TW" ] = { + closeText: "關閉", + prevText: "<上月", + nextText: "下月>", + currentText: "今天", + monthNames: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","乿œˆ","åæœˆ","å一月","å二月" ], + monthNamesShort: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","乿œˆ","åæœˆ","å一月","å二月" ], + dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], + dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], + dayNamesMin: [ "æ—¥","一","二","三","å››","五","å…­" ], + weekHeader: "周", + dateFormat: "yy/mm/dd", firstDay: 1, isRTL: false, showMonthAfterYear: true, - yearSuffix: 'å¹´'}; -datepicker.setDefaults(datepicker.regional['zh-TW']); + yearSuffix: "å¹´" }; +datepicker.setDefaults( datepicker.regional[ "zh-TW" ] ); -return datepicker.regional['zh-TW']; +return datepicker.regional[ "zh-TW" ]; -})); +} ) ); diff --git a/dokuwiki/inc/lang/zh-tw/lang.php b/dokuwiki/inc/lang/zh-tw/lang.php index 57c0d03e..bc49b33d 100644 --- a/dokuwiki/inc/lang/zh-tw/lang.php +++ b/dokuwiki/inc/lang/zh-tw/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author chinsan * @author Li-Jiun Huang * @author http://www.chinese-tools.com/tools/converter-simptrad.html @@ -15,6 +15,8 @@ * @author Danny Lin * @author Stan * @author June-Hao Hou + * @author lioujheyu + * @author Liou, Jhe-Yu */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -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'] = '資料é‡è¨­'; @@ -158,7 +159,6 @@ $lang['js']['media_overwrt'] = '覆蓋已存在的檔案'; $lang['rssfailed'] = 'æ“·å– RSS 饋逿ª”時發生錯誤:'; $lang['nothingfound'] = 'æ²’æ‰¾åˆ°ä»»ä½•çµæžœã€‚'; $lang['mediaselect'] = '媒體檔案'; -$lang['fileupload'] = '上傳媒體檔案'; $lang['uploadsucc'] = '已上傳'; $lang['uploadfail'] = '無法上傳。是å¦å› æ¬Šé™éŒ¯èª¤ï¼Ÿ'; $lang['uploadwrong'] = '拒絕上傳。這個副檔åè¢«ç¦æ­¢äº†ï¼'; @@ -249,7 +249,6 @@ $lang['qb_sig'] = 'æ’入簽å'; $lang['qb_smileys'] = '表情符號'; $lang['qb_chars'] = '特殊字元'; $lang['upperns'] = 'å‰å¾€çˆ¶åˆ†é¡žå稱'; -$lang['admin_register'] = '新增使用者'; $lang['metaedit'] = '編輯後設資料'; $lang['metasaveerr'] = '後設資料無法寫入'; $lang['metasaveok'] = '後設資料已儲存'; @@ -282,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 çš„å稱'; @@ -299,8 +297,8 @@ $lang['i_writeerr'] = '無法建立 %s。您必須檢查 $lang['i_badhash'] = '無法辨識或已é­ä¿®æ”¹çš„ dokuwiki.php (hash=%s)'; $lang['i_badval'] = '%s —— éžæ³•或空白的值'; $lang['i_success'] = '設定已完æˆã€‚您ç¾åœ¨å¯ä»¥åˆªé™¤ install.php 檔案。繼續到 -您的新 DokuWiki.'; -$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用您的新 Dokuwiki 之剿‰‹å‹•修正它們。'; +您的新 DokuWiki.'; +$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用您的新 Dokuwiki 之剿‰‹å‹•修正它們。'; $lang['i_policy'] = 'åˆæ­¥çš„ ACL 政策'; $lang['i_pol0'] = '開放的 wiki (任何人å¯è®€å–ã€å¯«å…¥ã€ä¸Šå‚³)'; $lang['i_pol1'] = '公開的 wiki (任何人å¯è®€å–,註冊使用者å¯å¯«å…¥èˆ‡ä¸Šå‚³)'; @@ -347,3 +345,5 @@ $lang['currentns'] = 'ç›®å‰çš„命å空間'; $lang['searchresult'] = 'æœå°‹çµæžœ'; $lang['plainhtml'] = 'ç´” HTML'; $lang['wikimarkup'] = 'Wiki 語法標記'; +$lang['email_signature_text'] = '本信件由以下 DokuWiki 網站產生 +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/zh-tw/mailtext.txt b/dokuwiki/inc/lang/zh-tw/mailtext.txt index e99858c7..7ffb83e8 100644 --- a/dokuwiki/inc/lang/zh-tw/mailtext.txt +++ b/dokuwiki/inc/lang/zh-tw/mailtext.txt @@ -10,8 +10,3 @@ IP ä½å€ : @IPADDRESS@ 使用者 : @USER@ @DIFF@ - - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/mailwrap.html b/dokuwiki/inc/lang/zh-tw/mailwrap.html index 9cd5faac..d2571909 100644 --- a/dokuwiki/inc/lang/zh-tw/mailwrap.html +++ b/dokuwiki/inc/lang/zh-tw/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -這郵件由DokuWiki at @DOKUWIKIURL@. ç”Ÿæˆ +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/password.txt b/dokuwiki/inc/lang/zh-tw/password.txt index 9c5ad2f9..9898f24a 100644 --- a/dokuwiki/inc/lang/zh-tw/password.txt +++ b/dokuwiki/inc/lang/zh-tw/password.txt @@ -4,7 +4,3 @@ 帳號 : @LOGIN@ 密碼 : @PASSWORD@ - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ diff --git a/dokuwiki/inc/lang/zh-tw/pwconfirm.txt b/dokuwiki/inc/lang/zh-tw/pwconfirm.txt index 6f6dcd3c..93ed5697 100644 --- a/dokuwiki/inc/lang/zh-tw/pwconfirm.txt +++ b/dokuwiki/inc/lang/zh-tw/pwconfirm.txt @@ -7,7 +7,3 @@ 若您真的è¦ä½¿ç”¨æ–°å¯†ç¢¼ï¼Œè«‹æ‹œè¨ªä»¥ä¸‹çš„連çµã€‚ @CONFIRM@ - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/registermail.txt b/dokuwiki/inc/lang/zh-tw/registermail.txt index a67835d7..22b7ff85 100644 --- a/dokuwiki/inc/lang/zh-tw/registermail.txt +++ b/dokuwiki/inc/lang/zh-tw/registermail.txt @@ -8,7 +8,3 @@ ç€è¦½å™¨ : @BROWSER@ IP ä½å€ : @IPADDRESS@ 主機å稱 : @HOSTNAME@ - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/subscr_digest.txt b/dokuwiki/inc/lang/zh-tw/subscr_digest.txt index 1a34087c..2ab0bc0d 100644 --- a/dokuwiki/inc/lang/zh-tw/subscr_digest.txt +++ b/dokuwiki/inc/lang/zh-tw/subscr_digest.txt @@ -13,7 +13,3 @@ è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@ 然後拜訪 @SUBSCRIBE@ 䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。 - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/subscr_list.txt b/dokuwiki/inc/lang/zh-tw/subscr_list.txt index da2fb33e..8cbb24ca 100644 --- a/dokuwiki/inc/lang/zh-tw/subscr_list.txt +++ b/dokuwiki/inc/lang/zh-tw/subscr_list.txt @@ -10,7 +10,3 @@ è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@ 然後拜訪 @SUBSCRIBE@ 䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。 - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/subscr_single.txt b/dokuwiki/inc/lang/zh-tw/subscr_single.txt index b11841b3..db9ed2de 100644 --- a/dokuwiki/inc/lang/zh-tw/subscr_single.txt +++ b/dokuwiki/inc/lang/zh-tw/subscr_single.txt @@ -16,7 +16,3 @@ è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@ 然後拜訪 @NEWPAGE@ 䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。 - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh-tw/uploadmail.txt b/dokuwiki/inc/lang/zh-tw/uploadmail.txt index 0084d7a7..9572681b 100644 --- a/dokuwiki/inc/lang/zh-tw/uploadmail.txt +++ b/dokuwiki/inc/lang/zh-tw/uploadmail.txt @@ -8,7 +8,3 @@ IP ä½å€ : @IPADDRESS@ å¤§å° : @SIZE@ MIME類型 : @MIME@ 使用者 : @USER@ - --- -本信件由以下 DokuWiki 網站產生: -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/jquery.ui.datepicker.js b/dokuwiki/inc/lang/zh/jquery.ui.datepicker.js index b62090a6..91f99b4e 100644 --- a/dokuwiki/inc/lang/zh/jquery.ui.datepicker.js +++ b/dokuwiki/inc/lang/zh/jquery.ui.datepicker.js @@ -1,37 +1,37 @@ /* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Cloudream (cloudream@gmail.com). */ -(function( factory ) { +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define([ "../datepicker" ], factory ); + define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } -}(function( datepicker ) { +}( function( datepicker ) { -datepicker.regional['zh-CN'] = { - closeText: '关闭', - prevText: '<上月', - nextText: '下月>', - currentText: '今天', - monthNames: ['一月','二月','三月','四月','五月','六月', - '七月','八月','乿œˆ','åæœˆ','å一月','å二月'], - monthNamesShort: ['一月','二月','三月','四月','五月','六月', - '七月','八月','乿œˆ','åæœˆ','å一月','å二月'], - dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], - dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], - dayNamesMin: ['æ—¥','一','二','三','å››','五','å…­'], - weekHeader: '周', - dateFormat: 'yy-mm-dd', +datepicker.regional[ "zh-CN" ] = { + closeText: "关闭", + prevText: "<上月", + nextText: "下月>", + currentText: "今天", + monthNames: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","乿œˆ","åæœˆ","å一月","å二月" ], + monthNamesShort: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","乿œˆ","åæœˆ","å一月","å二月" ], + dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], + dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], + dayNamesMin: [ "æ—¥","一","二","三","å››","五","å…­" ], + weekHeader: "周", + dateFormat: "yy-mm-dd", firstDay: 1, isRTL: false, showMonthAfterYear: true, - yearSuffix: 'å¹´'}; -datepicker.setDefaults(datepicker.regional['zh-CN']); + yearSuffix: "å¹´" }; +datepicker.setDefaults( datepicker.regional[ "zh-CN" ] ); -return datepicker.regional['zh-CN']; +return datepicker.regional[ "zh-CN" ]; -})); +} ) ); diff --git a/dokuwiki/inc/lang/zh/lang.php b/dokuwiki/inc/lang/zh/lang.php index d960eb79..ca29231b 100644 --- a/dokuwiki/inc/lang/zh/lang.php +++ b/dokuwiki/inc/lang/zh/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ZDYX * @author http://www.chinese-tools.com/tools/converter-tradsimp.html * @author George Sheraton @@ -24,6 +24,14 @@ * @author xiqingongzi * @author qinghao * @author Yuwei Sun + * @author Errol + * @author Garfield + * @author JellyChen <451453325@qq.com> + * @author tai + * @author é«˜åš + * @author hznupeter + * @author kuma + * @author phy25 */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,7 +63,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 +97,7 @@ $lang['regmissing'] = '对ä¸èµ·ï¼Œæ‚¨å¿…须填写所有的字段。' $lang['reguexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å­˜åœ¨ã€‚'; $lang['regsuccess'] = '新用户已建立,密ç å°†é€šè¿‡ç”µå­é‚®ä»¶å‘é€ç»™æ‚¨ã€‚'; $lang['regsuccess2'] = '新用户已建立'; +$lang['regfail'] = '用户ä¸èƒ½è¢«åˆ›å»ºã€‚'; $lang['regmailfail'] = 'å‘é€å¯†ç é‚®ä»¶æ—¶äº§ç”Ÿé”™è¯¯ã€‚请è”系管ç†å‘˜ï¼'; $lang['regbadmail'] = 'æ‚¨è¾“å…¥çš„é‚®ä»¶åœ°å€æœ‰é—®é¢˜â€”—如果您认为这是系统错误,请è”系管ç†å‘˜ã€‚'; $lang['regbadpass'] = '您输入的密ç ä¸Žç³»ç»Ÿäº§ç”Ÿçš„ä¸ç¬¦ï¼Œè¯·é‡è¯•。'; @@ -104,6 +112,7 @@ $lang['profdeleteuser'] = '删除账å·'; $lang['profdeleted'] = '你的用户已ç»ä»Žè¿™ä¸ª wiki 中删除'; $lang['profconfdelete'] = '我希望删除我的账户。
    这项æ“作无法撤销。'; $lang['profconfdeletemissing'] = '确认框未勾选'; +$lang['proffail'] = '用户设置没有更新。'; $lang['pwdforget'] = '忘记密ç ï¼Ÿç«‹å³èŽ·å–æ–°å¯†ç '; $lang['resendna'] = 'æœ¬ç»´åŸºä¸æ”¯æŒäºŒæ¬¡å‘é€å¯†ç ã€‚'; $lang['resendpwd'] = '设置新密ç ç”¨äºŽ'; @@ -168,7 +177,6 @@ $lang['js']['media_overwrt'] = '覆盖已存在的文件'; $lang['rssfailed'] = '获å–该 RSS ä¿¡æ¯æ—¶äº§ç”Ÿé”™è¯¯ï¼š'; $lang['nothingfound'] = '什么都没有找到。'; $lang['mediaselect'] = '媒体文件'; -$lang['fileupload'] = '上传媒体文件'; $lang['uploadsucc'] = '上传æˆåŠŸ'; $lang['uploadfail'] = '上传失败。也许是上传æƒé™é”™è¯¯ã€‚'; $lang['uploadwrong'] = '上传失败。该扩展åè¢«ç¦æ­¢ã€‚'; @@ -259,7 +267,6 @@ $lang['qb_sig'] = 'æ’入签å'; $lang['qb_smileys'] = '表情符å·'; $lang['qb_chars'] = '特殊字符'; $lang['upperns'] = '跳转到父级å空间'; -$lang['admin_register'] = '添加新用户'; $lang['metaedit'] = '编辑元数æ®'; $lang['metasaveerr'] = '写入元数æ®å¤±è´¥'; $lang['metasaveok'] = '元数æ®å·²ä¿å­˜'; @@ -292,19 +299,18 @@ $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'] = '维基åç§°'; $lang['i_enableacl'] = 'å¯ç”¨ ACL(推è)'; $lang['i_superuser'] = '超级用户'; $lang['i_problems'] = '安装工具å‘现一些问题,已在下é¢åˆ—出。您必须先修å¤è¿™äº›é—®é¢˜ï¼Œæ‰èƒ½ç»§ç»­å®‰è£…。'; -$lang['i_modified'] = '由于安全上的考虑,该脚本åªèƒ½ç”¨äºŽå…¨æ–°ä¸”åšä»»ä½•改动的 Dokuwiki 安装包。 +$lang['i_modified'] = '由于安全上的考虑,该脚本åªèƒ½ç”¨äºŽå…¨æ–°ä¸”åšä»»ä½•改动的 DokuWiki 安装包。 您å¯ä»¥é‡æ–°è§£åŽ‹ä¸‹è½½çš„ç¨‹åºåŒ…,或查阅完整的 Dokuwiki 安装指å—'; $lang['i_funcna'] = 'PHP 功能 %s 无法使用。也许您的æœåС噍æä¾›å•†å› ä¸ºæŸäº›åŽŸå› ç¦ç”¨äº†å®ƒã€‚'; $lang['i_phpver'] = '您的 PHP 版本 %s ä½ŽäºŽæœ€ä½Žè¦æ±‚çš„ %s。您需è¦å‡çº§æ‚¨çš„ PHP 版本。'; -$lang['i_mbfuncoverload'] = '为了è¿è¡ŒDocuWiki,您必须在php.ini中ç¦ç”¨mbstring.func_overload。'; +$lang['i_mbfuncoverload'] = '为了è¿è¡ŒDokuWiki,您必须在php.ini中ç¦ç”¨mbstring.func_overload。'; $lang['i_permfail'] = 'DokuWiki 无法写入 %s。您需è¦ä¿®æ”¹è¯¥è·¯å¾„çš„æƒé™è®¾å®šï¼'; $lang['i_confexists'] = '%s å·²ç»å­˜åœ¨'; $lang['i_writeerr'] = '无法创建 %sã€‚æ‚¨éœ€è¦æ£€æŸ¥è¯¥è·¯å¾„/文件的æƒé™è®¾å®šå¹¶æ‰‹åŠ¨åˆ›å»ºè¯¥æ–‡ä»¶ã€‚'; @@ -322,8 +328,8 @@ $lang['i_allowreg'] = 'å…许用户自行注册'; $lang['i_retry'] = 'é‡è¯•'; $lang['i_license'] = '请选择您希望的内容å‘布许å¯å议:'; $lang['i_license_none'] = 'ä¸è¦æ˜¾ç¤ºä»»ä½•许å¯å议信æ¯'; -$lang['i_pop_field'] = '请帮助我们改进 Dokuwiki 的体验:'; -$lang['i_pop_label'] = 'æ¯ä¸ªæœˆå‘ Dokuwiki å¼€å‘者å‘é€åŒ¿å的使用数æ®'; +$lang['i_pop_field'] = '请帮助我们改进 DokuWiki 的体验:'; +$lang['i_pop_label'] = 'æ¯ä¸ªæœˆå‘ DokuWiki å¼€å‘者å‘é€åŒ¿å的使用数æ®'; $lang['recent_global'] = '您当å‰çœ‹åˆ°çš„æ˜¯%s å称空间的å˜åŠ¨ã€‚ä½ è¿˜å¯ä»¥åœ¨æŸ¥çœ‹æ•´ä¸ªç»´åŸºçš„近期å˜åŠ¨ã€‚'; $lang['years'] = '%då¹´å‰'; $lang['months'] = '%d月å‰'; @@ -356,7 +362,12 @@ $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'] = 'Wiki Markup 语言'; +$lang['page_nonexist_rev'] = '页é¢åœ¨ %s ä¸å­˜åœ¨ã€‚它曾创建于 %s。'; +$lang['unable_to_parse_date'] = '无法解æžå‚æ•° "%s"。'; +$lang['email_signature_text'] = '本邮件由 DokuWiki 自动创建 +@DOKUWIKIURL@'; diff --git a/dokuwiki/inc/lang/zh/mailtext.txt b/dokuwiki/inc/lang/zh/mailtext.txt index 311acf1b..f5e60811 100644 --- a/dokuwiki/inc/lang/zh/mailtext.txt +++ b/dokuwiki/inc/lang/zh/mailtext.txt @@ -10,8 +10,3 @@ IP åœ°å€ : @IPADDRESS@ 用户 : @USER@ @DIFF@ - - --- -本邮件由 DokuWiki 自动创建 -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/mailwrap.html b/dokuwiki/inc/lang/zh/mailwrap.html index 0f00d95b..d2571909 100644 --- a/dokuwiki/inc/lang/zh/mailwrap.html +++ b/dokuwiki/inc/lang/zh/mailwrap.html @@ -8,6 +8,6 @@ @HTMLBODY@

    -本邮件由ä½äºŽ @DOKUWIKIURL@ çš„ Dokuwiki 自动创建。 +@EMAILSIGNATURE@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/password.txt b/dokuwiki/inc/lang/zh/password.txt index 96929709..39095a17 100644 --- a/dokuwiki/inc/lang/zh/password.txt +++ b/dokuwiki/inc/lang/zh/password.txt @@ -3,8 +3,3 @@ 这是您在 @TITLE@(@DOKUWIKIURL@)的用户资料 用户å:@LOGIN@ 密ç ï¼š@PASSWORD@ - --- -本邮件由 DokuWiki 自动创建 -@DOKUWIKIURL@ - diff --git a/dokuwiki/inc/lang/zh/pwconfirm.txt b/dokuwiki/inc/lang/zh/pwconfirm.txt index 7e48751a..1b31636a 100644 --- a/dokuwiki/inc/lang/zh/pwconfirm.txt +++ b/dokuwiki/inc/lang/zh/pwconfirm.txt @@ -7,9 +7,3 @@ 为了确认å‘逿–°å¯†ç è¯·æ±‚的确æ¥è‡ªæ‚¨ï¼Œè¯·ä½¿ç”¨ä¸‹é¢çš„链接。 @CONFIRM@ - --- -本邮件由 DokuWiki 自动创建 -@DOKUWIKIURL@ - - diff --git a/dokuwiki/inc/lang/zh/registermail.txt b/dokuwiki/inc/lang/zh/registermail.txt index 9647b5fa..56568dcf 100644 --- a/dokuwiki/inc/lang/zh/registermail.txt +++ b/dokuwiki/inc/lang/zh/registermail.txt @@ -8,9 +8,3 @@ E-mail : @NEWEMAIL@ æµè§ˆå™¨ : @BROWSER@ IP åœ°å€ : @IPADDRESS@ 机器åç§° : @HOSTNAME@ - --- -本邮件由 DokuWiki 自动创建 -@DOKUWIKIURL@ - - diff --git a/dokuwiki/inc/lang/zh/stopwords.txt b/dokuwiki/inc/lang/zh/stopwords.txt index bc6eb48a..0a18e46a 100644 --- a/dokuwiki/inc/lang/zh/stopwords.txt +++ b/dokuwiki/inc/lang/zh/stopwords.txt @@ -1,7 +1,7 @@ -# This is a list of words the indexer ignores, one word per line -# When you edit this file be sure to use UNIX line endings (single newline) -# No need to include words shorter than 3 chars - these are ignored anyway -# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +# 这是一个索引器忽略的å•è¯åˆ—表,æ¯è¡Œä¸€ä¸ªå•è¯ +# 这个文件需è¦ä½¿ç”¨UNIXè¡Œç»“å°¾ï¼ˆå•æ¢è¡Œç¬¦ï¼‰ +# ä¸éœ€è¦åŒ…括短于3字符的è¯ï¼Œè¿™äº›éƒ½ä¼šè¢«å¿½ç•¥ +# 这个列表是基于此改进的 http://www.ranks.nl/stopwords/ about are and diff --git a/dokuwiki/inc/lang/zh/subscr_digest.txt b/dokuwiki/inc/lang/zh/subscr_digest.txt index 3c73ff4c..53326ae0 100644 --- a/dokuwiki/inc/lang/zh/subscr_digest.txt +++ b/dokuwiki/inc/lang/zh/subscr_digest.txt @@ -1,6 +1,6 @@ æ‚¨å¥½ï¼ -@TITLE@ ç»´åŸºä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚ +@TITLE@ ä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚ 这里是更改的内容: -------------------------------------------------------- @@ -13,7 +13,3 @@ è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ @SUBSCRIBE@ 并退订页é¢ä»¥åŠ/或者命å空间的更改。 - --- -本邮件由以下 DokuWiki 产生 -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/subscr_list.txt b/dokuwiki/inc/lang/zh/subscr_list.txt index 1fc1e213..79846f66 100644 --- a/dokuwiki/inc/lang/zh/subscr_list.txt +++ b/dokuwiki/inc/lang/zh/subscr_list.txt @@ -1,6 +1,6 @@ æ‚¨å¥½ï¼ -@TITLE@ 维基中的命å空间 @PAGE@ 的页é¢å·²ç»æ›´æ”¹ã€‚ +@TITLE@ 中的命å空间 @PAGE@ 的页é¢å·²ç»æ›´æ”¹ã€‚ 这里是更改的页é¢ï¼š -------------------------------------------------------- @@ -10,7 +10,3 @@ è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ @SUBSCRIBE@ 并退订页é¢ä»¥åŠ/或者命å空间的更改。 - --- -本邮件由以下 DokuWiki 产生 -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/subscr_single.txt b/dokuwiki/inc/lang/zh/subscr_single.txt index 7da57d57..9c1adc8b 100644 --- a/dokuwiki/inc/lang/zh/subscr_single.txt +++ b/dokuwiki/inc/lang/zh/subscr_single.txt @@ -1,6 +1,6 @@ æ‚¨å¥½ï¼ -@TITLE@ ç»´åŸºä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚ +@TITLE@ ä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚ 这里是更改的内容: -------------------------------------------------------- @@ -16,7 +16,3 @@ è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ @SUBSCRIBE@ 并退订页é¢ä»¥åŠ/或者命å空间的更改。 - --- -本邮件由以下 DokuWiki 产生 -@DOKUWIKIURL@ \ No newline at end of file diff --git a/dokuwiki/inc/lang/zh/uploadmail.txt b/dokuwiki/inc/lang/zh/uploadmail.txt index b820cee2..a5ce5393 100644 --- a/dokuwiki/inc/lang/zh/uploadmail.txt +++ b/dokuwiki/inc/lang/zh/uploadmail.txt @@ -10,11 +10,3 @@ IP åœ°å€ : @IPADDRESS@ å¤§å° : @SIZE@ MIME 类型 : @MIME@ 用户 : @USER@ - --- -本邮件由 DokuWiki 自动创建 -@DOKUWIKIURL@ - - - - diff --git a/dokuwiki/inc/lessc.inc.php b/dokuwiki/inc/lessc.inc.php index 3d0ed768..ada166d7 100644 --- a/dokuwiki/inc/lessc.inc.php +++ b/dokuwiki/inc/lessc.inc.php @@ -51,7 +51,8 @@ class lessc { public $parentSelector = '&'; public $importDisabled = false; - public $importDir = ''; + /** @var string|string[] */ + public $importDir; protected $numberPrecision = null; diff --git a/dokuwiki/inc/load.php b/dokuwiki/inc/load.php index ac2812a0..68bf69cf 100644 --- a/dokuwiki/inc/load.php +++ b/dokuwiki/inc/load.php @@ -68,11 +68,10 @@ function load_autoload($name){ 'FeedParser' => DOKU_INC.'inc/FeedParser.php', 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php', 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', + 'IXR_Error' => 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', @@ -84,10 +83,6 @@ function load_autoload($name){ 'RemoteAPI' => DOKU_INC.'inc/remote.php', 'RemoteAPICore' => DOKU_INC.'inc/RemoteAPICore.php', 'Subscription' => DOKU_INC.'inc/subscription.php', - 'Crypt_Base' => DOKU_INC.'inc/phpseclib/Crypt_Base.php', - 'Crypt_Rijndael' => DOKU_INC.'inc/phpseclib/Crypt_Rijndael.php', - 'Crypt_AES' => DOKU_INC.'inc/phpseclib/Crypt_AES.php', - 'Crypt_Hash' => DOKU_INC.'inc/phpseclib/Crypt_Hash.php', 'lessc' => DOKU_INC.'inc/lessc.inc.php', 'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php', @@ -109,8 +104,37 @@ function load_autoload($name){ ); if(isset($classes[$name])){ - require_once($classes[$name]); - return; + require ($classes[$name]); + return true; + } + + // namespace to directory conversion + $name = str_replace('\\', '/', $name); + + // plugin namespace + if(substr($name, 0, 16) == 'dokuwiki/plugin/') { + $name = str_replace('/test/', '/_test/', $name); // no underscore in test namespace + $file = DOKU_PLUGIN . substr($name, 16) . '.php'; + if(file_exists($file)) { + require $file; + return true; + } + } + + // template namespace + if(substr($name, 0, 18) == 'dokuwiki/template/') { + $name = str_replace('/test/', '/_test/', $name); // no underscore in test namespace + $file = DOKU_INC.'lib/tpl/' . substr($name, 18) . '.php'; + if(file_exists($file)) { + require $file; + return true; + } + } + + // our own namespace + if(substr($name, 0, 9) == 'dokuwiki/') { + require substr($name, 9) . '.php'; + return true; } // Plugin loading @@ -119,10 +143,11 @@ function load_autoload($name){ // try to load the wanted plugin file $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"; + if(file_exists($plg)){ + require $plg; } - return; + return true; } + return false; } diff --git a/dokuwiki/inc/mail.php b/dokuwiki/inc/mail.php index 9994ac63..e2afd088 100644 --- a/dokuwiki/inc/mail.php +++ b/dokuwiki/inc/mail.php @@ -27,7 +27,7 @@ if(!defined('MAILHEADER_EOL')) define('MAILHEADER_EOL',"\n"); * Check if a given mail address is valid */ if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9a-zA-Z!#$%&'*+/=?^_`{|}~-"); -if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?i:[0-9a-z][0-9a-z-]*\.)+(?i:[a-z]{2,4}|museum|travel)'); +if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?i:[0-9a-z][0-9a-z-]*\.)+(?i:[a-z]{2,63})'); /** * Prepare mailfrom replacement patterns @@ -96,15 +96,23 @@ function mail_setup(){ * * @author Andreas Gohr * @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){ @@ -266,7 +277,7 @@ function mail_isvalid($email){ * Quoted printable encoding * * @author umu - * @link http://www.php.net/manual/en/function.imap-8bit.php#61216 + * @link http://php.net/manual/en/function.imap-8bit.php#61216 */ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true) { // split text into lines diff --git a/dokuwiki/inc/media.php b/dokuwiki/inc/media.php index 5190862d..ed006567 100644 --- a/dokuwiki/inc/media.php +++ b/dokuwiki/inc/media.php @@ -16,6 +16,9 @@ if(!defined('NL')) define('NL',"\n"); * their CSS tags except pagenames won't be links. * * @author Matthias Grimm + * + * @param array $data + * @param string $id */ function media_filesinuse($data,$id){ global $lang; @@ -41,6 +44,11 @@ function media_filesinuse($data,$id){ * * @author Andreas Gohr * @author Kate Arzamastseva + * + * @param string $id media id + * @param int $auth permission level + * @param array $data + * @return false|string */ function media_metasave($id,$auth,$data){ if($auth < AUTH_UPLOAD) return false; @@ -62,17 +70,20 @@ function media_metasave($id,$auth,$data){ } $old = @filemtime($src); - if(!@file_exists(mediaFN($id, $old)) && @file_exists($src)) { + if(!file_exists(mediaFN($id, $old)) && file_exists($src)) { // add old revision to the attic media_saveOldRevision($id); } - + $filesize_old = filesize($src); if($meta->save()){ if($conf['fperm']) chmod($src, $conf['fperm']); - + @clearstatcache(true, $src); $new = @filemtime($src); + $filesize_new = filesize($src); + $sizechange = $filesize_new - $filesize_old; + // add a log entry to the media changelog - addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT, $lang['media_meta_edited']); + addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT, $lang['media_meta_edited'], '', null, $sizechange); msg($lang['metasaveok'],1); return $id; @@ -86,6 +97,7 @@ function media_metasave($id,$auth,$data){ * check if a media is external source * * @author Gerrit Uitslag + * * @param string $id the media ID or URL * @return bool */ @@ -98,6 +110,7 @@ function media_isexternal($id){ * Check if a media item is public (eg, external URL or readable by @ALL) * * @author Andreas Gohr + * * @param string $id the media ID or URL * @return bool */ @@ -113,6 +126,10 @@ function media_ispublic($id){ * * @author Andreas Gohr * @author Kate Arzamastseva + * + * @param string $id media id + * @param int $auth permission level + * @return bool */ function media_metaform($id,$auth){ global $lang; @@ -127,7 +144,7 @@ function media_metaform($id,$auth){ if(is_null($fields)){ $config_files = getConfigFiles('mediameta'); foreach ($config_files as $config_file) { - if(@file_exists($config_file)) include($config_file); + if(file_exists($config_file)) include($config_file); } } @@ -175,6 +192,9 @@ function media_metaform($id,$auth){ * Convenience function to check if a media file is still in use * * @author Michael Klier + * + * @param string $id media id + * @return array|bool */ function media_inuse($id) { global $conf; @@ -202,6 +222,7 @@ define('DOKU_MEDIA_EMPTY_NS', 8); * If configured, checks for media references before deletion * * @author Andreas Gohr + * * @param string $id media id * @param int $auth no longer used * @return int One of: 0, @@ -219,25 +240,28 @@ function media_delete($id,$auth){ $file = mediaFN($id); // trigger an event - MEDIA_DELETE_FILE + $data = array(); $data['id'] = $id; $data['name'] = utf8_basename($file); $data['path'] = $file; - $data['size'] = (@file_exists($file)) ? filesize($file) : 0; + $data['size'] = (file_exists($file)) ? filesize($file) : 0; $data['unl'] = false; $data['del'] = false; $evt = new Doku_Event('MEDIA_DELETE_FILE',$data); if ($evt->advise_before()) { $old = @filemtime($file); - if(!@file_exists(mediaFN($id, $old)) && @file_exists($file)) { + if(!file_exists(mediaFN($id, $old)) && file_exists($file)) { // add old revision to the attic media_saveOldRevision($id); } $data['unl'] = @unlink($file); - if($data['unl']){ - addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE, $lang['deleted']); - $data['del'] = io_sweepNS($id,'mediadir'); + if($data['unl']) { + $sizechange = 0 - $data['size']; + addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE, $lang['deleted'], '', null, $sizechange); + + $data['del'] = io_sweepNS($id, 'mediadir'); } } $evt->advise_after(); @@ -253,9 +277,9 @@ function media_delete($id,$auth){ /** * Handle file uploads via XMLHttpRequest * - * @param string $ns target namespace - * @param int $auth current auth check result - * @return mixed false on error, id of the new file on success + * @param string $ns target namespace + * @param int $auth current auth check result + * @return false|string false on error, id of the new file on success */ function media_upload_xhr($ns,$auth){ if(!checkSecurityToken()) return false; @@ -280,7 +304,7 @@ function media_upload_xhr($ns,$auth){ 'mime' => $mime, 'ext' => $ext), $ns.':'.$id, - (($INPUT->get->str('ow') == 'checked') ? true : false), + (($INPUT->get->str('ow') == 'true') ? true : false), $auth, 'copy' ); @@ -298,10 +322,11 @@ function media_upload_xhr($ns,$auth){ * * @author Andreas Gohr * @author Michael Klier - * @param string $ns target namespace - * @param int $auth current auth check result - * @param bool|array $file $_FILES member, $_FILES['upload'] if false - * @return mixed false on error, id of the new file on success + * + * @param string $ns target namespace + * @param int $auth current auth check result + * @param bool|array $file $_FILES member, $_FILES['upload'] if false + * @return false|string false on error, id of the new file on success */ function media_upload($ns,$auth,$file=false){ if(!checkSecurityToken()) return false; @@ -345,6 +370,7 @@ function media_upload($ns,$auth,$file=false){ * Using copy, makes sure any setgid bits on the media directory are honored * * @see move_uploaded_file() + * * @param string $from * @param string $to * @return bool @@ -362,13 +388,21 @@ function copy_uploaded_file($from, $to){ * (The triggered event is preventable.) * * Event data: - * $data[0] fn_tmp: the temporary file name (read from $_FILES) - * $data[1] fn: the file name of the uploaded file - * $data[2] id: the future directory id of the uploaded file - * $data[3] imime: the mimetype of the uploaded file + * $data[0] fn_tmp: the temporary file name (read from $_FILES) + * $data[1] fn: the file name of the uploaded file + * $data[2] id: the future directory id of the uploaded file + * $data[3] imime: the mimetype of the uploaded file * $data[4] overwrite: if an existing file is going to be overwritten + * $data[5] move: name of function that performs move/copy/.. * * @triggers MEDIA_UPLOAD_FINISH + * + * @param array $file + * @param string $id media id + * @param bool $ow overwrite? + * @param int $auth permission level + * @param string $move name of functions that performs move/copy/.. + * @return false|array|string */ function media_save($file, $id, $ow, $auth, $move) { if($auth < AUTH_UPLOAD) { @@ -402,7 +436,7 @@ function media_save($file, $id, $ow, $auth, $move) { } //check for overwrite - $overwrite = @file_exists($fn); + $overwrite = file_exists($fn); $auth_ow = (($conf['mediarevisions']) ? AUTH_UPLOAD : AUTH_DELETE); if($overwrite && (!$ow || $auth < $auth_ow)) { return array($lang['uploadexist'], 0); @@ -418,6 +452,7 @@ function media_save($file, $id, $ow, $auth, $move) { } // prepare event data + $data = array(); $data[0] = $file['name']; $data[1] = $fn; $data[2] = $id; @@ -430,8 +465,12 @@ function media_save($file, $id, $ow, $auth, $move) { } /** - * Callback adapter for media_upload_finish() + * Callback adapter for media_upload_finish() triggered by MEDIA_UPLOAD_FINISH + * * @author Michael Klier + * + * @param array $data event data + * @return false|array|string */ function _media_upload_action($data) { // fixme do further sanity tests of given data? @@ -448,6 +487,14 @@ function _media_upload_action($data) { * @author Andreas Gohr * @author Michael Klier * @author Kate Arzamastseva + * + * @param string $fn_tmp + * @param string $fn + * @param string $id media id + * @param string $imime mime type + * @param bool $overwrite overwrite existing? + * @param string $move function name + * @return array|string */ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'move_uploaded_file') { global $conf; @@ -455,7 +502,7 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov global $REV; $old = @filemtime($fn); - if(!@file_exists(mediaFN($id, $old)) && @file_exists($fn)) { + if(!file_exists(mediaFN($id, $old)) && file_exists($fn)) { // add old revision to the attic if missing media_saveOldRevision($id); } @@ -463,6 +510,8 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov // prepare directory io_createNamespace($id, 'media'); + $filesize_old = file_exists($fn) ? filesize($fn) : 0; + if($move($fn_tmp, $fn)) { @clearstatcache(true,$fn); $new = @filemtime($fn); @@ -473,12 +522,14 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov msg($lang['uploadsucc'],1); media_notify($id,$fn,$imime,$old); // add a log entry to the media changelog - if ($REV){ - addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_REVERT, sprintf($lang['restored'], dformat($REV)), $REV); - } elseif ($overwrite) { - addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT); + $filesize_new = filesize($fn); + $sizechange = $filesize_new - $filesize_old; + if($REV) { + addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_REVERT, sprintf($lang['restored'], dformat($REV)), $REV, null, $sizechange); + } elseif($overwrite) { + addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT, '', '', null, $sizechange); } else { - addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created']); + addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created'], '', null, $sizechange); } return $id; }else{ @@ -491,6 +542,7 @@ function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'mov * directory * * @author Kate Arzamastseva + * * @param string $id * @return int - revision date */ @@ -498,7 +550,7 @@ function media_saveOldRevision($id){ global $conf, $lang; $oldf = mediaFN($id); - if(!@file_exists($oldf)) return ''; + if(!file_exists($oldf)) return ''; $date = filemtime($oldf); if (!$conf['mediarevisions']) return $date; @@ -506,10 +558,16 @@ function media_saveOldRevision($id){ if (!$medialog->getRevisionInfo($date)) { // there was an external edit, // there is no log entry for current version of file - if (!@file_exists(mediaMetaFN($id,'.changes'))) { - addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created']); + $sizechange = filesize($oldf); + if(!file_exists(mediaMetaFN($id, '.changes'))) { + addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created'], '', null, $sizechange); } else { - addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_EDIT); + $oldRev = $medialog->getRevisions(-1, 1); // from changelog + $oldRev = (int) (empty($oldRev) ? 0 : $oldRev[0]); + $filesize_old = filesize(mediaFN($id, $oldRev)); + $sizechange = $sizechange - $filesize_old; + + addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_EDIT, '', '', null, $sizechange); } } @@ -534,6 +592,10 @@ function media_saveOldRevision($id){ * @author Andreas Gohr * @link http://www.splitbrain.org/blog/2007-02/12-internet_explorer_facilitates_cross_site_scripting * @fixme check all 26 magic IE filetypes here? + * + * @param string $file path to file + * @param string $mime mimetype + * @return int */ function media_contentcheck($file,$mime){ global $conf; @@ -543,14 +605,14 @@ function media_contentcheck($file,$mime){ $bytes = fread($fh, 256); fclose($fh); if(preg_match('/<(script|a|img|html|body|iframe)[\s>]/i',$bytes)){ - return -3; + return -3; //XSS: possibly malicious content } } } if(substr($mime,0,6) == 'image/'){ $info = @getimagesize($file); if($mime == 'image/gif' && $info[2] != 1){ - return -1; + return -1; // uploaded content did not match the file extension }elseif($mime == 'image/jpeg' && $info[2] != 2){ return -1; }elseif($mime == 'image/png' && $info[2] != 3){ @@ -561,7 +623,7 @@ function media_contentcheck($file,$mime){ global $TEXT; $TEXT = io_readFile($file); if(checkwordblock()){ - return -2; + return -2; //blocked by the spam blacklist } } return 0; @@ -571,6 +633,12 @@ function media_contentcheck($file,$mime){ * Send a notify mail on uploads * * @author Andreas Gohr + * + * @param string $id media id + * @param string $file path to file + * @param string $mime mime type + * @param bool|int $old_rev revision timestamp or false + * @return bool */ function media_notify($id,$file,$mime,$old_rev=false){ global $conf; @@ -583,11 +651,11 @@ function media_notify($id,$file,$mime,$old_rev=false){ /** * List all files in a given Media namespace * - * @param string $ns namespace - * @param null|int $auth permission level - * @param string $jump - * @param bool $fullscreenview - * @param bool|string $sort sorting, false skips sorting + * @param string $ns namespace + * @param null|int $auth permission level + * @param string $jump id + * @param bool $fullscreenview + * @param bool|string $sort sorting order, false skips sorting */ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=false){ global $conf; @@ -668,7 +736,7 @@ function media_tabs_details($image, $selected_tab = ''){ 'caption' => $lang['media_viewtab']); list(, $mime) = mimetype($image); - if ($mime == 'image/jpeg' && @file_exists(mediaFN($image))) { + if ($mime == 'image/jpeg' && file_exists(mediaFN($image))) { $tabs['edit'] = array('href' => media_managerURL(array('tab_details' => 'edit'), '&'), 'caption' => $lang['media_edittab']); } @@ -730,6 +798,7 @@ function media_tab_files_options(){ * Returns type of sorting for the list of files in media manager * * @author Kate Arzamastseva + * * @return string - sort type */ function _media_get_sort_type() { @@ -740,6 +809,7 @@ function _media_get_sort_type() { * Returns type of listing for the list of files in media manager * * @author Kate Arzamastseva + * * @return string - list type */ function _media_get_list_type() { @@ -771,6 +841,10 @@ function _media_get_display_param($param, $values) { * Prints tab that displays a list of all files * * @author Kate Arzamastseva + * + * @param string $ns + * @param null|int $auth permission level + * @param string $jump item id */ function media_tab_files($ns,$auth=null,$jump='') { global $lang; @@ -787,6 +861,10 @@ function media_tab_files($ns,$auth=null,$jump='') { * Prints tab that displays uploading form * * @author Kate Arzamastseva + * + * @param string $ns + * @param null|int $auth permission level + * @param string $jump item id */ function media_tab_upload($ns,$auth=null,$jump='') { global $lang; @@ -804,6 +882,9 @@ function media_tab_upload($ns,$auth=null,$jump='') { * Prints tab that displays search form * * @author Kate Arzamastseva + * + * @param string $ns + * @param null|int $auth permission level */ function media_tab_search($ns,$auth=null) { global $INPUT; @@ -823,8 +904,13 @@ function media_tab_search($ns,$auth=null) { * Prints tab that displays mediafile details * * @author Kate Arzamastseva + * + * @param string $image media id + * @param string $ns + * @param null|int $auth permission level + * @param string|int $rev revision timestamp or empty string */ -function media_tab_view($image, $ns, $auth=null, $rev=false) { +function media_tab_view($image, $ns, $auth=null, $rev='') { global $lang; if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*"); @@ -843,6 +929,10 @@ function media_tab_view($image, $ns, $auth=null, $rev=false) { * Prints tab that displays form for editing mediafile metadata * * @author Kate Arzamastseva + * + * @param string $image media id + * @param string $ns + * @param null|int $auth permission level */ function media_tab_edit($image, $ns, $auth=null) { if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*"); @@ -857,6 +947,10 @@ function media_tab_edit($image, $ns, $auth=null) { * Prints tab that displays mediafile revisions * * @author Kate Arzamastseva + * + * @param string $image media id + * @param string $ns + * @param null|int $auth permission level */ function media_tab_history($image, $ns, $auth=null) { global $lang; @@ -880,13 +974,14 @@ function media_tab_history($image, $ns, $auth=null) { /** * Prints mediafile details * - * @param string $image media id - * @param $auth - * @param int|bool $rev - * @param JpegMeta|bool $meta + * @param string $image media id + * @param int $auth permission level + * @param int|string $rev revision timestamp or empty string + * @param JpegMeta|bool $meta + * * @author Kate Arzamastseva */ -function media_preview($image, $auth, $rev=false, $meta=false) { +function media_preview($image, $auth, $rev='', $meta=false) { $size = media_image_preview_size($image, $rev, $meta); @@ -918,13 +1013,17 @@ function media_preview($image, $auth, $rev=false, $meta=false) { * Prints mediafile action buttons * * @author Kate Arzamastseva + * + * @param string $image media id + * @param int $auth permission level + * @param string|int $rev revision timestamp, or empty string */ -function media_preview_buttons($image, $auth, $rev=false) { +function media_preview_buttons($image, $auth, $rev='') { global $lang, $conf; echo '
      '.NL; - if($auth >= AUTH_DELETE && !$rev && @file_exists(mediaFN($image))){ + if($auth >= AUTH_DELETE && !$rev && file_exists(mediaFN($image))){ // delete button $form = new Doku_Form(array('id' => 'mediamanager__btn_delete', @@ -947,7 +1046,7 @@ function media_preview_buttons($image, $auth, $rev=false) { echo ''.NL; } - if($auth >= AUTH_UPLOAD && $rev && $conf['mediarevisions'] && @file_exists(mediaFN($image, $rev))){ + if($auth >= AUTH_UPLOAD && $rev && $conf['mediarevisions'] && file_exists(mediaFN($image, $rev))){ // restore button $form = new Doku_Form(array('id' => 'mediamanager__btn_restore', @@ -967,11 +1066,11 @@ function media_preview_buttons($image, $auth, $rev=false) { * Returns image width and height for mediamanager preview panel * * @author Kate Arzamastseva - * @param string $image - * @param int $rev - * @param JpegMeta $meta - * @param int $size - * @return array + * @param string $image + * @param int|string $rev + * @param JpegMeta|bool $meta + * @param int $size + * @return array|false */ function media_image_preview_size($image, $rev, $meta, $size = 500) { if (!preg_match("/\.(jpe?g|gif|png)$/", $image) || !file_exists(mediaFN($image, $rev))) return false; @@ -992,9 +1091,10 @@ function media_image_preview_size($image, $rev, $meta, $size = 500) { * Returns the requested EXIF/IPTC tag from the image meta * * @author Kate Arzamastseva - * @param array $tags + * + * @param array $tags array with tags, first existing is returned * @param JpegMeta $meta - * @param string $alt + * @param string $alt alternative value * @return string */ function media_getTag($tags,$meta,$alt=''){ @@ -1008,8 +1108,9 @@ function media_getTag($tags,$meta,$alt=''){ * Returns mediafile tags * * @author Kate Arzamastseva + * * @param JpegMeta $meta - * @return array + * @return array list of tags of the mediafile */ function media_file_tags($meta) { // load the field descriptions @@ -1017,7 +1118,7 @@ function media_file_tags($meta) { if(is_null($fields)){ $config_files = getConfigFiles('mediameta'); foreach ($config_files as $config_file) { - if(@file_exists($config_file)) include($config_file); + if(file_exists($config_file)) include($config_file); } } @@ -1038,8 +1139,13 @@ function media_file_tags($meta) { * Prints mediafile tags * * @author Kate Arzamastseva + * + * @param string $image image id + * @param int $auth permission level + * @param string|int $rev revision timestamp, or empty string + * @param bool|JpegMeta $meta image object, or create one if false */ -function media_details($image, $auth, $rev=false, $meta=false) { +function media_details($image, $auth, $rev='', $meta=false) { global $lang; if (!$meta) $meta = new JpegMeta(mediaFN($image, $rev)); @@ -1056,12 +1162,30 @@ function media_details($image, $auth, $rev=false, $meta=false) { } } echo ''.NL; + echo '
      '.NL; + echo '
      '.$lang['reference'].':
      '; + $media_usage = ft_mediause($image,true); + if(count($media_usage) > 0){ + foreach($media_usage as $path){ + echo '
      '.html_wikilink($path).'
      '; + } + }else{ + echo '
      '.$lang['nothingfound'].'
      '; + } + echo '
      '.NL; + } /** * Shows difference between two revisions of file * * @author Kate Arzamastseva + * + * @param string $image image id + * @param string $ns + * @param int $auth permission level + * @param bool $fromajax + * @return false|null|string */ function media_diff($image, $ns, $auth, $fromajax = false) { global $conf; @@ -1111,6 +1235,7 @@ function media_diff($image, $ns, $auth, $fromajax = false) { } // prepare event data + $data = array(); $data[0] = $image; $data[1] = $l_rev; $data[2] = $r_rev; @@ -1120,14 +1245,13 @@ function media_diff($image, $ns, $auth, $fromajax = false) { // trigger event return trigger_event('MEDIA_DIFF', $data, '_media_file_diff', true); - } /** * Callback for media file diff * - * @param $data - * @return bool|void + * @param array $data event data + * @return false|null */ function _media_file_diff($data) { if(is_array($data) && count($data)===6) { @@ -1141,6 +1265,13 @@ function _media_file_diff($data) { * Shows difference between two revisions of image * * @author Kate Arzamastseva + * + * @param string $image + * @param string|int $l_rev revision timestamp, or empty string + * @param string|int $r_rev revision timestamp, or empty string + * @param string $ns + * @param int $auth permission level + * @param bool $fromajax */ function media_file_diff($image, $l_rev, $r_rev, $ns, $auth, $fromajax){ global $lang; @@ -1261,11 +1392,12 @@ function media_file_diff($image, $l_rev, $r_rev, $ns, $auth, $fromajax){ * and slider * * @author Kate Arzamastseva - * @param string $image - * @param int $l_rev - * @param int $r_rev - * @param array $l_size - * @param array $r_size + * + * @param string $image image id + * @param int $l_rev revision timestamp, or empty string + * @param int $r_rev revision timestamp, or empty string + * @param array $l_size array with width and height + * @param array $r_size array with width and height * @param string $type */ function media_image_diff($image, $l_rev, $r_rev, $l_size, $r_size, $type) { @@ -1298,10 +1430,11 @@ function media_image_diff($image, $l_rev, $r_rev, $l_size, $r_size, $type) { /** * Restores an old revision of a media file * - * @param string $image - * @param int $rev - * @param int $auth + * @param string $image media id + * @param int $rev revision timestamp or empty string + * @param int $auth * @return string - file's id + * * @author Kate Arzamastseva */ function media_restore($image, $rev, $auth){ @@ -1331,19 +1464,24 @@ function media_restore($image, $rev, $auth){ * @author Andreas Gohr * @author Kate Arzamastseva * @triggers MEDIA_SEARCH + * + * @param string $query + * @param string $ns + * @param null|int $auth + * @param bool $fullscreen + * @param string $sort */ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural'){ global $conf; global $lang; $ns = cleanID($ns); - + $evdata = array( + 'ns' => $ns, + 'data' => array(), + 'query' => $query + ); if ($query) { - $evdata = array( - 'ns' => $ns, - 'data' => array(), - 'query' => $query - ); $evt = new Doku_Event('MEDIA_SEARCH', $evdata); if ($evt->advise_before()) { $dir = utf8_encodeFN(str_replace(':','/',$evdata['ns'])); @@ -1381,10 +1519,14 @@ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural /** * Formats and prints one file in the list + * + * @param array $item + * @param int $auth permission level + * @param string $jump item id + * @param bool $display_namespace */ function media_printfile($item,$auth,$jump,$display_namespace=false){ global $lang; - global $conf; // Prepare zebra coloring // I always wanted to use this variable name :-D @@ -1458,14 +1600,14 @@ function media_printfile($item,$auth,$jump,$display_namespace=false){ /** * Display a media icon * - * @param $filename - * @param string $size the size subfolder, if not specified 16x16 is used - * @return string + * @param string $filename media id + * @param string $size the size subfolder, if not specified 16x16 is used + * @return string html */ function media_printicon($filename, $size=''){ list($ext) = mimetype(mediaFN($filename),false); - if (@file_exists(DOKU_INC.'lib/images/fileicons/'.$size.'/'.$ext.'.png')) { + if (file_exists(DOKU_INC.'lib/images/fileicons/'.$size.'/'.$ext.'.png')) { $icon = DOKU_BASE.'lib/images/fileicons/'.$size.'/'.$ext.'.png'; } else { $icon = DOKU_BASE.'lib/images/fileicons/'.$size.'/file.png'; @@ -1478,6 +1620,11 @@ function media_printicon($filename, $size=''){ * Formats and prints one file in the list in the thumbnails view * * @author Kate Arzamastseva + * + * @param array $item + * @param int $auth permission level + * @param bool|string $jump item id + * @param bool $display_namespace */ function media_printfile_thumbs($item,$auth,$jump=false,$display_namespace=false){ @@ -1525,6 +1672,9 @@ function media_printfile_thumbs($item,$auth,$jump=false,$display_namespace=false /** * Prints a thumbnail and metainfo + * + * @param array $item + * @param bool $fullscreen */ function media_printimgdetail($item, $fullscreen=false){ // prepare thumbnail @@ -1588,15 +1738,15 @@ function media_printimgdetail($item, $fullscreen=false){ } /** - * Build link based on the current, adding/rewriting - * parameters + * Build link based on the current, adding/rewriting parameters * * @author Kate Arzamastseva + * * @param array|bool $params - * @param string $amp - separator - * @param bool $abs - * @param bool $params_array - * @return string|array - link + * @param string $amp separator + * @param bool $abs absolute url? + * @param bool $params_array return the parmeters array? + * @return string|array - link or link parameters */ function media_managerURL($params=false, $amp='&', $abs=false, $params_array=false) { global $ID; @@ -1627,6 +1777,10 @@ function media_managerURL($params=false, $amp='&', $abs=false, $params_array * * @author Andreas Gohr * @author Kate Arzamastseva + * + * @param string $ns + * @param int $auth permission level + * @param bool $fullscreen */ function media_uploadform($ns, $auth, $fullscreen = false){ global $lang; @@ -1714,6 +1868,10 @@ function media_getuploadsize(){ * * @author Tobias Sarnowski * @author Kate Arzamastseva + * + * @param string $ns + * @param string $query + * @param bool $fullscreen */ function media_searchform($ns,$query='',$fullscreen=false){ global $lang; @@ -1729,7 +1887,6 @@ function media_searchform($ns,$query='',$fullscreen=false){ $form->addHidden('ns', $ns); $form->addHidden($fullscreen ? 'mediado' : 'do', 'searchlist'); - if (!$fullscreen) $form->addElement('
      ' . $lang['mediasearch'] . '
      '.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'])); @@ -1741,6 +1898,8 @@ function media_searchform($ns,$query='',$fullscreen=false){ * Build a tree outline of available media namespaces * * @author Andreas Gohr + * + * @param string $ns */ function media_nstree($ns){ global $conf; @@ -1789,6 +1948,9 @@ function media_nstree($ns){ * Prints a media namespace tree item * * @author Andreas Gohr + * + * @param array $item + * @return string html */ function media_nstree_item($item){ global $INPUT; @@ -1812,6 +1974,9 @@ function media_nstree_item($item){ * Prints a media namespace tree item opener * * @author Andreas Gohr + * + * @param array $item + * @return string html */ function media_nstree_li($item){ $class='media level'.$item['level']; @@ -1833,6 +1998,12 @@ function media_nstree_li($item){ * Resizes the given image to the given size * * @author Andreas Gohr + * + * @param string $file filename, path to file + * @param string $ext extension + * @param int $w desired width + * @param int $h desired height + * @return string path to resized or original size if failed */ function media_resize_image($file, $ext, $w, $h=0){ global $conf; @@ -1853,9 +2024,10 @@ function media_resize_image($file, $ext, $w, $h=0){ $local = getCacheName($file,'.media.'.$w.'x'.$h.'.'.$ext); $mtime = @filemtime($local); // 0 if not exists - if( $mtime > filemtime($file) || - media_resize_imageIM($ext,$file,$info[0],$info[1],$local,$w,$h) || - media_resize_imageGD($ext,$file,$info[0],$info[1],$local,$w,$h) ){ + if($mtime > filemtime($file) || + media_resize_imageIM($ext, $file, $info[0], $info[1], $local, $w, $h) || + media_resize_imageGD($ext, $file, $info[0], $info[1], $local, $w, $h) + ) { if(!empty($conf['fperm'])) @chmod($local, $conf['fperm']); return $local; } @@ -1871,6 +2043,12 @@ function media_resize_image($file, $ext, $w, $h=0){ * image because most pics are more interesting in that area (rule of thirds) * * @author Andreas Gohr + * + * @param string $file filename, path to file + * @param string $ext extension + * @param int $w desired width + * @param int $h desired height + * @return string path to resized or original size if failed */ function media_crop_image($file, $ext, $w, $h=0){ global $conf; @@ -1935,7 +2113,7 @@ function media_crop_image($file, $ext, $w, $h=0){ * @param string $id id of the image * @param int $w resize/crop width * @param int $h resize/crop height - * @return string + * @return string token or empty string if no token required */ function media_get_token($id,$w,$h){ // token is only required for modified images @@ -1958,6 +2136,11 @@ function media_get_token($id,$w,$h){ * * @author Andreas Gohr * @author Pavel Vitis + * + * @param string $url + * @param string $ext extension + * @param int $cache cachetime in seconds + * @return false|string path to cached file */ function media_get_from_URL($url,$ext,$cache){ global $conf; @@ -1970,12 +2153,12 @@ function media_get_from_URL($url,$ext,$cache){ $mtime = @filemtime($local); // 0 if not exists //decide if download needed: - if( ($mtime == 0) || // cache does not exist - ($cache != -1 && $mtime < time()-$cache) // 'recache' and cache has expired - ){ - if(media_image_download($url,$local)){ + if(($mtime == 0) || // cache does not exist + ($cache != -1 && $mtime < time() - $cache) // 'recache' and cache has expired + ) { + if(media_image_download($url, $local)) { return $local; - }else{ + } else { return false; } } @@ -1991,6 +2174,10 @@ function media_get_from_URL($url,$ext,$cache){ * Download image files * * @author Andreas Gohr + * + * @param string $url + * @param string $file path to file in which to put the downloaded content + * @return bool */ function media_image_download($url,$file){ global $conf; @@ -2004,7 +2191,7 @@ function media_image_download($url,$file){ $data = $http->get($url); if(!$data) return false; - $fileexists = @file_exists($file); + $fileexists = file_exists($file); $fp = @fopen($file,"w"); if(!$fp) return false; fwrite($fp,$data); @@ -2026,6 +2213,15 @@ function media_image_download($url,$file){ * * @author Pavel Vitis * @author Andreas Gohr + * + * @param string $ext extension + * @param string $from filename path to file + * @param int $from_w original width + * @param int $from_h original height + * @param string $to path to resized file + * @param int $to_w desired width + * @param int $to_h desired height + * @return bool */ function media_resize_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h){ global $conf; @@ -2050,6 +2246,17 @@ function media_resize_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h){ * crop images using external ImageMagick convert program * * @author Andreas Gohr + * + * @param string $ext extension + * @param string $from filename path to file + * @param int $from_w original width + * @param int $from_h original height + * @param string $to path to resized file + * @param int $to_w desired width + * @param int $to_h desired height + * @param int $ofs_x offset of crop centre + * @param int $ofs_y offset of crop centre + * @return bool */ function media_crop_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x,$ofs_y){ global $conf; @@ -2075,6 +2282,17 @@ function media_crop_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x,$o * * @author Andreas Gohr * @author Sebastian Wienecke + * + * @param string $ext extension + * @param string $from filename path to file + * @param int $from_w original width + * @param int $from_h original height + * @param string $to path to resized file + * @param int $to_w desired width + * @param int $to_h desired height + * @param int $ofs_x offset of crop centre + * @param int $ofs_y offset of crop centre + * @return bool */ function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x=0,$ofs_y=0){ global $conf; @@ -2087,6 +2305,7 @@ function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x= } // create an image of the given filetype + $image = false; if ($ext == 'jpg' || $ext == 'jpeg'){ if(!function_exists("imagecreatefromjpeg")) return false; $image = @imagecreatefromjpeg($from); @@ -2100,6 +2319,7 @@ function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x= } if(!$image) return false; + $newimg = false; if(($conf['gdlib']>1) && function_exists("imagecreatetruecolor") && $ext != 'gif'){ $newimg = @imagecreatetruecolor ($to_w, $to_h); } @@ -2175,23 +2395,23 @@ function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x= * Return other media files with the same base name * but different extensions. * - * @param string $src - ID of media file - * @param array $exts - alternative extensions to find other files for - * @return array - mime type => file ID + * @param string $src - ID of media file + * @param string[] $exts - alternative extensions to find other files for + * @return array - array(mime type => file ID) * * @author Anika Henke */ function media_alternativefiles($src, $exts){ $files = array(); - list($srcExt, $srcMime) = mimetype($src); + list($srcExt, /* $srcMime */) = mimetype($src); $filebase = substr($src, 0, -1 * (strlen($srcExt)+1)); foreach($exts as $ext) { $fileid = $filebase.'.'.$ext; $file = mediaFN($fileid); if(file_exists($file)) { - list($fileExt, $fileMime) = mimetype($file); + list(/* $fileExt */, $fileMime) = mimetype($file); $files[$fileMime] = $fileid; } } @@ -2202,7 +2422,7 @@ function media_alternativefiles($src, $exts){ * Check if video/audio is supported to be embedded. * * @param string $mime - mimetype of media file - * @param string $type - type of media files to check ('video', 'audio', or none) + * @param string $type - type of media files to check ('video', 'audio', or null for all) * @return boolean * * @author Anika Henke diff --git a/dokuwiki/inc/pageutils.php b/dokuwiki/inc/pageutils.php index 49c00d36..68b7dab4 100644 --- a/dokuwiki/inc/pageutils.php +++ b/dokuwiki/inc/pageutils.php @@ -20,7 +20,7 @@ * * @param string $param the $_REQUEST variable name, default 'id' * @param bool $clean if true, ID is cleaned - * @return mixed|string + * @return string */ function getID($param='id',$clean=true){ /** @var Input $INPUT */ @@ -81,7 +81,13 @@ function getID($param='id',$clean=true){ // fall back to default $id = $id.$conf['start']; } - if (isset($ACT) && $ACT === 'show') send_redirect(wl($id,'',true)); + if (isset($ACT) && $ACT === 'show') { + $urlParameters = $_GET; + if (isset($urlParameters['id'])) { + unset($urlParameters['id']); + } + send_redirect(wl($id,$urlParameters,true)); + } } if($clean) $id = cleanID($id); @@ -97,6 +103,7 @@ function getID($param='id',$clean=true){ * converted to unaccented ones * * @author Andreas Gohr + * * @param string $raw_id The pageid to clean * @param boolean $ascii Force ASCII * @return string cleaned id @@ -109,7 +116,7 @@ function cleanID($raw_id,$ascii=false){ $cache = & $cache_cleanid; // check if it's already in the memory cache - if (isset($cache[(string)$raw_id])) { + if (!$ascii && isset($cache[(string)$raw_id])) { return $cache[(string)$raw_id]; } @@ -142,7 +149,7 @@ function cleanID($raw_id,$ascii=false){ $id = preg_replace('#:[:\._\-]+#',':',$id); $id = preg_replace('#[:\._\-]+:#',':',$id); - $cache[(string)$raw_id] = $id; + if (!$ascii) $cache[(string)$raw_id] = $id; return($id); } @@ -152,7 +159,7 @@ function cleanID($raw_id,$ascii=false){ * @author Andreas Gohr * * @param string $id - * @return string|bool the namespace part or false if the given ID has no namespace (root) + * @return string|false the namespace part or false if the given ID has no namespace (root) */ function getNS($id){ $pos = strrpos((string)$id,':'); @@ -242,7 +249,6 @@ function sectionID($title,&$check) { return $title; } - /** * Wiki page existence check * @@ -250,9 +256,10 @@ function sectionID($title,&$check) { * * @author Chris Smith * - * @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) { @@ -262,7 +269,7 @@ function page_exists($id,$rev='',$clean=true, $date_at=false) { if($pagelog_rev !== false) $rev = $pagelog_rev; } - return @file_exists(wikiFN($id,$rev,$clean)); + return file_exists(wikiFN($id,$rev,$clean)); } /** @@ -271,7 +278,7 @@ function page_exists($id,$rev='',$clean=true, $date_at=false) { * The filename is URL encoded to protect Unicode chars * * @param $raw_id string id of wikipage - * @param $rev string page revision, empty string for current + * @param $rev int|string page revision, empty string for current * @param $clean bool flag indicating that $raw_id should be cleaned. Only set to false * when $id is guaranteed to have been cleaned already. * @return string full path @@ -284,23 +291,24 @@ function wikiFN($raw_id,$rev='',$clean=true){ global $cache_wikifn; $cache = & $cache_wikifn; - if (isset($cache[$raw_id]) && isset($cache[$raw_id][$rev])) { - return $cache[$raw_id][$rev]; - } - $id = $raw_id; if ($clean) $id = cleanID($id); $id = str_replace(':','/',$id); + + if (isset($cache[$id]) && isset($cache[$id][$rev])) { + return $cache[$id][$rev]; + } + if(empty($rev)){ $fn = $conf['datadir'].'/'.utf8_encodeFN($id).'.txt'; }else{ $fn = $conf['olddir'].'/'.utf8_encodeFN($id).'.'.$rev.'.txt'; if($conf['compression']){ //test for extensions here, we want to read both compressions - if (@file_exists($fn . '.gz')){ + if (file_exists($fn . '.gz')){ $fn .= '.gz'; - }else if(@file_exists($fn . '.bz2')){ + }else if(file_exists($fn . '.bz2')){ $fn .= '.bz2'; }else{ //file doesnt exist yet, so we take the configured extension @@ -309,8 +317,8 @@ function wikiFN($raw_id,$rev='',$clean=true){ } } - if (!isset($cache[$raw_id])) { $cache[$raw_id] = array(); } - $cache[$raw_id][$rev] = $fn; + if (!isset($cache[$id])) { $cache[$id] = array(); } + $cache[$id][$rev] = $fn; return $fn; } @@ -390,9 +398,9 @@ function metaFiles($id){ * @param string|int $rev empty string or revision timestamp * @return string full path */ -function mediaFN($id, $rev=''){ +function mediaFN($id, $rev='', $clean=true){ global $conf; - $id = cleanID($id); + if ($clean) $id = cleanID($id); $id = str_replace(':','/',$id); if(empty($rev)){ $fn = $conf['mediadir'].'/'.utf8_encodeFN($id); @@ -417,9 +425,9 @@ function mediaFN($id, $rev=''){ function localeFN($id,$ext='txt'){ global $conf; $file = DOKU_CONF.'lang/'.$conf['lang'].'/'.$id.'.'.$ext; - if(!@file_exists($file)){ + if(!file_exists($file)){ $file = DOKU_INC.'inc/lang/'.$conf['lang'].'/'.$id.'.'.$ext; - if(!@file_exists($file)){ + if(!file_exists($file)){ //fall back to english $file = DOKU_INC.'inc/lang/en/'.$id.'.'.$ext; } @@ -434,14 +442,14 @@ function localeFN($id,$ext='txt'){ * instead * * Partyly based on a cleanPath function found at - * http://www.php.net/manual/en/function.realpath.php#57016 + * http://php.net/manual/en/function.realpath.php#57016 * * @author * * @param string $ns namespace which is context of id * @param string $id relative id * @param bool $clean flag indicating that id should be cleaned - * @return mixed|string + * @return string */ function resolve_id($ns,$id,$clean=true){ global $conf; @@ -488,9 +496,11 @@ function resolve_id($ns,$id,$clean=true){ * * @author Andreas Gohr * - * @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); @@ -501,9 +511,9 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ $rev = $medialog_rev; } } - + $file = mediaFN($page,$rev); - $exists = @file_exists($file); + $exists = file_exists($file); } /** @@ -511,9 +521,11 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ * * @author Andreas Gohr * - * @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; @@ -564,7 +576,7 @@ function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){ } }else{ //check alternative plural/nonplural form - if(!@file_exists($file)){ + if(!file_exists($file)){ if( $conf['autoplural'] ){ if(substr($page,-1) == 's'){ $try = substr($page,0,-1); @@ -733,23 +745,26 @@ function utf8_decodeFN($file){ /** * Find a page in the current namespace (determined from $ID) or any - * higher namespace + * higher namespace that can be accessed by the current user, + * this condition can be overriden by an optional parameter. * * Used for sidebars, but can be used other stuff as well * * @todo add event hook + * * @param string $page the pagename you're looking for - * @return string|false the full page id of the found page, false if any + * @param bool $useacl only return pages readable by the current user, false to ignore ACLs + * @return false|string the full page id of the found page, false if any */ -function page_findnearest($page){ +function page_findnearest($page, $useacl = true){ if (!$page) return false; global $ID; $ns = $ID; do { $ns = getNS($ns); - $pageid = ltrim("$ns:$page",':'); - if(page_exists($pageid)){ + $pageid = cleanID("$ns:$page"); + if(page_exists($pageid) && (!$useacl || auth_quickaclcheck($pageid) >= AUTH_READ)){ return $pageid; } } while($ns); diff --git a/dokuwiki/inc/parser/code.php b/dokuwiki/inc/parser/code.php index 00b956c2..10d32d85 100644 --- a/dokuwiki/inc/parser/code.php +++ b/dokuwiki/inc/parser/code.php @@ -17,10 +17,16 @@ class Doku_Renderer_code extends Doku_Renderer { function code($text, $language = null, $filename = '') { global $INPUT; if(!$language) $language = 'txt'; + $language = preg_replace(PREG_PATTERN_VALID_LANGUAGE, '', $language); if(!$filename) $filename = 'snippet.'.$language; $filename = utf8_basename($filename); $filename = utf8_stripspecials($filename, '_'); + // send CRLF to Windows clients + if(strpos($INPUT->server->str('HTTP_USER_AGENT'), 'Windows') !== false) { + $text = str_replace("\n", "\r\n", $text); + } + if($this->_codeblock == $INPUT->str('codeblock')) { header("Content-Type: text/plain; charset=utf-8"); header("Content-Disposition: attachment; filename=$filename"); diff --git a/dokuwiki/inc/parser/handler.php b/dokuwiki/inc/parser/handler.php index a1040d12..a5e7f39c 100644 --- a/dokuwiki/inc/parser/handler.php +++ b/dokuwiki/inc/parser/handler.php @@ -17,10 +17,13 @@ class Doku_Handler { var $rewriteBlocks = true; - function Doku_Handler() { + function __construct() { $this->CallWriter = new Doku_Handler_CallWriter($this); } + /** + * @param string $handler + */ function _addCall($handler, $args, $pos) { $call = array($handler,$args, $pos); $this->CallWriter->writeCall($call); @@ -71,6 +74,7 @@ class Doku_Handler { */ function plugin($match, $state, $pos, $pluginname){ $data = array($match); + /** @var DokuWiki_Syntax_Plugin $plugin */ $plugin = plugin_load('syntax',$pluginname); if($plugin != null){ $data = $plugin->handle($match, $state, $pos, $this); @@ -132,6 +136,9 @@ class Doku_Handler { return true; } + /** + * @param string $name + */ function _nestingTag($match, $state, $pos, $name) { switch ( $state ) { case DOKU_LEXER_ENTER: @@ -288,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: @@ -439,7 +446,7 @@ class Doku_Handler { //decide which kind of link it is - if ( preg_match('/^[a-zA-Z0-9\.]+>{1}.*$/u',$link[0]) ) { + if ( link_isinterwiki($link[0]) ) { // Interwiki $interwiki = explode('>',$link[0],2); $this->_addCall( @@ -525,6 +532,7 @@ class Doku_Handler { $p['author'] = (preg_match('/\b(by|author)/',$params)); $p['date'] = (preg_match('/\b(date)/',$params)); $p['details'] = (preg_match('/\b(desc|detail)/',$params)); + $p['nosort'] = (preg_match('/\b(nosort)\b/',$params)); if (preg_match('/\b(\d+)([dhm])\b/',$params,$match)) { $period = array('d' => 86400, 'h' => 3600, 'm' => 60); @@ -685,8 +693,8 @@ function Doku_Handler_Parse_Media($match) { $cache = 'cache'; } - // Check whether this is a local or remote image - if ( media_isexternal($src) ) { + // Check whether this is a local or remote image or interwiki + if (media_isexternal($src) || link_isinterwiki($src)){ $call = 'externalmedia'; } else { $call = 'internalmedia'; @@ -707,12 +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; - function Doku_Handler_CallWriter(& $Handler) { - $this->Handler = & $Handler; + /** + * @param Doku_Handler $Handler + */ + function __construct(Doku_Handler $Handler) { + $this->Handler = $Handler; } function writeCall($call) { @@ -737,7 +754,7 @@ class Doku_Handler_CallWriter { * * @author Chris Smith */ -class Doku_Handler_Nest { +class Doku_Handler_Nest implements Doku_Handler_CallWriter_Interface { var $CallWriter; var $calls = array(); @@ -747,12 +764,12 @@ class Doku_Handler_Nest { /** * constructor * - * @param object $CallWriter the renderers current call writer + * @param Doku_Handler_CallWriter $CallWriter the renderers current call writer * @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; } @@ -797,7 +814,7 @@ class Doku_Handler_Nest { } } -class Doku_Handler_List { +class Doku_Handler_List implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -805,8 +822,10 @@ class Doku_Handler_List { var $listCalls = array(); var $listStack = array(); - function Doku_Handler_List(& $CallWriter) { - $this->CallWriter = & $CallWriter; + const NODE = 1; + + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -856,7 +875,8 @@ class Doku_Handler_List { $depth = $this->interpretSyntax($call[1][0], $listType); $this->initialDepth = $depth; - $this->listStack[] = array($listType, $depth); + // array(list type, current depth, index of current listitem_open) + $this->listStack[] = array($listType, $depth, 1); $this->listCalls[] = array('list'.$listType.'_open',array(),$call[2]); $this->listCalls[] = array('listitem_open',array(1),$call[2]); @@ -881,6 +901,7 @@ class Doku_Handler_List { function listOpen($call) { $depth = $this->interpretSyntax($call[1][0], $listType); $end = end($this->listStack); + $key = key($this->listStack); // Not allowed to be shallower than initialDepth if ( $depth < $this->initialDepth ) { @@ -897,6 +918,9 @@ class Doku_Handler_List { $this->listCalls[] = array('listitem_open',array($depth-1),$call[2]); $this->listCalls[] = array('listcontent_open',array(),$call[2]); + // new list item, update list stack's index into current listitem_open + $this->listStack[$key][2] = count($this->listCalls) - 2; + // Switched list type... } else { @@ -908,7 +932,7 @@ class Doku_Handler_List { $this->listCalls[] = array('listcontent_open',array(),$call[2]); array_pop($this->listStack); - $this->listStack[] = array($listType, $depth); + $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2); } //------------------------------------------------------------------------ @@ -920,7 +944,10 @@ class Doku_Handler_List { $this->listCalls[] = array('listitem_open', array($depth-1), $call[2]); $this->listCalls[] = array('listcontent_open',array(),$call[2]); - $this->listStack[] = array($listType, $depth); + // set the node/leaf state of this item's parent listitem_open to NODE + $this->listCalls[$this->listStack[$key][2]][1][1] = self::NODE; + + $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2); //------------------------------------------------------------------------ // Getting shallower ( $depth < $end[1] ) @@ -934,6 +961,7 @@ class Doku_Handler_List { while (1) { $end = end($this->listStack); + $key = key($this->listStack); if ( $end[1] <= $depth ) { @@ -946,6 +974,9 @@ class Doku_Handler_List { $this->listCalls[] = array('listitem_open',array($depth-1),$call[2]); $this->listCalls[] = array('listcontent_open',array(),$call[2]); + // new list item, update list stack's index into current listitem_open + $this->listStack[$key][2] = count($this->listCalls) - 2; + } else { // Switching list type... $this->listCalls[] = array('list'.$end[0].'_close', array(), $call[2]); @@ -954,7 +985,7 @@ class Doku_Handler_List { $this->listCalls[] = array('listcontent_open',array(),$call[2]); array_pop($this->listStack); - $this->listStack[] = array($listType, $depth); + $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2); } break; @@ -993,7 +1024,7 @@ class Doku_Handler_List { } //------------------------------------------------------------------------ -class Doku_Handler_Preformatted { +class Doku_Handler_Preformatted implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1003,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) { @@ -1053,7 +1084,7 @@ class Doku_Handler_Preformatted { } //------------------------------------------------------------------------ -class Doku_Handler_Quote { +class Doku_Handler_Quote implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1061,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) { @@ -1145,7 +1176,7 @@ class Doku_Handler_Quote { } //------------------------------------------------------------------------ -class Doku_Handler_Table { +class Doku_Handler_Table implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1160,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) { @@ -1439,12 +1470,16 @@ class Doku_Handler_Table { case 'tablerow_close': // Fix broken tables by adding missing cells + $moreCalls = array(); while (++$lastCell < $this->maxCols) { - array_splice($this->tableCalls, $key, 0, array( - array('tablecell_open', array(1, null, 1), $call[2]), - array('cdata', array(''), $call[2]), - array('tablecell_close', array(), $call[2]))); - $key += 3; + $moreCalls[] = array('tablecell_open', array(1, null, 1), $call[2]); + $moreCalls[] = array('cdata', array(''), $call[2]); + $moreCalls[] = array('tablecell_close', array(), $call[2]); + } + $moreCallsLength = count($moreCalls); + if($moreCallsLength) { + array_splice($this->tableCalls, $key, 0, $moreCalls); + $key += $moreCallsLength; } if($this->countTableHeadRows == $lastRow) { @@ -1526,7 +1561,7 @@ class Doku_Handler_Block { * * @author Andreas Gohr */ - function Doku_Handler_Block(){ + function __construct(){ global $DOKU_PLUGINS; //check if syntax plugins were loaded if(empty($DOKU_PLUGINS['syntax'])) return; diff --git a/dokuwiki/inc/parser/lexer.php b/dokuwiki/inc/parser/lexer.php index 2e84eca7..993db2b9 100644 --- a/dokuwiki/inc/parser/lexer.php +++ b/dokuwiki/inc/parser/lexer.php @@ -3,7 +3,7 @@ * Author Markus Baker: http://www.lastcraft.com * Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/ * For an intro to the Lexer see: - * http://www.phppatterns.com/index.php/article/articleview/106/1/2/ + * https://web.archive.org/web/20120125041816/http://www.phppatterns.com/docs/develop/simple_test_lexer_notes * @author Marcus Baker * @package Doku * @subpackage Lexer @@ -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(); @@ -56,12 +56,12 @@ class Doku_LexerParallelRegex { /** * Adds a pattern with an optional label. * - * @param mixed $pattern Perl style regex. Must be UTF-8 + * @param mixed $pattern Perl style regex. Must be UTF-8 * encoded. If its a string, the (, ) * lose their meaning unless they * form part of a lookahead or * lookbehind assertation. - * @param string $label Label of regex to be returned + * @param bool|string $label Label of regex to be returned * on a match. Label must be ASCII * @access public */ @@ -151,7 +151,8 @@ class Doku_LexerParallelRegex { * "or" operator. Caches the regex. * Will automatically escape (, ) and / tokens. * - * @param array $patterns List of patterns in order. + * @internal array $_patterns List of patterns in order. + * @return null|string * @access private */ function _getCompoundedRegex() { @@ -231,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); } @@ -295,10 +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(); } @@ -425,11 +427,13 @@ class Doku_Lexer { * Sends the matched token and any leading unmatched * text to the parser changing the lexer to a new * mode if one is listed. - * @param string $unmatched Unmatched leading portion. - * @param string $matched Actual token match. - * @param string $mode Mode after match. A boolean + * @param string $unmatched Unmatched leading portion. + * @param string $matched Actual token match. + * @param bool|string $mode Mode after match. A boolean * false mode causes no change. - * @param int $pos Current byte index location in raw doc + * @param int $initialPos + * @param int $matchPos + * Current byte index location in raw doc * thats being parsed * @return boolean False if there was any error * from the parser. @@ -498,11 +502,12 @@ class Doku_Lexer { * Calls the parser method named after the current * mode. Empty content will be ignored. The lexer * has a parser handler for each mode in the lexer. - * @param string $content Text parsed. - * @param boolean $is_match Token is recognised rather + * @param string $content Text parsed. + * @param boolean $is_match Token is recognised rather * than unparsed data. - * @param int $pos Current byte index location in raw doc + * @param int $pos Current byte index location in raw doc * thats being parsed + * @return bool * @access private */ function _invokeParser($content, $is_match, $pos) { diff --git a/dokuwiki/inc/parser/metadata.php b/dokuwiki/inc/parser/metadata.php index 25bf3fe3..ac8fd213 100644 --- a/dokuwiki/inc/parser/metadata.php +++ b/dokuwiki/inc/parser/metadata.php @@ -165,7 +165,7 @@ class Doku_Renderer_metadata extends Doku_Renderer { if(!isset($this->meta['title'])) $this->meta['title'] = $text; // add the header to the TOC - $hid = $this->_headerToLink($text, 'true'); + $hid = $this->_headerToLink($text, true); $this->toc_additem($hid, $text, $level); // add to summary @@ -251,8 +251,9 @@ class Doku_Renderer_metadata extends Doku_Renderer { * Open a list item * * @param int $level the nesting level + * @param bool $node true when a node; false when a leaf */ - function listitem_open($level) { + function listitem_open($level,$node=false) { $this->cdata(str_repeat(DOKU_TAB, $level).'* '); } @@ -421,8 +422,8 @@ class Doku_Renderer_metadata extends Doku_Renderer { /** * keep track of internal links in $this->meta['relation']['references'] * - * @param string $id page ID to link to. eg. 'wiki:syntax' - * @param string|array $name name for the link, array for media file + * @param string $id page ID to link to. eg. 'wiki:syntax' + * @param string|array|null $name name for the link, array for media file */ function internallink($id, $name = null) { global $ID; @@ -458,8 +459,8 @@ class Doku_Renderer_metadata 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|null $name name for the link, array for media file */ function externallink($url, $name = null) { if(is_array($name)) { @@ -628,9 +629,9 @@ class Doku_Renderer_metadata extends Doku_Renderer { * Construct a title and handle images in titles * * @author Harry Fuecks - * @param string|array $title either string title or media array - * @param string $default default title if nothing else is found - * @param null|string $id linked page id (used to extract title from first heading) + * @param string|array|null $title either string title or media array + * @param string $default default title if nothing else is found + * @param null|string $id linked page id (used to extract title from first heading) * @return string title text */ function _getLinkTitle($title, $default, $id = null) { diff --git a/dokuwiki/inc/parser/parser.php b/dokuwiki/inc/parser/parser.php index df01f330..7814e94f 100644 --- a/dokuwiki/inc/parser/parser.php +++ b/dokuwiki/inc/parser/parser.php @@ -61,24 +61,27 @@ class Doku_Parser { var $connected = false; - function addBaseMode(& $BaseMode) { - $this->modes['base'] =& $BaseMode; + /** + * @param Doku_Parser_Mode_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() { @@ -139,6 +142,7 @@ interface Doku_Parser_Mode_Interface { /** * Called before any calls to connectTo + * @return void */ function preConnect(); @@ -146,11 +150,13 @@ interface Doku_Parser_Mode_Interface { * Connects the mode * * @param string $mode + * @return void */ function connectTo($mode); /** * Called after all calls to connectTo + * @return void */ function postConnect(); @@ -220,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 ( @@ -242,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 ( @@ -407,7 +413,10 @@ class Doku_Parser_Mode_formatting extends Doku_Parser_Mode { ), ); - function Doku_Parser_Mode_formatting($type) { + /** + * @param string $type + */ + function __construct($type) { global $PARSER_MODES; if ( !array_key_exists($type, $this->formatting) ) { @@ -461,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 ( @@ -495,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 ( @@ -639,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 ( @@ -673,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; } @@ -720,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; } @@ -753,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; } @@ -788,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/dokuwiki/inc/parser/renderer.php b/dokuwiki/inc/parser/renderer.php index 09294539..0427bbc0 100644 --- a/dokuwiki/inc/parser/renderer.php +++ b/dokuwiki/inc/parser/renderer.php @@ -7,6 +7,12 @@ */ if(!defined('DOKU_INC')) die('meh.'); +/** + * Allowed chars in $language for code highlighting + * @see GeSHi::set_language() + */ +define('PREG_PATTERN_VALID_LANGUAGE', '#[^a-zA-Z0-9\-_]#'); + /** * An empty renderer, produces no output * @@ -190,7 +196,7 @@ class Doku_Renderer extends DokuWiki_Plugin { /** * Render plain text data * - * @param $text + * @param string $text */ function cdata($text) { } @@ -343,8 +349,9 @@ class Doku_Renderer extends DokuWiki_Plugin { * Open a list item * * @param int $level the nesting level + * @param bool $node true when a node; false when a leaf */ - function listitem_open($level) { + function listitem_open($level,$node=false) { } /** @@ -706,6 +713,30 @@ class Doku_Renderer extends DokuWiki_Plugin { function tablethead_close() { } + /** + * Open a table body + */ + function tabletbody_open() { + } + + /** + * Close a table body + */ + function tabletbody_close() { + } + + /** + * Open a table footer + */ + function tabletfoot_open() { + } + + /** + * Close a table footer + */ + function tabletfoot_close() { + } + /** * Open a table row */ @@ -759,6 +790,9 @@ class Doku_Renderer extends DokuWiki_Plugin { * casing and special chars * * @author Andreas Gohr + * + * @param string $name + * @return string */ function _simpleTitle($name) { global $conf; @@ -778,6 +812,11 @@ class Doku_Renderer extends DokuWiki_Plugin { /** * Resolve an interwikilink + * + * @param string $shortcut identifier for the interwiki link + * @param string $reference fragment that refers the content + * @param null|bool $exists reference which returns if an internal page exists + * @return string interwikilink */ function _resolveInterWiki(&$shortcut, $reference, &$exists = null) { //get interwiki URL @@ -785,18 +824,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/dokuwiki/inc/parser/xhtml.php b/dokuwiki/inc/parser/xhtml.php index 5627a035..d65e07f1 100644 --- a/dokuwiki/inc/parser/xhtml.php +++ b/dokuwiki/inc/parser/xhtml.php @@ -59,10 +59,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Register a new edit section range * - * @param $type string The section type identifier - * @param $title string The section title - * @param $start int The byte position for the edit start - * @return string A marker class for the starting HTML element + * @param string $type The section type identifier + * @param string $title The section title + * @param int $start The byte position for the edit start + * @return string A marker class for the starting HTML element + * * @author Adrian Lang */ public function startSectionEdit($start, $type, $title = null) { @@ -73,8 +74,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Finish an edit section range * - * @param $end int The byte position for the edit end; null for the rest of - * the page + * @param int $end The byte position for the edit end; null for the rest of the page + * * @author Adrian Lang */ public function finishSectionEdit($end = null) { @@ -146,7 +147,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } // add footnote markup and close this footnote - $this->doc .= $footnote; + $this->doc .= '
      '.$footnote.'
      '; $this->doc .= ''.DOKU_LF; } } @@ -190,7 +191,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { function header($text, $level, $pos) { global $conf; - if(!$text) return; //skip empty headlines + if(blank($text)) return; //skip empty headlines $hid = $this->_headerToLink($text, true); @@ -426,9 +427,16 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Open an unordered list + * + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input */ - function listu_open() { - $this->doc .= '
        '.DOKU_LF; + function listu_open($classes = null) { + $class = ''; + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class = " class=\"$classes\""; + } + $this->doc .= "".DOKU_LF; } /** @@ -440,9 +448,16 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Open an ordered list + * + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input */ - function listo_open() { - $this->doc .= '
          '.DOKU_LF; + function listo_open($classes = null) { + $class = ''; + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class = " class=\"$classes\""; + } + $this->doc .= "".DOKU_LF; } /** @@ -456,9 +471,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * Open a list item * * @param int $level the nesting level + * @param bool $node true when a node; false when a leaf */ - function listitem_open($level) { - $this->doc .= '
        1. '; + function listitem_open($level, $node=false) { + $branching = $node ? ' node' : ''; + $this->doc .= '
        2. '; } /** @@ -613,6 +630,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { global $ID; global $lang; + $language = preg_replace(PREG_PATTERN_VALID_LANGUAGE, '', $language); + if($filename) { // add icon list($ext) = mimetype($filename, false); @@ -632,7 +651,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $text = substr($text, 0, -1); } - if(is_null($language)) { + if(empty($language)) { // empty is faster than is_null and can prevent '' string $this->doc .= '
          '.$this->_xmlEntities($text).'
          '.DOKU_LF; } else { $class = 'code'; //we always need the code class to make the syntax highlighting apply @@ -758,27 +777,43 @@ 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 + * @return void|string writes to doc attribute or returns html depends on $returnonly + * * @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 + * @return void|string writes to doc attribute or returns html depends on $returnonly */ - 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 .= ''; - $this->doc .= $name; - $this->doc .= ''; + + $doc = ''; + $doc .= $name; + $doc .= ''; + + if($returnonly) { + return $doc; + } else { + $this->doc .= $doc; + } } /** @@ -821,6 +856,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // now first resolve and clean up the $id resolve_pageid(getNS($ID), $id, $exists, $this->date_at, true); + $link = array(); $name = $this->_getLinkTitle($name, $default, $isImage, $id, $linktype); if(!$isImage) { if($exists) { @@ -880,10 +916,12 @@ 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 + * @return void|string writes to doc attribute or returns html depends on $returnonly */ - function externallink($url, $name = null) { + function externallink($url, $name = null, $returnonly = false) { global $conf; $name = $this->_getLinkTitle($name, $url, $isImage); @@ -896,7 +934,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; } @@ -908,6 +950,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } //prepare for formating + $link = array(); $link['target'] = $conf['target']['extern']; $link['style'] = ''; $link['pre'] = ''; @@ -915,13 +958,19 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['more'] = ''; $link['class'] = $class; $link['url'] = $url; + $link['rel'] = ''; $link['name'] = $name; $link['title'] = $this->_xmlEntities($url); - if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"'; + if($conf['relnofollow']) $link['rel'] .= ' nofollow'; + if($conf['target']['extern']) $link['rel'] .= ' noopener'; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -929,12 +978,14 @@ 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 + * @return void|string writes to doc attribute or returns html depends on $returnonly */ - function interwikilink($match, $name = null, $wikiName, $wikiUri) { + function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) { global $conf; $link = array(); @@ -943,6 +994,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['suf'] = ''; $link['more'] = ''; $link['name'] = $this->_getLinkTitle($name, $wikiUri, $isImage); + $link['rel'] = ''; //get interwiki URL $exists = null; @@ -964,27 +1016,35 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['class'] .= ' wikilink1'; } else { $link['class'] .= ' wikilink2'; - $link['rel'] = 'nofollow'; + $link['rel'] .= ' nofollow'; } } + if($conf['target']['interwiki']) $link['rel'] .= ' noopener'; $link['url'] = $url; $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 + * @return void|string writes to doc attribute or returns html depends on $returnonly */ - function windowssharelink($url, $name = null) { + function windowssharelink($url, $name = null, $returnonly = false) { global $conf; //simple setup + $link = array(); $link['target'] = $conf['target']['windows']; $link['pre'] = ''; $link['suf'] = ''; @@ -1003,7 +1063,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['url'] = $url; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -1011,10 +1075,12 @@ 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 + * @return void|string writes to doc attribute or returns html depends on $returnonly */ - function emaillink($address, $name = null) { + function emaillink($address, $name = null, $returnonly = false) { global $conf; //simple setup $link = array(); @@ -1046,7 +1112,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); + } } /** @@ -1060,7 +1130,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @param string $cache cache|recache|nocache * @param string $linking linkonly|detail|nolink * @param bool $return return HTML instead of adding to $doc - * @return void|string + * @return void|string writes to doc attribute or returns html depends on $return */ function internalmedia($src, $title = null, $align = null, $width = null, $height = null, $cache = null, $linking = null, $return = false) { @@ -1114,9 +1184,15 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @param string $cache cache|recache|nocache * @param string $linking linkonly|detail|nolink * @param bool $return return HTML instead of adding to $doc + * @return void|string writes to doc attribute or returns html depends on $return */ function externalmedia($src, $title = null, $align = null, $width = null, $height = null, $cache = null, $linking = null, $return = false) { + if(link_isinterwiki($src)){ + list($shortcut, $reference) = explode('>', $src, 2); + $exists = null; + $src = $this->_resolveInterWiki($shortcut, $reference, $exists); + } list($src, $hash) = explode('#', $src, 2); $noLink = false; $render = ($linking == 'linkonly') ? false : true; @@ -1152,6 +1228,9 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Renders an RSS feed * + * @param string $url URL of the feed + * @param array $params Finetuning of the output + * * @author Andreas Gohr */ function rss($url, $params) { @@ -1171,6 +1250,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { error_reporting($elvl); } + if($params['nosort']) $feed->enable_order_by_date(false); + //decide on start and end if($params['reverse']) { $mod = -1; @@ -1206,7 +1287,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if($author) { $name = $author->get_name(); if(!$name) $name = $author->get_email(); - if($name) $this->doc .= ' '.$lang['by'].' '.$name; + if($name) $this->doc .= ' '.$lang['by'].' '.hsc($name); } } if($params['date']) { @@ -1241,12 +1322,17 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * @param int $maxcols maximum number of columns * @param int $numrows NOT IMPLEMENTED - * @param int $pos byte position in the original source + * @param int $pos byte position in the original source + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input */ - function table_open($maxcols = null, $numrows = null, $pos = null) { + function table_open($maxcols = null, $numrows = null, $pos = null, $classes = null) { // initialize the row counter used for classes $this->_counter['row_counter'] = 0; $class = 'table'; + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class .= ' ' . $classes; + } if($pos !== null) { $class .= ' '.$this->startSectionEdit($pos, 'table'); } @@ -1281,12 +1367,46 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } /** - * Open a table row + * Open a table body */ - function tablerow_open() { + function tabletbody_open() { + $this->doc .= DOKU_TAB.''.DOKU_LF; + } + + /** + * Close a table body + */ + function tabletbody_close() { + $this->doc .= DOKU_TAB.''.DOKU_LF; + } + + /** + * Open a table footer + */ + function tabletfoot_open() { + $this->doc .= DOKU_TAB.''.DOKU_LF; + } + + /** + * Close a table footer + */ + function tabletfoot_close() { + $this->doc .= DOKU_TAB.''.DOKU_LF; + } + + /** + * Open a table row + * + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input + */ + function tablerow_open($classes = null) { // initialize the cell counter used for classes $this->_counter['cell_counter'] = 0; $class = 'row'.$this->_counter['row_counter']++; + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class .= ' ' . $classes; + } $this->doc .= DOKU_TAB.''.DOKU_LF.DOKU_TAB.DOKU_TAB; } @@ -1303,12 +1423,17 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @param int $colspan * @param string $align left|center|right * @param int $rowspan + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input */ - function tableheader_open($colspan = 1, $align = null, $rowspan = 1) { + function tableheader_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) { $class = 'class="col'.$this->_counter['cell_counter']++; if(!is_null($align)) { $class .= ' '.$align.'align'; } + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class .= ' ' . $classes; + } $class .= '"'; $this->doc .= ' 1) { @@ -1331,15 +1456,20 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Open a table cell * - * @param int $colspan - * @param string $align left|center|right - * @param int $rowspan + * @param int $colspan + * @param string $align left|center|right + * @param int $rowspan + * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input */ - function tablecell_open($colspan = 1, $align = null, $rowspan = 1) { + function tablecell_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) { $class = 'class="col'.$this->_counter['cell_counter']++; if(!is_null($align)) { $class .= ' '.$align.'align'; } + if($classes !== null) { + if(is_array($classes)) $classes = join(' ', $classes); + $class .= ' ' . $classes; + } $class .= '"'; $this->doc .= ' 1) { @@ -1359,6 +1489,16 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $this->doc .= ''; } + /** + * Returns the current header level. + * (required e.g. by the filelist plugin) + * + * @return int The current header level + */ + function getLastlevel() { + return $this->lastlevel; + } + #region Utility functions /** @@ -1366,6 +1506,9 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * Assembles all parts defined in $link returns HTML for the link * + * @param array $link attributes of a link + * @return string + * * @author Andreas Gohr */ function _formatLink($link) { @@ -1389,7 +1532,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if(!empty($link['target'])) $ret .= ' target="'.$link['target'].'"'; if(!empty($link['title'])) $ret .= ' title="'.$link['title'].'"'; if(!empty($link['style'])) $ret .= ' style="'.$link['style'].'"'; - if(!empty($link['rel'])) $ret .= ' rel="'.$link['rel'].'"'; + if(!empty($link['rel'])) $ret .= ' rel="'.trim($link['rel']).'"'; if(!empty($link['more'])) $ret .= ' '.$link['more']; $ret .= '>'; $ret .= $link['name']; @@ -1561,7 +1704,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } elseif(is_null($title) || trim($title) == '') { if(useHeading($linktype) && $id) { $heading = p_get_first_heading($id); - if($heading) { + if(!blank($heading)) { return $this->_xmlEntities($heading); } } @@ -1575,7 +1718,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * Returns HTML code for images used in link titles * * @author Andreas Gohr - * @param string $img + * @param array $img * @return string HTML img tag or similar */ function _imageTitle($img) { @@ -1623,6 +1766,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['suf'] = ''; $link['more'] = ''; $link['target'] = $conf['target']['media']; + if($conf['target']['media']) $link['rel'] = 'noopener'; $link['title'] = $this->_xmlEntities($src); $link['name'] = $this->_media($src, $title, $align, $width, $height, $cache, $render); @@ -1660,7 +1804,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // prepare alternative formats $extensions = array('webm', 'ogv', 'mp4'); $files = media_alternativefiles($src, $extensions); - $poster = media_alternativefiles($src, array('jpg', 'png'), true); + $poster = media_alternativefiles($src, array('jpg', 'png')); if(!empty($poster)) { $posterUrl = ml(reset($poster), '', true, '&'); } @@ -1704,7 +1848,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @param array $atts - additional attributes for the '.NL; return $out; } - + /** * _getLastMediaRevisionAt is a helperfunction to internalmedia() and _media() * which returns an existing media revision less or equal to rev or date_at diff --git a/dokuwiki/inc/parserutils.php b/dokuwiki/inc/parserutils.php index ba073f15..5b96d39f 100644 --- a/dokuwiki/inc/parserutils.php +++ b/dokuwiki/inc/parserutils.php @@ -55,6 +55,11 @@ define('METADATA_RENDER_UNLIMITED', 4); * wasn't found * * @author Andreas Gohr + * + * @param string $id page id + * @param string|int $rev revision timestamp or empty string + * @param bool $excuse + * @return null|string */ function p_wiki_xhtml($id, $rev='', $excuse=true,$date_at=''){ $file = wikiFN($id,$rev); @@ -66,13 +71,13 @@ function p_wiki_xhtml($id, $rev='', $excuse=true,$date_at=''){ $ID = $id; if($rev || $date_at){ - if(@file_exists($file)){ + if(file_exists($file)){ $ret = p_render('xhtml',p_get_instructions(io_readWikiPage($file,$id,$rev)),$info,$date_at); //no caching on old revisions }elseif($excuse){ $ret = p_locale_xhtml('norev'); } }else{ - if(@file_exists($file)){ + if(file_exists($file)){ $ret = p_cached_output($file,'xhtml',$id); }elseif($excuse){ $ret = p_locale_xhtml('newpage'); @@ -89,6 +94,9 @@ function p_wiki_xhtml($id, $rev='', $excuse=true,$date_at=''){ * Returns the specified local text in parsed format * * @author Andreas Gohr + * + * @param string $id page id + * @return null|string */ function p_locale_xhtml($id){ //fetch parsed locale @@ -101,6 +109,11 @@ function p_locale_xhtml($id){ * * @author Andreas Gohr * @author Chris Smith + * + * @param string $file filename, path to file + * @param string $format + * @param string $id page id + * @return null|string */ function p_cached_output($file, $format='xhtml', $id='') { global $conf; @@ -108,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\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n\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\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n\n"; + } }else{ $cache->removeCache(); //try to delete cachefile - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n\n"; + } } } @@ -129,6 +148,11 @@ function p_cached_output($file, $format='xhtml', $id='') { * Uses and creates a serialized cache file * * @author Andreas Gohr + * + * @param string $file filename, path to file + * @param bool $cacheonly + * @param string $id page id + * @return array|null */ function p_cached_instructions($file,$cacheonly=false,$id='') { static $run = null; @@ -138,7 +162,7 @@ function p_cached_instructions($file,$cacheonly=false,$id='') { if ($cacheonly || $cache->useCache() || (isset($run[$file]) && !defined('DOKU_UNITTEST'))) { return $cache->retrieveCache(); - } else if (@file_exists($file)) { + } else if (file_exists($file)) { // no cache - do some work $ins = p_get_instructions(io_readWikiPage($file,$id)); if ($cache->storeCache($ins)) { @@ -157,7 +181,8 @@ function p_cached_instructions($file,$cacheonly=false,$id='') { * * @author Harry Fuecks * @author Andreas Gohr - * @param string $text raw wiki syntax text + * + * @param string $text raw wiki syntax text * @return array a list of instruction arrays */ function p_get_instructions($text){ @@ -185,9 +210,9 @@ function p_get_instructions($text){ /** * returns the metadata of a page * - * @param string $id The id of the page the metadata should be returned from - * @param string $key The key of the metdata value that shall be read (by default everything) - separate hierarchies by " " like "date created" - * @param int $render If the page should be rendererd - possible values: + * @param string $id The id of the page the metadata should be returned from + * @param string $key The key of the metdata value that shall be read (by default everything) - separate hierarchies by " " like "date created" + * @param int $render If the page should be rendererd - possible values: * METADATA_DONT_RENDER, METADATA_RENDER_USING_SIMPLE_CACHE, METADATA_RENDER_USING_CACHE * METADATA_RENDER_UNLIMITED (also combined with the previous two options), * default: METADATA_RENDER_USING_CACHE @@ -229,7 +254,7 @@ function p_get_metadata($id, $key='', $render=METADATA_RENDER_USING_CACHE){ if ($render & METADATA_RENDER_USING_SIMPLE_CACHE) { $pagefn = wikiFN($id); $metafn = metaFN($id, '.meta'); - if (!@file_exists($metafn) || @filemtime($pagefn) > @filemtime($cachefile->cache)) { + if (!file_exists($metafn) || @filemtime($pagefn) > @filemtime($cachefile->cache)) { $do_render = true; } } elseif (!$cachefile->useCache()){ @@ -360,6 +385,9 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){ * used on page deletion * * @author Michael Klier + * + * @param string $id page id + * @return bool success / fail */ function p_purge_metadata($id) { $meta = p_read_metadata($id); @@ -392,7 +420,7 @@ function p_read_metadata($id,$cache=false) { if (isset($cache_metadata[(string)$id])) return $cache_metadata[(string)$id]; $file = metaFN($id, '.meta'); - $meta = @file_exists($file) ? unserialize(io_readFile($file, false)) : array('current'=>array(),'persistent'=>array()); + $meta = file_exists($file) ? unserialize(io_readFile($file, false)) : array('current'=>array(),'persistent'=>array()); if ($cache) { $cache_metadata[(string)$id] = $meta; @@ -423,6 +451,10 @@ function p_save_metadata($id, $meta) { * renders the metadata of a page * * @author Esther Brunner + * + * @param string $id page id + * @param array $orig the original metadata + * @return array|null array('current'=> array,'persistent'=> array); */ function p_render_metadata($id, $orig){ // make sure the correct ID is in global ID @@ -477,6 +509,8 @@ function p_render_metadata($id, $orig){ * returns all available parser syntax modes in correct order * * @author Andreas Gohr + * + * @return array[] with for each plugin the array('sort' => sortnumber, 'mode' => mode string, 'obj' => plugin object) */ function p_get_parsermodes(){ global $conf; @@ -569,6 +603,10 @@ function p_get_parsermodes(){ * Callback function for usort * * @author Andreas Gohr + * + * @param array $a + * @param array $b + * @return int $a is lower/equal/higher than $b */ function p_sort_modes($a, $b){ if($a['sort'] == $b['sort']) return 0; @@ -582,9 +620,16 @@ function p_sort_modes($a, $b){ * * @author Harry Fuecks * @author Andreas Gohr + * + * @param string $mode + * @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=''){ if(is_null($instructions)) return ''; + if($instructions === false) return ''; $Renderer = p_get_renderer($mode); if (is_null($Renderer)) return null; @@ -594,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(); @@ -621,7 +666,7 @@ function p_render($mode,$instructions,&$info,$date_at=''){ * Figure out the correct renderer class to use for $mode, * instantiate and return it * - * @param $mode string Mode of the renderer to get + * @param string $mode Mode of the renderer to get * @return null|Doku_Renderer The renderer * * @author Christopher Smith @@ -678,8 +723,8 @@ function p_get_renderer($mode) { * METADATA_RENDER_USING_SIMPLE_CACHE, * METADATA_RENDER_USING_CACHE, * METADATA_RENDER_UNLIMITED - * * @return string|null The first heading + * * @author Andreas Gohr * @author Michael Hamann */ @@ -693,8 +738,8 @@ function p_get_first_heading($id, $render=METADATA_RENDER_USING_SIMPLE_CACHE){ * @param string $code source code to be highlighted * @param string $language language to provide highlighting * @param string $wrapper html element to wrap the returned highlighted text - * * @return string xhtml code + * * @author Christopher Smith * @author Andreas Gohr */ @@ -708,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/dokuwiki/inc/plugin.php b/dokuwiki/inc/plugin.php index 80689e38..a3314d4c 100644 --- a/dokuwiki/inc/plugin.php +++ b/dokuwiki/inc/plugin.php @@ -33,7 +33,7 @@ class DokuWiki_Plugin { public function getInfo(){ $parts = explode('_', get_class($this)); $info = DOKU_PLUGIN . '/' . $parts[2] . '/plugin.info.txt'; - if(@file_exists($info)) return confToHash($info); + if(file_exists($info)) return confToHash($info); msg( 'getInfo() not implemented in ' . get_class($this) . ' and ' . $info . ' not found.
          ' . @@ -48,14 +48,25 @@ class DokuWiki_Plugin { // plugin introspection methods // extract from class name, format = _plugin_[_] + /** + * @return string plugin type + */ public function getPluginType() { list($t) = explode('_', get_class($this), 2); return $t; } + + /** + * @return string plugin name + */ public function getPluginName() { list(/* $t */, /* $p */, $n) = explode('_', get_class($this), 4); return $n; } + + /** + * @return string component name + */ public function getPluginComponent() { list(/* $t */, /* $p */, /* $n */, $c) = explode('_', get_class($this), 4); return (isset($c)?$c:''); @@ -91,17 +102,19 @@ class DokuWiki_Plugin { } /** - * localFN($id) - * prepends appropriate path for a language dependent filename + * Prepends appropriate path for a language dependent filename * plugin equivalent of localFN() + * + * @param string $id id of localization file + * @return string wiki text */ public function localFN($id) { global $conf; $plugin = $this->getPluginName(); $file = DOKU_CONF.'plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt'; - if (!@file_exists($file)){ + if (!file_exists($file)){ $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt'; - if(!@file_exists($file)){ + if(!file_exists($file)){ //fall back to english $file = DOKU_PLUGIN.$plugin.'/lang/en/'.$id.'.txt'; } @@ -110,9 +123,8 @@ class DokuWiki_Plugin { } /** - * setupLocale() - * reads all the plugins language dependent strings into $this->lang - * this function is automatically called by getLang() + * Reads all the plugins language dependent strings into $this->lang + * this function is automatically called by getLang() */ function setupLocale() { if($this->localised) return; @@ -125,7 +137,7 @@ class DokuWiki_Plugin { // don't include once, in case several plugin components require the same language file @include($path . 'en/lang.php'); foreach($config_cascade['lang']['plugin'] as $config_file) { - if(@file_exists($config_file . $this->getPluginName() . '/en/lang.php')) { + if(file_exists($config_file . $this->getPluginName() . '/en/lang.php')) { include($config_file . $this->getPluginName() . '/en/lang.php'); } } @@ -133,7 +145,7 @@ class DokuWiki_Plugin { if($conf['lang'] != 'en') { @include($path . $conf['lang'] . '/lang.php'); foreach($config_cascade['lang']['plugin'] as $config_file) { - if(@file_exists($config_file . $this->getPluginName() . '/' . $conf['lang'] . '/lang.php')) { + if(file_exists($config_file . $this->getPluginName() . '/' . $conf['lang'] . '/lang.php')) { include($config_file . $this->getPluginName() . '/' . $conf['lang'] . '/lang.php'); } } @@ -195,7 +207,7 @@ class DokuWiki_Plugin { $path = DOKU_PLUGIN.$this->getPluginName().'/conf/'; $conf = array(); - if (@file_exists($path.'default.php')) { + if (file_exists($path.'default.php')) { include($path.'default.php'); } @@ -209,8 +221,7 @@ class DokuWiki_Plugin { * * @param string $name name of plugin to load * @param bool $msg if a message should be displayed in case the plugin is not available - * - * @return object helper plugin object + * @return DokuWiki_Plugin|null helper plugin object */ public function loadHelper($name, $msg = true){ $obj = plugin_load('helper',$name); @@ -224,6 +235,12 @@ class DokuWiki_Plugin { /** * email * standardised function to generate an email link according to obfuscation settings + * + * @param string $email + * @param string $name + * @param string $class + * @param string $more + * @return string html */ public function email($email, $name='', $class='', $more='') { if (!$email) return $name; @@ -236,6 +253,13 @@ class DokuWiki_Plugin { /** * external_link * standardised function to generate an external link according to conf settings + * + * @param string $link + * @param string $title + * @param string $class + * @param string $target + * @param string $more + * @return string */ public function external_link($link, $title='', $class='', $target='', $more='') { global $conf; @@ -252,33 +276,11 @@ class DokuWiki_Plugin { return "$title"; } - /** - * A fallback to provide access to the old render() method - * - * Since syntax plugins provide their own render method with a different signature and they now - * inherit from Doku_Plugin we can no longer have a render() method here (Strict Standards Violation). - * Instead use render_text() - * - * @deprecated 2014-01-22 - * @param $name - * @param $arguments - * @return null|string - */ - public function __call($name, $arguments) { - if($name == 'render'){ - dbg_deprecated('render_text()'); - if(!isset($arguments[1])) $arguments[1] = 'xhtml'; - return $this->render_text($arguments[0], $arguments[1]); - } - trigger_error("no such method $name", E_USER_ERROR); - return null; - } - /** * output text string through the parser, allows dokuwiki markup to be used * very ineffecient for small pieces of data - try not to use * - * @param string $text wiki markup to parse + * @param string $text wiki markup to parse * @param string $format output format * @return null|string */ diff --git a/dokuwiki/inc/plugincontroller.class.php b/dokuwiki/inc/plugincontroller.class.php index d80cd4c9..5bb07531 100644 --- a/dokuwiki/inc/plugincontroller.class.php +++ b/dokuwiki/inc/plugincontroller.class.php @@ -66,14 +66,14 @@ class Doku_Plugin_Controller { * @param $name string name of the plugin to load * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance * @param $disabled bool true to load even disabled plugins - * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|null the plugin object or null on failure + * @return DokuWiki_Plugin|DokuWiki_Syntax_Plugin|DokuWiki_Auth_Plugin|DokuWiki_Admin_Plugin|DokuWiki_Action_Plugin|DokuWiki_Remote_Plugin|null the plugin object or null on failure */ public function load($type,$name,$new=false,$disabled=false){ //we keep all loaded plugins available in global scope for reuse global $DOKU_PLUGINS; - list($plugin,$component) = $this->_splitName($name); + list($plugin, /* $component */) = $this->_splitName($name); // check if disabled if(!$disabled && $this->isdisabled($plugin)){ @@ -114,7 +114,7 @@ class Doku_Plugin_Controller { * Whether plugin is disabled * * @param string $plugin name of plugin - * @return bool; true disabled, false enabled + * @return bool true disabled, false enabled */ public function isdisabled($plugin) { return empty($this->tmp_plugins[$plugin]); @@ -124,7 +124,7 @@ class Doku_Plugin_Controller { * Disable the plugin * * @param string $plugin name of plugin - * @return bool; true saving succeed, false saving failed + * @return bool true saving succeed, false saving failed */ public function disable($plugin) { if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false; @@ -136,7 +136,7 @@ class Doku_Plugin_Controller { * Enable the plugin * * @param string $plugin name of plugin - * @return bool; true saving succeed, false saving failed + * @return bool true saving succeed, false saving failed */ public function enable($plugin) { if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false; @@ -172,23 +172,7 @@ class Doku_Plugin_Controller { if ($plugin[0] == '.') continue; // skip hidden entries if (is_file(DOKU_PLUGIN.$plugin)) continue; // skip files, we're only interested in directories - if (substr($plugin,-9) == '.disabled') { - // the plugin was disabled by rc2009-01-26 - // disabling mechanism was changed back very soon again - // to keep everything simple we just skip the plugin completely - continue; - } elseif (@file_exists(DOKU_PLUGIN.$plugin.'/disabled')) { - // treat this as a default disabled plugin(over-rideable by the plugin manager) - // deprecated 2011-09-10 (usage of disabled files) - if (empty($this->plugin_cascade['local'][$plugin])) { - $all_plugins[$plugin] = 0; - } else { - $all_plugins[$plugin] = 1; - } - $this->plugin_cascade['default'][$plugin] = 0; - - } elseif ((array_key_exists($plugin,$this->tmp_plugins) && $this->tmp_plugins[$plugin] == 0) || - ($plugin === 'plugin' && isset($conf['pluginmanager']) && !$conf['pluginmanager'])){ + if (array_key_exists($plugin,$this->tmp_plugins) && $this->tmp_plugins[$plugin] == 0){ $all_plugins[$plugin] = 0; } elseif ((array_key_exists($plugin,$this->tmp_plugins) && $this->tmp_plugins[$plugin] == 1)) { @@ -227,7 +211,7 @@ class Doku_Plugin_Controller { * @param bool $forceSave; * false to save only when config changed * true to always save - * @return bool; true saving succeed, false saving failed + * @return bool true saving succeed, false saving failed */ protected function saveList($forceSave = false) { global $conf; @@ -240,14 +224,14 @@ class Doku_Plugin_Controller { $file = $this->last_local_config_file; $out = " $value) { $out .= "\$plugins['$plugin'] = $value;\n"; } // backup current file (remove any existing backup) - if (@file_exists($file)) { + if (file_exists($file)) { $backup = $file.'.bak'; - if (@file_exists($backup)) @unlink($backup); + if (file_exists($backup)) @unlink($backup); if (!@copy($file,$backup)) return false; if (!empty($conf['fperm'])) chmod($backup, $conf['fperm']); } @@ -280,7 +264,7 @@ class Doku_Plugin_Controller { /** * Build the list of plugins and cascade - * + * */ protected function loadConfig() { global $config_cascade; @@ -300,35 +284,37 @@ class Doku_Plugin_Controller { /** * Returns a list of available plugin components of given type * - * @param string $type, plugin_type name; - * the type of plugin to return, - * @param bool $enabled; - * true to return enabled plugins, - * false to return disabled plugins - * + * @param string $type plugin_type name; the type of plugin to return, + * @param bool $enabled true to return enabled plugins, + * false to return disabled plugins * @return array of plugin components of requested type */ protected function _getListByType($type, $enabled) { $master_list = $enabled ? array_keys(array_filter($this->tmp_plugins)) : array_keys(array_filter($this->tmp_plugins,array($this,'negate'))); - $plugins = array(); - foreach ($master_list as $plugin) { - $dir = $this->get_directory($plugin); - if (@file_exists(DOKU_PLUGIN."$dir/$type.php")){ + foreach ($master_list as $plugin) { + + $basedir = $this->get_directory($plugin); + if (file_exists(DOKU_PLUGIN."$basedir/$type.php")){ $plugins[] = $plugin; - } else { - if ($dp = @opendir(DOKU_PLUGIN."$dir/$type/")) { + continue; + } + + $typedir = DOKU_PLUGIN."$basedir/$type/"; + if (is_dir($typedir)) { + if ($dp = opendir($typedir)) { while (false !== ($component = readdir($dp))) { if (substr($component,0,1) == '.' || strtolower(substr($component, -4)) != ".php") continue; - if (is_file(DOKU_PLUGIN."$dir/$type/$component")) { + if (is_file($typedir.$component)) { $plugins[] = $plugin.'_'.substr($component, 0, -4); } } closedir($dp); } } - } + + }//foreach return $plugins; } diff --git a/dokuwiki/inc/pluginutils.php b/dokuwiki/inc/pluginutils.php index 911c4e5c..60f79869 100644 --- a/dokuwiki/inc/pluginutils.php +++ b/dokuwiki/inc/pluginutils.php @@ -49,7 +49,7 @@ function plugin_load($type,$name,$new=false,$disabled=false) { * Whether plugin is disabled * * @param string $plugin name of plugin - * @return bool; true disabled, false enabled + * @return bool true disabled, false enabled */ function plugin_isdisabled($plugin) { /** @var $plugin_controller Doku_Plugin_Controller */ @@ -61,7 +61,7 @@ function plugin_isdisabled($plugin) { * Enable the plugin * * @param string $plugin name of plugin - * @return bool; true saving succeed, false saving failed + * @return bool true saving succeed, false saving failed */ function plugin_enable($plugin) { /** @var $plugin_controller Doku_Plugin_Controller */ @@ -73,7 +73,7 @@ function plugin_enable($plugin) { * Disable the plugin * * @param string $plugin name of plugin - * @return bool; true saving succeed, false saving failed + * @return bool true saving succeed, false saving failed */ function plugin_disable($plugin) { /** @var $plugin_controller Doku_Plugin_Controller */ @@ -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/dokuwiki/inc/remote.php b/dokuwiki/inc/remote.php index e27aa74f..2d2e327c 100644 --- a/dokuwiki/inc/remote.php +++ b/dokuwiki/inc/remote.php @@ -60,6 +60,9 @@ class RemoteAPI { private $dateTransformation; private $fileTransformation; + /** + * constructor + */ public function __construct() { $this->dateTransformation = array($this, 'dummyTransformation'); $this->fileTransformation = array($this, 'dummyTransformation'); @@ -75,7 +78,7 @@ class RemoteAPI { } /** - * call a method via remote api. + * Call a method via remote api. * * @param string $method name of the method to call. * @param array $args arguments to pass to the given method @@ -85,7 +88,7 @@ class RemoteAPI { if ($args === null) { $args = array(); } - list($type, $pluginName, $call) = explode('.', $method, 3); + list($type, $pluginName, /* $call */) = explode('.', $method, 3); if ($type === 'plugin') { return $this->callPlugin($pluginName, $method, $args); } @@ -95,11 +98,25 @@ class RemoteAPI { return $this->callCustomCallPlugin($method, $args); } + /** + * Check existance of core methods + * + * @param string $name name of the method + * @return bool if method exists + */ private function coreMethodExist($name) { $coreMethods = $this->getCoreMethods(); return array_key_exists($name, $coreMethods); } + /** + * Try to call custom methods provided by plugins + * + * @param string $method name of method + * @param array $args + * @return mixed + * @throws RemoteException if method not exists + */ private function callCustomCallPlugin($method, $args) { $customCalls = $this->getCustomCallPlugins(); if (!array_key_exists($method, $customCalls)) { @@ -109,6 +126,12 @@ class RemoteAPI { return $this->callPlugin($customCall[0], $customCall[1], $args); } + /** + * Returns plugin calls that are registered via RPC_CALL_ADD action + * + * @return array with pairs of custom plugin calls + * @triggers RPC_CALL_ADD + */ private function getCustomCallPlugins() { if ($this->pluginCustomCalls === null) { $data = array(); @@ -118,6 +141,15 @@ class RemoteAPI { return $this->pluginCustomCalls; } + /** + * Call a plugin method + * + * @param string $pluginName + * @param string $method method name + * @param array $args + * @return mixed return of custom method + * @throws RemoteException + */ private function callPlugin($pluginName, $method, $args) { $plugin = plugin_load('remote', $pluginName); $methods = $this->getPluginMethods(); @@ -129,6 +161,14 @@ class RemoteAPI { return call_user_func_array(array($plugin, $name), $args); } + /** + * Call a core method + * + * @param string $method name of method + * @param array $args + * @return mixed + * @throws RemoteException if method not exist + */ private function callCoreMethod($method, $args) { $coreMethods = $this->getCoreMethods(); $this->checkAccess($coreMethods[$method]); @@ -139,6 +179,11 @@ class RemoteAPI { return call_user_func_array(array($this->coreMethods, $this->getMethodName($coreMethods, $method)), $args); } + /** + * Check if access should be checked + * + * @param array $methodMeta data about the method + */ private function checkAccess($methodMeta) { if (!isset($methodMeta['public'])) { $this->forceAccess(); @@ -149,12 +194,26 @@ class RemoteAPI { } } - private function checkArgumentLength($method, $args) { - if (count($method['args']) < count($args)) { + /** + * Check the number of parameters + * + * @param array $methodMeta data about the method + * @param array $args + * @throws RemoteException if wrong parameter count + */ + private function checkArgumentLength($methodMeta, $args) { + if (count($methodMeta['args']) < count($args)) { throw new RemoteException('Method does not exist - wrong parameter count.', -32603); } } + /** + * Determine the name of the real method + * + * @param array $methodMeta list of data of the methods + * @param string $method name of method + * @return string + */ private function getMethodName($methodMeta, $method) { if (isset($methodMeta[$method]['name'])) { return $methodMeta[$method]['name']; @@ -164,7 +223,10 @@ class RemoteAPI { } /** + * Perform access check for current user + * * @return bool true if the current user has access to remote api. + * @throws RemoteAccessDeniedException If remote access disabled */ public function hasAccess() { global $conf; @@ -173,6 +235,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']) { @@ -186,8 +251,10 @@ class RemoteAPI { } /** - * @throws RemoteException On denied access. + * Requests access + * * @return void + * @throws RemoteException On denied access. */ public function forceAccess() { if (!$this->hasAccess()) { @@ -196,7 +263,10 @@ class RemoteAPI { } /** + * Collects all the methods of the enabled Remote Plugins + * * @return array all plugin methods. + * @throws RemoteException if not implemented */ public function getPluginMethods() { if ($this->pluginMethods === null) { @@ -204,6 +274,7 @@ class RemoteAPI { $plugins = plugin_list('remote'); foreach ($plugins as $pluginName) { + /** @var DokuWiki_Remote_Plugin $plugin */ $plugin = plugin_load('remote', $pluginName); if (!is_subclass_of($plugin, 'DokuWiki_Remote_Plugin')) { throw new RemoteException("Plugin $pluginName does not implement DokuWiki_Remote_Plugin"); @@ -219,6 +290,8 @@ class RemoteAPI { } /** + * Collects all the core methods + * * @param RemoteAPICore $apiCore this parameter is used for testing. Here you can pass a non-default RemoteAPICore * instance. (for mocking) * @return array all core methods. @@ -234,22 +307,50 @@ class RemoteAPI { return $this->coreMethods->__getRemoteInfo(); } + /** + * Transform file to xml + * + * @param mixed $data + * @return mixed + */ public function toFile($data) { return call_user_func($this->fileTransformation, $data); } + /** + * Transform date to xml + * + * @param mixed $data + * @return mixed + */ public function toDate($data) { return call_user_func($this->dateTransformation, $data); } + /** + * A simple transformation + * + * @param mixed $data + * @return mixed + */ public function dummyTransformation($data) { return $data; } + /** + * Set the transformer function + * + * @param callback $dateTransformation + */ public function setDateTransformation($dateTransformation) { $this->dateTransformation = $dateTransformation; } + /** + * Set the transformer function + * + * @param callback $fileTransformation + */ public function setFileTransformation($fileTransformation) { $this->fileTransformation = $fileTransformation; } diff --git a/dokuwiki/inc/search.php b/dokuwiki/inc/search.php index 5489dc2c..cc3579c3 100644 --- a/dokuwiki/inc/search.php +++ b/dokuwiki/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; @@ -134,6 +139,11 @@ function search_namespaces(&$data,$base,$file,$type,$lvl,$opts){ /** * List all mediafiles in a namespace + * $opts['depth'] recursion level, 0 for all + * $opts['showmsg'] shows message if invalid media id is used + * $opts['skipacl'] skip acl checking + * $opts['pattern'] check given pattern + * $opts['hash'] add hashes to result list * * @author Andreas Gohr */ @@ -258,6 +268,7 @@ function search_allpages(&$data,$base,$file,$type,$lvl,$opts){ //only search txt files if(substr($file,-4) != '.txt') return true; + $item = array(); $item['id'] = pathID($file); if(!$opts['skipacl'] && auth_quickaclcheck($item['id']) < AUTH_READ){ return false; diff --git a/dokuwiki/inc/subscription.php b/dokuwiki/inc/subscription.php index aab6de92..74bec656 100644 --- a/dokuwiki/inc/subscription.php +++ b/dokuwiki/inc/subscription.php @@ -166,7 +166,7 @@ class Subscription { // Handle files. $result = array(); foreach($files as $target => $file) { - if(!@file_exists($file)) continue; + if(!file_exists($file)) continue; $lines = file($file); foreach($lines as $line) { @@ -444,17 +444,17 @@ class Subscription { * Send the diff for some media change * * @fixme this should embed thumbnails of images in HTML version + * * @param string $subscriber_mail The target mail address * @param string $template Mail template ('uploadmail', ...) * @param string $id Media file for which the notification is * @param int|bool $rev Old revision if any - * @return bool true if successfully sent */ public function send_media_diff($subscriber_mail, $template, $id, $rev = false) { global $conf; $file = mediaFN($id); - list($mime, $ext) = mimetype($id); + list($mime, /* $ext */) = mimetype($id); $trep = array( 'MIME' => $mime, @@ -515,7 +515,7 @@ class Subscription { * @author Adrian Lang * * @param string $subscriber_mail The target mail address - * @param array $id The ID + * @param string $id The ID * @param int $lastupdate Time of the last notification * @return bool */ @@ -619,6 +619,7 @@ class Subscription { /** * Get a valid message id for a certain $id and revision (or the current revision) + * * @param string $id The id of the page (or media file) the message id should be for * @param string $rev The revision of the page, set to the current revision of the page $id if not set * @return string @@ -690,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/dokuwiki/inc/template.php b/dokuwiki/inc/template.php index 31a65ce6..3c0f1f45 100644 --- a/dokuwiki/inc/template.php +++ b/dokuwiki/inc/template.php @@ -68,6 +68,7 @@ function tpl_basedir($tpl='') { * handled by this function. ACL stuff is not done here either. * * @author Andreas Gohr + * * @triggers TPL_ACT_RENDER * @triggers TPL_CONTENT_DISPLAY * @param bool $prependTOC should the TOC be displayed here? @@ -170,8 +171,9 @@ function tpl_content_core() { break; default: $evt = new Doku_Event('TPL_ACT_UNKNOWN', $ACT); - if($evt->advise_before()) + if($evt->advise_before()) { msg("Failed to handle command: ".hsc($ACT), -1); + } $evt->advise_after(); unset($evt); return false; @@ -186,6 +188,7 @@ function tpl_content_core() { * a false argument * * @author Andreas Gohr + * * @param bool $return Should the TOC be returned instead to be printed? * @return string */ @@ -204,7 +207,7 @@ function tpl_toc($return = false) { $toc = $TOC; } elseif(($ACT == 'show' || substr($ACT, 0, 6) == 'export') && !$REV && $INFO['exists']) { // get TOC from metadata, render if neccessary - $meta = p_get_metadata($ID, false, METADATA_RENDER_USING_CACHE); + $meta = p_get_metadata($ID, '', METADATA_RENDER_USING_CACHE); if(isset($meta['internal']['toc'])) { $tocok = $meta['internal']['toc']; } else { @@ -215,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 } @@ -243,6 +237,8 @@ function tpl_toc($return = false) { * Handle the admin page contents * * @author Andreas Gohr + * + * @return bool */ function tpl_admin() { global $INFO; @@ -266,7 +262,8 @@ function tpl_admin() { if($INFO['prependTOC']) tpl_toc(); $plugin->html(); } else { - html_admin(); + $admin = new dokuwiki\Ui\Admin(); + $admin->show(); } return true; } @@ -277,6 +274,7 @@ function tpl_admin() { * This has to go into the head section of your template. * * @author Andreas Gohr + * * @triggers TPL_METAHEADER_OUTPUT * @param bool $alt Should feeds and alternative format links be added? * @return bool @@ -300,15 +298,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( @@ -396,7 +398,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 @@ -408,10 +410,18 @@ function tpl_metaheaders($alt = true) { $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; $head['script'][] = array('type'=> 'text/javascript', '_data'=> $script); - // load external javascript + // load jquery + $jquery = getCdnUrls(); + foreach($jquery as $src) { + $head['script'][] = array( + 'type' => 'text/javascript', 'charset' => 'utf-8', '_data' => '', 'src' => $src + ); + } + + // load our javascript dispatcher $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 @@ -426,13 +436,18 @@ function tpl_metaheaders($alt = true) { * instances. Attributes are given as key value pairs. Values will be HTML * encoded automatically so they should be provided as is in the $data array. * - * For tags having a body attribute specify the the body data in the special + * For tags having a body attribute specify the body data in the special * attribute '_data'. This field will NOT BE ESCAPED automatically. * * @author Andreas Gohr + * + * @param array $data */ function _tpl_metaheaders_action($data) { foreach($data as $tag => $inst) { + if($tag == 'script') { + echo "\n"; // no scripts for old IE + } foreach($inst as $attr) { echo '<', $tag, ' ', buildAttributes($attr); if(isset($attr['_data']) || $tag == 'script') { @@ -447,6 +462,9 @@ function _tpl_metaheaders_action($data) { } echo "\n"; } + if($tag == 'script') { + echo "\n"; + } } } @@ -460,7 +478,7 @@ function _tpl_metaheaders_action($data) { * @param string $url * @param string $name * @param string $more - * @param bool $return if true return the link html, otherwise print + * @param bool $return if true return the link html, otherwise print * @return bool|string html of the link, or true if printed */ function tpl_link($url, $name, $more = '', $return = false) { @@ -480,7 +498,7 @@ function tpl_link($url, $name, $more = '', $return = false) { * @author Andreas Gohr * * @param string $id page id - * @param string|null $name link name + * @param string|null $name the name of the link * @return bool true */ function tpl_pagelink($id, $name = null) { @@ -495,6 +513,9 @@ function tpl_pagelink($id, $name = null) { * returns false if none is available * * @author Andreas Gohr + * + * @param string $id page id + * @return false|string */ function tpl_getparent($id) { $parent = getNS($id).':'; @@ -513,6 +534,10 @@ function tpl_getparent($id) { * * @author Adrian Lang * @see tpl_get_action + * + * @param string $type + * @param bool $return + * @return bool|string html, or false if no data, true if printed */ function tpl_button($type, $return = false) { $data = tpl_get_action($type); @@ -545,12 +570,12 @@ function tpl_button($type, $return = false) { * @author Adrian Lang * @see tpl_get_action * - * @param string $type action name - * @param string $pre prefix of link - * @param string $suf suffix of link - * @param string $inner inner HTML for link - * @param bool $return if true it returns html, otherwise prints - * @return bool|string html of action link or false if nothing, or true if printed + * @param string $type action command + * @param string $pre prefix of link + * @param string $suf suffix of link + * @param string $inner innerHML of link + * @param bool $return if true it returns html, otherwise prints + * @return bool|string html or false if no data, true if printed */ function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = false) { global $lang; @@ -616,6 +641,7 @@ function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = fals * @author Andreas Gohr * @author Matthias Grimm * @author Adrian Lang + * * @param string $type * @return array|bool|string */ @@ -639,6 +665,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 @@ -763,22 +791,37 @@ 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; } /** * Wrapper around tpl_button() and tpl_actionlink() * * @author Anika Henke - * @param - * @param bool $link link or form button? - * @param bool $wrapper HTML element wrapper - * @param bool $return return or print - * @param string $pre prefix for links - * @param string $suf suffix for links - * @param string $inner inner HTML for links + * + * @param string $type action command + * @param bool $link link or form button? + * @param string|bool $wrapper HTML element wrapper + * @param bool $return return or print + * @param string $pre prefix for links + * @param string $suf suffix for links + * @param string $inner inner HTML for links * @return bool|string */ function tpl_action($type, $link = false, $wrapper = false, $return = false, $pre = '', $suf = '', $inner = '') { @@ -806,6 +849,7 @@ function tpl_action($type, $link = false, $wrapper = false, $return = false, $pr * autocompletion feature (MSIE and Firefox) * * @author Andreas Gohr + * * @param bool $ajax * @param bool $autocomplete * @return bool @@ -822,9 +866,10 @@ function tpl_searchform($ajax = true, $autocomplete = true) { print ''; print ''; - print ''; + print ''; if($ajax) print '
          '; print ''; return true; @@ -834,6 +879,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) { * Print the breadcrumbs trace * * @author Andreas Gohr + * * @param string $sep Separator between entries * @return bool */ @@ -875,6 +921,7 @@ function tpl_breadcrumbs($sep = '•') { * @author Sean Coates * @author * @todo May behave strangely in RTL languages + * * @param string $sep Separator between entries * @return bool */ @@ -925,6 +972,7 @@ function tpl_youarehere($sep = ' » ') { * Could be enhanced with a profile link in future? * * @author Andreas Gohr + * * @return bool */ function tpl_userinfo() { @@ -943,6 +991,7 @@ function tpl_userinfo() { * Print some info about the current page * * @author Andreas Gohr + * * @param bool $ret return content instead of printing it * @return bool|string */ @@ -961,9 +1010,9 @@ function tpl_pageinfo($ret = false) { $fn = $INFO['filepath']; if(!$conf['fullpath']) { if($INFO['rev']) { - $fn = str_replace(fullpath($conf['olddir']).'/', '', $fn); + $fn = str_replace($conf['olddir'].'/', '', $fn); } else { - $fn = str_replace(fullpath($conf['datadir']).'/', '', $fn); + $fn = str_replace($conf['datadir'].'/', '', $fn); } } $fn = utf8_decodeFN($fn); @@ -1006,11 +1055,14 @@ function tpl_pageinfo($ret = false) { * the given ID is used. * * @author Andreas Gohr + * * @param string $id page id * @param bool $ret return content instead of printing * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { + global $ACT, $INPUT, $conf, $lang; + if(is_null($id)) { global $ID; $id = $ID; @@ -1018,14 +1070,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; } } @@ -1043,9 +1141,10 @@ function tpl_pagetitle($id = null, $ret = false) { * Only allowed in: detail.php * * @author Andreas Gohr - * @param array|string $tags tag or array of tags to try - * @param string $alt alternative output if no data was found - * @param null $src the image src, uses global $SRC if not given + * + * @param array|string $tags tag or array of tags to try + * @param string $alt alternative output if no data was found + * @param null|string $src the image src, uses global $SRC if not given * @return string */ function tpl_img_getTag($tags, $alt = '', $src = null) { @@ -1100,7 +1199,7 @@ function tpl_get_img_meta() { $config_files = getConfigFiles('mediameta'); foreach ($config_files as $config_file) { - if(@file_exists($config_file)) { + if(file_exists($config_file)) { include($config_file); } } @@ -1133,15 +1232,15 @@ function tpl_get_img_meta() { * @param $maxheight int - maximal height of the image * @param $link bool - link to the orginal size? * @param $params array - additional image attributes - * @return mixed Result of TPL_IMG_DISPLAY + * @return bool Result of TPL_IMG_DISPLAY */ function tpl_img($maxwidth = 0, $maxheight = 0, $link = true, $params = null) { global $IMG; /** @var Input $INPUT */ global $INPUT; global $REV; - $w = tpl_img_getTag('File.Width'); - $h = tpl_img_getTag('File.Height'); + $w = (int) tpl_img_getTag('File.Width'); + $h = (int) tpl_img_getTag('File.Height'); //resize to given max values $ratio = 1; @@ -1273,7 +1372,7 @@ function tpl_loadConfig() { $file = tpl_incdir().'/conf/default.php'; $conf = array(); - if(!@file_exists($file)) return false; + if(!file_exists($file)) return false; // load default config file include($file); @@ -1286,6 +1385,9 @@ function tpl_loadConfig() { * tpl_getLang($id) * * use this function to access template language variables + * + * @param string $id key of language string + * @return string */ function tpl_getLang($id) { static $lang = array(); @@ -1300,7 +1402,7 @@ function tpl_getLang($id) { // don't include once @include($path . 'en/lang.php'); foreach($config_cascade['lang']['template'] as $config_file) { - if(@file_exists($config_file . $conf['template'] . '/en/lang.php')) { + if(file_exists($config_file . $conf['template'] . '/en/lang.php')) { include($config_file . $conf['template'] . '/en/lang.php'); } } @@ -1308,7 +1410,7 @@ function tpl_getLang($id) { if($conf['lang'] != 'en') { @include($path . $conf['lang'] . '/lang.php'); foreach($config_cascade['lang']['template'] as $config_file) { - if(@file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) { + if(file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) { include($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php'); } } @@ -1330,14 +1432,17 @@ function tpl_locale_xhtml($id) { /** * Prepends appropriate path for a language dependent filename + * + * @param string $id id of localized text + * @return string wiki text */ function tpl_localeFN($id) { $path = tpl_incdir().'lang/'; global $conf; $file = DOKU_CONF.'template_lang/'.$conf['template'].'/'.$conf['lang'].'/'.$id.'.txt'; - if (!@file_exists($file)){ + if (!file_exists($file)){ $file = $path.$conf['lang'].'/'.$id.'.txt'; - if(!@file_exists($file)){ + if(!file_exists($file)){ //fall back to english $file = $path.'en/'.$id.'.txt'; } @@ -1346,7 +1451,7 @@ function tpl_localeFN($id) { } /** - * prints the "main content" in the mediamanger popup + * prints the "main content" in the mediamanager popup * * Depending on the user's actions this may be a list of * files in a namespace, the meta editing dialog or @@ -1357,6 +1462,7 @@ function tpl_localeFN($id) { * @triggers MEDIAMANAGER_CONTENT_OUTPUT * @param bool $fromajax - set true when calling this function via ajax * @param string $sort + * * @author Andreas Gohr */ function tpl_mediaContent($fromajax = false, $sort='natural') { @@ -1512,7 +1618,7 @@ function tpl_mediaFileDetails($image, $rev) { } /** - * prints the namespace tree in the mediamanger popup + * prints the namespace tree in the mediamanager popup * * Only allowed in mediamanager.php * @@ -1531,6 +1637,9 @@ function tpl_mediaTree() { * Note: this will not use any pretty URLs * * @author Andreas Gohr + * + * @param string $empty empty option label + * @param string $button submit button label */ function tpl_actiondropdown($empty = '', $button = '>') { global $ID; @@ -1539,6 +1648,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 '
          '; echo '
          '; echo ''; @@ -1550,50 +1665,17 @@ function tpl_actiondropdown($empty = '', $button = '>') { echo ''; - echo ''; + echo ''; echo '
          '; echo '
          '; } @@ -1644,18 +1726,27 @@ function tpl_license($img = 'badge', $imgonly = false, $return = false, $wrap = * * This function is useful to populate sidebars or similar features in a * template + * + * @param string $pageid The page name you want to include + * @param bool $print Should the content be printed or returned only + * @param bool $propagate Search higher namespaces, too? + * @param bool $useacl Include the page only if the ACLs check out? + * @return bool|null|string */ -function tpl_include_page($pageid, $print = true, $propagate = false) { - if (!$pageid) return false; - if ($propagate) $pageid = page_findnearest($pageid); +function tpl_include_page($pageid, $print = true, $propagate = false, $useacl = true) { + if($propagate) { + $pageid = page_findnearest($pageid, $useacl); + } elseif($useacl && auth_quickaclcheck($pageid) == AUTH_NONE) { + return false; + } + if(!$pageid) return false; global $TOC; $oldtoc = $TOC; $html = p_wiki_xhtml($pageid, '', false); $TOC = $oldtoc; - if(!$print) return $html; - echo $html; + if($print) echo $html; return $html; } @@ -1752,10 +1843,11 @@ function tpl_flush() { * If a given location starts with a colon it is assumed to be a media * file, otherwise it is assumed to be relative to the current template * - * @param array $search locations to look at - * @param bool $abs if to use absolute URL - * @param array &$imginfo filled with getimagesize() + * @param string[] $search locations to look at + * @param bool $abs if to use absolute URL + * @param array &$imginfo filled with getimagesize() * @return string + * * @author Andreas Gohr */ function tpl_getMediaFile($search, $abs = false, &$imginfo = null) { @@ -1806,6 +1898,8 @@ function tpl_getMediaFile($search, $abs = false, &$imginfo = null) { * * @author Anika Henke * @author Andreas Gohr + * + * @param string $file */ function tpl_includeFile($file) { global $config_cascade; @@ -1831,6 +1925,7 @@ function tpl_includeFile($file) { * Returns tag for various icon types (favicon|mobile|generic) * * @author Anika Henke + * * @param array $types - list of icon types to display (favicon|mobile|generic) * @return string */ @@ -1906,6 +2001,8 @@ function tpl_media() { * Return useful layout classes * * @author Anika Henke + * + * @return string */ function tpl_classes() { global $ACT, $conf, $ID, $INFO; @@ -1923,5 +2020,27 @@ function tpl_classes() { return join(' ', $classes); } +/** + * Create event for tools menues + * + * @author Anika Henke + * @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/dokuwiki/inc/utf8.php b/dokuwiki/inc/utf8.php index c944667f..794db2bb 100644 --- a/dokuwiki/inc/utf8.php +++ b/dokuwiki/inc/utf8.php @@ -43,6 +43,9 @@ if(!function_exists('utf8_isASCII')){ * Checks if a string contains 7bit ASCII only * * @author Andreas Haerter + * + * @param string $str + * @return bool */ function utf8_isASCII($str){ return (preg_match('/(?:[^\x00-\x7F])/', $str) !== 1); @@ -56,6 +59,9 @@ if(!function_exists('utf8_strip')){ * Returns a pure ASCII7 string * * @author Andreas Gohr + * + * @param string $str + * @return string */ function utf8_strip($str){ $ascii = ''; @@ -74,7 +80,10 @@ if(!function_exists('utf8_check')){ * Tries to detect if a string is in Unicode encoding * * @author - * @link http://www.php.net/manual/en/function.utf8-encode.php + * @link http://php.net/manual/en/function.utf8-encode.php + * + * @param string $Str + * @return bool */ function utf8_check($Str) { $len = strlen($Str); @@ -105,6 +114,7 @@ if(!function_exists('utf8_basename')){ * * @see basename() * @link https://bugs.php.net/bug.php?id=37738 + * * @param string $path A path * @param string $suffix If the name component ends in suffix this will also be cut off * @return string @@ -134,6 +144,9 @@ if(!function_exists('utf8_strlen')){ * @author * @see strlen() * @see utf8_decode() + * + * @param string $string + * @return int */ function utf8_strlen($string){ return strlen(utf8_decode($string)); @@ -148,10 +161,11 @@ if(!function_exists('utf8_substr')){ * * @author Harry Fuecks * @author Chris Smith + * * @param string $str * @param int $offset number of UTF-8 characters offset (from left) * @param int $length (optional) length in UTF-8 characters from offset - * @return mixed string or false if failure + * @return string */ function utf8_substr($str, $offset, $length = null) { if(UTF8_MBSTRING){ @@ -250,6 +264,14 @@ if(!function_exists('utf8_substr_replace')){ * * @author Andreas Gohr * @see substr_replace() + * + * @param string $string input string + * @param string $replacement the replacement + * @param int $start the replacing will begin at the start'th offset into string. + * @param int $length If given and is positive, it represents the length of the portion of string which is + * to be replaced. If length is zero then this function will have the effect of inserting + * replacement into string at the given start offset. + * @return string */ function utf8_substr_replace($string, $replacement, $start , $length=0 ){ $ret = ''; @@ -266,6 +288,7 @@ if(!function_exists('utf8_ltrim')){ * * @author Andreas Gohr * @see ltrim() + * * @param string $str * @param string $charlist * @return string @@ -286,6 +309,7 @@ if(!function_exists('utf8_rtrim')){ * * @author Andreas Gohr * @see rtrim() + * * @param string $str * @param string $charlist * @return string @@ -306,6 +330,7 @@ if(!function_exists('utf8_trim')){ * * @author Andreas Gohr * @see trim() + * * @param string $str * @param string $charlist * @return string @@ -326,10 +351,17 @@ if(!function_exists('utf8_strtolower')){ * @author Leo Feyer * @see strtolower() * @see utf8_strtoupper() + * + * @param string $string + * @return string */ function utf8_strtolower($string){ - if(UTF8_MBSTRING) return mb_strtolower($string,'utf-8'); - + if(UTF8_MBSTRING) { + if (class_exists("Normalizer", $autoload = false)) + return normalizer::normalize(mb_strtolower($string,'utf-8')); + else + return (mb_strtolower($string,'utf-8')); + } global $UTF8_UPPER_TO_LOWER; return strtr($string,$UTF8_UPPER_TO_LOWER); } @@ -344,6 +376,9 @@ if(!function_exists('utf8_strtoupper')){ * @author Leo Feyer * @see strtoupper() * @see utf8_strtoupper() + * + * @param string $string + * @return string */ function utf8_strtoupper($string){ if(UTF8_MBSTRING) return mb_strtoupper($string,'utf-8'); @@ -359,7 +394,8 @@ if(!function_exists('utf8_ucfirst')){ * Make a string's first character uppercase * * @author Harry Fuecks - * @param string + * + * @param string $str * @return string with first character as upper case (if applicable) */ function utf8_ucfirst($str){ @@ -381,14 +417,15 @@ if(!function_exists('utf8_ucwords')){ * Uppercase the first character of each word in a string * * @author Harry Fuecks - * @param string + * @see http://php.net/ucwords + * + * @param string $str * @return string with first char of each word uppercase - * @see http://www.php.net/ucwords */ function utf8_ucwords($str) { // Note: [\x0c\x09\x0b\x0a\x0d\x20] matches; // form feeds, horizontal tabs, vertical tabs, linefeeds and carriage returns - // This corresponds to the definition of a "word" defined at http://www.php.net/ucwords + // This corresponds to the definition of a "word" defined at http://php.net/ucwords $pattern = '/(^|([\x0c\x09\x0b\x0a\x0d\x20]+))([^\x0c\x09\x0b\x0a\x0d\x20]{1})[^\x0c\x09\x0b\x0a\x0d\x20]*/u'; return preg_replace_callback($pattern, 'utf8_ucwords_callback',$str); @@ -399,10 +436,11 @@ if(!function_exists('utf8_ucwords')){ * You don't need to call this yourself * * @author Harry Fuecks - * @param array $matches matches corresponding to a single word - * @return string with first char of the word in uppercase * @see utf8_ucwords * @see utf8_strtoupper + * + * @param array $matches matches corresponding to a single word + * @return string with first char of the word in uppercase */ function utf8_ucwords_callback($matches) { $leadingws = $matches[2]; @@ -420,6 +458,10 @@ if(!function_exists('utf8_deaccent')){ * letters. Default is to deaccent both cases ($case = 0) * * @author Andreas Gohr + * + * @param string $string + * @param int $case + * @return string */ function utf8_deaccent($string,$case=0){ if($case <= 0){ @@ -439,6 +481,9 @@ if(!function_exists('utf8_romanize')){ * Romanize a non-latin string * * @author Andreas Gohr + * + * @param string $string + * @return string */ function utf8_romanize($string){ if(utf8_isASCII($string)) return $string; //nothing to do @@ -456,6 +501,7 @@ if(!function_exists('utf8_stripspecials')){ * stripped chars (they are not included in $UTF8_SPECIAL_CHARS) * * @author Andreas Gohr + * * @param string $string The UTF8 string to strip of special chars * @param string $repl Replace special with this string * @param string $additional Additional chars to strip (used in regexp char class) @@ -480,9 +526,10 @@ if(!function_exists('utf8_strpos')){ * * @author Leo Feyer * @see strpos() - * @param string - * @param string - * @param integer + * + * @param string $haystack + * @param string $needle + * @param integer $offset * @return integer */ function utf8_strpos($haystack, $needle, $offset=0){ @@ -511,7 +558,10 @@ if(!function_exists('utf8_tohtml')){ * * @author Tom N Harris * @author - * @link http://www.php.net/manual/en/function.utf8-decode.php + * @link http://php.net/manual/en/function.utf8-decode.php + * + * @param string $str + * @return string */ function utf8_tohtml ($str) { $ret = ''; @@ -542,6 +592,7 @@ if(!function_exists('utf8_unhtml')){ * what it should be -> "&&#38;" * * @author Tom N Harris + * * @param string $str UTF-8 encoded string * @param boolean $entities Flag controlling decoding of named entities. * @return string UTF-8 encoded string with numeric (and named) entities replaced. @@ -564,7 +615,7 @@ if(!function_exists('utf8_decode_numeric')){ * Decodes numeric HTML entities to their correct UTF-8 characters * * @param $ent string A numeric entity - * @return string + * @return string|false */ function utf8_decode_numeric($ent) { switch ($ent[2]) { @@ -597,10 +648,10 @@ if(!class_exists('utf8_entity_decoder')){ } /** - * Wrapper aorund unicode_to_utf8() + * Wrapper around unicode_to_utf8() * - * @param $c string - * @return mixed + * @param string $c + * @return string|false */ function makeutf8($c) { return unicode_to_utf8(array(ord($c))); @@ -609,8 +660,8 @@ if(!class_exists('utf8_entity_decoder')){ /** * Decodes any HTML entity to it's correct UTF-8 char equivalent * - * @param $ent string An entity - * @return string + * @param string $ent An entity + * @return string|false */ function decode($ent) { if ($ent[1] == '#') { @@ -640,12 +691,13 @@ if(!function_exists('utf8_to_unicode')){ * * @author * @author Harry Fuecks - * @param string $str UTF-8 encoded string - * @param boolean $strict Check for invalid sequences? - * @return mixed array of unicode code points or false if UTF-8 invalid * @see unicode_to_utf8 * @link http://hsivonen.iki.fi/php-utf8/ * @link http://sourceforge.net/projects/phputf8/ + * + * @param string $str UTF-8 encoded string + * @param boolean $strict Check for invalid sequences? + * @return mixed array of unicode code points or false if UTF-8 invalid */ function utf8_to_unicode($str,$strict=false) { $mState = 0; // cached expected number of octets after the current octet @@ -815,7 +867,8 @@ if(!function_exists('unicode_to_utf8')){ * * @param array $arr of unicode code points representing a string * @param boolean $strict Check for invalid sequences? - * @return mixed UTF-8 string or false if array contains invalid code points + * @return string|false UTF-8 string or false if array contains invalid code points + * * @author * @author Harry Fuecks * @see utf8_to_unicode @@ -896,6 +949,10 @@ if(!function_exists('utf8_to_utf16be')){ * UTF-8 to UTF-16BE conversion. * * Maybe really UCS-2 without mb_string due to utf8_to_unicode limits + * + * @param string $str + * @param bool $bom + * @return string */ function utf8_to_utf16be(&$str, $bom = false) { $out = $bom ? "\xFE\xFF" : ''; @@ -914,6 +971,9 @@ if(!function_exists('utf16be_to_utf8')){ * UTF-8 to UTF-16BE conversion. * * Maybe really UCS-2 without mb_string due to utf8_to_unicode limits + * + * @param string $str + * @return false|string */ function utf16be_to_utf8(&$str) { $uni = unpack('n*',$str); @@ -933,6 +993,7 @@ if(!function_exists('utf8_bad_replace')){ * * @author Harry Fuecks * @see http://www.w3.org/International/questions/qa-forms-utf-8 + * * @param string $str to search * @param string $replace to replace bad bytes with (defaults to '?') - use ASCII * @return string @@ -967,8 +1028,8 @@ if(!function_exists('utf8_correctIdx')){ /** * adjust a byte index into a utf8 string to a utf8 character boundary * - * @param $str string utf8 character string - * @param $i int byte index into $str + * @param string $str utf8 character string + * @param int $i byte index into $str * @param $next bool direction to search for boundary, * false = up (current character) * true = down (next character) @@ -1009,11 +1070,11 @@ if(!UTF8_MBSTRING){ "z"=>"Z","ï½™"=>"ï¼¹","x"=>"X","ï½—"=>"ï¼·","ï½–"=>"ï¼¶","u"=>"ï¼µ","ï½”"=>"ï¼´","s"=>"ï¼³","ï½’"=>"ï¼²","q"=>"ï¼±", "ï½"=>"ï¼°","ï½"=>"O","n"=>"ï¼®","ï½"=>"ï¼­","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"ï¼§", "f"=>"F","ï½…"=>"ï¼¥","d"=>"D","c"=>"ï¼£","b"=>"ï¼¢","ï½"=>"A","ῳ"=>"ῼ","á¿¥"=>"Ῥ","á¿¡"=>"á¿©","á¿‘"=>"á¿™", - "á¿"=>"Ῐ","ῃ"=>"ῌ","á¾¾"=>"Ι","á¾³"=>"á¾¼","á¾±"=>"á¾¹","á¾°"=>"Ᾰ","á¾§"=>"ᾯ","ᾦ"=>"á¾®","á¾¥"=>"á¾­","ᾤ"=>"ᾬ", + "á¿"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","á¾³"=>"á¾¼","á¾±"=>"á¾¹","á¾°"=>"Ᾰ","á¾§"=>"ᾯ","ᾦ"=>"á¾®","á¾¥"=>"á¾­","ᾤ"=>"ᾬ", "á¾£"=>"ᾫ","á¾¢"=>"ᾪ","ᾡ"=>"ᾩ","á¾—"=>"ᾟ","á¾–"=>"ᾞ","ᾕ"=>"á¾","á¾”"=>"ᾜ","ᾓ"=>"á¾›","á¾’"=>"ᾚ","ᾑ"=>"á¾™", - "á¾"=>"ᾘ","ᾇ"=>"á¾","ᾆ"=>"ᾎ","á¾…"=>"á¾","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","á¾"=>"ᾉ","á¾€"=>"ᾈ","á½½"=>"á¿»", - "á½¼"=>"Ὼ","á½»"=>"á¿«","ὺ"=>"Ὺ","á½¹"=>"Ό","ὸ"=>"Ὸ","á½·"=>"á¿›","á½¶"=>"Ὶ","á½µ"=>"á¿‹","á½´"=>"Ὴ","á½³"=>"Έ", - "á½²"=>"Ὲ","á½±"=>"á¾»","á½°"=>"Ὰ","á½§"=>"Ὧ","ὦ"=>"á½®","á½¥"=>"á½­","ὤ"=>"Ὤ","á½£"=>"Ὣ","á½¢"=>"Ὢ","ὡ"=>"Ὡ", + "á¾"=>"ᾘ","ᾇ"=>"á¾","ᾆ"=>"ᾎ","á¾…"=>"á¾","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","á¾"=>"ᾉ","á¾€"=>"ᾈ","ÏŽ"=>"Î", + "á½¼"=>"Ὼ","Ï"=>"ÎŽ","ὺ"=>"Ὺ","ÏŒ"=>"ÎŒ","ὸ"=>"Ὸ","ί"=>"Ί","á½¶"=>"Ὶ","ή"=>"Ή","á½´"=>"Ὴ","έ"=>"Έ", + "á½²"=>"Ὲ","ά"=>"Ά","á½°"=>"Ὰ","á½§"=>"Ὧ","ὦ"=>"á½®","á½¥"=>"á½­","ὤ"=>"Ὤ","á½£"=>"Ὣ","á½¢"=>"Ὢ","ὡ"=>"Ὡ", "á½—"=>"Ὗ","ὕ"=>"á½","ὓ"=>"á½›","ὑ"=>"á½™","á½…"=>"á½","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","á½"=>"Ὁ","á½€"=>"Ὀ", "á¼·"=>"Ἷ","á¼¶"=>"á¼¾","á¼µ"=>"á¼½","á¼´"=>"á¼¼","á¼³"=>"á¼»","á¼²"=>"Ἲ","á¼±"=>"á¼¹","á¼°"=>"Ἰ","á¼§"=>"Ἧ","ἦ"=>"á¼®", "á¼¥"=>"á¼­","ἤ"=>"Ἤ","á¼£"=>"Ἣ","á¼¢"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"á¼","á¼”"=>"Ἔ","ἓ"=>"á¼›","á¼’"=>"Ἒ","ἑ"=>"á¼™", @@ -1088,11 +1149,11 @@ if(!UTF8_MBSTRING){ "Z"=>"z","ï¼¹"=>"ï½™","X"=>"x","ï¼·"=>"ï½—","ï¼¶"=>"ï½–","ï¼µ"=>"u","ï¼´"=>"ï½”","ï¼³"=>"s","ï¼²"=>"ï½’","ï¼±"=>"q", "ï¼°"=>"ï½","O"=>"ï½","ï¼®"=>"n","ï¼­"=>"ï½","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","ï¼§"=>"g", "F"=>"f","ï¼¥"=>"ï½…","D"=>"d","ï¼£"=>"c","ï¼¢"=>"b","A"=>"ï½","ῼ"=>"ῳ","Ῥ"=>"á¿¥","á¿©"=>"á¿¡","á¿™"=>"á¿‘", - "Ῐ"=>"á¿","ῌ"=>"ῃ","Ι"=>"á¾¾","á¾¼"=>"á¾³","á¾¹"=>"á¾±","Ᾰ"=>"á¾°","ᾯ"=>"á¾§","á¾®"=>"ᾦ","á¾­"=>"á¾¥","ᾬ"=>"ᾤ", + "Ῐ"=>"á¿","ῌ"=>"ῃ","Ι"=>"ι","á¾¼"=>"á¾³","á¾¹"=>"á¾±","Ᾰ"=>"á¾°","ᾯ"=>"á¾§","á¾®"=>"ᾦ","á¾­"=>"á¾¥","ᾬ"=>"ᾤ", "ᾫ"=>"á¾£","ᾪ"=>"á¾¢","ᾩ"=>"ᾡ","ᾟ"=>"á¾—","ᾞ"=>"á¾–","á¾"=>"ᾕ","ᾜ"=>"á¾”","á¾›"=>"ᾓ","ᾚ"=>"á¾’","á¾™"=>"ᾑ", - "ᾘ"=>"á¾","á¾"=>"ᾇ","ᾎ"=>"ᾆ","á¾"=>"á¾…","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"á¾","ᾈ"=>"á¾€","á¿»"=>"á½½", - "Ὼ"=>"á½¼","á¿«"=>"á½»","Ὺ"=>"ὺ","Ό"=>"á½¹","Ὸ"=>"ὸ","á¿›"=>"á½·","Ὶ"=>"á½¶","á¿‹"=>"á½µ","Ὴ"=>"á½´","Έ"=>"á½³", - "Ὲ"=>"á½²","á¾»"=>"á½±","Ὰ"=>"á½°","Ὧ"=>"á½§","á½®"=>"ὦ","á½­"=>"á½¥","Ὤ"=>"ὤ","Ὣ"=>"á½£","Ὢ"=>"á½¢","Ὡ"=>"ὡ", + "ᾘ"=>"á¾","á¾"=>"ᾇ","ᾎ"=>"ᾆ","á¾"=>"á¾…","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"á¾","ᾈ"=>"á¾€","Î"=>"ÏŽ", + "Ὼ"=>"á½¼","ÎŽ"=>"Ï","Ὺ"=>"ὺ","ÎŒ"=>"ÏŒ","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"á½¶","Ή"=>"ή","Ὴ"=>"á½´","Έ"=>"έ", + "Ὲ"=>"á½²","Ά"=>"ά","Ὰ"=>"á½°","Ὧ"=>"á½§","á½®"=>"ὦ","á½­"=>"á½¥","Ὤ"=>"ὤ","Ὣ"=>"á½£","Ὢ"=>"á½¢","Ὡ"=>"ὡ", "Ὗ"=>"á½—","á½"=>"ὕ","á½›"=>"ὓ","á½™"=>"ὑ","á½"=>"á½…","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"á½","Ὀ"=>"á½€", "Ἷ"=>"á¼·","á¼¾"=>"á¼¶","á¼½"=>"á¼µ","á¼¼"=>"á¼´","á¼»"=>"á¼³","Ἲ"=>"á¼²","á¼¹"=>"á¼±","Ἰ"=>"á¼°","Ἧ"=>"á¼§","á¼®"=>"ἦ", "á¼­"=>"á¼¥","Ἤ"=>"ἤ","Ἣ"=>"á¼£","Ἢ"=>"á¼¢","Ἡ"=>"ἡ","á¼"=>"ἕ","Ἔ"=>"á¼”","á¼›"=>"ἓ","Ἒ"=>"á¼’","á¼™"=>"ἑ", @@ -1298,11 +1359,11 @@ global $UTF8_SPECIAL_CHARS2; if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 = "\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€Â‚ƒ„…†‡ˆ‰Š‹ŒÂŽ‘’“”•�'. '�—˜™š›œÂžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½�'. - '�¿×÷ˇ˘˙˚˛˜ËÌ€Ị̀̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. + '�¿×÷ˇ˘˙˚˛˜Ẹ̈̀Ì̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. '�×ׂ׃׳״،؛؟ـًٌÙÙŽÙÙّْ٪฿‌â€â€Žâ€â€“—―‗‘’‚“â€ï¿½'. - '��†‡•…‰′″‹›â„₧₪₫€№℘™Ωℵâ†â†‘→↓↔↕↵'. + '��†‡•…‰′″‹›â„₧₪₫€№℘™Ωℵâ†â†‘→↓↔↕↵'. 'â‡â‡‘⇒⇓⇔∀∂∃∅∆∇∈∉∋âˆâˆ‘−∕∗∙√âˆâˆžâˆ âˆ§âˆ¨ï¿½'. - '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅âŒâŒ âŒ¡âŒ©âŒªâ‘©â”€ï¿½'. + '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅âŒâŒ âŒ¡ã€ˆã€‰â‘©â”€ï¿½'. '��┌â”└┘├┤┬┴┼â•║╒╓╔╕╖╗╘╙╚╛╜â•╞╟╠'. '╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌â–░▒▓■▲▼◆◊â—�'. '�★☎☛☞♠♣♥♦âœâœ‚✃✄✆✇✈✉✌âœâœŽâœâœâœ‘✒✓✔✕�'. diff --git a/dokuwiki/index.php b/dokuwiki/index.php index ad080772..689ce177 100644 --- a/dokuwiki/index.php +++ b/dokuwiki/index.php @@ -1,8 +1,68 @@ */ -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/dokuwiki/install.php b/dokuwiki/install.php new file mode 100644 index 00000000..69e44704 --- /dev/null +++ b/dokuwiki/install.php @@ -0,0 +1,644 @@ + + */ + +if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/'); +if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/'); +if(!defined('DOKU_LOCAL')) define('DOKU_LOCAL',DOKU_INC.'conf/'); + +// load and initialize the core system +require_once(DOKU_INC.'inc/init.php'); + +// check for error reporting override or set error reporting to sane values +if (!defined('DOKU_E_LEVEL')) { error_reporting(E_ALL ^ E_NOTICE); } +else { error_reporting(DOKU_E_LEVEL); } + +// kill magic quotes +if (get_magic_quotes_gpc() && !defined('MAGIC_QUOTES_STRIPPED')) { + if (!empty($_GET)) remove_magic_quotes($_GET); + if (!empty($_POST)) remove_magic_quotes($_POST); + if (!empty($_COOKIE)) remove_magic_quotes($_COOKIE); + if (!empty($_REQUEST)) remove_magic_quotes($_REQUEST); + @ini_set('magic_quotes_gpc', 0); + define('MAGIC_QUOTES_STRIPPED',1); +} +if (function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0); +@ini_set('magic_quotes_sybase',0); + +// language strings +require_once(DOKU_INC.'inc/lang/en/lang.php'); +if(isset($_REQUEST['l']) && !is_array($_REQUEST['l'])) { + $LC = preg_replace('/[^a-z\-]+/','',$_REQUEST['l']); +} +if(empty($LC)) $LC = 'en'; +if($LC && $LC != 'en' ) { + require_once(DOKU_INC.'inc/lang/'.$LC.'/lang.php'); +} + +// initialise variables ... +$error = array(); + +$dokuwiki_hash = array( + '2005-09-22' => 'e33223e957b0b0a130d0520db08f8fb7', + '2006-03-05' => '51295727f79ab9af309a2fd9e0b61acc', + '2006-03-09' => '51295727f79ab9af309a2fd9e0b61acc', + '2006-11-06' => 'b3a8af76845977c2000d85d6990dd72b', + '2007-05-24' => 'd80f2740c84c4a6a791fd3c7a353536f', + '2007-06-26' => 'b3ca19c7a654823144119980be73cd77', + '2008-05-04' => '1e5c42eac3219d9e21927c39e3240aad', + '2009-02-14' => 'ec8c04210732a14fdfce0f7f6eead865', + '2009-12-25' => '993c4b2b385643efe5abf8e7010e11f4', + '2010-11-07' => '7921d48195f4db21b8ead6d9bea801b8', + '2011-05-25' => '4241865472edb6fa14a1227721008072', + '2011-11-10' => 'b46ff19a7587966ac4df61cbab1b8b31', + '2012-01-25' => '72c083c73608fc43c586901fd5dabb74', + '2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3', + '2013-05-10' => '7b62b75245f57f122d3e0f8ed7989623', + '2013-12-08' => '263c76af309fbf083867c18a34ff5214', + '2014-05-05' => '263c76af309fbf083867c18a34ff5214', + '2015-08-10' => '263c76af309fbf083867c18a34ff5214', + '2016-06-26' => 'fd3abb6d89853dacb032907e619fbd73', + '2017-02-19' => 'e4f2f5a34c9dbcd96a5ecc8f2df25bd9' +); + + +// begin output +header('Content-Type: text/html; charset=utf-8'); +?> + + + + + <?php echo $lang['i_installer']?> + + + + +

          + + +

          +
          + +
          +
          + +
          + \n"; + include(DOKU_INC.'inc/lang/en/install.html'); + print "
          \n"; + } + ?> + + + +
          + '.$lang['i_problems'].'

          '; + print_errors(); + print_retry(); + }elseif(!check_configs()){ + echo '

          '.$lang['i_modified'].'

          '; + print_errors(); + }elseif(check_data($_REQUEST['d'])){ + // check_data has sanitized all input parameters + if(!store_data($_REQUEST['d'])){ + echo '

          '.$lang['i_failure'].'

          '; + print_errors(); + }else{ + echo '

          '.$lang['i_success'].'

          '; + } + }else{ + print_errors(); + print_form($_REQUEST['d']); + } + ?> +
          + + +
          + driven by DokuWiki + powered by PHP +
          + + + +
          + +
          + + +
          + + +
          + + + + + + + + + + + + + + + + + + + +
          +
          + +
          +

          + $lang['i_license_none'], 'url'=>'')); + if(empty($d['license'])) $d['license'] = 'cc-by-sa'; + foreach($license as $key => $lic){ + echo ''; + } + ?> +
          + +
          +

          + +
          + +
          +
          + +
          +
          + +
          +
          + + +
          +
          + '', + 'acl' => '1', + 'superuser' => '', + 'fullname' => '', + 'email' => '', + 'password' => '', + 'confirm' => '', + 'policy' => '0', + 'allowreg' => '0', + 'license' => 'cc-by-sa' + ); + global $lang; + global $error; + + if(!is_array($d)) $d = array(); + foreach($d as $k => $v) { + if(is_array($v)) + unset($d[$k]); + else + $d[$k] = (string)$v; + } + + //autolowercase the username + $d['superuser'] = isset($d['superuser']) ? strtolower($d['superuser']) : ""; + + $ok = false; + + if(isset($_REQUEST['submit'])) { + $ok = true; + + // check input + if(empty($d['title'])){ + $error[] = sprintf($lang['i_badval'],$lang['i_wikiname']); + $ok = false; + } + if(isset($d['acl'])){ + if(!preg_match('/^[a-z0-9_]+$/',$d['superuser'])){ + $error[] = sprintf($lang['i_badval'],$lang['i_superuser']); + $ok = false; + } + if(empty($d['password'])){ + $error[] = sprintf($lang['i_badval'],$lang['pass']); + $ok = false; + } + elseif(!isset($d['confirm']) || $d['confirm'] != $d['password']){ + $error[] = sprintf($lang['i_badval'],$lang['passchk']); + $ok = false; + } + if(empty($d['fullname']) || strstr($d['fullname'],':')){ + $error[] = sprintf($lang['i_badval'],$lang['fullname']); + $ok = false; + } + if(empty($d['email']) || strstr($d['email'],':') || !strstr($d['email'],'@')){ + $error[] = sprintf($lang['i_badval'],$lang['email']); + $ok = false; + } + } + } + $d = array_merge($form_default, $d); + return $ok; +} + +/** + * Writes the data to the config files + * + * @author Chris Smith + * + * @param array $d + * @return bool + */ +function store_data($d){ + global $LC; + $ok = true; + $d['policy'] = (int) $d['policy']; + + // create local.php + $now = gmdate('r'); + $output = <<hash_smd5($d['password']); + + // create users.auth.php + // --- user:SMD5password:Real Name:email:groups,comma,seperated + $output = join(":",array($d['superuser'], $pass, $d['fullname'], $d['email'], 'admin,user')); + $output = @file_get_contents(DOKU_CONF.'users.auth.php.dist')."\n$output\n"; + $ok = $ok && fileWrite(DOKU_LOCAL.'users.auth.php', $output); + + // create acl.auth.php + $output = << +# Don't modify the lines above +# +# Access Control Lists +# +# Auto-generated by install script +# Date: $now + +EOT; + if($d['policy'] == 2){ + $output .= "* @ALL 0\n"; + $output .= "* @user 8\n"; + }elseif($d['policy'] == 1){ + $output .= "* @ALL 1\n"; + $output .= "* @user 8\n"; + }else{ + $output .= "* @ALL 8\n"; + } + $ok = $ok && fileWrite(DOKU_LOCAL.'acl.auth.php', $output); + } + + // enable popularity submission + if($d['pop']){ + @touch(DOKU_INC.'data/cache/autosubmit.txt'); + } + + // disable auth plugins til needed + $output = << + * + * @param string $filename + * @param string $data + * @return bool + */ +function fileWrite($filename, $data) { + global $error; + global $lang; + + if (($fp = @fopen($filename, 'wb')) === false) { + $filename = str_replace($_SERVER['DOCUMENT_ROOT'],'{DOCUMENT_ROOT}/', $filename); + $error[] = sprintf($lang['i_writeerr'],$filename); + return false; + } + + if (!empty($data)) { fwrite($fp, $data); } + fclose($fp); + return true; +} + + +/** + * check installation dependent local config files and tests for a known + * unmodified main config file + * + * @author Chris Smith + * + * @return bool + */ +function check_configs(){ + global $error; + global $lang; + global $dokuwiki_hash; + + $ok = true; + + $config_files = array( + 'local' => DOKU_LOCAL.'local.php', + 'users' => DOKU_LOCAL.'users.auth.php', + 'auth' => DOKU_LOCAL.'acl.auth.php' + ); + + // main dokuwiki config file (conf/dokuwiki.php) must not have been modified + $installation_hash = md5(preg_replace("/(\015\012)|(\015)/","\012", + @file_get_contents(DOKU_CONF.'dokuwiki.php'))); + if (!in_array($installation_hash, $dokuwiki_hash)) { + $error[] = sprintf($lang['i_badhash'],$installation_hash); + $ok = false; + } + + // configs shouldn't exist + foreach ($config_files as $file) { + if (file_exists($file) && filesize($file)) { + $file = str_replace($_SERVER['DOCUMENT_ROOT'],'{DOCUMENT_ROOT}/', $file); + $error[] = sprintf($lang['i_confexists'],$file); + $ok = false; + } + } + return $ok; +} + + +/** + * Check other installation dir/file permission requirements + * + * @author Chris Smith + * + * @return bool + */ +function check_permissions(){ + global $error; + global $lang; + + $dirs = array( + 'conf' => DOKU_LOCAL, + 'data' => DOKU_INC.'data', + 'pages' => DOKU_INC.'data/pages', + 'attic' => DOKU_INC.'data/attic', + 'media' => DOKU_INC.'data/media', + 'media_attic' => DOKU_INC.'data/media_attic', + 'media_meta' => DOKU_INC.'data/media_meta', + 'meta' => DOKU_INC.'data/meta', + 'cache' => DOKU_INC.'data/cache', + 'locks' => DOKU_INC.'data/locks', + 'index' => DOKU_INC.'data/index', + 'tmp' => DOKU_INC.'data/tmp' + ); + + $ok = true; + foreach($dirs as $dir){ + if(!file_exists("$dir/.") || !is_writable($dir)){ + $dir = str_replace($_SERVER['DOCUMENT_ROOT'],'{DOCUMENT_ROOT}', $dir); + $error[] = sprintf($lang['i_permfail'],$dir); + $ok = false; + } + } + return $ok; +} + +/** + * Check the availability of functions used in DokuWiki and the PHP version + * + * @author Andreas Gohr + * + * @return bool + */ +function check_functions(){ + global $error; + global $lang; + $ok = true; + + if(version_compare(phpversion(),'5.3.3','<')){ + $error[] = sprintf($lang['i_phpver'],phpversion(),'5.3.3'); + $ok = false; + } + + if(ini_get('mbstring.func_overload') != 0){ + $error[] = $lang['i_mbfuncoverload']; + $ok = false; + } + + $funcs = explode(' ','addslashes call_user_func chmod copy fgets '. + 'file file_exists fseek flush filesize ftell fopen '. + 'glob header ignore_user_abort ini_get mail mkdir '. + 'ob_start opendir parse_ini_file readfile realpath '. + 'rename rmdir serialize session_start unlink usleep '. + 'preg_replace file_get_contents htmlspecialchars_decode '. + 'spl_autoload_register stream_select fsockopen pack'); + + if (!function_exists('mb_substr')) { + $funcs[] = 'utf8_encode'; + $funcs[] = 'utf8_decode'; + } + + foreach($funcs as $func){ + if(!function_exists($func)){ + $error[] = sprintf($lang['i_funcna'],$func); + $ok = false; + } + } + return $ok; +} + +/** + * Print language selection + * + * @author Andreas Gohr + */ +function langsel(){ + global $lang; + global $LC; + + $dir = DOKU_INC.'inc/lang'; + $dh = opendir($dir); + if(!$dh) return; + + $langs = array(); + while (($file = readdir($dh)) !== false) { + if(preg_match('/^[\._]/',$file)) continue; + if(is_dir($dir.'/'.$file) && file_exists($dir.'/'.$file.'/lang.php')){ + $langs[] = $file; + } + } + closedir($dh); + sort($langs); + + echo '
          '; + echo $lang['i_chooselang']; + echo ': '; + echo ''; + echo '
          '; +} + +/** + * Print global error array + * + * @author Andreas Gohr + */ +function print_errors(){ + global $error; + if(!empty($error)) { + echo '
            '; + foreach ($error as $err){ + echo "
          • $err
          • "; + } + echo '
          '; + } +} diff --git a/dokuwiki/lib/exe/ajax.php b/dokuwiki/lib/exe/ajax.php index a200a3de..b3e9a618 100644 --- a/dokuwiki/lib/exe/ajax.php +++ b/dokuwiki/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 ''.$name.''; - if($item['title']){ + if(!blank($item['title'])){ echo ''.htmlspecialchars($item['title']).''; } echo ''; diff --git a/dokuwiki/lib/exe/css.php b/dokuwiki/lib/exe/css.php index 6c1d6075..81e6a39b 100644 --- a/dokuwiki/lib/exe/css.php +++ b/dokuwiki/lib/exe/css.php @@ -45,23 +45,18 @@ function css_out(){ 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); - - // if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility - if (isset($config_cascade['userstyle']['default'])) { - $config_cascade['userstyle']['screen'] = $config_cascade['userstyle']['default']; - } + $styleini = css_styleini($tpl, $INPUT->bool('preview')); // cache influencers $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 @@ -82,8 +77,10 @@ function css_out(){ $files[$mediatype] = array_merge($files[$mediatype], $styleini['stylesheets'][$mediatype]); } // load user styles - if(isset($config_cascade['userstyle'][$mediatype])){ - $files[$mediatype][$config_cascade['userstyle'][$mediatype]] = DOKU_BASE; + if(!empty($config_cascade['userstyle'][$mediatype])) { + foreach($config_cascade['userstyle'][$mediatype] as $userstyle) { + $files[$mediatype][$userstyle] = DOKU_BASE; + } } $cache_files = array_merge($cache_files, array_keys($files[$mediatype])); @@ -162,12 +159,15 @@ function css_out(){ * most of this function is error handling to show a nice useful error when * LESS compilation fails * - * @param $css + * @param string $css * @return string */ function css_parseless($css) { + global $conf; + $less = new lessc(); - $less->importDir[] = DOKU_INC; + $less->importDir = array(DOKU_INC); + $less->setPreserveComments(!$conf['compress']); if (defined('DOKU_UNITTEST')){ $less->importDir[] = TMP_DIR; @@ -222,6 +222,10 @@ function css_parseless($css) { * (sans the surrounding __ and with a ini_ prefix) * * @author Andreas Gohr + * + * @param string $css + * @param array $replacements array(placeholder => value) + * @return string */ function css_applystyle($css, $replacements) { // we convert ini replacements to LESS variable names @@ -250,10 +254,14 @@ function css_applystyle($css, $replacements) { * the stylesheet modes * * @author Andreas Gohr + * * @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 @@ -275,23 +283,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"; @@ -300,16 +291,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 @@ -320,6 +324,10 @@ function css_styleini($tpl) { * Amend paths used in replacement relative urls, refer FS#2879 * * @author Chris Smith + * + * @param array $replacements with key-value pairs + * @param string $location + * @return array */ function css_fixreplacementurls($replacements, $location) { foreach($replacements as $key => $value) { @@ -351,11 +359,11 @@ function css_interwiki(){ $iwlinks = getInterwiki(); foreach(array_keys($iwlinks) as $iw){ $class = preg_replace('/[^_\-a-z0-9]+/i','_',$iw); - if(@file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.png')){ + if(file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.png')){ echo "a.iw_$class {"; echo ' background-image: url('.DOKU_BASE.'lib/images/interwiki/'.$iw.'.png)'; echo '}'; - }elseif(@file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.gif')){ + }elseif(file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.gif')){ echo "a.iw_$class {"; echo ' background-image: url('.DOKU_BASE.'lib/images/interwiki/'.$iw.'.gif)'; echo '}'; @@ -403,6 +411,10 @@ function css_filetypes(){ /** * Loads a given file and fixes relative URLs with the * given location prefix + * + * @param string $file file system path + * @param string $location + * @return string */ function css_loadfile($file,$location=''){ $css_file = new DokuCssFile($file); @@ -418,7 +430,7 @@ class DokuCssFile { protected $filepath; // file system path to the CSS/Less file protected $location; // base url location of the CSS/Less file - private $relative_path = null; + protected $relative_path = null; public function __construct($file) { $this->filepath = $file; @@ -433,7 +445,7 @@ class DokuCssFile { * @return string the CSS/Less contents of the file */ public function load($location='') { - if (!@file_exists($this->filepath)) return ''; + if (!file_exists($this->filepath)) return ''; $css = io_readFile($this->filepath); if (!$location) return $css; @@ -451,7 +463,7 @@ class DokuCssFile { * * @return string relative file system path */ - private function getRelativePath(){ + protected function getRelativePath(){ if (is_null($this->relative_path)) { $basedir = array(DOKU_INC); @@ -501,6 +513,9 @@ class DokuCssFile { * Convert local image URLs to data URLs if the filesize is small * * Callback for preg_replace_callback + * + * @param array $match + * @return string */ function css_datauri($match){ global $conf; @@ -528,9 +543,11 @@ function css_datauri($match){ * Returns a list of possible Plugin Styles (no existance check here) * * @author Andreas Gohr + * + * @param string $mediatype + * @return array */ function css_pluginstyles($mediatype='screen'){ - global $lang; $list = array(); $plugins = plugin_list(); foreach ($plugins as $p){ @@ -549,6 +566,9 @@ function css_pluginstyles($mediatype='screen'){ * Very simple CSS optimizer * * @author Andreas Gohr + * + * @param string $css + * @return string */ function css_compress($css){ //strip comments through a callback @@ -585,6 +605,9 @@ function css_compress($css){ * Keeps short comments (< 5 chars) to maintain typical browser hacks * * @author Andreas Gohr + * + * @param array $matches + * @return string */ function css_comment_cb($matches){ if(strlen($matches[2]) > 4) return ''; @@ -596,7 +619,7 @@ function css_comment_cb($matches){ * * Strips one line comments but makes sure it will not destroy url() constructs with slashes * - * @param $matches + * @param array $matches * @return string */ function css_onelinecomment_cb($matches) { diff --git a/dokuwiki/lib/exe/detail.php b/dokuwiki/lib/exe/detail.php index cc29d5b8..ec1a9b87 100644 --- a/dokuwiki/lib/exe/detail.php +++ b/dokuwiki/lib/exe/detail.php @@ -37,7 +37,7 @@ $AUTH = auth_quickaclcheck($IMG); if($AUTH >= AUTH_READ){ // check if image exists $SRC = mediaFN($IMG,$REV); - if(!@file_exists($SRC)){ + if(!file_exists($SRC)){ //doesn't exist! http_status(404); $ERROR = 'File not found'; diff --git a/dokuwiki/lib/exe/indexer.php b/dokuwiki/lib/exe/indexer.php index 3ab11773..4f60f166 100644 --- a/dokuwiki/lib/exe/indexer.php +++ b/dokuwiki/lib/exe/indexer.php @@ -51,8 +51,9 @@ exit; /** * Trims the recent changes cache (or imports the old changelog) as needed. * - * @param media_changes If the media changelog shall be trimmed instead of - * the page changelog + * @param bool $media_changes If the media changelog shall be trimmed instead of + * the page changelog + * @return bool * * @author Ben Coburn */ @@ -67,9 +68,9 @@ function runTrimRecentChanges($media_changes = false) { // Trims the recent changes cache to the last $conf['changes_days'] recent // changes or $conf['recent'] items, which ever is larger. // The trimming is only done once a day. - if (@file_exists($fn) && + if (file_exists($fn) && (@filemtime($fn.'.trimmed')+86400)useCache(array('files' => $cache_files)); + http_cached($cache->cache, $cache_ok); + + $js = ''; + foreach($files as $file) { + $js .= file_get_contents($file)."\n"; + } + stripsourcemaps($js); + + http_cached_finish($cache->cache, $js); +} diff --git a/dokuwiki/lib/exe/js.php b/dokuwiki/lib/exe/js.php index bec12ef7..ee017a41 100644 --- a/dokuwiki/lib/exe/js.php +++ b/dokuwiki/lib/exe/js.php @@ -14,7 +14,7 @@ require_once(DOKU_INC.'inc/init.php'); // Main (don't run when UNIT test) if(!defined('SIMPLE_TEST')){ - header('Content-Type: text/javascript; charset=utf-8'); + header('Content-Type: application/javascript; charset=utf-8'); js_out(); } @@ -30,20 +30,15 @@ function js_out(){ global $conf; global $lang; global $config_cascade; + global $INPUT; - // The generated script depends on some dynamic options - $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.js'); - $cache->_event = 'JS_CACHE_USE'; - - // load minified version for some files - $min = $conf['compress'] ? '.min' : ''; + // decide from where to get the template + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); + if(!$tpl) $tpl = $conf['template']; // array of core files $files = array( - DOKU_INC."lib/scripts/jquery/jquery$min.js", DOKU_INC.'lib/scripts/jquery/jquery.cookie.js', - DOKU_INC."lib/scripts/jquery/jquery-ui$min.js", - DOKU_INC."lib/scripts/jquery/jquery-migrate$min.js", DOKU_INC.'inc/lang/'.$conf['lang'].'/jquery.ui.datepicker.js', DOKU_INC."lib/scripts/fileuploader.js", DOKU_INC."lib/scripts/fileuploaderextended.js", @@ -51,11 +46,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,19 +56,28 @@ 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 $files = array_merge($files,js_pluginscripts()); - if(isset($config_cascade['userscript']['default'])){ - $files[] = $config_cascade['userscript']['default']; + if(!empty($config_cascade['userscript']['default'])) { + foreach($config_cascade['userscript']['default'] as $userscript) { + $files[] = $userscript; + } } + // Let plugins decide to either put more scripts here or to remove some + trigger_event('JS_SCRIPT_LIST', $files); + + // The generated script depends on some dynamic options + $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].md5(serialize($files)),'.js'); + $cache->_event = 'JS_CACHE_USE'; + $cache_files = array_merge($files, getConfigFiles('main')); $cache_files[] = __FILE__; @@ -90,7 +92,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'], @@ -102,7 +104,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; } @@ -154,9 +156,11 @@ function js_out(){ * Load the given file, handle include calls and print it * * @author Andreas Gohr + * + * @param string $file filename path to file */ function js_load($file){ - if(!@file_exists($file)) return; + if(!file_exists($file)) return; static $loaded = array(); $data = io_readFile($file); @@ -166,7 +170,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; } @@ -175,7 +179,7 @@ function js_load($file){ if($ifile{0} != '/') $ifile = dirname($file).'/'.$ifile; - if(@file_exists($ifile)){ + if(file_exists($ifile)){ $idata = io_readFile($ifile); }else{ $idata = ''; @@ -189,6 +193,8 @@ function js_load($file){ * Returns a list of possible Plugin Scripts (no existance check here) * * @author Andreas Gohr + * + * @return array */ function js_pluginscripts(){ $list = array(); @@ -206,20 +212,37 @@ function js_pluginscripts(){ * - Nothing is returned for plugins without an entry for $lang['js'] * * @author Gabriel Birke + * + * @return array */ function js_pluginstrings() { - global $conf; + global $conf, $config_cascade; $pluginstrings = array(); $plugins = plugin_list(); - foreach ($plugins as $p){ - if (isset($lang)) unset($lang); - if (@file_exists(DOKU_PLUGIN."$p/lang/en/lang.php")) { - include DOKU_PLUGIN."$p/lang/en/lang.php"; + foreach($plugins as $p) { + $path = DOKU_PLUGIN . $p . '/lang/'; + + if(isset($lang)) unset($lang); + if(file_exists($path . "en/lang.php")) { + include $path . "en/lang.php"; } - if (isset($conf['lang']) && $conf['lang']!='en' && @file_exists(DOKU_PLUGIN."$p/lang/".$conf['lang']."/lang.php")) { - include DOKU_PLUGIN."$p/lang/".$conf['lang']."/lang.php"; + foreach($config_cascade['lang']['plugin'] as $config_file) { + if(file_exists($config_file . $p . '/en/lang.php')) { + include($config_file . $p . '/en/lang.php'); + } } - if (isset($lang['js'])) { + if(isset($conf['lang']) && $conf['lang'] != 'en') { + if(file_exists($path . $conf['lang'] . "/lang.php")) { + include($path . $conf['lang'] . '/lang.php'); + } + foreach($config_cascade['lang']['plugin'] as $config_file) { + if(file_exists($config_file . $p . '/' . $conf['lang'] . '/lang.php')) { + include($config_file . $p . '/' . $conf['lang'] . '/lang.php'); + } + } + } + + if(isset($lang['js'])) { $pluginstrings[$p] = $lang['js']; } } @@ -231,18 +254,40 @@ 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() { - global $conf; +function js_templatestrings($tpl) { + global $conf, $config_cascade; + + $path = tpl_incdir() . 'lang/'; + $templatestrings = array(); - if (@file_exists(tpl_incdir()."lang/en/lang.php")) { - include tpl_incdir()."lang/en/lang.php"; + if(file_exists($path . "en/lang.php")) { + include $path . "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"; + foreach($config_cascade['lang']['template'] as $config_file) { + if(file_exists($config_file . $conf['template'] . '/en/lang.php')) { + include($config_file . $conf['template'] . '/en/lang.php'); + } } - if (isset($lang['js'])) { - $templatestrings[$conf['template']] = $lang['js']; + if(isset($conf['lang']) && $conf['lang'] != 'en' && file_exists($path . $conf['lang'] . "/lang.php")) { + include $path . $conf['lang'] . "/lang.php"; + } + if(isset($conf['lang']) && $conf['lang'] != 'en') { + if(file_exists($path . $conf['lang'] . "/lang.php")) { + include $path . $conf['lang'] . "/lang.php"; + } + foreach($config_cascade['lang']['template'] as $config_file) { + if(file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) { + include($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php'); + } + } + } + + if(isset($lang['js'])) { + $templatestrings[$tpl] = $lang['js']; } return $templatestrings; } @@ -252,6 +297,9 @@ function js_templatestrings() { * as newline * * @author Andreas Gohr + * + * @param string $string + * @return string */ function js_escape($string){ return str_replace('\\\\n','\\n',addslashes($string)); @@ -261,6 +309,8 @@ function js_escape($string){ * Adds the given JavaScript code to the window.onload() event * * @author Andreas Gohr + * + * @param string $func */ function js_runonstart($func){ echo "jQuery(function(){ $func; });".NL; @@ -275,6 +325,9 @@ function js_runonstart($func){ * @author Nick Galbreath * @author Andreas Gohr * @link http://code.google.com/p/jsstrip/ + * + * @param string $s + * @return string */ function js_compress($s){ $s = ltrim($s); // strip all initial whitespace @@ -289,7 +342,11 @@ function js_compress($s){ // items that don't need spaces next to them $chars = "^&|!+\-*\/%=\?:;,{}()<>% \t\n\r'\"[]"; - $regex_starters = array("(", "=", "[", "," , ":", "!"); + // items which need a space if the sign before and after whitespace is equal. + // E.g. '+ ++' may not be compressed to '+++' --> syntax error. + $ops = "+-"; + + $regex_starters = array("(", "=", "[", "," , ":", "!", "&", "|"); $whitespaces_chars = array(" ", "\t", "\n", "\r", "\0", "\x0B"); @@ -389,19 +446,27 @@ function js_compress($s){ // whitespaces if( $ch == ' ' || $ch == "\r" || $ch == "\n" || $ch == "\t" ){ - // leading spaces - if($i+1 < $slen && (strpos($chars,$s[$i+1]) !== false)){ - $i = $i + 1; - continue; - } - // trailing spaces - // if this ch is space AND the last char processed - // is special, then skip the space $lch = substr($result,-1); - if($lch && (strpos($chars,$lch) !== false)){ - $i = $i + 1; - continue; + + // Only consider deleting whitespace if the signs before and after + // are not equal and are not an operator which may not follow itself. + if ($i+1 < $slen && ((!$lch || $s[$i+1] == ' ') + || $lch != $s[$i+1] + || strpos($ops,$s[$i+1]) === false)) { + // leading spaces + if($i+1 < $slen && (strpos($chars,$s[$i+1]) !== false)){ + $i = $i + 1; + continue; + } + // trailing spaces + // if this ch is space AND the last char processed + // is special, then skip the space + if($lch && (strpos($chars,$lch) !== false)){ + $i = $i + 1; + continue; + } } + // else after all of this convert the "whitespace" to // a single space. It will get appended below $ch = ' '; diff --git a/dokuwiki/lib/exe/mediamanager.php b/dokuwiki/lib/exe/mediamanager.php index c90b6db3..72225442 100644 --- a/dokuwiki/lib/exe/mediamanager.php +++ b/dokuwiki/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); @@ -32,7 +33,8 @@ global $INFO, $JSINFO; $INFO = !empty($INFO) ? array_merge($INFO, mediainfo()) : mediainfo(); - $JSINFO = array('id' => '', 'namespace' => ''); + $JSINFO['id'] = ''; + $JSINFO['namespace'] = ''; $AUTH = $INFO['perm']; // shortcut for historical reasons $tmp = array(); diff --git a/dokuwiki/lib/exe/xmlrpc.php b/dokuwiki/lib/exe/xmlrpc.php index c09daa17..3046f47e 100644 --- a/dokuwiki/lib/exe/xmlrpc.php +++ b/dokuwiki/lib/exe/xmlrpc.php @@ -4,26 +4,31 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); require_once(DOKU_INC.'inc/init.php'); session_write_close(); //close session -if(!$conf['remote']) die('XML-RPC server not enabled.'); +if(!$conf['remote']) die((new IXR_Error(-32605, "XML-RPC server not enabled."))->getXml()); /** * Contains needed wrapper functions and registers all available * XMLRPC functions. */ class dokuwiki_xmlrpc_server extends IXR_Server { - var $remote; + protected $remote; /** * Constructor. Register methods and run Server */ - function dokuwiki_xmlrpc_server(){ + public function __construct(){ $this->remote = new RemoteAPI(); $this->remote->setDateTransformation(array($this, 'toDate')); $this->remote->setFileTransformation(array($this, 'toFile')); - $this->IXR_Server(); + parent::__construct(); } - function call($methodname, $args){ + /** + * @param string $methodname + * @param array $args + * @return IXR_Error|mixed + */ + public function call($methodname, $args){ try { $result = $this->remote->call($methodname, $args); return $result; @@ -40,11 +45,19 @@ class dokuwiki_xmlrpc_server extends IXR_Server { } } - function toDate($data) { + /** + * @param string|int $data iso date(yyyy[-]mm[-]dd[ hh:mm[:ss]]) or timestamp + * @return IXR_Date + */ + public function toDate($data) { return new IXR_Date($data); } - function toFile($data) { + /** + * @param string $data + * @return IXR_Base64 + */ + public function toFile($data) { return new IXR_Base64($data); } } diff --git a/dokuwiki/lib/images/admin/README b/dokuwiki/lib/images/admin/README index 90bab957..53e7d839 100644 --- a/dokuwiki/lib/images/admin/README +++ b/dokuwiki/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/dokuwiki/lib/images/admin/acl.png b/dokuwiki/lib/images/admin/acl.png index c8f610c1..542e1089 100644 Binary files a/dokuwiki/lib/images/admin/acl.png and b/dokuwiki/lib/images/admin/acl.png differ diff --git a/dokuwiki/lib/images/admin/config.png b/dokuwiki/lib/images/admin/config.png index 3ec3923d..679a6737 100644 Binary files a/dokuwiki/lib/images/admin/config.png and b/dokuwiki/lib/images/admin/config.png differ diff --git a/dokuwiki/lib/images/admin/plugin.png b/dokuwiki/lib/images/admin/plugin.png index f71124e5..27bd1541 100644 Binary files a/dokuwiki/lib/images/admin/plugin.png and b/dokuwiki/lib/images/admin/plugin.png differ diff --git a/dokuwiki/lib/images/admin/popularity.png b/dokuwiki/lib/images/admin/popularity.png index 19392367..e18a8cb4 100644 Binary files a/dokuwiki/lib/images/admin/popularity.png and b/dokuwiki/lib/images/admin/popularity.png differ diff --git a/dokuwiki/lib/images/admin/revert.png b/dokuwiki/lib/images/admin/revert.png index 5304f1b7..c74c7928 100644 Binary files a/dokuwiki/lib/images/admin/revert.png and b/dokuwiki/lib/images/admin/revert.png differ diff --git a/dokuwiki/lib/images/admin/styling.png b/dokuwiki/lib/images/admin/styling.png new file mode 100644 index 00000000..859c8c9e Binary files /dev/null and b/dokuwiki/lib/images/admin/styling.png differ diff --git a/dokuwiki/lib/images/admin/usermanager.png b/dokuwiki/lib/images/admin/usermanager.png index 898544ce..e6f72e07 100644 Binary files a/dokuwiki/lib/images/admin/usermanager.png and b/dokuwiki/lib/images/admin/usermanager.png differ diff --git a/dokuwiki/lib/images/bullet.png b/dokuwiki/lib/images/bullet.png index 5e557b33..b8ec60c7 100644 Binary files a/dokuwiki/lib/images/bullet.png and b/dokuwiki/lib/images/bullet.png differ diff --git a/dokuwiki/lib/images/closed-rtl.png b/dokuwiki/lib/images/closed-rtl.png index caa027e3..016a3c37 100644 Binary files a/dokuwiki/lib/images/closed-rtl.png and b/dokuwiki/lib/images/closed-rtl.png differ diff --git a/dokuwiki/lib/images/closed.png b/dokuwiki/lib/images/closed.png index e3bd0f9e..927bfc57 100644 Binary files a/dokuwiki/lib/images/closed.png and b/dokuwiki/lib/images/closed.png differ diff --git a/dokuwiki/lib/images/diff.png b/dokuwiki/lib/images/diff.png index 657b1099..04fab07b 100644 Binary files a/dokuwiki/lib/images/diff.png and b/dokuwiki/lib/images/diff.png differ diff --git a/dokuwiki/lib/images/email.png b/dokuwiki/lib/images/email.png index d1d4a5fd..575b8314 100644 Binary files a/dokuwiki/lib/images/email.png and b/dokuwiki/lib/images/email.png differ diff --git a/dokuwiki/lib/images/error.png b/dokuwiki/lib/images/error.png index 7bd84f7a..da069242 100644 Binary files a/dokuwiki/lib/images/error.png and b/dokuwiki/lib/images/error.png differ diff --git a/dokuwiki/lib/images/external-link.png b/dokuwiki/lib/images/external-link.png index a4d5de17..fecac61c 100644 Binary files a/dokuwiki/lib/images/external-link.png and b/dokuwiki/lib/images/external-link.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/7z.png b/dokuwiki/lib/images/fileicons/32x32/7z.png index 9ba7da94..2537cb96 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/7z.png and b/dokuwiki/lib/images/fileicons/32x32/7z.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/asm.png b/dokuwiki/lib/images/fileicons/32x32/asm.png index f1a1f322..17e74d0b 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/asm.png and b/dokuwiki/lib/images/fileicons/32x32/asm.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/bash.png b/dokuwiki/lib/images/fileicons/32x32/bash.png index c28404ed..a31ee688 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/bash.png and b/dokuwiki/lib/images/fileicons/32x32/bash.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/bz2.png b/dokuwiki/lib/images/fileicons/32x32/bz2.png index 7be9b7c0..c7803165 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/bz2.png and b/dokuwiki/lib/images/fileicons/32x32/bz2.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/c.png b/dokuwiki/lib/images/fileicons/32x32/c.png index 0a01f8f3..d8032d07 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/c.png and b/dokuwiki/lib/images/fileicons/32x32/c.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/cc.png b/dokuwiki/lib/images/fileicons/32x32/cc.png index b09b3357..241ebd4e 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/cc.png and b/dokuwiki/lib/images/fileicons/32x32/cc.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/conf.png b/dokuwiki/lib/images/fileicons/32x32/conf.png index 91a8a10d..9797c2ad 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/conf.png and b/dokuwiki/lib/images/fileicons/32x32/conf.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/cpp.png b/dokuwiki/lib/images/fileicons/32x32/cpp.png index 1ce35422..12890652 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/cpp.png and b/dokuwiki/lib/images/fileicons/32x32/cpp.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/cs.png b/dokuwiki/lib/images/fileicons/32x32/cs.png index d300f755..6c2aae27 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/cs.png and b/dokuwiki/lib/images/fileicons/32x32/cs.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/csh.png b/dokuwiki/lib/images/fileicons/32x32/csh.png index 72ecbcc5..e43584c7 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/csh.png and b/dokuwiki/lib/images/fileicons/32x32/csh.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/css.png b/dokuwiki/lib/images/fileicons/32x32/css.png index 63895763..786f3047 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/css.png and b/dokuwiki/lib/images/fileicons/32x32/css.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/csv.png b/dokuwiki/lib/images/fileicons/32x32/csv.png index 3ee42f04..e5cdbf94 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/csv.png and b/dokuwiki/lib/images/fileicons/32x32/csv.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/deb.png b/dokuwiki/lib/images/fileicons/32x32/deb.png index 8d625ccf..e2828a34 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/deb.png and b/dokuwiki/lib/images/fileicons/32x32/deb.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/diff.png b/dokuwiki/lib/images/fileicons/32x32/diff.png index 4dd98e7c..9e413cb6 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/diff.png and b/dokuwiki/lib/images/fileicons/32x32/diff.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/doc.png b/dokuwiki/lib/images/fileicons/32x32/doc.png index 8369c1f7..43ec3541 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/doc.png and b/dokuwiki/lib/images/fileicons/32x32/doc.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/docx.png b/dokuwiki/lib/images/fileicons/32x32/docx.png index ce5dfb3d..a25f260c 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/docx.png and b/dokuwiki/lib/images/fileicons/32x32/docx.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/file.png b/dokuwiki/lib/images/fileicons/32x32/file.png index 52318f6e..7f6d51a0 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/file.png and b/dokuwiki/lib/images/fileicons/32x32/file.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/gif.png b/dokuwiki/lib/images/fileicons/32x32/gif.png index e39af08c..dde2d841 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/gif.png and b/dokuwiki/lib/images/fileicons/32x32/gif.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/gz.png b/dokuwiki/lib/images/fileicons/32x32/gz.png index 573ce7af..5bddffb6 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/gz.png and b/dokuwiki/lib/images/fileicons/32x32/gz.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/h.png b/dokuwiki/lib/images/fileicons/32x32/h.png index 27c8ceaf..5c169a33 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/h.png and b/dokuwiki/lib/images/fileicons/32x32/h.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/hpp.png b/dokuwiki/lib/images/fileicons/32x32/hpp.png index 04876a5d..128110d5 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/hpp.png and b/dokuwiki/lib/images/fileicons/32x32/hpp.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/htm.png b/dokuwiki/lib/images/fileicons/32x32/htm.png index ec4f15ac..79096dc7 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/htm.png and b/dokuwiki/lib/images/fileicons/32x32/htm.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/html.png b/dokuwiki/lib/images/fileicons/32x32/html.png index ec4f15ac..79096dc7 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/html.png and b/dokuwiki/lib/images/fileicons/32x32/html.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ico.png b/dokuwiki/lib/images/fileicons/32x32/ico.png index 0a219e6f..60f73bd3 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ico.png and b/dokuwiki/lib/images/fileicons/32x32/ico.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/java.png b/dokuwiki/lib/images/fileicons/32x32/java.png index ee9cc4cc..1d869499 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/java.png and b/dokuwiki/lib/images/fileicons/32x32/java.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/jpeg.png b/dokuwiki/lib/images/fileicons/32x32/jpeg.png index 5fb71dd7..4b5c425a 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/jpeg.png and b/dokuwiki/lib/images/fileicons/32x32/jpeg.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/jpg.png b/dokuwiki/lib/images/fileicons/32x32/jpg.png index 5fb71dd7..4b5c425a 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/jpg.png and b/dokuwiki/lib/images/fileicons/32x32/jpg.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/js.png b/dokuwiki/lib/images/fileicons/32x32/js.png index 9bbbfb70..5a8dabe8 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/js.png and b/dokuwiki/lib/images/fileicons/32x32/js.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/json.png b/dokuwiki/lib/images/fileicons/32x32/json.png index 583ece68..e4a55e63 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/json.png and b/dokuwiki/lib/images/fileicons/32x32/json.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/lua.png b/dokuwiki/lib/images/fileicons/32x32/lua.png index 9e8fc951..c8e0bf20 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/lua.png and b/dokuwiki/lib/images/fileicons/32x32/lua.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/mp3.png b/dokuwiki/lib/images/fileicons/32x32/mp3.png index 1acd8327..9bf16955 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/mp3.png and b/dokuwiki/lib/images/fileicons/32x32/mp3.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/mp4.png b/dokuwiki/lib/images/fileicons/32x32/mp4.png index 03db6f45..071abc32 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/mp4.png and b/dokuwiki/lib/images/fileicons/32x32/mp4.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odc.png b/dokuwiki/lib/images/fileicons/32x32/odc.png index 9a34f212..3ad6a3c2 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odc.png and b/dokuwiki/lib/images/fileicons/32x32/odc.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odf.png b/dokuwiki/lib/images/fileicons/32x32/odf.png index e3b4333a..8dd89eac 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odf.png and b/dokuwiki/lib/images/fileicons/32x32/odf.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odg.png b/dokuwiki/lib/images/fileicons/32x32/odg.png index c3b192b2..7020d139 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odg.png and b/dokuwiki/lib/images/fileicons/32x32/odg.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odi.png b/dokuwiki/lib/images/fileicons/32x32/odi.png index 6baa6940..9a08a426 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odi.png and b/dokuwiki/lib/images/fileicons/32x32/odi.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odp.png b/dokuwiki/lib/images/fileicons/32x32/odp.png index 8e09dd6e..e6b538d2 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odp.png and b/dokuwiki/lib/images/fileicons/32x32/odp.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ods.png b/dokuwiki/lib/images/fileicons/32x32/ods.png index 90892f3d..cf4a226f 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ods.png and b/dokuwiki/lib/images/fileicons/32x32/ods.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/odt.png b/dokuwiki/lib/images/fileicons/32x32/odt.png index 22ec1fff..1eae19cc 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/odt.png and b/dokuwiki/lib/images/fileicons/32x32/odt.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ogg.png b/dokuwiki/lib/images/fileicons/32x32/ogg.png index f988fabc..d7b0553f 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ogg.png and b/dokuwiki/lib/images/fileicons/32x32/ogg.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ogv.png b/dokuwiki/lib/images/fileicons/32x32/ogv.png index 1083455f..4fdedbae 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ogv.png and b/dokuwiki/lib/images/fileicons/32x32/ogv.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/pas.png b/dokuwiki/lib/images/fileicons/32x32/pas.png index c2c05d2d..8d2999e9 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/pas.png and b/dokuwiki/lib/images/fileicons/32x32/pas.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/pdf.png b/dokuwiki/lib/images/fileicons/32x32/pdf.png index 0efa0dc3..09ae62e6 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/pdf.png and b/dokuwiki/lib/images/fileicons/32x32/pdf.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/php.png b/dokuwiki/lib/images/fileicons/32x32/php.png index 8f3c84e3..1f4cabf6 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/php.png and b/dokuwiki/lib/images/fileicons/32x32/php.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/pl.png b/dokuwiki/lib/images/fileicons/32x32/pl.png index 88aa2723..038e9f3a 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/pl.png and b/dokuwiki/lib/images/fileicons/32x32/pl.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/png.png b/dokuwiki/lib/images/fileicons/32x32/png.png index 0ecd2969..e3ea1c3a 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/png.png and b/dokuwiki/lib/images/fileicons/32x32/png.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ppt.png b/dokuwiki/lib/images/fileicons/32x32/ppt.png index 84b523a2..acee9457 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ppt.png and b/dokuwiki/lib/images/fileicons/32x32/ppt.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/pptx.png b/dokuwiki/lib/images/fileicons/32x32/pptx.png index 1446cf4d..b57b0917 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/pptx.png and b/dokuwiki/lib/images/fileicons/32x32/pptx.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/ps.png b/dokuwiki/lib/images/fileicons/32x32/ps.png index e1a74988..523a0be3 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/ps.png and b/dokuwiki/lib/images/fileicons/32x32/ps.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/py.png b/dokuwiki/lib/images/fileicons/32x32/py.png index cf6e412f..ae6e06ad 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/py.png and b/dokuwiki/lib/images/fileicons/32x32/py.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/rar.png b/dokuwiki/lib/images/fileicons/32x32/rar.png index 4af2a4d4..5b1cfcbe 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/rar.png and b/dokuwiki/lib/images/fileicons/32x32/rar.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/rb.png b/dokuwiki/lib/images/fileicons/32x32/rb.png index b0dfd898..398f2080 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/rb.png and b/dokuwiki/lib/images/fileicons/32x32/rb.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/rpm.png b/dokuwiki/lib/images/fileicons/32x32/rpm.png index 2ec5f4e1..c66a9074 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/rpm.png and b/dokuwiki/lib/images/fileicons/32x32/rpm.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/rtf.png b/dokuwiki/lib/images/fileicons/32x32/rtf.png index 82add4fd..43182f34 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/rtf.png and b/dokuwiki/lib/images/fileicons/32x32/rtf.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sh.png b/dokuwiki/lib/images/fileicons/32x32/sh.png index 93c093ea..52e3f952 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sh.png and b/dokuwiki/lib/images/fileicons/32x32/sh.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sql.png b/dokuwiki/lib/images/fileicons/32x32/sql.png index f6436e72..bb23e56b 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sql.png and b/dokuwiki/lib/images/fileicons/32x32/sql.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/swf.png b/dokuwiki/lib/images/fileicons/32x32/swf.png index b4364290..be8f5460 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/swf.png and b/dokuwiki/lib/images/fileicons/32x32/swf.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sxc.png b/dokuwiki/lib/images/fileicons/32x32/sxc.png index 50676be6..cc45ffa8 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sxc.png and b/dokuwiki/lib/images/fileicons/32x32/sxc.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sxd.png b/dokuwiki/lib/images/fileicons/32x32/sxd.png index f715a8ff..26f44c21 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sxd.png and b/dokuwiki/lib/images/fileicons/32x32/sxd.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sxi.png b/dokuwiki/lib/images/fileicons/32x32/sxi.png index 3d9f31d3..62e90bc9 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sxi.png and b/dokuwiki/lib/images/fileicons/32x32/sxi.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/sxw.png b/dokuwiki/lib/images/fileicons/32x32/sxw.png index bd8ab143..5196307d 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/sxw.png and b/dokuwiki/lib/images/fileicons/32x32/sxw.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/tar.png b/dokuwiki/lib/images/fileicons/32x32/tar.png index 4a420a22..8eb0ef48 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/tar.png and b/dokuwiki/lib/images/fileicons/32x32/tar.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/tgz.png b/dokuwiki/lib/images/fileicons/32x32/tgz.png index 8cf6af41..77faacb9 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/tgz.png and b/dokuwiki/lib/images/fileicons/32x32/tgz.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/txt.png b/dokuwiki/lib/images/fileicons/32x32/txt.png index d9ff7d59..5d09e3c9 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/txt.png and b/dokuwiki/lib/images/fileicons/32x32/txt.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/wav.png b/dokuwiki/lib/images/fileicons/32x32/wav.png index c39a8445..37b871be 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/wav.png and b/dokuwiki/lib/images/fileicons/32x32/wav.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/webm.png b/dokuwiki/lib/images/fileicons/32x32/webm.png index 99b9c87b..9044845b 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/webm.png and b/dokuwiki/lib/images/fileicons/32x32/webm.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/xls.png b/dokuwiki/lib/images/fileicons/32x32/xls.png index 7447d9cd..1c21a6ed 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/xls.png and b/dokuwiki/lib/images/fileicons/32x32/xls.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/xlsx.png b/dokuwiki/lib/images/fileicons/32x32/xlsx.png index 92021726..cba5937a 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/xlsx.png and b/dokuwiki/lib/images/fileicons/32x32/xlsx.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/xml.png b/dokuwiki/lib/images/fileicons/32x32/xml.png index 4ea3b1f6..8eee5839 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/xml.png and b/dokuwiki/lib/images/fileicons/32x32/xml.png differ diff --git a/dokuwiki/lib/images/fileicons/32x32/zip.png b/dokuwiki/lib/images/fileicons/32x32/zip.png index f07d18e2..0ce83b6b 100644 Binary files a/dokuwiki/lib/images/fileicons/32x32/zip.png and b/dokuwiki/lib/images/fileicons/32x32/zip.png differ diff --git a/dokuwiki/lib/images/fileicons/7z.png b/dokuwiki/lib/images/fileicons/7z.png index 037cd73a..fa6abe35 100644 Binary files a/dokuwiki/lib/images/fileicons/7z.png and b/dokuwiki/lib/images/fileicons/7z.png differ diff --git a/dokuwiki/lib/images/fileicons/asm.png b/dokuwiki/lib/images/fileicons/asm.png index 1281e12b..c22c451a 100644 Binary files a/dokuwiki/lib/images/fileicons/asm.png and b/dokuwiki/lib/images/fileicons/asm.png differ diff --git a/dokuwiki/lib/images/fileicons/bash.png b/dokuwiki/lib/images/fileicons/bash.png index 25758464..f352cfdb 100644 Binary files a/dokuwiki/lib/images/fileicons/bash.png and b/dokuwiki/lib/images/fileicons/bash.png differ diff --git a/dokuwiki/lib/images/fileicons/bz2.png b/dokuwiki/lib/images/fileicons/bz2.png index a4bcc70a..a1b048fc 100644 Binary files a/dokuwiki/lib/images/fileicons/bz2.png and b/dokuwiki/lib/images/fileicons/bz2.png differ diff --git a/dokuwiki/lib/images/fileicons/c.png b/dokuwiki/lib/images/fileicons/c.png index f0d4e9aa..51d9c7f1 100644 Binary files a/dokuwiki/lib/images/fileicons/c.png and b/dokuwiki/lib/images/fileicons/c.png differ diff --git a/dokuwiki/lib/images/fileicons/cc.png b/dokuwiki/lib/images/fileicons/cc.png index e6f4c645..8aeae79e 100644 Binary files a/dokuwiki/lib/images/fileicons/cc.png and b/dokuwiki/lib/images/fileicons/cc.png differ diff --git a/dokuwiki/lib/images/fileicons/conf.png b/dokuwiki/lib/images/fileicons/conf.png index 94ace02c..c845d496 100644 Binary files a/dokuwiki/lib/images/fileicons/conf.png and b/dokuwiki/lib/images/fileicons/conf.png differ diff --git a/dokuwiki/lib/images/fileicons/cpp.png b/dokuwiki/lib/images/fileicons/cpp.png index 4027e4be..1a04c329 100644 Binary files a/dokuwiki/lib/images/fileicons/cpp.png and b/dokuwiki/lib/images/fileicons/cpp.png differ diff --git a/dokuwiki/lib/images/fileicons/cs.png b/dokuwiki/lib/images/fileicons/cs.png index 31b7f766..740725a3 100644 Binary files a/dokuwiki/lib/images/fileicons/cs.png and b/dokuwiki/lib/images/fileicons/cs.png differ diff --git a/dokuwiki/lib/images/fileicons/csh.png b/dokuwiki/lib/images/fileicons/csh.png index cc21e799..c0131c5f 100644 Binary files a/dokuwiki/lib/images/fileicons/csh.png and b/dokuwiki/lib/images/fileicons/csh.png differ diff --git a/dokuwiki/lib/images/fileicons/css.png b/dokuwiki/lib/images/fileicons/css.png index abd16fa8..89ac3647 100644 Binary files a/dokuwiki/lib/images/fileicons/css.png and b/dokuwiki/lib/images/fileicons/css.png differ diff --git a/dokuwiki/lib/images/fileicons/csv.png b/dokuwiki/lib/images/fileicons/csv.png index af37ba57..837ae295 100644 Binary files a/dokuwiki/lib/images/fileicons/csv.png and b/dokuwiki/lib/images/fileicons/csv.png differ diff --git a/dokuwiki/lib/images/fileicons/deb.png b/dokuwiki/lib/images/fileicons/deb.png index 9eb29019..1db6fa5b 100644 Binary files a/dokuwiki/lib/images/fileicons/deb.png and b/dokuwiki/lib/images/fileicons/deb.png differ diff --git a/dokuwiki/lib/images/fileicons/diff.png b/dokuwiki/lib/images/fileicons/diff.png index 1775da01..03e9af94 100644 Binary files a/dokuwiki/lib/images/fileicons/diff.png and b/dokuwiki/lib/images/fileicons/diff.png differ diff --git a/dokuwiki/lib/images/fileicons/doc.png b/dokuwiki/lib/images/fileicons/doc.png index 92549457..dcc070f4 100644 Binary files a/dokuwiki/lib/images/fileicons/doc.png and b/dokuwiki/lib/images/fileicons/doc.png differ diff --git a/dokuwiki/lib/images/fileicons/docx.png b/dokuwiki/lib/images/fileicons/docx.png index 5bae13f9..1a98a8d4 100644 Binary files a/dokuwiki/lib/images/fileicons/docx.png and b/dokuwiki/lib/images/fileicons/docx.png differ diff --git a/dokuwiki/lib/images/fileicons/file.png b/dokuwiki/lib/images/fileicons/file.png index 8f31d38a..54fe8abd 100644 Binary files a/dokuwiki/lib/images/fileicons/file.png and b/dokuwiki/lib/images/fileicons/file.png differ diff --git a/dokuwiki/lib/images/fileicons/gif.png b/dokuwiki/lib/images/fileicons/gif.png index bcbb8366..38bdbf2d 100644 Binary files a/dokuwiki/lib/images/fileicons/gif.png and b/dokuwiki/lib/images/fileicons/gif.png differ diff --git a/dokuwiki/lib/images/fileicons/gz.png b/dokuwiki/lib/images/fileicons/gz.png index 0a0a4b94..422693a3 100644 Binary files a/dokuwiki/lib/images/fileicons/gz.png and b/dokuwiki/lib/images/fileicons/gz.png differ diff --git a/dokuwiki/lib/images/fileicons/h.png b/dokuwiki/lib/images/fileicons/h.png index 4afe8f84..d65f2f50 100644 Binary files a/dokuwiki/lib/images/fileicons/h.png and b/dokuwiki/lib/images/fileicons/h.png differ diff --git a/dokuwiki/lib/images/fileicons/hpp.png b/dokuwiki/lib/images/fileicons/hpp.png index 3ee7583d..6d314f5c 100644 Binary files a/dokuwiki/lib/images/fileicons/hpp.png and b/dokuwiki/lib/images/fileicons/hpp.png differ diff --git a/dokuwiki/lib/images/fileicons/htm.png b/dokuwiki/lib/images/fileicons/htm.png index 02e81932..f45847f7 100644 Binary files a/dokuwiki/lib/images/fileicons/htm.png and b/dokuwiki/lib/images/fileicons/htm.png differ diff --git a/dokuwiki/lib/images/fileicons/html.png b/dokuwiki/lib/images/fileicons/html.png index 02e81932..f45847f7 100644 Binary files a/dokuwiki/lib/images/fileicons/html.png and b/dokuwiki/lib/images/fileicons/html.png differ diff --git a/dokuwiki/lib/images/fileicons/ico.png b/dokuwiki/lib/images/fileicons/ico.png index 93343717..38aa34b2 100644 Binary files a/dokuwiki/lib/images/fileicons/ico.png and b/dokuwiki/lib/images/fileicons/ico.png differ diff --git a/dokuwiki/lib/images/fileicons/java.png b/dokuwiki/lib/images/fileicons/java.png index cf6f5b4f..0c62347f 100644 Binary files a/dokuwiki/lib/images/fileicons/java.png and b/dokuwiki/lib/images/fileicons/java.png differ diff --git a/dokuwiki/lib/images/fileicons/jpeg.png b/dokuwiki/lib/images/fileicons/jpeg.png index 29dea576..e446dd41 100644 Binary files a/dokuwiki/lib/images/fileicons/jpeg.png and b/dokuwiki/lib/images/fileicons/jpeg.png differ diff --git a/dokuwiki/lib/images/fileicons/jpg.png b/dokuwiki/lib/images/fileicons/jpg.png index 29dea576..e446dd41 100644 Binary files a/dokuwiki/lib/images/fileicons/jpg.png and b/dokuwiki/lib/images/fileicons/jpg.png differ diff --git a/dokuwiki/lib/images/fileicons/js.png b/dokuwiki/lib/images/fileicons/js.png index 16e3f953..bee428f2 100644 Binary files a/dokuwiki/lib/images/fileicons/js.png and b/dokuwiki/lib/images/fileicons/js.png differ diff --git a/dokuwiki/lib/images/fileicons/json.png b/dokuwiki/lib/images/fileicons/json.png index 96611cb5..4d0a3cfb 100644 Binary files a/dokuwiki/lib/images/fileicons/json.png and b/dokuwiki/lib/images/fileicons/json.png differ diff --git a/dokuwiki/lib/images/fileicons/lua.png b/dokuwiki/lib/images/fileicons/lua.png index 81fdeea4..fcebe3d0 100644 Binary files a/dokuwiki/lib/images/fileicons/lua.png and b/dokuwiki/lib/images/fileicons/lua.png differ diff --git a/dokuwiki/lib/images/fileicons/mp3.png b/dokuwiki/lib/images/fileicons/mp3.png index 7c6d3718..2be976f9 100644 Binary files a/dokuwiki/lib/images/fileicons/mp3.png and b/dokuwiki/lib/images/fileicons/mp3.png differ diff --git a/dokuwiki/lib/images/fileicons/mp4.png b/dokuwiki/lib/images/fileicons/mp4.png index ee5b9115..dc6fd002 100644 Binary files a/dokuwiki/lib/images/fileicons/mp4.png and b/dokuwiki/lib/images/fileicons/mp4.png differ diff --git a/dokuwiki/lib/images/fileicons/odc.png b/dokuwiki/lib/images/fileicons/odc.png index 33114055..bf3b3a10 100644 Binary files a/dokuwiki/lib/images/fileicons/odc.png and b/dokuwiki/lib/images/fileicons/odc.png differ diff --git a/dokuwiki/lib/images/fileicons/odf.png b/dokuwiki/lib/images/fileicons/odf.png index eccae9e2..fcfc58f7 100644 Binary files a/dokuwiki/lib/images/fileicons/odf.png and b/dokuwiki/lib/images/fileicons/odf.png differ diff --git a/dokuwiki/lib/images/fileicons/odg.png b/dokuwiki/lib/images/fileicons/odg.png index 5224425e..0a8196cb 100644 Binary files a/dokuwiki/lib/images/fileicons/odg.png and b/dokuwiki/lib/images/fileicons/odg.png differ diff --git a/dokuwiki/lib/images/fileicons/odi.png b/dokuwiki/lib/images/fileicons/odi.png index b57fd974..0fc8508a 100644 Binary files a/dokuwiki/lib/images/fileicons/odi.png and b/dokuwiki/lib/images/fileicons/odi.png differ diff --git a/dokuwiki/lib/images/fileicons/odp.png b/dokuwiki/lib/images/fileicons/odp.png index 81d1023c..75b1db8e 100644 Binary files a/dokuwiki/lib/images/fileicons/odp.png and b/dokuwiki/lib/images/fileicons/odp.png differ diff --git a/dokuwiki/lib/images/fileicons/ods.png b/dokuwiki/lib/images/fileicons/ods.png index 77e6d536..2017426b 100644 Binary files a/dokuwiki/lib/images/fileicons/ods.png and b/dokuwiki/lib/images/fileicons/ods.png differ diff --git a/dokuwiki/lib/images/fileicons/odt.png b/dokuwiki/lib/images/fileicons/odt.png index 8490eec7..6f8fae43 100644 Binary files a/dokuwiki/lib/images/fileicons/odt.png and b/dokuwiki/lib/images/fileicons/odt.png differ diff --git a/dokuwiki/lib/images/fileicons/ogg.png b/dokuwiki/lib/images/fileicons/ogg.png index 38f615c9..8bb50800 100644 Binary files a/dokuwiki/lib/images/fileicons/ogg.png and b/dokuwiki/lib/images/fileicons/ogg.png differ diff --git a/dokuwiki/lib/images/fileicons/ogv.png b/dokuwiki/lib/images/fileicons/ogv.png index a937dfc4..e6b65ac6 100644 Binary files a/dokuwiki/lib/images/fileicons/ogv.png and b/dokuwiki/lib/images/fileicons/ogv.png differ diff --git a/dokuwiki/lib/images/fileicons/pas.png b/dokuwiki/lib/images/fileicons/pas.png index 0c14372d..19f0a3c6 100644 Binary files a/dokuwiki/lib/images/fileicons/pas.png and b/dokuwiki/lib/images/fileicons/pas.png differ diff --git a/dokuwiki/lib/images/fileicons/pdf.png b/dokuwiki/lib/images/fileicons/pdf.png index 1bc15464..42fbfd2b 100644 Binary files a/dokuwiki/lib/images/fileicons/pdf.png and b/dokuwiki/lib/images/fileicons/pdf.png differ diff --git a/dokuwiki/lib/images/fileicons/php.png b/dokuwiki/lib/images/fileicons/php.png index 2deb5d3b..de0d8eeb 100644 Binary files a/dokuwiki/lib/images/fileicons/php.png and b/dokuwiki/lib/images/fileicons/php.png differ diff --git a/dokuwiki/lib/images/fileicons/pl.png b/dokuwiki/lib/images/fileicons/pl.png index a4fa9220..d95513d2 100644 Binary files a/dokuwiki/lib/images/fileicons/pl.png and b/dokuwiki/lib/images/fileicons/pl.png differ diff --git a/dokuwiki/lib/images/fileicons/png.png b/dokuwiki/lib/images/fileicons/png.png index 00727053..273476da 100644 Binary files a/dokuwiki/lib/images/fileicons/png.png and b/dokuwiki/lib/images/fileicons/png.png differ diff --git a/dokuwiki/lib/images/fileicons/ppt.png b/dokuwiki/lib/images/fileicons/ppt.png index 3355c271..a03d3c0a 100644 Binary files a/dokuwiki/lib/images/fileicons/ppt.png and b/dokuwiki/lib/images/fileicons/ppt.png differ diff --git a/dokuwiki/lib/images/fileicons/pptx.png b/dokuwiki/lib/images/fileicons/pptx.png index 269cdb8f..9b5c6332 100644 Binary files a/dokuwiki/lib/images/fileicons/pptx.png and b/dokuwiki/lib/images/fileicons/pptx.png differ diff --git a/dokuwiki/lib/images/fileicons/ps.png b/dokuwiki/lib/images/fileicons/ps.png index e61d1aa7..3b7848c8 100644 Binary files a/dokuwiki/lib/images/fileicons/ps.png and b/dokuwiki/lib/images/fileicons/ps.png differ diff --git a/dokuwiki/lib/images/fileicons/py.png b/dokuwiki/lib/images/fileicons/py.png index f0ed0258..893019ee 100644 Binary files a/dokuwiki/lib/images/fileicons/py.png and b/dokuwiki/lib/images/fileicons/py.png differ diff --git a/dokuwiki/lib/images/fileicons/rar.png b/dokuwiki/lib/images/fileicons/rar.png index f15d4ce5..091a635b 100644 Binary files a/dokuwiki/lib/images/fileicons/rar.png and b/dokuwiki/lib/images/fileicons/rar.png differ diff --git a/dokuwiki/lib/images/fileicons/rb.png b/dokuwiki/lib/images/fileicons/rb.png index 0e59207f..9b58db03 100644 Binary files a/dokuwiki/lib/images/fileicons/rb.png and b/dokuwiki/lib/images/fileicons/rb.png differ diff --git a/dokuwiki/lib/images/fileicons/rpm.png b/dokuwiki/lib/images/fileicons/rpm.png index 831424ff..75da50e0 100644 Binary files a/dokuwiki/lib/images/fileicons/rpm.png and b/dokuwiki/lib/images/fileicons/rpm.png differ diff --git a/dokuwiki/lib/images/fileicons/rtf.png b/dokuwiki/lib/images/fileicons/rtf.png index bbc425ca..2e5a6e53 100644 Binary files a/dokuwiki/lib/images/fileicons/rtf.png and b/dokuwiki/lib/images/fileicons/rtf.png differ diff --git a/dokuwiki/lib/images/fileicons/sh.png b/dokuwiki/lib/images/fileicons/sh.png index 25606710..bc483541 100644 Binary files a/dokuwiki/lib/images/fileicons/sh.png and b/dokuwiki/lib/images/fileicons/sh.png differ diff --git a/dokuwiki/lib/images/fileicons/sql.png b/dokuwiki/lib/images/fileicons/sql.png index 6697943e..c36f3a81 100644 Binary files a/dokuwiki/lib/images/fileicons/sql.png and b/dokuwiki/lib/images/fileicons/sql.png differ diff --git a/dokuwiki/lib/images/fileicons/swf.png b/dokuwiki/lib/images/fileicons/swf.png index b45a72cc..5c883877 100644 Binary files a/dokuwiki/lib/images/fileicons/swf.png and b/dokuwiki/lib/images/fileicons/swf.png differ diff --git a/dokuwiki/lib/images/fileicons/sxc.png b/dokuwiki/lib/images/fileicons/sxc.png index c96cf303..3b5c71f5 100644 Binary files a/dokuwiki/lib/images/fileicons/sxc.png and b/dokuwiki/lib/images/fileicons/sxc.png differ diff --git a/dokuwiki/lib/images/fileicons/sxd.png b/dokuwiki/lib/images/fileicons/sxd.png index 124b928e..15390cd0 100644 Binary files a/dokuwiki/lib/images/fileicons/sxd.png and b/dokuwiki/lib/images/fileicons/sxd.png differ diff --git a/dokuwiki/lib/images/fileicons/sxi.png b/dokuwiki/lib/images/fileicons/sxi.png index 8a5e2303..a0fb6543 100644 Binary files a/dokuwiki/lib/images/fileicons/sxi.png and b/dokuwiki/lib/images/fileicons/sxi.png differ diff --git a/dokuwiki/lib/images/fileicons/sxw.png b/dokuwiki/lib/images/fileicons/sxw.png index 9a903791..865dc0c6 100644 Binary files a/dokuwiki/lib/images/fileicons/sxw.png and b/dokuwiki/lib/images/fileicons/sxw.png differ diff --git a/dokuwiki/lib/images/fileicons/tar.png b/dokuwiki/lib/images/fileicons/tar.png index e57029ad..8f9fd0f0 100644 Binary files a/dokuwiki/lib/images/fileicons/tar.png and b/dokuwiki/lib/images/fileicons/tar.png differ diff --git a/dokuwiki/lib/images/fileicons/tgz.png b/dokuwiki/lib/images/fileicons/tgz.png index 25ef9e15..8423ef08 100644 Binary files a/dokuwiki/lib/images/fileicons/tgz.png and b/dokuwiki/lib/images/fileicons/tgz.png differ diff --git a/dokuwiki/lib/images/fileicons/txt.png b/dokuwiki/lib/images/fileicons/txt.png index 4fd92165..1619cc49 100644 Binary files a/dokuwiki/lib/images/fileicons/txt.png and b/dokuwiki/lib/images/fileicons/txt.png differ diff --git a/dokuwiki/lib/images/fileicons/wav.png b/dokuwiki/lib/images/fileicons/wav.png index c8880c62..80eac978 100644 Binary files a/dokuwiki/lib/images/fileicons/wav.png and b/dokuwiki/lib/images/fileicons/wav.png differ diff --git a/dokuwiki/lib/images/fileicons/webm.png b/dokuwiki/lib/images/fileicons/webm.png index 55db6191..cec3e6d5 100644 Binary files a/dokuwiki/lib/images/fileicons/webm.png and b/dokuwiki/lib/images/fileicons/webm.png differ diff --git a/dokuwiki/lib/images/fileicons/xls.png b/dokuwiki/lib/images/fileicons/xls.png index 5ac56f20..be9b42ff 100644 Binary files a/dokuwiki/lib/images/fileicons/xls.png and b/dokuwiki/lib/images/fileicons/xls.png differ diff --git a/dokuwiki/lib/images/fileicons/xlsx.png b/dokuwiki/lib/images/fileicons/xlsx.png index 89c84c52..fd5d4f11 100644 Binary files a/dokuwiki/lib/images/fileicons/xlsx.png and b/dokuwiki/lib/images/fileicons/xlsx.png differ diff --git a/dokuwiki/lib/images/fileicons/xml.png b/dokuwiki/lib/images/fileicons/xml.png index 4480a638..2a96d8b3 100644 Binary files a/dokuwiki/lib/images/fileicons/xml.png and b/dokuwiki/lib/images/fileicons/xml.png differ diff --git a/dokuwiki/lib/images/fileicons/zip.png b/dokuwiki/lib/images/fileicons/zip.png index 4a36a35f..4ce08bf7 100644 Binary files a/dokuwiki/lib/images/fileicons/zip.png and b/dokuwiki/lib/images/fileicons/zip.png differ diff --git a/dokuwiki/lib/images/history.png b/dokuwiki/lib/images/history.png index 82a418d4..f6af0f6f 100644 Binary files a/dokuwiki/lib/images/history.png and b/dokuwiki/lib/images/history.png differ diff --git a/dokuwiki/lib/images/icon-list.png b/dokuwiki/lib/images/icon-list.png index ecfeed92..4ae738a0 100644 Binary files a/dokuwiki/lib/images/icon-list.png and b/dokuwiki/lib/images/icon-list.png differ diff --git a/dokuwiki/lib/images/icon-sort.png b/dokuwiki/lib/images/icon-sort.png index c6403dd3..190397eb 100644 Binary files a/dokuwiki/lib/images/icon-sort.png and b/dokuwiki/lib/images/icon-sort.png differ diff --git a/dokuwiki/lib/images/info.png b/dokuwiki/lib/images/info.png index 121c7336..5e233643 100644 Binary files a/dokuwiki/lib/images/info.png and b/dokuwiki/lib/images/info.png differ diff --git a/dokuwiki/lib/images/interwiki.png b/dokuwiki/lib/images/interwiki.png index f957e71e..10a2bbe1 100644 Binary files a/dokuwiki/lib/images/interwiki.png and b/dokuwiki/lib/images/interwiki.png differ diff --git a/dokuwiki/lib/images/interwiki/tel.gif b/dokuwiki/lib/images/interwiki/tel.gif new file mode 100644 index 00000000..60158c56 Binary files /dev/null and b/dokuwiki/lib/images/interwiki/tel.gif differ diff --git a/dokuwiki/lib/images/interwiki/user.png b/dokuwiki/lib/images/interwiki/user.png index 79f35ccb..da84e3dd 100644 Binary files a/dokuwiki/lib/images/interwiki/user.png and b/dokuwiki/lib/images/interwiki/user.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by-nc-nd.png b/dokuwiki/lib/images/license/badge/cc-by-nc-nd.png index 94aae9e0..c84aff10 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by-nc-nd.png and b/dokuwiki/lib/images/license/badge/cc-by-nc-nd.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by-nc-sa.png b/dokuwiki/lib/images/license/badge/cc-by-nc-sa.png index 51141f5e..e7b57845 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by-nc-sa.png and b/dokuwiki/lib/images/license/badge/cc-by-nc-sa.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by-nc.png b/dokuwiki/lib/images/license/badge/cc-by-nc.png index aeb8cdc8..b422cdcf 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by-nc.png and b/dokuwiki/lib/images/license/badge/cc-by-nc.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by-nd.png b/dokuwiki/lib/images/license/badge/cc-by-nd.png index 6a2e59a6..18322992 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by-nd.png and b/dokuwiki/lib/images/license/badge/cc-by-nd.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by-sa.png b/dokuwiki/lib/images/license/badge/cc-by-sa.png index f0aa4aaf..5749f65b 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by-sa.png and b/dokuwiki/lib/images/license/badge/cc-by-sa.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-by.png b/dokuwiki/lib/images/license/badge/cc-by.png index c7389b2f..700679a1 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-by.png and b/dokuwiki/lib/images/license/badge/cc-by.png differ diff --git a/dokuwiki/lib/images/license/badge/cc-zero.png b/dokuwiki/lib/images/license/badge/cc-zero.png index fd3dff42..e6d82bfa 100644 Binary files a/dokuwiki/lib/images/license/badge/cc-zero.png and b/dokuwiki/lib/images/license/badge/cc-zero.png differ diff --git a/dokuwiki/lib/images/license/badge/cc.png b/dokuwiki/lib/images/license/badge/cc.png index 8ac73aa4..e28f32c7 100644 Binary files a/dokuwiki/lib/images/license/badge/cc.png and b/dokuwiki/lib/images/license/badge/cc.png differ diff --git a/dokuwiki/lib/images/license/badge/gnufdl.png b/dokuwiki/lib/images/license/badge/gnufdl.png index e9291012..635de2bd 100644 Binary files a/dokuwiki/lib/images/license/badge/gnufdl.png and b/dokuwiki/lib/images/license/badge/gnufdl.png differ diff --git a/dokuwiki/lib/images/license/badge/publicdomain.png b/dokuwiki/lib/images/license/badge/publicdomain.png index 8148d037..fd742cc9 100644 Binary files a/dokuwiki/lib/images/license/badge/publicdomain.png and b/dokuwiki/lib/images/license/badge/publicdomain.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by-nc-nd.png b/dokuwiki/lib/images/license/button/cc-by-nc-nd.png index ac58d862..994025f1 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by-nc-nd.png and b/dokuwiki/lib/images/license/button/cc-by-nc-nd.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by-nc-sa.png b/dokuwiki/lib/images/license/button/cc-by-nc-sa.png index a9d23c0b..3b896bd5 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by-nc-sa.png and b/dokuwiki/lib/images/license/button/cc-by-nc-sa.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by-nc.png b/dokuwiki/lib/images/license/button/cc-by-nc.png index d936464a..d5be8f80 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by-nc.png and b/dokuwiki/lib/images/license/button/cc-by-nc.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by-nd.png b/dokuwiki/lib/images/license/button/cc-by-nd.png index 3fc49087..e1918b0c 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by-nd.png and b/dokuwiki/lib/images/license/button/cc-by-nd.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by-sa.png b/dokuwiki/lib/images/license/button/cc-by-sa.png index 3c6270a0..9b9b522a 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by-sa.png and b/dokuwiki/lib/images/license/button/cc-by-sa.png differ diff --git a/dokuwiki/lib/images/license/button/cc-by.png b/dokuwiki/lib/images/license/button/cc-by.png index 867daaee..53b1dea0 100644 Binary files a/dokuwiki/lib/images/license/button/cc-by.png and b/dokuwiki/lib/images/license/button/cc-by.png differ diff --git a/dokuwiki/lib/images/license/button/cc-zero.png b/dokuwiki/lib/images/license/button/cc-zero.png index 251efcd1..e6a1a5bf 100644 Binary files a/dokuwiki/lib/images/license/button/cc-zero.png and b/dokuwiki/lib/images/license/button/cc-zero.png differ diff --git a/dokuwiki/lib/images/license/button/cc.png b/dokuwiki/lib/images/license/button/cc.png index 9c492950..e04958a8 100644 Binary files a/dokuwiki/lib/images/license/button/cc.png and b/dokuwiki/lib/images/license/button/cc.png differ diff --git a/dokuwiki/lib/images/license/button/gnufdl.png b/dokuwiki/lib/images/license/button/gnufdl.png index 0b52ea12..b0e0793d 100644 Binary files a/dokuwiki/lib/images/license/button/gnufdl.png and b/dokuwiki/lib/images/license/button/gnufdl.png differ diff --git a/dokuwiki/lib/images/license/button/publicdomain.png b/dokuwiki/lib/images/license/button/publicdomain.png index 54ea38b6..b301baf9 100644 Binary files a/dokuwiki/lib/images/license/button/publicdomain.png and b/dokuwiki/lib/images/license/button/publicdomain.png differ diff --git a/dokuwiki/lib/images/magnifier.png b/dokuwiki/lib/images/magnifier.png index 89febff1..014fa921 100644 Binary files a/dokuwiki/lib/images/magnifier.png and b/dokuwiki/lib/images/magnifier.png differ diff --git a/dokuwiki/lib/images/media_align_center.png b/dokuwiki/lib/images/media_align_center.png index 807f9d9a..8b30a051 100644 Binary files a/dokuwiki/lib/images/media_align_center.png and b/dokuwiki/lib/images/media_align_center.png differ diff --git a/dokuwiki/lib/images/media_align_left.png b/dokuwiki/lib/images/media_align_left.png index fa6cf33c..d32bbc23 100644 Binary files a/dokuwiki/lib/images/media_align_left.png and b/dokuwiki/lib/images/media_align_left.png differ diff --git a/dokuwiki/lib/images/media_align_noalign.png b/dokuwiki/lib/images/media_align_noalign.png index 263e090f..e6ce8579 100644 Binary files a/dokuwiki/lib/images/media_align_noalign.png and b/dokuwiki/lib/images/media_align_noalign.png differ diff --git a/dokuwiki/lib/images/media_align_right.png b/dokuwiki/lib/images/media_align_right.png index 33539dbd..32a5cb0a 100644 Binary files a/dokuwiki/lib/images/media_align_right.png and b/dokuwiki/lib/images/media_align_right.png differ diff --git a/dokuwiki/lib/images/media_link_direct.png b/dokuwiki/lib/images/media_link_direct.png index 4350b803..13d24ad7 100644 Binary files a/dokuwiki/lib/images/media_link_direct.png and b/dokuwiki/lib/images/media_link_direct.png differ diff --git a/dokuwiki/lib/images/media_link_displaylnk.png b/dokuwiki/lib/images/media_link_displaylnk.png index 53927566..102834e7 100644 Binary files a/dokuwiki/lib/images/media_link_displaylnk.png and b/dokuwiki/lib/images/media_link_displaylnk.png differ diff --git a/dokuwiki/lib/images/media_link_lnk.png b/dokuwiki/lib/images/media_link_lnk.png index 5ff4ee18..5db14ad0 100644 Binary files a/dokuwiki/lib/images/media_link_lnk.png and b/dokuwiki/lib/images/media_link_lnk.png differ diff --git a/dokuwiki/lib/images/media_link_nolnk.png b/dokuwiki/lib/images/media_link_nolnk.png index c9378c7f..d277ac95 100644 Binary files a/dokuwiki/lib/images/media_link_nolnk.png and b/dokuwiki/lib/images/media_link_nolnk.png differ diff --git a/dokuwiki/lib/images/media_size_large.png b/dokuwiki/lib/images/media_size_large.png index 012a418c..c4f745e4 100644 Binary files a/dokuwiki/lib/images/media_size_large.png and b/dokuwiki/lib/images/media_size_large.png differ diff --git a/dokuwiki/lib/images/media_size_medium.png b/dokuwiki/lib/images/media_size_medium.png index 1469f519..580c63ed 100644 Binary files a/dokuwiki/lib/images/media_size_medium.png and b/dokuwiki/lib/images/media_size_medium.png differ diff --git a/dokuwiki/lib/images/media_size_original.png b/dokuwiki/lib/images/media_size_original.png index f58d056a..60d1925f 100644 Binary files a/dokuwiki/lib/images/media_size_original.png and b/dokuwiki/lib/images/media_size_original.png differ diff --git a/dokuwiki/lib/images/media_size_small.png b/dokuwiki/lib/images/media_size_small.png index a0aafa4a..8d5a6293 100644 Binary files a/dokuwiki/lib/images/media_size_small.png and b/dokuwiki/lib/images/media_size_small.png differ diff --git a/dokuwiki/lib/images/mediamanager.png b/dokuwiki/lib/images/mediamanager.png index 822b8458..5093381b 100644 Binary files a/dokuwiki/lib/images/mediamanager.png and b/dokuwiki/lib/images/mediamanager.png differ diff --git a/dokuwiki/lib/images/notify.png b/dokuwiki/lib/images/notify.png index c18ef100..f6c56ee5 100644 Binary files a/dokuwiki/lib/images/notify.png and b/dokuwiki/lib/images/notify.png differ diff --git a/dokuwiki/lib/images/ns.png b/dokuwiki/lib/images/ns.png index c35e832d..77e03b19 100644 Binary files a/dokuwiki/lib/images/ns.png and b/dokuwiki/lib/images/ns.png differ diff --git a/dokuwiki/lib/images/open.png b/dokuwiki/lib/images/open.png index 5f2d408c..b9e4fdf9 100644 Binary files a/dokuwiki/lib/images/open.png and b/dokuwiki/lib/images/open.png differ diff --git a/dokuwiki/lib/images/resizecol.png b/dokuwiki/lib/images/resizecol.png index b5aeec00..91ad7d15 100644 Binary files a/dokuwiki/lib/images/resizecol.png and b/dokuwiki/lib/images/resizecol.png differ diff --git a/dokuwiki/lib/images/smileys/index.php b/dokuwiki/lib/images/smileys/index.php index 9a2905b3..4167eda5 100644 --- a/dokuwiki/lib/images/smileys/index.php +++ b/dokuwiki/lib/images/smileys/index.php @@ -1,7 +1,7 @@ - simleys + smileys ' ).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/dokuwiki/lib/plugins/styling/lang/bg/lang.php b/dokuwiki/lib/plugins/styling/lang/bg/lang.php new file mode 100644 index 00000000..7d17caff --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/bg/lang.php @@ -0,0 +1,21 @@ + + */ +$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/dokuwiki/lib/plugins/styling/lang/cs/intro.txt b/dokuwiki/lib/plugins/styling/lang/cs/intro.txt new file mode 100644 index 00000000..00365a09 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/cs/lang.php b/dokuwiki/lib/plugins/styling/lang/cs/lang.php new file mode 100644 index 00000000..d23de292 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/cs/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Nastavení stylů vzhledu'; +$lang['js']['loader'] = 'Náhled se naÄítá...
          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/dokuwiki/lib/plugins/styling/lang/cy/intro.txt b/dokuwiki/lib/plugins/styling/lang/cy/intro.txt new file mode 100644 index 00000000..7c825967 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/cy/lang.php b/dokuwiki/lib/plugins/styling/lang/cy/lang.php new file mode 100644 index 00000000..4d22a59f --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/cy/lang.php @@ -0,0 +1,36 @@ + + * @author Alan Davies + */ + +// menu entry for admin plugins +$lang['menu'] = 'Gosodiadau Arddull Templed'; + +$lang['js']['loader'] = 'Rhagolwg yn llwytho...
          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/dokuwiki/lib/plugins/styling/lang/de/intro.txt b/dokuwiki/lib/plugins/styling/lang/de/intro.txt new file mode 100644 index 00000000..aa957735 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/de/lang.php b/dokuwiki/lib/plugins/styling/lang/de/lang.php new file mode 100644 index 00000000..54adc567 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/de/lang.php @@ -0,0 +1,24 @@ + + * @author Hella Breitkopf + */ +$lang['menu'] = 'Einstellungen fürs Template-Design'; +$lang['js']['loader'] = 'Vorschau lädt...
          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'] = 'Design auf die Voreinstellung des Templates zurücksetzen'; +$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/dokuwiki/lib/plugins/styling/lang/en/intro.txt b/dokuwiki/lib/plugins/styling/lang/en/intro.txt new file mode 100644 index 00000000..4ea55172 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/en/lang.php b/dokuwiki/lib/plugins/styling/lang/en/lang.php new file mode 100644 index 00000000..e0011eb8 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/en/lang.php @@ -0,0 +1,35 @@ + + */ + +// menu entry for admin plugins +$lang['menu'] = 'Template Style Settings'; + +$lang['js']['loader'] = 'Preview is loading...
          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/dokuwiki/lib/plugins/styling/lang/es/intro.txt b/dokuwiki/lib/plugins/styling/lang/es/intro.txt new file mode 100644 index 00000000..8a556002 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/es/lang.php b/dokuwiki/lib/plugins/styling/lang/es/lang.php new file mode 100644 index 00000000..5c87c924 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/es/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Ajustes de plantilla'; +$lang['js']['loader'] = 'La vista previa se está cargando ...
          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/dokuwiki/lib/plugins/styling/lang/fa/intro.txt b/dokuwiki/lib/plugins/styling/lang/fa/intro.txt new file mode 100644 index 00000000..428a2513 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/fa/intro.txt @@ -0,0 +1,2 @@ +این ابزار این امکان را ÙØ±Ø§Ù‡Ù… می‌سازد Ú©Ù‡ برخی تنظیمات مشخص از قالبی Ú©Ù‡ انتخاب کردید را تغییر دهید. +تمام تغییرات در ÙØ§ÛŒÙ„ داخلی تنظیمات ذخیره می‌شود Ùˆ به‌روزرسانی هم ایمن است. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/fa/lang.php b/dokuwiki/lib/plugins/styling/lang/fa/lang.php new file mode 100644 index 00000000..95a65f42 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/fa/lang.php @@ -0,0 +1,24 @@ + + * @author Sam01 + */ +$lang['menu'] = 'تنظیمات ظاهری تمپلیت'; +$lang['js']['loader'] = 'پیش‌نمایش در حال باز شدن است...
          اگر این پیش Ù†Ø±ÙØª یعنی مقادیرتان اشکال دارد'; +$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/dokuwiki/lib/plugins/styling/lang/fr/intro.txt b/dokuwiki/lib/plugins/styling/lang/fr/intro.txt new file mode 100644 index 00000000..14a615c8 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/fr/lang.php b/dokuwiki/lib/plugins/styling/lang/fr/lang.php new file mode 100644 index 00000000..b3f01164 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/fr/lang.php @@ -0,0 +1,24 @@ + + * @author Nicolas Friedli + */ +$lang['menu'] = 'Paramètres de style du thème (template)'; +$lang['js']['loader'] = 'La prévisualisation est en chargement...
          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/dokuwiki/lib/plugins/styling/lang/hr/intro.txt b/dokuwiki/lib/plugins/styling/lang/hr/intro.txt new file mode 100644 index 00000000..5c947dd7 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/hr/intro.txt @@ -0,0 +1,2 @@ +Ovaj alat omogućava izmjenu nekih postavki stila vaÅ¡eg tekućeg wiki predloÅ¡ka. +Sve postavke su snimljene u lokalnu konfiguracijsku datoteku i neće biti prebrisane kod nadogradnje. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/hr/lang.php b/dokuwiki/lib/plugins/styling/lang/hr/lang.php new file mode 100644 index 00000000..4d7038ad --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/hr/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Postavke stila predloÅ¡ka'; +$lang['js']['loader'] = 'Pregled se uÄitava...
          ako ovo ne nestane, vaše vrijednosti su možda neispravne'; +$lang['js']['popup'] = 'Otvori kao zasebni prozor'; +$lang['error'] = 'Oprostite ali ovaj predložak ne podržava ovu funkcionalnost'; +$lang['btn_preview'] = 'Pregled izmjena'; +$lang['btn_save'] = 'Pohrani promjene'; +$lang['btn_reset'] = 'Resetiraj trenutne promjene'; +$lang['btn_revert'] = 'Vrati postavke nazad na inicijalne vrijednosti predloška'; +$lang['__text__'] = 'Primarna boja teksta'; +$lang['__background__'] = 'Primarna boja pozadine'; +$lang['__text_alt__'] = 'Alternativna boja teksta'; +$lang['__background_alt__'] = 'Alternativna boja pozadine'; +$lang['__text_neu__'] = 'Boja neutralnog teksta'; +$lang['__background_neu__'] = 'Boja neutralne pozadine'; +$lang['__border__'] = 'Boja ruba'; +$lang['__highlight__'] = 'Boja isticanja (uglavnom za rezultat pretrage)'; diff --git a/dokuwiki/lib/plugins/styling/lang/hu/intro.txt b/dokuwiki/lib/plugins/styling/lang/hu/intro.txt new file mode 100644 index 00000000..42f451d9 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/hu/lang.php b/dokuwiki/lib/plugins/styling/lang/hu/lang.php new file mode 100644 index 00000000..c6ef5de9 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/hu/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Sablon kinézetének beállításai'; +$lang['js']['loader'] = 'Az előnézet töltődik...
          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/dokuwiki/lib/plugins/styling/lang/it/intro.txt b/dokuwiki/lib/plugins/styling/lang/it/intro.txt new file mode 100644 index 00000000..6c798e43 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/it/lang.php b/dokuwiki/lib/plugins/styling/lang/it/lang.php new file mode 100644 index 00000000..03b7aa76 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/it/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Configurazioni di stile del tema'; +$lang['js']['loader'] = 'Anteprima in corso...
          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/dokuwiki/lib/plugins/styling/lang/ja/intro.txt b/dokuwiki/lib/plugins/styling/lang/ja/intro.txt new file mode 100644 index 00000000..1feb4e03 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ja/intro.txt @@ -0,0 +1,2 @@ +ã“ã®ç”»é¢ä¸Šã§ã€é¸æŠžä¸­ã®ãƒ†ãƒ³ãƒ—レート固有ã®ã‚¹ã‚¿ã‚¤ãƒ«è¨­å®šã‚’変更ã§ãã¾ã™ã€‚ +変更内容ã¯ã™ã¹ã¦ãƒ­ãƒ¼ã‚«ãƒ«ã®è¨­å®šãƒ•ァイル内ã«ä¿å­˜ã•れã€ãƒ†ãƒ³ãƒ—レートを更新ã—ã¦ã‚‚åˆæœŸåŒ–ã•れã¾ã›ã‚“。 \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/ja/lang.php b/dokuwiki/lib/plugins/styling/lang/ja/lang.php new file mode 100644 index 00000000..5c546a7c --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ja/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'テンプレートã®ã‚¹ã‚¿ã‚¤ãƒ«è¨­å®š'; +$lang['js']['loader'] = 'プレビューを読込ã¿ä¸­ã§ã™ãƒ»ãƒ»ãƒ»
          ã“ã®è¡¨ç¤ºãŒæ¶ˆãˆãªã„å ´åˆã€å¤‰æ›´ã—ãŸè¨­å®šå€¤ã«å•題ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。'; +$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/dokuwiki/lib/plugins/styling/lang/ko/intro.txt b/dokuwiki/lib/plugins/styling/lang/ko/intro.txt new file mode 100644 index 00000000..c460801b --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ko/intro.txt @@ -0,0 +1,2 @@ +ì´ ë„구는 현재 ì„ íƒí•œ í…œí”Œë¦¿ì˜ íŠ¹ì • ìŠ¤íƒ€ì¼ ì„¤ì •ì„ ë°”ê¿€ 수 있습니다. +모든 ë°”ë€œì€ ë¡œì»¬ 환경 설정 파ì¼ì— 저장ë˜ë©° 안전하게 업그레ì´ë“œë©ë‹ˆë‹¤. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/ko/lang.php b/dokuwiki/lib/plugins/styling/lang/ko/lang.php new file mode 100644 index 00000000..bcdf9dcb --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ko/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = '템플릿 ìŠ¤íƒ€ì¼ ì„¤ì •'; +$lang['js']['loader'] = '미리 보기를 불러오는 중...
          만약 ì´ê²ƒì´ 사ë¼ì§€ì§€ 않는다면, ë‹¹ì‹ ì€ ì‹¤ë§í•˜ê² ì£ '; +$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/dokuwiki/lib/plugins/styling/lang/nl/intro.txt b/dokuwiki/lib/plugins/styling/lang/nl/intro.txt new file mode 100644 index 00000000..72759384 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/nl/lang.php b/dokuwiki/lib/plugins/styling/lang/nl/lang.php new file mode 100644 index 00000000..4775fa89 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/nl/lang.php @@ -0,0 +1,24 @@ + + * @author hugo smet + */ +$lang['menu'] = 'Template stijl-instellingen'; +$lang['js']['loader'] = 'Voorbeeldweergave is aan het laden...
          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/dokuwiki/lib/plugins/styling/lang/no/intro.txt b/dokuwiki/lib/plugins/styling/lang/no/intro.txt new file mode 100644 index 00000000..82225493 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/no/intro.txt @@ -0,0 +1,2 @@ +Dette verktøyet lar deg endre visse instillinger for malen som nå er i bruk. +Alle endringer lagres i en lokal konfigurasjonsfil og vil ikke bli overskrevet ved en oppgradering. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/no/lang.php b/dokuwiki/lib/plugins/styling/lang/no/lang.php new file mode 100644 index 00000000..f9a478b0 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/no/lang.php @@ -0,0 +1,24 @@ + + * @author Arne Hanssen + */ +$lang['menu'] = 'Innstillinger for malstil'; +$lang['js']['loader'] = 'Forhåndsvisning laster...
          Dersom denne ikke forsvinner, kan det hende at dine verdier er feil'; +$lang['js']['popup'] = 'Åpne som nytt vindu'; +$lang['error'] = 'Beklager men denne malen støtter ikke denne funksjonaliteten.'; +$lang['btn_preview'] = 'Forhåndsvis endringer'; +$lang['btn_save'] = 'Lagre endringer'; +$lang['btn_reset'] = 'Sett tilbake til nåværende endringer'; +$lang['btn_revert'] = 'Rull tilbake stilen til standard for malen'; +$lang['__text__'] = 'Hovedfarge for tekst'; +$lang['__background__'] = 'Hovedfarge for bagrunn'; +$lang['__text_alt__'] = 'Alternativ tekstfarge'; +$lang['__background_alt__'] = 'Alternativ bakgrunnsfarge'; +$lang['__text_neu__'] = 'Nøytral tekstfarge'; +$lang['__background_neu__'] = 'Nøytral bakgrunnsfarge'; +$lang['__border__'] = 'Kantfarge'; +$lang['__highlight__'] = 'Farge for uthevet tekst (i hovedsak for søk)'; diff --git a/dokuwiki/lib/plugins/styling/lang/pt-br/intro.txt b/dokuwiki/lib/plugins/styling/lang/pt-br/intro.txt new file mode 100644 index 00000000..3d0f47fd --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/lang/pt-br/lang.php b/dokuwiki/lib/plugins/styling/lang/pt-br/lang.php new file mode 100644 index 00000000..4ebcbe5e --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/pt-br/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'Configurações de estilo do modelo'; +$lang['js']['loader'] = 'A visualização está carregando...
          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/dokuwiki/lib/plugins/styling/lang/pt/lang.php b/dokuwiki/lib/plugins/styling/lang/pt/lang.php new file mode 100644 index 00000000..6929a40d --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/pt/lang.php @@ -0,0 +1,13 @@ + + */ +$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/dokuwiki/lib/plugins/styling/lang/ru/intro.txt b/dokuwiki/lib/plugins/styling/lang/ru/intro.txt new file mode 100644 index 00000000..3a014114 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ru/intro.txt @@ -0,0 +1 @@ +Этот инÑтрумент позволÑет изменÑть Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð²Â Ñ„Ð°Ð¹Ð»Ðµ конфигурации и защищены от ÑброÑа при обновлении. diff --git a/dokuwiki/lib/plugins/styling/lang/ru/lang.php b/dokuwiki/lib/plugins/styling/lang/ru/lang.php new file mode 100644 index 00000000..3c8e60b1 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/ru/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; +$lang['js']['loader'] = 'ЗагружаетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотр...
          ЕÑли здеÑÑŒ ÑлучилÑÑ Ñбой, ваши наÑтройки могут быть Ñброшены'; +$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/dokuwiki/lib/plugins/styling/lang/sk/lang.php b/dokuwiki/lib/plugins/styling/lang/sk/lang.php new file mode 100644 index 00000000..00583589 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/sk/lang.php @@ -0,0 +1,18 @@ + + */ +$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/dokuwiki/lib/plugins/styling/lang/zh-tw/lang.php b/dokuwiki/lib/plugins/styling/lang/zh-tw/lang.php new file mode 100644 index 00000000..ce4a9a96 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/zh-tw/lang.php @@ -0,0 +1,15 @@ + + */ +$lang['menu'] = '模æ¿é¢¨æ ¼è¨­å®š'; +$lang['error'] = '抱歉,該模æ¿ä¸æ”¯æŒé€™å€‹åŠŸèƒ½'; +$lang['btn_preview'] = 'é è¦½'; +$lang['btn_save'] = '儲存'; +$lang['btn_reset'] = 'é‡è¨­'; +$lang['btn_revert'] = '將風格復原至模æ¿é è¨­å€¼'; +$lang['__text__'] = 'ä¸»è¦æ–‡å­—é¡è‰²'; +$lang['__background__'] = '主è¦èƒŒæ™¯é¡è‰²'; diff --git a/dokuwiki/lib/plugins/styling/lang/zh/intro.txt b/dokuwiki/lib/plugins/styling/lang/zh/intro.txt new file mode 100644 index 00000000..70917124 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/zh/intro.txt @@ -0,0 +1 @@ +这个工具å¯ä»¥è®©æ‚¨å¯¹å½“å‰é€‰ä¸­çš„æ¨¡æ¿çš„æŸäº›æ ·å¼è®¾ç½®è¿›è¡Œæ”¹å˜ã€‚所有改动会ä¿å­˜åœ¨ä¸€ä¸ªæœ¬åœ°é…置文件中,ä¸ä¼šè¢«å‡çº§æ‰€å½±å“。 \ No newline at end of file diff --git a/dokuwiki/lib/plugins/styling/lang/zh/lang.php b/dokuwiki/lib/plugins/styling/lang/zh/lang.php new file mode 100644 index 00000000..386312a2 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/lang/zh/lang.php @@ -0,0 +1,23 @@ + + */ +$lang['menu'] = 'æ¨¡æ¿æ ·å¼è®¾ç½®'; +$lang['js']['loader'] = '正在载入预览...
          如果本å¥ä¸€ç›´æ²¡æœ‰æ¶ˆå¤±ï¼Œæ‚¨çš„设置å¯èƒ½æœ‰é”™'; +$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/dokuwiki/lib/plugins/styling/plugin.info.txt b/dokuwiki/lib/plugins/styling/plugin.info.txt new file mode 100644 index 00000000..9f002e28 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/styling/popup.php b/dokuwiki/lib/plugins/styling/popup.php new file mode 100644 index 00000000..964b19e2 --- /dev/null +++ b/dokuwiki/lib/plugins/styling/popup.php @@ -0,0 +1,30 @@ +ispopup = true; + +// handle posts +$plugin->handle(); + +// output plugin in a very minimal template: +?> + + + + <?php echo $plugin->getLang('menu') ?> + + + + + + html() ?> + + diff --git a/dokuwiki/lib/plugins/styling/script.js b/dokuwiki/lib/plugins/styling/script.js new file mode 100644 index 00000000..074c8dc4 --- /dev/null +++ b/dokuwiki/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('
          ' + LANG.plugins.styling.loader + '
          '); + $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(''); + $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('

          '); + 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/dokuwiki/lib/plugins/styling/style.less b/dokuwiki/lib/plugins/styling/style.less new file mode 100644 index 00000000..be0e16a5 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/syntax.php b/dokuwiki/lib/plugins/syntax.php index 4a301f92..9e2913d7 100644 --- a/dokuwiki/lib/plugins/syntax.php +++ b/dokuwiki/lib/plugins/syntax.php @@ -52,6 +52,7 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode_Plugin { * 'stack' - Special case. Plugin wraps other paragraphs. * * @see Doku_Handler_Block + * * @return string */ function getPType(){ @@ -70,7 +71,7 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode_Plugin { * @param int $state The lexer state for the match * @param int $pos The character position of the matched text * @param Doku_Handler $handler The Doku_Handler object - * @return array Return an array with all data you want to use in render + * @return bool|array Return an array with all data you want to use in render, false don't add an instruction */ function handle($match, $state, $pos, Doku_Handler $handler){ trigger_error('handle() not implemented in '.get_class($this), E_USER_WARNING); @@ -94,10 +95,10 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode_Plugin { * The contents of the $data array depends on what the handler() function above * created * - * @param $format string output format being rendered - * @param $renderer Doku_Renderer the current renderer object - * @param $data array data created by handler() - * @return boolean rendered correctly? + * @param string $format output format being rendered + * @param Doku_Renderer $renderer the current renderer object + * @param array $data data created by handler() + * @return boolean rendered correctly? (however, returned value is not used at the moment) */ function render($format, Doku_Renderer $renderer, $data) { trigger_error('render() not implemented in '.get_class($this), E_USER_WARNING); diff --git a/dokuwiki/lib/plugins/usermanager/admin.php b/dokuwiki/lib/plugins/usermanager/admin.php index d777b654..6d9bf3b2 100644 --- a/dokuwiki/lib/plugins/usermanager/admin.php +++ b/dokuwiki/lib/plugins/usermanager/admin.php @@ -31,11 +31,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { protected $_edit_userdata = array(); protected $_disabled = ''; // if disabled set to explanatory string protected $_import_failures = array(); + protected $_lastdisabled = false; // set to true if last user is unknown and last button is hence buggy /** * Constructor */ - public function admin_plugin_usermanager(){ + public function __construct(){ /** @var DokuWiki_Auth_Plugin $auth */ global $auth; @@ -58,9 +59,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - /** - * Return prompt for admin menu - */ + /** + * Return prompt for admin menu + * + * @param string $language + * @return string + */ public function getMenuText($language) { if (!is_null($this->_auth)) @@ -71,13 +75,38 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * return sort order for position in admin menu + * + * @return int */ public function getMenuSort() { return 2; } + /** + * @return int current start value for pageination + */ + public function getStart() { + return $this->_start; + } + + /** + * @return int number of users per page + */ + public function getPagesize() { + return $this->_pagesize; + } + + /** + * @param boolean $lastdisabled + */ + public function setLastdisabled($lastdisabled) { + $this->_lastdisabled = $lastdisabled; + } + /** * Handle user request + * + * @return bool */ public function handle() { global $INPUT; @@ -128,6 +157,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Output appropriate html + * + * @return bool */ public function html() { global $ID; @@ -210,18 +241,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" "); ptln(" "); ptln(" "); - ptln(" lang['delete_selected']."\" id=\"usrmgr__del\" />"); + ptln(" "); ptln(" "); ptln(" "); - ptln(" lang['start']."\" />"); - ptln(" lang['prev']."\" />"); - ptln(" lang['next']."\" />"); - ptln(" lang['last']."\" />"); + ptln(" "); + ptln(" "); + ptln(" "); + ptln(" "); ptln(" "); if (!empty($this->_filter)) { - ptln(" lang['clear']."\" />"); + ptln(" "); } - ptln(" "); + ptln(" "); ptln(" "); ptln(" "); @@ -298,12 +329,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" ",$indent); ptln(" ",$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') { @@ -329,7 +360,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlFilterSettings($indent+10); - ptln(" lang[$cmd]."\" />",$indent); + ptln(" ",$indent); ptln(" ",$indent); ptln(" ",$indent); ptln(" ",$indent); @@ -338,7 +369,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($notes) { ptln("
            "); foreach ($notes as $note) { - ptln("
          • ".$note."
          • ",$indent); + ptln("
          • ".$note."
          • ",$indent); } ptln("
          "); } @@ -354,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); @@ -376,7 +408,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { echo ""; echo ""; if($cando){ - echo ""; + $req = ''; + if($required) $req = 'required="required"'; + echo ""; }else{ echo ""; echo ""; @@ -425,7 +459,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln('
          ',$indent); formSecurityToken(); ptln(' ',$indent); - ptln(' ',$indent); + ptln(' ',$indent); ptln(' ',$indent); ptln(' ',$indent); @@ -487,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; } } @@ -504,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; } } @@ -515,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; } } @@ -532,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; @@ -739,6 +784,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { global $auth; global $INPUT; + $user = array(); $user[0] = ($clean) ? $auth->cleanUser($INPUT->str('userid')) : $INPUT->str('userid'); $user[1] = $INPUT->str('userpass'); $user[2] = $INPUT->str('username'); @@ -765,7 +811,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_filter = array(); if ($op == 'new') { - list($user,$pass,$name,$mail,$grps) = $this->_retrieveUser(false); + list($user,/* $pass */,$name,$mail,$grps) = $this->_retrieveUser(false); if (!empty($user)) $this->_filter['user'] = $user; if (!empty($name)) $this->_filter['name'] = $name; @@ -817,6 +863,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $disabled = 'disabled="disabled"'; + $buttons = array(); $buttons['start'] = $buttons['prev'] = ($this->_start == 0) ? $disabled : ''; if ($this->_user_total == -1) { @@ -826,6 +873,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $buttons['last'] = $buttons['next'] = (($this->_start + $this->_pagesize) >= $this->_user_total) ? $disabled : ''; } + if ($this->_lastdisabled) { + $buttons['last'] = $disabled; + } + return $buttons; } @@ -891,7 +942,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!utf8_check($csv)) { $csv = utf8_encode($csv); } - $raw = $this->_getcsv($csv); + $raw = str_getcsv($csv); $error = ''; // clean out any errors from the previous line // data checks... if (1 == ++$line) { @@ -938,8 +989,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * Returns cleaned user data * * @param array $candidate raw values of line from input file - * @param $error - * @return array|bool cleaned data or false + * @param string $error + * @return array|false cleaned data or false */ protected function _cleanImportUser($candidate, & $error){ global $INPUT; @@ -952,7 +1003,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $INPUT->set('usergroups', $candidate[4]); $cleaned = $this->_retrieveUser(); - list($user,$pass,$name,$mail,$grps) = $cleaned; + list($user,/* $pass */,$name,$mail,/* $grps */) = $cleaned; if (empty($user)) { $error = $this->lang['import_error_baduserid']; return false; @@ -1022,35 +1073,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * wrapper for is_uploaded_file to facilitate overriding by test suite + * + * @param string $file filename + * @return bool */ protected function _isUploadedFile($file) { return is_uploaded_file($file); } - - /** - * wrapper for str_getcsv() to simplify maintaining compatibility with php 5.2 - * - * @deprecated remove when dokuwiki php requirement increases to 5.3+ - * also associated unit test & mock access method - */ - protected function _getcsv($csv) { - return function_exists('str_getcsv') ? str_getcsv($csv) : $this->str_getcsv($csv); - } - - /** - * replacement str_getcsv() function for php < 5.3 - * loosely based on www.php.net/str_getcsv#88311 - * - * @deprecated remove when dokuwiki php requirement increases to 5.3+ - */ - protected function str_getcsv($str) { - $fp = fopen("php://temp/maxmemory:1048576", 'r+'); // 1MiB - fputs($fp, $str); - rewind($fp); - - $data = fgetcsv($fp); - - fclose($fp); - return $data; - } } diff --git a/dokuwiki/lib/plugins/usermanager/admin.svg b/dokuwiki/lib/plugins/usermanager/admin.svg new file mode 100644 index 00000000..74a72c05 --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/admin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dokuwiki/lib/plugins/usermanager/images/search.png b/dokuwiki/lib/plugins/usermanager/images/search.png index e9dabc11..3f2a0b53 100644 Binary files a/dokuwiki/lib/plugins/usermanager/images/search.png and b/dokuwiki/lib/plugins/usermanager/images/search.png differ diff --git a/dokuwiki/lib/plugins/usermanager/lang/bg/lang.php b/dokuwiki/lib/plugins/usermanager/lang/bg/lang.php index aadf7651..f98cc8c4 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/bg/lang.php +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/ca/lang.php b/dokuwiki/lib/plugins/usermanager/lang/ca/lang.php index 6debd73c..36b77745 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ca/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/ca/lang.php @@ -1,6 +1,7 @@ * @author carles.bellver@gmail.com diff --git a/dokuwiki/lib/plugins/usermanager/lang/cs/lang.php b/dokuwiki/lib/plugins/usermanager/lang/cs/lang.php index bbb56067..2258b093 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/cs/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/cs/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tomas Valenta * @author Zbynek Krivka * @author Bohumir Zamecnik @@ -15,6 +15,8 @@ * @author Jakub A. Těšínský (j@kub.cz) * @author mkucera66@seznam.cz * @author ZbynÄ›k KÅ™ivka + * @author Jaroslav Lichtblau + * @author Daniel SlováÄek */ $lang['menu'] = 'Správa uživatelů'; $lang['noauth'] = '(autentizace uživatelů není k dispozici)'; @@ -55,20 +57,31 @@ $lang['next'] = 'další'; $lang['last'] = 'poslední'; $lang['edit_usermissing'] = 'Vybraný uživatel nebyl nalezen, zadané uživatelského mohlo být smazáno nebo zmÄ›nÄ›no.'; $lang['user_notify'] = 'Upozornit uživatele'; -$lang['note_notify'] = 'Maily s upozornÄ›ním se budou posílat pouze, když uživatel dostává nové heslo.'; +$lang['note_notify'] = 'E-maily s upozornÄ›ním se budou posílat pouze, když uživatel dostává nové heslo.'; $lang['note_group'] = 'Noví uživatelé budou pÅ™idáváni do této výchozí skupiny (%s), pokud pro nÄ› není uvedena žádná skupina.'; $lang['note_pass'] = 'Heslo bude automaticky vygenerováno, pokud je pole ponecháno prázdné a je zapnuto upozornÄ›ní uživatele.'; $lang['add_ok'] = 'Uživatel úspěšnÄ› vytvoÅ™en'; $lang['add_fail'] = 'VytvoÅ™ení uživatele selhalo'; -$lang['notify_ok'] = 'Odeslán mail s upozornÄ›ním'; -$lang['notify_fail'] = 'Mail s upozornÄ›ním nebylo možno odeslat'; +$lang['notify_ok'] = 'Odeslán e-mail s upozornÄ›ním'; +$lang['notify_fail'] = 'E-mail s upozornÄ›ním nebylo možno odeslat'; +$lang['import_userlistcsv'] = 'Seznam uživatelů (CSV):'; +$lang['import_header'] = 'Poslední selhání importu'; $lang['import_success_count'] = 'Import uživatelů: nalezeno %d uživatelů, %d úspěšnÄ› importováno.'; $lang['import_failure_count'] = 'Import uživatelů: %d selhalo. Seznam chybných je níže.'; $lang['import_error_fields'] = 'Nedostatek položek, nalezena/y %d, požadovány 4.'; $lang['import_error_baduserid'] = 'Chybí User-id'; $lang['import_error_badname'] = 'Å patné jméno'; -$lang['import_error_badmail'] = 'Å patná emailová adresa'; +$lang['import_error_badmail'] = 'Å patná e-mailová adresa'; $lang['import_error_upload'] = 'Import selhal. CSV soubor nemohl být nahrán nebo je prázdný.'; $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 emailem %s nemohlo být zasláno upozornÄ›ní.'; +$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Ä› zaká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/dokuwiki/lib/plugins/usermanager/lang/cy/add.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/add.txt new file mode 100644 index 00000000..c804e531 --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/add.txt @@ -0,0 +1 @@ +===== Ychwanegu defnyddiwr ===== diff --git a/dokuwiki/lib/plugins/usermanager/lang/cy/delete.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/delete.txt new file mode 100644 index 00000000..a81f3a98 --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/delete.txt @@ -0,0 +1 @@ +===== Dileu defnyddiwr ===== diff --git a/dokuwiki/lib/plugins/usermanager/lang/cy/edit.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/edit.txt new file mode 100644 index 00000000..3fcb6d1d --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/edit.txt @@ -0,0 +1 @@ +===== Golygu defnyddiwr ===== diff --git a/dokuwiki/lib/plugins/usermanager/lang/cy/import.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/import.txt new file mode 100644 index 00000000..211e8cf2 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/cy/intro.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/intro.txt new file mode 100644 index 00000000..a381a307 --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/intro.txt @@ -0,0 +1 @@ +====== Rheolwr Defnyddwyr ====== diff --git a/dokuwiki/lib/plugins/usermanager/lang/cy/lang.php b/dokuwiki/lib/plugins/usermanager/lang/cy/lang.php new file mode 100644 index 00000000..5120d39e --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/lang.php @@ -0,0 +1,87 @@ + + * @author Alan Davies + */ + +$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/dokuwiki/lib/plugins/usermanager/lang/cy/list.txt b/dokuwiki/lib/plugins/usermanager/lang/cy/list.txt new file mode 100644 index 00000000..65317749 --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/cy/list.txt @@ -0,0 +1 @@ +===== Rhestr Defnyddwyr ===== diff --git a/dokuwiki/lib/plugins/usermanager/lang/da/import.txt b/dokuwiki/lib/plugins/usermanager/lang/da/import.txt new file mode 100644 index 00000000..8ff1946b --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/da/import.txt @@ -0,0 +1,9 @@ +===== Samling af Brugere Import ===== + +Kræver en CSV-fil med brugere pÃ¥ mindst fire kolonner. +Kolonnerne skal indeholde, i denne orden: bruger-id, fulde navn, email-adresse og grupper. +CSV-felterne skal separeres af kommaer (,) og strengafgrænser med anførelsestegn (%%""%%). Backslash (\) kan benyttes som "escape character". +For et eksempel pÃ¥ en brugbar fil, kan du prøve "Eksportér Brugere"-funktionen her over. +Overlappende bruger-id'er bliver ignoreret. + +En adgangskode vil blive genereret og sendt til hver succesfuldt importeret bruger. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/usermanager/lang/da/lang.php b/dokuwiki/lib/plugins/usermanager/lang/da/lang.php index 47d7efea..1cb4a903 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/da/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/da/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Lars Næsbye Christensen * @author Kalle Sommer Nielsen * @author Esben Laursen @@ -13,6 +13,7 @@ * @author Michael Pedersen subben@gmail.com * @author Mikael Lyngvig * @author soer9648 + * @author Søren Birk */ $lang['menu'] = 'Brugerstyring'; $lang['noauth'] = '(Brugervalidering er ikke tilgængelig)'; @@ -72,3 +73,4 @@ $lang['import_error_upload'] = 'Import Fejlet. CSV-filen kunne ikke uploades e $lang['import_error_readfail'] = 'Import Fejlet. Ikke muligt at læse uploadede fil.'; $lang['import_error_create'] = 'Ikke muligt at oprette brugeren'; $lang['import_notify_fail'] = 'Notifikationsmeddelelse kunne ikke sendes for importerede bruger %s, med emailen %s.'; +$lang['import_downloadfailures'] = 'Download Fejl som CSV til rettelser'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/de-informal/lang.php b/dokuwiki/lib/plugins/usermanager/lang/de-informal/lang.php index bea4159d..2523ce21 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/de-informal/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/de-informal/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Alexander Fischer * @author Juergen Schwarzer * @author Marcel Metz diff --git a/dokuwiki/lib/plugins/usermanager/lang/de/lang.php b/dokuwiki/lib/plugins/usermanager/lang/de/lang.php index 4b297b0d..0ebf67d8 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/de/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Matthias Grimm * @author Andreas Gohr * @author Michael Klier @@ -22,6 +22,9 @@ * @author christian studer * @author Ben Fey * @author Jonas Gröger + * @author Uwe Benzelrath + * @author ms + * @author Carsten Perthel */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -80,5 +83,13 @@ $lang['import_error_badmail'] = 'Ungültige E-Mail'; $lang['import_error_upload'] = 'Import fehlgeschlagen. Die CSV-Datei konnte nicht hochgeladen werden, oder ist leer.'; $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei konnte nicht gelesen werden.'; $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_notify_fail'] = 'Benachrichtigung 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_missing_pass'] = 'Bitte vergeben Sie entweder ein Passwort oder Sie aktivieren die Benutzerbenachrichtigung, um die Passwortgenerierung zu ermöglichen.'; +$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/dokuwiki/lib/plugins/usermanager/lang/en/import.txt b/dokuwiki/lib/plugins/usermanager/lang/en/import.txt index 360a0689..3a1cf999 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/en/import.txt +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/en/lang.php b/dokuwiki/lib/plugins/usermanager/lang/en/lang.php index b55ecc99..5f47673f 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/en/lang.php +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/es/import.txt b/dokuwiki/lib/plugins/usermanager/lang/es/import.txt new file mode 100644 index 00000000..2482096d --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/es/lang.php b/dokuwiki/lib/plugins/usermanager/lang/es/lang.php index a557eacd..1d237e4f 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/es/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/es/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Miguel Pagano * @author Oscar M. Lage * @author Gabriel Castillo @@ -27,6 +27,10 @@ * @author Antonio Bueno * @author Antonio Castilla * @author Jonathan Hernández + * @author Domingo Redal + * @author solohazlo + * @author David Roy + * @author Enny Rodriguez */ $lang['menu'] = 'Administración de usuarios'; $lang['noauth'] = '(la autenticación de usuarios no está disponible)'; @@ -75,9 +79,23 @@ $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_missing_pass'] = 'Por favor, establezca una contraseña o active las notificaciónes de usuario para permitir la generación de contraseñas.'; +$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.'; +$lang['addUser_error_modName_disabled'] = 'La modificación de nombres está desactivada.'; +$lang['addUser_error_mail_missing'] = 'Por favor indica el email del nuevo usuario.'; +$lang['addUser_error_modMail_disabled'] = 'La modificación de email está desactivada.'; +$lang['addUser_error_create_event_failed'] = 'Un plugin impidió que se añadiera el nuevo usuario. Revisa los otros mensajes para obtener más detalles.'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/eu/lang.php b/dokuwiki/lib/plugins/usermanager/lang/eu/lang.php index 5d3a01fc..1fbe1373 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/eu/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/eu/lang.php @@ -1,7 +1,8 @@ * @author Zigor Astarbe */ diff --git a/dokuwiki/lib/plugins/usermanager/lang/fa/import.txt b/dokuwiki/lib/plugins/usermanager/lang/fa/import.txt new file mode 100644 index 00000000..562a28aa --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/fa/import.txt @@ -0,0 +1,6 @@ + ===== اضاÙÙ‡ کردن کاربر ===== + +برای اینکار یک ÙØ§ÛŒÙ„ CSV با حداقل چهار ستون لازم است. ستون‌ها به ترتیب باید شامل id کاربر، نام کامل کاربر، آدرس ایمیل Ùˆ گروه‌های کاربری او باشند. +خانه‌های جدول CSV باید به وسیلهٔ کاما (,) Ùˆ رشته‌ها با علامت نقل قول (%%""%%) از هم جدا شوند. علامت واکج‌خط (\) می‌تواند برای ØºÛŒØ±ÙØ¹Ø§Ù„ کردن معنای کاراکترها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود. برای دیدن یک نمونه از ÙØ§ÛŒÙ„ مناسب، از گزینهٔ "خروجی کاربران" در بالا Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. id های تکراری در جدول در نظر Ú¯Ø±ÙØªÙ‡ نمی‌شوند. + +به ازای هر کاربری Ú©Ù‡ با موÙقیت اضاÙÙ‡ شود یک رمز تولید Ùˆ ایمیل می‌شود. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/usermanager/lang/fa/lang.php b/dokuwiki/lib/plugins/usermanager/lang/fa/lang.php index bb2505a2..02734fef 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/fa/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/fa/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author behrad eslamifar * @author omidmr@gmail.com @@ -12,6 +12,7 @@ * @author AmirH Hassaneini * @author Hamid * @author Mohamad Mehdi Habibi + * @author Masoud Sadrnezhaad */ $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/dokuwiki/lib/plugins/usermanager/lang/fi/lang.php b/dokuwiki/lib/plugins/usermanager/lang/fi/lang.php index de243133..dba67fb6 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/fi/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/fi/lang.php @@ -7,6 +7,7 @@ * @author Otto Vainio * @author Teemu Mattila * @author Sami Olmari + * @author Jussi Takala */ $lang['menu'] = 'Käyttäjähallinta'; $lang['noauth'] = '(autentikointi ei ole käytössä)'; @@ -29,6 +30,9 @@ $lang['search'] = 'Hae'; $lang['search_prompt'] = 'Tee haku'; $lang['clear'] = 'Tyhjennä hakusuodatin'; $lang['filter'] = 'Suodatin'; +$lang['import'] = 'Tuo uusia käyttäjiä'; +$lang['line'] = 'Rivi nro.'; +$lang['error'] = 'Vikailmoitus'; $lang['summary'] = 'Näytetään käyttäjät %1$d-%2$d / %3$d löytynyttä. %4$d käyttäjää yhteensä.'; $lang['nonefound'] = 'Ei löytynyt käyttäjiä. %d käyttäjää yhteensä.'; $lang['delete_ok'] = '%d käyttäjää poistettu'; @@ -49,3 +53,9 @@ $lang['add_ok'] = 'Käyttäjä lisätty onnistuneesti'; $lang['add_fail'] = 'Käyttäjän lisäys epäonnistui'; $lang['notify_ok'] = 'Ilmoitus sähköpostilla lähetetty'; $lang['notify_fail'] = 'Ilmoitusta sähköpostilla ei voitu lähettää'; +$lang['import_error_baduserid'] = 'Käyttäjätunnus puuttuu'; +$lang['import_error_badname'] = 'Epäkelpo nimi'; +$lang['import_error_badmail'] = 'Epäkelpo sähköpostiosoite'; +$lang['import_error_upload'] = 'Tuonti epäonnistui. CSV-tiedostoa ei voitu ladata tai se on tyhjä.'; +$lang['import_error_readfail'] = 'Tuonti epäonnistui. Ladattua tiedostoa ei voida lukea.'; +$lang['import_error_create'] = 'Käyttäjää ei voida luoda.'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/fr/lang.php b/dokuwiki/lib/plugins/usermanager/lang/fr/lang.php index dd0e64fc..d1db76c2 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/fr/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guy Brand * @author Delassaux Julien * @author Maurice A. LeBlanc @@ -15,15 +15,16 @@ * @author Florian Gaub * @author Samuel Dorsaz samuel.dorsaz@novelion.net * @author Johan Guilbaud - * @author schplurtz@laposte.net * @author skimpax@gmail.com * @author Yannick Aure * @author Olivier DUVAL * @author Anael Mobilia * @author Bruno Veilleux * @author Antoine Turmel - * @author schplurtz * @author Jérôme Brandt + * @author Schplurtz le Déboulonné + * @author Olivier Humbert + * @author Eric */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -84,3 +85,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 adresse 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/dokuwiki/lib/plugins/usermanager/lang/hr/lang.php b/dokuwiki/lib/plugins/usermanager/lang/hr/lang.php index 80613ed6..39620edb 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/hr/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj */ $lang['menu'] = 'Upravitelj korisnicima'; @@ -21,7 +21,7 @@ $lang['delete'] = 'ObriÅ¡i'; $lang['delete_selected'] = 'ObriÅ¡i odabrano'; $lang['edit'] = 'Uredi'; $lang['edit_prompt'] = 'Uredi ovog korisnika'; -$lang['modify'] = 'Snimi promjene'; +$lang['modify'] = 'Pohrani promjene'; $lang['search'] = 'Potraži'; $lang['search_prompt'] = 'Izvedi potragu'; $lang['clear'] = 'ObriÅ¡i filtar potrage'; @@ -33,7 +33,7 @@ $lang['line'] = 'Linija br.'; $lang['error'] = 'Poruka o greÅ¡ci'; $lang['summary'] = 'Prikaz korisnika %1$d-%2$d od %3$d naÄ‘enih. Ukupno %4$d korisnika.'; $lang['nonefound'] = 'Nema korisnika koji odgovaraju filtru.Ukupno %d korisnika.'; -$lang['delete_ok'] = '%d korisnik obrisano'; +$lang['delete_ok'] = '%d korisnika obrisano'; $lang['delete_fail'] = '%d neuspjelih brisanja.'; $lang['update_ok'] = 'Korisnik uspjeÅ¡no izmijenjen'; $lang['update_fail'] = 'Neuspjela izmjena korisnika'; @@ -49,7 +49,7 @@ $lang['note_group'] = 'Novi korisnik biti će dodijeljen u podrazumij $lang['note_pass'] = 'Lozinka će biti generirana ako se polje ostavi prazno i obavješćivanje korisnika je omogućeno.'; $lang['add_ok'] = 'Korisnik uspjeÅ¡no dodan'; $lang['add_fail'] = 'NeuspjeÅ¡no dodavanje korisnika'; -$lang['notify_ok'] = 'Obavijest korisniku poslana'; +$lang['notify_ok'] = 'Poslana obavijest korisniku'; $lang['notify_fail'] = 'Obavijest korisniku ne može biti poslana'; $lang['import_userlistcsv'] = 'Datoteka s popisom korisnika (CSV):'; $lang['import_header'] = 'Zadnje greÅ¡ke pri uvozu'; @@ -64,3 +64,11 @@ $lang['import_error_readfail'] = 'Uvoz neuspjeÅ¡an. Ne mogu proÄitati uÄitanu $lang['import_error_create'] = 'Ne mogu kreirati korisnika'; $lang['import_notify_fail'] = 'Obavijest uvezenom korisniku %s nije moguće poslati na adresu e-poÅ¡te %s.'; $lang['import_downloadfailures'] = 'Preuzmi greÅ¡ke kao CSV za ispravak'; +$lang['addUser_error_missing_pass'] = 'Molim ili postavite lozinku ili aktivirajte obavijest korisniku za omogućavanje generiranje lozinke.'; +$lang['addUser_error_pass_not_identical'] = 'Unesene lozinke nisu identiÄne.'; +$lang['addUser_error_modPass_disabled'] = 'Izmjena lozinke je trenutno onemogućena.'; +$lang['addUser_error_name_missing'] = 'Molim unesite ime novog korisnika.'; +$lang['addUser_error_modName_disabled'] = 'Izmjena imena je trenutno onemogućena.'; +$lang['addUser_error_mail_missing'] = 'Molim unesite adresu epoÅ¡te za novog korisnika.'; +$lang['addUser_error_modMail_disabled'] = 'Izmjena adrese epoÅ¡te je trenutno onemogućena.'; +$lang['addUser_error_create_event_failed'] = 'Dodatak je sprijeÄio dodavanje novog korisnika. Pogledajte eventualne ostale poruke za viÅ¡e informacija.'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/it/import.txt b/dokuwiki/lib/plugins/usermanager/lang/it/import.txt new file mode 100644 index 00000000..ed7b0001 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/it/lang.php b/dokuwiki/lib/plugins/usermanager/lang/it/lang.php index ffded348..a4834f51 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/it/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/it/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Chris Smith * @author Silvia Sargentoni * @author Pietro Battiston toobaz@email.it @@ -18,6 +18,7 @@ * @author Claudio Lanconelli * @author Francesco * @author Fabio + * @author Torpedo */ $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/dokuwiki/lib/plugins/usermanager/lang/ja/import.txt b/dokuwiki/lib/plugins/usermanager/lang/ja/import.txt index 6af87c26..4987df0e 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ja/import.txt +++ b/dokuwiki/lib/plugins/usermanager/lang/ja/import.txt @@ -1,7 +1,7 @@ ===== 一括ユーザーインãƒãƒ¼ãƒˆ ===== å°‘ãªãã¨ã‚‚4列ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼CSVファイルãŒå¿…è¦ã§ã™ã€‚ -列ã®é †åºï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼IDã€æ°åã€é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€ã‚°ãƒ«ãƒ¼ãƒ—。 +列ã®é †åºï¼š ユーザーIDã€ãƒ•ルãƒãƒ¼ãƒ ã€é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€ã‚°ãƒ«ãƒ¼ãƒ—。 CSVフィールドã¯ã‚«ãƒ³ãƒžï¼ˆ,ï¼‰åŒºåˆ‡ã‚Šã€æ–‡å­—列ã¯å¼•用符(%%""%%)区切りã§ã™ã€‚ エスケープã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ï¼ˆ\)を使用ã§ãã¾ã™ã€‚ é©åˆ‡ãªãƒ•ァイル例ã¯ã€ä¸Šè¨˜ã®"エクスãƒãƒ¼ãƒˆãƒ¦ãƒ¼ã‚¶ãƒ¼"機能ã§è©¦ã—ã¦ä¸‹ã•ã„。 diff --git a/dokuwiki/lib/plugins/usermanager/lang/ja/lang.php b/dokuwiki/lib/plugins/usermanager/lang/ja/lang.php index 23109f2a..5c252bb2 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ja/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/ja/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Yuji Takenaka * @author Chris Smith * @author Ikuo Obataya @@ -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/dokuwiki/lib/plugins/usermanager/lang/ko/import.txt b/dokuwiki/lib/plugins/usermanager/lang/ko/import.txt index 6d077dfb..b5801e66 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ko/import.txt +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/ko/lang.php b/dokuwiki/lib/plugins/usermanager/lang/ko/lang.php index 70e3d94f..805fda5e 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ko/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/ko/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author jk Lee * @author dongnak@gmail.com * @author Song Younghwan @@ -11,9 +11,10 @@ * @author Myeongjin * @author Gerrit Uitslag * @author Garam + * @author Erial */ $lang['menu'] = 'ì‚¬ìš©ìž ê´€ë¦¬ìž'; -$lang['noauth'] = '(ì‚¬ìš©ìž ì¸ì¦ì´ 불가능합니다)'; +$lang['noauth'] = '(ì‚¬ìš©ìž ì¸ì¦ì„ 사용할 수 없습니다)'; $lang['nosupport'] = '(ì‚¬ìš©ìž ê´€ë¦¬ê°€ ì§€ì›ë˜ì§€ 않습니다)'; $lang['badauth'] = 'ì¸ì¦ ë©”ì»¤ë‹ˆì¦˜ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['user_id'] = '사용ìž'; @@ -35,25 +36,25 @@ $lang['clear'] = '검색 í•„í„° 재설정'; $lang['filter'] = 'í•„í„°'; $lang['export_all'] = '모든 ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸° (CSV)'; $lang['export_filtered'] = 'í•„í„°ëœ ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸° (CSV)'; -$lang['import'] = '새 ì‚¬ìš©ìž ëª©ë¡ ê°€ì ¸ì˜¤ê¸°'; +$lang['import'] = '새 ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°'; $lang['line'] = '줄 번호'; $lang['error'] = '오류 메시지'; -$lang['summary'] = 'ì°¾ì€ ì‚¬ìš©ìž %3$d 중 %1$d-%2$dì„(를) 봅니다. ì „ì²´ 사용ìžëŠ” %4$d명입니다.'; +$lang['summary'] = 'ì°¾ì€ ì‚¬ìš©ìž %3$d명 중 %1$d-%2$dì„(를) 봅니다. ì „ì²´ 사용ìžëŠ” %4$d명입니다.'; $lang['nonefound'] = 'ì°¾ì€ ì‚¬ìš©ìžê°€ 없습니다. ì „ì²´ 사용ìžëŠ” %d명입니다.'; $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_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/dokuwiki/lib/plugins/usermanager/lang/lt/lang.php b/dokuwiki/lib/plugins/usermanager/lang/lt/lang.php index db3cf2d3..3c002930 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/lt/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/lt/lang.php @@ -1,7 +1,8 @@ * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas diff --git a/dokuwiki/lib/plugins/usermanager/lang/nl/lang.php b/dokuwiki/lib/plugins/usermanager/lang/nl/lang.php index 3f9902e1..8233d866 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/nl/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/nl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Wouter Schoot * @author John de Graaff * @author Niels Schoot @@ -16,6 +16,7 @@ * @author Ricardo Guijt * @author Gerrit Uitslag * @author Rene + * @author Wesley de Weerd */ $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/dokuwiki/lib/plugins/usermanager/lang/no/import.txt b/dokuwiki/lib/plugins/usermanager/lang/no/import.txt new file mode 100644 index 00000000..5d96282f --- /dev/null +++ b/dokuwiki/lib/plugins/usermanager/lang/no/import.txt @@ -0,0 +1,7 @@ +===== Masseimport av brukerer ===== + +Er avhengig av en CSV-fil med brukere med minst fire felt. Feltene mÃ¥ inneholde i rekkefølge: brukernavn, fult navn, e-postadresse, og grupper. +CSV-feltene separeres med komma (,) og tekst mÃ¥ avgrensen ved hjelp av anførselstegn (%%""%%). Omvendt skrÃ¥tegn (\) brukes for Ã¥ beskytte spesialtegn. +Et eksempel pÃ¥ en CSV-fil kan lages ved Ã¥ bruke «Eksportere brukere»-funksjonene over her. Dupliserte brukernavn vil bli ignorert. + +Et passord vil bli laget, og sendt via e-post til alle bruker som ble importert. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/usermanager/lang/no/lang.php b/dokuwiki/lib/plugins/usermanager/lang/no/lang.php index 83823b2b..8bd88945 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/no/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thomas Nygreen * @author Arild Burud * @author Torkill Bruland @@ -16,6 +16,7 @@ * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe * @author Egil Hansen + * @author Arne Hanssen */ $lang['menu'] = 'Behandle brukere'; $lang['noauth'] = '(autentisering av brukere ikke tilgjengelig)'; @@ -38,6 +39,11 @@ $lang['search'] = 'Søk'; $lang['search_prompt'] = 'Start søk'; $lang['clear'] = 'Tilbakestill søkefilter'; $lang['filter'] = 'Filter'; +$lang['export_all'] = 'Eksporter alle brukere (CSV)'; +$lang['export_filtered'] = 'Eksporter den filtrerte listen (CSV)'; +$lang['import'] = 'Importer nye brukere'; +$lang['line'] = 'Linje nr.'; +$lang['error'] = 'Feilmelding'; $lang['summary'] = 'Viser brukere %1$d-%2$d av %3$d. %4$d users total.'; $lang['nonefound'] = 'Ingen brukere funnet. %d brukere totalt.'; $lang['delete_ok'] = '%d brukere slettet.'; @@ -53,8 +59,29 @@ $lang['edit_usermissing'] = 'Fant ikke valgte brukere. Det oppgitte brukern $lang['user_notify'] = 'Varsle bruker'; $lang['note_notify'] = 'E-post med varsling blir bare sendt hvis brukeren blir gitt nytt passord.'; $lang['note_group'] = 'Nye brukere vil bli lagt til standardgruppen (%s) hvis ingen gruppe oppgis.'; -$lang['note_pass'] = 'Passordet vil bli autogenerert dersom feltet er tomt og varsle bruker er valgt.'; +$lang['note_pass'] = 'Et nytt passordet vil bli laget dersom passordfeltet er tomt og«Varsle bruker» er huket av.'; $lang['add_ok'] = 'Brukeren ble lagt til'; $lang['add_fail'] = 'Brukeren kunne ikke legges til'; $lang['notify_ok'] = 'Varsling sendt'; $lang['notify_fail'] = 'Varsling kunne ikke sendes'; +$lang['import_userlistcsv'] = 'Brukerliste (CSV):'; +$lang['import_header'] = 'Siste brukerimport - Liste med feil'; +$lang['import_success_count'] = 'Brukerimport: %d brukere ble funnet, %d av disse ble importert.'; +$lang['import_failure_count'] = 'Brukerimport: %d brukere ble ikke importert. Feilene blir listet under her.'; +$lang['import_error_fields'] = 'For fÃ¥ felt, fant %d, men trenger 4.'; +$lang['import_error_baduserid'] = 'Mangler brukernavn'; +$lang['import_error_badname'] = 'Noe feil med navn'; +$lang['import_error_badmail'] = 'Noe feil med e-postadressen'; +$lang['import_error_upload'] = 'Feil med import. Klarte ikke laste opp CSV-filen, eller sÃ¥ er denne tom.'; +$lang['import_error_readfail'] = 'Feil med import. Klarte ikke lese filen som er lastet opp.'; +$lang['import_error_create'] = 'Klarte ikke opprette brukeren'; +$lang['import_notify_fail'] = 'Melding til bruker kunne ikke bli sent for importerte bruker, %s med e-postadresse %s.'; +$lang['import_downloadfailures'] = 'Last ned feilende verdier som CSV for retting'; +$lang['addUser_error_missing_pass'] = 'Du mÃ¥ enten skrive inn et passord, eller slÃ¥ pÃ¥ «Varsle bruker» slik at systemet selv lager et nytt passord'; +$lang['addUser_error_pass_not_identical'] = 'Passordene er ikk identisk'; +$lang['addUser_error_modPass_disabled'] = 'Endre passord er slÃ¥tt av.'; +$lang['addUser_error_name_missing'] = 'Skriv inn navnet til den nye brukeren'; +$lang['addUser_error_modName_disabled'] = 'Endre navn er slÃ¥tt av.'; +$lang['addUser_error_mail_missing'] = 'Skriv inn e-postadressen til den nye brukeren.'; +$lang['addUser_error_modMail_disabled'] = 'Endre e-postadresse er slÃ¥tt av.'; +$lang['addUser_error_create_event_failed'] = 'En utvidelse hindrer at den nye brukeren kan legges inn. Sjekk ev. andre tilbakemeldinger for mer informasjon.'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/pt-br/import.txt b/dokuwiki/lib/plugins/usermanager/lang/pt-br/import.txt new file mode 100644 index 00000000..d692bb36 --- /dev/null +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/lang/pt-br/lang.php b/dokuwiki/lib/plugins/usermanager/lang/pt-br/lang.php index 356d139e..ec116e73 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/pt-br/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Frederico Gonçalves Guimarães * @author Felipe Castro * @author Lucien Raven @@ -21,6 +21,8 @@ * @author Leone Lisboa Magevski * @author Dário Estevão * @author Juliano Marconi Lanigra + * @author Guilherme Cardoso + * @author Viliam Dias */ $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/dokuwiki/lib/plugins/usermanager/lang/pt/lang.php b/dokuwiki/lib/plugins/usermanager/lang/pt/lang.php index b59649aa..86885e41 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/pt/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/pt/lang.php @@ -8,6 +8,10 @@ * @author Fil * @author André Neves * @author José Campos zecarlosdecampos@gmail.com + * @author Guido Salatino + * @author Romulo Pereira + * @author Paulo Carmino + * @author Alfredo Silva */ $lang['menu'] = 'Gestor de Perfis'; $lang['noauth'] = '(autenticação indisponível)'; @@ -33,6 +37,8 @@ $lang['filter'] = 'Filtro'; $lang['export_all'] = 'Exportar Todos os Utilizadores (CSV)'; $lang['export_filtered'] = 'Exportar a lista de utilizadores filtrada (CSV)'; $lang['import'] = 'Importar Novos Utilizadores'; +$lang['line'] = 'Linha nº +'; $lang['error'] = 'Mensagem de erro'; $lang['summary'] = 'Apresentar utilizadores %1$d-%2$d de %3$d encontrados. %4$d inscritos.'; $lang['nonefound'] = 'Nenhum utilizador encontrado. %d inscritos.'; @@ -54,11 +60,17 @@ $lang['add_ok'] = 'Utilizador adicionado.'; $lang['add_fail'] = 'Utilizador não adicionado.'; $lang['notify_ok'] = 'Mensagem de notificação enviada.'; $lang['notify_fail'] = 'Não foi possível enviar mensagem de notificação'; +$lang['import_userlistcsv'] = 'Arquivo de lista do usuário (CSV): +'; +$lang['import_header'] = 'Mais Recentes Importações - Falhas'; $lang['import_success_count'] = 'Importar Utilizadores: %d utiliyadores encontrados, %d importados com sucesso.'; $lang['import_failure_count'] = 'Importar Utilizadores: %d falharam. As falhas estão listadas abaixo.'; $lang['import_error_fields'] = 'Campos insuficientes, encontrados %d mas requeridos 4.'; $lang['import_error_baduserid'] = 'Falta id de utilizador'; +$lang['import_error_badname'] = 'Nome inválido'; +$lang['import_error_badmail'] = 'E-Mail inválido'; $lang['import_error_upload'] = 'Falhou a importação. O ficheiro csv não pôde ser importado ou está vazio.'; $lang['import_error_readfail'] = 'Falhou a importação. Não foi possível ler o ficheiro submetido.'; $lang['import_error_create'] = 'Não foi possível criar o utilizador.'; $lang['import_notify_fail'] = 'A mensagem de notificação não pôde ser enviada para o utilizador importado, %s com email %s.'; +$lang['import_downloadfailures'] = 'Baixe Falhas como CSV para a correção'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/ro/lang.php b/dokuwiki/lib/plugins/usermanager/lang/ro/lang.php index 1b33cc4f..d65fac95 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ro/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/ro/lang.php @@ -1,6 +1,7 @@ * @author s_baltariu@yahoo.com diff --git a/dokuwiki/lib/plugins/usermanager/lang/ru/import.txt b/dokuwiki/lib/plugins/usermanager/lang/ru/import.txt index f2049dd0..22372c25 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ru/import.txt +++ b/dokuwiki/lib/plugins/usermanager/lang/ru/import.txt @@ -2,8 +2,8 @@ ПотребуетÑÑ ÑпиÑок пользователей в файле формата CSV, ÑоÑтоÑщий из 4 Ñтолбцов. Столбцы должны быть заполнены Ñледующим образом: user-id, полное имÑ, Ñл. почта, группы. -ÐŸÐ¾Ð»Ñ CSV должны быть отделены запÑтой (,), а Ñтроки должны быть заключены в кавычки (%%""%%). Обратный ÑлÑш иÑпользуетÑÑ ÐºÐ°Ðº прерывание. -Ð’ качеÑтве примера можете взÑть ÑпиÑок пользователей, ÑкÑпортированный через «ЭкÑпорт пользователей». +ÐŸÐ¾Ð»Ñ CSV должны быть отделены запÑтой (,), а Ñтроки должны быть заключены в кавычки (%%""%%). Обратный ÑлÑш (\) иÑпользуетÑÑ ÐºÐ°Ðº прерывание. +Ð’ качеÑтве примера можете взÑть ÑпиÑок пользователей, ÑкÑпортированный через «ЭкÑпорт пользователей». ПовторÑющиеÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ñ‹ user-id будут игнорироватьÑÑ. Пароль доÑтупа будет Ñгенерирован и отправлен по почте удачно импортированному пользователю. \ No newline at end of file diff --git a/dokuwiki/lib/plugins/usermanager/lang/ru/lang.php b/dokuwiki/lib/plugins/usermanager/lang/ru/lang.php index 8bbfa639..32ce109a 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/ru/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Denis Simakov * @author Andrew Pleshakov * @author Змей ЭтерийÑкий evil_snake@eternion.ru @@ -21,6 +21,9 @@ * @author Pavel * @author Aleksandr Selivanov * @author Igor Degraf + * @author Vitaly Filatenko + * @author dimsharav + * @author Radimir */ $lang['menu'] = 'Управление пользователÑми'; $lang['noauth'] = '(Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ недоÑтупна)'; @@ -44,8 +47,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.'; @@ -59,18 +62,20 @@ $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'] = 'ПиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ отправлено'; $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, а нужно 4.'; +$lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. Ошибки перечиÑлены ниже.'; +$lang['import_error_fields'] = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а нужно: 4.'; $lang['import_error_baduserid'] = 'ОтÑутÑтвует идентификатор пользователÑ'; $lang['import_error_badname'] = 'Ð˜Ð¼Ñ Ð½Ðµ годитÑÑ'; $lang['import_error_badmail'] = 'ÐÐ´Ñ€ÐµÑ Ñлектронной почты не годитÑÑ'; @@ -78,4 +83,12 @@ $lang['import_error_upload'] = 'Импорт не удалÑÑ. CSV-файл $lang['import_error_readfail'] = 'Импорт не удалÑÑ. Ðевозможно прочеÑть загруженный файл.'; $lang['import_error_create'] = 'Ðевозможно Ñоздать пользователÑ'; $lang['import_notify_fail'] = 'Оповещение не может быть отправлено импортированному пользователю %s по Ñлектронной почте %s.'; -$lang['import_downloadfailures'] = 'Скачать Ошибки в формате CSV Ð´Ð»Ñ Ð¸ÑправлениÑ'; +$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 в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; +$lang['addUser_error_create_event_failed'] = 'Плагин заблокировал добавление нового пользователÑ. Смотрите также другие ÑообщениÑ.'; diff --git a/dokuwiki/lib/plugins/usermanager/lang/sk/lang.php b/dokuwiki/lib/plugins/usermanager/lang/sk/lang.php index 535f7797..2c466c98 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/sk/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/sk/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ondrej Végh * @author Michal Mesko * @author exusik@gmail.com @@ -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/dokuwiki/lib/plugins/usermanager/lang/sr/lang.php b/dokuwiki/lib/plugins/usermanager/lang/sr/lang.php index 5f2669b5..858a2139 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/sr/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/sr/lang.php @@ -1,6 +1,7 @@ diff --git a/dokuwiki/lib/plugins/usermanager/lang/zh/lang.php b/dokuwiki/lib/plugins/usermanager/lang/zh/lang.php index b833c6ce..8f7e4fe0 100644 --- a/dokuwiki/lib/plugins/usermanager/lang/zh/lang.php +++ b/dokuwiki/lib/plugins/usermanager/lang/zh/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ZDYX * @author http://www.chinese-tools.com/tools/converter-tradsimp.html * @author George Sheraton guxd@163.com @@ -18,6 +18,7 @@ * @author Rachel * @author Yangyu Huang * @author oott123 + * @author Garfield */ $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/dokuwiki/lib/plugins/usermanager/plugin.info.txt b/dokuwiki/lib/plugins/usermanager/plugin.info.txt index ae4f9b9c..607eca75 100644 --- a/dokuwiki/lib/plugins/usermanager/plugin.info.txt +++ b/dokuwiki/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/dokuwiki/lib/plugins/usermanager/style.css b/dokuwiki/lib/plugins/usermanager/style.css index d119b195..9028fed5 100644 --- a/dokuwiki/lib/plugins/usermanager/style.css +++ b/dokuwiki/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/dokuwiki/lib/scripts/behaviour.js b/dokuwiki/lib/scripts/behaviour.js index 6b46add0..18308d68 100644 --- a/dokuwiki/lib/scripts/behaviour.js +++ b/dokuwiki/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 */ -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 */ -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); }); }; @@ -56,6 +60,8 @@ var dw_behaviour = { jQuery(document).on('click','#page__revisions input[type=checkbox]', dw_behaviour.revisionBoxHandler ); + + jQuery('.bounce').effect('bounce', {times:10}, 2000 ); }, /** @@ -64,7 +70,14 @@ var dw_behaviour = { scrollToMarker: function(){ var $obj = jQuery('#scroll__here'); if($obj.length) { - $obj[0].scrollIntoView(); + if($obj.offset().top != 0) { + jQuery('html, body').animate({ + scrollTop: $obj.offset().top - 100 + }, 500); + } else { + // hidden object have no offset but can still be scrolled into view + $obj[0].scrollIntoView(); + } } }, @@ -77,13 +90,11 @@ var dw_behaviour = { /** * Remove all search highlighting when clicking on a highlighted term - * - * @FIXME would be nice to have it fade out */ removeHighlightOnClick: function(){ jQuery('span.search_hit').click( function(e){ - jQuery(e.target).removeClass('search_hit'); + jQuery(e.target).removeClass('search_hit', 1000); } ); }, @@ -100,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(); }, /** @@ -157,26 +168,28 @@ var dw_behaviour = { * disable multiple revisions checkboxes if two are checked * * @author Andreas Gohr + * @author Anika Henke */ - revisionBoxHandler: function(){ - var $checked = jQuery('#page__revisions input[type=checkbox]:checked'); - var $all = jQuery('#page__revisions input[type=checkbox]'); + revisionBoxHandler: function() { + var $revisions = jQuery('#page__revisions'); + var $all = jQuery('input[type=checkbox]', $revisions); + var $checked = $all.filter(':checked'); + var $button = jQuery('button', $revisions); - if($checked.length < 2){ - $all.attr('disabled',false); - jQuery('#page__revisions input[type=submit]').attr('disabled',true); - }else{ - $all.attr('disabled',true); - jQuery('#page__revisions input[type=submit]').attr('disabled',false); - for(var i=0; i<$checked.length; i++){ - $checked[i].disabled = false; - if(i>1){ - $checked[i].checked = false; + if($checked.length < 2) { + $all.removeAttr('disabled'); + $button.attr('disabled', true); + } else { + $all.attr('disabled', true); + $button.removeAttr('disabled'); + $checked.each(function(i) { + jQuery(this).removeAttr('disabled'); + if(i>1) { + jQuery(this).attr('checked', false); } - } + }); } } - }; jQuery(dw_behaviour.init); diff --git a/dokuwiki/lib/scripts/compatibility.js b/dokuwiki/lib/scripts/compatibility.js index fc020cce..154aeadf 100644 --- a/dokuwiki/lib/scripts/compatibility.js +++ b/dokuwiki/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() 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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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 - */ -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/dokuwiki/lib/scripts/edit.js b/dokuwiki/lib/scripts/edit.js index c07b8f97..b3e97b63 100644 --- a/dokuwiki/lib/scripts/edit.js +++ b/dokuwiki/lib/scripts/edit.js @@ -7,9 +7,16 @@ /** * Creates a toolbar button through the DOM + * Called for each entry of toolbar definition array (built by inc/toolbar.php and extended via js) * * Style the buttons through the toolbutton class * + * @param {string} icon image filename, relative to folder lib/images/toolbar/ + * @param {string} label title of button, show on mouseover + * @param {string} key hint in title of button for access key + * @param {string} id id of button, and '_ico' of icon + * @param {string} classname for styling buttons + * * @author Andreas Gohr * @author Michal Rezler */ @@ -57,10 +64,10 @@ function createToolButton(icon,label,key,id,classname){ * class or the picker buttons with the pickerbutton class. Picker * windows are appended to the body and created invisible. * - * @param string id the ID to assign to the picker - * @param array props the properties for the picker - * @param string edid the ID of the textarea - * @rteurn DOMobject the created picker + * @param {string} id the ID to assign to the picker + * @param {Array} props the properties for the picker + * @param {string} edid the ID of the textarea + * @return DOMobject the created picker * @author Andreas Gohr */ function createPicker(id,props,edid){ @@ -78,7 +85,7 @@ function createPicker(id,props,edid){ var $btn = jQuery(document.createElement('button')) .addClass('pickerbutton').attr('title', title) .attr('aria-controls', edid) - .bind('click', bind(pickerInsert, title, edid)) + .on('click', bind(pickerInsert, title, edid)) .appendTo($picker); return $btn; } @@ -126,15 +133,15 @@ function pickerInsert(text,edid){ /** * Add button action for signature button * - * @param DOMElement btn Button element to add the action to - * @param array props Associative array of button properties - * @param string edid ID of the editor textarea - * @return boolean If button should be appended + * @param {jQuery} $btn Button element to add the action to + * @param {Array} props Associative array of button properties + * @param {string} edid ID of the editor textarea + * @return {string} picker id for aria-controls attribute * @author Gabriel Birke */ function addBtnActionSignature($btn, props, edid) { if(typeof SIG != 'undefined' && SIG != ''){ - $btn.bind('click', function (e) { + $btn.on('click', function (e) { insertAtCarret(edid,SIG); e.preventDefault(); }); @@ -146,6 +153,8 @@ function addBtnActionSignature($btn, props, edid) { /** * Determine the current section level while editing * + * @param {string} textboxId ID of the text field + * * @author Andreas Gohr */ function currentHeadlineLevel(textboxId){ @@ -178,6 +187,10 @@ function currentHeadlineLevel(textboxId){ */ window.textChanged = false; +/** + * global var which stores original editor content + */ +window.doku_edit_text_content = ''; /** * Delete the draft before leaving the page */ @@ -204,6 +217,7 @@ function deleteDraft() { /** * Activate "not saved" dialog, add draft deletion to page unload, * add handlers to monitor changes + * Note: textChanged could be set by e.g. html_edit() as well * * Sets focus to the editbox as well */ @@ -225,15 +239,18 @@ jQuery(function () { sel.end = 0; DWsetSelection(sel); $edit_text.focus(); + + doku_edit_text_content = $edit_text.val(); } - var checkfunc = function() { - textChanged = true; //global var - summaryCheck(); + var changeHandler = function() { + doku_hasTextBeenModified(); + + doku_summaryCheck(); }; - $editform.change(checkfunc); - $editform.keydown(checkfunc); + $editform.change(changeHandler); + $editform.keydown(changeHandler); window.onbeforeunload = function(){ if(window.textChanged) { @@ -258,18 +275,33 @@ jQuery(function () { ); var $summary = jQuery('#edit__summary'); - $summary.change(summaryCheck); - $summary.keyup(summaryCheck); + $summary.change(doku_summaryCheck); + $summary.keyup(doku_summaryCheck); - if (textChanged) summaryCheck(); + if (textChanged) doku_summaryCheck(); }); +/** + * Updates textChanged variable if content of the editor has been modified + */ +function doku_hasTextBeenModified() { + if (!textChanged) { + var $edit_text = jQuery('#wiki__text'); + + if ($edit_text.length > 0) { + textChanged = doku_edit_text_content != $edit_text.val(); + } else { + textChanged = true; + } + } +} + /** * Checks if a summary was entered - if not the style is changed * * @author Andreas Gohr */ -function summaryCheck(){ +function doku_summaryCheck(){ var $sum = jQuery('#edit__summary'), missing = $sum.val() === ''; $sum.toggleClass('missing', missing).toggleClass('edit', !missing); diff --git a/dokuwiki/lib/scripts/editor.js b/dokuwiki/lib/scripts/editor.js index 74919cb9..c9cb312b 100644 --- a/dokuwiki/lib/scripts/editor.js +++ b/dokuwiki/lib/scripts/editor.js @@ -25,13 +25,7 @@ var dw_editor = { return; } - // in Firefox, keypress doesn't send the correct keycodes, - // in Opera, the default of keydown can't be prevented - if (jQuery.browser.opera) { - $editor.keypress(dw_editor.keyHandler); - } else { - $editor.keydown(dw_editor.keyHandler); - } + $editor.keydown(dw_editor.keyHandler); }, @@ -63,7 +57,7 @@ var dw_editor = { ['smaller', function(){dw_editor.sizeCtl(editor,-100);}], ['wrap', function(){dw_editor.toggleWrap(editor);}] ], function (_, img) { - jQuery(document.createElement('IMG')) + jQuery(document.createElement('img')) .attr('src', DOKU_BASE+'lib/images/' + img[0] + '.gif') .attr('alt', '') .click(img[1]) @@ -124,14 +118,15 @@ var dw_editor = { * Listens to all key inputs and handle indentions * of lists and code blocks * - * Currently handles space, backspce and enter presses + * Currently handles space, backspace, enter and + * ctrl-enter presses * * @author Andreas Gohr * @fixme handle tabs * @param event e - the key press event object */ keyHandler: function(e){ - if(jQuery.inArray(e.keyCode,[8, 13, 32]) === -1) { + if(jQuery.inArray(e.keyCode,[8, 10, 13, 32]) === -1) { return; } var selection = DWgetSelection(this); @@ -143,7 +138,12 @@ var dw_editor = { search.lastIndexOf("\r")); //IE workaround search = search.substr(linestart); - if(e.keyCode == 13){ // Enter + if((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) { // Ctrl-Enter (With Chrome workaround) + // Submit current edit + jQuery('#edbtn__save').click(); + e.preventDefault(); // prevent enter key + return false; + }else if(e.keyCode == 13){ // Enter // keep current indention for lists and code var match = search.match(/(\n +([\*-] ?)?)/); if(match){ diff --git a/dokuwiki/lib/scripts/fileuploaderextended.js b/dokuwiki/lib/scripts/fileuploaderextended.js index f5786c38..ba2aa3ea 100644 --- a/dokuwiki/lib/scripts/fileuploaderextended.js +++ b/dokuwiki/lib/scripts/fileuploaderextended.js @@ -82,7 +82,7 @@ qq.FileUploaderExtended = function(o){ '
          ' + LANG.media_select + '
          ' + '
            ' + '
            ' + - ' ' + + ' ' + ' ' + '
            ' + '', @@ -189,7 +189,7 @@ qq.extend(qq.FileUploaderExtended.prototype, { var button = '
            '; button += ''; button += ''; - button += '
            '; + button += ''; jQuery('#mediamanager__uploader').append(button); } } @@ -242,7 +242,7 @@ qq.extend(qq.UploadHandlerForm.prototype, { var nameInput = qq.toElement(''); form.appendChild(nameInput); - var checked = jQuery('.dw__ow').attr('checked'); + var checked = jQuery('.dw__ow').is(':checked'); var owCheckbox = jQuery('.dw__ow').clone(); owCheckbox.attr('checked', checked); jQuery(form).append(owCheckbox); @@ -323,7 +323,7 @@ qq.extend(qq.UploadHandlerXhr.prototype, { // build query string params = params || {}; params['qqfile'] = name; - params['ow'] = jQuery('.dw__ow').attr('checked'); + params['ow'] = jQuery('.dw__ow').is(':checked'); var queryString = qq.obj2url(params, this._options.action); xhr.open("POST", queryString, true); diff --git a/dokuwiki/lib/scripts/helpers.js b/dokuwiki/lib/scripts/helpers.js index 0b32e878..99137c50 100644 --- a/dokuwiki/lib/scripts/helpers.js +++ b/dokuwiki/lib/scripts/helpers.js @@ -62,5 +62,8 @@ function logError(e, file) { 'If this is in a plugin try updating or disabling the plugin, ' + 'if this is in a template try updating the template or switching to the "dokuwiki" template.', e.name, e.message, file); + if(e.stack) { + console.error(e.stack); + } } } diff --git a/dokuwiki/lib/scripts/hotkeys.js b/dokuwiki/lib/scripts/hotkeys.js index bff28530..76a277ae 100644 --- a/dokuwiki/lib/scripts/hotkeys.js +++ b/dokuwiki/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/dokuwiki/lib/scripts/jquery/jquery-migrate.min.js b/dokuwiki/lib/scripts/jquery/jquery-migrate.min.js index 62149c28..a2813c5d 100644 --- a/dokuwiki/lib/scripts/jquery/jquery-migrate.min.js +++ b/dokuwiki/lib/scripts/jquery/jquery-migrate.min.js @@ -1,2 +1,2 @@ -/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */ -jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window); \ No newline at end of file +/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */ +"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxSettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,window); \ No newline at end of file diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png index 9e3de433..6b1f24da 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png index 18fd8b16..5f6fc571 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png index 8f31ae15..8bc2c8ba 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png index a6effc68..be993d55 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png index c50038af..e69de29b 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png index f08378e9..9e3afb58 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png index 8deb23b9..6ba300b6 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png index aa2ddc3b..1c7b6330 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png index ef231bb2..bd90b262 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png index 8bfb6853..813f18d4 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png index d72d6906..cfb3d448 100644 Binary files a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png and b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png differ diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css index 93a79cad..eab564ac 100644 --- a/dokuwiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css +++ b/dokuwiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css @@ -1,8 +1,8 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.12.1 - 2016-09-14 * 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 +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.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 jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers ----------------------------------*/ @@ -38,9 +38,6 @@ .ui-helper-clearfix:after { clear: both; } -.ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} .ui-helper-zfix { width: 100%; height: 100%; @@ -48,7 +45,7 @@ left: 0; position: absolute; opacity: 0; - filter:Alpha(Opacity=0); + filter:Alpha(Opacity=0); /* support: IE8 */ } .ui-front { @@ -60,20 +57,27 @@ ----------------------------------*/ .ui-state-disabled { cursor: default !important; + pointer-events: none; } /* Icons ----------------------------------*/ - -/* states and images */ .ui-icon { - display: block; + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} /* Misc visuals ----------------------------------*/ @@ -92,21 +96,8 @@ position: relative; margin: 2px 0 0 0; padding: .5em .5em .5em .7em; - min-height: 0; /* support: IE7 */ font-size: 100%; } -.ui-accordion .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-icons .ui-accordion-icons { - padding-left: 2.2em; -} -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { - position: absolute; - left: .5em; - top: 50%; - margin-top: -8px; -} .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; @@ -118,17 +109,78 @@ left: 0; cursor: default; } +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} .ui-button { + padding: .4em 1em; display: inline-block; position: relative; - padding: 0; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; - overflow: visible; /* removes extra width in IE */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + /* Support: IE <= 11 */ + overflow: visible; } + .ui-button, .ui-button:link, .ui-button:visited, @@ -136,92 +188,130 @@ .ui-button:active { text-decoration: none; } + /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -button.ui-button-icon-only { - width: 2.4em; -} -.ui-button-icons-only { - width: 3.4em; -} -button.ui-button-icons-only { - width: 3.7em; + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; } -/* button text element */ -.ui-button .ui-button-text { - display: block; - line-height: normal; -} -.ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -.ui-button-icon-only .ui-button-text, -.ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -.ui-button-text-icon-primary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -.ui-button-text-icon-secondary .ui-button-text, -.ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -.ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -input.ui-button { - padding: .4em 1em; +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; } /* button icon element(s) */ -.ui-button-icon-only .ui-icon, -.ui-button-text-icon-primary .ui-icon, -.ui-button-text-icon-secondary .ui-icon, -.ui-button-text-icons .ui-icon, -.ui-button-icons-only .ui-icon { +.ui-button-icon-only .ui-icon { position: absolute; top: 50%; - margin-top: -8px; -} -.ui-button-icon-only .ui-icon { left: 50%; + margin-top: -8px; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, -.ui-button-text-icons .ui-button-icon-primary, -.ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -.ui-button-text-icon-secondary .ui-button-icon-secondary, -.ui-button-text-icons .ui-button-icon-secondary, -.ui-button-icons-only .ui-button-icon-secondary { - right: .5em; + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + } -/* button sets */ -.ui-buttonset { - margin-right: 7px; -} -.ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; } /* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ +/* Support: Firefox 5 - 40 */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + + /* Support: IE8 only, Android < 4.4 only */ + width: 75%; + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} .ui-datepicker { width: 17em; padding: .2em .2em 0; @@ -274,7 +364,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%; @@ -387,8 +477,17 @@ button.ui-button::-moz-focus-inner { border-right-width: 0; border-left-width: 1px; } -.ui-dialog { + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { position: absolute; top: 0; left: 0; @@ -437,12 +536,44 @@ button.ui-button::-moz-focus-inner { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} .ui-dialog .ui-resizable-se { - width: 12px; - height: 12px; - right: -5px; - bottom: -5px; - background-position: 16px 16px; + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; } .ui-draggable .ui-dialog-titlebar { cursor: move; @@ -451,77 +582,6 @@ button.ui-button::-moz-focus-inner { -ms-touch-action: none; touch-action: none; } -.ui-menu { - list-style: none; - padding: 0; - margin: 0; - display: block; - outline: none; -} -.ui-menu .ui-menu { - position: absolute; -} -.ui-menu .ui-menu-item { - position: relative; - margin: 0; - padding: 3px 1em 3px .4em; - cursor: pointer; - min-height: 0; /* support: IE7 */ - /* support: IE10, see #8844 */ - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); -} -.ui-menu .ui-menu-divider { - margin: 5px 0; - height: 0; - font-size: 0; - line-height: 0; - border-width: 1px 0 0 0; -} -.ui-menu .ui-state-focus, -.ui-menu .ui-state-active { - margin: -1px; -} - -/* icon support */ -.ui-menu-icons { - position: relative; -} -.ui-menu-icons .ui-menu-item { - padding-left: 2em; -} - -/* left-aligned */ -.ui-menu .ui-icon { - position: absolute; - top: 0; - bottom: 0; - left: .2em; - margin: auto 0; -} - -/* right-aligned */ -.ui-menu .ui-menu-icon { - left: auto; - right: 0; -} -.ui-progressbar { - height: 2em; - text-align: left; - overflow: hidden; -} -.ui-progressbar .ui-progressbar-value { - margin: -1px; - height: 100%; -} -.ui-progressbar .ui-progressbar-overlay { - background: url("images/animated-overlay.gif"); - height: 100%; - filter: alpha(opacity=25); - opacity: 0.25; -} -.ui-progressbar-indeterminate .ui-progressbar-value { - background-image: none; -} .ui-resizable { position: relative; } @@ -592,6 +652,24 @@ button.ui-button::-moz-focus-inner { right: -5px; top: -5px; } +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + 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); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} .ui-selectable { -ms-touch-action: none; touch-action: none; @@ -611,7 +689,6 @@ button.ui-button::-moz-focus-inner { } .ui-selectmenu-menu .ui-menu { overflow: auto; - /* Support: IE7 */ overflow-x: hidden; padding-bottom: 1px; } @@ -627,28 +704,20 @@ button.ui-button::-moz-focus-inner { .ui-selectmenu-open { display: block; } -.ui-selectmenu-button { - display: inline-block; - overflow: hidden; - position: relative; - text-decoration: none; - cursor: pointer; -} -.ui-selectmenu-button span.ui-icon { - right: 0.5em; - left: auto; - margin-top: -8px; - position: absolute; - top: 50%; -} -.ui-selectmenu-button span.ui-selectmenu-text { - text-align: left; - padding: 0.4em 2.1em 0.4em 1em; +.ui-selectmenu-text { display: block; - line-height: 1.4; + margin-right: 20px; overflow: hidden; text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; } .ui-slider { position: relative; @@ -672,7 +741,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; @@ -730,14 +799,14 @@ button.ui-button::-moz-focus-inner { border: none; background: none; color: inherit; - padding: 0; + padding: .222em 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; - margin-right: 22px; + margin-right: 2em; } .ui-spinner-button { - width: 16px; + width: 1.6em; height: 50%; font-size: .5em; padding: 0; @@ -751,16 +820,9 @@ button.ui-button::-moz-focus-inner { } /* more specificity required here to override default borders */ .ui-spinner a.ui-spinner-button { - border-top: none; - border-bottom: none; - border-right: none; -} -/* vertically center icon */ -.ui-spinner .ui-icon { - position: absolute; - margin-top: -8px; - top: 50%; - left: 0; + border-top-style: none; + border-bottom-style: none; + border-right-style: none; } .ui-spinner-up { top: 0; @@ -768,12 +830,6 @@ button.ui-button::-moz-focus-inner { .ui-spinner-down { bottom: 0; } - -/* TR overrides */ -.ui-spinner .ui-icon-triangle-1-s { - /* need to fix icons sprite */ - background-position: -65px -16px; -} .ui-tabs { position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ padding: .2em; @@ -820,13 +876,10 @@ button.ui-button::-moz-focus-inner { position: absolute; z-index: 9999; max-width: 300px; - -webkit-box-shadow: 0 0 5px #aaa; - box-shadow: 0 0 5px #aaa; } body .ui-tooltip { border-width: 2px; } - /* Component containers ----------------------------------*/ .ui-widget { @@ -843,9 +896,12 @@ body .ui-tooltip { font-size: 1em; } +.ui-widget.ui-widget-content { + border: 1px solid #d3d3d3; +} .ui-widget-content { border: 1px solid #aaaaaa; - background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; + background: #ffffff; color: #222222; } .ui-widget-content a { @@ -865,7 +921,13 @@ body .ui-tooltip { ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default { +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { border: 1px solid #d3d3d3; background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; font-weight: normal; @@ -873,7 +935,11 @@ body .ui-tooltip { } .ui-state-default a, .ui-state-default a:link, -.ui-state-default a:visited { +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { color: #555555; text-decoration: none; } @@ -882,7 +948,9 @@ body .ui-tooltip { .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, -.ui-widget-header .ui-state-focus { +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { border: 1px solid #999999; background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; font-weight: normal; @@ -895,18 +963,32 @@ body .ui-tooltip { .ui-state-focus a, .ui-state-focus a:hover, .ui-state-focus a:link, -.ui-state-focus a:visited { +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { color: #212121; text-decoration: none; } + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} .ui-state-active, .ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active { +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { border: 1px solid #aaaaaa; background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #aaaaaa; + background-color: #212121; +} .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { @@ -923,6 +1005,10 @@ body .ui-tooltip { background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; color: #363636; } +.ui-state-checked { + border: 1px solid #fcefa1; + background: #fbf9ee; +} .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { @@ -954,18 +1040,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 @@ -983,41 +1069,45 @@ body .ui-tooltip { .ui-widget-header .ui-icon { background-image: url("images/ui-icons_222222_256x240.png"); } -.ui-state-default .ui-icon { - background-image: url("images/ui-icons_888888_256x240.png"); -} .ui-state-hover .ui-icon, -.ui-state-focus .ui-icon { +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { background-image: url("images/ui-icons_454545_256x240.png"); } -.ui-state-active .ui-icon { +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { background-image: url("images/ui-icons_454545_256x240.png"); } -.ui-state-highlight .ui-icon { +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { background-image: url("images/ui-icons_2e83ff_256x240.png"); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url("images/ui-icons_cd0a0a_256x240.png"); } +.ui-button .ui-icon { + background-image: url("images/ui-icons_888888_256x240.png"); +} /* positioning */ .ui-icon-blank { background-position: 16px 16px; } -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-s { background-position: -65px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } @@ -1027,7 +1117,7 @@ body .ui-tooltip { .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-s { background-position: -65px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } @@ -1039,7 +1129,7 @@ body .ui-tooltip { .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-n { background-position: 1px -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } @@ -1211,15 +1301,11 @@ body .ui-tooltip { /* Overlays */ .ui-widget-overlay { - background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; + background: #aaaaaa; 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); - border-radius: 8px; + -webkit-box-shadow: -8px -8px 8px #aaaaaa; + box-shadow: -8px -8px 8px #aaaaaa; } diff --git a/dokuwiki/lib/scripts/jquery/jquery-ui.min.js b/dokuwiki/lib/scripts/jquery/jquery-ui.min.js index b2fdf864..117cb35e 100644 --- a/dokuwiki/lib/scripts/jquery/jquery-ui.min.js +++ b/dokuwiki/lib/scripts/jquery/jquery-ui.min.js @@ -1,13 +1,13 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.12.1 - 2016-09-14 * 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 */ +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright 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("
            "))}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("").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("").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:"
            ",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("
            "),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.widthi?"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("").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()",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("").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()",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("
              ").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("
              ").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("",{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").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("
              ").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:"").addClass(this._triggerClass).html(a?e("").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(""),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)?""+i+"":J?"":""+i+"",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)?""+n+"":J?"":""+n+"",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?"":"",l=B?"
              "+(Y?h:"")+(this._isInRange(e,r)?"":"")+(Y?"":h)+"
              ":"",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+="
              "}for(M+="
              "+(/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)+"
              "+"",N=d?"":"",x=0;7>x;x++)C=(x+u)%7,N+="";for(M+=N+"",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+="",E=d?"":"",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+="",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=E+""}Z++,Z>11&&(Z=0,et++),M+="
              "+this._get(e,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[C]+"
              "+this._get(e,"calculateWeek")(H)+""+(O&&!v?" ":W?""+H.getDate()+"":""+H.getDate()+"")+"
              "+(Q?"
              "+(K[0]>0&&T===K[1]-1?"
              ":""):""),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="
              ",_="";if(a||!g)_+=""+o[t]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+=""}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+=""+i+"";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+="",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="
              "},_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("
              ").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.lefti[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=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("
              ").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("
              "),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.maxWidthe.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("
              "),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("
              ").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("
              ").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({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("").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("
              ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("
              ").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("",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("
              ").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("
              ").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("

              ")[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("

              ").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("
              ").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("
              ").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("
              ").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("
              ").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("
              ")},_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:"",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""},_buttonHtml:function(){return""+""+""+""+""},_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("
              ").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("").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("
              ").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("
              ").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("
              ").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("
              ").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(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){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},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("
              "))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
              ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
              "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="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(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={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"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("

              ")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.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"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("

              ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) +}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
              ").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("
              ").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.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},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},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 e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t(""),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.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?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_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(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),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(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.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(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},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(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){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=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){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=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",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 e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; +this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.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(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.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(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
                ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
                ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
                ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
                ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
                ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"
                ",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t(""),this.iconSpace=t(" "),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"").addClass(this._triggerClass).html(o?t("").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t(""),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.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=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.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=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(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(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(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+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),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(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)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(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=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":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?""+i+"":q?"":""+i+"",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?""+n+"":q?"":""+n+"",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"",l=j?"
                "+(Y?h:"")+(this._isInRange(t,r)?"":"")+(Y?"":h)+"
                ":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="
                "}for(T+="
                "+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"
                "+"",P=u?"":"",w=0;7>w;w++)M=(w+c)%7,P+="";for(T+=P+"",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="",W=u?"":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+""}Z++,Z>11&&(Z=0,te++),T+="
                "+this._get(t,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[M]+"
                "+this._get(t,"calculateWeek")(A)+""+(F&&!_?" ":L?""+A.getDate()+"":""+A.getDate()+"")+"
                "+(X?"
                "+(U[0]>0&&C===U[1]-1?"
                ":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="
                ",y="";if(o||!m)y+=""+a[e]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+=""}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+=""+i+"";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="
                "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",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._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
                ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.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"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){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:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.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._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"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(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?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 e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.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=t(n.containment),s=i[0],s&&(e=/(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),(e?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,(e?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(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.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:e.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(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(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,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.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-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.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._removeClass(this.helper,"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(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,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(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(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||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(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[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},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(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
                ").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,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",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(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".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=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
                "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||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]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/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(""),e.css(n,o),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.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.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:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),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 t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
                "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),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(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(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=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",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(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.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"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),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(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("
                ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("
                "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("").button({label:t("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("
                "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("
                ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.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){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="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:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.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},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("
                ").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("
                ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),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 t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.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=t(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)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[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(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("
                ").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("
                ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",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 e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
                "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},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 e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_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 t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.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(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(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.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),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(e){return t("
                ").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.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(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("
                ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.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),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("
                ").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(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"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("
                ").attr("role","tooltip"),s=t("
                ").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file diff --git a/dokuwiki/lib/scripts/jquery/jquery.min.js b/dokuwiki/lib/scripts/jquery/jquery.min.js index ab28a247..4c5be4c0 100644 --- a/dokuwiki/lib/scripts/jquery/jquery.min.js +++ b/dokuwiki/lib/scripts/jquery/jquery.min.js @@ -1,4 +1,4 @@ -/*! 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="
                ",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="",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;++db;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.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="",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.lengthh;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="
                a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",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]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
                ","
                "],area:[1,"",""],param:[1,"",""],thead:[1,"","
                "],tr:[2,"","
                "],col:[2,"","
                "],td:[3,"","
                "],_default:k.htmlSerialize?[0,"",""]:[1,"X
                ","
                "]},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>")+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)?""!==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>");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("