diff --git a/.gitignore b/.gitignore index 7c8d79231a5495580f1624742a1bbe463263b875..2aa1a3cbe9b89981d9de85e81fb2ec35d08b2268 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,7 @@ vendor/*/*/docs/* vendor/*/*/contrib/* vendor/splitbrain/php-archive/apigen.neon vendor/splitbrain/php-archive/generate-api.sh +vendor/paragonie/random_compat/build-phar.sh +vendor/paragonie/random_compat/dist/* +vendor/paragonie/random_compat/other/* + diff --git a/.travis.yml b/.travis.yml index 5e928c1177cc6a590149c2d0bca361b70b2d5633..17792699cd712b1abe92ad69355e649e482fd6d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ env: matrix: allow_failures: - php: "hhvm" + - php: "7.1" notifications: irc: channels: diff --git a/_test/tests/inc/changelog_getlastrevisionat.test.php b/_test/tests/inc/changelog_getlastrevisionat.test.php index 84b185ce85658329375dd33599d6d888368530e9..d60c0f2fdc7b23f70043e5d6be4f6632a2d2abec 100644 --- a/_test/tests/inc/changelog_getlastrevisionat.test.php +++ b/_test/tests/inc/changelog_getlastrevisionat.test.php @@ -124,4 +124,41 @@ class changelog_getlastrevisionat_test extends DokuWikiTest { $current = $pagelog->getLastRevisionAt($rev); $this->assertEquals($currentexpected, $current); } -} \ No newline at end of file + + /** + * test get correct revision on deleted media + * + */ + function test_deletedimage() { + global $conf; + global $AUTH_ACL; + + //we need to have a user with AUTH_DELETE rights + //save settings + $oldSuperUser = $conf['superuser']; + $oldUseacl = $conf['useacl']; + $oldRemoteUser = $_SERVER['REMOTE_USER']; + + $conf['superuser'] = 'admin'; + $conf['useacl'] = 1; + $_SERVER['REMOTE_USER'] = 'admin'; + + $image = 'wiki:imageat.png'; + + $ret = copy(mediaFn('wiki:kind_zu_katze.png'),mediaFn($image)); + + $revexpected = @filemtime(mediaFn($image)); + $rev = $revexpected + 10; + + $ret = media_delete($image, 0); + + $medialog = new MediaChangelog($image); + $current = $medialog->getLastRevisionAt($rev); + $this->assertEquals($revexpected, $current); + + //restore settings + $_SERVER['REMOTE_USER'] = $oldRemoteUser; + $conf['superuser'] = $oldSuperUser; + $conf['useacl'] = $oldUseacl; + } +} diff --git a/composer.json b/composer.json index 307f2f314762a24ee6f5b25a7180ef99ff1a64b3..e73f5dde4d69ce05cee39cf52c85fcfe0ee2b66a 100644 --- a/composer.json +++ b/composer.json @@ -2,6 +2,7 @@ "require": { "splitbrain/php-archive": "~1.0", "easybook/geshi": "~1.0", - "phpseclib/phpseclib": "~2.0" + "phpseclib/phpseclib": "~2.0", + "paragonie/random_compat": "^2.0" } } diff --git a/composer.lock b/composer.lock index baf5a319200c7a68f8578d4430e4189f6d7a81da..04533693d1df22cd61874bb047249f3b88cd37c3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,21 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "5ec4375c5e1f3f6563fe2fb5776b5724", + "hash": "7b78d57e644751cbd9c25d284b5e35b9", + "content-hash": "892483d9cd6fa76827c24cee640a9f27", "packages": [ { "name": "easybook/geshi", - "version": "v1.0.8.17", + "version": "v1.0.8.18", "source": { "type": "git", "url": "https://github.com/easybook/geshi.git", - "reference": "0fced4f530c0a1726588651f04c2bf2a3073c9c0" + "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easybook/geshi/zipball/0fced4f530c0a1726588651f04c2bf2a3073c9c0", - "reference": "0fced4f530c0a1726588651f04c2bf2a3073c9c0", + "url": "https://api.github.com/repos/easybook/geshi/zipball/4b06bfe8c6fbedd6aad0a0700d650f591386e287", + "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287", "shasum": "" }, "require": { @@ -50,7 +51,55 @@ "highlighter", "syntax" ], - "time": "2016-03-29 13:15:17" + "time": "2016-10-05 07:15:42" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2016-11-07 23:38:38" }, { "name": "phpseclib/phpseclib", diff --git a/inc/PassHash.class.php b/inc/PassHash.class.php index 8cb23441f71426239f52e8ed0d9b5a67597ea010..921460dbcfa78c4e6f6e7629774d5649ef1a2933 100644 --- a/inc/PassHash.class.php +++ b/inc/PassHash.class.php @@ -627,10 +627,6 @@ class PassHash { * @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/inc/auth.php b/inc/auth.php index c506bf8dbfc26000cbc9aa4665f9e18a1cf46664..d9928cea68af7e8cc6bf24f6de59ebbd877d47c3 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -322,99 +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 <michael@content-space.de> - * @link http://php.net/manual/de/function.mt-rand.php#83655 + * @author Niklas Keller <me@kelunik.com> * - * @param int $length number of bytes to get - * @return string binary random strings + * @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 Michael Samuel - * @author Michael Hamann <michael@content-space.de> + * @author Niklas Keller <me@kelunik.com> * * @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); } /** diff --git a/inc/changelog.php b/inc/changelog.php index 65451b3edff624098a352ca8d7a5876c2150dbbe..d77b0180a8fd96b26d19e7d4e2372b3983634b04 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -881,7 +881,7 @@ abstract class ChangeLog { */ 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; diff --git a/inc/common.php b/inc/common.php index 01b4a9ccb51df6faf3712f5f4c5486e8300f9db6..ff32fe17a7c3df4a817091fcba619ec04525234a 100644 --- a/inc/common.php +++ b/inc/common.php @@ -834,6 +834,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 * @@ -1325,7 +1336,7 @@ function saveWikiText($id, $text, $summary, $minor = false) { io_sweepNS($id, 'mediadir'); } else { // save file (namespace dir is created in io_writeWikiPage) - io_writeWikiPage($svdta['file'], $text, $id); + io_writeWikiPage($svdta['file'], $svdta['newContent'], $id); // pre-save the revision, to keep the attic in sync $svdta['newRevision'] = saveOldRevision($id); $filesize_new = filesize($svdta['file']); diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 9b8f437da041f7af35cf222d0e1c9d67483c3324..9279db16ce0ae986533fec490a1af85547d23cc7 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -8,6 +8,7 @@ * @author daniel@6temes.cat * @author Eduard DÃaz <edudiaz@scopia.es> * @author controlonline.net <controlonline.net@gmail.com> + * @author Pauet <pauet@gmx.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -331,8 +332,8 @@ $lang['media_perm_read'] = 'No teniu permisos suficients per a llegir arxi $lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxius'; $lang['media_update'] = 'Puja la nova versió'; $lang['media_restore'] = 'Restaura aquesta versió'; -$lang['email_signature_text'] = 'Aquest mail ha estat generat per DokuWiki a -@DOKUWIKIURL@'; $lang['currentns'] = 'Espai de noms actual'; $lang['searchresult'] = 'Resultats cerca'; $lang['plainhtml'] = 'HTML pla'; +$lang['email_signature_text'] = 'Aquest mail ha estat generat per DokuWiki a +@DOKUWIKIURL@'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 0e04de18dafcf6baaf1f1df22f5461ba9605d034..24b28c277ab48de733febe02b8cd02165d23b292 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -217,7 +217,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 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> wird benötigt, um diesen Inhalt anzuzeigen.'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 4d4f25494ee2984074d7ad3a85c2f5166ff974ed..c988c94ad7f051ff5b8a0729b942978895caca59 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -38,6 +38,7 @@ * @author james <j.mccann@celcat.com> * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> * @author Floriang <antispam@floriang.eu> + * @author Eric <ericstevenart@netc.fr> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -98,7 +99,7 @@ $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.'; @@ -369,5 +370,5 @@ $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 <a href="%s">%s</a>.'; $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 +$lang['email_signature_text'] = 'Ce courriel a été généré par DokuWiki depuis @DOKUWIKIURL@'; diff --git a/inc/lang/hr/admin.txt b/inc/lang/hr/admin.txt index 15a2a2b13b302cce4db3315444a3416ea911a517..eaf4d787316109f6100dc330d52ffaa2ab8df1ee 100644 --- a/inc/lang/hr/admin.txt +++ b/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/inc/lang/hr/backlinks.txt b/inc/lang/hr/backlinks.txt index a78b9213ee150ecff80b414e28a69913a56cd989..058389105bbfe8ffbd97510a2cbae1edaa66e173 100644 --- a/inc/lang/hr/backlinks.txt +++ b/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/inc/lang/hr/conflict.txt b/inc/lang/hr/conflict.txt index e33d7020a3f0ab56b54f6ee270aa8a57e742af77..82fdd33cca723ca10eae80f3ef334541533b8eca 100644 --- a/inc/lang/hr/conflict.txt +++ b/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/inc/lang/hr/denied.txt b/inc/lang/hr/denied.txt index 172b0fc9275ce35973f70a78e2f2777ee533a379..0613b583185dee357d74154cc17bc3c248c12511 100644 --- a/inc/lang/hr/denied.txt +++ b/inc/lang/hr/denied.txt @@ -1,4 +1,4 @@ -====== Niste autorizirani ====== +====== Niste ovlaÅ¡teni ====== -Nemate autorizaciju. +Nemate potrebne ovlasti za nastavak. diff --git a/inc/lang/hr/diff.txt b/inc/lang/hr/diff.txt index ce6c8c4cba531120a470b85c3368b45f6d723606..295397ac4ed0563902673fc0d65d406e71ec99a3 100644 --- a/inc/lang/hr/diff.txt +++ b/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/inc/lang/hr/draft.txt b/inc/lang/hr/draft.txt index 2e6e084295423f3c12d65d5beac5f9d77be1d912..6caa26e1d9b58531d3bfce3900923cd1613b7408 100644 --- a/inc/lang/hr/draft.txt +++ b/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/inc/lang/hr/edit.txt b/inc/lang/hr/edit.txt index bce1abeea4d5c6fb6ef8947cd139f4d2f2b31649..7ed55d508088a7309cf0c0f209b0b227ce25e515 100644 --- a/inc/lang/hr/edit.txt +++ b/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/inc/lang/hr/editrev.txt b/inc/lang/hr/editrev.txt index 911855f473f3dcc3228262aa145d3953f8c20723..9ac656e47d1244bb8913bfb684f22f51544b1e79 100644 --- a/inc/lang/hr/editrev.txt +++ b/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/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 1023a0ec15d2a4066b544101a8e978b13460d1ea..ce86b945784d873779d7e33711c44944289faa81 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tomo Krajina <aaa@puzz.info> * @author Branko Rihtman <theney@gmail.com> * @author Dražen OdobaÅ¡ić <dodobasic@gmail.com> @@ -21,7 +21,7 @@ $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'; @@ -38,7 +38,7 @@ $lang['btn_admin'] = 'Administriranje'; $lang['btn_update'] = 'Nadogradi'; $lang['btn_delete'] = 'ObriÅ¡i'; $lang['btn_back'] = 'Nazad'; -$lang['btn_backlink'] = 'Povratni linkovi'; +$lang['btn_backlink'] = 'Povratne veze'; $lang['btn_subscribe'] = 'UreÄ‘ivanje pretplata'; $lang['btn_profile'] = 'Dopuni profil'; $lang['btn_reset'] = 'PoniÅ¡ti'; @@ -72,10 +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['regsuccess2'] = 'Korisnik je uspjeÅ¡no kreiran.'; $lang['regfail'] = 'Korisnik ne može biti kreiran.'; -$lang['regmailfail'] = 'Pojavila se greÅ¡ka prilikom slanja lozinke emailom. Kontaktirajte administratora!'; -$lang['regbadmail'] = 'Email adresa nije ispravna, ukoliko ovo smatrate greÅ¡kom, kontaktirajte administratora.'; +$lang['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.'; @@ -94,8 +94,8 @@ $lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke $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: '; @@ -122,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'; @@ -134,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'; @@ -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'; @@ -209,7 +209,7 @@ $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 uÄitana:'; @@ -273,7 +273,7 @@ $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['authtempfail'] = 'Prijava korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora, ako ovo potraje.'; $lang['i_chooselang'] = 'Izaberite vaÅ¡ jezik'; $lang['i_installer'] = 'DokuWiki postavljanje'; $lang['i_wikiname'] = 'Naziv Wikija'; @@ -283,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 <a href="http://dokuwiki.org/install">Uputstvo za postavljanje DokuWiki-a</a>'; $lang['i_funcna'] = 'PHP funkcija <code>%s</code> nije dostupna. Možda ju je vaÅ¡ pružatelj hostinga onemogućio iz nekog razloga?'; -$lang['i_phpver'] = 'VaÅ¡a PHP verzija <code>%s</code> je niža od potrebne <code>%s</code>. Trebate nadograditi vaÅ¡u PHP instalaciju.'; +$lang['i_phpver'] = 'VaÅ¡a PHP inaÄica <code>%s</code> je niža od potrebne <code>%s</code>. 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'] = '<code>%s</code> nema dozvolu pisanja od strane DokuWiki. Trebate podesiti dozvole pristupa tom direktoriju.'; $lang['i_confexists'] = '<code>%s</code> već postoji'; $lang['i_writeerr'] = 'Ne može se kreirati <code>%s</code>. Trebate provjeriti dozvole direktorija/datoteke i kreirati dokument ruÄno.'; $lang['i_badhash'] = 'neprepoznat ili promijenjen dokuwiki.php (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - nedozvoljena ili prazna vrijednost'; -$lang['i_success'] = 'Konfiguracija je uspjeÅ¡no zavrÅ¡ena. Sada možete obrisati install.php datoteku. Nastavite na <a href="doku.php?id=wiki:welcome">vaÅ¡ novi DokuWiki</a>.'; +$lang['i_success'] = 'PodeÅ¡avanje je uspjeÅ¡no zavrÅ¡eno. Sada možete obrisati install.php datoteku. Nastavite na <a href="doku.php?id=wiki:welcome">vaÅ¡ novi DokuWiki</a>.'; $lang['i_failure'] = 'Pojavile su se neke greÅ¡ke prilikom pisanja konfiguracijskih datoteka. Morati ćete ih ruÄno ispraviti da bi mogli koristiti <a href="doku.php?id=wiki:welcome">vaÅ¡ novi DokuWiki</a>.'; $lang['i_policy'] = 'Inicijalna ACL politika'; $lang['i_pol0'] = 'Otvoreni Wiki (Äitanje, pisanje, uÄitavanje za sve)'; @@ -332,14 +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_acl_warning'] = 'Ova lista moguće da nije kompletna zbog ACL ograniÄenja i skrivenih stranica.'; +$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 <a href="%s">%s</a>.'; $lang['unable_to_parse_date'] = 'Ne mogu analizirati parametar "%s".'; -$lang['email_signature_text'] = 'Ovaj email je poslan na +$lang['email_signature_text'] = 'Ovaj email je poslan na @DOKUWIKIURL@'; diff --git a/inc/lang/hr/mailtext.txt b/inc/lang/hr/mailtext.txt index 9988efc0bea10686e9c1e1d06a9bc26b14bf94bc..1719fd5a09736cefa883b38f6209f3cf17a36e6d 100644 --- a/inc/lang/hr/mailtext.txt +++ b/inc/lang/hr/mailtext.txt @@ -4,8 +4,8 @@ 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 --git a/inc/lang/hr/norev.txt b/inc/lang/hr/norev.txt index 231fb5edfe0a447a92a60114a0abec058af40be8..8c9178e47ef36f58b452b01a5a2ba35ce3a7228d 100644 --- a/inc/lang/hr/norev.txt +++ b/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/inc/lang/hr/preview.txt b/inc/lang/hr/preview.txt index 89ae86a7197e7f5872444faa568e81efc956a346..4289f4d929c3da7779234ca8820dc32e7f4cc0a3 100644 --- a/inc/lang/hr/preview.txt +++ b/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/inc/lang/hr/resendpwd.txt b/inc/lang/hr/resendpwd.txt index ed25f985c2ee9b19e9d6f2fcbcdcebb251b588d2..d5b2e654445b1f476ec338e10b2bea063b543599 100644 --- a/inc/lang/hr/resendpwd.txt +++ b/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/inc/lang/hr/revisions.txt b/inc/lang/hr/revisions.txt index 67d4cb89fe2e8ac60a129a87509d56d56db3d881..990d50b08550557fe9ed0634ec7c88270f90ca9b 100644 --- a/inc/lang/hr/revisions.txt +++ b/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/inc/lang/hr/stopwords.txt b/inc/lang/hr/stopwords.txt index bc6eb48aea08f241e220bc59d6d6851acfb8e381..5b1bb207fae7c0df4aa1db96df5f1c7778fc0ad5 100644 --- a/inc/lang/hr/stopwords.txt +++ b/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/inc/lang/hr/subscr_digest.txt b/inc/lang/hr/subscr_digest.txt index 8a13c01bc4e374bb52e343b3d06bd8bf572a0e59..b58836d9b18650e1e346dd583114d1b515be159a 100644 --- a/inc/lang/hr/subscr_digest.txt +++ b/inc/lang/hr/subscr_digest.txt @@ -7,8 +7,8 @@ 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@ diff --git a/inc/lang/hr/subscr_single.txt b/inc/lang/hr/subscr_single.txt index 31d492f1af6f3024e8a4ce70cb55c26e64376068..4c7b329d5f4d323f2f7c09f71cad40bd269f24da 100644 --- a/inc/lang/hr/subscr_single.txt +++ b/inc/lang/hr/subscr_single.txt @@ -10,8 +10,8 @@ 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@ diff --git a/inc/lang/hr/uploadmail.txt b/inc/lang/hr/uploadmail.txt index 51fe80380c1b2aa8820255c856faa0cd9e1b5577..f4ab91ea579601494ed2638112183fbc5d1603b0 100644 --- a/inc/lang/hr/uploadmail.txt +++ b/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@ diff --git a/inc/lang/no/backlinks.txt b/inc/lang/no/backlinks.txt index 9fe72066e6cb9a4db66fe493bb7c13ee9c142d55..2298acc45cf86fa2dcfa55f6bb7b92fc3f4f0212 100644 --- a/inc/lang/no/backlinks.txt +++ b/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/inc/lang/no/lang.php b/inc/lang/no/lang.php index 8379923fad9b0252fb3dbc06a09cc23fe530ca74..e04811f5d84335853f560f3f262eef3a1e2c6ed0 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -23,6 +23,9 @@ * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> * @author Danny Buckhof <daniel.raknes@hotmail.no> + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> + * @author Patrick Sletvold <patricksletvold@hotmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -101,7 +104,7 @@ $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. <br/> Denne handlingen kan ikke omgjøres.'; +$lang['profconfdelete'] = 'Jeg ønsker Ã¥ fjerne min konto fra denne wikien. <br/> 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'; @@ -229,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'; @@ -299,7 +302,7 @@ $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 <a href="http://dokuwiki.org/install">Dokuwiki-installasjonsinstruksen</a>'; -$lang['i_funcna'] = 'PHP-funksjonen <code>%s</code> er ikke tilgjengelig. Kanskje din leverandør har deaktivert den av noen grunn?'; +$lang['i_funcna'] = 'PHP-funksjonen <code>%s</code> er ikke tilgjengelig. Kanskje din nettleverandør har deaktivert denne?'; $lang['i_phpver'] = 'Din PHP versjon <code>%s</code> er lavere enn kravet <code>%s</code>. Du mÃ¥ oppgradere PHP installasjonen. '; $lang['i_mbfuncoverload'] = 'mbstring.func_overload mÃ¥ deaktiveres i php.ini for Ã¥ kjøre DokuWiki.'; $lang['i_permfail'] = '<code>%s</code> er ikke skrivbar for DokuWiki. Du mÃ¥ fikse rettighetene for denne mappen!'; @@ -321,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 <b>%s</b>. Du kan ogsÃ¥<a href="%s">se pÃ¥ nylig foretatte endringer for hele wikien</a>.'; +$lang['recent_global'] = 'Du ser nÃ¥ pÃ¥ endringene i navnerommet <b>%s</b>. Du kan ogsÃ¥ <a href="%s">se pÃ¥ nylig foretatte endringer for hele wikien</a>. '; $lang['years'] = '%d Ã¥r siden'; $lang['months'] = '%d mÃ¥neder siden'; $lang['weeks'] = '%d uker siden'; @@ -353,11 +356,12 @@ $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til Ã¥ lese file $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Ã¥ <a href="%s">%s</a>'; -$lang['email_signature_text'] = 'Denne meldingen ble laget av DokuWiki -@DOKUWIKIURL@'; $lang['unable_to_parse_date'] = 'Ikke mulig Ã¥ tolke "%s".'; +$lang['email_signature_text'] = 'Denne meldingen ble laget av DokuWiki +@DOKUWIKIURL@'; diff --git a/inc/lang/no/login.txt b/inc/lang/no/login.txt index 149cf0031e0ac4d0f2f0086fd8fb0b0dc4c79526..877fff0d8773450bdf666385f02e3f73a7da3a39 100644 --- a/inc/lang/no/login.txt +++ b/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/inc/lang/no/resendpwd.txt b/inc/lang/no/resendpwd.txt index 21625d3f534ba0ed4c09952b89d3a2c5d6e20004..315ab81ee5e75fe8fa119d65bf20de2155db362d 100644 --- a/inc/lang/no/resendpwd.txt +++ b/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/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 1eb99555e4c37d36ce9adcb1f60301893e17f434..721785ae4f4a69a61f08703ed2f87f5d6ee559c6 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -11,6 +11,7 @@ * @author Marius Olar <olarmariusalex@yahoo.com> * @author Marian Banica <banica.marian@gmail.com> * @author Adrian Vesa <adrianvesa@dotwikis.com> + * @author valentina_prof <sadoveanu.inform@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -333,6 +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['email_signature_text'] = 'Acest e-mail a fost generat de DokuWiki la -@DOKUWIKIURL@'; $lang['searchresult'] = 'Rezultatul cautarii'; +$lang['email_signature_text'] = 'Acest e-mail a fost generat de DokuWiki la +@DOKUWIKIURL@'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 0e19dfa6013ac511bbe1c191eb54045d687856dd..332fa2f06a36021d2fa0c8f2e38b4e9ac8e1c8ec 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -34,6 +34,7 @@ * @author Takumo <9206984@mail.ru> * @author RainbowSpike <1@2.ru> * @author dimsharav <dimsharav@gmail.com> + * @author Radimir <radimir.shevchenko@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -371,5 +372,5 @@ $lang['plainhtml'] = 'ПроÑтой HTML'; $lang['wikimarkup'] = 'вики-разметка'; $lang['page_nonexist_rev'] = 'Ðта Ñтраница ещё не ÑущеÑтвовала %s. Она была Ñоздана <a href="%s">%s</a>.'; $lang['unable_to_parse_date'] = 'Ðевозможно обработать параметр "%s".'; -$lang['email_signature_text'] = 'Ðто пиÑьмо Ñоздано «Докувики» Ñ Ñайта +$lang['email_signature_text'] = 'Ðто пиÑьмо Ñоздано «Докувики» Ñ Ñайта @DOKUWIKIURL@'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 80f0d36d91865d66d9686b96198aa881b4a15f77..493dcaea56b8e005e2f09abd390e65afb1bfebcf 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -1,11 +1,12 @@ <?php + /** - * serbian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Filip Brcic <brcha@users.sourceforge.net> * @author Иван Петровић (Ivan Petrovic) <petrovicivan@ubuntusrbija.org> * @author Miroslav Å olti <solti.miroslav@gmail.com> + * @author Жељко Тодоровић <zeljko_todorovic@mail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -45,6 +46,8 @@ $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'] = 'Лозинка'; @@ -59,7 +62,7 @@ $lang['badlogin'] = 'Извините, није добро кори $lang['minoredit'] = 'Мала измена'; $lang['draftdate'] = 'Ðацрт је аутоматÑки Ñачуван'; $lang['nosecedit'] = 'Страна је у међувремену промењена, поглавље је заÑтарело и поново Ñе учитава цела Ñтрана.'; -$lang['searchcreatepage'] = "Ðко ниÑте нашли то што Ñте тражили, можете да направите нову Ñтраницу названу по Вашем упиту кориÑтећи дугме ''Измени ову Ñтраницу''."; +$lang['searchcreatepage'] = 'Ðко ниÑте нашли то што Ñте тражили, можете да направите нову Ñтраницу названу по Вашем упиту кориÑтећи дугме \'\'Измени ову Ñтраницу\'\'.'; $lang['regmissing'] = 'Извините, морате да попуните Ñва поља.'; $lang['reguexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; $lang['regsuccess'] = 'КориÑник је направљен и лозинка је поÑлата путем е-поште.'; @@ -73,6 +76,8 @@ $lang['profna'] = 'Овај вики не дозвољава из $lang['profnochange'] = 'Ðема промена.'; $lang['profnoempty'] = 'Ðије дозвољено оÑтавити празно поље имена или е-адреÑе.'; $lang['profchanged'] = 'КориÑнички профил је ажуриран.'; +$lang['profdeleteuser'] = 'Избриши налог'; +$lang['profdeleted'] = 'Ваш кориÑнички налог је избриÑан Ñа овог викија'; $lang['pwdforget'] = 'Заборавили Ñте лозинку? Ðаправите нову'; $lang['resendna'] = 'Овај вики не дозвољава Ñлање лозинки.'; $lang['resendpwdmissing'] = 'Жао ми је, Ñва поља морају бити попуњена.'; @@ -89,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'] = 'Потражи фајлове'; @@ -171,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'] = 'Подвучени текÑÑ‚'; @@ -199,7 +206,6 @@ $lang['upperns'] = 'Скочи на виши именÑки про $lang['metaedit'] = 'Измени мета-податке'; $lang['metasaveerr'] = 'ЗапиÑивање мета-података није било уÑпешно'; $lang['metasaveok'] = 'Мета-подаци Ñу Ñачувани'; -$lang['btn_img_backto'] = 'Ðатраг на %s'; $lang['img_title'] = 'ÐаÑлов:'; $lang['img_caption'] = 'Ðазив:'; $lang['img_date'] = 'Датум:'; @@ -258,5 +264,5 @@ $lang['hours'] = 'Пре %d Ñати'; $lang['minutes'] = 'Пре %d минута'; $lang['seconds'] = 'Пре %d Ñекунди'; $lang['wordblock'] = 'Ваше измене ниÑу Ñачуване јер Ñадрже забрањен текÑÑ‚ (Ñпам)'; -$lang['email_signature_text'] = 'Ову поруку је генериÑао DokuWiki sa +$lang['email_signature_text'] = 'Ову поруку је генериÑао DokuWiki sa @DOKUWIKIURL@'; diff --git a/inc/lang/sr/updateprofile.txt b/inc/lang/sr/updateprofile.txt index 15b9955e9af062238568afefafa41fcdf0c90221..1f31b22508da2fd57c45958fe14650f662371e01 100644 --- a/inc/lang/sr/updateprofile.txt +++ b/inc/lang/sr/updateprofile.txt @@ -1,3 +1,3 @@ ====== Ðжурирање Вашег профила ====== -Потребно је попунити Ñамо она поља која желите да промените. Поље КориÑничко име не можете да променити. \ No newline at end of file +Потребно је попунити Ñамо она поља која желите да промените. Поље КориÑничко име не можете да промените. \ No newline at end of file diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index a2a9e93559793ef10eedec96515dae79b0db4624..6968d38fcea6c59aa7773e5858d13b4bdde1626a 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -27,6 +27,7 @@ * @author Errol <errol@hotmail.com> * @author Garfield <garfield_550@outlook.com> * @author JellyChen <451453325@qq.com> + * @author tai <tai_tang@126.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/inc/lessc.inc.php b/inc/lessc.inc.php index 3d0ed768a99079951959d8bdbe4f34b49b3c86b7..ada166d77d343208be53673bbc933299b0a1c448 100644 --- a/inc/lessc.inc.php +++ b/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/inc/load.php b/inc/load.php index 59ba5bc42834bd4f6e7227af277cac9b1b545d8e..8bb54cd536cacf23fa0d60dac1d764fc06349b6c 100644 --- a/inc/load.php +++ b/inc/load.php @@ -68,6 +68,7 @@ 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', 'Tar' => DOKU_INC.'inc/Tar.class.php', diff --git a/inc/parser/handler.php b/inc/parser/handler.php index f477d36f86a0398ec4d00012ce1e1fa6a777bba9..a5e7f39cd0fec923b984141b0ed7e12c511579fb 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -446,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( @@ -693,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'; diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 2efb1d831a7587f580e52c3846dd96b12182a8d1..72498182040f807495b83135b2783fd4b61eec82 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1186,6 +1186,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { */ 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; diff --git a/inc/template.php b/inc/template.php index a5135d3e6d3a2f6e5ca08b9ae40db295c71e5e63..1e0af91c8ea83008448fa891dc534a7bcfad72bc 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1224,8 +1224,8 @@ function tpl_img($maxwidth = 0, $maxheight = 0, $link = true, $params = null) { /** @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; diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 6421c4a48a8465c2975559015b14cabdd7f9fb15..3046f47e96f790ac8b399cc8fb1f5b21ecc3ab79 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -4,7 +4,7 @@ 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 diff --git a/lib/plugins/acl/lang/ca/lang.php b/lib/plugins/acl/lang/ca/lang.php index 18a4a3602d9c0269b78632c01e4ff8da36d95064..0c882962da595807dd11deddb703a959e911d5a4 100644 --- a/lib/plugins/acl/lang/ca/lang.php +++ b/lib/plugins/acl/lang/ca/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com diff --git a/lib/plugins/acl/lang/fr/lang.php b/lib/plugins/acl/lang/fr/lang.php index 9539c5be52fc4bf224bfbfd7d6d24ace67ceb837..483b8b5c686f7ea959ff791038cf19a442d5f874 100644 --- a/lib/plugins/acl/lang/fr/lang.php +++ b/lib/plugins/acl/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sébastien Bauer <sebastien.bauer@advalvas.be> * @author Antoine Fixary <antoine.fixary@freesbee.fr> * @author cumulus <pta-n56@myamail.com> diff --git a/lib/plugins/acl/lang/hr/lang.php b/lib/plugins/acl/lang/hr/lang.php index b12966c8446fbae349a0b46cb4f869fb65caca4f..9b68c8a15800e52733d0946e851b0a8566eb3d70 100644 --- a/lib/plugins/acl/lang/hr/lang.php +++ b/lib/plugins/acl/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Branko Rihtman <theney@gmail.com> * @author Dražen OdobaÅ¡ić <dodobasic@gmail.com> * @author Dejan Igrec dejan.igrec@gmail.com diff --git a/lib/plugins/acl/lang/no/lang.php b/lib/plugins/acl/lang/no/lang.php index b9664794d0f9ffef35b338050ef768035ec027e8..13770f4983b79627212fdd089f3250c10224b4c1 100644 --- a/lib/plugins/acl/lang/no/lang.php +++ b/lib/plugins/acl/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Reidar Mosvold <Reidar.Mosvold@hit.no> * @author Jorge Barrera Grandon <jorge@digitalwolves.org> * @author Thomas Nygreen <nygreen@gmail.com> diff --git a/lib/plugins/acl/lang/ro/lang.php b/lib/plugins/acl/lang/ro/lang.php index 418e63ab3c55a0ab9b189d2056e9434d6a993d6b..804bc80c8583d9ac877e19673ee89208cce13f3d 100644 --- a/lib/plugins/acl/lang/ro/lang.php +++ b/lib/plugins/acl/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author s_baltariu@yahoo.com * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> diff --git a/lib/plugins/acl/lang/ru/lang.php b/lib/plugins/acl/lang/ru/lang.php index b49d216f9ea8dab68fae085e04745a2325872513..dc6744451a0126df7700851421a030256d785c7b 100644 --- a/lib/plugins/acl/lang/ru/lang.php +++ b/lib/plugins/acl/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Denis Simakov <akinoame1@gmail.com> * @author Змей ÐтерийÑкий evil_snake@eternion.ru * @author Hikaru Nakajima <jisatsu@mail.ru> diff --git a/lib/plugins/acl/lang/sr/lang.php b/lib/plugins/acl/lang/sr/lang.php index 0a94418c7701bab7a06c777402529d3807f50d30..0ba322a5e549e53b0110eca063eb98c837347310 100644 --- a/lib/plugins/acl/lang/sr/lang.php +++ b/lib/plugins/acl/lang/sr/lang.php @@ -1,8 +1,8 @@ <?php + /** - * serbian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Filip Brcic <brcha@users.sourceforge.net> * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> diff --git a/lib/plugins/authad/lang/ca/lang.php b/lib/plugins/authad/lang/ca/lang.php index abe25a5f249a8637a06e99b519b8156eacf2c9c1..9990e3b6d7922ac25feaeaefce988a4f2e93c3ba 100644 --- a/lib/plugins/authad/lang/ca/lang.php +++ b/lib/plugins/authad/lang/ca/lang.php @@ -2,7 +2,9 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Daniel López Prat <daniel@6temes.cat> + * @author Pauet <pauet@gmx.com> */ $lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'haurÃeu de canviar aviat.'; +$lang['passchangefail'] = 'Ha fallat el canviar el password. Es possible que no s\'hagi complert la polÃtica de passwords'; diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php index 8105fb6f2e1aba90317aed34a238be3d970461f6..69b7fe2a93db91392440edb7c29611128cfedf5a 100644 --- a/lib/plugins/authad/lang/de/settings.php +++ b/lib/plugins/authad/lang/de/settings.php @@ -7,6 +7,7 @@ * @author Matthias Schulte <dokuwiki@lupo49.de> * @author Ben Fey <benedikt.fey@beck-heun.de> * @author Jonas Gröger <jonas.groeger@gmail.com> + * @author Carsten Perthel <carsten@cpesoft.com> */ $lang['account_suffix'] = 'Ihr Account-Suffix. Z. B. <code>@my.domain.org</code>'; $lang['base_dn'] = 'Ihr Base-DN. Z. B. <code>DC=my,DC=domain,DC=org</code>'; @@ -21,3 +22,5 @@ $lang['use_tls'] = 'TLS-Verbindung benutzen? Falls ja, SSL oberhal $lang['debug'] = 'Zusätzliche Debug-Informationen bei Fehlern anzeigen?'; $lang['expirywarn'] = 'Tage im Voraus um Benutzer über ablaufende Passwörter zu informieren. 0 zum Ausschalten.'; $lang['additional'] = 'Eine Komma-separierte Liste von zusätzlichen AD-Attributen, die von den Benutzerobjekten abgefragt werden. Wird von einigen Plugins benutzt.'; +$lang['update_name'] = 'Benutzern erlauben, ihren AD Anzeige-Namen zu ändern?'; +$lang['update_mail'] = 'Benutzern erlauben, ihre E-Mail-Adresse zu ändern?'; diff --git a/lib/plugins/authad/lang/fr/lang.php b/lib/plugins/authad/lang/fr/lang.php index 1ab523ff146f67e516bce3155b8732a119f72766..ba512353b674882685017f365d6ff4193241b6d1 100644 --- a/lib/plugins/authad/lang/fr/lang.php +++ b/lib/plugins/authad/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author ggallon <gwenael.gallon@mac.com> * @author Yannick Aure <yannick.aure@gmail.com> * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> diff --git a/lib/plugins/authad/lang/fr/settings.php b/lib/plugins/authad/lang/fr/settings.php index d52e305fe4388f061bafa10a19296479d63d2979..f747c08ae8b270a69d404cdb5b7e6565e8933736 100644 --- a/lib/plugins/authad/lang/fr/settings.php +++ b/lib/plugins/authad/lang/fr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Momo50 <c.brothelande@gmail.com> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> diff --git a/lib/plugins/authad/lang/hr/lang.php b/lib/plugins/authad/lang/hr/lang.php index f05b038ada3a5af29d062d3447de5d6f2dea4780..04268c2d8e96eaf343eaf5cfd001ed25b3c11421 100644 --- a/lib/plugins/authad/lang/hr/lang.php +++ b/lib/plugins/authad/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['domain'] = 'Domena za prijavu'; diff --git a/lib/plugins/authad/lang/hr/settings.php b/lib/plugins/authad/lang/hr/settings.php index 5efa9a259167d9b87c49f746cc752fb79dcd1801..a34d89b8c6dae9581c6b7f12d72ecebaea0faf5f 100644 --- a/lib/plugins/authad/lang/hr/settings.php +++ b/lib/plugins/authad/lang/hr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['account_suffix'] = 'VaÅ¡ sufiks korisniÄkog imena. Npr. <code>@my.domain.org</code>'; diff --git a/lib/plugins/authad/lang/no/lang.php b/lib/plugins/authad/lang/no/lang.php index b497c4719549fa8913b0a22fcf4e95968f46d7fb..c702e9e6de8ac2638dca87ae290aeaa41c1b57de 100644 --- a/lib/plugins/authad/lang/no/lang.php +++ b/lib/plugins/authad/lang/no/lang.php @@ -2,12 +2,15 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Patrick <spill.p@hotmail.com> * @author Thomas Juberg <Thomas.Juberg@Gmail.com> * @author Danny Buckhof <daniel.raknes@hotmail.no> + * @author Patrick Sletvold <patricksletvold@hotmail.com> + * @author Arne Hanssen <arnehans@getmail.no> */ $lang['domain'] = 'LoggpÃ¥-domene'; $lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; $lang['passchangefail'] = 'Feil ved endring av passord. Det kan være at passordet ikke er i trÃ¥d med passordpolicyen '; +$lang['userchangefail'] = 'Klarte ikke Ã¥ endre brukerattributter. Kanskje gar ikke kontoen din rettigheter til Ã¥ gjøre endringer?'; $lang['connectfail'] = 'Feil ved kontakt med Active Directory serveren.'; diff --git a/lib/plugins/authad/lang/no/settings.php b/lib/plugins/authad/lang/no/settings.php index 727f6611dae6eecff4f9e2e7e769f40d4f26f56f..a374f38b745fc9d55d077a68a8288ceec3365573 100644 --- a/lib/plugins/authad/lang/no/settings.php +++ b/lib/plugins/authad/lang/no/settings.php @@ -2,13 +2,25 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> * @author Danny Buckhof <daniel.raknes@hotmail.no> + * @author Patrick Sletvold <patricksletvold@hotmail.com> + * @author Arne Hanssen <arnehans@getmail.no> */ $lang['account_suffix'] = 'Ditt konto-suffiks F. Eks. <code>@my.domain.org</code>'; +$lang['base_dn'] = 'Din rot-DN. F.eks. <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'En kommaseparert liste over domenekontrollere. Eks. <code>srv1.domene.org,srv2.domene.org</code>'; +$lang['admin_username'] = 'En «Active Directory»-bruker med tilgang til alle andre brukeres data. Valgfritt, men nødvendig for visse handlinger f.eks. for utsendelse av e-poster til abonnenter.'; $lang['admin_password'] = 'Passordet til brukeren over.'; +$lang['sso'] = 'Skal engangspÃ¥logging via Kerberos eller NTLM bli brukt?'; +$lang['sso_charset'] = 'Tegnsettet din web-server vil bruke for ditt Kerberos- eller NTLM-brukernavn. La stÃ¥ tomt for UTF-8 eller ISO Latin-1. Avhengig av utvidelsen iconv.'; +$lang['real_primarygroup'] = 'Skal en finne den virkelige gruppen i stedet for Ã¥ anta at dette er "domene-brukere" (tregere).'; $lang['use_ssl'] = 'Bruk SSL tilknytning? Hvis denne brukes, ikke aktiver TLS nedenfor.'; $lang['use_tls'] = 'Bruk TLS tilknytning? Hvis denne brukes, ikke aktiver SSL over.'; +$lang['debug'] = 'Ved feil, vise tilleggsinformasjon for feilsøking?'; $lang['expirywarn'] = 'Antall dager pÃ¥ forhÃ¥nd brukeren varsles om at passordet utgÃ¥r. 0 for Ã¥ deaktivere.'; +$lang['additional'] = 'En kommaseparert liste med AD-attributter som skal hentes fra brukerdata. Blir brukt av enkelte programtillegg.'; +$lang['update_name'] = 'Tillate at brukere endrer AD-visningsnavnet sitt?'; +$lang['update_mail'] = 'Tillate at brukere endrer e-postadressen sin?'; diff --git a/lib/plugins/authad/lang/ro/lang.php b/lib/plugins/authad/lang/ro/lang.php index 65df92f7f79e14750716cfd9fe1ae9cf6559703b..f08a22c35aec8dc4bec66dd9c63cdd71e642c79c 100644 --- a/lib/plugins/authad/lang/ro/lang.php +++ b/lib/plugins/authad/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Razvan Deaconescu <razvan.deaconescu@cs.pub.ro> * @author Adrian Vesa <adrianvesa@dotwikis.com> */ diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php index ebce005c0fbb5d99e3f9e740ffd72fa7cfc337a8..215270901b025f92b8a9fe23b43e422bc81fb2ed 100644 --- a/lib/plugins/authad/lang/ru/lang.php +++ b/lib/plugins/authad/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Takumo <9206984@mail.ru> * @author dimsharav <dimsharav@gmail.com> diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index d9cf1fd690c69a1cf2aae2086bb51b8e01f45406..4e95d36f931f455d727989bcfa775dd2d90551f7 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> * @author Artur <ncuxxx@gmail.com> @@ -11,6 +11,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Radimir <radimir.shevchenko@gmail.com> */ $lang['account_suffix'] = 'Ð¡ÑƒÑ„Ñ„Ð¸ÐºÑ Ð²Ð°ÑˆÐµÐ³Ð¾ аккаунта. Ðапример, <code>@my.domain.org</code>'; $lang['base_dn'] = 'Ваш базовый DN. Ðапример: <code>DC=my,DC=domain,DC=org</code>'; @@ -25,3 +26,5 @@ $lang['use_tls'] = 'ИÑпользовать TLS? ЕÑли да, $lang['debug'] = 'Выводить дополнительную информацию при ошибках?'; $lang['expirywarn'] = 'За Ñколько дней нужно предупреждать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾ необходимоÑти изменить пароль? Ð”Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð¶Ð¸Ñ‚Ðµ 0 (ноль).'; $lang['additional'] = 'Дополнительные AD-атрибуты, разделённые запÑтой, Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ из данных пользователÑ. ИÑпользуетÑÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ плагинами.'; +$lang['update_name'] = 'Разрешить пользователÑм редактировать Ñвое наÑтоÑщее имÑ?'; +$lang['update_mail'] = 'Разрешить пользователÑм редактировать Ñвой Ñлектронный адреÑ?'; diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index bf83dd7fba11ceda8616992d483a2142ccccccca..9dece24279cc740805339991b9ed8d701ee841fa 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -183,7 +183,11 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { $info = array(); $info['user'] = $user; + $this->_debug('LDAP user to find: '.htmlspecialchars($info['user']), 0, __LINE__, __FILE__); + $info['server'] = $this->getConf('server'); + $this->_debug('LDAP Server: '.htmlspecialchars($info['server']), 0, __LINE__, __FILE__); + //get info for given user $base = $this->_makeFilter($this->getConf('usertree'), $info); @@ -193,16 +197,33 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { $filter = "(ObjectClass=*)"; } - $sr = $this->_ldapsearch($this->con, $base, $filter, $this->getConf('userscope')); - $result = @ldap_get_entries($this->con, $sr); + $this->_debug('LDAP Filter: '.htmlspecialchars($filter), 0, __LINE__, __FILE__); + $this->_debug('LDAP user search: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); $this->_debug('LDAP search at: '.htmlspecialchars($base.' '.$filter), 0, __LINE__, __FILE__); - - // Don't accept more or less than one response - if(!is_array($result) || $result['count'] != 1) { - return false; //user not found + $sr = $this->_ldapsearch($this->con, $base, $filter, $this->getConf('userscope')); + + $result = @ldap_get_entries($this->con, $sr); + + // if result is not an array + if(!is_array($result)) { + // no objects found + $this->_debug('LDAP search returned non-array result: '.htmlspecialchars(print($result)), -1, __LINE__, __FILE__); + return false; } - + + // Don't accept more or less than one response + if ($result['count'] != 1) { + $this->_debug('LDAP search returned '.htmlspecialchars($result['count']).' results while it should return 1!', -1, __LINE__, __FILE__); + //for($i = 0; $i < $result["count"]; $i++) { + //$this->_debug('result: '.htmlspecialchars(print_r($result[$i])), 0, __LINE__, __FILE__); + //} + return false; + } + + + $this->_debug('LDAP search found single result !', 0, __LINE__, __FILE__); + $user_result = $result[0]; ldap_free_result($sr); diff --git a/lib/plugins/authldap/lang/fr/lang.php b/lib/plugins/authldap/lang/fr/lang.php index 5797bda428e7345e8452cd1588efd5f0485d19ae..ce26e86886ab559afa2a9ff9d188a4636c2d2bf7 100644 --- a/lib/plugins/authldap/lang/fr/lang.php +++ b/lib/plugins/authldap/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> */ $lang['connectfail'] = 'LDAP ne peux se connecter : %s'; diff --git a/lib/plugins/authldap/lang/fr/settings.php b/lib/plugins/authldap/lang/fr/settings.php index 619aee3d323f630b78bcc78076c35539df547080..49279f47f9b8c7db316f6a6206a0270bd8c2db41 100644 --- a/lib/plugins/authldap/lang/fr/settings.php +++ b/lib/plugins/authldap/lang/fr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Bruno Veilleux <bruno.vey@gmail.com> * @author schplurtz <Schplurtz@laposte.net> * @author Schplurtz le Déboulonné <schplurtz@laposte.net> diff --git a/lib/plugins/authldap/lang/hr/lang.php b/lib/plugins/authldap/lang/hr/lang.php index 5e13d1b0572ff7f47726693ecb82e5153ed33e53..fb915b4097f6b163b18914f3f01ccc9cfa83a752 100644 --- a/lib/plugins/authldap/lang/hr/lang.php +++ b/lib/plugins/authldap/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['connectfail'] = 'LDAP se ne može spojiti: %s'; diff --git a/lib/plugins/authldap/lang/hr/settings.php b/lib/plugins/authldap/lang/hr/settings.php index 5c306d84bb67e3d3a2580277062f4afba01c61e6..0e5faa484e23e42714535301dc4296dde29e2c13 100644 --- a/lib/plugins/authldap/lang/hr/settings.php +++ b/lib/plugins/authldap/lang/hr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['server'] = 'VaÅ¡ LDAP server. UpiÅ¡ite ili naziv raÄunala (<code>localhost</code>) ili puni URL (<code>ldap://server.tld:389</code>)'; diff --git a/lib/plugins/authldap/lang/no/lang.php b/lib/plugins/authldap/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..72c0c6ecfc606bc4ec4598742e4aa776ca611d8d --- /dev/null +++ b/lib/plugins/authldap/lang/no/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arnehans@getmail.no> + */ +$lang['connectfail'] = 'LDAP klarte ikke koble til: %s'; +$lang['domainfail'] = 'LDAP greide ikke finne din bruker-dn (dist.name)'; diff --git a/lib/plugins/authldap/lang/no/settings.php b/lib/plugins/authldap/lang/no/settings.php index 61671ed4645fc939543ad6330fc9e992298c13fb..3e320bde027bd290ffc05b2641153e15997d7a8b 100644 --- a/lib/plugins/authldap/lang/no/settings.php +++ b/lib/plugins/authldap/lang/no/settings.php @@ -2,10 +2,34 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> */ +$lang['server'] = 'Din LDAP-server. Enten vertsnavnet (<code>localhost</code>) eller hele URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP serverport dersom ingen full URL var gitt over.'; +$lang['usertree'] = 'Hvor en kan finne brukerkontoer. F.eks. Eg. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Hvor en kan finne brukergrupper. F.eks. <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'LDAP-filter for Ã¥ søke etter brukerkontoer. F.eks. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'LDAP-filter for Ã¥ søke etter grupper. F.eks.. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'Protokollversjonen som skal brukes. Mulig du mÃ¥ sette denne til <code>3</code>'; $lang['starttls'] = 'Bruke TLS-forbindelser?'; +$lang['referrals'] = 'Skal pekere som henviser til noe følges?'; +$lang['deref'] = 'Hvordan finne hva aliaser refererer til?'; +$lang['binddn'] = 'DN (Distinguished Name) til en valgfri bind-bruker, angis dersom annonym bind ikke er tilstrekkelig. f.eks.. <code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'Passord til brukeren over'; +$lang['userscope'] = 'Begrens søk til brukere'; +$lang['groupscope'] = 'Begrens søk til grupper'; +$lang['userkey'] = 'Attributt som angir brukernavn; mÃ¥ være konsistent for brukerfiltrering.'; +$lang['groupkey'] = 'Gruppemedlemskap fra brukerattributt (i stedet for standard AD-grupper) f.eks gruppe fra avdeling, eller telefonnummer'; +$lang['modPass'] = 'Kan LDAP-passordet endres via DokuWiki?'; +$lang['debug'] = 'Ved feil, vis tilleggsinformasjon for feilsøking'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'bruk standard'; +$lang['referrals_o_0'] = 'ikke følg referanser'; +$lang['referrals_o_1'] = 'følg referanser'; diff --git a/lib/plugins/authldap/lang/ru/lang.php b/lib/plugins/authldap/lang/ru/lang.php index c05ed3b1545204e912f6e7cab7fc5628c4aaf848..1a908990356d761c0c9a41d1b5027721940c8ec1 100644 --- a/lib/plugins/authldap/lang/ru/lang.php +++ b/lib/plugins/authldap/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Takumo <9206984@mail.ru> */ $lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ LDAP Ñ %s'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 0b6ad4abd23f0ea35c0a214bd9140e2a27933450..973584e7fd9c76b0524e86afb06827e95d5e49c8 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> * @author Erli Moen <evseev.jr@gmail.com> diff --git a/lib/plugins/authmysql/lang/fr/lang.php b/lib/plugins/authmysql/lang/fr/lang.php index d5a1e1209dae8833941ccf8ee169d8e6502d80e1..5e9fb6987d319444ee7d42e7c9e2a68c72e60818 100644 --- a/lib/plugins/authmysql/lang/fr/lang.php +++ b/lib/plugins/authmysql/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> */ $lang['connectfail'] = 'Impossible de se connecter à la base de données.'; diff --git a/lib/plugins/authmysql/lang/fr/settings.php b/lib/plugins/authmysql/lang/fr/settings.php index d69c8d41c2c8da641f9d032d2683a15df7927676..a88b3256cd64086b1a4516eb4698f74b36c7470f 100644 --- a/lib/plugins/authmysql/lang/fr/settings.php +++ b/lib/plugins/authmysql/lang/fr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Bruno Veilleux <bruno.vey@gmail.com> */ $lang['server'] = 'Votre serveur MySQL'; diff --git a/lib/plugins/authmysql/lang/hr/lang.php b/lib/plugins/authmysql/lang/hr/lang.php index 3f5dc5d6010a0754e4807bda379fb2d665f8fd96..e839d6725de5d7c06fe63370ce15f3bdc280026d 100644 --- a/lib/plugins/authmysql/lang/hr/lang.php +++ b/lib/plugins/authmysql/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['connectfail'] = 'Ne mogu se spojiti na bazu.'; diff --git a/lib/plugins/authmysql/lang/hr/settings.php b/lib/plugins/authmysql/lang/hr/settings.php index af99669999e70b86b312caf92167b0a64385ca2c..370b645e8edc37005a92b86a05cbfb46c7c1820d 100644 --- a/lib/plugins/authmysql/lang/hr/settings.php +++ b/lib/plugins/authmysql/lang/hr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['server'] = 'VaÅ¡ MySQL server'; diff --git a/lib/plugins/authmysql/lang/no/lang.php b/lib/plugins/authmysql/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..38377b561936b10bf99b25fbbbbab7c128a7bda7 --- /dev/null +++ b/lib/plugins/authmysql/lang/no/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arne.hanssen@getmail.no> + */ +$lang['connectfail'] = 'Klarte ikke koble til databasen.'; +$lang['userexists'] = 'Beklager, men en bruker med dette brukernavnet fins fra før.'; +$lang['usernotexists'] = 'Beklager med bruker fins ikke.'; +$lang['writefail'] = 'Klarte ikke endre brukerdata. Dette bør meldes til wikiens administrator'; diff --git a/lib/plugins/authmysql/lang/no/settings.php b/lib/plugins/authmysql/lang/no/settings.php index 45ab09819f9539cf93fd6fd774379868ce881d3d..6d4134f7c9d492e0c593ca754286349ef6fc954e 100644 --- a/lib/plugins/authmysql/lang/no/settings.php +++ b/lib/plugins/authmysql/lang/no/settings.php @@ -2,13 +2,43 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Patrick <spill.p@hotmail.com> + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> */ $lang['server'] = 'Din MySQL-server'; $lang['user'] = 'Ditt MySQL-brukernavn'; $lang['password'] = 'Passord til brukeren'; $lang['database'] = 'Database som skal brukes'; +$lang['charset'] = 'Tegnsettet som datasen bruker'; +$lang['debug'] = 'Vis tilleggsinformasjon for feilsøking'; +$lang['forwardClearPass'] = 'Videresendt passord i klartekst til SQL-uttrykket under, i stedet for Ã¥ bruke det krypterte passordet'; +$lang['TablesToLock'] = 'Kommaseparert liste over tabeller som mÃ¥ lÃ¥ses ved skriveopperasjoner'; +$lang['checkPass'] = 'SQL-uttrykk for Ã¥ sjekke passord'; +$lang['getUserInfo'] = 'SQL-uttrykk for Ã¥ hente informasjon om bruker'; +$lang['getGroups'] = 'SQL-uttrykk for Ã¥ hente gruppene en bruker tilhører'; +$lang['getUsers'] = 'SQL-utrykk for Ã¥ liste alle brukere'; +$lang['FilterLogin'] = 'SQL-utrykk for Ã¥ filtrere brukere etter brukernavn'; +$lang['FilterName'] = 'SQL-utrykk for Ã¥ filtrere brukere etter fult navn'; +$lang['FilterEmail'] = 'SQL-utrykk for Ã¥ filtrere brukere etter e-postadresse'; +$lang['FilterGroup'] = 'SQL-uttrykk for Ã¥ filtrere brukere etter hvilken grupper de tilhører'; +$lang['SortOrder'] = 'SQL-utrykk for Ã¥ sortere brukere'; +$lang['addUser'] = 'SQL-utrykk for Ã¥ legge til en ny bruker '; +$lang['addGroup'] = 'SQL-utrykk for Ã¥ legge til en ny gruppe'; +$lang['addUserGroup'] = 'SQL-uttrykk for Ã¥ legge til en bruker i en eksisterende gruppe'; +$lang['delGroup'] = 'SQL-uttrykk for Ã¥ fjerne en gruppe'; +$lang['getUserID'] = 'SQL-uttrykk for Ã¥ hente primærnøkkel for en bruker'; +$lang['delUser'] = 'SQL-utrykk for Ã¥ slette en bruker'; +$lang['delUserRefs'] = 'SQL-utrykk for Ã¥ fjerne en bruke fra alle grupper'; +$lang['updateUser'] = 'SQL-uttrykk for Ã¥ oppdatere en brukerprofil'; +$lang['UpdateLogin'] = 'Update-utrykk for Ã¥ oppdatere brukernavn'; +$lang['UpdatePass'] = 'Update-utrykk for Ã¥ oppdatere brukers passord'; +$lang['UpdateEmail'] = 'Update-utrykk for Ã¥ oppdatere brukers e-postadresse'; +$lang['UpdateName'] = 'Update-utrykk for Ã¥ oppdatere brukers fulle navn'; +$lang['UpdateTarget'] = 'Limit-uttrykk for Ã¥ identifisere brukeren ved oppdatering'; +$lang['delUserGroup'] = 'SQL-uttrykk for Ã¥ fjerne en bruker fra en gitt gruppe'; +$lang['getGroupID'] = 'SQL-uttrykk for Ã¥ hente primærnøkkel for en gitt gruppe '; $lang['debug_o_0'] = 'ingen'; $lang['debug_o_1'] = 'bare ved feil'; -$lang['debug_o_2'] = 'alle SQL-forespørsler'; +$lang['debug_o_2'] = 'alle SQL-spørringer'; diff --git a/lib/plugins/authmysql/lang/ru/lang.php b/lib/plugins/authmysql/lang/ru/lang.php index e2160c375f9cc0e223e779ea4d12129741b150a8..27153fd5c192a695aa56cc05e79a4e39af25caac 100644 --- a/lib/plugins/authmysql/lang/ru/lang.php +++ b/lib/plugins/authmysql/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Takumo <9206984@mail.ru> * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ diff --git a/lib/plugins/authmysql/lang/ru/settings.php b/lib/plugins/authmysql/lang/ru/settings.php index d9afa14e6a16a63837a36151b28c3bc41ad0ed7e..054580a50030facd9fc9992f01293c415dbd91a4 100644 --- a/lib/plugins/authmysql/lang/ru/settings.php +++ b/lib/plugins/authmysql/lang/ru/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> * @author Type-kun <workwork-1@yandex.ru> diff --git a/lib/plugins/authpdo/_test/mysql/mybb.php b/lib/plugins/authpdo/_test/mysql/mybb.php new file mode 100644 index 0000000000000000000000000000000000000000..3a427b4455589e4baa676e24c1d1ae6419d427cc --- /dev/null +++ b/lib/plugins/authpdo/_test/mysql/mybb.php @@ -0,0 +1,144 @@ +<?php +/** + * Configuration for mybb. Password checking is done in SQL + * + * mybb stores additional group ids in a commaseparated list of mybb_users.addtionalgroups This + * is currently not supported in the setup below. If someone can come up with a clever config for + * that PRs would be welcome. + */ +/** @noinspection SqlResolve */ +$data = array( + 'passcrypt' => 'sha1', + 'conf' => array( + 'select-user' => ' + SELECT uid, + username AS user, + username AS name, + email AS mail + FROM mybb_users + WHERE username = :user + ', + 'check-pass' => ' + SELECT uid + FROM mybb_users + WHERE username = :user + AND password = MD5(CONCAT(MD5(salt), MD5(:clear))) + ', + 'select-user-groups' => ' + SELECT UG.title AS `group`, + UG.gid + FROM mybb_usergroups UG, + mybb_users U + WHERE U.usergroup = UG.gid + AND U.uid = :uid + ', + 'select-groups' => ' + SELECT gid, title AS `group` + FROM mybb_usergroups + ', + 'insert-user' => ' + SET @salt = LEFT(UUID(), 10); + INSERT INTO mybb_users + (username, email, salt, password, regdate) + VALUES (:user, :mail, @salt, MD5(CONCAT(MD5(@salt), MD5(:clear))), UNIX_TIMESTAMP() ) + ', + 'delete-user' => ' + DELETE FROM mybb_users + WHERE uid = :uid + ', + 'list-users' => ' + SELECT U.username AS user + FROM mybb_usergroups UG, + mybb_users U + WHERE U.usergroup = UG.gid + AND UG.title LIKE :group + AND U.username LIKE :user + AND U.username LIKE :name + AND U.email LIKE :mail + ORDER BY U.username + LIMIT :limit + OFFSET :start + ', + 'count-users' => ' + SELECT COUNT(U.username) AS `count` + FROM mybb_usergroups UG, + mybb_users U + WHERE U.usergroup = UG.gid + AND UG.title LIKE :group + AND U.username LIKE :user + AND U.username LIKE :name + AND U.email LIKE :mail + ', + 'update-user-info' => ' + UPDATE mybb_users + SET email = :mail + WHERE uid = :uid + ', // we do not support changing the full name as that is the same as the login + 'update-user-login' => ' + UPDATE mybb_users + SET username = :newlogin + WHERE uid = :uid + ', + 'update-user-pass' => ' + SET @salt = LEFT(UUID(), 10); + UPDATE mybb_users + SET salt = @salt, + password = MD5(CONCAT(MD5(@salt), MD5(:clear))) + WHERE uid = :uid + ', + 'insert-group' => ' + INSERT INTO mybb_usergroups (title) + VALUES (:group) + ', + 'join-group' => ' + UPDATE mybb_users + SET usergroup = :gid + WHERE uid = :uid + ', + 'leave-group' => '', // makes probably no sense to implement + ), + 'users' => array( + array( + 'user' => 'Test One', + 'pass' => 'fakepass', + 'name' => 'Test One', + 'mail' => 'no_one@nowhere.com', + 'grps' => + array( + 0 => 'Registered', + ), + ), + array( + 'user' => 'Test Two', + 'pass' => 'fakepass', + 'name' => 'Test Two', + 'mail' => 'no_one@nowhere.com', + 'grps' => + array( + 0 => 'Super Moderators', + ), + ), + array( + 'user' => 'Test Three', + 'pass' => 'fakepass', + 'name' => 'Test Three', + 'mail' => 'no_one@nowhere.com', + 'grps' => + array( + 0 => 'Administrators', + ), + ), + array( + 'user' => 'Test Four', + 'pass' => 'fakepass', + 'name' => 'Test Four', + 'mail' => 'no_one@nowhere.com', + 'grps' => + array( + 0 => 'Moderators', + ), + ), + + + ), +); diff --git a/lib/plugins/authpdo/_test/mysql/mybb.sql b/lib/plugins/authpdo/_test/mysql/mybb.sql new file mode 100644 index 0000000000000000000000000000000000000000..fdd1a997457ea86b57a0184cebd09bae8fb84012 --- /dev/null +++ b/lib/plugins/authpdo/_test/mysql/mybb.sql @@ -0,0 +1,306 @@ +-- phpMyAdmin SQL Dump +-- version 4.4.14 +-- http://www.phpmyadmin.net +-- +-- Host: 127.0.0.1 +-- Generation Time: Aug 19, 2016 at 04:02 PM +-- Server version: 5.5.45 +-- PHP Version: 5.4.45 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `mybb` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mybb_usergroups` +-- + +CREATE TABLE `mybb_usergroups` ( + `gid` smallint(5) unsigned NOT NULL, + `type` tinyint(1) unsigned NOT NULL DEFAULT '2', + `title` varchar(120) NOT NULL DEFAULT '', + `description` text NOT NULL, + `namestyle` varchar(200) NOT NULL DEFAULT '{username}', + `usertitle` varchar(120) NOT NULL DEFAULT '', + `stars` smallint(4) unsigned NOT NULL DEFAULT '0', + `starimage` varchar(120) NOT NULL DEFAULT '', + `image` varchar(120) NOT NULL DEFAULT '', + `disporder` smallint(6) unsigned NOT NULL, + `isbannedgroup` tinyint(1) NOT NULL DEFAULT '0', + `canview` tinyint(1) NOT NULL DEFAULT '0', + `canviewthreads` tinyint(1) NOT NULL DEFAULT '0', + `canviewprofiles` tinyint(1) NOT NULL DEFAULT '0', + `candlattachments` tinyint(1) NOT NULL DEFAULT '0', + `canviewboardclosed` tinyint(1) NOT NULL DEFAULT '0', + `canpostthreads` tinyint(1) NOT NULL DEFAULT '0', + `canpostreplys` tinyint(1) NOT NULL DEFAULT '0', + `canpostattachments` tinyint(1) NOT NULL DEFAULT '0', + `canratethreads` tinyint(1) NOT NULL DEFAULT '0', + `modposts` tinyint(1) NOT NULL DEFAULT '0', + `modthreads` tinyint(1) NOT NULL DEFAULT '0', + `mod_edit_posts` tinyint(1) NOT NULL DEFAULT '0', + `modattachments` tinyint(1) NOT NULL DEFAULT '0', + `caneditposts` tinyint(1) NOT NULL DEFAULT '0', + `candeleteposts` tinyint(1) NOT NULL DEFAULT '0', + `candeletethreads` tinyint(1) NOT NULL DEFAULT '0', + `caneditattachments` tinyint(1) NOT NULL DEFAULT '0', + `canpostpolls` tinyint(1) NOT NULL DEFAULT '0', + `canvotepolls` tinyint(1) NOT NULL DEFAULT '0', + `canundovotes` tinyint(1) NOT NULL DEFAULT '0', + `canusepms` tinyint(1) NOT NULL DEFAULT '0', + `cansendpms` tinyint(1) NOT NULL DEFAULT '0', + `cantrackpms` tinyint(1) NOT NULL DEFAULT '0', + `candenypmreceipts` tinyint(1) NOT NULL DEFAULT '0', + `pmquota` int(3) unsigned NOT NULL DEFAULT '0', + `maxpmrecipients` int(4) unsigned NOT NULL DEFAULT '5', + `cansendemail` tinyint(1) NOT NULL DEFAULT '0', + `cansendemailoverride` tinyint(1) NOT NULL DEFAULT '0', + `maxemails` int(3) unsigned NOT NULL DEFAULT '5', + `emailfloodtime` int(3) unsigned NOT NULL DEFAULT '5', + `canviewmemberlist` tinyint(1) NOT NULL DEFAULT '0', + `canviewcalendar` tinyint(1) NOT NULL DEFAULT '0', + `canaddevents` tinyint(1) NOT NULL DEFAULT '0', + `canbypasseventmod` tinyint(1) NOT NULL DEFAULT '0', + `canmoderateevents` tinyint(1) NOT NULL DEFAULT '0', + `canviewonline` tinyint(1) NOT NULL DEFAULT '0', + `canviewwolinvis` tinyint(1) NOT NULL DEFAULT '0', + `canviewonlineips` tinyint(1) NOT NULL DEFAULT '0', + `cancp` tinyint(1) NOT NULL DEFAULT '0', + `issupermod` tinyint(1) NOT NULL DEFAULT '0', + `cansearch` tinyint(1) NOT NULL DEFAULT '0', + `canusercp` tinyint(1) NOT NULL DEFAULT '0', + `canuploadavatars` tinyint(1) NOT NULL DEFAULT '0', + `canratemembers` tinyint(1) NOT NULL DEFAULT '0', + `canchangename` tinyint(1) NOT NULL DEFAULT '0', + `canbereported` tinyint(1) NOT NULL DEFAULT '0', + `canchangewebsite` tinyint(1) NOT NULL DEFAULT '1', + `showforumteam` tinyint(1) NOT NULL DEFAULT '0', + `usereputationsystem` tinyint(1) NOT NULL DEFAULT '0', + `cangivereputations` tinyint(1) NOT NULL DEFAULT '0', + `candeletereputations` tinyint(1) NOT NULL DEFAULT '0', + `reputationpower` int(10) unsigned NOT NULL DEFAULT '0', + `maxreputationsday` int(10) unsigned NOT NULL DEFAULT '0', + `maxreputationsperuser` int(10) unsigned NOT NULL DEFAULT '0', + `maxreputationsperthread` int(10) unsigned NOT NULL DEFAULT '0', + `candisplaygroup` tinyint(1) NOT NULL DEFAULT '0', + `attachquota` int(10) unsigned NOT NULL DEFAULT '0', + `cancustomtitle` tinyint(1) NOT NULL DEFAULT '0', + `canwarnusers` tinyint(1) NOT NULL DEFAULT '0', + `canreceivewarnings` tinyint(1) NOT NULL DEFAULT '0', + `maxwarningsday` int(3) unsigned NOT NULL DEFAULT '3', + `canmodcp` tinyint(1) NOT NULL DEFAULT '0', + `showinbirthdaylist` tinyint(1) NOT NULL DEFAULT '0', + `canoverridepm` tinyint(1) NOT NULL DEFAULT '0', + `canusesig` tinyint(1) NOT NULL DEFAULT '0', + `canusesigxposts` smallint(5) unsigned NOT NULL DEFAULT '0', + `signofollow` tinyint(1) NOT NULL DEFAULT '0', + `edittimelimit` int(4) unsigned NOT NULL DEFAULT '0', + `maxposts` int(4) unsigned NOT NULL DEFAULT '0', + `showmemberlist` tinyint(1) NOT NULL DEFAULT '1', + `canmanageannounce` tinyint(1) NOT NULL DEFAULT '0', + `canmanagemodqueue` tinyint(1) NOT NULL DEFAULT '0', + `canmanagereportedcontent` tinyint(1) NOT NULL DEFAULT '0', + `canviewmodlogs` tinyint(1) NOT NULL DEFAULT '0', + `caneditprofiles` tinyint(1) NOT NULL DEFAULT '0', + `canbanusers` tinyint(1) NOT NULL DEFAULT '0', + `canviewwarnlogs` tinyint(1) NOT NULL DEFAULT '0', + `canuseipsearch` tinyint(1) NOT NULL DEFAULT '0' +) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `mybb_usergroups` +-- + +INSERT INTO `mybb_usergroups` (`gid`, `type`, `title`, `description`, `namestyle`, `usertitle`, `stars`, `starimage`, `image`, `disporder`, `isbannedgroup`, `canview`, `canviewthreads`, `canviewprofiles`, `candlattachments`, `canviewboardclosed`, `canpostthreads`, `canpostreplys`, `canpostattachments`, `canratethreads`, `modposts`, `modthreads`, `mod_edit_posts`, `modattachments`, `caneditposts`, `candeleteposts`, `candeletethreads`, `caneditattachments`, `canpostpolls`, `canvotepolls`, `canundovotes`, `canusepms`, `cansendpms`, `cantrackpms`, `candenypmreceipts`, `pmquota`, `maxpmrecipients`, `cansendemail`, `cansendemailoverride`, `maxemails`, `emailfloodtime`, `canviewmemberlist`, `canviewcalendar`, `canaddevents`, `canbypasseventmod`, `canmoderateevents`, `canviewonline`, `canviewwolinvis`, `canviewonlineips`, `cancp`, `issupermod`, `cansearch`, `canusercp`, `canuploadavatars`, `canratemembers`, `canchangename`, `canbereported`, `canchangewebsite`, `showforumteam`, `usereputationsystem`, `cangivereputations`, `candeletereputations`, `reputationpower`, `maxreputationsday`, `maxreputationsperuser`, `maxreputationsperthread`, `candisplaygroup`, `attachquota`, `cancustomtitle`, `canwarnusers`, `canreceivewarnings`, `maxwarningsday`, `canmodcp`, `showinbirthdaylist`, `canoverridepm`, `canusesig`, `canusesigxposts`, `signofollow`, `edittimelimit`, `maxposts`, `showmemberlist`, `canmanageannounce`, `canmanagemodqueue`, `canmanagereportedcontent`, `canviewmodlogs`, `caneditprofiles`, `canbanusers`, `canviewwarnlogs`, `canuseipsearch`) VALUES +(1, 1, 'Guests', 'The default group that all visitors are assigned to unless they''re logged in.', '{username}', 'Unregistered', 0, '', '', 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(2, 1, 'Registered', 'After registration, all users are placed in this group by default.', '{username}', '', 0, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 200, 5, 1, 0, 5, 5, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 5, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0), +(3, 1, 'Super Moderators', 'These users can moderate any forum.', '<span style="color: #CC00CC;"><strong>{username}</strong></span>', 'Super Moderator', 6, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 250, 5, 1, 0, 10, 5, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 10, 0, 0, 1, 0, 1, 1, 1, 3, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1), +(4, 1, 'Administrators', 'The group all administrators belong to.', '<span style="color: green;"><strong><em>{username}</em></strong></span>', 'Administrator', 7, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1), +(5, 1, 'Awaiting Activation', 'Users that have not activated their account by email or manually been activated yet.', '{username}', 'Account not Activated', 0, 'images/star.png', '', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 5, 0, 0, 5, 5, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0), +(6, 1, 'Moderators', 'These users moderate specific forums.', '<span style="color: #CC00CC;"><strong>{username}</strong></span>', 'Moderator', 5, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 250, 5, 1, 0, 5, 5, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 10, 0, 0, 1, 0, 1, 1, 1, 3, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1), +(7, 1, 'Banned', 'The default user group to which members that are banned are moved to.', '<s>{username}</s>', 'Banned', 0, 'images/star.png', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `mybb_usergroups` +-- +ALTER TABLE `mybb_usergroups` + ADD PRIMARY KEY (`gid`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `mybb_usergroups` +-- +ALTER TABLE `mybb_usergroups` + MODIFY `gid` smallint(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +-- phpMyAdmin SQL Dump +-- version 4.4.14 +-- http://www.phpmyadmin.net +-- +-- Host: 127.0.0.1 +-- Generation Time: Aug 19, 2016 at 03:47 PM +-- Server version: 5.5.45 +-- PHP Version: 5.4.45 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `mybb` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mybb_users` +-- + +CREATE TABLE `mybb_users` ( + `uid` int(10) unsigned NOT NULL, + `username` varchar(120) NOT NULL DEFAULT '', + `password` varchar(120) NOT NULL DEFAULT '', + `salt` varchar(10) NOT NULL DEFAULT '', + `loginkey` varchar(50) NOT NULL DEFAULT '', + `email` varchar(220) NOT NULL DEFAULT '', + `postnum` int(10) unsigned NOT NULL DEFAULT '0', + `threadnum` int(10) unsigned NOT NULL DEFAULT '0', + `avatar` varchar(200) NOT NULL DEFAULT '', + `avatardimensions` varchar(10) NOT NULL DEFAULT '', + `avatartype` varchar(10) NOT NULL DEFAULT '0', + `usergroup` smallint(5) unsigned NOT NULL DEFAULT '0', + `additionalgroups` varchar(200) NOT NULL DEFAULT '', + `displaygroup` smallint(5) unsigned NOT NULL DEFAULT '0', + `usertitle` varchar(250) NOT NULL DEFAULT '', + `regdate` int(10) unsigned NOT NULL DEFAULT '0', + `lastactive` int(10) unsigned NOT NULL DEFAULT '0', + `lastvisit` int(10) unsigned NOT NULL DEFAULT '0', + `lastpost` int(10) unsigned NOT NULL DEFAULT '0', + `website` varchar(200) NOT NULL DEFAULT '', + `icq` varchar(10) NOT NULL DEFAULT '', + `aim` varchar(50) NOT NULL DEFAULT '', + `yahoo` varchar(50) NOT NULL DEFAULT '', + `skype` varchar(75) NOT NULL DEFAULT '', + `google` varchar(75) NOT NULL DEFAULT '', + `birthday` varchar(15) NOT NULL DEFAULT '', + `birthdayprivacy` varchar(4) NOT NULL DEFAULT 'all', + `signature` text NOT NULL, + `allownotices` tinyint(1) NOT NULL DEFAULT '0', + `hideemail` tinyint(1) NOT NULL DEFAULT '0', + `subscriptionmethod` tinyint(1) NOT NULL DEFAULT '0', + `invisible` tinyint(1) NOT NULL DEFAULT '0', + `receivepms` tinyint(1) NOT NULL DEFAULT '0', + `receivefrombuddy` tinyint(1) NOT NULL DEFAULT '0', + `pmnotice` tinyint(1) NOT NULL DEFAULT '0', + `pmnotify` tinyint(1) NOT NULL DEFAULT '0', + `buddyrequestspm` tinyint(1) NOT NULL DEFAULT '1', + `buddyrequestsauto` tinyint(1) NOT NULL DEFAULT '0', + `threadmode` varchar(8) NOT NULL DEFAULT '', + `showimages` tinyint(1) NOT NULL DEFAULT '0', + `showvideos` tinyint(1) NOT NULL DEFAULT '0', + `showsigs` tinyint(1) NOT NULL DEFAULT '0', + `showavatars` tinyint(1) NOT NULL DEFAULT '0', + `showquickreply` tinyint(1) NOT NULL DEFAULT '0', + `showredirect` tinyint(1) NOT NULL DEFAULT '0', + `ppp` smallint(6) unsigned NOT NULL DEFAULT '0', + `tpp` smallint(6) unsigned NOT NULL DEFAULT '0', + `daysprune` smallint(6) unsigned NOT NULL DEFAULT '0', + `dateformat` varchar(4) NOT NULL DEFAULT '', + `timeformat` varchar(4) NOT NULL DEFAULT '', + `timezone` varchar(5) NOT NULL DEFAULT '', + `dst` tinyint(1) NOT NULL DEFAULT '0', + `dstcorrection` tinyint(1) NOT NULL DEFAULT '0', + `buddylist` text NOT NULL, + `ignorelist` text NOT NULL, + `style` smallint(5) unsigned NOT NULL DEFAULT '0', + `away` tinyint(1) NOT NULL DEFAULT '0', + `awaydate` int(10) unsigned NOT NULL DEFAULT '0', + `returndate` varchar(15) NOT NULL DEFAULT '', + `awayreason` varchar(200) NOT NULL DEFAULT '', + `pmfolders` text NOT NULL, + `notepad` text NOT NULL, + `referrer` int(10) unsigned NOT NULL DEFAULT '0', + `referrals` int(10) unsigned NOT NULL DEFAULT '0', + `reputation` int(11) NOT NULL DEFAULT '0', + `regip` varbinary(16) NOT NULL DEFAULT '', + `lastip` varbinary(16) NOT NULL DEFAULT '', + `language` varchar(50) NOT NULL DEFAULT '', + `timeonline` int(10) unsigned NOT NULL DEFAULT '0', + `showcodebuttons` tinyint(1) NOT NULL DEFAULT '1', + `totalpms` int(10) unsigned NOT NULL DEFAULT '0', + `unreadpms` int(10) unsigned NOT NULL DEFAULT '0', + `warningpoints` int(3) unsigned NOT NULL DEFAULT '0', + `moderateposts` tinyint(1) NOT NULL DEFAULT '0', + `moderationtime` int(10) unsigned NOT NULL DEFAULT '0', + `suspendposting` tinyint(1) NOT NULL DEFAULT '0', + `suspensiontime` int(10) unsigned NOT NULL DEFAULT '0', + `suspendsignature` tinyint(1) NOT NULL DEFAULT '0', + `suspendsigtime` int(10) unsigned NOT NULL DEFAULT '0', + `coppauser` tinyint(1) NOT NULL DEFAULT '0', + `classicpostbit` tinyint(1) NOT NULL DEFAULT '0', + `loginattempts` smallint(2) unsigned NOT NULL DEFAULT '1', + `usernotes` text NOT NULL, + `sourceeditor` tinyint(1) NOT NULL DEFAULT '0' +) ENGINE=MyISAM AUTO_INCREMENT=88 DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `mybb_users` +-- + +INSERT INTO `mybb_users` (`uid`, `username`, `password`, `salt`, `loginkey`, `email`, `postnum`, `threadnum`, `avatar`, `avatardimensions`, `avatartype`, `usergroup`, `additionalgroups`, `displaygroup`, `usertitle`, `regdate`, `lastactive`, `lastvisit`, `lastpost`, `website`, `icq`, `aim`, `yahoo`, `skype`, `google`, `birthday`, `birthdayprivacy`, `signature`, `allownotices`, `hideemail`, `subscriptionmethod`, `invisible`, `receivepms`, `receivefrombuddy`, `pmnotice`, `pmnotify`, `buddyrequestspm`, `buddyrequestsauto`, `threadmode`, `showimages`, `showvideos`, `showsigs`, `showavatars`, `showquickreply`, `showredirect`, `ppp`, `tpp`, `daysprune`, `dateformat`, `timeformat`, `timezone`, `dst`, `dstcorrection`, `buddylist`, `ignorelist`, `style`, `away`, `awaydate`, `returndate`, `awayreason`, `pmfolders`, `notepad`, `referrer`, `referrals`, `reputation`, `regip`, `lastip`, `language`, `timeonline`, `showcodebuttons`, `totalpms`, `unreadpms`, `warningpoints`, `moderateposts`, `moderationtime`, `suspendposting`, `suspensiontime`, `suspendsignature`, `suspendsigtime`, `coppauser`, `classicpostbit`, `loginattempts`, `usernotes`, `sourceeditor`) VALUES +(84, 'Test One', '6e90cf918ebce3a577fd72cea919dc64', '0pBnrIIv', 'xALZxWcfw18AhO6M7YxptBrxZqyrJB04CWlyaIniO3ZyMn6P1f', 'no_one@nowhere.com', 0, 0, '', '', '', 2, '', 0, '', 1471614765, 1471614765, 1471614765, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0), +(85, 'Test Two', 'e85f6b7e5804b42d7c7d99329dc1a43f', 'NSX3xNT1', 'VucYxl7EGnsoqVW75COGNAdB0YgtWHc9RFqo4LxIhhtpEFxdIE', 'no_one@nowhere.com', 0, 0, '', '', '', 3, '', 0, '', 1471614850, 1471614850, 1471614850, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0), +(86, 'Test Three', '3669c9583702ca6e32c7817f4bc34f5f', 'CVEbGFXH', 'GivwOlOKuvpfTs8Dc263fNnPdSQW1k1C1fHt7gukTJdRvTZGca', 'no_one@nowhere.com', 0, 0, '', '', '', 4, '', 0, '', 1471615021, 1471615021, 1471615021, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0), +(87, 'Test Four', '693a0cd028c9adb4cb28d8a8be3dc7af', 'x6q7QFmU', 'S4oU92jET3yjvbiganAKCYde9ksoacJeb4sC247qvYftgwsYmu', 'no_one@nowhere.com', 0, 0, '', '', '', 6, '', 0, '', 1471615064, 1471615064, 1471615064, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `mybb_users` +-- +ALTER TABLE `mybb_users` + ADD PRIMARY KEY (`uid`), + ADD UNIQUE KEY `username` (`username`), + ADD KEY `usergroup` (`usergroup`), + ADD KEY `regip` (`regip`), + ADD KEY `lastip` (`lastip`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `mybb_users` +-- +ALTER TABLE `mybb_users` + MODIFY `uid` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=88; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/lib/plugins/authpdo/auth.php b/lib/plugins/authpdo/auth.php index b78b0e7408c965cb18fa42565ca0c2938b67d1e8..5eb70c95ddc58d6bd7a11142144cd03488f02031 100644 --- a/lib/plugins/authpdo/auth.php +++ b/lib/plugins/authpdo/auth.php @@ -97,12 +97,21 @@ class auth_plugin_authpdo extends DokuWiki_Auth_Plugin { ) ); - // can real names and emails be changed? - $this->cando['modName'] = $this->cando['modMail'] = $this->_chkcnf( + // can real names be changed? + $this->cando['modName'] = $this->_chkcnf( array( 'select-user', 'select-user-groups', - 'update-user-info' + 'update-user-info:name' + ) + ); + + // can real email be changed? + $this->cando['modMail'] = $this->_chkcnf( + array( + 'select-user', + 'select-user-groups', + 'update-user-info:mail' ) ); @@ -151,16 +160,26 @@ class auth_plugin_authpdo extends DokuWiki_Auth_Plugin { */ public function checkPass($user, $pass) { - $data = $this->_selectUser($user); - if($data == false) return false; + $userdata = $this->_selectUser($user); + if($userdata == false) return false; - if(isset($data['hash'])) { + // password checking done in SQL? + if($this->_chkcnf(array('check-pass'))) { + $userdata['clear'] = $pass; + $userdata['hash'] = auth_cryptPassword($pass); + $result = $this->_query($this->getConf('check-pass'), $userdata); + if($result === false) return false; + return (count($result) == 1); + } + + // we do password checking on our own + if(isset($userdata['hash'])) { // hashed password $passhash = new PassHash(); - return $passhash->verify_hash($pass, $data['hash']); + return $passhash->verify_hash($pass, $userdata['hash']); } else { // clear text password in the database O_o - return ($pass == $data['clear']); + return ($pass === $userdata['clear']); } } @@ -489,7 +508,7 @@ class auth_plugin_authpdo extends DokuWiki_Auth_Plugin { $this->_debug("Statement did not return 'user' attribute", -1, __LINE__); $dataok = false; } - if(!isset($data['hash']) && !isset($data['clear'])) { + if(!isset($data['hash']) && !isset($data['clear']) && !$this->_chkcnf(array('check-pass'))) { $this->_debug("Statement did not return 'clear' or 'hash' attribute", -1, __LINE__); $dataok = false; } @@ -716,7 +735,16 @@ class auth_plugin_authpdo extends DokuWiki_Auth_Plugin { */ protected function _chkcnf($keys) { foreach($keys as $key) { - if(!trim($this->getConf($key))) return false; + $params = explode(':', $key); + $key = array_shift($params); + $sql = trim($this->getConf($key)); + + // check if sql is set + if(!$sql) return false; + // check if needed params are there + foreach($params as $param) { + if(strpos($sql, ":$param") === false) return false; + } } return true; diff --git a/lib/plugins/authpdo/conf/default.php b/lib/plugins/authpdo/conf/default.php index 4e2503716f90f39d49cb59d8426a3a51312397ac..138ca2f109f4fd8dad7c580ebbe45ab1bf5c4cd9 100644 --- a/lib/plugins/authpdo/conf/default.php +++ b/lib/plugins/authpdo/conf/default.php @@ -18,6 +18,14 @@ $conf['pass'] = ''; */ $conf['select-user'] = ''; +/** + * statement to check the password in SQL, optional when above returned clear or hash + * + * input: :user, :clear, :hash, [uid], [*] + * return: * + */ +$conf['check-pass'] = ''; + /** * statement to select a single user identified by its login name * diff --git a/lib/plugins/authpdo/conf/metadata.php b/lib/plugins/authpdo/conf/metadata.php index 85d1c5926a61b69fcc83e2ce32833c1cc622ba90..7c2ee8cdc73897edf61d9876dc5899e7ed9d1393 100644 --- a/lib/plugins/authpdo/conf/metadata.php +++ b/lib/plugins/authpdo/conf/metadata.php @@ -10,6 +10,7 @@ $meta['dsn'] = array('string', '_caution' => 'danger'); $meta['user'] = array('string', '_caution' => 'danger'); $meta['pass'] = array('password', '_caution' => 'danger', '_code' => 'base64'); $meta['select-user'] = array('', '_caution' => 'danger'); +$meta['check-pass'] = array('', '_caution' => 'danger'); $meta['select-user-groups'] = array('', '_caution' => 'danger'); $meta['select-groups'] = array('', '_caution' => 'danger'); $meta['insert-user'] = array('', '_caution' => 'danger'); diff --git a/lib/plugins/authpdo/lang/en/settings.php b/lib/plugins/authpdo/lang/en/settings.php index 9e700690c3a88489fa6b113a0c2ef81b80855cd9..1aaaec0fdd9f2dae4bfdf18eaad916e50ea75763 100644 --- a/lib/plugins/authpdo/lang/en/settings.php +++ b/lib/plugins/authpdo/lang/en/settings.php @@ -20,5 +20,6 @@ $lang['update-user-info'] = 'SQL Statement to update the full name and email a $lang['update-user-login'] = 'SQL Statement to update the login name of a single user'; $lang['update-user-pass'] = 'SQL Statement to update the password of a single user'; $lang['insert-group'] = 'SQL Statement to insert a new group into the database'; -$lang['join-group'] = 'SQL Statement to add a user to an exisitng group'; +$lang['join-group'] = 'SQL Statement to add a user to an existing group'; $lang['leave-group'] = 'SQL Statement to remove a user from a group'; +$lang['check-pass'] = 'SQL Statement to check the password for a user. Can be left empty if password info is fetched in select-user.'; diff --git a/lib/plugins/authpdo/plugin.info.txt b/lib/plugins/authpdo/plugin.info.txt index 6784fd08368d1f4d9787c227bfa5a6642af98fb9..e60ff0ba989ce14f7d2552611fa628cc7d3142b8 100644 --- a/lib/plugins/authpdo/plugin.info.txt +++ b/lib/plugins/authpdo/plugin.info.txt @@ -1,7 +1,7 @@ base authpdo author Andreas Gohr email andi@splitbrain.org -date 2016-01-29 +date 2016-08-20 name authpdo plugin desc Authenticate against a database via PDO url https://www.dokuwiki.org/plugin:authpdo diff --git a/lib/plugins/authpgsql/lang/fr/settings.php b/lib/plugins/authpgsql/lang/fr/settings.php index 9e471075ad22faacb0a9da8b670afd288a4ab540..8cd9c6a7b2d33dbf516bc47094aca77711f46539 100644 --- a/lib/plugins/authpgsql/lang/fr/settings.php +++ b/lib/plugins/authpgsql/lang/fr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Bruno Veilleux <bruno.vey@gmail.com> */ $lang['server'] = 'Votre serveur PostgreSQL'; diff --git a/lib/plugins/authpgsql/lang/hr/settings.php b/lib/plugins/authpgsql/lang/hr/settings.php index 7ae4cec77b6fc9c55db52323dd2642c6c727446d..2cec4e5fa03002dc5bae26cc461c6b8705a13a1e 100644 --- a/lib/plugins/authpgsql/lang/hr/settings.php +++ b/lib/plugins/authpgsql/lang/hr/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['server'] = 'VaÅ¡ PostgreSQL server'; diff --git a/lib/plugins/authpgsql/lang/no/settings.php b/lib/plugins/authpgsql/lang/no/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..9e84e4d309ceb43cd812d806bd8642c6b17a7aa6 --- /dev/null +++ b/lib/plugins/authpgsql/lang/no/settings.php @@ -0,0 +1,38 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arne.hanssen@getmail.no> + */ +$lang['server'] = 'Din PostgreSQL-server'; +$lang['port'] = 'Porten til din PostgreSQL-server'; +$lang['user'] = 'PostgreSQL-brukernavn'; +$lang['password'] = 'Passord til bruker over'; +$lang['database'] = 'Database som brukes'; +$lang['debug'] = 'Vis utvidet feilinformasjon'; +$lang['forwardClearPass'] = 'Videresendt passord i klartekst til SQL-uttrykket under, i stedet for Ã¥ bruke det krypterte passordet'; +$lang['checkPass'] = 'SQL-uttrykk for Ã¥ sjekke passordet'; +$lang['getUserInfo'] = 'SQL-uttrykk for Ã¥ hente informasjon om en bruker'; +$lang['getGroups'] = 'SQL-uttrykk for Ã¥ hente gruppene en bruker tilhører'; +$lang['getUsers'] = 'SQL-uttrykk for Ã¥ liste alle brukere '; +$lang['FilterLogin'] = 'SQL-uttrykk for Ã¥ filtrere brukere etter brukernavn'; +$lang['FilterName'] = 'SQL-uttrykk for Ã¥ filtrere brukere etter fult navn'; +$lang['FilterEmail'] = 'SQL-uttrykk for Ã¥ filtrere brukere etter e-postadresse'; +$lang['FilterGroup'] = 'SQL-uttrykk for Ã¥ filtrere brukere etter hvilken grupper de tilhører'; +$lang['SortOrder'] = 'SQL-uttrykk for Ã¥ sortere brukere'; +$lang['addUser'] = 'SQL-uttrykk for Ã¥ legge til en ny bruker'; +$lang['addGroup'] = 'SQL-uttrykk for Ã¥ legge til en ny gruppe'; +$lang['addUserGroup'] = 'SQL-uttrykk for Ã¥ legge til en bruker i en eksisterende gruppe'; +$lang['delGroup'] = 'SQL-uttrykk for Ã¥ fjerne en gruppe '; +$lang['getUserID'] = 'SQL-uttrykk for Ã¥ hente primærnøkkel for en gitt bruker'; +$lang['delUser'] = 'SQL-utrykk for Ã¥ slette en bruker '; +$lang['delUserRefs'] = 'SQL-utrykk for Ã¥ fjerne en bruke fra alle grupper'; +$lang['updateUser'] = 'SQL-uttrykk for Ã¥ oppdatere en brukerprofil'; +$lang['UpdateLogin'] = 'Update-utrykk for Ã¥ oppdatere brukernavn'; +$lang['UpdatePass'] = 'Update-utrykk for Ã¥ oppdatere brukers passord'; +$lang['UpdateEmail'] = 'Update-utrykk for Ã¥ oppdatere brukers e-postadresse'; +$lang['UpdateName'] = 'Update-utrykk for Ã¥ oppdatere brukers fulle navn'; +$lang['UpdateTarget'] = 'Limit-uttrykk for Ã¥ identifisere brukeren ved oppdatering'; +$lang['delUserGroup'] = 'SQL-uttrykk for fjerne en bruker fra gitt gruppe'; +$lang['getGroupID'] = 'SQL-uttrykk for Ã¥ hente primærnøkkel for en gitt gruppe'; diff --git a/lib/plugins/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php index a74296ab8ee1daadefb9fcd2b391dcf5da310da1..28efbdf1f5829f0240dd296d05a1eb32e8bc4b46 100644 --- a/lib/plugins/authpgsql/lang/ru/settings.php +++ b/lib/plugins/authpgsql/lang/ru/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> * @author Aleksandr Selivanov <alexgearbox@yandex.ru> diff --git a/lib/plugins/authplain/lang/ca/lang.php b/lib/plugins/authplain/lang/ca/lang.php index 8cbada1b92e15c66d480f501893e73c811d39640..f7928176281346b7379e29e24a34d7454e175c53 100644 --- a/lib/plugins/authplain/lang/ca/lang.php +++ b/lib/plugins/authplain/lang/ca/lang.php @@ -2,6 +2,6 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ $lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.'; diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php index b0cff006860828827a6d89aa9440780428b0f643..6940ad027f4825714acf481212ca80d58c4dc2fd 100644 --- a/lib/plugins/authplain/lang/de/lang.php +++ b/lib/plugins/authplain/lang/de/lang.php @@ -4,7 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Anika Henke <anika@selfthinker.org> + * @author Carsten Perthel <carsten@cpesoft.com> */ $lang['userexists'] = 'Der Benutzername existiert leider schon.'; $lang['usernotexists'] = 'Dieser Benutzer existiert nicht.'; $lang['writefail'] = 'Kann Benutzerdaten nicht ändern. Bitte informieren Sie den Wiki-Administratoren'; +$lang['protected'] = 'Die Daten des Benutzers %s sind geschützt und können nicht verändert oder gelöscht werden.'; diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php index fb7617207c6d0d7e70a0be2223b011b490001689..b675455e7bf3dc86887ce696eb4425bcd6f75841 100644 --- a/lib/plugins/authplain/lang/fr/lang.php +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carbain Frédéric <fcarbain@yahoo.fr> * @author Nicolas Friedli <nicolas@theologique.ch> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> diff --git a/lib/plugins/authplain/lang/no/lang.php b/lib/plugins/authplain/lang/no/lang.php index 981881369f35257aaf386a045587916b5ccce6ea..a92c26208a9976ae4a30f30b26411f5d48174658 100644 --- a/lib/plugins/authplain/lang/no/lang.php +++ b/lib/plugins/authplain/lang/no/lang.php @@ -1,6 +1,11 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Arne Hanssen <arne.hanssen@getmail.no> */ -$lang['userexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; +$lang['userexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; +$lang['usernotexists'] = 'Beklager, denne bruker fins ikke.'; +$lang['writefail'] = 'Klarte ikke endre brukerdata. Dette bør meldes til wikiens administrator'; +$lang['protected'] = 'Data for bruker %s er beskyttet og kan ikke endres eller slettes.'; diff --git a/lib/plugins/authplain/lang/ro/lang.php b/lib/plugins/authplain/lang/ro/lang.php index ece72b18208b09f5beda0d22ef895a37e33273ae..d549e1f5808392fd21896677c06acb9e4a3fe835 100644 --- a/lib/plugins/authplain/lang/ro/lang.php +++ b/lib/plugins/authplain/lang/ro/lang.php @@ -2,6 +2,6 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * */ $lang['userexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.'; diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php index a53a57b40bbdb9ee2b1ba86e3b5ff36da5d21a08..0ee34f90124a3349f03d818545fdfaea03e7a098 100644 --- a/lib/plugins/authplain/lang/ru/lang.php +++ b/lib/plugins/authplain/lang/ru/lang.php @@ -2,10 +2,12 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author RainbowSpike <1@2.ru> * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + * @author Radimir <radimir.shevchenko@gmail.com> */ $lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; $lang['usernotexists'] = 'Ðтот пользователь не зарегиÑтрирован.'; $lang['writefail'] = 'Ðевозможно обновить данные пользователÑ. СвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором вики'; +$lang['protected'] = 'Данные Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s защищены и не могут быть изменены или удалены.'; diff --git a/lib/plugins/authplain/lang/sr/lang.php b/lib/plugins/authplain/lang/sr/lang.php index 2d85ca42a1f52092e610789eac66d75b22f60967..19bd8b766c80686ede026d391147844ae51aff83 100644 --- a/lib/plugins/authplain/lang/sr/lang.php +++ b/lib/plugins/authplain/lang/sr/lang.php @@ -1,6 +1,7 @@ <?php + /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * */ -$lang['userexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; +$lang['userexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; diff --git a/lib/plugins/authplain/lang/zh/lang.php b/lib/plugins/authplain/lang/zh/lang.php index 8cd18d55ed632ad9281fbd387f72e472f479b760..1e0dd10062bf224aa76152fff976bad5ac2bc992 100644 --- a/lib/plugins/authplain/lang/zh/lang.php +++ b/lib/plugins/authplain/lang/zh/lang.php @@ -4,7 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author lainme <lainme993@gmail.com> + * @author tai <tai_tang@126.com> */ $lang['userexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; $lang['usernotexists'] = '抱æ‰ï¼Œè¯¥ç”¨æˆ·ä¸å˜åœ¨'; $lang['writefail'] = 'æ— æ³•ä¿®æ”¹ç”¨æˆ·æ•°æ®ã€‚请è”系维基管ç†å‘˜'; +$lang['protected'] = '用户 %s 的数æ®è¢«ä¿æŠ¤å’Œæ— æ³•è¢«ç¼–è¾‘æˆ–åˆ é™¤ã€‚'; diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php index bbcd26e51527594d809b942928001075a1f97ada..fcf4d27e15720b8db79f1a7a00eff16fbf079229 100644 --- a/lib/plugins/config/lang/ca/lang.php +++ b/lib/plugins/config/lang/ca/lang.php @@ -2,13 +2,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es * @author Carles Bellver <carles.bellver@cent.uji.es> * @author daniel@6temes.cat * @author controlonline.net <controlonline.net@gmail.com> + * @author Pauet <pauet@gmx.com> */ $lang['menu'] = 'Parà metres de configuració'; $lang['error'] = 'Els parà metres no s\'han pogut actualitzar per causa d\'un valor incorrecte Reviseu els canvis i torneu a enviar-los.<br />Els valors incorrectes es ressaltaran amb un marc vermell.'; diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index e7e7ff869a64c270733d916205e0f794b8600bc9..fc8d02ef4f2f1d1d3faf4aadd0fc1a10b67f240f 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> @@ -25,6 +25,7 @@ * @author Floriang <antispam@floriang.eu> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> * @author Simon DELAGE <simon.geekitude@gmail.com> + * @author Eric <ericstevenart@netc.fr> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; diff --git a/lib/plugins/config/lang/hr/intro.txt b/lib/plugins/config/lang/hr/intro.txt index c71a2eec1e6926d62c0125321e98b6173517a594..66ebdc062781b8249e222b768f57438228e8b8c5 100644 --- a/lib/plugins/config/lang/hr/intro.txt +++ b/lib/plugins/config/lang/hr/intro.txt @@ -4,4 +4,4 @@ Koristite ovu stranicu za upravljanje postavkama VaÅ¡e DokuWiki instalacije. Za Postavke prikazane u svjetlo crvenoj pozadini su zaÅ¡tićene i ne mogu biti mijenjane pomoću ovog dodatka. Postavke s plavom pozadinom sadrže inicijalno podrazumijevane vrijednosti, dok postavke s bijelom pozadinom sadrže korisniÄki postavljene vrijednosti. I plave i bijele postavke se mogu mijenjati. -Zapamtite da pritisnete **Snimi** gumb prije nego napustite ovu stranicu ili će izmjene biti izgubljene. +Zapamtite da pritisnete **Pohrani** gumb prije nego napustite ovu stranicu ili će izmjene biti izgubljene. diff --git a/lib/plugins/config/lang/hr/lang.php b/lib/plugins/config/lang/hr/lang.php index 706e9d452b6fb0452c340ff73c62f6de2ec9af46..f007bd789fea8353975b39bef36411f50b0770a6 100644 --- a/lib/plugins/config/lang/hr/lang.php +++ b/lib/plugins/config/lang/hr/lang.php @@ -6,7 +6,7 @@ * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['menu'] = 'Konfiguracijske postavke'; -$lang['error'] = 'Postavke nisu ažurirane zbog neispravnih vrijednosti, molim provjerite vaÅ¡e promjene i ponovo ih snimite. +$lang['error'] = 'Postavke nisu ažurirane zbog neispravnih vrijednosti, molim provjerite vaÅ¡e promjene i ponovo ih pohranite. <br />Neispravne vrijednosti biti će oznaÄene crvenim rubom.'; $lang['updated'] = 'Postavke uspjeÅ¡no izmijenjene.'; $lang['nochoice'] = '(ne postoje druge mogućnosti odabira)'; @@ -91,7 +91,7 @@ $lang['relnofollow'] = 'Koristi rel="nofollow" na vanjskim poveznicama $lang['indexdelay'] = 'ÄŒekanje prije indeksiranja (sek.)'; $lang['mailguard'] = 'Prikrivanje e-mail adresa'; $lang['iexssprotect'] = 'Provjeri uÄitane datoteke za potencijalno maliciozni JavaScript ili HTML kod'; -$lang['usedraft'] = 'Automatski snimi nacrte promjena tijekom ureÄ‘ivanja'; +$lang['usedraft'] = 'Automatski pohrani nacrte promjena tijekom ureÄ‘ivanja'; $lang['htmlok'] = 'Omogući ugraÄ‘eni HTML'; $lang['phpok'] = 'Omogući ugraÄ‘eni PHP'; $lang['locktime'] = 'Maksimalna trajanje zakljuÄavanja (sek.)'; diff --git a/lib/plugins/config/lang/no/intro.txt b/lib/plugins/config/lang/no/intro.txt index c1310cc6d9c1449a9dec5a9a62c1cc0427a916e7..5684a90b03454fbda5bf3415c446e51e0950e55a 100644 --- a/lib/plugins/config/lang/no/intro.txt +++ b/lib/plugins/config/lang/no/intro.txt @@ -4,4 +4,4 @@ Bruk denne siden for Ã¥ kontrollere innstillingene for din DokuWiki. For hjelp o Innstillinger vist med lys rød bakgrunn er beskyttet og kan ikke endres pÃ¥ denne siden. Innstillinger vist med blÃ¥ bakgrunn er standardverdier og innstillinger med hvit bakgrunn har blitt satt lokalt for denne installasjonen. BÃ¥de blÃ¥ og hvite innstillinger kan endres. -Husk Ã¥ trykke pÃ¥ **Lagre**-knappen før du forlater siden. Hvis ikke gÃ¥r endringene tapt. +Husk Ã¥ trykke pÃ¥ **Lagre**-knappen før du forlater siden. Hvis ikke gÃ¥r dine endringer tapt. diff --git a/lib/plugins/config/lang/no/lang.php b/lib/plugins/config/lang/no/lang.php index aa2a30768567255c47f69a53fdc56fc28c3378fa..ae612807c5224a6831fb7428c19a5d8b95ac16b0 100644 --- a/lib/plugins/config/lang/no/lang.php +++ b/lib/plugins/config/lang/no/lang.php @@ -1,13 +1,14 @@ <?php + /** - * Norwegianlanguage file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> @@ -15,23 +16,26 @@ * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe <jonmagneboe@hotmail.com> * @author Egil Hansen <egil@rosetta.no> + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> + * @author Patrick Sletvold <patricksletvold@hotmail.com> */ $lang['menu'] = 'Konfigurasjonsinnstillinger'; $lang['error'] = 'Innstillingene ble ikke oppdatert pÃ¥ grunn av en eller flere ugyldig verdier. Vennligst se gjennom endringene og prøv pÃ¥ nytt. -<br />Ugyldige verdier er omgitt av en rød ramme.'; +<br />Ugyldige verdi(er) vil vises i rød ramme.'; $lang['updated'] = 'Innstillingene ble oppdatert.'; $lang['nochoice'] = '(ingen andre mulige valg)'; $lang['locked'] = 'Innstillingene kan ikke oppdateres. Hvis dette ikke er meningen,<br /> forsikre deg om at fila med de lokale innstillingene har korrekt filnavn<br/> og tillatelser.'; -$lang['danger'] = 'Advarsel: Endrig av dette valget kan føre til at wiki og konfigurasjon menyen ikke blir tilgjengelig.'; +$lang['danger'] = 'Advarsel: Endring av dette valget kan føre til at wiki og konfigurasjonsmenyen ikke blir tilgjengelig.'; $lang['warning'] = 'Advarsel: Endring av dette valget kan føre til utilsiktet atferd. '; $lang['security'] = 'Sikkerhetsadvarsel: Endring av dette valget kan innebære en sikkerhetsrisiko.'; $lang['_configuration_manager'] = 'Konfigurasjonsinnstillinger'; $lang['_header_dokuwiki'] = 'Innstillinger for DokuWiki'; -$lang['_header_plugin'] = 'Innstillinger for tillegg'; +$lang['_header_plugin'] = 'Innstillinger for programtillegg'; $lang['_header_template'] = 'Innstillinger for maler'; $lang['_header_undefined'] = 'Udefinerte innstillinger'; $lang['_basic'] = 'Grunnleggende innstillinger'; @@ -41,31 +45,36 @@ $lang['_anti_spam'] = 'Anti-Spam innstillinger'; $lang['_editing'] = 'Innstillinger for redigering'; $lang['_links'] = 'Innstillinger for lenker'; $lang['_media'] = 'Innstillinger for mediafiler'; +$lang['_notifications'] = 'Melding'; +$lang['_syndication'] = 'Informasjonsstrøm (RSS)'; $lang['_advanced'] = 'Avanserte innstillinger'; $lang['_network'] = 'Nettverksinnstillinger'; $lang['_msg_setting_undefined'] = 'Ingen innstillingsmetadata'; $lang['_msg_setting_no_class'] = 'Ingen innstillingsklasse'; $lang['_msg_setting_no_default'] = 'Ingen standard verdi'; -$lang['fmode'] = 'Rettigheter for nye filer'; -$lang['dmode'] = 'Rettigheter for nye mapper'; -$lang['lang'] = 'SprÃ¥k'; -$lang['basedir'] = 'Grunnkatalog'; -$lang['baseurl'] = 'Grunn-nettadresse'; -$lang['savedir'] = 'Mappe for lagring av data'; -$lang['cookiedir'] = 'Sti for informasjonskapsler. La stÃ¥ blankt for Ã¥ bruke grunn-nettadressa.'; -$lang['start'] = 'Sidenavn pÃ¥ forsiden'; $lang['title'] = 'Navn pÃ¥ Wikien'; +$lang['start'] = 'Sidenavn pÃ¥ forsiden'; +$lang['lang'] = 'SprÃ¥k'; $lang['template'] = 'Mal'; +$lang['tagline'] = 'Slagord (dersom malen støtter dette)'; +$lang['sidebar'] = 'Sidestolpens navn (dersom malen støtter dette), la stÃ¥ tomt for Ã¥ slÃ¥ av sidestolpen'; $lang['license'] = 'Under hvilken lisens skal ditt innhold utgis?'; -$lang['fullpath'] = 'Vis full sti til sider i bunnteksten'; +$lang['savedir'] = 'Mappe for lagring av data'; +$lang['basedir'] = 'Sti til hovekatalog (eks. <code>/dokuwiki/</code>). La stÃ¥ blank for automatisk deteksjon.'; +$lang['baseurl'] = 'Nettadresse til server (eks. <code>http://www.yourserver.com</code>). La stÃ¥ blank for automatisk deteksjon.'; +$lang['cookiedir'] = 'Sti for informasjonskapsler. La stÃ¥ blankt for Ã¥ bruke nettadresse til server.'; +$lang['dmode'] = 'Rettigheter for nye mapper'; +$lang['fmode'] = 'Rettigheter for nye filer'; +$lang['allowdebug'] = 'Tillat feilsøking <b>skru av om det ikke behøves!</b>'; $lang['recent'] = 'Siste endringer'; +$lang['recent_days'] = 'Hvor lenge skal nylige endringer beholdes (dager)'; $lang['breadcrumbs'] = 'Antall nylig besøkte sider som vises'; $lang['youarehere'] = 'Vis hvor i hvilke(t) navnerom siden er'; +$lang['fullpath'] = 'Vis full sti til sider i bunnteksten'; $lang['typography'] = 'Gjør typografiske erstatninger'; -$lang['htmlok'] = 'Tillat HTML'; -$lang['phpok'] = 'Tillat PHP'; $lang['dformat'] = 'Datoformat (se <a href="http://php.net/strftime">PHPs datofunksjon</a>)'; $lang['signature'] = 'Signatur'; +$lang['showuseras'] = 'Hva som skal med nÃ¥r man viser brukeren som sist redigerte en side.'; $lang['toptoclevel'] = 'ToppnivÃ¥ for innholdsfortegnelse'; $lang['tocminheads'] = 'Minimum antall overskrifter som bestemmer om innholdsbetegnelse skal bygges.'; $lang['maxtoclevel'] = 'Maksimalt antall nivÃ¥er i innholdsfortegnelse'; @@ -73,15 +82,8 @@ $lang['maxseclevel'] = 'Maksimalt nivÃ¥ for redigering av seksjon'; $lang['camelcase'] = 'Gjør KamelKasse til lenke automatisk'; $lang['deaccent'] = 'Rensk sidenavn'; $lang['useheading'] = 'Bruk første overskrift som tittel'; -$lang['refcheck'] = 'Sjekk referanser før mediafiler slettes'; -$lang['allowdebug'] = 'Tillat feilsøking <b>skru av om det ikke behøves!</b>'; -$lang['mediarevisions'] = 'SlÃ¥ pÃ¥ mediaversjonering?'; -$lang['usewordblock'] = 'Blokker søppel basert pÃ¥ ordliste'; -$lang['indexdelay'] = 'Forsinkelse før indeksering (sekunder)'; -$lang['relnofollow'] = 'Bruk rel="nofollow" pÃ¥ eksterne lenker'; -$lang['mailguard'] = 'Beskytt e-postadresser'; -$lang['iexssprotect'] = 'Sjekk om opplastede filer inneholder skadelig JavaScrips- eller HTML-kode'; -$lang['showuseras'] = 'Hva som skal med nÃ¥r man viser brukeren som sist redigerte en side.'; +$lang['sneaky_index'] = 'DokuWiki vil som standard vise alle navnerom i innholdsfortegnelsen. Hvis du skrur pÃ¥ dette alternativet vil brukere bare se de navnerommene der de har lesetilgang. Dette kan føre til at tilgjengelige undernavnerom skjules. Det kan gjøre innholdsfortegnelsen ubrukelig med enkelte ACL-oppsett.'; +$lang['hidepages'] = 'Skjul sider fra automatiske lister (regulære uttrykk)'; $lang['useacl'] = 'Bruk lister for adgangskontroll (ACL)'; $lang['autopasswd'] = 'Generer passord automatisk'; $lang['authtype'] = 'Autentiseringsmetode'; @@ -90,64 +92,77 @@ $lang['defaultgroup'] = 'Standardgruppe'; $lang['superuser'] = 'Superbruker - en gruppe, bruker eller liste (kommaseparert) med full tilgang til alle sider og funksjoner uavhengig av ACL-innstillingene'; $lang['manager'] = 'Administrator - en gruppe, bruker eller liste (kommaseparert) med tilgang til visse administratorfunksjoner'; $lang['profileconfirm'] = 'Bekreft profilendringer med passord'; +$lang['rememberme'] = 'Tillat permanente informasjonskapsler for innlogging (husk meg)'; $lang['disableactions'] = 'Skru av følgende DokuWiki-kommandoer'; $lang['disableactions_check'] = 'Sjekk'; $lang['disableactions_subscription'] = 'Meld pÃ¥/av'; $lang['disableactions_wikicode'] = 'Vis kildekode/eksporter rÃ¥data'; +$lang['disableactions_profile_delete'] = 'Slett egen konto'; $lang['disableactions_other'] = 'Andre kommandoer (kommaseparert)'; -$lang['sneaky_index'] = 'DokuWiki vil som standard vise alle navnerom i innholdsfortegnelsen. Hvis du skrur pÃ¥ dette alternativet vil brukere bare se de navnerommene der de har lesetilgang. Dette kan føre til at tilgjengelige undernavnerom skjules. Det kan gjøre innholdsfortegnelsen ubrukelig med enkelte ACL-oppsett.'; +$lang['disableactions_rss'] = 'XML-informasjonsstrøm (RSS)'; $lang['auth_security_timeout'] = 'Autentisering utløper etter (sekunder)'; $lang['securecookie'] = 'Skal informasjonskapsler satt via HTTPS kun sendes via HTTPS av nettleseren? Skal ikke velges dersom bare innloggingen til din wiki er sikret med SSL, og annen navigering pÃ¥ wikien er usikret.'; +$lang['remote'] = 'SlÃ¥ pÃ¥ det eksterne API-grensesnittet. Dette gir andre program tilgang til denne wikien via XML-RPC, eller via andre mekanismer.'; +$lang['remoteuser'] = 'Begrens ekstern API-tilgang til bare Ã¥ gjelde denne kommaseparerte listen med grupper eller brukere. La stÃ¥ tomt for Ã¥ gi tilgang for alle.'; +$lang['usewordblock'] = 'Blokker søppel basert pÃ¥ ordliste'; +$lang['relnofollow'] = 'Bruk rel="nofollow" pÃ¥ eksterne lenker'; +$lang['indexdelay'] = 'Forsinkelse før indeksering (sekunder)'; +$lang['mailguard'] = 'Beskytt e-postadresser'; +$lang['iexssprotect'] = 'Sjekk om opplastede filer inneholder skadelig JavaScrips- eller HTML-kode'; +$lang['usedraft'] = 'Lagre kladd automatisk ved redigering'; +$lang['htmlok'] = 'Tillat HTML'; +$lang['phpok'] = 'Tillat PHP'; +$lang['locktime'] = 'Maksimal alder pÃ¥ lÃ¥sefiler (sekunder)'; +$lang['cachetime'] = 'Maksimal alder pÃ¥ hurtiglager (sekunder)'; +$lang['target____wiki'] = 'MÃ¥l for interne lenker'; +$lang['target____interwiki'] = 'MÃ¥l for interwiki-lenker'; +$lang['target____extern'] = 'MÃ¥l for eksterne lenker'; +$lang['target____media'] = 'MÃ¥l for lenker til mediafiler'; +$lang['target____windows'] = 'MÃ¥l for lenker til nettverksstasjoner i Windows'; +$lang['mediarevisions'] = 'SlÃ¥ pÃ¥ mediaversjonering?'; +$lang['refcheck'] = 'Sjekk referanser før mediafiler slettes'; +$lang['gdlib'] = 'Versjon av libGD'; +$lang['im_convert'] = 'Sti til ImageMagicks konverteringsverktøy'; +$lang['jpg_quality'] = 'JPEG-kvalitet (0-100)'; +$lang['fetchsize'] = 'Maksimal størrelse (i byte) fetch.php kan laste eksternt'; +$lang['subscribers'] = 'Ã…pne for abonnement pÃ¥ endringer av en side'; +$lang['subscribe_time'] = 'Hvor lenge det skal gÃ¥ mellom utsending av e-poster med endringer (i sekunder). Denne verdien bør være mindre enn verdien i recent_days.'; +$lang['notify'] = 'Send meldinger om endringer til denne e-postadressen'; +$lang['registernotify'] = 'Send info om nylig registrerte brukere til denne e-postadressen'; +$lang['mailfrom'] = 'Avsenderadresse for automatiske e-poster'; +$lang['mailprefix'] = 'Tekst Ã¥ henge pÃ¥ i starten av emne-feltet i automatiske e-poster. La stÃ¥ blank for Ã¥ bruke wikiens tittel. '; +$lang['htmlmail'] = 'Send e-poster som HTMLmultipart-form, e-postene vil da se bedre ut. Skru av for Ã¥ sende e-poster i ren-tekstform.'; +$lang['sitemap'] = 'Lag Google-sidekart (dager)'; +$lang['rss_type'] = 'Type XML-feed'; +$lang['rss_linkto'] = 'XML-feed lenker til'; +$lang['rss_content'] = 'Hva skal vises i XML-feed elementer?'; +$lang['rss_update'] = 'Intervall for oppdatering av XML-feed (sekunder)'; +$lang['rss_show_summary'] = 'Vis redigeringskommentar i tittelen pÃ¥ elementer i XML-feed '; +$lang['rss_media'] = 'Hvilke typer endringer skal listes i XML-strømmen?'; $lang['updatecheck'] = 'Se etter oppdateringer og sikkerhetsadvarsler? Denne funksjonen er avhengig av Ã¥ kontakte update.dokuwiki.org.'; $lang['userewrite'] = 'Bruk pene URLer'; $lang['useslash'] = 'Bruk / som skilletegn mellom navnerom i URLer'; -$lang['usedraft'] = 'Lagre kladd automatisk under redigering'; $lang['sepchar'] = 'Skilletegn mellom ord i sidenavn'; $lang['canonical'] = 'Bruk fulle URLer (i stedet for relative)'; $lang['fnencode'] = 'Metode for Ã¥ kode ikke-ASCII-filnavn'; $lang['autoplural'] = 'Se etter flertallsformer i lenker'; $lang['compression'] = 'Metode for komprimering av gamle filer'; -$lang['cachetime'] = 'Maksimal alder pÃ¥ hurtiglager (sekunder)'; -$lang['locktime'] = 'Maksimal alder pÃ¥ lÃ¥sefiler (sekunder)'; -$lang['fetchsize'] = 'Maksimal størrelse (byter) fetch.php kan laste eksternt'; -$lang['notify'] = 'Send meldinger om endringer denne e-postadressen'; -$lang['registernotify'] = 'Send info om nylig registrerte brukere til denne e-postadressen'; -$lang['mailfrom'] = 'Avsenderadresse for automatiske e-poster'; -$lang['mailprefix'] = 'Prefiks for emne i automatiske e-poster '; $lang['gzip_output'] = 'Bruk gzip Content-Encoding for XHTML'; -$lang['gdlib'] = 'Versjon av libGD'; -$lang['im_convert'] = 'Sti til ImageMagicks konverteringsverktøy'; -$lang['jpg_quality'] = 'JPEG-kvalitet (0-100)'; -$lang['subscribers'] = 'Ã…pne for abonnement pÃ¥ endringer av en side'; -$lang['subscribe_time'] = 'Hvor lenge det skal gÃ¥ mellom utsending av e-poster med endringer (i sekunder). Denne verdien bør være mindre enn verdien i recent_days.'; $lang['compress'] = 'Kompakt CSS og JavaScript'; -$lang['cssdatauri'] = 'Opp til denne størrelsen (i bytes) skal bilder som er vist til i CSS-filer kodes direkte inn i fila for Ã¥ redusere antall HTTP-forespørsler. Denne teknikken fungerer ikke i IE < 8! Mellom <code>400</code> og <code>600</code> bytes er fornuftige verdier. Bruk <code>0</code> for Ã¥ skru av funksjonen.'; -$lang['hidepages'] = 'Skjul sider fra automatiske lister (regulære uttrykk)'; +$lang['cssdatauri'] = 'Opp til denne størrelsen (i byte) skal bilder som er vist til i CSS-filer kodes direkte inn i fila for Ã¥ redusere antall HTTP-forespørsler. Denne teknikken fungerer ikke i IE < 8! Mellom <code>400</code> og <code>600</code> bytes er fornuftige verdier. Bruk <code>0</code> for Ã¥ skru av funksjonen.'; $lang['send404'] = 'Send "HTTP 404/Page Not Found" for ikke-eksisterende sider'; -$lang['sitemap'] = 'Lag Google-sidekart (dager)'; $lang['broken_iua'] = 'Er funksjonen ignore_user_abort pÃ¥ ditt system ødelagt? Dette kan gjøre at indeksering av søk ikke fungerer. Dette er et kjent problem med IIS+PHP/CGI. Se <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> for mer informasjon.'; $lang['xsendfile'] = 'Bruk X-Sendfile header for Ã¥ la webserver levere statiske filer? Din webserver mÃ¥ støtte dette.'; $lang['renderer_xhtml'] = 'Renderer til bruk for wiki-output (XHTML)'; $lang['renderer__core'] = '%s (dokuwikikjerne)'; -$lang['renderer__plugin'] = '%s (plugin)'; -$lang['rememberme'] = 'Tillat permanente informasjonskapsler for innlogging (husk meg)'; -$lang['rss_type'] = 'Type XML-feed'; -$lang['rss_linkto'] = 'XML-feed lenker til'; -$lang['rss_content'] = 'Hva skal vises i XML-feed elementer?'; -$lang['rss_update'] = 'Intervall for oppdatering av XML-feed (sekunder)'; -$lang['recent_days'] = 'Hvor lenge skal nylige endringer beholdes (dager)'; -$lang['rss_show_summary'] = 'Vis redigeringskommentar i tittelen pÃ¥ elementer i XML-feed '; -$lang['target____wiki'] = 'MÃ¥l for interne linker'; -$lang['target____interwiki'] = 'MÃ¥l for interwiki-lenker'; -$lang['target____extern'] = 'MÃ¥l for eksterne lenker'; -$lang['target____media'] = 'MÃ¥l for lenker til mediafiler'; -$lang['target____windows'] = 'MÃ¥l for lenker til nettverksstasjoner i Windows'; +$lang['renderer__plugin'] = '%s (programutvidelse)'; +$lang['dnslookups'] = 'Dokuwiki vil, for sider som blir redigert, slÃ¥ opp vertsnavn for brukere med eksterne IP-adresse Hvis du har en treg, eller en ikke fungerende DNS-server bør du deaktivere dette alternativet'; $lang['proxy____host'] = 'Navn pÃ¥ proxyserver'; -$lang['proxy____port'] = 'Proxyport'; +$lang['proxy____port'] = 'Port pÃ¥ pÃ¥ proxyserver'; $lang['proxy____user'] = 'Brukernavn pÃ¥ proxyserver'; $lang['proxy____pass'] = 'Passord pÃ¥ proxyserver'; $lang['proxy____ssl'] = 'Bruk SSL for Ã¥ koble til proxyserver'; -$lang['proxy____except'] = 'Regulært uttrykk for URLer som ikke trenger en proxy.'; +$lang['proxy____except'] = 'Regulært uttrykk for URLer som ikke trenger bruk av proxy'; $lang['safemodehack'] = 'Bruk safemode-hack'; $lang['ftp____host'] = 'FTP-server for safemode-hack'; $lang['ftp____port'] = 'FTP-port for safemode-hack'; @@ -166,15 +181,15 @@ $lang['deaccent_o_1'] = 'fjern aksenter'; $lang['deaccent_o_2'] = 'bytt til kun latinske bokstaver'; $lang['gdlib_o_0'] = 'GD lib ikke tilgjengelig'; $lang['gdlib_o_1'] = 'Versjon 1.x'; -$lang['gdlib_o_2'] = 'Automatisk oppdaging'; +$lang['gdlib_o_2'] = 'Oppdag automatisk'; $lang['rss_type_o_rss'] = 'RSS 0.91'; $lang['rss_type_o_rss1'] = 'RSS 1.0'; $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; $lang['rss_content_o_abstract'] = 'Ingress'; -$lang['rss_content_o_diff'] = 'Forent Diff'; -$lang['rss_content_o_htmldiff'] = 'HTML-formatert diff-tabell'; +$lang['rss_content_o_diff'] = 'Ulikh. sammenslÃ¥tt'; +$lang['rss_content_o_htmldiff'] = 'HTML-formatert endr. tabell'; $lang['rss_content_o_html'] = 'Full HTML sideinnhold'; $lang['rss_linkto_o_diff'] = 'endringsvisning'; $lang['rss_linkto_o_page'] = 'den endrede siden'; @@ -186,11 +201,12 @@ $lang['compression_o_bz2'] = 'bz2'; $lang['xsendfile_o_0'] = 'ikke bruk'; $lang['xsendfile_o_1'] = 'Proprietær lighttpd header (før release 1.5)'; $lang['xsendfile_o_2'] = 'Standard X-Sendfile header'; -$lang['xsendfile_o_3'] = 'Priprietær Nginx X-Accel-Redirect header'; +$lang['xsendfile_o_3'] = 'Proprietær Nginx X-Accel-Redirect header'; $lang['showuseras_o_loginname'] = 'Brukernavn'; $lang['showuseras_o_username'] = 'Brukerens fulle navn'; +$lang['showuseras_o_username_link'] = 'Brukers fulle navn som interwiki-brukerlenke'; $lang['showuseras_o_email'] = 'Brukerens e-postadresse (tilpasset i henhold til mailguar-instilling)'; -$lang['showuseras_o_email_link'] = 'Brukerens epost-addresse som "mailto:"-lenke'; +$lang['showuseras_o_email_link'] = 'Brukerens e-postaddresse som "mailto:"-lenke'; $lang['useheading_o_0'] = 'Aldri'; $lang['useheading_o_navigation'] = 'Kun navigering'; $lang['useheading_o_content'] = 'Kun wiki-innhold'; diff --git a/lib/plugins/config/lang/ro/lang.php b/lib/plugins/config/lang/ro/lang.php index 194650203e7c19bdc22c909e9892dff01ce1c0e8..649954de01a0147a3eab1f00dddce9d5efd7a0dc 100644 --- a/lib/plugins/config/lang/ro/lang.php +++ b/lib/plugins/config/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author s_baltariu@yahoo.com * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php index fc1cb327478226816f591b74d23fe8717b5ee654..1b86f4d3bbf55b21583def0e05d9dc272d09055f 100644 --- a/lib/plugins/config/lang/ru/lang.php +++ b/lib/plugins/config/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Denis Simakov <akinoame1@gmail.com> * @author Andrew Pleshakov <beotiger@mail.ru> * @author Змей ÐтерийÑкий evil_snake@eternion.ru diff --git a/lib/plugins/config/lang/sr/lang.php b/lib/plugins/config/lang/sr/lang.php index 6e282734a2eade8e8bc5e9edfe00784e0255e846..d41cdabb376f969ffe70741b67c6426add8b140f 100644 --- a/lib/plugins/config/lang/sr/lang.php +++ b/lib/plugins/config/lang/sr/lang.php @@ -1,6 +1,7 @@ <?php + /** - * Serbian language file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> @@ -31,25 +32,26 @@ $lang['_network'] = 'Подешавања мреже'; $lang['_msg_setting_undefined'] = 'Ðема метаподатака подешавања'; $lang['_msg_setting_no_class'] = 'Ðема клаÑе подешавања'; $lang['_msg_setting_no_default'] = 'Ðема подразумеване вредноÑти'; -$lang['fmode'] = 'Ðачин прављења датотека'; -$lang['dmode'] = 'Ðачин прављења фаÑцикла'; -$lang['lang'] = 'Језик'; -$lang['basedir'] = 'ОÑновна фаÑцикла'; -$lang['baseurl'] = 'ОÑновни УРЛ'; -$lang['savedir'] = 'ФаÑцикла у којој ће Ñе чувати подаци'; -$lang['start'] = 'Ðазив почетне Ñтранице'; $lang['title'] = 'Ðазив викија'; +$lang['start'] = 'Ðазив почетне Ñтранице'; +$lang['lang'] = 'Језик'; $lang['template'] = 'Шаблон'; $lang['license'] = 'Под којом лиценцом желите да ваш материјал буде објављен?'; -$lang['fullpath'] = 'Објави целу путању Ñтранице у заглављу на дну Ñтране'; +$lang['savedir'] = 'ФаÑцикла у којој ће Ñе чувати подаци'; +$lang['basedir'] = 'ОÑновна фаÑцикла'; +$lang['baseurl'] = 'ОÑновни УРЛ'; +$lang['dmode'] = 'Ðачин прављења фаÑцикла'; +$lang['fmode'] = 'Ðачин прављења датотека'; +$lang['allowdebug'] = 'Укључи дебаговање <b>иÑкључи ако није потребно!</b>'; $lang['recent'] = 'ПоÑледње промене'; +$lang['recent_days'] = 'Колико поÑледњих промена чувати (дани)'; $lang['breadcrumbs'] = 'Број пређених корака (Ñтраница)'; $lang['youarehere'] = 'ХиерархијÑке кораке (Ñтранице)'; +$lang['fullpath'] = 'Објави целу путању Ñтранице у заглављу на дну Ñтране'; $lang['typography'] = 'Уради типографÑке замене'; -$lang['htmlok'] = 'Дозволи угњежђени ХТМЛ'; -$lang['phpok'] = 'Дозволи угњежђени ПХП'; $lang['dformat'] = 'Облик датума (погледајте ПХПову <a href="http://php.net/strftime">strftime</a> функцију)'; $lang['signature'] = 'ПотпиÑ'; +$lang['showuseras'] = 'Шта приказати за иÑпиÑивање кориÑника који је поÑледњи вршио измене'; $lang['toptoclevel'] = 'Ðајвиши ниво за Ñадржај'; $lang['tocminheads'] = 'Минималан број наÑлова који одређују да ли ће Садржај бити направљен'; $lang['maxtoclevel'] = 'МакÑимални ниво за Ñадржај'; @@ -57,14 +59,8 @@ $lang['maxseclevel'] = 'МакÑималан број Ñекција $lang['camelcase'] = 'КориÑти CamelCase за линкове'; $lang['deaccent'] = 'ЧиÑти имена Ñтраница'; $lang['useheading'] = 'Преузми наÑлов првог нивоа за назив Ñтранице'; -$lang['refcheck'] = 'Провери референце медијÑких датотека'; -$lang['allowdebug'] = 'Укључи дебаговање <b>иÑкључи ако није потребно!</b>'; -$lang['usewordblock'] = 'Блокирај Ñпам на оÑнову лиÑте речи'; -$lang['indexdelay'] = 'Одлагање индекÑирања (Ñекунде)'; -$lang['relnofollow'] = 'КориÑти rel="nofollow" за Ñпољне линкове'; -$lang['mailguard'] = 'Замутити Е-адреÑе'; -$lang['iexssprotect'] = 'Провера потенцијално малициозног кода у ЈаваÑкрипт или ХТМЛ коду'; -$lang['showuseras'] = 'Шта приказати за иÑпиÑивање кориÑника који је поÑледњи вршио измене'; +$lang['sneaky_index'] = 'По инÑталацији DokuWiki ће у индекÑу приказати Ñве именÑке проÑторе. Укључивањем ове опције именÑки проÑтори у којима кориÑник нема право читања ће бити Ñакривени. КонÑеквенца је да ће и доÑтупни подпроÑтори бити Ñакривени. Ово доводи до неупотребљивоÑти Права приÑтупа у неким поÑтавкама.'; +$lang['hidepages'] = 'Сакриј подударне Ñтранице (на оÑнову регуларних израза)'; $lang['useacl'] = 'КориÑти лиÑту права приÑтупа'; $lang['autopasswd'] = 'ÐутогенериÑане лозинки'; $lang['authtype'] = 'ПозадинÑки ÑиÑтем аутентификације'; @@ -73,56 +69,61 @@ $lang['defaultgroup'] = 'Подразумевана група'; $lang['superuser'] = 'СуперкориÑник - група, кориÑник или зарезом одвојена лиÑта кориÑника кориÑник1,@група1,кориÑник2 Ñа отвореним проÑтупом Ñвим Ñтраницама и функцијама без обзира на поÑтавке Контроле приÑтупа'; $lang['manager'] = 'Управник - група, кориÑник или зарезом одвојена лиÑта кориÑника кориÑник1,@група1,кориÑник2 Ñа отвореним проÑтупом неким функцијама за управљање'; $lang['profileconfirm'] = 'Потврди промене у профилу куцањем лозинке'; +$lang['rememberme'] = 'Дозволи Ñтални колачић за пријављивање (запамти ме)'; $lang['disableactions'] = 'ИÑкључи DokuWiki наредбе'; $lang['disableactions_check'] = 'Провера'; $lang['disableactions_subscription'] = 'Претплата'; $lang['disableactions_wikicode'] = 'Прикажи извор/Извези Ñирово'; $lang['disableactions_other'] = 'ОÑтале наредбе (раздвојене зарезом)'; -$lang['sneaky_index'] = 'По инÑталацији DokuWiki ће у индекÑу приказати Ñве именÑке проÑторе. Укључивањем ове опције именÑки проÑтори у којима кориÑник нема право читања ће бити Ñакривени. КонÑеквенца је да ће и доÑтупни подпроÑтори бити Ñакривени. Ово доводи до неупотребљивоÑти Права приÑтупа у неким поÑтавкама.'; $lang['auth_security_timeout'] = 'ВременÑка пауза у аутентификацији (Ñекунде)'; $lang['securecookie'] = 'Да ли колачићи који Ñу поÑтављени преко ХТТПС треба Ñлати веб читачу Ñамо преко ХТТПС? ИÑкључите ову опцију Ñамо ако је пријављивање на вики заштићено ССЛом а оÑтали део викија незаштићен.'; +$lang['usewordblock'] = 'Блокирај Ñпам на оÑнову лиÑте речи'; +$lang['relnofollow'] = 'КориÑти rel="nofollow" за Ñпољне линкове'; +$lang['indexdelay'] = 'Одлагање индекÑирања (Ñекунде)'; +$lang['mailguard'] = 'Замутити Е-адреÑе'; +$lang['iexssprotect'] = 'Провера потенцијално малициозног кода у ЈаваÑкрипт или ХТМЛ коду'; +$lang['usedraft'] = 'ÐутоматÑки Ñачувај Ñкицу у току пиÑања измена'; +$lang['htmlok'] = 'Дозволи угњежђени ХТМЛ'; +$lang['phpok'] = 'Дозволи угњежђени ПХП'; +$lang['locktime'] = 'МÐкÑимално трајање закључавања датотека (Ñек)'; +$lang['cachetime'] = 'МакÑимално трајање оÑтаве (Ñек)'; +$lang['target____wiki'] = 'Циљни прозор за интерне линкове'; +$lang['target____interwiki'] = 'Циљни прозор за међувики линкове'; +$lang['target____extern'] = 'Циљни прозор за Ñпољне линкове'; +$lang['target____media'] = 'Циљни прозор за медијÑке линкове'; +$lang['target____windows'] = 'Циљни прозор за Виндоуз линкове'; +$lang['refcheck'] = 'Провери референце медијÑких датотека'; +$lang['gdlib'] = 'ГД Либ верзија'; +$lang['im_convert'] = 'Путања до алатке за коверзију ИмиџМеџик '; +$lang['jpg_quality'] = 'ЈПГ квалитет компреÑије (0-100)'; +$lang['fetchsize'] = 'МакÑимална величина (у бајтима) коју може да преузме fetch.php од Ñпоља'; +$lang['subscribers'] = 'Укључи могућноÑÑ‚ претплате за Ñтранице'; +$lang['subscribe_time'] = 'Време након ког Ñе ÑпиÑкови претплатника и Ñижеи шаљу (у Ñекундама); Ова цифра би требало да буде мања од цифре наведене под recent_days'; +$lang['notify'] = 'Пошаљи обавештења о променама на ову е-адреÑу'; +$lang['registernotify'] = 'Пошаљи обавештење о новорегиÑтрованим кориÑницима на ову е-адреÑу'; +$lang['mailfrom'] = 'Е-адреÑа која Ñе кориÑти као пошиљаоц за аутоматÑке е-поруке'; +$lang['sitemap'] = 'Генериши Гугл мапу Ñајта (дан)'; +$lang['rss_type'] = 'Ð’Ñ€Ñта ИкÑМЛ довода'; +$lang['rss_linkto'] = 'ИкÑМЛ довод линкује на'; +$lang['rss_content'] = 'Шта треба приказати у ИкÑМЛ доводу?'; +$lang['rss_update'] = 'ИкÑМЛ'; +$lang['rss_show_summary'] = 'ИкÑМЛ довод приказује збир у наÑлову'; $lang['updatecheck'] = 'Провера надоградњи и ÑигурноÑних упозорења? Dokuwiki мора да контактира update.dokuwiki.org ради добијања информација.'; $lang['userewrite'] = 'Ðаправи леп УРЛ'; $lang['useslash'] = 'КориÑти коÑу црту у УРЛу за раздвајање именÑких проÑтора '; -$lang['usedraft'] = 'ÐутоматÑки Ñачувај Ñкицу у току пиÑања измена'; $lang['sepchar'] = 'Раздвајање речи у називу Ñтранице'; $lang['canonical'] = 'КориÑти правилне УРЛове'; $lang['fnencode'] = 'Метод кодирања не-ASCII имена фајлова:'; $lang['autoplural'] = 'Провери облик множине у линковима'; $lang['compression'] = 'Метод компреÑије за attic датотеке'; -$lang['cachetime'] = 'МакÑимално трајање оÑтаве (Ñек)'; -$lang['locktime'] = 'МÐкÑимално трајање закључавања датотека (Ñек)'; -$lang['fetchsize'] = 'МакÑимална величина (у бајтима) коју може да преузме fetch.php од Ñпоља'; -$lang['notify'] = 'Пошаљи обавештења о променама на ову е-адреÑу'; -$lang['registernotify'] = 'Пошаљи обавештење о новорегиÑтрованим кориÑницима на ову е-адреÑу'; -$lang['mailfrom'] = 'Е-адреÑа која Ñе кориÑти као пошиљаоц за аутоматÑке е-поруке'; $lang['gzip_output'] = 'КориÑти гзип шифрирање за икÑХТМЛ'; -$lang['gdlib'] = 'ГД Либ верзија'; -$lang['im_convert'] = 'Путања до алатке за коверзију ИмиџМеџик '; -$lang['jpg_quality'] = 'ЈПГ квалитет компреÑије (0-100)'; -$lang['subscribers'] = 'Укључи могућноÑÑ‚ претплате за Ñтранице'; -$lang['subscribe_time'] = 'Време након ког Ñе ÑпиÑкови претплатника и Ñижеи шаљу (у Ñекундама); Ова цифра би требало да буде мања од цифре наведене под recent_days'; $lang['compress'] = 'Сажимај ЦСС и јаваÑкрипт'; -$lang['hidepages'] = 'Сакриј подударне Ñтранице (на оÑнову регуларних израза)'; $lang['send404'] = 'Пошаљи поруку "ХТТП 404/Страница не поÑтоји" за непоÑтојеће Ñтранице'; -$lang['sitemap'] = 'Генериши Гугл мапу Ñајта (дан)'; $lang['broken_iua'] = 'Да ли је функција ignore_user_abort function не ради на вашем ÑиÑтему? Ово може проузроковати неиндекÑирање података за претрагу. ИИС+ПХП/ЦГИ је чеÑто ван функције. Погледајте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">баг 852</a> за више информација.'; $lang['xsendfile'] = 'КориÑти заглавље X-Sendfile да би веб Ñервер могао да иÑпоручује Ñтатичке датотеке? Веб Ñервер треба да подржава ову функцију.'; $lang['renderer_xhtml'] = 'ИÑцртавање кориÑти главни (xhtml) вики иÑпиÑ'; $lang['renderer__core'] = '%s (dokuwiki језгро)'; $lang['renderer__plugin'] = '%s (додатак)'; -$lang['rememberme'] = 'Дозволи Ñтални колачић за пријављивање (запамти ме)'; -$lang['rss_type'] = 'Ð’Ñ€Ñта ИкÑМЛ довода'; -$lang['rss_linkto'] = 'ИкÑМЛ довод линкује на'; -$lang['rss_content'] = 'Шта треба приказати у ИкÑМЛ доводу?'; -$lang['rss_update'] = 'ИкÑМЛ'; -$lang['recent_days'] = 'Колико поÑледњих промена чувати (дани)'; -$lang['rss_show_summary'] = 'ИкÑМЛ довод приказује збир у наÑлову'; -$lang['target____wiki'] = 'Циљни прозор за интерне линкове'; -$lang['target____interwiki'] = 'Циљни прозор за међувики линкове'; -$lang['target____extern'] = 'Циљни прозор за Ñпољне линкове'; -$lang['target____media'] = 'Циљни прозор за медијÑке линкове'; -$lang['target____windows'] = 'Циљни прозор за Виндоуз линкове'; $lang['proxy____host'] = 'Ðазив поÑредника (прокÑија)'; $lang['proxy____port'] = 'Порт поÑредника (прокÑија)'; $lang['proxy____user'] = 'КориÑничко име на поÑреднику (прокÑију)'; diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php index e29d7ec264c0fe37ed4a39d80c522bcc1d8ee402..1d90cfe371426d132a95ea100d0a8f74aebc3c30 100644 --- a/lib/plugins/config/lang/zh/lang.php +++ b/lib/plugins/config/lang/zh/lang.php @@ -17,6 +17,7 @@ * @author Shuo-Ting Jian <shoting@gmail.com> * @author Garfield <garfield_550@outlook.com> * @author JellyChen <451453325@qq.com> + * @author tai <tai_tang@126.com> */ $lang['menu'] = 'é…置设置'; $lang['error'] = 'ç”±äºŽéžæ³•傿•°ï¼Œè®¾ç½®æ²¡æœ‰æ›´æ–°ã€‚请检查您åšçš„æ”¹åЍ并釿–°æäº¤ã€‚ diff --git a/lib/plugins/extension/lang/fr/lang.php b/lib/plugins/extension/lang/fr/lang.php index e3dff49120cc86511b7b7b327a87b4400870ddf0..c408d4c38d9304cc6cef3637736e2b30e7465528 100644 --- a/lib/plugins/extension/lang/fr/lang.php +++ b/lib/plugins/extension/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author Yves Grandvalet <Yves.Grandvalet@laposte.net> * @author Carbain Frédéric <fcarbain@yahoo.fr> diff --git a/lib/plugins/extension/lang/hr/lang.php b/lib/plugins/extension/lang/hr/lang.php index e395333f9b5b1035460d4a9de76670228d9ade98..697806deb9b5e60224b0783b60a484f8cb1bd9ab 100644 --- a/lib/plugins/extension/lang/hr/lang.php +++ b/lib/plugins/extension/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['menu'] = 'Upravitelj proÅ¡irenja'; diff --git a/lib/plugins/extension/lang/no/intro_install.txt b/lib/plugins/extension/lang/no/intro_install.txt new file mode 100644 index 0000000000000000000000000000000000000000..6453caed27da2433c7bc8ca48f4c6940864d120f --- /dev/null +++ b/lib/plugins/extension/lang/no/intro_install.txt @@ -0,0 +1 @@ +Her kan du manuellt installere programtillegg eller maler, enten ved Ã¥ laste de opp, eller ved Ã¥ skrive inn nettadressen til utvidelsen \ No newline at end of file diff --git a/lib/plugins/extension/lang/no/intro_plugins.txt b/lib/plugins/extension/lang/no/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..e9e34d1ba11f5e76e0a8a290df1cc933909ada36 --- /dev/null +++ b/lib/plugins/extension/lang/no/intro_plugins.txt @@ -0,0 +1 @@ +Her finner du de programtillegg som er installert i din DokuWiki. Du kan slÃ¥ av/pÃ¥, eller avistallere dine programtillegg her. Oppdatering av programtillegg vil ogsÃ¥ vises her, men du bør lese dokumentasjonen for disse før du oppdaterere. \ No newline at end of file diff --git a/lib/plugins/extension/lang/no/intro_search.txt b/lib/plugins/extension/lang/no/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..d139fe930d7dc0aaa2af84c8d82aa09748793894 --- /dev/null +++ b/lib/plugins/extension/lang/no/intro_search.txt @@ -0,0 +1 @@ +Denne fanen gir deg tillgang til alle tilgjengelige tredjeparts programtillegg og maler for DokuWiki. Merk at det Ã¥ installere tillegg fra tredjepart kan innebære en **sikerhetsrisiko**. Les mer om [[doku>security#plugin_security|sikkerhet og tillegg ]] før installasjon av disse. \ No newline at end of file diff --git a/lib/plugins/extension/lang/no/intro_templates.txt b/lib/plugins/extension/lang/no/intro_templates.txt new file mode 100644 index 0000000000000000000000000000000000000000..06496203764e2484e3c37af5cccccef1d7f908b7 --- /dev/null +++ b/lib/plugins/extension/lang/no/intro_templates.txt @@ -0,0 +1,2 @@ +Her finner du malene som nÃ¥ er installert i denne DokuWikien. Her velger du malen som brukes i siden for [[?do=admin&page=config|konfigurasjonsinnstillinger]]. + diff --git a/lib/plugins/extension/lang/no/lang.php b/lib/plugins/extension/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..0ceec585cd769a56863aaa3333c23d69f07ea675 --- /dev/null +++ b/lib/plugins/extension/lang/no/lang.php @@ -0,0 +1,95 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arnehans@getmail.no> + */ +$lang['menu'] = 'Utvidelsesbehandling'; +$lang['tab_plugins'] = 'Installerte programtillegg'; +$lang['tab_templates'] = 'Installerte maler'; +$lang['tab_search'] = 'Søk og installer'; +$lang['tab_install'] = 'Manuell installasjon'; +$lang['notimplemented'] = 'Denne funksjon er ikke laget ennÃ¥'; +$lang['notinstalled'] = 'Denne utvidelsen er ikke installert '; +$lang['alreadyenabled'] = 'Denne utvidelsen er allerede slÃ¥tt pÃ¥'; +$lang['alreadydisabled'] = 'Denne utvidelsen er allerede slÃ¥tt av'; +$lang['pluginlistsaveerror'] = 'Det oppsto en feil ved lagring av programlisten'; +$lang['unknownauthor'] = 'Ukjent utvikler'; +$lang['unknownversion'] = 'Ukjent versjon'; +$lang['btn_info'] = 'Vis mer info'; +$lang['btn_update'] = 'Oppdater'; +$lang['btn_uninstall'] = 'Avinstaller'; +$lang['btn_enable'] = 'SlÃ¥ pÃ¥'; +$lang['btn_disable'] = 'SlÃ¥ av'; +$lang['btn_install'] = 'Installer'; +$lang['btn_reinstall'] = 'Installer pÃ¥ nytt'; +$lang['js']['reallydel'] = 'Vil du virkelig avinstallere denne utvidelsen?'; +$lang['js']['display_viewoptions'] = 'Filtrer etter:'; +$lang['js']['display_enabled'] = 'slÃ¥tt pÃ¥'; +$lang['js']['display_disabled'] = 'slÃ¥tt av'; +$lang['js']['display_updatable'] = 'Oppdaterbar'; +$lang['search_for'] = 'Finn programtillegg:'; +$lang['search'] = 'Søk'; +$lang['extensionby'] = '<strong>%s</strong> av %s'; +$lang['screenshot'] = 'Skjermbilde av %s'; +$lang['popularity'] = 'Popularitet: %s%%'; +$lang['homepage_link'] = 'Dok.'; +$lang['bugs_features'] = 'Feilm.'; +$lang['tags'] = 'Stikkord:'; +$lang['author_hint'] = 'Let etter programmtilleg fra denne utvikler'; +$lang['installed'] = 'Installert:'; +$lang['downloadurl'] = 'URL for nedlasting:'; +$lang['repository'] = 'Lager:'; +$lang['unknown'] = '<em>ukjent</em>'; +$lang['installed_version'] = 'Installert versjon'; +$lang['install_date'] = 'Sist oppdatert:'; +$lang['available_version'] = 'Tilgengelig versjon:'; +$lang['compatible'] = 'Kompatibel med:'; +$lang['depends'] = 'Avhenger av:'; +$lang['similar'] = 'Ligner pÃ¥:'; +$lang['conflicts'] = 'I konflikt med:'; +$lang['donate'] = 'Liker du denne?'; +$lang['donate_action'] = 'Kjøp en kaffe til utvikleren!'; +$lang['repo_retry'] = 'Forsøk igjen'; +$lang['provides'] = 'Tilbyr:'; +$lang['status'] = 'Status:'; +$lang['status_installed'] = 'installert'; +$lang['status_not_installed'] = 'ikke installert'; +$lang['status_protected'] = 'beskyttet'; +$lang['status_enabled'] = 'slÃ¥tt pÃ¥ '; +$lang['status_disabled'] = 'slÃ¥tt av'; +$lang['status_unmodifiable'] = 'ikke-modifiserbar'; +$lang['status_plugin'] = 'programtillegg'; +$lang['status_template'] = 'mal'; +$lang['status_bundled'] = 'pakke'; +$lang['msg_enabled'] = 'Programtillegg %s er slÃ¥tt pÃ¥ '; +$lang['msg_disabled'] = 'Programtillegg %s er slÃ¥tt av '; +$lang['msg_delete_success'] = 'Utvidelse %s ble avinstallert'; +$lang['msg_delete_failed'] = 'Avinstallering av utvidelse %s feilet'; +$lang['msg_template_install_success'] = 'Mal %s ble installert'; +$lang['msg_template_update_success'] = 'Mal %s ble oppdatert'; +$lang['msg_plugin_install_success'] = 'Programtillegg %s ble installert'; +$lang['msg_plugin_update_success'] = 'Programtillegg %s ble oppdatert'; +$lang['msg_upload_failed'] = 'Opplasting av fil feilet'; +$lang['missing_dependency'] = '<strong>Manglende eller avslÃ¥tt avhengighet:</strong> %s'; +$lang['security_issue'] = '<strong>Sikerhetsproblem:</strong> %s'; +$lang['security_warning'] = '<strong>Sikerhetsvarsel:</strong> %s'; +$lang['update_available'] = '<strong>Oppdater:</strong> Ny versjon %s er tilgjengelig.'; +$lang['wrong_folder'] = '<strong>Programtillegg feil installert:</strong> Døp om mappen for programtillegg "%s" til "%s".'; +$lang['url_change'] = '<strong>URL er endret:</strong> URL for nedlasning er blitt endret sidene siste nedlastning. Sjekk at den nye URLen er gyldig før du oppdatere utvidelsen.<br />Ny: %s<br />Gammel: %s'; +$lang['error_badurl'] = 'URLer bør starte med http eller https'; +$lang['error_dircreate'] = 'Klarte ikke opprette midlertidig mappe nedlasting'; +$lang['error_download'] = 'Klarte ikke laste ned filen: %s'; +$lang['error_decompress'] = 'Klarte ikke pakke ut nedlastet fil. Muligens fordi nedlastingen feilet, da bør du prøve igjen; eller sÃ¥ kan komprimeringsformatet være ukjent, i sÃ¥ fall mÃ¥ du laste ned og installere utvidelsen manuelt.'; +$lang['error_findfolder'] = 'Klarte ikke finne utvidelsesmappen, du mÃ¥ laste ned og installere manuelt'; +$lang['error_copy'] = 'Det oppsto en kopieringsfeil ved installasjon av filer i katalogen <em>%s </ em>: disken kan være full eller filens tilgangsrettigheter kan være feil. Denne feilen kan ha resultert i en delvis installert programtillegg, og kan føre til at din wiki vil være ustabil.'; +$lang['noperms'] = 'Mappen for utvidelser er ikke skrivbar'; +$lang['notplperms'] = 'Mappen for maler er ikke skrivbar'; +$lang['nopluginperms'] = 'Mappen for programtillegg er ikke skrivbar'; +$lang['git'] = 'Denne utvidelsen ble installert via git, du vl kanskje ikke oppdatere den herfra.'; +$lang['auth'] = 'Denne autentiseringsutvidelser er i konfigurasjonsinstillingene ikke slÃ¥tt pÃ¥. vurder Ã¥ slÃ¥ den av.'; +$lang['install_url'] = 'Installer fra URL:'; +$lang['install_upload'] = 'Last opp utvidelse:'; +$lang['repo_error'] = 'Lagret for programtillegg kunne ikke kontaktes. Kontroller at din server har rettigheter til Ã¥ kontakte www.dokuwiki.org, sjekk ogsÃ¥ instillinger for hurtiglager (proxy).'; +$lang['nossl'] = 'DIn PHP-installasjon mangler støtte for SSL. Nedlastning vil derfor ikke virke for mange DokuWIki-utvidelser.'; diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 6df783cc8d4ffea552a525dfa0620a5520fdac12..97ad123dbc2e00e571dbbd77873f70cb96019ae6 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> diff --git a/lib/plugins/popularity/lang/ca/lang.php b/lib/plugins/popularity/lang/ca/lang.php index 9eb1655d266fbca95494dd9fc505827eed73a997..9c175972652b66c296b55d1fd6ef984f04043ce8 100644 --- a/lib/plugins/popularity/lang/ca/lang.php +++ b/lib/plugins/popularity/lang/ca/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/popularity/lang/fr/lang.php b/lib/plugins/popularity/lang/fr/lang.php index 7603b2a086133867919366610434e2e1e3caca0a..059bec74cbcff2316de97ccc43bc1756ce510a38 100644 --- a/lib/plugins/popularity/lang/fr/lang.php +++ b/lib/plugins/popularity/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guy Brand <gb@unistra.fr> * @author stephane.gully@gmail.com * @author Guillaume Turri <guillaume.turri@gmail.com> diff --git a/lib/plugins/popularity/lang/hr/lang.php b/lib/plugins/popularity/lang/hr/lang.php index a8ea707281ff9ba8c2492c2b771a09686591a7d7..3dd9f11793ebff096a5700eb4e3bb143a9a18a5d 100644 --- a/lib/plugins/popularity/lang/hr/lang.php +++ b/lib/plugins/popularity/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['name'] = 'Povratna informacija o popularnosti (može proteći neko vrijeme dok se uÄita)'; diff --git a/lib/plugins/popularity/lang/no/intro.txt b/lib/plugins/popularity/lang/no/intro.txt index a0f36015737a9a0087ba722709780b487a7c23e5..be3f8f02fbbe4e7b404ae419bce1996c351371b2 100644 --- a/lib/plugins/popularity/lang/no/intro.txt +++ b/lib/plugins/popularity/lang/no/intro.txt @@ -1,9 +1,9 @@ -====== Popularitetsfeedback ====== +====== Tilbakemelding om popularitet ====== -Dette verktøyet samler anonyme data om din wiki og lar deg sende det tilbake til DokuWikis utviklere. Dette hjelper utviklerne Ã¥ forstÃ¥ hvordan DokuWiki blir brukt av brukerne, og gjør at fremtidig beslutninger om videre utvikling kan baseres pÃ¥ statistikk fra virkelig bruk. +Dette verktøyet samler anonyme data om din wiki og sender disse tilbake til DokuWikis utviklere. Dette hjelper utviklerne til Ã¥ forstÃ¥ hvordan DokuWiki blir brukt, og gjør at fremtidig beslutninger om videre utvikling kan baseres pÃ¥ statistikk fra virkelig bruk. -Du oppfordres herved til Ã¥ gjenta dette skrittet fra tid til annen for Ã¥ holde utviklerne informert nÃ¥r din wiki vokser. Ditt gjentatte datasett blir identifisert vha en anonym ID. +Du oppfordres herved til Ã¥ gjenta innsendingen fra tid til annen for Ã¥ holde utviklerne informert nÃ¥r din wiki vokser. Dine datasett vil bli identifisert ved hjelp av en anonym identifikator. -De data som samles inn inneholder informasjon som din DokuWiki-versjon, antallet og størrelsen pÃ¥ sider og filer, installerte plugins og informasjon om din installerte PHP. +De data som samles inn inneholder informasjon om din DokuWiki-versjon, antallet og størrelsen pÃ¥ sider og filer, installerte utvidelser og informasjon om hvilken versjon av PHP som er installert. -RÃ¥data som blir sendt vises nedenfor. Bruk knappen "Send data" for Ã¥ overføre informasjonen. \ No newline at end of file +RÃ¥data som blir sendt vises nedenfor. Bruk knappen "Send data" for Ã¥ overføre denne informasjonen. \ No newline at end of file diff --git a/lib/plugins/popularity/lang/no/lang.php b/lib/plugins/popularity/lang/no/lang.php index dfa99d8241141146572f2fbcce98e3c70bebd145..688cc4ff6aab4fb4f2dd140634f3d065443e2d1a 100644 --- a/lib/plugins/popularity/lang/no/lang.php +++ b/lib/plugins/popularity/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> @@ -14,11 +14,12 @@ * @author Thomas Nygreen <nygreen@gmail.com> * @author Jon Bøe <jonmagneboe@hotmail.com> * @author Egil Hansen <egil@rosetta.no> + * @author Arne Hanssen <arne.hanssen@getmail.no> */ -$lang['name'] = 'Popularitetsfeedback (kan ta litt tid Ã¥ laste)'; +$lang['name'] = ' Tilbakemelding om popularitet (kan ta litt tid Ã¥ laste)'; $lang['submit'] = 'Send data'; $lang['autosubmit'] = 'Send data automatisk en gang i mÃ¥neden'; $lang['submissionFailed'] = 'Kunne ikke sende dataene pÃ¥ grunn av følgende feil:'; $lang['submitDirectly'] = 'Du kan sende dataene manuelt ved Ã¥ sende inn dette skjemaet.'; $lang['autosubmitError'] = 'Den siste automatiske innsendingen feilet pÃ¥ grunn av følgende feil:'; -$lang['lastSent'] = 'Dataene er sendt'; +$lang['lastSent'] = 'Dataene er sendt for '; diff --git a/lib/plugins/popularity/lang/ro/lang.php b/lib/plugins/popularity/lang/ro/lang.php index 5be528bac0265fbda4d296b19b9ea31c08ec931c..4a3130ad5265a7094ce2cba73968de50bb61a575 100644 --- a/lib/plugins/popularity/lang/ro/lang.php +++ b/lib/plugins/popularity/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> * @author Emanuel-Emeric AndraÈ™i <n30@mandrivausers.ro> * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro> diff --git a/lib/plugins/popularity/lang/ru/lang.php b/lib/plugins/popularity/lang/ru/lang.php index 9c03ccda6a5d6dd9c58b64bd2caeafbcb7797006..9a862f194d8fd8529b1b522ce7b52d9408c164c1 100644 --- a/lib/plugins/popularity/lang/ru/lang.php +++ b/lib/plugins/popularity/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Змей ÐтерийÑкий evil_snake@eternion.ru * @author Hikaru Nakajima <jisatsu@mail.ru> * @author Alexei Tereschenko <alexeitlex@yahoo.com> diff --git a/lib/plugins/popularity/lang/sr/lang.php b/lib/plugins/popularity/lang/sr/lang.php index f560b52a8d7133bc1f55350c330ebf331c0fbca2..b67aaa8effb2593a26f0fa019f28ee7561972378 100644 --- a/lib/plugins/popularity/lang/sr/lang.php +++ b/lib/plugins/popularity/lang/sr/lang.php @@ -1,6 +1,7 @@ <?php + /** - * Serbian language file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> diff --git a/lib/plugins/revert/lang/ca/lang.php b/lib/plugins/revert/lang/ca/lang.php index e2755f8d3b879523b5b347abb0ba3a4473c3c36e..a2a7915f37a7e4092d23c400e459d587ba96f3b7 100644 --- a/lib/plugins/revert/lang/ca/lang.php +++ b/lib/plugins/revert/lang/ca/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/revert/lang/fr/lang.php b/lib/plugins/revert/lang/fr/lang.php index 4ba6c19a7e1ce574a011f9331133c599b0cf2f8a..7f604d68ac36a0a789a3fb06039f6b57e709d9bb 100644 --- a/lib/plugins/revert/lang/fr/lang.php +++ b/lib/plugins/revert/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> * @author Guy Brand <gb@unistra.fr> diff --git a/lib/plugins/revert/lang/hr/lang.php b/lib/plugins/revert/lang/hr/lang.php index 59413690224c696086b57bc3a8466a69adf2176c..988d2be67bcd031b04bf029eb18bf14c008e3024 100644 --- a/lib/plugins/revert/lang/hr/lang.php +++ b/lib/plugins/revert/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['menu'] = 'Pomoćnik za povrat stanja'; diff --git a/lib/plugins/revert/lang/no/intro.txt b/lib/plugins/revert/lang/no/intro.txt index f48b987490c8cd4dc131ba37853a841a17b1a4fe..d8288b26bebb3d8fc7beb74b78b1346b24966d80 100644 --- a/lib/plugins/revert/lang/no/intro.txt +++ b/lib/plugins/revert/lang/no/intro.txt @@ -1,3 +1,3 @@ ====== Tilbakestillingsbehandler ====== -Denne siden hjelper deg Ã¥ automatisk reversere forsøpling av sidene. For Ã¥ finne en liste over forsøplede sider, skriv inn en søkestreng (f.eks. en søppel-URL). Bekreft deretter at de funnede sidene virkelig er forsøplet og tilbakestill endringene. +Denne siden hjelper deg Ã¥ automatisk reversere sider som er blitt forsøplet. For Ã¥ vise en liste over forsøplede sider, skriv inn en søkestreng (f.eks. en søppel-URL). Velg deretter hvilke av sidene i søkeresultatet som skal tilbakestilles. \ No newline at end of file diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index d5307c7ca0972cdcd5f36710a3e6a40acb364ada..88c25af368fae205abb78cd45f841341442812ac 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> @@ -21,6 +21,9 @@ * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> * @author Danny Buckhof <daniel.raknes@hotmail.no> + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> + * @author Patrick Sletvold <patricksletvold@hotmail.com> */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; @@ -32,4 +35,4 @@ tidsavbrudd før prosessen er ferdig, mÃ¥ du tilbakestille færre sider om gangen.'; $lang['revstop'] = 'Tilbakestillingen er fullført.'; $lang['note1'] = 'Merk: søket skiller mellom store og smÃ¥ bokstaver'; -$lang['note2'] = 'Merk: siden vil bli tilbakestilt til den siste versjonen som ikke inneholder det oppgitte søppel-ordet <i>%s</i>.'; +$lang['note2'] = 'Merk: sidene vil bli tilbakestilt til den siste versjonen som ikke inneholder søppelteksten: <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/ro/lang.php b/lib/plugins/revert/lang/ro/lang.php index 3d0ca7957f7990e3293b0c009da1b95cc7b1ba77..663447e6a33e3c51e70862f2edada031d6f307cf 100644 --- a/lib/plugins/revert/lang/ro/lang.php +++ b/lib/plugins/revert/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author s_baltariu@yahoo.com * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> diff --git a/lib/plugins/revert/lang/ru/lang.php b/lib/plugins/revert/lang/ru/lang.php index 73d69b33e5131e0f19a7ee81da8acfeb296760f2..dd0f5219bc6c00ed6a74ef060d7d0faf09ee4ac1 100644 --- a/lib/plugins/revert/lang/ru/lang.php +++ b/lib/plugins/revert/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Denis Simakov <akinoame1@gmail.com> * @author Andrew Pleshakov <beotiger@mail.ru> * @author Змей ÐтерийÑкий evil_snake@eternion.ru diff --git a/lib/plugins/revert/lang/sr/lang.php b/lib/plugins/revert/lang/sr/lang.php index 62c712ad15a9e25a198a1794bd3c8d66a1dd2e61..e0ac43971510aebd22a549f36141fe0d6a527f72 100644 --- a/lib/plugins/revert/lang/sr/lang.php +++ b/lib/plugins/revert/lang/sr/lang.php @@ -1,6 +1,7 @@ <?php + /** - * Serbian language file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> diff --git a/lib/plugins/styling/lang/fr/lang.php b/lib/plugins/styling/lang/fr/lang.php index 92b8c3d741990641227a85171601608da9b7a683..b3f0116462974d278de3cac1811fc7d307709b5b 100644 --- a/lib/plugins/styling/lang/fr/lang.php +++ b/lib/plugins/styling/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carbain Frédéric <fcarbain@yahoo.fr> * @author Nicolas Friedli <nicolas@theologique.ch> */ diff --git a/lib/plugins/styling/lang/hr/lang.php b/lib/plugins/styling/lang/hr/lang.php index ab7c14fa6dc8b1e77bb4fac1c7cb572638f3c84f..4d7038adee87dbf6f5ab0698412f0b5a397d894c 100644 --- a/lib/plugins/styling/lang/hr/lang.php +++ b/lib/plugins/styling/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['menu'] = 'Postavke stila predloÅ¡ka'; @@ -10,7 +10,7 @@ $lang['js']['loader'] = 'Pregled se uÄitava...<br />ako ovo ne nestane $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'] = 'Snimi promjene'; +$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'; diff --git a/lib/plugins/styling/lang/no/intro.txt b/lib/plugins/styling/lang/no/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..82225493bf8e673fe390032d59c2a1e7f1b185b6 --- /dev/null +++ b/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/lib/plugins/styling/lang/no/lang.php b/lib/plugins/styling/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f9a478b066919a9b762fe57514dd977f33ff851c --- /dev/null +++ b/lib/plugins/styling/lang/no/lang.php @@ -0,0 +1,24 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arne.hanssen@getmail.no> + * @author Arne Hanssen <arnehans@getmail.no> + */ +$lang['menu'] = 'Innstillinger for malstil'; +$lang['js']['loader'] = 'ForhÃ¥ndsvisning laster...<br />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/lib/plugins/styling/lang/ru/lang.php b/lib/plugins/styling/lang/ru/lang.php index beda17619eb52fc2c27a1faea19ffc2d58e88a38..3c8e60b1831a17e90e7e5e774d06192e6d41f307 100644 --- a/lib/plugins/styling/lang/ru/lang.php +++ b/lib/plugins/styling/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author RainbowSpike <1@2.ru> */ $lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; diff --git a/lib/plugins/usermanager/lang/ca/lang.php b/lib/plugins/usermanager/lang/ca/lang.php index 4b07326aba08ff307325cdcc23c6f1cedd8965ed..36b77745592f2dc6d3852bf38da8807defd76129 100644 --- a/lib/plugins/usermanager/lang/ca/lang.php +++ b/lib/plugins/usermanager/lang/ca/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index a388eb53152f801f0b9eaf2fa31653c79f0d40c0..0ebf67d8c9378291d063b41920a642eb1cc4698d 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> * @author Andreas Gohr <andi@splitbrain.org> * @author Michael Klier <chi@chimeric.de> @@ -24,6 +24,7 @@ * @author Jonas Gröger <jonas.groeger@gmail.com> * @author Uwe Benzelrath <uwebenzelrath@gmail.com> * @author ms <msocial@posteo.de> + * @author Carsten Perthel <carsten@cpesoft.com> */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -82,12 +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.'; +$lang['addUser_error_modPass_disabled'] = 'Das Bearbeiten von Passwörtern ist momentan deaktiviert'; +$lang['addUser_error_name_missing'] = 'Bitte geben Sie den Namen des neuen Benutzer ein.'; +$lang['addUser_error_modName_disabled'] = 'Das Bearbeiten von Namen ist momentan deaktiviert.'; +$lang['addUser_error_mail_missing'] = 'Bitte geben Sie die E-Mail-Adresse des neuen Benutzer ein.'; +$lang['addUser_error_modMail_disabled'] = 'Das Bearbeiten von E-Mailadressen ist momentan deaktiviert.'; +$lang['addUser_error_create_event_failed'] = 'Ein Plug-in hat das Hinzufügen des neuen Benutzers verhindert. Für weitere Informationen sehen Sie sich mögliche andere Meldungen an.'; diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index eef81c6c5bf0fd98f68d864c2d5e53054a875311..d1db76c2345e9c075b7dd73aa525695134250061 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> @@ -24,6 +24,7 @@ * @author Jérôme Brandt <jeromebrandt@gmail.com> * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> * @author Olivier Humbert <trebmuh@tuxfamily.org> + * @author Eric <ericstevenart@netc.fr> */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -89,6 +90,6 @@ $lang['addUser_error_pass_not_identical'] = 'Les mots de passe saisis diffèrent $lang['addUser_error_modPass_disabled'] = 'La modification des mots de passe est actuellement désactivée.'; $lang['addUser_error_name_missing'] = 'Veuillez saisir un nom pour le nouvel utilisateur.'; $lang['addUser_error_modName_disabled'] = 'La modification des noms est actuellement désactivée.'; -$lang['addUser_error_mail_missing'] = 'Veuillez saisir une adressse de courriel pour le nouvel utilisateur.'; +$lang['addUser_error_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/lib/plugins/usermanager/lang/hr/lang.php b/lib/plugins/usermanager/lang/hr/lang.php index 280c5b2b54c73c7d28ce25ff5e720db73dcf2829..39620edba65e0494a4e7a0c6683c45379aaae3d4 100644 --- a/lib/plugins/usermanager/lang/hr/lang.php +++ b/lib/plugins/usermanager/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $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'; diff --git a/lib/plugins/usermanager/lang/no/import.txt b/lib/plugins/usermanager/lang/no/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d96282fe3f7549fe3e19d084f8d6a59af03e319 --- /dev/null +++ b/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/lib/plugins/usermanager/lang/no/lang.php b/lib/plugins/usermanager/lang/no/lang.php index 83823b2b8321049e49c7e26c0151f203cc01608a..8bd88945daf8fb56272df5968292e9b409c215af 100644 --- a/lib/plugins/usermanager/lang/no/lang.php +++ b/lib/plugins/usermanager/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> @@ -16,6 +16,7 @@ * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe <jonmagneboe@hotmail.com> * @author Egil Hansen <egil@rosetta.no> + * @author Arne Hanssen <arne.hanssen@getmail.no> */ $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/lib/plugins/usermanager/lang/ro/lang.php b/lib/plugins/usermanager/lang/ro/lang.php index 55cbbed04eb8e4ba67982ef27000e7a9a99e0502..d65fac95b7c1a71ba2a178d09a26011a42551abe 100644 --- a/lib/plugins/usermanager/lang/ro/lang.php +++ b/lib/plugins/usermanager/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author s_baltariu@yahoo.com * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index ca39b879597cbe7b3112421fb11b13e24712416f..32ce109af7142229a166d6e140220e3e10d4d260 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Denis Simakov <akinoame1@gmail.com> * @author Andrew Pleshakov <beotiger@mail.ru> * @author Змей ÐтерийÑкий evil_snake@eternion.ru @@ -23,6 +23,7 @@ * @author Igor Degraf <igordegraf@gmail.com> * @author Vitaly Filatenko <kot@hacktest.net> * @author dimsharav <dimsharav@gmail.com> + * @author Radimir <radimir.shevchenko@gmail.com> */ $lang['menu'] = 'Управление пользователÑми'; $lang['noauth'] = '(Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ недоÑтупна)'; @@ -90,3 +91,4 @@ $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/lib/plugins/usermanager/lang/sr/lang.php b/lib/plugins/usermanager/lang/sr/lang.php index 5f2669b58c6f2f635937704e304dfef5ebdd0e83..858a2139ba4defda855a0e1aef730c179ac79846 100644 --- a/lib/plugins/usermanager/lang/sr/lang.php +++ b/lib/plugins/usermanager/lang/sr/lang.php @@ -1,6 +1,7 @@ <?php + /** - * Serbian language file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> diff --git a/lib/scripts/media.js b/lib/scripts/media.js index f8507396bc50fa77b347476cdb0ccda12b38279a..371ad94ddc8af518a07366704dc231caa0b795d7 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -246,10 +246,11 @@ var dw_mediamanager = { } s = parseInt(dw_mediamanager.size, 10); + var size = s * 200; if (s && s >= 1 && s < 4) { opts += (opts.length) ? '&' : '?'; - opts += dw_mediamanager.size + '00'; + opts += size; if (dw_mediamanager.ext === 'swf') { switch (s) { case 1: diff --git a/lib/tpl/dokuwiki/lang/fr/lang.php b/lib/tpl/dokuwiki/lang/fr/lang.php index ae74ca83e7da619ff10d2cd68f5135e0f2e399f3..350b5a5faaa62453a496fcf03f10cdb7564057fd 100644 --- a/lib/tpl/dokuwiki/lang/fr/lang.php +++ b/lib/tpl/dokuwiki/lang/fr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Nicolas Friedli <nicolas@theologique.ch> */ $lang['__background_site__'] = 'Couleur du fond (derrière la boîte de contenu)'; diff --git a/lib/tpl/dokuwiki/lang/hr/lang.php b/lib/tpl/dokuwiki/lang/hr/lang.php index 6bb2f34b962686c0a49e46607ceb35923e8b0956..1cce21e17bd93c3cd5e9b96b218ed713960f0c40 100644 --- a/lib/tpl/dokuwiki/lang/hr/lang.php +++ b/lib/tpl/dokuwiki/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['__background_site__'] = 'Boja pozadine ispod okvira sa sadržajem'; diff --git a/lib/tpl/dokuwiki/lang/no/lang.php b/lib/tpl/dokuwiki/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..4c331a7a595cf438cac5fb9bbca2ed49be1be65b --- /dev/null +++ b/lib/tpl/dokuwiki/lang/no/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Arne Hanssen <arne.hanssen@getmail.no> + */ +$lang['__background_site__'] = 'Farge for bakerste bakgrunn (bak innholdsboksen)'; +$lang['__link__'] = 'Generell lenkefarge'; +$lang['__existing__'] = 'Farge for lenker til eksisterende sider'; +$lang['__missing__'] = 'Farge for lenker til ikke-eksisterende sider'; +$lang['__site_width__'] = 'Bredde for hele siden (kan angis i ulike enheter som: (%, px, em, ...)'; +$lang['__sidebar_width__'] = 'Sidestolpens bredde, dersom denne finnes (kan angis i ulike enheter som: (%, px, em, ...)'; +$lang['__tablet_width__'] = 'For skjermbredde lavere en denne verden, vil siden endres til Ã¥ vises i brett-modus'; +$lang['__phone_width__'] = 'For skjermbredde lavere en denne verden, vil siden endres til Ã¥ vises i mobil-modus'; diff --git a/lib/tpl/dokuwiki/lang/no/style.txt b/lib/tpl/dokuwiki/lang/no/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..34a667f515d1852653cf47de67b1aca2ab2c8276 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/no/style.txt @@ -0,0 +1 @@ +Dersom du ønsker Ã¥ endre logoen kan du gÃ¥ til Mediefiler-siden og laste opp en fil med navn «logo.png» i navnerommet «wiki» eller «rot». Filen vil da, automatisk bli bruk som logo. Du kan ogsÃ¥ last opp en «favicon.ico» hvis ønskelig. Dersom du bruker en lukket wiki er det anbefalt at du setter rettighetene for navnerommet «wiki», eller «rot» til Ã¥ være lesbar for alle (world-readable). Hvis ikke vil din logo bare vises for brukere som er logget inn i wikien. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/ru/lang.php b/lib/tpl/dokuwiki/lang/ru/lang.php index 66066b13c43745b7a062ffe63fddcf77adf8054a..813ac83a52e00b12289f7aa20800842ceb1e828a 100644 --- a/lib/tpl/dokuwiki/lang/ru/lang.php +++ b/lib/tpl/dokuwiki/lang/ru/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author RainbowSpike <1@2.ru> * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 521b48559ca07169915c98bbd84974b41872fa81..88c7fd93b4f81107eb73d97d9ab635e3e3db33d4 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -2,6 +2,6 @@ // autoload.php @generated by Composer -require_once __DIR__ . '/composer/autoload_real.php'; +require_once __DIR__ . '/composer' . '/autoload_real.php'; return ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b::getLoader(); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 9a9a17de8f9b992ce1613af36844cc4d525d82e1..55787b617c12cf4273b4fe261cdee98160ee976b 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,5 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php', 'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php', ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d9a6fae08ee1a0fc6ad5db375e139d6ce67d2dd0..85bf8977ed985ece0da117f13af6969f1cffa684 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -7,6 +7,7 @@ namespace Composer\Autoload; class ComposerStaticInita19a915ee98347a0c787119619d2ff9b { public static $files = array ( + '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php', 'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php', ); diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 20870ad2ca5948c69dc1ad49130f7a85145d67e5..0a7ca395dc19e82bd1b202808e3ab62c98250652 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -48,25 +48,75 @@ "zip" ] }, + { + "name": "paragonie/random_compat", + "version": "v2.0.4", + "version_normalized": "2.0.4.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "time": "2016-11-07 23:38:38", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ] + }, { "name": "easybook/geshi", - "version": "v1.0.8.17", - "version_normalized": "1.0.8.17", + "version": "v1.0.8.18", + "version_normalized": "1.0.8.18", "source": { "type": "git", "url": "https://github.com/easybook/geshi.git", - "reference": "0fced4f530c0a1726588651f04c2bf2a3073c9c0" + "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easybook/geshi/zipball/0fced4f530c0a1726588651f04c2bf2a3073c9c0", - "reference": "0fced4f530c0a1726588651f04c2bf2a3073c9c0", + "url": "https://api.github.com/repos/easybook/geshi/zipball/4b06bfe8c6fbedd6aad0a0700d650f591386e287", + "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287", "shasum": "" }, "require": { "php": ">4.3.0" }, - "time": "2016-03-29 13:15:17", + "time": "2016-10-05 07:15:42", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/easybook/geshi/geshi/css.php b/vendor/easybook/geshi/geshi/css.php index cd15a20f69ab3569b97dd03ca596934c7695d1da..6f923a8eb384221cbf2ba6755e30b90230a00d55 100644 --- a/vendor/easybook/geshi/geshi/css.php +++ b/vendor/easybook/geshi/geshi/css.php @@ -69,27 +69,37 @@ $language_data = array ( ), 'KEYWORDS' => array( 1 => array( + 'align-items', 'align-self', 'align-content', 'aqua', 'azimuth', 'background-attachment', 'background-color', 'background-image', 'background-position', 'background-repeat', 'background', 'black', 'blue', 'border-bottom-color', 'border-radius', 'border-top-left-radius', 'border-top-right-radius', 'border-bottom-right-radius', 'border-bottom-left-radius', - 'border-bottom-style', 'border-bottom-width', 'border-left-color', + 'border-bottom-style', 'border-bottom-width', 'border-image-source', + 'border-image-slice', 'border-image-width', 'border-image-outset', + 'border-image-repeat', 'border-image', 'border-left-color', 'border-left-style', 'border-left-width', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-top-color', 'border-top-style', 'border-top-width','border-bottom', 'border-collapse', 'border-left', 'border-width', 'border-color', 'border-spacing', - 'border-style', 'border-top', 'border', 'caption-side', 'clear', + 'border-style', 'border-top', 'border', 'box-shadow', + 'break-after', 'break-before', 'break-inside', 'column-count', + 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', + 'column-rule-style', 'column-rule-width', 'columns', 'column-span', + 'column-width', 'caption-side', 'clear', 'clip', 'color', 'content', 'counter-increment', 'counter-reset', 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display', - 'elevation', 'empty-cells', 'float', 'font-family', 'font-size', + 'elevation', 'empty-cells', 'flex-direction', 'flex-grow', + 'flex-wrap', 'flex-shrink', 'flex-basis', 'flex-flow', 'flex', + + 'float', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', - 'font-weight', 'font', 'line-height', 'letter-spacing', + 'font-weight', 'font', 'justify-content', 'line-height', 'letter-spacing', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'margin', 'marker-offset', 'marks', 'max-height', - 'max-width', 'min-height', 'min-width', 'orphans', 'outline', + 'max-width', 'min-height', 'min-width', 'order', 'orphans', 'outline', 'outline-color', 'outline-style', 'outline-width', 'overflow', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', 'padding', 'page', 'page-break-after', 'page-break-before', @@ -108,12 +118,13 @@ $language_data = array ( 'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink', 'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left', 'center-right', 'center', 'circle', 'cjk-ideographic', - 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', + 'close-quote', 'collapse', 'column', 'column-reverse', 'condensed', 'continuous', 'crop', 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero', 'decimal', 'default', 'digits', 'disc', 'dotted', 'double', + 'ease-in', 'ease-out', 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', 'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast', - 'fixed', 'fuchsia', 'georgian', 'gray', 'green', 'groove', + 'fixed', 'flex-end', 'flex-start', 'fuchsia', 'georgian', 'gray', 'green', 'groove', 'hebrew', 'help', 'hidden', 'hide', 'higher', 'high', 'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table', 'inline', 'inset', 'inside', 'invert', 'italic', 'justify', @@ -127,18 +138,19 @@ $language_data = array ( 'nw-resize', 'oblique', 'olive', 'once', 'open-quote', 'outset', 'outside', 'overline', 'pointer', 'portrait', 'purple', 'px', 'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', - 'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif', + 'ridge', 'right-side', 'rightwards', 'row', 'row-reverse', 's-resize', 'sans-serif', 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower', 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', - 'spell-out', 'square', 'static', 'status-bar', 'super', + 'space-around', 'space-between', + 'spell-out', 'square', 'static', 'status-bar', 'stretch', 'super', 'sw-resize', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row', 'table-row-group', 'teal', 'text', 'text-bottom', 'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed', 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', 'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait', - 'white', 'wider', 'x-fast', 'x-high', 'x-large', 'x-loud', + 'white', 'wider', 'wrap', 'wrap-reverse', 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow', 'yes' ) diff --git a/vendor/easybook/geshi/geshi/php-brief.php b/vendor/easybook/geshi/geshi/php-brief.php index dc93282abc4e21bd2ad4c25b390d1410cec684ce..c88e7cbdf850d30fbbb51f5bd27e7da1389cf44d 100644 --- a/vendor/easybook/geshi/geshi/php-brief.php +++ b/vendor/easybook/geshi/geshi/php-brief.php @@ -160,7 +160,7 @@ $language_data = array ( 'URLS' => array( 1 => '', 2 => '', - 3 => 'http://php.net/{FNAMEL}' + 3 => 'http://www.php.net/{FNAMEL}' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( diff --git a/vendor/easybook/geshi/geshi/php.php b/vendor/easybook/geshi/geshi/php.php index c8fbc3ad41412e4aa4174b64bc248df83f0972c6..7b5c16e189763608f8cd379f589befa829172fac 100644 --- a/vendor/easybook/geshi/geshi/php.php +++ b/vendor/easybook/geshi/geshi/php.php @@ -1052,7 +1052,7 @@ $language_data = array( 'URLS' => array( 1 => '', 2 => '', - 3 => 'http://php.net/{FNAMEL}', + 3 => 'http://www.php.net/{FNAMEL}', 4 => '' ), 'OOLANG' => true, diff --git a/vendor/paragonie/random_compat/LICENSE b/vendor/paragonie/random_compat/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..45c7017dfb33dd003ee038cc9232d2430ffbf9a2 --- /dev/null +++ b/vendor/paragonie/random_compat/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Paragon Initiative Enterprises + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/paragonie/random_compat/composer.json b/vendor/paragonie/random_compat/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..d363f4c8cb6db506a2f1dcd22e052b48fe964f5b --- /dev/null +++ b/vendor/paragonie/random_compat/composer.json @@ -0,0 +1,35 @@ +{ + "name": "paragonie/random_compat", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "random", + "pseudorandom" + ], + "license": "MIT", + "type": "library", + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "support": { + "issues": "https://github.com/paragonie/random_compat/issues", + "email": "info@paragonie.com", + "source": "https://github.com/paragonie/random_compat" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "autoload": { + "files": ["lib/random.php"] + } +} diff --git a/vendor/paragonie/random_compat/lib/byte_safe_strings.php b/vendor/paragonie/random_compat/lib/byte_safe_strings.php new file mode 100644 index 0000000000000000000000000000000000000000..dd03690c5469c53d0376b48c27a6dbeecadf87a9 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/byte_safe_strings.php @@ -0,0 +1,181 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('RandomCompat_strlen')) { + if ( + defined('MB_OVERLOAD_STRING') && + ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING + ) { + /** + * strlen() implementation that isn't brittle to mbstring.func_overload + * + * This version uses mb_strlen() in '8bit' mode to treat strings as raw + * binary rather than UTF-8, ISO-8859-1, etc + * + * @param string $binary_string + * + * @throws TypeError + * + * @return int + */ + function RandomCompat_strlen($binary_string) + { + if (!is_string($binary_string)) { + throw new TypeError( + 'RandomCompat_strlen() expects a string' + ); + } + + return mb_strlen($binary_string, '8bit'); + } + + } else { + /** + * strlen() implementation that isn't brittle to mbstring.func_overload + * + * This version just used the default strlen() + * + * @param string $binary_string + * + * @throws TypeError + * + * @return int + */ + function RandomCompat_strlen($binary_string) + { + if (!is_string($binary_string)) { + throw new TypeError( + 'RandomCompat_strlen() expects a string' + ); + } + return strlen($binary_string); + } + } +} + +if (!is_callable('RandomCompat_substr')) { + + if ( + defined('MB_OVERLOAD_STRING') + && + ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING + ) { + /** + * substr() implementation that isn't brittle to mbstring.func_overload + * + * This version uses mb_substr() in '8bit' mode to treat strings as raw + * binary rather than UTF-8, ISO-8859-1, etc + * + * @param string $binary_string + * @param int $start + * @param int $length (optional) + * + * @throws TypeError + * + * @return string + */ + function RandomCompat_substr($binary_string, $start, $length = null) + { + if (!is_string($binary_string)) { + throw new TypeError( + 'RandomCompat_substr(): First argument should be a string' + ); + } + + if (!is_int($start)) { + throw new TypeError( + 'RandomCompat_substr(): Second argument should be an integer' + ); + } + + if ($length === null) { + /** + * mb_substr($str, 0, NULL, '8bit') returns an empty string on + * PHP 5.3, so we have to find the length ourselves. + */ + $length = RandomCompat_strlen($length) - $start; + } elseif (!is_int($length)) { + throw new TypeError( + 'RandomCompat_substr(): Third argument should be an integer, or omitted' + ); + } + + // Consistency with PHP's behavior + if ($start === RandomCompat_strlen($binary_string) && $length === 0) { + return ''; + } + if ($start > RandomCompat_strlen($binary_string)) { + return false; + } + + return mb_substr($binary_string, $start, $length, '8bit'); + } + + } else { + + /** + * substr() implementation that isn't brittle to mbstring.func_overload + * + * This version just uses the default substr() + * + * @param string $binary_string + * @param int $start + * @param int $length (optional) + * + * @throws TypeError + * + * @return string + */ + function RandomCompat_substr($binary_string, $start, $length = null) + { + if (!is_string($binary_string)) { + throw new TypeError( + 'RandomCompat_substr(): First argument should be a string' + ); + } + + if (!is_int($start)) { + throw new TypeError( + 'RandomCompat_substr(): Second argument should be an integer' + ); + } + + if ($length !== null) { + if (!is_int($length)) { + throw new TypeError( + 'RandomCompat_substr(): Third argument should be an integer, or omitted' + ); + } + + return substr($binary_string, $start, $length); + } + + return substr($binary_string, $start); + } + } +} diff --git a/vendor/paragonie/random_compat/lib/cast_to_int.php b/vendor/paragonie/random_compat/lib/cast_to_int.php new file mode 100644 index 0000000000000000000000000000000000000000..65e9d2184b8c8806e95077df54fffffb1eb1a46d --- /dev/null +++ b/vendor/paragonie/random_compat/lib/cast_to_int.php @@ -0,0 +1,71 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('RandomCompat_intval')) { + + /** + * Cast to an integer if we can, safely. + * + * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX) + * (non-inclusive), it will sanely cast it to an int. If you it's equal to + * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats + * lose precision, so the <= and => operators might accidentally let a float + * through. + * + * @param int|float $number The number we want to convert to an int + * @param boolean $fail_open Set to true to not throw an exception + * + * @return int (or float if $fail_open) + * + * @throws TypeError + */ + function RandomCompat_intval($number, $fail_open = false) + { + if (is_numeric($number)) { + $number += 0; + } + + if ( + is_float($number) + && + $number > ~PHP_INT_MAX + && + $number < PHP_INT_MAX + ) { + $number = (int) $number; + } + + if (is_int($number) || $fail_open) { + return $number; + } + + throw new TypeError( + 'Expected an integer.' + ); + } +} diff --git a/vendor/paragonie/random_compat/lib/error_polyfill.php b/vendor/paragonie/random_compat/lib/error_polyfill.php new file mode 100644 index 0000000000000000000000000000000000000000..69ee3794d9e6d5e767604a8dc674048344b98179 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/error_polyfill.php @@ -0,0 +1,49 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!class_exists('Error', false)) { + // We can't really avoid making this extend Exception in PHP 5. + class Error extends Exception + { + + } +} + +if (!class_exists('TypeError', false)) { + if (is_subclass_of('Error', 'Exception')) { + class TypeError extends Error + { + + } + } else { + class TypeError extends Exception + { + + } + } +} diff --git a/vendor/paragonie/random_compat/lib/random.php b/vendor/paragonie/random_compat/lib/random.php new file mode 100644 index 0000000000000000000000000000000000000000..5a451da732d17d99bb58f9fa33277e372006dea9 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random.php @@ -0,0 +1,215 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * @version 2.0.4 + * @released 2016-11-07 + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!defined('PHP_VERSION_ID')) { + // This constant was introduced in PHP 5.2.7 + $RandomCompatversion = array_map('intval', explode('.', PHP_VERSION)); + define( + 'PHP_VERSION_ID', + $RandomCompatversion[0] * 10000 + + $RandomCompatversion[1] * 100 + + $RandomCompatversion[2] + ); + $RandomCompatversion = null; +} + +/** + * PHP 7.0.0 and newer have these functions natively. + */ +if (PHP_VERSION_ID < 70000) { + if (!defined('RANDOM_COMPAT_READ_BUFFER')) { + define('RANDOM_COMPAT_READ_BUFFER', 8); + } + + $RandomCompatDIR = dirname(__FILE__); + + require_once $RandomCompatDIR.'/byte_safe_strings.php'; + require_once $RandomCompatDIR.'/cast_to_int.php'; + require_once $RandomCompatDIR.'/error_polyfill.php'; + + if (!is_callable('random_bytes')) { + /** + * PHP 5.2.0 - 5.6.x way to implement random_bytes() + * + * We use conditional statements here to define the function in accordance + * to the operating environment. It's a micro-optimization. + * + * In order of preference: + * 1. Use libsodium if available. + * 2. fread() /dev/urandom if available (never on Windows) + * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM) + * 4. COM('CAPICOM.Utilities.1')->GetRandom() + * 5. openssl_random_pseudo_bytes() (absolute last resort) + * + * See RATIONALE.md for our reasoning behind this particular order + */ + if (extension_loaded('libsodium')) { + // See random_bytes_libsodium.php + if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) { + require_once $RandomCompatDIR.'/random_bytes_libsodium.php'; + } elseif (method_exists('Sodium', 'randombytes_buf')) { + require_once $RandomCompatDIR.'/random_bytes_libsodium_legacy.php'; + } + } + + /** + * Reading directly from /dev/urandom: + */ + if (DIRECTORY_SEPARATOR === '/') { + // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast + // way to exclude Windows. + $RandomCompatUrandom = true; + $RandomCompat_basedir = ini_get('open_basedir'); + + if (!empty($RandomCompat_basedir)) { + $RandomCompat_open_basedir = explode( + PATH_SEPARATOR, + strtolower($RandomCompat_basedir) + ); + $RandomCompatUrandom = (array() !== array_intersect( + array('/dev', '/dev/', '/dev/urandom'), + $RandomCompat_open_basedir + )); + $RandomCompat_open_basedir = null; + } + + if ( + !is_callable('random_bytes') + && + $RandomCompatUrandom + && + @is_readable('/dev/urandom') + ) { + // Error suppression on is_readable() in case of an open_basedir + // or safe_mode failure. All we care about is whether or not we + // can read it at this point. If the PHP environment is going to + // panic over trying to see if the file can be read in the first + // place, that is not helpful to us here. + + // See random_bytes_dev_urandom.php + require_once $RandomCompatDIR.'/random_bytes_dev_urandom.php'; + } + // Unset variables after use + $RandomCompat_basedir = null; + } else { + $RandomCompatUrandom = false; + } + + /** + * mcrypt_create_iv() + * + * We only want to use mcypt_create_iv() if: + * + * - random_bytes() hasn't already been defined + * - PHP >= 5.3.7 + * - the mcrypt extensions is loaded + * - One of these two conditions is true: + * - We're on Windows (DIRECTORY_SEPARATOR !== '/') + * - We're not on Windows and /dev/urandom is readabale + * (i.e. we're not in a chroot jail) + * - Special case: + * - If we're not on Windows, but the PHP version is between + * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will + * hang indefinitely. This is bad. + */ + if ( + !is_callable('random_bytes') + && + PHP_VERSION_ID >= 50307 + && + extension_loaded('mcrypt') + ) { + // Prevent this code from hanging indefinitely on non-Windows; + // see https://bugs.php.net/bug.php?id=69833 + if ( + DIRECTORY_SEPARATOR !== '/' || + (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613) + ) { + // See random_bytes_mcrypt.php + require_once $RandomCompatDIR.'/random_bytes_mcrypt.php'; + } + } + $RandomCompatUrandom = null; + + /** + * This is a Windows-specific fallback, for when the mcrypt extension + * isn't loaded. + */ + if ( + !is_callable('random_bytes') + && + extension_loaded('com_dotnet') + && + class_exists('COM') + ) { + $RandomCompat_disabled_classes = preg_split( + '#\s*,\s*#', + strtolower(ini_get('disable_classes')) + ); + + if (!in_array('com', $RandomCompat_disabled_classes)) { + try { + $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1'); + if (method_exists($RandomCompatCOMtest, 'GetRandom')) { + // See random_bytes_com_dotnet.php + require_once $RandomCompatDIR.'/random_bytes_com_dotnet.php'; + } + } catch (com_exception $e) { + // Don't try to use it. + } + } + $RandomCompat_disabled_classes = null; + $RandomCompatCOMtest = null; + } + + /** + * throw new Exception + */ + if (!is_callable('random_bytes')) { + /** + * We don't have any more options, so let's throw an exception right now + * and hope the developer won't let it fail silently. + */ + function random_bytes($length) + { + throw new Exception( + 'There is no suitable CSPRNG installed on your system' + ); + } + } + } + + if (!is_callable('random_int')) { + require_once $RandomCompatDIR.'/random_int.php'; + } + + $RandomCompatDIR = null; +} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php new file mode 100644 index 0000000000000000000000000000000000000000..f068b6c0a0f19bac50a7e9c471de19f9f6b1d809 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php @@ -0,0 +1,83 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('random_bytes')) { + /** + * Windows with PHP < 5.3.0 will not have the function + * openssl_random_pseudo_bytes() available, so let's use + * CAPICOM to work around this deficiency. + * + * @param int $bytes + * + * @throws Exception + * + * @return string + */ + function random_bytes($bytes) + { + try { + $bytes = RandomCompat_intval($bytes); + } catch (TypeError $ex) { + throw new TypeError( + 'random_bytes(): $bytes must be an integer' + ); + } + + if ($bytes < 1) { + throw new Error( + 'Length must be greater than 0' + ); + } + + $buf = ''; + $util = new COM('CAPICOM.Utilities.1'); + $execCount = 0; + + /** + * Let's not let it loop forever. If we run N times and fail to + * get N bytes of random data, then CAPICOM has failed us. + */ + do { + $buf .= base64_decode($util->GetRandom($bytes, 0)); + if (RandomCompat_strlen($buf) >= $bytes) { + /** + * Return our random entropy buffer here: + */ + return RandomCompat_substr($buf, 0, $bytes); + } + ++$execCount; + } while ($execCount < $bytes); + + /** + * If we reach here, PHP has failed us. + */ + throw new Exception( + 'Could not gather sufficient random data' + ); + } +} \ No newline at end of file diff --git a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php new file mode 100644 index 0000000000000000000000000000000000000000..aaccd5adfa2c82828f475c2a135e98976d6cc3fa --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php @@ -0,0 +1,150 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!defined('RANDOM_COMPAT_READ_BUFFER')) { + define('RANDOM_COMPAT_READ_BUFFER', 8); +} + +if (!is_callable('random_bytes')) { + /** + * Unless open_basedir is enabled, use /dev/urandom for + * random numbers in accordance with best practices + * + * Why we use /dev/urandom and not /dev/random + * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers + * + * @param int $bytes + * + * @throws Exception + * + * @return string + */ + function random_bytes($bytes) + { + static $fp = null; + /** + * This block should only be run once + */ + if (empty($fp)) { + /** + * We use /dev/urandom if it is a char device. + * We never fall back to /dev/random + */ + $fp = fopen('/dev/urandom', 'rb'); + if (!empty($fp)) { + $st = fstat($fp); + if (($st['mode'] & 0170000) !== 020000) { + fclose($fp); + $fp = false; + } + } + + if (!empty($fp)) { + /** + * stream_set_read_buffer() does not exist in HHVM + * + * If we don't set the stream's read buffer to 0, PHP will + * internally buffer 8192 bytes, which can waste entropy + * + * stream_set_read_buffer returns 0 on success + */ + if (is_callable('stream_set_read_buffer')) { + stream_set_read_buffer($fp, RANDOM_COMPAT_READ_BUFFER); + } + if (is_callable('stream_set_chunk_size')) { + stream_set_chunk_size($fp, RANDOM_COMPAT_READ_BUFFER); + } + } + } + + try { + $bytes = RandomCompat_intval($bytes); + } catch (TypeError $ex) { + throw new TypeError( + 'random_bytes(): $bytes must be an integer' + ); + } + + if ($bytes < 1) { + throw new Error( + 'Length must be greater than 0' + ); + } + + /** + * This if() block only runs if we managed to open a file handle + * + * It does not belong in an else {} block, because the above + * if (empty($fp)) line is logic that should only be run once per + * page load. + */ + if (!empty($fp)) { + $remaining = $bytes; + $buf = ''; + + /** + * We use fread() in a loop to protect against partial reads + */ + do { + $read = fread($fp, $remaining); + if ($read === false) { + /** + * We cannot safely read from the file. Exit the + * do-while loop and trigger the exception condition + */ + $buf = false; + break; + } + /** + * Decrease the number of bytes returned from remaining + */ + $remaining -= RandomCompat_strlen($read); + $buf .= $read; + } while ($remaining > 0); + + /** + * Is our result valid? + */ + if ($buf !== false) { + if (RandomCompat_strlen($buf) === $bytes) { + /** + * Return our random entropy buffer here: + */ + return $buf; + } + } + } + + /** + * If we reach here, PHP has failed us. + */ + throw new Exception( + 'Error reading from source device' + ); + } +} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php new file mode 100644 index 0000000000000000000000000000000000000000..025b90076289b4e0d3cba2a243ddb15c456c5ea3 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php @@ -0,0 +1,88 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('random_bytes')) { + /** + * If the libsodium PHP extension is loaded, we'll use it above any other + * solution. + * + * libsodium-php project: + * @ref https://github.com/jedisct1/libsodium-php + * + * @param int $bytes + * + * @throws Exception + * + * @return string + */ + function random_bytes($bytes) + { + try { + $bytes = RandomCompat_intval($bytes); + } catch (TypeError $ex) { + throw new TypeError( + 'random_bytes(): $bytes must be an integer' + ); + } + + if ($bytes < 1) { + throw new Error( + 'Length must be greater than 0' + ); + } + + /** + * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be + * generated in one invocation. + */ + if ($bytes > 2147483647) { + $buf = ''; + for ($i = 0; $i < $bytes; $i += 1073741824) { + $n = ($bytes - $i) > 1073741824 + ? 1073741824 + : $bytes - $i; + $buf .= \Sodium\randombytes_buf($n); + } + } else { + $buf = \Sodium\randombytes_buf($bytes); + } + + if ($buf !== false) { + if (RandomCompat_strlen($buf) === $bytes) { + return $buf; + } + } + + /** + * If we reach here, PHP has failed us. + */ + throw new Exception( + 'Could not gather sufficient random data' + ); + } +} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php new file mode 100644 index 0000000000000000000000000000000000000000..f8d6a7fc0abe11593c121efc2e6401ce3c2fd23e --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php @@ -0,0 +1,88 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('random_bytes')) { + /** + * If the libsodium PHP extension is loaded, we'll use it above any other + * solution. + * + * libsodium-php project: + * @ref https://github.com/jedisct1/libsodium-php + * + * @param int $bytes + * + * @throws Exception + * + * @return string + */ + function random_bytes($bytes) + { + try { + $bytes = RandomCompat_intval($bytes); + } catch (TypeError $ex) { + throw new TypeError( + 'random_bytes(): $bytes must be an integer' + ); + } + + if ($bytes < 1) { + throw new Error( + 'Length must be greater than 0' + ); + } + + /** + * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be + * generated in one invocation. + */ + if ($bytes > 2147483647) { + $buf = ''; + for ($i = 0; $i < $bytes; $i += 1073741824) { + $n = ($bytes - $i) > 1073741824 + ? 1073741824 + : $bytes - $i; + $buf .= Sodium::randombytes_buf($n); + } + } else { + $buf = Sodium::randombytes_buf($bytes); + } + + if ($buf !== false) { + if (RandomCompat_strlen($buf) === $bytes) { + return $buf; + } + } + + /** + * If we reach here, PHP has failed us. + */ + throw new Exception( + 'Could not gather sufficient random data' + ); + } +} diff --git a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php new file mode 100644 index 0000000000000000000000000000000000000000..f18736dc9206a23115a3d6080763ccacf0e5e622 --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php @@ -0,0 +1,77 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +if (!is_callable('random_bytes')) { + /** + * Powered by ext/mcrypt (and thankfully NOT libmcrypt) + * + * @ref https://bugs.php.net/bug.php?id=55169 + * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386 + * + * @param int $bytes + * + * @throws Exception + * + * @return string + */ + function random_bytes($bytes) + { + try { + $bytes = RandomCompat_intval($bytes); + } catch (TypeError $ex) { + throw new TypeError( + 'random_bytes(): $bytes must be an integer' + ); + } + + if ($bytes < 1) { + throw new Error( + 'Length must be greater than 0' + ); + } + + $buf = @mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM); + if ( + $buf !== false + && + RandomCompat_strlen($buf) === $bytes + ) { + /** + * Return our random entropy buffer here: + */ + return $buf; + } + + /** + * If we reach here, PHP has failed us. + */ + throw new Exception( + 'Could not gather sufficient random data' + ); + } +} diff --git a/vendor/paragonie/random_compat/lib/random_int.php b/vendor/paragonie/random_compat/lib/random_int.php new file mode 100644 index 0000000000000000000000000000000000000000..ce0ccbd3ebba9df61e024083c2ef0c0aa656516f --- /dev/null +++ b/vendor/paragonie/random_compat/lib/random_int.php @@ -0,0 +1,191 @@ +<?php +/** + * Random_* Compatibility Library + * for using the new PHP 7 random_* API in PHP 5 projects + * + * The MIT License (MIT) + * + * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/** + * Fetch a random integer between $min and $max inclusive + * + * @param int $min + * @param int $max + * + * @throws Exception + * + * @return int + */ +function random_int($min, $max) +{ + /** + * Type and input logic checks + * + * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX) + * (non-inclusive), it will sanely cast it to an int. If you it's equal to + * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats + * lose precision, so the <= and => operators might accidentally let a float + * through. + */ + + try { + $min = RandomCompat_intval($min); + } catch (TypeError $ex) { + throw new TypeError( + 'random_int(): $min must be an integer' + ); + } + + try { + $max = RandomCompat_intval($max); + } catch (TypeError $ex) { + throw new TypeError( + 'random_int(): $max must be an integer' + ); + } + + /** + * Now that we've verified our weak typing system has given us an integer, + * let's validate the logic then we can move forward with generating random + * integers along a given range. + */ + if ($min > $max) { + throw new Error( + 'Minimum value must be less than or equal to the maximum value' + ); + } + + if ($max === $min) { + return $min; + } + + /** + * Initialize variables to 0 + * + * We want to store: + * $bytes => the number of random bytes we need + * $mask => an integer bitmask (for use with the &) operator + * so we can minimize the number of discards + */ + $attempts = $bits = $bytes = $mask = $valueShift = 0; + + /** + * At this point, $range is a positive number greater than 0. It might + * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to + * a float and we will lose some precision. + */ + $range = $max - $min; + + /** + * Test for integer overflow: + */ + if (!is_int($range)) { + + /** + * Still safely calculate wider ranges. + * Provided by @CodesInChaos, @oittaa + * + * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435 + * + * We use ~0 as a mask in this case because it generates all 1s + * + * @ref https://eval.in/400356 (32-bit) + * @ref http://3v4l.org/XX9r5 (64-bit) + */ + $bytes = PHP_INT_SIZE; + $mask = ~0; + + } else { + + /** + * $bits is effectively ceil(log($range, 2)) without dealing with + * type juggling + */ + while ($range > 0) { + if ($bits % 8 === 0) { + ++$bytes; + } + ++$bits; + $range >>= 1; + $mask = $mask << 1 | 1; + } + $valueShift = $min; + } + + /** + * Now that we have our parameters set up, let's begin generating + * random integers until one falls between $min and $max + */ + do { + /** + * The rejection probability is at most 0.5, so this corresponds + * to a failure probability of 2^-128 for a working RNG + */ + if ($attempts > 128) { + throw new Exception( + 'random_int: RNG is broken - too many rejections' + ); + } + + /** + * Let's grab the necessary number of random bytes + */ + $randomByteString = random_bytes($bytes); + if ($randomByteString === false) { + throw new Exception( + 'Random number generator failure' + ); + } + + /** + * Let's turn $randomByteString into an integer + * + * This uses bitwise operators (<< and |) to build an integer + * out of the values extracted from ord() + * + * Example: [9F] | [6D] | [32] | [0C] => + * 159 + 27904 + 3276800 + 201326592 => + * 204631455 + */ + $val = 0; + for ($i = 0; $i < $bytes; ++$i) { + $val |= ord($randomByteString[$i]) << ($i * 8); + } + + /** + * Apply mask + */ + $val &= $mask; + $val += $valueShift; + + ++$attempts; + /** + * If $val overflows to a floating point number, + * ... or is larger than $max, + * ... or smaller than $min, + * then try again. + */ + } while (!is_int($val) || $val > $max || $val < $min); + + return (int) $val; +}