Merge branch 'master' into htmlmail

* master: (382 commits)
  Romanian language update
  Marathi language update
  Arabic Language Update
  when there's not enough space for images, make sure they stay proportional (might be FS#2480)
  added minimal RTL print styles (part of FS#2185)
  moved plugins' rtl.css to their style.css counterpart (part of FS#2185)
  removed all browser-specific gradients as the recently (in 42ff6730) introduced svg makes them unnecessary
  removed comments from accidentally commented lines in tpl_includeFile()
  removed obsolete template file
  added tpl_includeFile() to core
  Make getTitle method in remote interface public
  Changed an error code in XML-RPC interface. This error hasn't anything to do with the rest of the -32600 errors.
  BG: language update
  Korean language update
  fixed performance issues with gradient in Firefox (which also added gradient support for IE9) (FS#2447)
  deleted very old (and unused) images
  added accidentally removed '<?php' back in (was in 57fc5edd)
  wrapped X-UA-Compatible meta tag with conditional comments
  added explanation to todo in _forms.css
  removed problematic 'overflow: hidden' from lists again ('unfixes' FS#1950)
  ...

Conflicts:
	inc/auth.php
	inc/load.php
This commit is contained in:
Andreas Gohr 2012-04-15 13:45:45 +02:00
commit ae7c596cf4
382 changed files with 9267 additions and 3885 deletions

41
COPYING
View File

@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

2
README
View File

@ -4,7 +4,7 @@ at http://www.dokuwiki.org/
For Installation Instructions see
http://www.dokuwiki.org/install
DokuWiki - 2004-2011 (c) Andreas Gohr <andi@splitbrain.org>
DokuWiki - 2004-2012 (c) Andreas Gohr <andi@splitbrain.org>
and the DokuWiki Community
See COPYING and file headers for license info

View File

@ -1,78 +0,0 @@
<?php
/**
* DokuWiki Coding Standard.
*
* @category PHP
* @package PHP_CodeSniffer
* @author Andreas Gohr <andi@splitbrain.org>
*/
if (class_exists('PHP_CodeSniffer_Standards_CodingStandard', true) === false) {
throw new PHP_CodeSniffer_Exception('Class PHP_CodeSniffer_Standards_CodingStandard not found');
}
/**
* DokuWiki Coding Standard.
*
* @category PHP
* @package PHP_CodeSniffer
* @author Andreas Gohr <andi@splitbrain.org>
*/
class PHP_CodeSniffer_Standards_DokuWiki_DokuWikiCodingStandard extends PHP_CodeSniffer_Standards_CodingStandard {
/**
* Return a list of external sniffs to include with this standard.
*
* @return array
*/
public function getIncludedSniffs() {
return array(
'Generic/Sniffs/Classes/DuplicateClassNameSniff.php',
'Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php',
'Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php',
'Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php',
'Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php',
'Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php',
'Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php',
'Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php',
'Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php',
'Generic/Sniffs/Commenting/TodoSniff.php',
'Generic/Sniffs/Files/LineEndingsSniff.php',
'Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php',
'Generic/Sniffs/Metrics/NestingLevelSniff.php',
// 'Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php', //FIXME we might need to tune this first
'Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php',
'Generic/Sniffs/PHP/LowerCaseConstantSniff.php',
'Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php',
'Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php',
'Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php',
'DokuWiki/Sniffs/WhiteSpace/ScopeIndentSniff.php',
'Zend/Sniffs/Files/ClosingTagSniff.php',
'PEAR/Sniffs/Functions/ValidDefaultValueSniff.php',
'Squiz/Sniffs/PHP/EvalSniff.php',
'Squiz/Sniffs/PHP/NonExecutableCodeSniff.php',
// 'Squiz/Sniffs/PHP/CommentedOutCodeSniff.php', //FIXME should ignore oneliners
'Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php',
'Squiz/Sniffs/PHP/NonExecutableCodeSniff.php',
'Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php',
'Squiz/Sniffs/CSS/MissingColonSniff.php',
'Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php',
'Squiz/Sniffs/CSS/ColonSpacingSniff.php',
'Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php',
'Squiz/Sniffs/CSS/SemicolonSpacingSniff.php',
'Squiz/Sniffs/CSS/IndentationSniff.php',
'Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php',
'Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php',
'Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php',
'Squiz/Sniffs/CSS/OpacitySniff.php',
'Squiz/Sniffs/CSS/ColourDefinitionSniff.php',
'Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php',
'Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php',
'Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php',
);
}
}//end class

View File

@ -0,0 +1,85 @@
<?php
/**
* Generic_Sniffs_NamingConventions_ConstructorNameSniff.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <gsherwood@squiz.net>
* @author Leif Wickland <lwickland@rightnow.com>
* @copyright 2006-2011 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
if (class_exists('PHP_CodeSniffer_Standards_AbstractScopeSniff', true) === false) {
$error = 'Class PHP_CodeSniffer_Standards_AbstractScopeSniff not found';
throw new PHP_CodeSniffer_Exception($error);
}
/**
* Generic_Sniffs_NamingConventions_ConstructorNameSniff.
*
* Favor PHP 5 constructor syntax, which uses "function __construct()".
* Avoid PHP 4 constructor syntax, which uses "function ClassName()".
*
* @category PHP
* @package PHP_CodeSniffer
* @author Leif Wickland <lwickland@rightnow.com>
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version Release: 1.3.3
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
class DokuWiki_Sniffs_NamingConventions_ConstructorNameSniff extends Generic_Sniffs_NamingConventions_ConstructorNameSniff
{
/**
* Processes this test when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The current file being scanned.
* @param int $stackPtr The position of the current token
* in the stack passed in $tokens.
* @param int $currScope A pointer to the start of the scope.
*
* @return void
*/
protected function processTokenWithinScope(
PHP_CodeSniffer_File $phpcsFile,
$stackPtr,
$currScope
) {
$className = $phpcsFile->getDeclarationName($currScope);
$methodName = $phpcsFile->getDeclarationName($stackPtr);
if (strcasecmp($methodName, $className) === 0) {
$error = 'PHP4 style constructors are discouraged; use "__construct()" instead';
$phpcsFile->addWarning($error, $stackPtr, 'OldStyle');
} else if (strcasecmp($methodName, '__construct') !== 0) {
// Not a constructor.
return;
}
$tokens = $phpcsFile->getTokens();
$parentClassName = $phpcsFile->findExtendedClassName($currScope);
if ($parentClassName === false) {
return;
}
$endFunctionIndex = $tokens[$stackPtr]['scope_closer'];
$startIndex = $stackPtr;
while ($doubleColonIndex = $phpcsFile->findNext(array(T_DOUBLE_COLON), $startIndex, $endFunctionIndex)) {
if ($tokens[($doubleColonIndex + 1)]['code'] === T_STRING
&& $tokens[($doubleColonIndex + 1)]['content'] === $parentClassName
) {
$error = 'PHP4 style calls to parent constructors are discouraged; use "parent::__construct()" instead';
$phpcsFile->addWarning($error, ($doubleColonIndex + 1), 'OldStyleCall');
}
$startIndex = ($doubleColonIndex + 1);
}
}//end processTokenWithinScope()
}//end class

View File

@ -0,0 +1,61 @@
<?php
/**
* DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version CVS: $Id: DiscouragedFunctionsSniff.php 265110 2008-08-19 06:36:11Z squiz $
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
if (class_exists('Generic_Sniffs_PHP_ForbiddenFunctionsSniff', true) === false) {
throw new PHP_CodeSniffer_Exception('Class Generic_Sniffs_PHP_ForbiddenFunctionsSniff not found');
}
/**
* DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff.
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version Release: 1.2.2
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
class DokuWiki_Sniffs_PHP_DeprecatedFunctionsSniff extends Generic_Sniffs_PHP_ForbiddenFunctionsSniff
{
/**
* A list of forbidden functions with their alternatives.
*
* The value is NULL if no alternative exists. IE, the
* function should just not be used.
*
* @var array(string => string|null)
*/
protected $forbiddenFunctions = array(
'setCorrectLocale' => null,
'html_attbuild' => 'buildAttributes',
'io_runcmd' => null,
'p_wiki_xhtml_summary' => 'p_cached_output',
'search_callback' => 'call_user_func_array',
'search_backlinks' => 'ft_backlinks',
'search_fulltext' => 'Fulltext Indexer',
'search_regex' => 'Fulltext Indexer',
'tpl_getFavicon' => 'tpl_getMediaFile',
);
/**
* If true, an error will be thrown; otherwise a warning.
*
* @var bool
*/
public $error = true;
}//end class

View File

@ -49,8 +49,6 @@ class DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff extends Generic_Sniffs_PHP_F
*
* @var bool
*/
protected $error = false;
public $error = false;
}//end class
?>

64
_cs/DokuWiki/ruleset.xml Normal file
View File

@ -0,0 +1,64 @@
<?xml version="1.0"?>
<ruleset name="DokuWiki">
<description>DokuWiki Coding Standard</description>
<!-- ignore 3rd party libraries (that we haven't adopted) -->
<exclude-pattern>*/adLDAP.php</exclude-pattern>
<exclude-pattern>*/EmailAddressValidator.php</exclude-pattern>
<exclude-pattern>*/feedcreator.class.php</exclude-pattern>
<exclude-pattern>*/SimplePie.php</exclude-pattern>
<exclude-pattern>*/geshi.php</exclude-pattern>
<exclude-pattern>*/geshi/*</exclude-pattern>
<exclude-pattern>*/JSON.php</exclude-pattern>
<!-- ignore devel only parts -->
<exclude-pattern>*/_test/*</exclude-pattern>
<exclude-pattern>*/_cs/*</exclude-pattern>
<rule ref="Generic.Classes.DuplicateClassName" />
<rule ref="Generic.CodeAnalysis.JumbledIncrementer" />
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier" />
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement" />
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter" />
<rule ref="Generic.CodeAnalysis.EmptyStatement" />
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
<rule ref="Generic.Commenting.Todo" />
<ruke ref="Generic.Files.ByteOrderMark" />
<rule ref="Generic.Files.LineEndings" />
<rule ref="Generic.Formatting.DisallowMultipleStatements" />
<rule ref="Generic.Metrics.NestingLevel">
<properties>
<property name="nestingLevel" value="6" />
</properties>
</rule>
<rule ref="Generic.NamingConventions.UpperCaseConstantName" />
<rule ref="Generic.PHP.LowerCaseConstant" />
<rule ref="Generic.PHP.DeprecatedFunctions.php" />
<rule ref="Generic.PHP.DisallowShortOpenTag" />
<rule ref="Generic.PHP.ForbiddenFunctions" />
<rule ref="Generic.WhiteSpace.DisallowTabIndent" />
<rule ref="Generic.Classes.DuplicateClassName" />
<rule ref="Generic.Functions.CallTimePassByReference" />
<rule ref="Zend.Files.ClosingTag" />
<rule ref="PEAR.Functions.ValidDefaultValue" />
<rule ref="Squiz.PHP.Eval" />
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
<rule ref="Squiz.CSS.LowercaseStyleDefinition" />
<rule ref="Squiz.CSS.MissingColon" />
<rule ref="Squiz.CSS.DisallowMultipleStyleDefinitions" />
<rule ref="Squiz.CSS.ColonSpacing" />
<rule ref="Squiz.CSS.ClassDefinitionClosingBraceSpace" />
<rule ref="Squiz.CSS.SemicolonSpacing" />
<rule ref="Squiz.CSS.Indentation" />
<rule ref="Squiz.CSS.EmptyClassDefinition" />
<rule ref="Squiz.CSS.ClassDefinitionNameSpacing" />
<rule ref="Squiz.CSS.EmptyStyleDefinition" />
<rule ref="Squiz.CSS.Opacity" />
<rule ref="Squiz.CSS.ColourDefinition" />
<rule ref="Squiz.CSS.DuplicateClassDefinition" />
<rule ref="Squiz.CSS.ClassDefinitionOpeningBraceSpace" />
<rule ref="Squiz.Commenting.DocCommentAlignment" />
</ruleset>

View File

@ -12,6 +12,7 @@ class auth_password_test extends UnitTestCase {
'md5' => '8fa22d62408e5351553acdd91c6b7003',
'sha1' => 'b456d3b0efd105d613744ffd549514ecafcfc7e1',
'ssha' => '{SSHA}QMHG+uC7bHNYKkmoLbNsNI38/dJhYmNk',
'lsmd5' => '{SMD5}HGbkPrkWgy9KgcRGWlrsUWFiY2RlZmdo',
'crypt' => 'ablvoGr1hvZ5k',
'mysql' => '4a1fa3780bd6fd55',
'my411' => '*e5929347e25f82e19e4ebe92f1dc6b6e7c2dbd29',
@ -48,6 +49,15 @@ class auth_password_test extends UnitTestCase {
}
}
function test_bcrypt_self(){
$hash = auth_cryptPassword('foobcrypt','bcrypt');
$this->assertTrue(auth_verifyPassword('foobcrypt',$hash));
}
function test_verifyPassword_fixedbcrypt(){
$this->assertTrue(auth_verifyPassword('foobcrypt','$2a$12$uTWercxbq4sjp2xAzv3we.ZOxk51m5V/Bv5bp2H27oVFJl5neFQoC'));
}
function test_verifyPassword_nohash(){
$this->assertTrue(auth_verifyPassword('foo','$1$$n1rTiFE0nRifwV/43bVon/'));
}

View File

@ -0,0 +1,34 @@
<?php
require_once DOKU_INC.'inc/init.php';
require_once DOKU_INC.'inc/common.php';
class common_clientIP_test extends UnitTestCase {
function test_unix(){
$unix = 'one
two
three';
$this->assertEqual($unix,cleanText($unix));
}
function test_win(){
$unix = 'one
two
three';
$win = 'one
two
three';
$this->assertEqual(bin2hex($unix),'6f6e650a2020202020202020202020202020202074776f0a0a202020202020202020202020202020207468726565');
$this->assertEqual(bin2hex($win),'6f6e650d0a2020202020202020202020202020202074776f0d0a0d0a202020202020202020202020202020207468726565');
$this->assertNotEqual($unix,$win);
$this->assertEqual($unix,cleanText($win));
}
}
//Setup VIM: ex: et ts=4 :

View File

@ -400,6 +400,21 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testWindowsShareLinkHyphen() {
$this->P->addMode('windowssharelink',new Doku_Parser_Mode_WindowsShareLink());
$this->P->parse('Foo \\\server\share-hyphen Bar');
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('windowssharelink',array('\\\server\share-hyphen',NULL)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testWindowsShareLinkInternal() {
$this->P->addMode('internallink',new Doku_Parser_Mode_InternalLink());

View File

@ -0,0 +1,324 @@
<?php
require_once DOKU_INC . 'inc/init.php';
require_once DOKU_INC . 'inc/RemoteAPICore.php';
require_once DOKU_INC . 'inc/auth/basic.class.php';
Mock::generate('Doku_Plugin_Controller');
class MockAuth extends auth_basic {
function isCaseSensitive() { return true; }
}
class RemoteAPICoreTest {
function __getRemoteInfo() {
return array(
'wiki.stringTestMethod' => array(
'args' => array(),
'return' => 'string',
'doc' => 'Test method',
'name' => 'stringTestMethod',
), 'wiki.intTestMethod' => array(
'args' => array(),
'return' => 'int',
'doc' => 'Test method',
'name' => 'intTestMethod',
), 'wiki.floatTestMethod' => array(
'args' => array(),
'return' => 'float',
'doc' => 'Test method',
'name' => 'floatTestMethod',
), 'wiki.dateTestMethod' => array(
'args' => array(),
'return' => 'date',
'doc' => 'Test method',
'name' => 'dateTestMethod',
), 'wiki.fileTestMethod' => array(
'args' => array(),
'return' => 'file',
'doc' => 'Test method',
'name' => 'fileTestMethod',
), 'wiki.voidTestMethod' => array(
'args' => array(),
'return' => 'void',
'doc' => 'Test method',
'name' => 'voidTestMethod',
), 'wiki.oneStringArgMethod' => array(
'args' => array('string'),
'return' => 'string',
'doc' => 'Test method',
'name' => 'oneStringArgMethod',
), 'wiki.twoArgMethod' => array(
'args' => array('string', 'int'),
'return' => 'array',
'doc' => 'Test method',
'name' => 'twoArgMethod',
), 'wiki.twoArgWithDefaultArg' => array(
'args' => array('string', 'string'),
'return' => 'string',
'doc' => 'Test method',
'name' => 'twoArgWithDefaultArg',
), 'wiki.publicCall' => array(
'args' => array(),
'return' => 'boolean',
'doc' => 'testing for public access',
'name' => 'publicCall',
'public' => 1
)
);
}
function stringTestMethod() { return 'success'; }
function intTestMethod() { return 42; }
function floatTestMethod() { return 3.14159265; }
function dateTestMethod() { return 2623452346; }
function fileTestMethod() { return 'file content'; }
function voidTestMethod() { return null; }
function oneStringArgMethod($arg) {return $arg; }
function twoArgMethod($string, $int) { return array($string, $int); }
function twoArgWithDefaultArg($string1, $string2 = 'default') { return array($string1, $string2); }
function publicCall() {return true;}
}
class remote_plugin_testplugin extends DokuWiki_Remote_Plugin {
function _getMethods() {
return array(
'method1' => array(
'args' => array(),
'return' => 'void'
), 'methodString' => array(
'args' => array(),
'return' => 'string'
), 'method2' => array(
'args' => array('string', 'int'),
'return' => 'array',
'name' => 'method2',
), 'method2ext' => array(
'args' => array('string', 'int', 'bool'),
'return' => 'array',
'name' => 'method2',
), 'publicCall' => array(
'args' => array(),
'return' => 'boolean',
'doc' => 'testing for public access',
'name' => 'publicCall',
'public' => 1
)
);
}
function method1() { return null; }
function methodString() { return 'success'; }
function method2($str, $int, $bool = false) { return array($str, $int, $bool); }
function publicCall() {return true;}
}
class remote_test extends UnitTestCase {
var $originalConf;
var $userinfo;
var $remote;
function setUp() {
global $plugin_controller;
global $conf;
global $USERINFO;
global $auth;
parent::setUp();
$pluginManager = new MockDoku_Plugin_Controller();
$pluginManager->setReturnValue('getList', array('testplugin'));
$pluginManager->setReturnValue('load', new remote_plugin_testplugin());
$plugin_controller = $pluginManager;
$this->originalConf = $conf;
$conf['remote'] = 1;
$conf['remoteuser'] = '!!not set!!';
$conf['useacl'] = 0;
$this->userinfo = $USERINFO;
$this->remote = new RemoteAPI();
$auth = new MockAuth();
}
function tearDown() {
global $conf;
global $USERINFO;
$conf = $this->originalConf;
$USERINFO = $this->userinfo;
}
function test_pluginMethods() {
$methods = $this->remote->getPluginMethods();
$actual = array_keys($methods);
sort($actual);
$expect = array('plugin.testplugin.method1', 'plugin.testplugin.method2', 'plugin.testplugin.methodString', 'plugin.testplugin.method2ext', 'plugin.testplugin.publicCall');
sort($expect);
$this->assertEqual($expect,$actual);
}
function test_hasAccessSuccess() {
$this->assertTrue($this->remote->hasAccess());
}
function test_hasAccessFail() {
global $conf;
$conf['remote'] = 0;
$this->assertFalse($this->remote->hasAccess());
}
function test_hasAccessFailAcl() {
global $conf;
$conf['useacl'] = 1;
$this->assertFalse($this->remote->hasAccess());
}
function test_hasAccessSuccessAclEmptyRemoteUser() {
global $conf;
$conf['useacl'] = 1;
$conf['remoteuser'] = '';
$this->assertTrue($this->remote->hasAccess());
}
function test_hasAccessSuccessAcl() {
global $conf;
global $USERINFO;
$conf['useacl'] = 1;
$conf['remoteuser'] = '@grp,@grp2';
$USERINFO['grps'] = array('grp');
$this->assertTrue($this->remote->hasAccess());
}
function test_hasAccessFailAcl2() {
global $conf;
global $USERINFO;
$conf['useacl'] = 1;
$conf['remoteuser'] = '@grp';
$USERINFO['grps'] = array('grp1');
$this->assertFalse($this->remote->hasAccess());
}
function test_forceAccessSuccess() {
global $conf;
$conf['remote'] = 1;
$this->remote->forceAccess(); // no exception should occur
}
function test_forceAccessFail() {
global $conf;
$conf['remote'] = 0;
$this->expectException('RemoteException');
$this->remote->forceAccess();
}
function test_generalCoreFunctionWithoutArguments() {
global $conf;
$conf['remote'] = 1;
$remoteApi = new RemoteApi();
$remoteApi->getCoreMethods(new RemoteAPICoreTest());
$this->assertEqual($remoteApi->call('wiki.stringTestMethod'), 'success');
$this->assertEqual($remoteApi->call('wiki.intTestMethod'), 42);
$this->assertEqual($remoteApi->call('wiki.floatTestMethod'), 3.14159265);
$this->assertEqual($remoteApi->call('wiki.dateTestMethod'), 2623452346);
$this->assertEqual($remoteApi->call('wiki.fileTestMethod'), 'file content');
$this->assertEqual($remoteApi->call('wiki.voidTestMethod'), null);
}
function test_generalCoreFunctionOnArgumentMismatch() {
global $conf;
$conf['remote'] = 1;
$remoteApi = new RemoteApi();
$remoteApi->getCoreMethods(new RemoteAPICoreTest());
$this->expectException('RemoteException');
$remoteApi->call('wiki.voidTestMethod', array('something'));
}
function test_generalCoreFunctionWithArguments() {
global $conf;
$conf['remote'] = 1;
$remoteApi = new RemoteApi();
$remoteApi->getCoreMethods(new RemoteAPICoreTest());
$this->assertEqual($remoteApi->call('wiki.oneStringArgMethod', array('string')), 'string');
$this->assertEqual($remoteApi->call('wiki.twoArgMethod', array('string', 1)), array('string' , 1));
$this->assertEqual($remoteApi->call('wiki.twoArgWithDefaultArg', array('string')), array('string', 'default'));
$this->assertEqual($remoteApi->call('wiki.twoArgWithDefaultArg', array('string', 'another')), array('string', 'another'));
}
function test_pluginCallMethods() {
global $conf;
$conf['remote'] = 1;
$remoteApi = new RemoteApi();
$this->assertEqual($remoteApi->call('plugin.testplugin.method1'), null);
$this->assertEqual($remoteApi->call('plugin.testplugin.method2', array('string', 7)), array('string', 7, false));
$this->assertEqual($remoteApi->call('plugin.testplugin.method2ext', array('string', 7, true)), array('string', 7, true));
$this->assertEqual($remoteApi->call('plugin.testplugin.methodString'), 'success');
}
function test_notExistingCall() {
global $conf;
$conf['remote'] = 1;
$remoteApi = new RemoteApi();
$this->expectException('RemoteException');
$remoteApi->call('dose not exist');
}
function test_publicCallCore() {
global $conf;
$conf['useacl'] = 1;
$remoteApi = new RemoteApi();
$remoteApi->getCoreMethods(new RemoteAPICoreTest());
$this->assertTrue($remoteApi->call('wiki.publicCall'));
}
function test_publicCallPlugin() {
global $conf;
$conf['useacl'] = 1;
$remoteApi = new RemoteApi();
$this->assertTrue($remoteApi->call('plugin.testplugin.publicCall'));
}
function test_publicCallCoreDeny() {
global $conf;
$conf['useacl'] = 1;
$remoteApi = new RemoteApi();
$remoteApi->getCoreMethods(new RemoteAPICoreTest());
$this->expectException('RemoteAccessDeniedException');
$remoteApi->call('wiki.stringTestMethod');
}
function test_publicCallPluginDeny() {
global $conf;
$conf['useacl'] = 1;
$remoteApi = new RemoteApi();
$this->expectException('RemoteAccessDeniedException');
$remoteApi->call('plugin.testplugin.methodString');
}
function test_pluginCallCustomPath() {
global $EVENT_HANDLER;
$EVENT_HANDLER->register_hook('RPC_CALL_ADD', 'BEFORE', &$this, 'pluginCallCustomPathRegister');
$remoteApi = new RemoteAPI();
$result = $remoteApi->call('custom.path');
$this->assertEqual($result, 'success');
}
function pluginCallCustomPathRegister(&$event, $param) {
$event->data['custom.path'] = array('testplugin', 'methodString');
}
}

View File

@ -11,7 +11,7 @@ if(@file_exists(DOKU_CONF.'local.php')){ require_once(DOKU_CONF.'local.php'); }
$conf['lang'] = 'en';
define('TEST_ROOT', dirname(__FILE__));
define('TMPL_FILESCHEME_PATH', TEST_ROOT . '/filescheme/');
error_reporting(E_ALL);
error_reporting(E_ALL & ~E_DEPRECATED);
set_time_limit(600);
ini_set('memory_limit','128M');

View File

@ -18,6 +18,7 @@ $conf['dmode'] = 0755; //set directory creation mode
$conf['lang'] = 'en'; //your language
$conf['basedir'] = ''; //absolute dir from serveroot - blank for autodetection
$conf['baseurl'] = ''; //URL to server including protocol - blank for autodetect
$conf['cookiedir'] = ''; //Cookie path. Leave blank for using baseurl.
$conf['savedir'] = './data'; //where to store all the files
$conf['allowdebug'] = 0; //allow debug output, enable if needed 0|1
$conf['mediarevisions'] = 1; //enable/disable media revisions
@ -26,7 +27,9 @@ $conf['mediarevisions'] = 1; //enable/disable media revisions
$conf['start'] = 'start'; //name of start page
$conf['title'] = 'DokuWiki'; //what to show in the title
$conf['template'] = 'default'; //see lib/tpl directory
$conf['template'] = 'dokuwiki'; //see lib/tpl directory
$conf['tagline'] = ''; //tagline in header (if template supports it)
$conf['sidebar'] = 'sidebar'; //name of sidebar in root namespace (if template supports it)
$conf['license'] = 'cc-by-nc-sa'; //see conf/license.php
$conf['fullpath'] = 0; //show full path of the document or relative to datadir only? 0|1
$conf['recent'] = 20; //how many entries to show in recent
@ -78,8 +81,8 @@ $conf['sneaky_index'] = 0; //check for namespace read permission i
$conf['auth_security_timeout'] = 900; //time (seconds) auth data is considered valid, set to 0 to recheck on every page view
$conf['securecookie'] = 1; //never send HTTPS cookies via HTTP
$conf['xmlrpc'] = 0; //Enable/disable XML-RPC interface
$conf['xmlrpcuser'] = '!!not set!!'; //Restrict XML-RPC access to this groups/users
$conf['remote'] = 0; //Enable/disable remote interfaces
$conf['remoteuser'] = '!!not set !!'; //user/groups that have access to remote interface (comma separated)
/* Advanced Options */
@ -125,14 +128,18 @@ $conf['rss_linkto'] = 'diff'; //what page RSS entries link to:
// 'page' - the revised page itself
// 'rev' - page showing all revisions
// 'current' - most recent revision of page
$conf['rss_content'] = 'abstract'; // what to put in the items by default?
$conf['rss_content'] = 'abstract'; //what to put in the items by default?
// 'abstract' - plain text, first paragraph or so
// 'diff' - plain text unified diff wrapped in <pre> tags
// 'htmldiff' - diff as HTML table
// 'html' - the full page rendered in XHTML
$conf['rss_media'] = 'both'; //what should be listed?
// 'both' - page and media changes
// 'pages' - page changes only
// 'media' - media changes only
$conf['rss_update'] = 5*60; //Update the RSS feed every n seconds (defaults to 5 minutes)
$conf['recent_days'] = 7; //How many days of recent changes to keep. (days)
$conf['rss_show_summary'] = 1; //Add revision summary to title? 0|1
$conf['recent_days'] = 7; //How many days of recent changes to keep. (days)
$conf['broken_iua'] = 0; //Platform with broken ignore_user_abort (IIS+CGI) 0|1
$conf['xsendfile'] = 0; //Use X-Sendfile (1 = lighttpd, 2 = standard)
$conf['renderer_xhtml'] = 'xhtml'; //renderer to use for main page generation

View File

@ -1 +0,0 @@
data directory

View File

@ -368,7 +368,7 @@ Those blocks were created by this source:
==== Syntax Highlighting ====
[[wiki:DokuWiki]] can highlight sourcecode, which makes it easier to read. It uses the [[http://qbnz.com/highlighter/|GeSHi]] Generic Syntax Highlighter -- so any language supported by GeSHi is supported. The syntax is the same like in the code and file blocks in the previous section, but this time the name of the used language is inserted inside the tag. Eg. ''<nowiki><code java></nowiki>'' or ''<nowiki><file java></nowiki>''.
[[wiki:DokuWiki]] can highlight sourcecode, which makes it easier to read. It uses the [[http://qbnz.com/highlighter/|GeSHi]] Generic Syntax Highlighter -- so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described in the previous section, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. ''<nowiki><code java></nowiki>'' or ''<nowiki><file java></nowiki>''.
<code java>
/**

View File

@ -7,7 +7,7 @@
*/
// update message version
$updateVersion = 35;
$updateVersion = 36;
// xdebug_start_profiling();

View File

@ -50,7 +50,7 @@ $rss->cssStyleSheet = DOKU_URL.'lib/exe/css.php?s=feed';
$image = new FeedImage();
$image->title = $conf['title'];
$image->url = tpl_getFavicon(true);
$image->url = tpl_getMediaFile('favicon.ico', true);
$image->link = DOKU_URL;
$rss->image = $image;
@ -117,8 +117,8 @@ function rss_parseOptions(){
'show_minor' => array('minor', false),
// String, only used in search mode
'search_query' => array('q', null),
// One of: pages, media, both
'content_type' => array('view', 'both')
// One of: pages, media, both
'content_type' => array('view', $conf['rss_media'])
) as $name => $val) {
$opt[$name] = (isset($_REQUEST[$val[0]]) && !empty($_REQUEST[$val[0]]))

View File

@ -29,7 +29,7 @@ class _DiffOp {
class _DiffOp_Copy extends _DiffOp {
var $type = 'copy';
function __construct($orig, $closing = false) {
if (!is_array($closing))
$closing = $orig;
@ -44,7 +44,7 @@ class _DiffOp_Copy extends _DiffOp {
class _DiffOp_Delete extends _DiffOp {
var $type = 'delete';
function __construct($lines) {
$this->orig = $lines;
$this->closing = false;
@ -57,7 +57,7 @@ class _DiffOp_Delete extends _DiffOp {
class _DiffOp_Add extends _DiffOp {
var $type = 'add';
function __construct($lines) {
$this->closing = $lines;
$this->orig = false;
@ -70,7 +70,7 @@ class _DiffOp_Add extends _DiffOp {
class _DiffOp_Change extends _DiffOp {
var $type = 'change';
function __construct($orig, $closing) {
$this->orig = $orig;
$this->closing = $closing;
@ -957,7 +957,7 @@ class WordLevelDiff extends MappedDiff {
}
class InlineWordLevelDiff extends MappedDiff {
function __construct($orig_lines, $closing_lines) {
list ($orig_words, $orig_stripped) = $this->_split($orig_lines);
list ($closing_words, $closing_stripped) = $this->_split($closing_lines);

View File

@ -22,11 +22,11 @@ class DokuHTTPClient extends HTTPClient {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
function DokuHTTPClient(){
function __construct(){
global $conf;
// call parent constructor
$this->HTTPClient();
parent::__construct();
// set some values from the config
$this->proxy_host = $conf['proxy']['host'];
@ -121,7 +121,7 @@ class HTTPClient {
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
function HTTPClient(){
function __construct(){
$this->agent = 'Mozilla/4.0 (compatible; DokuWiki HTTP Client; '.PHP_OS.')';
$this->timeout = 15;
$this->cookies = array();
@ -338,7 +338,10 @@ class HTTPClient {
}
// wait for stream ready or timeout (1sec)
if(stream_select($sel_r,$sel_w,$sel_e,1) === false) continue;
if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
usleep(1000);
continue;
}
// write to stream
$ret = fwrite($socket, substr($request,$written,4096));
@ -577,13 +580,14 @@ class HTTPClient {
*/
function _parseHeaders($string){
$headers = array();
if (!preg_match_all('/^\s*([\w-]+)\s*:\s*([\S \t]+)\s*$/m', $string,
$matches, PREG_SET_ORDER)) {
return $headers;
}
foreach($matches as $match){
list(, $key, $val) = $match;
$lines = explode("\n",$string);
array_shift($lines); //skip first line (status)
foreach($lines as $line){
list($key, $val) = explode(':',$line,2);
$key = trim($key);
$val = trim($val);
$key = strtolower($key);
if(!$key) continue;
if(isset($headers[$key])){
if(is_array($headers[$key])){
$headers[$key][] = $val;

View File

@ -302,11 +302,12 @@ class IXR_Server {
}
function serve($data = false) {
if (!$data) {
global $HTTP_RAW_POST_DATA;
if (!$HTTP_RAW_POST_DATA) {
$postData = trim(http_get_raw_post_data());
if (!$postData) {
die('XML-RPC server accepts POST requests only.');
}
$data = $HTTP_RAW_POST_DATA;
$data = $postData;
}
$this->message = new IXR_Message($data);
if (!$this->message->parse()) {
@ -439,7 +440,7 @@ EOD;
$method = $call['methodName'];
$params = $call['params'];
if ($method == 'system.multicall') {
$result = new IXR_Error(-32600, 'Recursive calls to system.multicall are forbidden');
$result = new IXR_Error(-32800, 'Recursive calls to system.multicall are forbidden');
} else {
$result = $this->call($method, $params);
}
@ -501,7 +502,7 @@ class IXR_Client extends DokuHTTPClient {
var $xmlerror = false;
function IXR_Client($server, $path = false, $port = 80) {
$this->DokuHTTPClient();
parent::__construct();
if (!$path) {
// Assume we have been given a URL instead
$this->posturl = $server;

View File

@ -47,9 +47,15 @@ class PassHash {
}elseif(preg_match('/^md5\$(.{5})\$/',$hash,$m)){
$method = 'djangomd5';
$salt = $m[1];
}elseif(preg_match('/^\$2a\$(.{2})\$/',$hash,$m)){
$method = 'bcrypt';
$salt = $hash;
}elseif(substr($hash,0,6) == '{SSHA}'){
$method = 'ssha';
$salt = substr(base64_decode(substr($hash, 6)),20);
}elseif(substr($hash,0,6) == '{SMD5}'){
$method = 'lsmd5';
$salt = substr(base64_decode(substr($hash, 6)),16);
}elseif($len == 32){
$method = 'md5';
}elseif($len == 40){
@ -82,7 +88,9 @@ class PassHash {
public function gen_salt($len=32){
$salt = '';
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
for($i=0;$i<$len;$i++) $salt .= $chars[mt_rand(0,61)];
for($i=0; $i<$len; $i++){
$salt .= $chars[mt_rand(0,61)];
}
return $salt;
}
@ -130,6 +138,20 @@ class PassHash {
}
}
/**
* Password hashing method 'lsmd5'
*
* Uses salted MD5 hashs. Salt is 8 bytes long.
*
* This is the format used by LDAP.
*/
public function hash_lsmd5($clear, $salt=null){
$this->init_salt($salt,8);
return "{SMD5}".base64_encode(md5($clear.$salt, true).$salt);
}
/**
* Password hashing method 'apr1'
*
@ -379,4 +401,35 @@ class PassHash {
return 'md5$'.$salt.'$'.md5($salt.$clear);
}
/**
* Passwordhashing method 'bcrypt'
*
* Uses a modified blowfish algorithm called eksblowfish
* This method works on PHP 5.3+ only and will throw an exception
* if the needed crypt support isn't available
*
* A full hash should be given as salt (starting with $a2$) or this
* will break. When no salt is given, the iteration count can be set
* through the $compute variable.
*
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @param int $compute - the iteration count (between 4 and 31)
* @returns string - hashed password
*/
public function hash_bcrypt($clear, $salt=null, $compute=8){
if(!defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH != 1){
throw new Exception('This PHP installation has no bcrypt support');
}
if(is_null($salt)){
if($compute < 4 || $compute > 31) $compute = 8;
$salt = '$2a$'.str_pad($compute, 2, '0', STR_PAD_LEFT).'$'.
$this->gen_salt(22);
}
return crypt($clear, $salt);
}
}

768
inc/RemoteAPICore.php Normal file
View File

@ -0,0 +1,768 @@
<?php
/**
* Increased whenever the API is changed
*/
define('DOKU_API_VERSION', 7);
class RemoteAPICore {
private $api;
public function __construct(RemoteAPI $api) {
$this->api = $api;
}
function __getRemoteInfo() {
return array(
'dokuwiki.getVersion' => array(
'args' => array(),
'return' => 'string',
'doc' => 'Returns the running DokuWiki version.'
), 'dokuwiki.login' => array(
'args' => array('string', 'string'),
'return' => 'int',
'doc' => 'Tries to login with the given credentials and sets auth cookies.',
'public' => '1'
), 'dokuwiki.getPagelist' => array(
'args' => array('string', 'array'),
'return' => 'array',
'doc' => 'List all pages within the given namespace.',
'name' => 'readNamespace'
), 'dokuwiki.search' => array(
'args' => array('string'),
'return' => 'array',
'doc' => 'Perform a fulltext search and return a list of matching pages'
), 'dokuwiki.getTime' => array(
'args' => array(),
'return' => 'int',
'doc' => 'Returns the current time at the remote wiki server as Unix timestamp.',
), 'dokuwiki.setLocks' => array(
'args' => array('array'),
'return' => 'array',
'doc' => 'Lock or unlock pages.'
), 'dokuwiki.getTitle' => array(
'args' => array(),
'return' => 'string',
'doc' => 'Returns the wiki title.',
'public' => '1'
), 'dokuwiki.appendPage' => array(
'args' => array('string', 'string', 'array'),
'return' => 'int',
'doc' => 'Append text to a wiki page.'
), 'wiki.getPage' => array(
'args' => array('string'),
'return' => 'string',
'doc' => 'Get the raw Wiki text of page, latest version.',
'name' => 'rawPage',
), 'wiki.getPageVersion' => array(
'args' => array('string', 'int'),
'name' => 'rawPage',
'return' => 'string',
'doc' => 'Return a raw wiki page'
), 'wiki.getPageHTML' => array(
'args' => array('string'),
'return' => 'string',
'doc' => 'Return page in rendered HTML, latest version.',
'name' => 'htmlPage'
), 'wiki.getPageHTMLVersion' => array(
'args' => array('string', 'int'),
'return' => 'string',
'doc' => 'Return page in rendered HTML.',
'name' => 'htmlPage'
), 'wiki.getAllPages' => array(
'args' => array(),
'return' => 'array',
'doc' => 'Returns a list of all pages. The result is an array of utf8 pagenames.',
'name' => 'listPages'
), 'wiki.getAttachments' => array(
'args' => array('string', 'array'),
'return' => 'array',
'doc' => 'Returns a list of all media files.',
'name' => 'listAttachments'
), 'wiki.getBackLinks' => array(
'args' => array('string'),
'return' => 'array',
'doc' => 'Returns the pages that link to this page.',
'name' => 'listBackLinks'
), 'wiki.getPageInfo' => array(
'args' => array('string'),
'return' => 'array',
'doc' => 'Returns a struct with infos about the page.',
'name' => 'pageInfo'
), 'wiki.getPageInfoVersion' => array(
'args' => array('string', 'int'),
'return' => 'array',
'doc' => 'Returns a struct with infos about the page.',
'name' => 'pageInfo'
), 'wiki.getPageVersions' => array(
'args' => array('string', 'int'),
'return' => 'array',
'doc' => 'Returns the available revisions of the page.',
'name' => 'pageVersions'
), 'wiki.putPage' => array(
'args' => array('string', 'string', 'array'),
'return' => 'int',
'doc' => 'Saves a wiki page.'
), 'wiki.listLinks' => array(
'args' => array('string'),
'return' => 'array',
'doc' => 'Lists all links contained in a wiki page.'
), 'wiki.getRecentChanges' => array(
'args' => array('int'),
'return' => 'array',
'Returns a struct about all recent changes since given timestamp.'
), 'wiki.getRecentMediaChanges' => array(
'args' => array('int'),
'return' => 'array',
'Returns a struct about all recent media changes since given timestamp.'
), 'wiki.aclCheck' => array(
'args' => array('string'),
'return' => 'int',
'doc' => 'Returns the permissions of a given wiki page.'
), 'wiki.putAttachment' => array(
'args' => array('string', 'file', 'array'),
'return' => 'array',
'doc' => 'Upload a file to the wiki.'
), 'wiki.deleteAttachment' => array(
'args' => array('string'),
'return' => 'int',
'doc' => 'Delete a file from the wiki.'
), 'wiki.getAttachment' => array(
'args' => array('string'),
'doc' => 'Return a media file',
'return' => 'file',
'name' => 'getAttachment',
), 'wiki.getAttachmentInfo' => array(
'args' => array('string'),
'return' => 'array',
'doc' => 'Returns a struct with infos about the attachment.'
), 'dokuwiki.getXMLRPCAPIVersion' => array(
'args' => array(),
'name' => 'getAPIVersion',
'return' => 'int',
'doc' => 'Returns the XMLRPC API version.',
'public' => '1',
), 'wiki.getRPCVersionSupported' => array(
'args' => array(),
'name' => 'wiki_RPCVersion',
'return' => 'int',
'doc' => 'Returns 2 with the supported RPC API version.',
'public' => '1'
),
);
}
function getVersion() {
return getVersion();
}
function getTime() {
return time();
}
/**
* Return a raw wiki page
* @param string $id wiki page id
* @param string $rev revision number of the page
* @return page text.
*/
function rawPage($id,$rev=''){
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_READ){
throw new RemoteAccessDeniedException('You are not allowed to read this file', 111);
}
$text = rawWiki($id,$rev);
if(!$text) {
return pageTemplate($id);
} else {
return $text;
}
}
/**
* Return a media file
*
* @author Gina Haeussge <osd@foosel.net>
* @param string $id file id
* @return media file
*/
function getAttachment($id){
$id = cleanID($id);
if (auth_quickaclcheck(getNS($id).':*') < AUTH_READ) {
throw new RemoteAccessDeniedException('You are not allowed to read this file', 211);
}
$file = mediaFN($id);
if (!@ file_exists($file)) {
throw new RemoteException('The requested file does not exist', 221);
}
$data = io_readFile($file, false);
return $this->api->toFile($data);
}
/**
* Return info about a media file
*
* @author Gina Haeussge <osd@foosel.net>
*/
function getAttachmentInfo($id){
$id = cleanID($id);
$info = array(
'lastModified' => $this->api->toDate(0),
'size' => 0,
);
$file = mediaFN($id);
if ((auth_quickaclcheck(getNS($id).':*') >= AUTH_READ) && file_exists($file)){
$info['lastModified'] = $this->api->toDate(filemtime($file));
$info['size'] = filesize($file);
}
return $info;
}
/**
* Return a wiki page rendered to html
*/
function htmlPage($id,$rev=''){
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_READ){
throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
}
return p_wiki_xhtml($id,$rev,false);
}
/**
* List all pages - we use the indexer list here
*/
function listPages(){
$list = array();
$pages = idx_get_indexer()->getPages();
$pages = array_filter(array_filter($pages,'isVisiblePage'),'page_exists');
foreach(array_keys($pages) as $idx) {
$perm = auth_quickaclcheck($pages[$idx]);
if($perm < AUTH_READ) {
continue;
}
$page = array();
$page['id'] = trim($pages[$idx]);
$page['perms'] = $perm;
$page['size'] = @filesize(wikiFN($pages[$idx]));
$page['lastModified'] = $this->api->toDate(@filemtime(wikiFN($pages[$idx])));
$list[] = $page;
}
return $list;
}
/**
* List all pages in the given namespace (and below)
*/
function readNamespace($ns,$opts){
global $conf;
if(!is_array($opts)) $opts=array();
$ns = cleanID($ns);
$dir = utf8_encodeFN(str_replace(':', '/', $ns));
$data = array();
$opts['skipacl'] = 0; // no ACL skipping for XMLRPC
search($data, $conf['datadir'], 'search_allpages', $opts, $dir);
return $data;
}
/**
* List all pages in the given namespace (and below)
*/
function search($query){
$regex = '';
$data = ft_pageSearch($query,$regex);
$pages = array();
// prepare additional data
$idx = 0;
foreach($data as $id => $score){
$file = wikiFN($id);
if($idx < FT_SNIPPET_NUMBER){
$snippet = ft_snippet($id,$regex);
$idx++;
}else{
$snippet = '';
}
$pages[] = array(
'id' => $id,
'score' => intval($score),
'rev' => filemtime($file),
'mtime' => filemtime($file),
'size' => filesize($file),
'snippet' => $snippet,
);
}
return $pages;
}
/**
* Returns the wiki title.
*/
function getTitle(){
global $conf;
return $conf['title'];
}
/**
* List all media files.
*
* Available options are 'recursive' for also including the subnamespaces
* in the listing, and 'pattern' for filtering the returned files against
* a regular expression matching their name.
*
* @author Gina Haeussge <osd@foosel.net>
*/
function listAttachments($ns, $options = array()) {
global $conf;
$ns = cleanID($ns);
if (!is_array($options)) $options = array();
$options['skipacl'] = 0; // no ACL skipping for XMLRPC
if(auth_quickaclcheck($ns.':*') >= AUTH_READ) {
$dir = utf8_encodeFN(str_replace(':', '/', $ns));
$data = array();
search($data, $conf['mediadir'], 'search_media', $options, $dir);
$len = count($data);
if(!$len) return array();
for($i=0; $i<$len; $i++) {
unset($data[$i]['meta']);
$data[$i]['lastModified'] = $this->api->toDate($data[$i]['mtime']);
}
return $data;
} else {
throw new RemoteAccessDeniedException('You are not allowed to list media files.', 215);
}
}
/**
* Return a list of backlinks
*/
function listBackLinks($id){
return ft_backlinks(cleanID($id));
}
/**
* Return some basic data about a page
*/
function pageInfo($id,$rev=''){
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_READ){
throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
}
$file = wikiFN($id,$rev);
$time = @filemtime($file);
if(!$time){
throw new RemoteException(10, 'The requested page does not exist', 121);
}
$info = getRevisionInfo($id, $time, 1024);
$data = array(
'name' => $id,
'lastModified' => $this->api->toDate($time),
'author' => (($info['user']) ? $info['user'] : $info['ip']),
'version' => $time
);
return ($data);
}
/**
* Save a wiki page
*
* @author Michael Klier <chi@chimeric.de>
*/
function putPage($id, $text, $params) {
global $TEXT;
global $lang;
$id = cleanID($id);
$TEXT = cleanText($text);
$sum = $params['sum'];
$minor = $params['minor'];
if(empty($id)) {
throw new RemoteException('Empty page ID', 131);
}
if(!page_exists($id) && trim($TEXT) == '' ) {
throw new RemoteException('Refusing to write an empty new wiki page', 132);
}
if(auth_quickaclcheck($id) < AUTH_EDIT) {
throw new RemoteAccessDeniedException('You are not allowed to edit this page', 112);
}
// Check, if page is locked
if(checklock($id)) {
throw new RemoteException('The page is currently locked', 133);
}
// SPAM check
if(checkwordblock()) {
throw new RemoteException('Positive wordblock check', 134);
}
// autoset summary on new pages
if(!page_exists($id) && empty($sum)) {
$sum = $lang['created'];
}
// autoset summary on deleted pages
if(page_exists($id) && empty($TEXT) && empty($sum)) {
$sum = $lang['deleted'];
}
lock($id);
saveWikiText($id,$TEXT,$sum,$minor);
unlock($id);
// run the indexer if page wasn't indexed yet
idx_addPage($id);
return 0;
}
/**
* Appends text to a wiki page.
*/
function appendPage($id, $text, $params) {
$currentpage = $this->rawPage($id);
if (!is_string($currentpage)) {
return $currentpage;
}
return $this->putPage($id, $currentpage.$text, $params);
}
/**
* Uploads a file to the wiki.
*
* Michael Klier <chi@chimeric.de>
*/
function putAttachment($id, $file, $params) {
$id = cleanID($id);
$auth = auth_quickaclcheck(getNS($id).':*');
if(!isset($id)) {
throw new RemoteException('Filename not given.', 231);
}
global $conf;
$ftmp = $conf['tmpdir'] . '/' . md5($id.clientIP());
// save temporary file
@unlink($ftmp);
io_saveFile($ftmp, $file);
$res = media_save(array('name' => $ftmp), $id, $params['ow'], $auth, 'rename');
if (is_array($res)) {
throw new RemoteException($res[0], -$res[1]);
} else {
return $res;
}
}
/**
* Deletes a file from the wiki.
*
* @author Gina Haeussge <osd@foosel.net>
*/
function deleteAttachment($id){
$id = cleanID($id);
$auth = auth_quickaclcheck(getNS($id).':*');
$res = media_delete($id, $auth);
if ($res & DOKU_MEDIA_DELETED) {
return 0;
} elseif ($res & DOKU_MEDIA_NOT_AUTH) {
throw new RemoteAccessDeniedException('You don\'t have permissions to delete files.', 212);
} elseif ($res & DOKU_MEDIA_INUSE) {
throw new RemoteException('File is still referenced', 232);
} else {
throw new RemoteException('Could not delete file', 233);
}
}
/**
* Returns the permissions of a given wiki page
*/
function aclCheck($id) {
$id = cleanID($id);
return auth_quickaclcheck($id);
}
/**
* Lists all links contained in a wiki page
*
* @author Michael Klier <chi@chimeric.de>
*/
function listLinks($id) {
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_READ){
throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
}
$links = array();
// resolve page instructions
$ins = p_cached_instructions(wikiFN($id));
// instantiate new Renderer - needed for interwiki links
include(DOKU_INC.'inc/parser/xhtml.php');
$Renderer = new Doku_Renderer_xhtml();
$Renderer->interwiki = getInterwiki();
// parse parse instructions
foreach($ins as $in) {
$link = array();
switch($in[0]) {
case 'internallink':
$link['type'] = 'local';
$link['page'] = $in[1][0];
$link['href'] = wl($in[1][0]);
array_push($links,$link);
break;
case 'externallink':
$link['type'] = 'extern';
$link['page'] = $in[1][0];
$link['href'] = $in[1][0];
array_push($links,$link);
break;
case 'interwikilink':
$url = $Renderer->_resolveInterWiki($in[1][2],$in[1][3]);
$link['type'] = 'extern';
$link['page'] = $url;
$link['href'] = $url;
array_push($links,$link);
break;
}
}
return ($links);
}
/**
* Returns a list of recent changes since give timestamp
*
* @author Michael Hamann <michael@content-space.de>
* @author Michael Klier <chi@chimeric.de>
*/
function getRecentChanges($timestamp) {
if(strlen($timestamp) != 10) {
throw new RemoteException('The provided value is not a valid timestamp', 311);
}
$recents = getRecentsSince($timestamp);
$changes = array();
foreach ($recents as $recent) {
$change = array();
$change['name'] = $recent['id'];
$change['lastModified'] = $this->api->toDate($recent['date']);
$change['author'] = $recent['user'];
$change['version'] = $recent['date'];
$change['perms'] = $recent['perms'];
$change['size'] = @filesize(wikiFN($recent['id']));
array_push($changes, $change);
}
if (!empty($changes)) {
return $changes;
} else {
// in case we still have nothing at this point
return new RemoteException('There are no changes in the specified timeframe', 321);
}
}
/**
* Returns a list of recent media changes since give timestamp
*
* @author Michael Hamann <michael@content-space.de>
* @author Michael Klier <chi@chimeric.de>
*/
function getRecentMediaChanges($timestamp) {
if(strlen($timestamp) != 10)
throw new RemoteException('The provided value is not a valid timestamp', 311);
$recents = getRecentsSince($timestamp, null, '', RECENTS_MEDIA_CHANGES);
$changes = array();
foreach ($recents as $recent) {
$change = array();
$change['name'] = $recent['id'];
$change['lastModified'] = $this->api->toDate($recent['date']);
$change['author'] = $recent['user'];
$change['version'] = $recent['date'];
$change['perms'] = $recent['perms'];
$change['size'] = @filesize(mediaFN($recent['id']));
array_push($changes, $change);
}
if (!empty($changes)) {
return $changes;
} else {
// in case we still have nothing at this point
throw new RemoteException('There are no changes in the specified timeframe', 321);
}
}
/**
* Returns a list of available revisions of a given wiki page
*
* @author Michael Klier <chi@chimeric.de>
*/
function pageVersions($id, $first) {
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_READ) {
throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
}
global $conf;
$versions = array();
if(empty($id)) {
throw new RemoteException('Empty page ID', 131);
}
$revisions = getRevisions($id, $first, $conf['recent']+1);
if(count($revisions)==0 && $first!=0) {
$first=0;
$revisions = getRevisions($id, $first, $conf['recent']+1);
}
if(count($revisions)>0 && $first==0) {
array_unshift($revisions, ''); // include current revision
array_pop($revisions); // remove extra log entry
}
if(count($revisions) > $conf['recent']) {
array_pop($revisions); // remove extra log entry
}
if(!empty($revisions)) {
foreach($revisions as $rev) {
$file = wikiFN($id,$rev);
$time = @filemtime($file);
// we check if the page actually exists, if this is not the
// case this can lead to less pages being returned than
// specified via $conf['recent']
if($time){
$info = getRevisionInfo($id, $time, 1024);
if(!empty($info)) {
$data['user'] = $info['user'];
$data['ip'] = $info['ip'];
$data['type'] = $info['type'];
$data['sum'] = $info['sum'];
$data['modified'] = $this->api->toDate($info['date']);
$data['version'] = $info['date'];
array_push($versions, $data);
}
}
}
return $versions;
} else {
return array();
}
}
/**
* The version of Wiki RPC API supported
*/
function wiki_RPCVersion(){
return 2;
}
/**
* Locks or unlocks a given batch of pages
*
* Give an associative array with two keys: lock and unlock. Both should contain a
* list of pages to lock or unlock
*
* Returns an associative array with the keys locked, lockfail, unlocked and
* unlockfail, each containing lists of pages.
*/
function setLocks($set){
$locked = array();
$lockfail = array();
$unlocked = array();
$unlockfail = array();
foreach((array) $set['lock'] as $id){
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_EDIT || checklock($id)){
$lockfail[] = $id;
}else{
lock($id);
$locked[] = $id;
}
}
foreach((array) $set['unlock'] as $id){
$id = cleanID($id);
if(auth_quickaclcheck($id) < AUTH_EDIT || !unlock($id)){
$unlockfail[] = $id;
}else{
$unlocked[] = $id;
}
}
return array(
'locked' => $locked,
'lockfail' => $lockfail,
'unlocked' => $unlocked,
'unlockfail' => $unlockfail,
);
}
function getAPIVersion(){
return DOKU_API_VERSION;
}
function login($user,$pass){
global $conf;
global $auth;
if(!$conf['useacl']) return 0;
if(!$auth) return 0;
@session_start(); // reopen session for login
if($auth->canDo('external')){
$ok = $auth->trustExternal($user,$pass,false);
}else{
$evdata = array(
'user' => $user,
'password' => $pass,
'sticky' => false,
'silent' => true,
);
$ok = trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper');
}
session_write_close(); // we're done with the session
return $ok;
}
}

View File

@ -1,17 +1,17 @@
<?php
/**
* Class to safely store UTF-8 in a Filename
* Class to safely store UTF-8 in a Filename
*
* Encodes a utf8 string using only the following characters 0-9a-z_.-%
* characters 0-9a-z in the original string are preserved, "plain".
* all other characters are represented in a substring that starts
* with '%' are "converted".
* The transition from converted substrings to plain characters is
* marked with a '.'
* Encodes a utf8 string using only the following characters 0-9a-z_.-%
* characters 0-9a-z in the original string are preserved, "plain".
* all other characters are represented in a substring that starts
* with '%' are "converted".
* The transition from converted substrings to plain characters is
* marked with a '.'
*
* @author Christopher Smith
* @date 2010-04-02
* @author Christopher Smith <chris@jalakai.co.uk>
* @date 2010-04-02
*/
class SafeFN {
@ -133,14 +133,15 @@ class SafeFN {
$converted = false;
foreach ($split as $sub) {
$len = strlen($sub);
if ($sub[0] != self::$pre_indicator) {
// plain (unconverted) characters, optionally starting with a post_indicator
// set initial value to skip any post_indicator
for ($i=($converted?1:0); $i < strlen($sub); $i++) {
for ($i=($converted?1:0); $i < $len; $i++) {
$unicode[] = ord($sub[$i]);
}
$converted = false;
} else if (strlen($sub)==1) {
} else if ($len==1) {
// a pre_indicator character in the real data
$unicode[] = ord($sub);
$converted = true;

View File

@ -10,7 +10,7 @@ if(!defined('DOKU_INC')) die('meh.');
/**
* A class for building sitemaps and pinging search engines with the sitemap URL.
*
*
* @author Michael Hamann
*/
class Sitemapper {
@ -25,7 +25,7 @@ class Sitemapper {
* @link https://www.google.com/webmasters/sitemaps/docs/en/about.html
* @link http://www.sitemaps.org/
*/
public function generate(){
public static function generate(){
global $conf;
if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) return false;
@ -39,11 +39,11 @@ class Sitemapper {
if(@filesize($sitemap) &&
@filemtime($sitemap) > (time()-($conf['sitemap']*86400))){ // 60*60*24=86400
dbglog('Sitemapper::generate(): Sitemap up to date'); // FIXME: only in debug mode
dbglog('Sitemapper::generate(): Sitemap up to date');
return false;
}
dbglog("Sitemapper::generate(): using $sitemap"); // FIXME: Only in debug mode
dbglog("Sitemapper::generate(): using $sitemap");
$pages = idx_get_indexer()->getPages();
dbglog('Sitemapper::generate(): creating sitemap using '.count($pages).' pages');
@ -55,7 +55,7 @@ class Sitemapper {
if(isHiddenPage($id)) continue;
if(auth_aclcheck($id,'','') < AUTH_READ) continue;
$item = SitemapItem::createFromID($id);
if ($item !== NULL)
if ($item !== null)
$items[] = $item;
}
@ -72,12 +72,12 @@ class Sitemapper {
/**
* Builds the sitemap XML string from the given array auf SitemapItems.
*
*
* @param $items array The SitemapItems that shall be included in the sitemap.
* @return string The sitemap XML.
* @author Michael Hamann
*/
private function getXML($items) {
private static function getXML($items) {
ob_start();
echo '<?xml version="1.0" encoding="UTF-8"?>'.NL;
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.NL;
@ -92,11 +92,11 @@ class Sitemapper {
/**
* Helper function for getting the path to the sitemap file.
*
*
* @return The path to the sitemap file.
* @author Michael Hamann
*/
public function getFilePath() {
public static function getFilePath() {
global $conf;
$sitemap = $conf['cachedir'].'/sitemap.xml';
@ -108,12 +108,12 @@ class Sitemapper {
}
/**
* Pings search engines with the sitemap url. Plugins can add or remove
* Pings search engines with the sitemap url. Plugins can add or remove
* urls to ping using the SITEMAP_PING event.
*
*
* @author Michael Hamann
*/
public function pingSearchEngines() {
public static function pingSearchEngines() {
//ping search engines...
$http = new DokuHTTPClient();
$http->timeout = 8;
@ -145,7 +145,7 @@ class Sitemapper {
/**
* An item of a sitemap.
*
*
* @author Michael Hamann
*/
class SitemapItem {
@ -156,7 +156,7 @@ class SitemapItem {
/**
* Create a new item.
*
*
* @param $url string The url of the item
* @param $lastmod int Timestamp of the last modification
* @param $changefreq string How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never.
@ -171,7 +171,7 @@ class SitemapItem {
/**
* Helper function for creating an item for a wikipage id.
*
*
* @param $id string A wikipage id.
* @param $changefreq string How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never.
* @param $priority float|string The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0.
@ -180,22 +180,22 @@ class SitemapItem {
public static function createFromID($id, $changefreq = null, $priority = null) {
$id = trim($id);
$date = @filemtime(wikiFN($id));
if(!$date) return NULL;
if(!$date) return null;
return new SitemapItem(wl($id, '', true), $date, $changefreq, $priority);
}
/**
* Get the XML representation of the sitemap item.
*
*
* @return The XML representation.
*/
public function toXML() {
$result = ' <url>'.NL
.' <loc>'.hsc($this->url).'</loc>'.NL
.' <lastmod>'.date_iso8601($this->lastmod).'</lastmod>'.NL;
if ($this->changefreq !== NULL)
if ($this->changefreq !== null)
$result .= ' <changefreq>'.hsc($this->changefreq).'</changefreq>'.NL;
if ($this->priority !== NULL)
if ($this->priority !== null)
$result .= ' <priority>'.hsc($this->priority).'</priority>'.NL;
$result .= ' </url>'.NL;
return $result;

View File

@ -108,7 +108,7 @@ class TarLib {
* represent the GZIP or BZIP compression level. 1 produce fast compression,
* and 9 produce smaller files. See the RFC 1952 for more infos.
*/
function tarlib($p_filen = TarLib::ARCHIVE_DYNAMIC , $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) {
function __construct($p_filen = TarLib::ARCHIVE_DYNAMIC , $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) {
$this->_initerror = 0;
$this->_nomf = $p_filen;
$flag=0;
@ -127,7 +127,7 @@ class TarLib {
}
switch($p_comptype) {
case TarLib::COMPRESS_GZIP:
case TarLib::COMPRESS_GZIP:
if(!extension_loaded('zlib')) $this->_initerror = -1;
$this->_comptype = TarLib::COMPRESS_GZIP;
break;

View File

@ -1020,6 +1020,26 @@ class adLDAP {
return (false);
}
/**
* Return info about the domain itself
*
* @authot Andreas Gohr <gohr@cosmocode.de>
* @param array $fields The fields to query
* @return array
*/
public function domain_info($fields){
if (!$this->_bind){ return (false); }
$sr = ldap_read($this->_conn, $this->_base_dn, 'objectclass=*', $fields);
if (!$sr) {
return false;
}
$info = ldap_get_entries($this->_conn, $sr);
if(count($info)) return $info[0];
return false;
}
/**
* Determine a user's password expiry date
*

View File

@ -422,7 +422,7 @@ function auth_isadmin($user=null,$groups=null){
* @param $memberlist string commaseparated list of allowed users and groups
* @param $user string user to match against
* @param $groups array groups the user is member of
* @returns bool true for membership acknowledged
* @return bool true for membership acknowledged
*/
function auth_isMember($memberlist,$user,array $groups){
global $auth;
@ -523,18 +523,19 @@ function auth_aclcheck($id,$user,$groups){
$groups[] = '@ALL';
//add User
if($user) $groups[] = $user;
//build regexp
$regexp = join('|',$groups);
}else{
$regexp = '@ALL';
$groups[] = '@ALL';
}
//check exact match first
$matches = preg_grep('/^'.preg_quote($id,'/').'\s+('.$regexp.')\s+/'.$ci,$AUTH_ACL);
$matches = preg_grep('/^'.preg_quote($id,'/').'\s+(\S+)\s+/'.$ci,$AUTH_ACL);
if(count($matches)){
foreach($matches as $match){
$match = preg_replace('/#.*$/','',$match); //ignore comments
$acl = preg_split('/\s+/',$match);
if (!in_array($acl[1], $groups)) {
continue;
}
if($acl[2] > AUTH_DELETE) $acl[2] = AUTH_DELETE; //no admins in the ACL!
if($acl[2] > $perm){
$perm = $acl[2];
@ -554,20 +555,24 @@ function auth_aclcheck($id,$user,$groups){
}
do{
$matches = preg_grep('/^'.preg_quote($path,'/').'\s+('.$regexp.')\s+/'.$ci,$AUTH_ACL);
$matches = preg_grep('/^'.preg_quote($path,'/').'\s+(\S+)\s+/'.$ci,$AUTH_ACL);
if(count($matches)){
foreach($matches as $match){
$match = preg_replace('/#.*$/','',$match); //ignore comments
$acl = preg_split('/\s+/',$match);
if (!in_array($acl[1], $groups)) {
continue;
}
if($acl[2] > AUTH_DELETE) $acl[2] = AUTH_DELETE; //no admins in the ACL!
if($acl[2] > $perm){
$perm = $acl[2];
}
}
//we had a match - return it
return $perm;
if ($perm != -1) {
return $perm;
}
}
//get next higher namespace
$ns = getNS($ns);
@ -582,9 +587,6 @@ function auth_aclcheck($id,$user,$groups){
return AUTH_NONE;
}
}while(1); //this should never loop endless
//still here? return no permissions
return AUTH_NONE;
}
/**
@ -853,32 +855,59 @@ function act_resendpwd(){
$token = preg_replace('/[^a-f0-9]+/','',$_REQUEST['pwauth']);
if($token){
// we're in token phase
// we're in token phase - get user info from token
$tfile = $conf['cachedir'].'/'.$token{0}.'/'.$token.'.pwauth';
if(!@file_exists($tfile)){
msg($lang['resendpwdbadauth'],-1);
unset($_REQUEST['pwauth']);
return false;
}
// token is only valid for 3 days
if( (time() - filemtime($tfile)) > (3*60*60*24) ){
msg($lang['resendpwdbadauth'],-1);
unset($_REQUEST['pwauth']);
@unlink($tfile);
return false;
}
$user = io_readfile($tfile);
@unlink($tfile);
$userinfo = $auth->getUserData($user);
if(!$userinfo['mail']) {
msg($lang['resendpwdnouser'], -1);
return false;
}
$pass = auth_pwgen();
if (!$auth->triggerUserMod('modify', array($user,array('pass' => $pass)))) {
msg('error modifying user data',-1);
return false;
if(!$conf['autopasswd']){ // we let the user choose a password
// password given correctly?
if(!isset($_REQUEST['pass']) || $_REQUEST['pass'] == '') return false;
if($_REQUEST['pass'] != $_REQUEST['passchk']){
msg($lang['regbadpass'],-1);
return false;
}
$pass = $_REQUEST['pass'];
if (!$auth->triggerUserMod('modify', array($user,array('pass' => $pass)))) {
msg('error modifying user data',-1);
return false;
}
}else{ // autogenerate the password and send by mail
$pass = auth_pwgen();
if (!$auth->triggerUserMod('modify', array($user,array('pass' => $pass)))) {
msg('error modifying user data',-1);
return false;
}
if (auth_sendPassword($user,$pass)) {
msg($lang['resendpwdsuccess'],1);
} else {
msg($lang['regmailfail'],-1);
}
}
if (auth_sendPassword($user,$pass)) {
msg($lang['resendpwdsuccess'],1);
} else {
msg($lang['regmailfail'],-1);
}
@unlink($tfile);
return true;
} else {

View File

@ -26,15 +26,17 @@
* $conf['auth']['ad']['use_ssl'] = 1;
* $conf['auth']['ad']['use_tls'] = 1;
* $conf['auth']['ad']['debug'] = 1;
* // warn user about expiring password this many days in advance:
* $conf['auth']['ad']['expirywarn'] = 5;
*
* // get additional information to the userinfo array
* // add a list of comma separated ldap contact fields.
* $conf['auth']['ad']['additional'] = 'field1,field2';
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author James Van Lommel <jamesvl@gmail.com>
* @link http://www.nosq.com/blog/2005/08/ldap-activedirectory-and-dokuwiki/
* @author Andreas Gohr <andi@splitbrain.org>
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author James Van Lommel <jamesvl@gmail.com>
* @link http://www.nosq.com/blog/2005/08/ldap-activedirectory-and-dokuwiki/
* @author Andreas Gohr <andi@splitbrain.org>
*/
require_once(DOKU_INC.'inc/adLDAP.php');
@ -44,15 +46,15 @@ class auth_ad extends auth_basic {
var $opts = null;
var $adldap = null;
var $users = null;
var $msgshown = false;
/**
* Constructor
*/
function auth_ad() {
function __construct() {
global $conf;
$this->cnf = $conf['auth']['ad'];
// additional information fields
if (isset($this->cnf['additional'])) {
$this->cnf['additional'] = str_replace(' ', '', $this->cnf['additional']);
@ -69,21 +71,21 @@ class auth_ad extends auth_basic {
// Prepare SSO
if($_SERVER['REMOTE_USER'] && $this->cnf['sso']){
// remove possible NTLM domain
list($dom,$usr) = explode('\\',$_SERVER['REMOTE_USER'],2);
if(!$usr) $usr = $dom;
// remove possible NTLM domain
list($dom,$usr) = explode('\\',$_SERVER['REMOTE_USER'],2);
if(!$usr) $usr = $dom;
// remove possible Kerberos domain
list($usr,$dom) = explode('@',$usr);
// remove possible Kerberos domain
list($usr,$dom) = explode('@',$usr);
$dom = strtolower($dom);
$_SERVER['REMOTE_USER'] = $usr;
$dom = strtolower($dom);
$_SERVER['REMOTE_USER'] = $usr;
// we need to simulate a login
if(empty($_COOKIE[DOKU_COOKIE])){
$_REQUEST['u'] = $_SERVER['REMOTE_USER'];
$_REQUEST['p'] = 'sso_only';
}
// we need to simulate a login
if(empty($_COOKIE[DOKU_COOKIE])){
$_REQUEST['u'] = $_SERVER['REMOTE_USER'];
$_REQUEST['p'] = 'sso_only';
}
}
// prepare adLDAP standard configuration
@ -144,11 +146,15 @@ class auth_ad extends auth_basic {
*
* @author James Van Lommel <james@nosq.com>
*/
function getUserData($user){
function getUserData($user){
global $conf;
global $lang;
global $ID;
if(!$this->_init()) return false;
$fields = array('mail','displayname','samaccountname');
if($user == '') return array();
$fields = array('mail','displayname','samaccountname','lastpwd','pwdlastset','useraccountcontrol');
// add additional fields to read
$fields = array_merge($fields, $this->cnf['additional']);
@ -156,11 +162,19 @@ class auth_ad extends auth_basic {
//get info for given user
$result = $this->adldap->user_info($user, $fields);
if($result == false){
return array();
}
//general user info
$info['name'] = $result[0]['displayname'][0];
$info['mail'] = $result[0]['mail'][0];
$info['uid'] = $result[0]['samaccountname'][0];
$info['dn'] = $result[0]['dn'];
$info['name'] = $result[0]['displayname'][0];
$info['mail'] = $result[0]['mail'][0];
$info['uid'] = $result[0]['samaccountname'][0];
$info['dn'] = $result[0]['dn'];
//last password set (Windows counts from January 1st 1601)
$info['lastpwd'] = $result[0]['pwdlastset'][0] / 10000000 - 11644473600;
//will it expire?
$info['expires'] = !($result[0]['useraccountcontrol'][0] & 0x10000); //ADS_UF_DONT_EXPIRE_PASSWD
// additional information
foreach ($this->cnf['additional'] as $field) {
@ -183,6 +197,29 @@ class auth_ad extends auth_basic {
$info['grps'][] = $conf['defaultgroup'];
}
// check expiry time
if($info['expires'] && $this->cnf['expirywarn']){
$result = $this->adldap->domain_info(array('maxpwdage')); // maximum pass age
$maxage = -1 * $result['maxpwdage'][0] / 10000000; // negative 100 nanosecs
$timeleft = $maxage - (time() - $info['lastpwd']);
$timeleft = round($timeleft/(24*60*60));
$info['expiresin'] = $timeleft;
// if this is the current user, warn him (once per request only)
if( ($_SERVER['REMOTE_USER'] == $user) &&
($timeleft <= $this->cnf['expirywarn']) &&
!$this->msgshown
){
$msg = sprintf($lang['authpwdexpire'],$timeleft);
if($this->canDo('modPass')){
$url = wl($ID,array('do'=>'profile'));
$msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>';
}
msg($msg);
$this->msgshown = true;
}
}
return $info;
}
@ -259,7 +296,7 @@ class auth_ad extends auth_basic {
* @param $user nick of the user to be changed
* @param $changes array of field/value pairs to be changed
* @return bool
*/
*/
function modifyUser($user, $changes) {
$return = true;
@ -342,7 +379,6 @@ class auth_ad extends auth_basic {
function _constructPattern($filter) {
$this->_pattern = array();
foreach ($filter as $item => $pattern) {
// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters
$this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters
}
}

View File

@ -9,395 +9,393 @@
*/
class auth_basic {
var $success = true;
var $success = true;
/**
* Posible things an auth backend module may be able to
* do. The things a backend can do need to be set to true
* in the constructor.
*/
var $cando = array (
'addUser' => false, // can Users be created?
'delUser' => false, // can Users be deleted?
'modLogin' => false, // can login names be changed?
'modPass' => false, // can passwords be changed?
'modName' => false, // can real names be changed?
'modMail' => false, // can emails be changed?
'modGroups' => false, // can groups be changed?
'getUsers' => false, // can a (filtered) list of users be retrieved?
'getUserCount'=> false, // can the number of users be retrieved?
'getGroups' => false, // can a list of available groups be retrieved?
'external' => false, // does the module do external auth checking?
'logout' => true, // can the user logout again? (eg. not possible with HTTP auth)
);
/**
* Constructor.
*
* Carry out sanity checks to ensure the object is
* able to operate. Set capabilities in $this->cando
* array here
*
* Set $this->success to false if checks fail
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
function auth_basic() {
// the base class constructor does nothing, derived class
// constructors do the real work
}
/**
* Capability check. [ DO NOT OVERRIDE ]
*
* Checks the capabilities set in the $this->cando array and
* some pseudo capabilities (shortcutting access to multiple
* ones)
*
* ususal capabilities start with lowercase letter
* shortcut capabilities start with uppercase letter
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function canDo($cap) {
switch($cap){
case 'Profile':
// can at least one of the user's properties be changed?
return ( $this->cando['modPass'] ||
$this->cando['modName'] ||
$this->cando['modMail'] );
break;
case 'UserMod':
// can at least anything be changed?
return ( $this->cando['modPass'] ||
$this->cando['modName'] ||
$this->cando['modMail'] ||
$this->cando['modLogin'] ||
$this->cando['modGroups'] ||
$this->cando['modMail'] );
break;
default:
// print a helping message for developers
if(!isset($this->cando[$cap])){
msg("Check for unknown capability '$cap' - Do you use an outdated Plugin?",-1);
}
return $this->cando[$cap];
}
}
/**
* Trigger the AUTH_USERDATA_CHANGE event and call the modification function. [ DO NOT OVERRIDE ]
*
* You should use this function instead of calling createUser, modifyUser or
* deleteUsers directly. The event handlers can prevent the modification, for
* example for enforcing a user name schema.
*
* @author Gabriel Birke <birke@d-scribe.de>
* @param string $type Modification type ('create', 'modify', 'delete')
* @param array $params Parameters for the createUser, modifyUser or deleteUsers method. The content of this array depends on the modification type
* @return mixed Result from the modification function or false if an event handler has canceled the action
*/
function triggerUserMod($type, $params)
{
$validTypes = array(
'create' => 'createUser',
'modify' => 'modifyUser',
'delete' => 'deleteUsers'
/**
* Posible things an auth backend module may be able to
* do. The things a backend can do need to be set to true
* in the constructor.
*/
var $cando = array (
'addUser' => false, // can Users be created?
'delUser' => false, // can Users be deleted?
'modLogin' => false, // can login names be changed?
'modPass' => false, // can passwords be changed?
'modName' => false, // can real names be changed?
'modMail' => false, // can emails be changed?
'modGroups' => false, // can groups be changed?
'getUsers' => false, // can a (filtered) list of users be retrieved?
'getUserCount'=> false, // can the number of users be retrieved?
'getGroups' => false, // can a list of available groups be retrieved?
'external' => false, // does the module do external auth checking?
'logout' => true, // can the user logout again? (eg. not possible with HTTP auth)
);
if(empty($validTypes[$type]))
return false;
$eventdata = array('type' => $type, 'params' => $params, 'modification_result' => null);
$evt = new Doku_Event('AUTH_USER_CHANGE', $eventdata);
if ($evt->advise_before(true)) {
$result = call_user_func_array(array($this, $validTypes[$type]), $params);
$evt->data['modification_result'] = $result;
/**
* Constructor.
*
* Carry out sanity checks to ensure the object is
* able to operate. Set capabilities in $this->cando
* array here
*
* Set $this->success to false if checks fail
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
function __construct() {
// the base class constructor does nothing, derived class
// constructors do the real work
}
$evt->advise_after();
unset($evt);
return $result;
}
/**
* Log off the current user [ OPTIONAL ]
*
* Is run in addition to the ususal logoff method. Should
* only be needed when trustExternal is implemented.
*
* @see auth_logoff()
* @author Andreas Gohr <andi@splitbrain.org>
*/
function logOff(){
}
/**
* Capability check. [ DO NOT OVERRIDE ]
*
* Checks the capabilities set in the $this->cando array and
* some pseudo capabilities (shortcutting access to multiple
* ones)
*
* ususal capabilities start with lowercase letter
* shortcut capabilities start with uppercase letter
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function canDo($cap) {
switch($cap){
case 'Profile':
// can at least one of the user's properties be changed?
return ( $this->cando['modPass'] ||
$this->cando['modName'] ||
$this->cando['modMail'] );
break;
case 'UserMod':
// can at least anything be changed?
return ( $this->cando['modPass'] ||
$this->cando['modName'] ||
$this->cando['modMail'] ||
$this->cando['modLogin'] ||
$this->cando['modGroups'] ||
$this->cando['modMail'] );
break;
default:
// print a helping message for developers
if(!isset($this->cando[$cap])){
msg("Check for unknown capability '$cap' - Do you use an outdated Plugin?",-1);
}
return $this->cando[$cap];
}
}
/**
* Do all authentication [ OPTIONAL ]
*
* Set $this->cando['external'] = true when implemented
*
* If this function is implemented it will be used to
* authenticate a user - all other DokuWiki internals
* will not be used for authenticating, thus
* implementing the checkPass() function is not needed
* anymore.
*
* The function can be used to authenticate against third
* party cookies or Apache auth mechanisms and replaces
* the auth_login() function
*
* The function will be called with or without a set
* username. If the Username is given it was called
* from the login form and the given credentials might
* need to be checked. If no username was given it
* the function needs to check if the user is logged in
* by other means (cookie, environment).
*
* The function needs to set some globals needed by
* DokuWiki like auth_login() does.
*
* @see auth_login()
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $user Username
* @param string $pass Cleartext Password
* @param bool $sticky Cookie should not expire
* @return bool true on successful auth
*/
function trustExternal($user,$pass,$sticky=false){
# // some example:
#
# global $USERINFO;
# global $conf;
# $sticky ? $sticky = true : $sticky = false; //sanity check
#
# // do the checking here
#
# // set the globals if authed
# $USERINFO['name'] = 'FIXME';
# $USERINFO['mail'] = 'FIXME';
# $USERINFO['grps'] = array('FIXME');
# $_SERVER['REMOTE_USER'] = $user;
# $_SESSION[DOKU_COOKIE]['auth']['user'] = $user;
# $_SESSION[DOKU_COOKIE]['auth']['pass'] = $pass;
# $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO;
# return true;
}
/**
* Trigger the AUTH_USERDATA_CHANGE event and call the modification function. [ DO NOT OVERRIDE ]
*
* You should use this function instead of calling createUser, modifyUser or
* deleteUsers directly. The event handlers can prevent the modification, for
* example for enforcing a user name schema.
*
* @author Gabriel Birke <birke@d-scribe.de>
* @param string $type Modification type ('create', 'modify', 'delete')
* @param array $params Parameters for the createUser, modifyUser or deleteUsers method. The content of this array depends on the modification type
* @return mixed Result from the modification function or false if an event handler has canceled the action
*/
function triggerUserMod($type, $params) {
$validTypes = array(
'create' => 'createUser',
'modify' => 'modifyUser',
'delete' => 'deleteUsers'
);
if(empty($validTypes[$type]))
return false;
$eventdata = array('type' => $type, 'params' => $params, 'modification_result' => null);
$evt = new Doku_Event('AUTH_USER_CHANGE', $eventdata);
if ($evt->advise_before(true)) {
$result = call_user_func_array(array($this, $validTypes[$type]), $params);
$evt->data['modification_result'] = $result;
}
$evt->advise_after();
unset($evt);
return $result;
}
/**
* Check user+password [ MUST BE OVERRIDDEN ]
*
* Checks if the given user exists and the given
* plaintext password is correct
*
* May be ommited if trustExternal is used.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function checkPass($user,$pass){
msg("no valid authorisation system in use", -1);
return false;
}
/**
* Log off the current user [ OPTIONAL ]
*
* Is run in addition to the ususal logoff method. Should
* only be needed when trustExternal is implemented.
*
* @see auth_logoff()
* @author Andreas Gohr <andi@splitbrain.org>
*/
function logOff(){
}
/**
* Return user info [ MUST BE OVERRIDDEN ]
*
* Returns info about the given user needs to contain
* at least these fields:
*
* name string full name of the user
* mail string email addres of the user
* grps array list of groups the user is in
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return array containing user data or false
*/
function getUserData($user) {
if(!$this->cando['external']) msg("no valid authorisation system in use", -1);
return false;
}
/**
* Do all authentication [ OPTIONAL ]
*
* Set $this->cando['external'] = true when implemented
*
* If this function is implemented it will be used to
* authenticate a user - all other DokuWiki internals
* will not be used for authenticating, thus
* implementing the checkPass() function is not needed
* anymore.
*
* The function can be used to authenticate against third
* party cookies or Apache auth mechanisms and replaces
* the auth_login() function
*
* The function will be called with or without a set
* username. If the Username is given it was called
* from the login form and the given credentials might
* need to be checked. If no username was given it
* the function needs to check if the user is logged in
* by other means (cookie, environment).
*
* The function needs to set some globals needed by
* DokuWiki like auth_login() does.
*
* @see auth_login()
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $user Username
* @param string $pass Cleartext Password
* @param bool $sticky Cookie should not expire
* @return bool true on successful auth
*/
function trustExternal($user,$pass,$sticky=false){
/* some example:
/**
* Create a new User [implement only where required/possible]
*
* Returns false if the user already exists, null when an error
* occurred and true if everything went well.
*
* The new user HAS TO be added to the default group by this
* function!
*
* Set addUser capability when implemented
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
function createUser($user,$pass,$name,$mail,$grps=null){
msg("authorisation method does not allow creation of new users", -1);
return null;
}
global $USERINFO;
global $conf;
$sticky ? $sticky = true : $sticky = false; //sanity check
/**
* Modify user data [implement only where required/possible]
*
* Set the mod* capabilities according to the implemented features
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param $user nick of the user to be changed
* @param $changes array of field/value pairs to be changed (password will be clear text)
* @return bool
*/
function modifyUser($user, $changes) {
msg("authorisation method does not allow modifying of user data", -1);
return false;
}
// do the checking here
/**
* Delete one or more users [implement only where required/possible]
*
* Set delUser capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param array $users
* @return int number of users deleted
*/
function deleteUsers($users) {
msg("authorisation method does not allow deleting of users", -1);
return false;
}
// set the globals if authed
$USERINFO['name'] = 'FIXME';
$USERINFO['mail'] = 'FIXME';
$USERINFO['grps'] = array('FIXME');
$_SERVER['REMOTE_USER'] = $user;
$_SESSION[DOKU_COOKIE]['auth']['user'] = $user;
$_SESSION[DOKU_COOKIE]['auth']['pass'] = $pass;
$_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO;
return true;
/**
* Return a count of the number of user which meet $filter criteria
* [should be implemented whenever retrieveUsers is implemented]
*
* Set getUserCount capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
*/
function getUserCount($filter=array()) {
msg("authorisation method does not provide user counts", -1);
return 0;
}
*/
}
/**
* Bulk retrieval of user data [implement only where required/possible]
*
* Set getUsers capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param start index of first user to be returned
* @param limit max number of users to be returned
* @param filter array of field/pattern pairs, null for no filter
* @return array of userinfo (refer getUserData for internal userinfo details)
*/
function retrieveUsers($start=0,$limit=-1,$filter=null) {
msg("authorisation method does not support mass retrieval of user data", -1);
return array();
}
/**
* Check user+password [ MUST BE OVERRIDDEN ]
*
* Checks if the given user exists and the given
* plaintext password is correct
*
* May be ommited if trustExternal is used.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function checkPass($user,$pass){
msg("no valid authorisation system in use", -1);
return false;
}
/**
* Define a group [implement only where required/possible]
*
* Set addGroup capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @return bool
*/
function addGroup($group) {
msg("authorisation method does not support independent group creation", -1);
return false;
}
/**
* Return user info [ MUST BE OVERRIDDEN ]
*
* Returns info about the given user needs to contain
* at least these fields:
*
* name string full name of the user
* mail string email addres of the user
* grps array list of groups the user is in
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return array containing user data or false
*/
function getUserData($user) {
if(!$this->cando['external']) msg("no valid authorisation system in use", -1);
return false;
}
/**
* Retrieve groups [implement only where required/possible]
*
* Set getGroups capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @return array
*/
function retrieveGroups($start=0,$limit=0) {
msg("authorisation method does not support group list retrieval", -1);
return array();
}
/**
* Create a new User [implement only where required/possible]
*
* Returns false if the user already exists, null when an error
* occurred and true if everything went well.
*
* The new user HAS TO be added to the default group by this
* function!
*
* Set addUser capability when implemented
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
function createUser($user,$pass,$name,$mail,$grps=null){
msg("authorisation method does not allow creation of new users", -1);
return null;
}
/**
* Return case sensitivity of the backend [OPTIONAL]
*
* When your backend is caseinsensitive (eg. you can login with USER and
* user) then you need to overwrite this method and return false
*/
function isCaseSensitive(){
return true;
}
/**
* Modify user data [implement only where required/possible]
*
* Set the mod* capabilities according to the implemented features
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param $user nick of the user to be changed
* @param $changes array of field/value pairs to be changed (password will be clear text)
* @return bool
*/
function modifyUser($user, $changes) {
msg("authorisation method does not allow modifying of user data", -1);
return false;
}
/**
* Sanitize a given username [OPTIONAL]
*
* This function is applied to any user name that is given to
* the backend and should also be applied to any user name within
* the backend before returning it somewhere.
*
* This should be used to enforce username restrictions.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $user - username
* @param string - the cleaned username
*/
function cleanUser($user){
return $user;
}
/**
* Delete one or more users [implement only where required/possible]
*
* Set delUser capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param array $users
* @return int number of users deleted
*/
function deleteUsers($users) {
msg("authorisation method does not allow deleting of users", -1);
return false;
}
/**
* Sanitize a given groupname [OPTIONAL]
*
* This function is applied to any groupname that is given to
* the backend and should also be applied to any groupname within
* the backend before returning it somewhere.
*
* This should be used to enforce groupname restrictions.
*
* Groupnames are to be passed without a leading '@' here.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $group - groupname
* @param string - the cleaned groupname
*/
function cleanGroup($group){
return $group;
}
/**
* Return a count of the number of user which meet $filter criteria
* [should be implemented whenever retrieveUsers is implemented]
*
* Set getUserCount capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
*/
function getUserCount($filter=array()) {
msg("authorisation method does not provide user counts", -1);
return 0;
}
/**
* Bulk retrieval of user data [implement only where required/possible]
*
* Set getUsers capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @param start index of first user to be returned
* @param limit max number of users to be returned
* @param filter array of field/pattern pairs, null for no filter
* @return array of userinfo (refer getUserData for internal userinfo details)
*/
function retrieveUsers($start=0,$limit=-1,$filter=null) {
msg("authorisation method does not support mass retrieval of user data", -1);
return array();
}
/**
* Define a group [implement only where required/possible]
*
* Set addGroup capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @return bool
*/
function addGroup($group) {
msg("authorisation method does not support independent group creation", -1);
return false;
}
/**
* Retrieve groups [implement only where required/possible]
*
* Set getGroups capability when implemented
*
* @author Chris Smith <chris@jalakai.co.uk>
* @return array
*/
function retrieveGroups($start=0,$limit=0) {
msg("authorisation method does not support group list retrieval", -1);
return array();
}
/**
* Return case sensitivity of the backend [OPTIONAL]
*
* When your backend is caseinsensitive (eg. you can login with USER and
* user) then you need to overwrite this method and return false
*/
function isCaseSensitive(){
return true;
}
/**
* Sanitize a given username [OPTIONAL]
*
* This function is applied to any user name that is given to
* the backend and should also be applied to any user name within
* the backend before returning it somewhere.
*
* This should be used to enforce username restrictions.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $user - username
* @param string - the cleaned username
*/
function cleanUser($user){
return $user;
}
/**
* Sanitize a given groupname [OPTIONAL]
*
* This function is applied to any groupname that is given to
* the backend and should also be applied to any groupname within
* the backend before returning it somewhere.
*
* This should be used to enforce groupname restrictions.
*
* Groupnames are to be passed without a leading '@' here.
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $group - groupname
* @param string - the cleaned groupname
*/
function cleanGroup($group){
return $group;
}
/**
* Check Session Cache validity [implement only where required/possible]
*
* DokuWiki caches user info in the user's session for the timespan defined
* in $conf['auth_security_timeout'].
*
* This makes sure slow authentication backends do not slow down DokuWiki.
* This also means that changes to the user database will not be reflected
* on currently logged in users.
*
* To accommodate for this, the user manager plugin will touch a reference
* file whenever a change is submitted. This function compares the filetime
* of this reference file with the time stored in the session.
*
* This reference file mechanism does not reflect changes done directly in
* the backend's database through other means than the user manager plugin.
*
* Fast backends might want to return always false, to force rechecks on
* each page load. Others might want to use their own checking here. If
* unsure, do not override.
*
* @param string $user - The username
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function useSessionCache($user){
global $conf;
return ($_SESSION[DOKU_COOKIE]['auth']['time'] >= @filemtime($conf['cachedir'].'/sessionpurge'));
}
/**
* Check Session Cache validity [implement only where required/possible]
*
* DokuWiki caches user info in the user's session for the timespan defined
* in $conf['auth_security_timeout'].
*
* This makes sure slow authentication backends do not slow down DokuWiki.
* This also means that changes to the user database will not be reflected
* on currently logged in users.
*
* To accommodate for this, the user manager plugin will touch a reference
* file whenever a change is submitted. This function compares the filetime
* of this reference file with the time stored in the session.
*
* This reference file mechanism does not reflect changes done directly in
* the backend's database through other means than the user manager plugin.
*
* Fast backends might want to return always false, to force rechecks on
* each page load. Others might want to use their own checking here. If
* unsure, do not override.
*
* @param string $user - The username
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function useSessionCache($user){
global $conf;
return ($_SESSION[DOKU_COOKIE]['auth']['time'] >= @filemtime($conf['cachedir'].'/sessionpurge'));
}
}
//Setup VIM: ex: et ts=2 :

View File

@ -15,7 +15,7 @@ class auth_ldap extends auth_basic {
/**
* Constructor
*/
function auth_ldap(){
function __construct(){
global $conf;
$this->cnf = $conf['auth']['ldap'];
@ -307,8 +307,6 @@ class auth_ldap extends auth_basic {
}
}
return $result;
}
/**
@ -360,7 +358,6 @@ class auth_ldap extends auth_basic {
function _constructPattern($filter) {
$this->_pattern = array();
foreach ($filter as $item => $pattern) {
// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters
$this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters
}
}

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
* @author Andreas Gohr <andi@splitbrain.org>
* @author Chris Smith <chris@jalakai.co.uk>
* @author Matthias Grimm <matthias.grimmm@sourceforge.net>
*/
*/
require_once(DOKU_INC.'inc/auth/mysql.class.php');
@ -24,63 +24,72 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
* @author Andreas Gohr <andi@splitbrain.org>
*/
function auth_pgsql() {
global $conf;
$this->cnf = $conf['auth']['pgsql'];
if(!$this->cnf['port']) $this->cnf['port'] = 5432;
function __construct() {
global $conf;
$this->cnf = $conf['auth']['pgsql'];
if(!$this->cnf['port']){
$this->cnf['port'] = 5432;
}
if (method_exists($this, 'auth_basic'))
parent::auth_basic();
if (method_exists($this, 'auth_basic')){
parent::auth_basic();
}
if(!function_exists('pg_connect')) {
if ($this->cnf['debug'])
msg("PgSQL err: PHP Postgres extension not found.",-1);
$this->success = false;
return;
}
if(!function_exists('pg_connect')) {
if ($this->cnf['debug'])
msg("PgSQL err: PHP Postgres extension not found.",-1);
$this->success = false;
return;
}
$this->defaultgroup = $conf['defaultgroup'];
$this->defaultgroup = $conf['defaultgroup'];
// set capabilities based upon config strings set
if (empty($this->cnf['user']) ||
empty($this->cnf['password']) || empty($this->cnf['database'])){
if ($this->cnf['debug'])
msg("PgSQL err: insufficient configuration.",-1,__LINE__,__FILE__);
$this->success = false;
return;
}
// set capabilities based upon config strings set
if (empty($this->cnf['user']) ||
empty($this->cnf['password']) || empty($this->cnf['database'])){
if ($this->cnf['debug']){
msg("PgSQL err: insufficient configuration.",-1,__LINE__,__FILE__);
}
$this->success = false;
return;
}
$this->cando['addUser'] = $this->_chkcnf(array('getUserInfo',
'getGroups',
'addUser',
'getUserID',
'getGroupID',
'addGroup',
'addUserGroup'));
$this->cando['delUser'] = $this->_chkcnf(array('getUserID',
'delUser',
'delUserRefs'));
$this->cando['modLogin'] = $this->_chkcnf(array('getUserID',
'updateUser',
'UpdateTarget'));
$this->cando['modPass'] = $this->cando['modLogin'];
$this->cando['modName'] = $this->cando['modLogin'];
$this->cando['modMail'] = $this->cando['modLogin'];
$this->cando['modGroups'] = $this->_chkcnf(array('getUserID',
'getGroups',
'getGroupID',
'addGroup',
'addUserGroup',
'delGroup',
'getGroupID',
'delUserGroup'));
/* getGroups is not yet supported
$this->cando['getGroups'] = $this->_chkcnf(array('getGroups',
'getGroupID')); */
$this->cando['getUsers'] = $this->_chkcnf(array('getUsers',
'getUserInfo',
'getGroups'));
$this->cando['getUserCount'] = $this->_chkcnf(array('getUsers'));
$this->cando['addUser'] = $this->_chkcnf(array(
'getUserInfo',
'getGroups',
'addUser',
'getUserID',
'getGroupID',
'addGroup',
'addUserGroup'));
$this->cando['delUser'] = $this->_chkcnf(array(
'getUserID',
'delUser',
'delUserRefs'));
$this->cando['modLogin'] = $this->_chkcnf(array(
'getUserID',
'updateUser',
'UpdateTarget'));
$this->cando['modPass'] = $this->cando['modLogin'];
$this->cando['modName'] = $this->cando['modLogin'];
$this->cando['modMail'] = $this->cando['modLogin'];
$this->cando['modGroups'] = $this->_chkcnf(array(
'getUserID',
'getGroups',
'getGroupID',
'addGroup',
'addUserGroup',
'delGroup',
'getGroupID',
'delUserGroup'));
/* getGroups is not yet supported
$this->cando['getGroups'] = $this->_chkcnf(array('getGroups',
'getGroupID')); */
$this->cando['getUsers'] = $this->_chkcnf(array(
'getUsers',
'getUserInfo',
'getGroups'));
$this->cando['getUserCount'] = $this->_chkcnf(array('getUsers'));
}
/**
@ -90,10 +99,10 @@ class auth_pgsql extends auth_mysql {
* @return bool
*/
function _chkcnf($keys, $wop=false){
foreach ($keys as $key){
if (empty($this->cnf[$key])) return false;
}
return true;
foreach ($keys as $key){
if (empty($this->cnf[$key])) return false;
}
return true;
}
// @inherit function checkPass($user,$pass)
@ -114,18 +123,18 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function getUserCount($filter=array()) {
$rc = 0;
$rc = 0;
if($this->_openDB()) {
$sql = $this->_createSQLFilter($this->cnf['getUsers'], $filter);
if($this->_openDB()) {
$sql = $this->_createSQLFilter($this->cnf['getUsers'], $filter);
// no equivalent of SQL_CALC_FOUND_ROWS in pgsql?
if (($result = $this->_queryDB($sql))){
$rc = count($result);
// no equivalent of SQL_CALC_FOUND_ROWS in pgsql?
if (($result = $this->_queryDB($sql))){
$rc = count($result);
}
$this->_closeDB();
}
$this->_closeDB();
}
return $rc;
return $rc;
}
/**
@ -139,22 +148,22 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function retrieveUsers($first=0,$limit=10,$filter=array()) {
$out = array();
$out = array();
if($this->_openDB()) {
$this->_lockTables("READ");
$sql = $this->_createSQLFilter($this->cnf['getUsers'], $filter);
$sql .= " ".$this->cnf['SortOrder']." LIMIT $limit OFFSET $first";
$result = $this->_queryDB($sql);
if($this->_openDB()) {
$this->_lockTables("READ");
$sql = $this->_createSQLFilter($this->cnf['getUsers'], $filter);
$sql .= " ".$this->cnf['SortOrder']." LIMIT $limit OFFSET $first";
$result = $this->_queryDB($sql);
foreach ($result as $user)
if (($info = $this->_getUserInfo($user['user'])))
$out[$user['user']] = $info;
foreach ($result as $user)
if (($info = $this->_getUserInfo($user['user'])))
$out[$user['user']] = $info;
$this->_unlockTables();
$this->_closeDB();
}
return $out;
$this->_unlockTables();
$this->_closeDB();
}
return $out;
}
// @inherit function joinGroup($user, $group)
@ -177,38 +186,38 @@ class auth_pgsql extends auth_mysql {
* @author Andreas Gohr <andi@splitbrain.org>
*/
function _addUserToGroup($user, $group, $force=0) {
$newgroup = 0;
$newgroup = 0;
if (($this->dbcon) && ($user)) {
$gid = $this->_getGroupID($group);
if (!$gid) {
if ($force) { // create missing groups
$sql = str_replace('%{group}',addslashes($group),$this->cnf['addGroup']);
$this->_modifyDB($sql);
//group should now exists try again to fetch it
if (($this->dbcon) && ($user)) {
$gid = $this->_getGroupID($group);
$newgroup = 1; // group newly created
}
}
if (!$gid) return false; // group didn't exist and can't be created
if (!$gid) {
if ($force) { // create missing groups
$sql = str_replace('%{group}',addslashes($group),$this->cnf['addGroup']);
$this->_modifyDB($sql);
//group should now exists try again to fetch it
$gid = $this->_getGroupID($group);
$newgroup = 1; // group newly created
}
}
if (!$gid) return false; // group didn't exist and can't be created
$sql = $this->cnf['addUserGroup'];
if(strpos($sql,'%{uid}') !== false){
$uid = $this->_getUserID($user);
$sql = str_replace('%{uid}', addslashes($uid), $sql);
}
$sql = str_replace('%{user}', addslashes($user),$sql);
$sql = str_replace('%{gid}', addslashes($gid),$sql);
$sql = str_replace('%{group}',addslashes($group),$sql);
if ($this->_modifyDB($sql) !== false) return true;
$sql = $this->cnf['addUserGroup'];
if(strpos($sql,'%{uid}') !== false){
$uid = $this->_getUserID($user);
$sql = str_replace('%{uid}', addslashes($uid), $sql);
}
$sql = str_replace('%{user}', addslashes($user),$sql);
$sql = str_replace('%{gid}', addslashes($gid),$sql);
$sql = str_replace('%{group}',addslashes($group),$sql);
if ($this->_modifyDB($sql) !== false) return true;
if ($newgroup) { // remove previously created group on error
$sql = str_replace('%{gid}', addslashes($gid),$this->cnf['delGroup']);
$sql = str_replace('%{group}',addslashes($group),$sql);
$this->_modifyDB($sql);
if ($newgroup) { // remove previously created group on error
$sql = str_replace('%{gid}', addslashes($gid),$this->cnf['delGroup']);
$sql = str_replace('%{group}',addslashes($group),$sql);
$this->_modifyDB($sql);
}
}
}
return false;
return false;
}
// @inherit function _delUserFromGroup($user $group)
@ -234,37 +243,37 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _addUser($user,$pwd,$name,$mail,$grps){
if($this->dbcon && is_array($grps)) {
$sql = str_replace('%{user}', addslashes($user),$this->cnf['addUser']);
$sql = str_replace('%{pass}', addslashes($pwd),$sql);
$sql = str_replace('%{name}', addslashes($name),$sql);
$sql = str_replace('%{email}',addslashes($mail),$sql);
if($this->_modifyDB($sql)){
$uid = $this->_getUserID($user);
}else{
return false;
}
if($this->dbcon && is_array($grps)) {
$sql = str_replace('%{user}', addslashes($user),$this->cnf['addUser']);
$sql = str_replace('%{pass}', addslashes($pwd),$sql);
$sql = str_replace('%{name}', addslashes($name),$sql);
$sql = str_replace('%{email}',addslashes($mail),$sql);
if($this->_modifyDB($sql)){
$uid = $this->_getUserID($user);
}else{
return false;
}
if ($uid) {
foreach($grps as $group) {
$gid = $this->_addUserToGroup($user, $group, 1);
if ($gid === false) break;
}
if ($uid) {
foreach($grps as $group) {
$gid = $this->_addUserToGroup($user, $group, 1);
if ($gid === false) break;
}
if ($gid) return true;
else {
/* remove the new user and all group relations if a group can't
* be assigned. Newly created groups will remain in the database
* and won't be removed. This might create orphaned groups but
* is not a big issue so we ignore this problem here.
*/
$this->_delUser($user);
if ($this->cnf['debug'])
msg("PgSQL err: Adding user '$user' to group '$group' failed.",-1,__LINE__,__FILE__);
}
if ($gid) return true;
else {
/* remove the new user and all group relations if a group can't
* be assigned. Newly created groups will remain in the database
* and won't be removed. This might create orphaned groups but
* is not a big issue so we ignore this problem here.
*/
$this->_delUser($user);
if ($this->cnf['debug'])
msg("PgSQL err: Adding user '$user' to group '$group' failed.",-1,__LINE__,__FILE__);
}
}
}
}
return false;
return false;
}
// @inherit function _delUser($user)
@ -282,24 +291,24 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _openDB() {
if (!$this->dbcon) {
$dsn = $this->cnf['server'] ? 'host='.$this->cnf['server'] : '';
$dsn .= ' port='.$this->cnf['port'];
$dsn .= ' dbname='.$this->cnf['database'];
$dsn .= ' user='.$this->cnf['user'];
$dsn .= ' password='.$this->cnf['password'];
if (!$this->dbcon) {
$dsn = $this->cnf['server'] ? 'host='.$this->cnf['server'] : '';
$dsn .= ' port='.$this->cnf['port'];
$dsn .= ' dbname='.$this->cnf['database'];
$dsn .= ' user='.$this->cnf['user'];
$dsn .= ' password='.$this->cnf['password'];
$con = @pg_connect($dsn);
if ($con) {
$this->dbcon = $con;
return true; // connection and database successfully opened
} else if ($this->cnf['debug']){
msg ("PgSQL err: Connection to {$this->cnf['user']}@{$this->cnf['server']} not possible.",
-1,__LINE__,__FILE__);
$con = @pg_connect($dsn);
if ($con) {
$this->dbcon = $con;
return true; // connection and database successfully opened
} else if ($this->cnf['debug']){
msg ("PgSQL err: Connection to {$this->cnf['user']}@{$this->cnf['server']} not possible.",
-1,__LINE__,__FILE__);
}
return false; // connection failed
}
return false; // connection failed
}
return true; // connection already open
return true; // connection already open
}
/**
@ -308,10 +317,10 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _closeDB() {
if ($this->dbcon) {
pg_close ($this->dbcon);
$this->dbcon = 0;
}
if ($this->dbcon) {
pg_close ($this->dbcon);
$this->dbcon = 0;
}
}
/**
@ -327,17 +336,17 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _queryDB($query) {
if ($this->dbcon) {
$result = @pg_query($this->dbcon,$query);
if ($result) {
while (($t = pg_fetch_assoc($result)) !== false)
$resultarray[]=$t;
pg_free_result ($result);
return $resultarray;
}elseif ($this->cnf['debug'])
msg('PgSQL err: '.pg_last_error($this->dbcon),-1,__LINE__,__FILE__);
}
return false;
if ($this->dbcon) {
$result = @pg_query($this->dbcon,$query);
if ($result) {
while (($t = pg_fetch_assoc($result)) !== false)
$resultarray[]=$t;
pg_free_result ($result);
return $resultarray;
}elseif ($this->cnf['debug'])
msg('PgSQL err: '.pg_last_error($this->dbcon),-1,__LINE__,__FILE__);
}
return false;
}
/**
@ -347,17 +356,17 @@ class auth_pgsql extends auth_mysql {
* @author Andreas Gohr
*/
function _modifyDB($query) {
if ($this->dbcon) {
$result = @pg_query($this->dbcon,$query);
if ($result) {
pg_free_result ($result);
return true;
if ($this->dbcon) {
$result = @pg_query($this->dbcon,$query);
if ($result) {
pg_free_result ($result);
return true;
}
if ($this->cnf['debug']){
msg('PgSQL err: '.pg_last_error($this->dbcon),-1,__LINE__,__FILE__);
}
}
if ($this->cnf['debug']){
msg('PgSQL err: '.pg_last_error($this->dbcon),-1,__LINE__,__FILE__);
}
}
return false;
return false;
}
/**
@ -367,11 +376,11 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _lockTables($mode) {
if ($this->dbcon) {
$this->_modifyDB('BEGIN');
return true;
}
return false;
if ($this->dbcon) {
$this->_modifyDB('BEGIN');
return true;
}
return false;
}
/**
@ -380,11 +389,11 @@ class auth_pgsql extends auth_mysql {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
function _unlockTables() {
if ($this->dbcon) {
$this->_modifyDB('COMMIT');
return true;
}
return false;
if ($this->dbcon) {
$this->_modifyDB('COMMIT');
return true;
}
return false;
}
// @inherit function _createSQLFilter($sql, $filter)
@ -398,11 +407,11 @@ class auth_pgsql extends auth_mysql {
* @param boolean $like Escape wildcard chars as well?
*/
function _escape($string,$like=false){
$string = pg_escape_string($string);
if($like){
$string = addcslashes($string,'%_');
}
return $string;
$string = pg_escape_string($string);
if($like){
$string = addcslashes($string,'%_');
}
return $string;
}
}

View File

@ -20,24 +20,24 @@ class auth_plain extends auth_basic {
*
* @author Christopher Smith <chris@jalakai.co.uk>
*/
function auth_plain() {
global $config_cascade;
function __construct() {
global $config_cascade;
if (!@is_readable($config_cascade['plainauth.users']['default'])){
$this->success = false;
}else{
if(@is_writable($config_cascade['plainauth.users']['default'])){
$this->cando['addUser'] = true;
$this->cando['delUser'] = true;
$this->cando['modLogin'] = true;
$this->cando['modPass'] = true;
$this->cando['modName'] = true;
$this->cando['modMail'] = true;
$this->cando['modGroups'] = true;
if (!@is_readable($config_cascade['plainauth.users']['default'])){
$this->success = false;
}else{
if(@is_writable($config_cascade['plainauth.users']['default'])){
$this->cando['addUser'] = true;
$this->cando['delUser'] = true;
$this->cando['modLogin'] = true;
$this->cando['modPass'] = true;
$this->cando['modName'] = true;
$this->cando['modMail'] = true;
$this->cando['modGroups'] = true;
}
$this->cando['getUsers'] = true;
$this->cando['getUserCount'] = true;
}
$this->cando['getUsers'] = true;
$this->cando['getUserCount'] = true;
}
}
/**
@ -51,10 +51,10 @@ class auth_plain extends auth_basic {
*/
function checkPass($user,$pass){
$userinfo = $this->getUserData($user);
if ($userinfo === false) return false;
$userinfo = $this->getUserData($user);
if ($userinfo === false) return false;
return auth_verifyPassword($pass,$this->users[$user]['pass']);
return auth_verifyPassword($pass,$this->users[$user]['pass']);
}
/**
@ -71,8 +71,8 @@ class auth_plain extends auth_basic {
*/
function getUserData($user){
if($this->users === null) $this->_loadUserData();
return isset($this->users[$user]) ? $this->users[$user] : false;
if($this->users === null) $this->_loadUserData();
return isset($this->users[$user]) ? $this->users[$user] : false;
}
/**
@ -88,29 +88,29 @@ class auth_plain extends auth_basic {
* @author Chris Smith <chris@jalakai.co.uk>
*/
function createUser($user,$pwd,$name,$mail,$grps=null){
global $conf;
global $config_cascade;
global $conf;
global $config_cascade;
// user mustn't already exist
if ($this->getUserData($user) !== false) return false;
// user mustn't already exist
if ($this->getUserData($user) !== false) return false;
$pass = auth_cryptPassword($pwd);
$pass = auth_cryptPassword($pwd);
// set default group if no groups specified
if (!is_array($grps)) $grps = array($conf['defaultgroup']);
// set default group if no groups specified
if (!is_array($grps)) $grps = array($conf['defaultgroup']);
// prepare user line
$groups = join(',',$grps);
$userline = join(':',array($user,$pass,$name,$mail,$groups))."\n";
// prepare user line
$groups = join(',',$grps);
$userline = join(':',array($user,$pass,$name,$mail,$groups))."\n";
if (io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) {
$this->users[$user] = compact('pass','name','mail','grps');
return $pwd;
}
if (io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) {
$this->users[$user] = compact('pass','name','mail','grps');
return $pwd;
}
msg('The '.$config_cascade['plainauth.users']['default'].
' file is not writable. Please inform the Wiki-Admin',-1);
return null;
msg('The '.$config_cascade['plainauth.users']['default'].
' file is not writable. Please inform the Wiki-Admin',-1);
return null;
}
/**
@ -122,78 +122,78 @@ class auth_plain extends auth_basic {
* @return bool
*/
function modifyUser($user, $changes) {
global $conf;
global $ACT;
global $INFO;
global $config_cascade;
global $conf;
global $ACT;
global $INFO;
global $config_cascade;
// sanity checks, user must already exist and there must be something to change
if (($userinfo = $this->getUserData($user)) === false) return false;
if (!is_array($changes) || !count($changes)) return true;
// sanity checks, user must already exist and there must be something to change
if (($userinfo = $this->getUserData($user)) === false) return false;
if (!is_array($changes) || !count($changes)) return true;
// update userinfo with new data, remembering to encrypt any password
$newuser = $user;
foreach ($changes as $field => $value) {
if ($field == 'user') {
$newuser = $value;
continue;
// update userinfo with new data, remembering to encrypt any password
$newuser = $user;
foreach ($changes as $field => $value) {
if ($field == 'user') {
$newuser = $value;
continue;
}
if ($field == 'pass') $value = auth_cryptPassword($value);
$userinfo[$field] = $value;
}
if ($field == 'pass') $value = auth_cryptPassword($value);
$userinfo[$field] = $value;
}
$groups = join(',',$userinfo['grps']);
$userline = join(':',array($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $groups))."\n";
$groups = join(',',$userinfo['grps']);
$userline = join(':',array($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $groups))."\n";
if (!$this->deleteUsers(array($user))) {
msg('Unable to modify user data. Please inform the Wiki-Admin',-1);
return false;
}
if (!$this->deleteUsers(array($user))) {
msg('Unable to modify user data. Please inform the Wiki-Admin',-1);
return false;
}
if (!io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) {
msg('There was an error modifying your user data. You should register again.',-1);
// FIXME, user has been deleted but not recreated, should force a logout and redirect to login page
$ACT == 'register';
return false;
}
if (!io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) {
msg('There was an error modifying your user data. You should register again.',-1);
// FIXME, user has been deleted but not recreated, should force a logout and redirect to login page
$ACT == 'register';
return false;
}
$this->users[$newuser] = $userinfo;
return true;
$this->users[$newuser] = $userinfo;
return true;
}
/**
* Remove one or more users from the list of registered users
* Remove one or more users from the list of registered users
*
* @author Christopher Smith <chris@jalakai.co.uk>
* @param array $users array of users to be deleted
* @return int the number of users deleted
* @author Christopher Smith <chris@jalakai.co.uk>
* @param array $users array of users to be deleted
* @return int the number of users deleted
*/
function deleteUsers($users) {
global $config_cascade;
global $config_cascade;
if (!is_array($users) || empty($users)) return 0;
if (!is_array($users) || empty($users)) return 0;
if ($this->users === null) $this->_loadUserData();
if ($this->users === null) $this->_loadUserData();
$deleted = array();
foreach ($users as $user) {
if (isset($this->users[$user])) $deleted[] = preg_quote($user,'/');
}
$deleted = array();
foreach ($users as $user) {
if (isset($this->users[$user])) $deleted[] = preg_quote($user,'/');
}
if (empty($deleted)) return 0;
if (empty($deleted)) return 0;
$pattern = '/^('.join('|',$deleted).'):/';
$pattern = '/^('.join('|',$deleted).'):/';
if (io_deleteFromFile($config_cascade['plainauth.users']['default'],$pattern,true)) {
foreach ($deleted as $user) unset($this->users[$user]);
return count($deleted);
}
if (io_deleteFromFile($config_cascade['plainauth.users']['default'],$pattern,true)) {
foreach ($deleted as $user) unset($this->users[$user]);
return count($deleted);
}
// problem deleting, reload the user list and count the difference
$count = count($this->users);
$this->_loadUserData();
$count -= count($this->users);
return $count;
// problem deleting, reload the user list and count the difference
$count = count($this->users);
$this->_loadUserData();
$count -= count($this->users);
return $count;
}
/**
@ -203,18 +203,18 @@ class auth_plain extends auth_basic {
*/
function getUserCount($filter=array()) {
if($this->users === null) $this->_loadUserData();
if($this->users === null) $this->_loadUserData();
if (!count($filter)) return count($this->users);
if (!count($filter)) return count($this->users);
$count = 0;
$this->_constructPattern($filter);
$count = 0;
$this->_constructPattern($filter);
foreach ($this->users as $user => $info) {
$count += $this->_filter($user, $info);
}
foreach ($this->users as $user => $info) {
$count += $this->_filter($user, $info);
}
return $count;
return $count;
}
/**
@ -228,27 +228,27 @@ class auth_plain extends auth_basic {
*/
function retrieveUsers($start=0,$limit=0,$filter=array()) {
if ($this->users === null) $this->_loadUserData();
if ($this->users === null) $this->_loadUserData();
ksort($this->users);
ksort($this->users);
$i = 0;
$count = 0;
$out = array();
$this->_constructPattern($filter);
$i = 0;
$count = 0;
$out = array();
$this->_constructPattern($filter);
foreach ($this->users as $user => $info) {
if ($this->_filter($user, $info)) {
if ($i >= $start) {
$out[$user] = $info;
$count++;
if (($limit > 0) && ($count >= $limit)) break;
}
$i++;
foreach ($this->users as $user => $info) {
if ($this->_filter($user, $info)) {
if ($i >= $start) {
$out[$user] = $info;
$count++;
if (($limit > 0) && ($count >= $limit)) break;
}
$i++;
}
}
}
return $out;
return $out;
}
/**
@ -275,26 +275,26 @@ class auth_plain extends auth_basic {
* @author Andreas Gohr <andi@splitbrain.org>
*/
function _loadUserData(){
global $config_cascade;
global $config_cascade;
$this->users = array();
$this->users = array();
if(!@file_exists($config_cascade['plainauth.users']['default'])) return;
if(!@file_exists($config_cascade['plainauth.users']['default'])) return;
$lines = file($config_cascade['plainauth.users']['default']);
foreach($lines as $line){
$line = preg_replace('/#.*$/','',$line); //ignore comments
$line = trim($line);
if(empty($line)) continue;
$lines = file($config_cascade['plainauth.users']['default']);
foreach($lines as $line){
$line = preg_replace('/#.*$/','',$line); //ignore comments
$line = trim($line);
if(empty($line)) continue;
$row = explode(":",$line,5);
$groups = array_values(array_filter(explode(",",$row[4])));
$row = explode(":",$line,5);
$groups = array_values(array_filter(explode(",",$row[4])));
$this->users[$row[0]]['pass'] = $row[1];
$this->users[$row[0]]['name'] = urldecode($row[2]);
$this->users[$row[0]]['mail'] = $row[3];
$this->users[$row[0]]['grps'] = $groups;
}
$this->users[$row[0]]['pass'] = $row[1];
$this->users[$row[0]]['name'] = urldecode($row[2]);
$this->users[$row[0]]['mail'] = $row[3];
$this->users[$row[0]]['grps'] = $groups;
}
}
/**
@ -317,11 +317,11 @@ class auth_plain extends auth_basic {
}
function _constructPattern($filter) {
$this->_pattern = array();
foreach ($filter as $item => $pattern) {
// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters
$this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters
}
$this->_pattern = array();
foreach ($filter as $item => $pattern) {
// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters
$this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters
}
}
}

View File

@ -188,7 +188,7 @@ function getRecents($first,$num,$ns='',$flags=0){
// handle lines
while ($lines_position >= 0 || (($flags & RECENTS_MEDIA_PAGES_MIXED) && $media_lines_position >=0)) {
if (empty($rec) && $lines_position >= 0) {
$rec = _handleRecent(@$lines[$lines_position], $ns, $flags & ~RECENTS_MEDIA_CHANGES, $seen);
$rec = _handleRecent(@$lines[$lines_position], $ns, $flags, $seen);
if (!$rec) {
$lines_position --;
continue;
@ -197,8 +197,8 @@ function getRecents($first,$num,$ns='',$flags=0){
if (($flags & RECENTS_MEDIA_PAGES_MIXED) && empty($media_rec) && $media_lines_position >= 0) {
$media_rec = _handleRecent(@$media_lines[$media_lines_position], $ns, $flags | RECENTS_MEDIA_CHANGES, $seen);
if (!$media_rec) {
$media_lines_position --;
continue;
$media_lines_position --;
continue;
}
}
if (($flags & RECENTS_MEDIA_PAGES_MIXED) && @$media_rec['date'] >= @$rec['date']) {
@ -320,8 +320,10 @@ function _handleRecent($line,$ns,$flags,&$seen){
if ($recent['perms'] < AUTH_READ) return false;
// check existance
$fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id']));
if((!@file_exists($fn)) && ($flags & RECENTS_SKIP_DELETED)) return false;
if($flags & RECENTS_SKIP_DELETED){
$fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id']));
if(!@file_exists($fn)) return false;
}
return $recent;
}

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1997-2004 The PHP Group
*
* LICENSE: This source file is subject to the New BSD license that is
* LICENSE: This source file is subject to the New BSD license that is
* available through the world-wide-web at the following URI:
* http://www.opensource.org/licenses/bsd-license.php. If you did not receive
* a copy of the New BSD License and are unable to obtain it through the web,
@ -297,9 +297,8 @@ class Doku_Cli_Opts {
* @access private
* @return bool
*/
function _isShortOpt($arg)
{
return strlen($arg) == 2 && $arg[0] == '-'
function _isShortOpt($arg){
return strlen($arg) == 2 && $arg[0] == '-'
&& preg_match('/[a-zA-Z]/', $arg[1]);
}
@ -311,8 +310,7 @@ class Doku_Cli_Opts {
* @access private
* @return bool
*/
function _isLongOpt($arg)
{
function _isLongOpt($arg){
return strlen($arg) > 2 && $arg[0] == '-' && $arg[1] == '-' &&
preg_match('/[a-zA-Z]+$/', substr($arg, 2));
}

View File

@ -1296,14 +1296,14 @@ function dformat($dt=null,$format=''){
*
* @author <ungu at terong dot com>
* @link http://www.php.net/manual/en/function.date.php#54072
* @param int $int_date: current date in UNIX timestamp
*/
function date_iso8601($int_date) {
//$int_date: current date in UNIX timestamp
$date_mod = date('Y-m-d\TH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$date_mod .= $time_zone;
return $date_mod;
$date_mod = date('Y-m-d\TH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$date_mod .= $time_zone;
return $date_mod;
}
/**
@ -1564,10 +1564,14 @@ function valid_input_set($param, $valid_values, $array, $exc = '') {
}
}
/**
* Read a preference from the DokuWiki cookie
*/
function get_doku_pref($pref, $default) {
if (strpos($_COOKIE['DOKU_PREFS'], $pref) !== false) {
$parts = explode('#', $_COOKIE['DOKU_PREFS']);
for ($i = 0; $i < count($parts); $i+=2){
$cnt = count($parts);
for ($i = 0; $i < $cnt; $i+=2){
if ($parts[$i] == $pref) {
return $parts[$i+1];
}

View File

@ -64,7 +64,7 @@ $config_cascade = array_merge(
'plainauth.users' => array(
'default' => DOKU_CONF.'users.auth.php',
),
'plugins' => array(
'local' => array(DOKU_CONF.'plugins.local.php'),
'protected' => array(

View File

@ -1141,8 +1141,6 @@ function html_diff($text='',$intro=true,$type=null){
$tdf = new TableDiffFormatter();
}
if($intro) print p_locale_xhtml('diff');
if (!$text) {
@ -1165,7 +1163,6 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
$diffurl = wl($ID, array(
'do' => 'diff',
'rev2[0]' => $l_rev,
@ -1176,6 +1173,7 @@ function html_diff($text='',$intro=true,$type=null){
ptln('</div>');
}
?>
<div class="table">
<table class="diff diff_<?php echo $type?>">
<tr>
<th colspan="2" <?php echo $l_minor?>>
@ -1187,6 +1185,7 @@ function html_diff($text='',$intro=true,$type=null){
</tr>
<?php echo $tdf->format($df)?>
</table>
</div>
<?php
}
@ -1661,26 +1660,46 @@ function html_admin(){
* Form to request a new password for an existing account
*
* @author Benoit Chesneau <benoit@bchesneau.info>
* @author Andreas Gohr <gohr@cosmocode.de>
*/
function html_resendpwd() {
global $lang;
global $conf;
global $ID;
print p_locale_xhtml('resendpwd');
print '<div class="centeralign">'.NL;
$form = new Doku_Form(array('id' => 'dw__resendpwd'));
$form->startFieldset($lang['resendpwd']);
$form->addHidden('do', 'resendpwd');
$form->addHidden('save', '1');
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeTextField('login', $_POST['login'], $lang['user'], '', 'block'));
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeButton('submit', '', $lang['btn_resendpwd']));
$form->endFieldset();
html_form('resendpwd', $form);
print '</div>'.NL;
$token = preg_replace('/[^a-f0-9]+/','',$_REQUEST['pwauth']);
if(!$conf['autopasswd'] && $token){
print p_locale_xhtml('resetpwd');
print '<div class="centeralign">'.NL;
$form = new Doku_Form(array('id' => 'dw__resendpwd'));
$form->startFieldset($lang['btn_resendpwd']);
$form->addHidden('token', $token);
$form->addHidden('do', 'resendpwd');
$form->addElement(form_makePasswordField('pass', $lang['pass'], '', 'block', array('size'=>'50')));
$form->addElement(form_makePasswordField('passchk', $lang['passchk'], '', 'block', array('size'=>'50')));
$form->addElement(form_makeButton('submit', '', $lang['btn_resendpwd']));
$form->endFieldset();
html_form('resendpwd', $form);
print '</div>'.NL;
}else{
print p_locale_xhtml('resendpwd');
print '<div class="centeralign">'.NL;
$form = new Doku_Form(array('id' => 'dw__resendpwd'));
$form->startFieldset($lang['resendpwd']);
$form->addHidden('do', 'resendpwd');
$form->addHidden('save', '1');
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeTextField('login', $_POST['login'], $lang['user'], '', 'block'));
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeTag('br'));
$form->addElement(form_makeButton('submit', '', $lang['btn_resendpwd']));
$form->endFieldset();
html_form('resendpwd', $form);
print '</div>'.NL;
}
}
/**

View File

@ -249,3 +249,11 @@ function http_cached_finish($file, $content) {
print $content;
}
}
function http_get_raw_post_data() {
static $postData = null;
if ($postData === null) {
$postData = file_get_contents('php://input');
}
return $postData;
}

View File

@ -291,7 +291,6 @@ class Doku_Indexer {
$val_idx = array();
}
foreach ($values as $val) {
$val = (string)$val;
if ($val !== "") {
@ -351,7 +350,7 @@ class Doku_Indexer {
return "locked";
// load known documents
$pid = $this->getIndexKey('page', '', $page);
$pid = $this->addIndexKey('page', '', $page);
if ($pid === false) {
$this->unlock();
return false;
@ -389,6 +388,7 @@ class Doku_Indexer {
$val_idx = explode(':', $this->getIndexKey($metaname.'_p', '', $pid));
$meta_idx = $this->getIndex($metaname.'_i', '');
foreach ($val_idx as $id) {
if ($id === '') continue;
$meta_idx[$id] = $this->updateTuple($meta_idx[$id], $pid, 0);
}
$this->saveIndex($metaname.'_i', '', $meta_idx);
@ -1174,18 +1174,8 @@ function & idx_get_stopwords() {
* @author Tom N Harris <tnharris@whoopdedo.org>
*/
function idx_addPage($page, $verbose=false, $force=false) {
// check if indexing needed
$idxtag = metaFN($page,'.indexed');
if(!$force && @file_exists($idxtag)){
if(trim(io_readFile($idxtag)) == idx_get_version()){
$last = @filemtime($idxtag);
if($last > @filemtime(wikiFN($page))){
if ($verbose) print("Indexer: index for $page up to date".DOKU_LF);
return false;
}
}
}
// check if page was deleted but is still in the index
if (!page_exists($page)) {
if (!@file_exists($idxtag)) {
if ($verbose) print("Indexer: $page does not exist, ignoring".DOKU_LF);
@ -1200,6 +1190,18 @@ function idx_addPage($page, $verbose=false, $force=false) {
@unlink($idxtag);
return $result;
}
// check if indexing needed
if(!$force && @file_exists($idxtag)){
if(trim(io_readFile($idxtag)) == idx_get_version()){
$last = @filemtime($idxtag);
if($last > @filemtime(wikiFN($page))){
if ($verbose) print("Indexer: index for $page up to date".DOKU_LF);
return false;
}
}
}
$indexenabled = p_get_metadata($page, 'internal index', METADATA_RENDER_UNLIMITED);
if ($indexenabled === false) {
$result = false;

View File

@ -30,8 +30,8 @@ if (!defined('DOKU_E_LEVEL') && @file_exists(DOKU_CONF.'report_e_all')) {
define('DOKU_E_LEVEL', E_ALL);
}
if (!defined('DOKU_E_LEVEL')) {
if(defined('E_DEPRECATED')){ // since php 5.3
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
if(defined('E_DEPRECATED')){ // since php 5.3, since php 5.4 E_STRICT is part of E_ALL
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
}else{
error_reporting(E_ALL ^ E_NOTICE);
}
@ -69,16 +69,6 @@ foreach (array('default','local','protected') as $config_group) {
}
}
//prepare language array
global $lang;
$lang = array();
//load the language files
require_once(DOKU_INC.'inc/lang/en/lang.php');
if ( $conf['lang'] && $conf['lang'] != 'en' ) {
require_once(DOKU_INC.'inc/lang/'.$conf['lang'].'/lang.php');
}
//prepare license array()
global $license;
$license = array();
@ -118,11 +108,11 @@ if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['se
// define main script
if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php');
// define Template baseURL
// DEPRECATED, use tpl_basedir() instead
if(!defined('DOKU_TPL')) define('DOKU_TPL',
DOKU_BASE.'lib/tpl/'.$conf['template'].'/');
// define real Template directory
// DEPRECATED, use tpl_incdir() instead
if(!defined('DOKU_TPLINC')) define('DOKU_TPLINC',
DOKU_INC.'lib/tpl/'.$conf['template'].'/');
@ -200,7 +190,7 @@ init_paths();
init_files();
// setup plugin controller class (can be overwritten in preload.php)
$plugin_types = array('admin','syntax','action','renderer', 'helper');
$plugin_types = array('admin','syntax','action','renderer', 'helper','remote');
global $plugin_controller_class, $plugin_controller;
if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller';
@ -214,6 +204,10 @@ $plugin_controller = new $plugin_controller_class();
global $EVENT_HANDLER;
$EVENT_HANDLER = new Doku_Event_Handler();
$local = $conf['lang'];
trigger_event('INIT_LANG_LOAD', $local, 'init_lang', true);
// setup authentication system
if (!defined('NOSESSION')) {
auth_setup();
@ -256,6 +250,20 @@ function init_paths(){
$conf['media_changelog'] = $conf['metadir'].'/_media.changes';
}
function init_lang($langCode) {
//prepare language array
global $lang;
$lang = array();
//load the language files
require_once(DOKU_INC.'inc/lang/en/lang.php');
if ($langCode && $langCode != 'en') {
if (file_exists(DOKU_INC."inc/lang/$langCode/lang.php")) {
require_once(DOKU_INC."inc/lang/$langCode/lang.php");
}
}
}
/**
* Checks the existance of certain files and creates them if missing.
*/

View File

@ -63,7 +63,7 @@ function io_sweepNS($id,$basedir='datadir'){
*/
function io_readWikiPage($file, $id, $rev=false) {
if (empty($rev)) { $rev = false; }
$data = array(array($file, false), getNS($id), noNS($id), $rev);
$data = array(array($file, true), getNS($id), noNS($id), $rev);
return trigger_event('IO_WIKIPAGE_READ', $data, '_io_readWikiPage_action', false);
}

View File

@ -25,7 +25,6 @@ $lang['btn_back'] = 'Terug';
$lang['btn_backlink'] = 'Wat skakel hierheen';
$lang['btn_subscribe'] = 'Hou bladsy dop';
$lang['btn_unsubscribe'] = 'Verwyder van bladsy dophoulys';
$lang['btn_resendpwd'] = 'E-pos nuwe wagwoord';
$lang['btn_register'] = 'Skep gerus \'n rekening';
$lang['loggedinas'] = 'Ingeteken as';
$lang['user'] = 'Gebruikernaam';
@ -43,7 +42,6 @@ $lang['regsuccess2'] = 'Rekening geskep';
$lang['regbadpass'] = 'Die ingetikte wagwoorde is nie dieselfde nie.';
$lang['regpwmail'] = 'Jo DokuWiki wagwoord';
$lang['profnoempty'] = 'Jy moet \'n name en a e-posadres in sit';
$lang['resendpwd'] = 'Stuir vir a niwe wagwoord';
$lang['resendpwdmissing'] = 'Jammer, jy moet ales in fil';
$lang['resendpwdconfirm'] = '\'n Bevestigingpos is gestuur na die gekose e-posadres.';
$lang['resendpwdsuccess'] = 'Jou nuive wagwoord was deur e-pos gesteur';
@ -71,5 +69,3 @@ $lang['img_date'] = 'Datem';
$lang['img_camera'] = 'Camera';
$lang['i_wikiname'] = 'Wiki Naam';
$lang['i_funcna'] = 'PHP funksie <code>%s</code> is nie beskibaar nie. Miskien is dit af gehaal.';
$lang['mu_toobig'] = 'te groet';
$lang['mu_done'] = 'klaar';

View File

@ -42,12 +42,14 @@ $lang['btn_backtomedia'] = 'ارجع إلى اختيار ملف الوسا
$lang['btn_subscribe'] = 'ادر الاشتراكات';
$lang['btn_profile'] = 'حدث الملف الشخصي';
$lang['btn_reset'] = 'صفّر';
$lang['btn_resendpwd'] = 'ارسل كلمة سر جديدة';
$lang['btn_resendpwd'] = 'اضبط كلمة سر جديدة';
$lang['btn_draft'] = 'حرر المسودة';
$lang['btn_recover'] = 'استرجع المسودة';
$lang['btn_draftdel'] = 'احذف المسوّدة';
$lang['btn_revert'] = 'استعد';
$lang['btn_register'] = 'سجّل';
$lang['btn_apply'] = 'طبق';
$lang['btn_media'] = 'مدير الوسائط';
$lang['loggedinas'] = 'داخل باسم';
$lang['user'] = 'اسم المستخدم';
$lang['pass'] = 'كلمة السر';
@ -77,7 +79,7 @@ $lang['profnoempty'] = 'غير مسموح باسم مستخدم أو
$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
$lang['resendpwd'] = 'إرسال كلمة مرور';
$lang['resendpwd'] = 'اضبط كلمة سر جديدة لـ';
$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ كل الحقول.';
$lang['resendpwdnouser'] = 'عذراً، لم نجد المستخدم هذا في قاعدة بياناتنا.';
$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد من استخدامك كامل وصلة التأكيد.';
@ -92,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'] = 'ابحث عن ملفات';
$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار';
@ -123,6 +125,17 @@ $lang['js']['nosmblinks'] = 'الروابط لمجلدات مشاركة و
$lang['js']['linkwiz'] = 'مرشد الروابط';
$lang['js']['linkto'] = 'الرابط إلى :';
$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟';
$lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟';
$lang['js']['media_diff'] = 'عرض الفروق:';
$lang['js']['media_diff_both'] = 'جنبا إلى جنب';
$lang['js']['media_diff_opacity'] = 'Shine-through';
$lang['js']['media_diff_portions'] = 'Swipe';
$lang['js']['media_select'] = 'اختر ملفا...';
$lang['js']['media_upload_btn'] = 'ارفع';
$lang['js']['media_done_btn'] = 'تم';
$lang['js']['media_drop'] = 'اسقط الملف هنا لرفعه';
$lang['js']['media_cancel'] = 'أزل';
$lang['js']['media_overwrt'] = 'أكتب فوق الملفات الموجودة';
$lang['rssfailed'] = 'خطأ ما حدث أثناء جلب ملف التغذية:';
$lang['nothingfound'] = 'لا يوجد شيء';
$lang['mediaselect'] = 'ملفات الوسائط';
@ -172,11 +185,20 @@ $lang['external_edit'] = 'تحرير خارجي';
$lang['summary'] = 'ملخص التحرير';
$lang['noflash'] = 'تحتاج إلى<a href="http://www.adobe.com/products/flashplayer/">ملحق فلاش أدوبي</a> لعرض هذا المحتوى.';
$lang['download'] = 'نزل Snippet';
$lang['tools'] = 'أدوات';
$lang['user_tools'] = 'أدوات المستخدم';
$lang['site_tools'] = 'أدوات الموقع';
$lang['page_tools'] = 'أدوات الصفحة';
$lang['skip_to_content'] = 'تجاوز إلى المحتوى';
$lang['mail_newpage'] = 'إضافة صفحة:';
$lang['mail_changed'] = 'تعديل صفحة:';
$lang['mail_subscribe_list'] = 'صفحات غيرت في النطاق:';
$lang['mail_new_user'] = 'مشترك جديد:';
$lang['mail_upload'] = 'رفع ملف:';
$lang['changes_type'] = 'أظهر تغييرات الـ';
$lang['pages_changes'] = 'صفحات';
$lang['media_changes'] = 'ملفات الوسائط';
$lang['both_changes'] = 'كلا من الصفحات وملفات الوسائط';
$lang['qb_bold'] = 'نص عريض';
$lang['qb_italic'] = 'نص مائل';
$lang['qb_underl'] = 'نص مسطر';
@ -217,6 +239,9 @@ $lang['img_copyr'] = 'حقوق النسخ';
$lang['img_format'] = 'الهيئة';
$lang['img_camera'] = 'الكمرا';
$lang['img_keywords'] = 'كلمات مفتاحية';
$lang['img_width'] = 'العرض';
$lang['img_height'] = 'الإرتفاع';
$lang['img_manager'] = 'اعرض في مدير الوسائط';
$lang['subscr_subscribe_success'] = 'اضيف %s لقائمة اشتراك %s';
$lang['subscr_subscribe_error'] = 'خطأ في إضافة %s لقائمة اشتراك %s';
$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بولوجك، لا يمكن اضافتك لقائمة الاشتراك';
@ -235,6 +260,7 @@ $lang['subscr_style_digest'] = 'بريد ملخص عن تغييرات كل ص
$lang['subscr_style_list'] = 'قائمة بالصفحات المتغيرة منذ آخر بريد';
$lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.';
$lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير';
$lang['authpwdexpire'] = 'ستنتهي صلاحية كلمة السر في %d . عليك بتغييرها سريعا.';
$lang['i_chooselang'] = 'اختر لغتك';
$lang['i_installer'] = 'برنامج تنصيب دوكو ويكي';
$lang['i_wikiname'] = 'اسم الويكي';
@ -266,21 +292,6 @@ $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للج
$lang['i_pol2'] = 'ويكي مغلقة؛ أي القراءة والكتابة والتحميل للمشتركين المسجلين فقط';
$lang['i_retry'] = 'إعادة المحاولة';
$lang['i_license'] = 'اختر الرخصة التي تريد وضع المحتوى تحتها:';
$lang['mu_intro'] = 'هنا يمكنك رفع ملفات متعددة في وقت واحد. انقر على زر استعرض لاضافتهم إلى الطابور. انقر ارفع عند الانتهاء.';
$lang['mu_gridname'] = 'اسم الملف';
$lang['mu_gridsize'] = 'الحجم';
$lang['mu_gridstat'] = 'الحالة';
$lang['mu_namespace'] = 'نطاق';
$lang['mu_browse'] = 'استعرض';
$lang['mu_toobig'] = 'كبير جدا';
$lang['mu_ready'] = 'جاهز للرفع';
$lang['mu_done'] = 'اكتمل';
$lang['mu_fail'] = 'فشل';
$lang['mu_authfail'] = 'انتهت الجلسة';
$lang['mu_progress'] = 'رُفع @PCT@% ';
$lang['mu_filetypes'] = 'انواع الملفات المسموحة';
$lang['mu_info'] = 'تم رفع الملفات';
$lang['mu_lasterr'] = 'آخر خطأ:';
$lang['recent_global'] = 'انت تراقب حاليا التغييرات داخل نطاق <b>%s</b>. يمكنك أيضا <a href="%s">عرض أحدث تغييرات الويكي كلها</a>.';
$lang['years'] = '%d سنة مضت';
$lang['months'] = '%d شهرا مضى';
@ -290,3 +301,27 @@ $lang['hours'] = '%d ساعة مضت';
$lang['minutes'] = '%d دقيقة مضت';
$lang['seconds'] = '%d ثانية مضت';
$lang['wordblock'] = 'لم تحفظ تغييراتك لاحتوائها على نص ممنوع )غثاء(';
$lang['media_uploadtab'] = 'ارفع';
$lang['media_searchtab'] = 'ابحث';
$lang['media_file'] = 'ملف';
$lang['media_viewtab'] = 'عرض';
$lang['media_edittab'] = 'تحرير';
$lang['media_historytab'] = 'التاريخ';
$lang['media_list_thumbs'] = 'المصغرات';
$lang['media_list_rows'] = 'صفوف';
$lang['media_sort_name'] = 'الاسم';
$lang['media_sort_date'] = 'التاريخ';
$lang['media_namespaces'] = 'اختر نطاقا';
$lang['media_files'] = 'الملفات في %s';
$lang['media_upload'] = 'ارفع إلى %s';
$lang['media_search'] = 'ابحث في %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s في %s';
$lang['media_edit'] = 'حرر %s';
$lang['media_history'] = 'تاريخ %s';
$lang['media_meta_edited'] = 'عُدلت الميتاداتا';
$lang['media_perm_read'] = 'عفوا، لست مخولا بقراءة الملفات.';
$lang['media_perm_upload'] = 'عفوا، لست مخولا برفع الملفات.';
$lang['media_update'] = 'ارفع إصدارا أحدث';
$lang['media_restore'] = 'استرجع هذه النسخة';
$lang['plugin_install_err'] = 'ثبتت الإضافة بشكل خاطئ. أعد تسمية دليل الإضافة \'%s\' إلى \'%s\'.';

3
inc/lang/ar/resetpwd.txt Normal file
View File

@ -0,0 +1,3 @@
====== اضبط كلمة سر جديدة ======
أدخل كلمة سر جديدة لحسابك في هذه الويكي.

View File

@ -40,7 +40,6 @@ $lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)';
$lang['btn_unsubscribe'] = 'Abunəlikdən çıx (bütün dəyişiklər)';
$lang['btn_profile'] = 'Profil';
$lang['btn_reset'] = 'Boşalt';
$lang['btn_resendpwd'] = 'Yeni şifrəni göndər';
$lang['btn_draft'] = 'Qaralamada düzəliş etmək';
$lang['btn_recover'] = 'Qaralamanı qaytar';
$lang['btn_draftdel'] = 'Qaralamanı sil';
@ -75,7 +74,6 @@ $lang['profnoempty'] = 'istifadəci adı və e-mail ünvanı boş ola
$lang['profchanged'] = 'İstifadəçi profili uğurla yeniləndi.';
$lang['pwdforget'] = 'Şifrəni yaddan çıxartmısız? Buyurun yenisini əldə edin';
$lang['resendna'] = 'Bu wiki şifrəni yenidən göndərməyi dəstəkləmir.';
$lang['resendpwd'] = 'Yeni şifrəni göndər:';
$lang['resendpwdmissing'] = 'Formanın bütün xanəlırini doldurun.';
$lang['resendpwdnouser'] = 'Verilənlər bazasında bu ad ilə istifadəçi tapılmadı.';
$lang['resendpwdbadauth'] = 'Ativləşdirmə kodu səhvdir. Link-i tam olaraq köçürdüyünüzü yoxlayın. ';
@ -217,21 +215,6 @@ $lang['i_pol0'] = 'Tam açıq wiki (oxumaq, yazmaq, fayl yükləm
$lang['i_pol1'] = 'Acıq wiki (oxumaq hamıya olar, yazmaq və fayl yükləmək ancaq üzv olan istifadəçilərə olar)';
$lang['i_pol2'] = 'Bağlı wiki (uxumaq, yazmaq və yükləmək ancaq üzv olan istifadəçilərə olar)';
$lang['i_retry'] = 'Cəhdi təkrarla';
$lang['mu_intro'] = 'Burda siz bir neçə faylı birdən yükləyə bilərsiniz. Fayl əlavə etmək üçün "fayl seç" düyməsini sıxın. Sonda "yüklə" düyməsini sıxın.';
$lang['mu_gridname'] = 'Faylın adı';
$lang['mu_gridsize'] = 'Həcmi';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namespace';
$lang['mu_browse'] = 'Fayl seç';
$lang['mu_toobig'] = 'çox böyükdür';
$lang['mu_ready'] = 'yükləməyə hazırdı';
$lang['mu_done'] = 'başa çatdı';
$lang['mu_fail'] = 'xəta baş verdi';
$lang['mu_authfail'] = 'sessiyanın vaxtı bitdi';
$lang['mu_progress'] = '@PCT@% yükləndi';
$lang['mu_filetypes'] = 'İçazə olan fayl növləri';
$lang['mu_info'] = 'fayllar yükləndi.';
$lang['mu_lasterr'] = 'Son xəta:';
$lang['recent_global'] = '<b>%s</b> namespace-də baş vermiş dəyışıklərə baxırsınız. Siz həmçinin <a href="%s">wiki-də bu yaxında baş vermiş bütün dəyişiklərə</a> baxa bilərsiniz.';
$lang['years'] = '%d il əvvəl';
$lang['months'] = '%d ay əvvəl';

View File

@ -9,11 +9,12 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '';
$lang['singlequoteclosing'] = '';
$lang['apostrophe'] = '';
$lang['doublequoteopening'] = '“'; //&ldquo;
$lang['doublequoteclosing'] = '”'; //&rdquo;
$lang['singlequoteopening'] = ''; //&lsquo;
$lang['singlequoteclosing'] = ''; //&rsquo;
$lang['apostrophe'] = ''; //&rsquo;
$lang['btn_edit'] = 'Редактиране';
$lang['btn_source'] = 'Преглед на кода';
$lang['btn_show'] = 'Преглед на страницата';
@ -41,14 +42,15 @@ $lang['btn_backtomedia'] = 'Назад към избора на файл';
$lang['btn_subscribe'] = 'Абонаменти';
$lang['btn_profile'] = 'Профил';
$lang['btn_reset'] = 'Изчистване';
$lang['btn_resendpwd'] = 'Пращане на нова парола';
$lang['btn_draft'] = 'Редактиране на чернова';
$lang['btn_recover'] = 'Възстановяване на чернова';
$lang['btn_draftdel'] = 'Изтриване на чернова';
$lang['btn_resendpwd'] = 'Задаване на нова парола';
$lang['btn_draft'] = 'Редактиране на черновата';
$lang['btn_recover'] = 'Възстановяване на черновата';
$lang['btn_draftdel'] = 'Изтриване на черновата';
$lang['btn_revert'] = 'Възстановяване';
$lang['btn_register'] = 'Регистриране';
$lang['btn_apply'] = 'Прилагане';
$lang['btn_media'] = 'Диспечер на файлове';
$lang['loggedinas'] = 'Вписани сте като';
$lang['user'] = 'Потребител';
$lang['pass'] = 'Парола';
@ -60,9 +62,10 @@ $lang['fullname'] = 'Истинско име';
$lang['email'] = 'Електронна поща';
$lang['profile'] = 'Потребителски профил';
$lang['badlogin'] = 'Грешно потребителско име или парола.';
$lang['minoredit'] = 'Незначителни промени';
$lang['draftdate'] = 'Черновата е автоматично записана на';
$lang['minoredit'] = 'Промените са незначителни';
$lang['draftdate'] = 'Черновата е автоматично записана на'; // full dformat date will be added
$lang['nosecedit'] = 'Страницата бе междувременно променена, презареждане на страницата поради неактуална информация.';
$lang['regmissing'] = 'Моля, попълнете всички полета.';
$lang['reguexists'] = 'Вече съществува потребител с избраното име.';
$lang['regsuccess'] = 'Потребителят е създаден, а паролата е пратена по електронната поща.';
@ -72,20 +75,24 @@ $lang['regbadmail'] = 'Въведеният адрес изглежд
$lang['regbadpass'] = 'Двете въведени пароли не съвпадат, моля опитайте отново.';
$lang['regpwmail'] = 'Паролата ви за DokuWiki';
$lang['reghere'] = 'Все още нямате профил? Направете си';
$lang['profna'] = 'Wiki-то не поддържа промяна на профила';
$lang['profnochange'] = 'Няма промени.';
$lang['profnoempty'] = 'Въвеждането на име и ел. поща е задължително';
$lang['profchanged'] = 'Потребителският профил е обновен успешно.';
$lang['pwdforget'] = 'Забравили сте паролата си? Получете нова';
$lang['resendna'] = 'Wiki-то не поддържа повторно пращане на паролата.';
$lang['resendpwd'] = 'Изпращане на нова парола за';
$lang['resendpwd'] = 'Задаване на нова парола за';
$lang['resendpwdmissing'] = 'Моля, попълнете всички полета.';
$lang['resendpwdnouser'] = 'Потребителят не е намерен в базата от данни.';
$lang['resendpwdbadauth'] = 'Кодът за потвърждение е невалиден. Проверете дали сте използвали целия линк за потвърждение.';
$lang['resendpwdconfirm'] = 'Линк за потвърждение е пратен по електронната поща.';
$lang['resendpwdsuccess'] = 'Новата ви паролата е пратена по електронната поща.';
$lang['license'] = 'Ако не е посочено друго, съдържанието на Wiki-то е лицензирано под следния лиценз:';
$lang['licenseok'] = 'Бележка: Редактирайки страницата, вие се съгласявате да лицензирате промените (които сте направили) под следния лиценз:';
$lang['licenseok'] = 'Бележка: Редактирайки страницата, Вие се съгласявате да лицензирате промените (които сте направили) под следния лиценз:';
$lang['searchmedia'] = 'Търсене на файл: ';
$lang['searchmedia_in'] = 'Търсене в %s';
$lang['txt_upload'] = 'Изберете файл за качване';
@ -93,6 +100,7 @@ $lang['txt_filename'] = 'Качи като (незадължителн
$lang['txt_overwrt'] = 'Презапиши съществуващите файлове';
$lang['lockedby'] = 'В момента е заключена от';
$lang['lockexpire'] = 'Ще бъде отключена на';
$lang['js']['willexpire'] = 'Страницата ще бъде отключена за редактиране след минута.\nЗа предотвратяване на конфликти, ползвайте бутона "Преглед", за рестартиране на брояча за заключване.';
$lang['js']['notsavedyet'] = 'Незаписаните промени ще бъдат загубени. Желаете ли да продължите?';
$lang['js']['searchmedia'] = 'Търсене на файлове';
@ -119,8 +127,7 @@ $lang['js']['medialeft'] = 'Подреди изображението от
$lang['js']['mediaright'] = 'Подреди изображението отдясно.';
$lang['js']['mediacenter'] = 'Подреди изображението по средата.';
$lang['js']['medianoalign'] = 'Без подреждане.';
$lang['js']['nosmblinks'] = 'Връзките към Windows shares работят само под Internet Explorer.
Можете да копирате и поставите връзката.';
$lang['js']['nosmblinks'] = 'Връзките към Windows shares работят само под Internet Explorer.<br />Можете да копирате и поставите връзката.';
$lang['js']['linkwiz'] = 'Помощник за препратки';
$lang['js']['linkto'] = 'Препратка към: ';
$lang['js']['del_confirm'] = 'Да бъдат ли изтрити избраните елементи?';
@ -135,8 +142,10 @@ $lang['js']['media_done_btn'] = 'Готово';
$lang['js']['media_drop'] = 'Влачете и пуснете файливе тук, за да бъдат качени';
$lang['js']['media_cancel'] = 'премахване';
$lang['js']['media_overwrt'] = 'Презапиши съществуващите файлове';
$lang['rssfailed'] = 'Възникна грешка при получаването на емисията: ';
$lang['nothingfound'] = 'Нищо не е открито.';
$lang['mediaselect'] = 'Файлове';
$lang['fileupload'] = 'Качване на файлове';
$lang['uploadsucc'] = 'Качването е успешно';
@ -161,6 +170,7 @@ $lang['mediaextchange'] = 'Разширението на файла е с
$lang['reference'] = 'Връзки за';
$lang['ref_inuse'] = 'Файлът не може да бъде изтрит, защото все още се ползва от следните страници:';
$lang['ref_hidden'] = 'Някои връзки са към страници, които нямате права да четете';
$lang['hits'] = 'Съвпадения';
$lang['quickhits'] = 'Съвпадащи имена на страници';
$lang['toc'] = 'Съдържание';
@ -184,15 +194,23 @@ $lang['external_edit'] = 'външна редакция';
$lang['summary'] = 'Обобщение';
$lang['noflash'] = 'Необходим е <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> за изобразяване на съдържанието.';
$lang['download'] = 'Изтегляне на фрагмент';
$lang['tools'] = 'Инструменти';
$lang['user_tools'] = 'Инструменти за потребители';
$lang['site_tools'] = 'Инструменти за сайта';
$lang['page_tools'] = 'Инструменти за страници';
$lang['skip_to_content'] = 'към съдържанието';
$lang['mail_newpage'] = 'добавена страница: ';
$lang['mail_changed'] = 'променена страница: ';
$lang['mail_subscribe_list'] = 'променени страници в именно пространство: ';
$lang['mail_new_user'] = 'нов потребител: ';
$lang['mail_upload'] = 'качен файл: ';
$lang['changes_type'] = 'Преглед на променените';
$lang['pages_changes'] = 'Страници';
$lang['media_changes'] = 'Файлове';
$lang['both_changes'] = 'Страници и файлове';
$lang['qb_bold'] = 'Удебелен текст';
$lang['qb_italic'] = 'Курсив текст';
$lang['qb_underl'] = 'Подчертан текст';
@ -217,8 +235,11 @@ $lang['qb_media'] = 'Добавяне на изображения
$lang['qb_sig'] = 'Вмъкване на подпис';
$lang['qb_smileys'] = 'Усмивчици';
$lang['qb_chars'] = 'Специални знаци';
$lang['upperns'] = 'към майчиното именно пространство';
$lang['admin_register'] = 'Добавяне на нов потребител';
$lang['metaedit'] = 'Редактиране на метаданни';
$lang['metasaveerr'] = 'Записването на метаданните се провали';
$lang['metasaveok'] = 'Метаданните са запазени успешно';
@ -236,6 +257,7 @@ $lang['img_keywords'] = 'Ключови думи';
$lang['img_width'] = 'Ширина';
$lang['img_height'] = 'Височина';
$lang['img_manager'] = 'Преглед в диспечера на файлове';
$lang['subscr_subscribe_success'] = '%s е добавен към списъка с абониралите се за %s';
$lang['subscr_subscribe_error'] = 'Грешка при добавянето на %s към списъка с абониралите се за %s';
$lang['subscr_subscribe_noaddress'] = 'Добавянето ви към списъка с абонати не е възможно поради липсата на свързан адрес (на ел. поща) с профила ви.';
@ -243,6 +265,7 @@ $lang['subscr_unsubscribe_success'] = '%s е премахнат от списъ
$lang['subscr_unsubscribe_error'] = 'Грешка при премахването на %s от списъка с абониралите се за %s';
$lang['subscr_already_subscribed'] = '%s е вече абониран за %s';
$lang['subscr_not_subscribed'] = '%s не е абониран за %s';
// Manage page for subscriptions
$lang['subscr_m_not_subscribed'] = 'Не сте абониран за текущата страницата или именно пространство.';
$lang['subscr_m_new_header'] = 'Добави абонамент';
$lang['subscr_m_current_header'] = 'Текущи абонаменти';
@ -252,15 +275,22 @@ $lang['subscr_m_receive'] = 'Получаване';
$lang['subscr_style_every'] = 'на ел. писмо при всяка промяна';
$lang['subscr_style_digest'] = 'на ел. писмо с обобщение на промените във всяка страница (всеки %.2f дни)';
$lang['subscr_style_list'] = 'на списък с променените страници от последното ел. писмо (всеки %.2f дни)';
/* auth.class language support */
$lang['authmodfailed'] = 'Лоша настройки за удостоверяване. Моля, уведомете администратора на Wiki страницата.';
$lang['authtempfail'] = 'Удостоверяването на потребители не е възможно за момента. Ако продължи дълго, моля уведомете администратора на Wiki страницата.';
$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече след %d дни. Препорачително е да я смените по-скоро.';
/* installer strings */
$lang['i_chooselang'] = 'Изберете вашия изик';
$lang['i_installer'] = 'Инсталатор на DokuWiki';
$lang['i_wikiname'] = 'Име на Wiki-то';
$lang['i_enableacl'] = 'Ползване на списък за достъп (ACL) [препоръчително]';
$lang['i_superuser'] = 'Супер потребител';
$lang['i_problems'] = 'Открити са проблеми, които възпрепятстват инсталирането. Ще можете да продължите след като отстраните долуизброените проблеми.';
$lang['i_modified'] = 'Поради мерки за сигурност инсталаторът работи само с нови и непроменени инсталационни файлове. Трябва да разархивирате отново файловете от сваления архив или да се посъветвате с <a href="http://dokuwiki.org/install">Инструкциите за инсталиране на Dokuwiki</a>.';
$lang['i_modified'] = 'Поради мерки за сигурност инсталаторът работи само с нови и непроменени инсталационни файлове.
Трябва да разархивирате отново файловете от сваления архив или да се посъветвате с <a href="http://dokuwiki.org/install">Инструкциите за инсталиране на Dokuwiki</a>.';
$lang['i_funcna'] = 'PHP функцията <code>%s</code> не е достъпна. Може би е забранена от доставчика на хостинг.';
$lang['i_phpver'] = 'Инсталираната версия <code>%s</code> на PHP е по-стара от необходимата <code>%s</code>. Актуализирайте PHP инсталацията.';
$lang['i_permfail'] = '<code>%s</code> не е достъпна за писане от DokuWiki. Трябва да промените правата за достъп до директорията!';
@ -269,29 +299,16 @@ $lang['i_writeerr'] = '<code>%s</code> не можа да бъде с
$lang['i_badhash'] = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - непозволена или празна стойност';
$lang['i_success'] = 'Настройването приключи успешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php">Вашето ново DokuWiki</a>.';
$lang['i_failure'] = 'Възникнаха грешки при записването на файловете с настройки. Вероятно ще се наложи да ги поправите ръчно, за да можете да ползвате <a href="doku.php">Вашето ново DokuWiki</a>.';
$lang['i_failure'] = 'Възникнаха грешки при записването на файловете с настройки. Вероятно ще се наложи да ги поправите ръчно,
за да можете да ползвате <a href="doku.php">Вашето ново DokuWiki</a>.';
$lang['i_policy'] = 'Първоначална политика за достъп';
$lang['i_pol0'] = 'Отворено Wiki (всеки може да чете, пише и качва)';
$lang['i_pol1'] = 'Публично Wiki (всеки може да чете, само регистрирани пишат и качват)';
$lang['i_pol2'] = 'Затворено Wiki (само регистрирани четат, пишат и качват)';
$lang['i_retry'] = 'Повторен опит';
$lang['i_license'] = 'Моля, изберете лиценз под който желаете да публикувате съдържанието:';
$lang['mu_intro'] = 'От тук можете да качите няколко файла наведнъж. Натиснете бутона "Избиране", изберете файлове и натиснете "Качване".
';
$lang['mu_gridname'] = 'Име на файла';
$lang['mu_gridsize'] = 'Големина';
$lang['mu_gridstat'] = 'Състояние';
$lang['mu_namespace'] = 'Именно пространство';
$lang['mu_browse'] = 'Избиране';
$lang['mu_toobig'] = 'прекалено голям';
$lang['mu_ready'] = 'готов за качване';
$lang['mu_done'] = 'качен';
$lang['mu_fail'] = 'неуспешно качване';
$lang['mu_authfail'] = 'приключила сесия';
$lang['mu_progress'] = '@PCT@% качен';
$lang['mu_filetypes'] = 'Позволени файлови разширения';
$lang['mu_info'] = 'качени файла.';
$lang['mu_lasterr'] = 'Последна грешка:';
$lang['recent_global'] = 'В момента преглеждате промените в именно пространство <b>%s</b>. Може да прегледате и <a href="%s">промените в цялото Wiki</a>.';
$lang['years'] = 'преди %d години';
$lang['months'] = 'преди %d месеца';
@ -300,7 +317,9 @@ $lang['days'] = 'преди %d дни';
$lang['hours'] = 'преди %d часа';
$lang['minutes'] = 'преди %d минути';
$lang['seconds'] = 'преди %d секунди';
$lang['wordblock'] = 'Направените от вас промени не са съхранени, защото съдържат забранен текст (SPAM).';
$lang['wordblock'] = 'Направените от Вас промени не са съхранени, защото съдържат забранен текст (SPAM).';
$lang['media_uploadtab'] = 'Качване';
$lang['media_searchtab'] = 'Търсене';
$lang['media_file'] = 'Файл';
@ -311,7 +330,7 @@ $lang['media_list_thumbs'] = 'Миниатюри';
$lang['media_list_rows'] = 'Редове';
$lang['media_sort_name'] = 'Име';
$lang['media_sort_date'] = 'Дата';
$lang['media_namespaces'] = 'Изберете именно пространство';
$lang['media_namespaces'] = 'Изберете:';
$lang['media_files'] = 'Файлове в %s';
$lang['media_upload'] = 'Качване в %s';
$lang['media_search'] = 'Търсене в %s';
@ -324,4 +343,7 @@ $lang['media_perm_read'] = 'За съжаление нямате дост
$lang['media_perm_upload'] = 'За съжаление нямате достатъчно права, за да можете да качите файла.';
$lang['media_update'] = 'Качване на нова версия';
$lang['media_restore'] = 'Възстановяване на тази версия';
$lang['plugin_install_err'] = 'Неправилно инсталирана приставка. Моля, преименувайте директорията \'%s\' на \'%s\'.';
//Setup VIM: ex: et ts=2 :

4
inc/lang/bg/resetpwd.txt Normal file
View File

@ -0,0 +1,4 @@
====== Задаване на нова парола ======
Моля, въведете нова парола за вашия акаунт в Wiki страницата.

View File

@ -41,7 +41,6 @@ $lang['btn_subscribe'] = 'Subscriure\'s a la pàgina';
$lang['btn_unsubscribe'] = 'Desubscriure\'s de la pàgina';
$lang['btn_profile'] = 'Actualisar perfil';
$lang['btn_reset'] = 'Reiniciar';
$lang['btn_resendpwd'] = 'Enviar contrasenya nova';
$lang['btn_draft'] = 'Editar borrador';
$lang['btn_recover'] = 'Recuperar borrador';
$lang['btn_draftdel'] = 'Borrar borrador';
@ -76,7 +75,6 @@ $lang['profnoempty'] = 'No es permet deixar el nom o la direcció de c
$lang['profchanged'] = 'Perfil de l\'usuari actualisat.';
$lang['pwdforget'] = '¿Ha oblidat la contrasenya? Demane\'n una nova';
$lang['resendna'] = 'Este wiki no permet reenviar la contrasenya.';
$lang['resendpwd'] = 'Enviar contrasenya nova per a';
$lang['resendpwdmissing'] = 'Disculpe, pero deu omplir tots els camps.';
$lang['resendpwdnouser'] = 'Disculpe, pero no trobem ad est usuari en la base de senyes.';
$lang['resendpwdbadauth'] = 'Disculpe, pero este còdic d\'autenticació no es vàlit. Verifique que haja utilisat el víncul de confirmació sancer.';
@ -221,21 +219,6 @@ $lang['i_pol0'] = 'Wiki obert (llegir, escriure i enviar tots)';
$lang['i_pol1'] = 'Wiki públic (llegir tots, escriure i enviar només usuaris registrats)';
$lang['i_pol2'] = 'Wiki tancat (llegir, escriure i enviar només usuaris registrats)';
$lang['i_retry'] = 'Reintentar';
$lang['mu_intro'] = 'Des d\'ací pot enviar diversos archius d\'una volta. Pulse el botó d\'examinar per a afegir-los a la coa. Pulse enviar quan ho tinga.';
$lang['mu_gridname'] = 'Nom d\'archiu';
$lang['mu_gridsize'] = 'Tamany';
$lang['mu_gridstat'] = 'Estat';
$lang['mu_namespace'] = 'Espai de noms';
$lang['mu_browse'] = 'Examinar';
$lang['mu_toobig'] = 'massa gran';
$lang['mu_ready'] = 'preparat per a enviar';
$lang['mu_done'] = 'complet';
$lang['mu_fail'] = 'fallit';
$lang['mu_authfail'] = 'la sessió ha vençut';
$lang['mu_progress'] = '@PCT@% enviat';
$lang['mu_filetypes'] = 'Classes d\'archiu permeses';
$lang['mu_info'] = 'archius enviats.';
$lang['mu_lasterr'] = 'Últim erro:';
$lang['recent_global'] = 'Està veent els canvis dins de l\'espai de noms <b>%s</b>. També pot <a href="%s">vore els canvis recents en el wiki sancer</a>.';
$lang['years'] = 'fa %d anys';
$lang['months'] = 'fa %d mesos';

View File

@ -41,7 +41,6 @@ $lang['btn_subscribe'] = 'Subscripció a canvis d\'aquesta pàgina';
$lang['btn_unsubscribe'] = 'Cancel·la subscripció a pàgina';
$lang['btn_profile'] = 'Actualització del perfil';
$lang['btn_reset'] = 'Reinicia';
$lang['btn_resendpwd'] = 'Envia nova contrasenya';
$lang['btn_draft'] = 'Edita esborrany';
$lang['btn_recover'] = 'Recupera esborrany';
$lang['btn_draftdel'] = 'Suprimeix esborrany';
@ -76,7 +75,6 @@ $lang['profnoempty'] = 'No es pot deixar en blanc el nom o l\'adreça
$lang['profchanged'] = 'El perfil d\'usuari s\'ha actualitzat correctament.';
$lang['pwdforget'] = 'Heu oblidat la contrasenya? Podeu obtenir-ne una de nova.';
$lang['resendna'] = 'Aquest wiki no permet tornar a enviar la contrasenya.';
$lang['resendpwd'] = 'Enviament d\'una nova contrasenya per a';
$lang['resendpwdmissing'] = 'Heu d\'emplenar tots els camps.';
$lang['resendpwdnouser'] = 'No s\'ha pogut trobar aquest usuari a la base de dades.';
$lang['resendpwdbadauth'] = 'Aquest codi d\'autenticació no és vàlid. Assegureu-vos d\'utilitzar l\'enllaç de confirmació complet.';
@ -217,21 +215,6 @@ $lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penj
$lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)';
$lang['i_pol2'] = 'Wiki tancat (només els usuaris registrats poden llegir, escriure i penjar fitxers)';
$lang['i_retry'] = 'Reintenta';
$lang['mu_intro'] = 'Aquí podeu penjar múltiples fitxers d\'una vegada. Feu clic en el botó Explora per afegir els fitxers a la cua. Després, premeu Penja.';
$lang['mu_gridname'] = 'Nom del fitxer';
$lang['mu_gridsize'] = 'Mida';
$lang['mu_gridstat'] = 'Estat';
$lang['mu_namespace'] = 'Espai';
$lang['mu_browse'] = 'Explora';
$lang['mu_toobig'] = 'massa gran';
$lang['mu_ready'] = 'llest per a penjar';
$lang['mu_done'] = 'complet';
$lang['mu_fail'] = 'error';
$lang['mu_authfail'] = 'la sessió ha vençut';
$lang['mu_progress'] = 'càrrega @PCT@%';
$lang['mu_filetypes'] = 'Tipus de fitxer permesos';
$lang['mu_info'] = 'fitxers penjats.';
$lang['mu_lasterr'] = 'Darrer error:';
$lang['recent_global'] = 'Esteu veient els canvis recents de l\'espai <strong>%s</strong>. També podeu veure els <a href="%s">canvis recents de tot el wiki</a>.';
$lang['years'] = 'fa %d anys';
$lang['months'] = 'fa %d mesos';

View File

@ -10,6 +10,8 @@
* @author Marek Sacha <sachamar@fel.cvut.cz>
* @author Lefty <lefty@multihost.cz>
* @author Vojta Beran <xmamut@email.cz>
* @author zbynek.krivka@seznam.cz
* @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -45,12 +47,13 @@ $lang['btn_backtomedia'] = 'Zpět do Výběru dokumentu';
$lang['btn_subscribe'] = 'Odebírat emailem změny stránky';
$lang['btn_profile'] = 'Upravit profil';
$lang['btn_reset'] = 'Reset';
$lang['btn_resendpwd'] = 'Zaslat nové heslo';
$lang['btn_draft'] = 'Upravit koncept';
$lang['btn_recover'] = 'Obnovit koncept';
$lang['btn_draftdel'] = 'Vymazat koncept';
$lang['btn_revert'] = 'Vrátit zpět';
$lang['btn_register'] = 'Registrovat';
$lang['btn_apply'] = 'Použít';
$lang['btn_media'] = 'Správa médií';
$lang['loggedinas'] = 'Přihlášen(a) jako';
$lang['user'] = 'Uživatelské jméno';
$lang['pass'] = 'Heslo';
@ -80,7 +83,6 @@ $lang['profnoempty'] = 'Nelze zadat prázdné jméno nebo mailová adr
$lang['profchanged'] = 'Uživatelský profil změněn.';
$lang['pwdforget'] = 'Zapomněli jste heslo? Nechte si zaslat nové';
$lang['resendna'] = 'Tato wiki neumožňuje zasílání nových hesel.';
$lang['resendpwd'] = 'Odeslat nové heslo pro uživatele';
$lang['resendpwdmissing'] = 'Musíte vyplnit všechny položky.';
$lang['resendpwdnouser'] = 'Bohužel takový uživatel v systému není.';
$lang['resendpwdbadauth'] = 'Autorizační kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?';
@ -95,7 +97,7 @@ $lang['txt_filename'] = 'Wiki jméno (volitelné)';
$lang['txt_overwrt'] = 'Přepsat existující soubor';
$lang['lockedby'] = 'Právě zamknuto:';
$lang['lockexpire'] = 'Zámek vyprší:';
$lang['js']['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.';
$lang['js']['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.';
$lang['js']['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny.
Chcete opravdu pokračovat?';
$lang['js']['searchmedia'] = 'Hledat soubory';
@ -127,6 +129,17 @@ Přesto tento odkaz můžete zkopírovat a vložit jinde.';
$lang['js']['linkwiz'] = 'Průvodce odkazy';
$lang['js']['linkto'] = 'Odkaz na:';
$lang['js']['del_confirm'] = 'Vymazat tuto položku?';
$lang['js']['restore_confirm'] = 'Opravdu obnovit tuto verzi?';
$lang['js']['media_diff'] = 'Prohlédnout rozdíly:';
$lang['js']['media_diff_both'] = 'Vedle sebe';
$lang['js']['media_diff_opacity'] = 'Zvýraznění';
$lang['js']['media_diff_portions'] = 'Osvědčit';
$lang['js']['media_select'] = 'Vybrat soubory...';
$lang['js']['media_upload_btn'] = 'Nahrát';
$lang['js']['media_done_btn'] = 'Hotovo';
$lang['js']['media_drop'] = 'Sem přetáhněte soubory pro nahrátí';
$lang['js']['media_cancel'] = 'odstranit';
$lang['js']['media_overwrt'] = 'Přepsat existující soubory';
$lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: ';
$lang['nothingfound'] = 'Nic nenalezeno.';
$lang['mediaselect'] = 'Výběr dokumentu';
@ -161,7 +174,7 @@ $lang['yours'] = 'Vaše verze';
$lang['diff'] = 'Zobrazit rozdíly vůči aktuální verzi';
$lang['diff2'] = 'Zobrazit rozdíly mezi vybranými verzemi';
$lang['difflink'] = 'Odkaz na výstup diff';
$lang['diff_type'] = 'Prohlédnout rozdíly:';
$lang['diff_type'] = 'Zobrazit rozdíly:';
$lang['diff_inline'] = 'Vložené';
$lang['diff_side'] = 'Přidané';
$lang['line'] = 'Řádek';
@ -176,11 +189,20 @@ $lang['external_edit'] = 'upraveno mimo DokuWiki';
$lang['summary'] = 'Komentář k úpravám';
$lang['noflash'] = 'Pro přehrání obsahu potřebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
$lang['download'] = 'Stáhnout snippet';
$lang['tools'] = 'Nástroje';
$lang['user_tools'] = 'Uživatelské nástroje';
$lang['site_tools'] = 'Nástroje pro tento web';
$lang['page_tools'] = 'Nástroje pro stránku';
$lang['skip_to_content'] = 'jít k obsahu';
$lang['mail_newpage'] = 'nová stránka:';
$lang['mail_changed'] = 'změna stránky:';
$lang['mail_subscribe_list'] = 'stránky změněné ve jmenném prostoru:';
$lang['mail_new_user'] = 'nový uživatel:';
$lang['mail_upload'] = 'načtený dokument:';
$lang['changes_type'] = 'Prohlednou změny ';
$lang['pages_changes'] = 'stránek';
$lang['media_changes'] = 'souborů médií';
$lang['both_changes'] = 'stránek i médií';
$lang['qb_bold'] = 'Tučně';
$lang['qb_italic'] = 'Kurzíva';
$lang['qb_underl'] = 'Podtržení';
@ -221,6 +243,9 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Formát';
$lang['img_camera'] = 'Typ fotoaparátu';
$lang['img_keywords'] = 'Klíčová slova';
$lang['img_width'] = 'Šířka';
$lang['img_height'] = 'Výška';
$lang['img_manager'] = 'Zobrazit ve správě médií';
$lang['subscr_subscribe_success'] = '%s byl přihlášen do seznamu odběratelů %s';
$lang['subscr_subscribe_error'] = 'Došlo k chybě při přihlašování %s do seznamu odběratelů %s';
$lang['subscr_subscribe_noaddress'] = 'K Vašemu loginu neexistuje žádná adresa, nemohl jste být přihlášen do seznamu odběratelů.';
@ -235,8 +260,8 @@ $lang['subscr_m_unsubscribe'] = 'Odhlásit z odběru změn emailem';
$lang['subscr_m_subscribe'] = 'Přihlásit se k odběru změn emailem';
$lang['subscr_m_receive'] = 'Přejete si dostávat';
$lang['subscr_style_every'] = 'email pro každou změnu';
$lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku';
$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu';
$lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku (každé %.2f dny/dní)';
$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu (každé %.2f dny/dní)';
$lang['authmodfailed'] = 'Autentizace uživatelů je špatně nastavena. Informujte prosím správce této wiki.';
$lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.';
$lang['i_chooselang'] = 'Vyberte si jazyk';
@ -245,7 +270,7 @@ $lang['i_wikiname'] = 'Název wiki';
$lang['i_enableacl'] = 'Zapnout ACL (doporučeno)';
$lang['i_superuser'] = 'Správce';
$lang['i_problems'] = 'Instalátor narazil na níže popsané problémy. Nelze pokračovat v instalaci, dokud je neopravíte.';
$lang['i_modified'] = 'Instalátor bude z bezpečnostních důvodů pracovat pouze s čistou a ještě neupravenou instalací DokuWiki. Buď znovu rozbalte souboru z instalačního balíčku nebo se zkuste poradit s <a href="http://dokuwiki.org/install">instrukcemi pro instalaci DokuWiki</a>.';
$lang['i_modified'] = 'Instalátor bude z bezpečnostních důvodů pracovat pouze s čistou a ještě neupravenou instalací DokuWiki. Buď znovu rozbalte soubory z instalačního balíčku, nebo zkuste prostudovat <a href="http://dokuwiki.org/install">instrukce pro instalaci DokuWiki</a>.';
$lang['i_funcna'] = 'PHP funkce <code>%s</code> není dostupná. Váš webhosting ji možná z nějakého důvodu vypnul.';
$lang['i_phpver'] = 'Verze vaší instalace PHP <code>%s</code> je nižší než požadovaná <code>%s</code>. Budete muset aktualizovat svou instalaci PHP.';
$lang['i_permfail'] = 'DokuWiki nemůže zapisovat do <code>%s</code>. Budete muset opravit práva k tomuto adresáři.';
@ -261,27 +286,36 @@ $lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a
$lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)';
$lang['i_retry'] = 'Zkusit znovu';
$lang['i_license'] = 'Vyberte prosím licenci obsahu:';
$lang['mu_intro'] = 'Zde můžete načíst více souborů najednou. Pro přidání souborů do fronty stiskněte tlačítko "Procházet". Až budete hotovi, stiskněte "Načíst".';
$lang['mu_gridname'] = 'Název souboru';
$lang['mu_gridsize'] = 'Velikost';
$lang['mu_gridstat'] = 'Stav';
$lang['mu_namespace'] = 'Jmenný prostor';
$lang['mu_browse'] = 'Procházet';
$lang['mu_toobig'] = 'příliš velké';
$lang['mu_ready'] = 'připraveno k načtení';
$lang['mu_done'] = 'hotovo';
$lang['mu_fail'] = 'selhalo';
$lang['mu_authfail'] = 'vypršela session';
$lang['mu_progress'] = '@PCT@% načten';
$lang['mu_filetypes'] = 'Povolené typy souborů';
$lang['mu_info'] = 'soubory načteny.';
$lang['mu_lasterr'] = 'Poslední chyba:';
$lang['recent_global'] = 'Právě si prohlížíte změny ve jmenném prostoru <b>%s</b>. Také si můžete <a href="%s">zobrazit změny v celé wiki</a>.';
$lang['years'] = 'před % roky';
$lang['months'] = 'před % měsíci';
$lang['weeks'] = 'před % týdny';
$lang['days'] = 'před % dny';
$lang['hours'] = 'před % hodinami';
$lang['minutes'] = 'před % minutami';
$lang['seconds'] = 'před % sekundami';
$lang['years'] = 'před %d roky';
$lang['months'] = 'před %d měsíci';
$lang['weeks'] = 'před %d týdny';
$lang['days'] = 'před %d dny';
$lang['hours'] = 'před %d hodinami';
$lang['minutes'] = 'před %d minutami';
$lang['seconds'] = 'před %d sekundami';
$lang['wordblock'] = 'Vaše změny nebyly uloženy, protože obsahují blokovaný text(spam).';
$lang['media_uploadtab'] = 'Nahrát';
$lang['media_searchtab'] = 'Hledat';
$lang['media_file'] = 'Soubor';
$lang['media_viewtab'] = 'Zobrazit';
$lang['media_edittab'] = 'Upravit';
$lang['media_historytab'] = 'Historie';
$lang['media_list_thumbs'] = 'Zmenšeniny';
$lang['media_list_rows'] = 'Řádky';
$lang['media_sort_name'] = 'Jméno';
$lang['media_sort_date'] = 'Datum';
$lang['media_namespaces'] = 'Vyber jmenný prostor';
$lang['media_files'] = 'Soubory v %s';
$lang['media_upload'] = 'Upload do %s';
$lang['media_search'] = 'Hledat v %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s na %s';
$lang['media_edit'] = 'Upravit %s';
$lang['media_history'] = 'Historie %s';
$lang['media_meta_edited'] = 'metadata upravena';
$lang['media_perm_read'] = 'Bohužel, nemáte práva číst soubory.';
$lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.';
$lang['media_update'] = 'Nahrát novou verzi';
$lang['media_restore'] = 'Obnovit tuto verzi';
$lang['plugin_install_err'] = 'Plugin je špatně nainstalován. Přejmenujte adresář pluginu \'%s\' na \'%s\'.';

View File

@ -48,7 +48,6 @@ $lang['btn_backtomedia'] = 'Tilbage til valg af mediefil';
$lang['btn_subscribe'] = 'Abonnér på ændringer';
$lang['btn_profile'] = 'Opdatér profil';
$lang['btn_reset'] = 'Nulstil';
$lang['btn_resendpwd'] = 'Send ny adgangskode';
$lang['btn_draft'] = 'Redigér kladde';
$lang['btn_recover'] = 'Gendan kladde';
$lang['btn_draftdel'] = 'Slet kladde';
@ -83,7 +82,6 @@ $lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt
$lang['profchanged'] = 'Brugerprofil opdateret korrekt.';
$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få et nyt';
$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.';
$lang['resendpwd'] = 'Send nyt adgangskode for';
$lang['resendpwdmissing'] = 'Du skal udfylde alle felter.';
$lang['resendpwdnouser'] = 'Vi kan ikke finde denne bruger i vores database.';
$lang['resendpwdbadauth'] = 'Beklager, denne autoriseringskode er ikke gyldig. Kontroller venligst at du benyttede det fulde link til bekræftelse.';
@ -262,21 +260,6 @@ $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrere
$lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)';
$lang['i_retry'] = 'Forsøg igen';
$lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:';
$lang['mu_intro'] = 'Her kan du overføre flere filer af gangen. Klik på gennemse for at tilføje dem til køen. Tryk på overføre knappen når du er klar.';
$lang['mu_gridname'] = 'Filnavn';
$lang['mu_gridsize'] = 'Størrelse';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Navnerum';
$lang['mu_browse'] = 'gennemse';
$lang['mu_toobig'] = 'for stor';
$lang['mu_ready'] = 'klar til overføre';
$lang['mu_done'] = 'færdig';
$lang['mu_fail'] = 'fejlede';
$lang['mu_authfail'] = 'session udløb';
$lang['mu_progress'] = '@PCT@% upload';
$lang['mu_filetypes'] = 'Tilladte filtyper';
$lang['mu_info'] = 'filer var overføret.';
$lang['mu_lasterr'] = 'Sidste fejl:';
$lang['recent_global'] = 'Du ser lige nu ændringerne i <b>%s</b> navnerummet. Du kan også <a href="%s">se de sidste ændringer for hele wiki siden </a>';
$lang['years'] = '%d år siden';
$lang['months'] = '%d måned siden';

View File

@ -54,7 +54,7 @@ $lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl';
$lang['btn_subscribe'] = 'Aboverwaltung';
$lang['btn_profile'] = 'Benutzerprofil';
$lang['btn_reset'] = 'Zurücksetzen';
$lang['btn_resendpwd'] = 'Sende neues Passwort';
$lang['btn_resendpwd'] = 'Setze neues Passwort';
$lang['btn_draft'] = 'Entwurf bearbeiten';
$lang['btn_recover'] = 'Entwurf wiederherstellen';
$lang['btn_draftdel'] = 'Entwurf löschen';
@ -91,7 +91,7 @@ $lang['profnoempty'] = 'Es muss ein Name oder eine E-Mail Adresse ange
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort senden für';
$lang['resendpwd'] = 'Neues Passwort setzen für';
$lang['resendpwdmissing'] = 'Es tut mir Leid, aber du musst alle Felder ausfüllen.';
$lang['resendpwdnouser'] = 'Es tut mir Leid, aber der Benutzer existiert nicht in unserer Datenbank.';
$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet haben.';
@ -155,7 +155,7 @@ $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen';
$lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?';
$lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.';
$lang['uploadexist'] = 'Datei existiert bereits. Keine Änderungen vorgenommen.';
$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung % überein.';
$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung %s überein.';
$lang['uploadspam'] = 'Hochladen verweigert: Treffer auf der Spamliste.';
$lang['uploadxss'] = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.';
$lang['uploadsize'] = 'Die hochgeladene Datei war zu groß. (max. %s)';
@ -168,7 +168,7 @@ $lang['accessdenied'] = 'Du hast keinen Zugriff auf diese Seite';
$lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:';
$lang['mediaview'] = 'Originaldatei öffnen';
$lang['mediaroot'] = 'Wurzel';
$lang['mediaupload'] = 'Lade hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stelle diese dem Dateinamen im Feld "Hochladen als" durch Doppelpunkt getrennt voran.';
$lang['mediaupload'] = 'Lade hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stelle diese dem Dateinamen durch Doppelpunkt getrennt voran, nachdem Du die Datei ausgewählt hast.';
$lang['mediaextchange'] = 'Dateiendung vom .%s nach .%s geändert!';
$lang['reference'] = 'Verwendung von';
$lang['ref_inuse'] = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:';
@ -288,21 +288,6 @@ $lang['i_pol1'] = 'Öffentliches Wiki (lesen für alle, schreiben
$lang['i_pol2'] = 'Geschlossenes Wiki (lesen, schreiben, hochladen nur für registrierte Nutzer)';
$lang['i_retry'] = 'Wiederholen';
$lang['i_license'] = 'Bitte wähle die Lizenz aus unter der die Wiki-Inhalte veröffentlicht werden sollen:';
$lang['mu_intro'] = 'In diesem Bereich kannst du mehrere Dateien gleichzeitig hochladen. Benutze die Schaltfläche "Durchsuchen", um sie der Warteschlange zuzufügen. Betätige die Schaltfläche "Hochladen", um die Übertragung zu starten.';
$lang['mu_gridname'] = 'Dateiname';
$lang['mu_gridsize'] = 'Größe';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namensraum';
$lang['mu_browse'] = 'Durchsuchen';
$lang['mu_toobig'] = 'zu groß';
$lang['mu_ready'] = 'bereit zum Hochladen';
$lang['mu_done'] = 'fertig';
$lang['mu_fail'] = 'gescheitert';
$lang['mu_authfail'] = 'Sitzung abgelaufen';
$lang['mu_progress'] = '@PCT@% hochgeladen';
$lang['mu_filetypes'] = 'Erlaubte Dateitypen';
$lang['mu_info'] = 'Dateien hochgeladen.';
$lang['mu_lasterr'] = 'Letzter Fehler:';
$lang['recent_global'] = 'Im Moment siehst du die Änderungen im Namensraum <b>%s</b>. Du kannst auch <a href="%s">die Änderungen im gesamten Wiki sehen</a>.';
$lang['years'] = 'vor %d Jahren';
$lang['months'] = 'vor %d Monaten';

View File

@ -56,7 +56,7 @@ $lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl';
$lang['btn_subscribe'] = 'Aboverwaltung';
$lang['btn_profile'] = 'Benutzerprofil';
$lang['btn_reset'] = 'Zurücksetzen';
$lang['btn_resendpwd'] = 'Sende neues Passwort';
$lang['btn_resendpwd'] = 'Setze neues Passwort';
$lang['btn_draft'] = 'Entwurf bearbeiten';
$lang['btn_recover'] = 'Entwurf wiederherstellen';
$lang['btn_draftdel'] = 'Entwurf löschen';
@ -93,7 +93,7 @@ $lang['profnoempty'] = 'Es muss ein Name und eine E-Mail-Adresse angeg
$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort senden für';
$lang['resendpwd'] = 'Neues Passwort setzen für';
$lang['resendpwdmissing'] = 'Es tut mir Leid, aber Sie müssen alle Felder ausfüllen.';
$lang['resendpwdnouser'] = 'Es tut mir Leid, aber der Benutzer existiert nicht in unserer Datenbank.';
$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stellen Sie sicher, dass Sie den kompletten Bestätigungslink verwendet haben.';
@ -170,7 +170,7 @@ $lang['accessdenied'] = 'Es ist Ihnen nicht gestattet, diese Seite zu s
$lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:';
$lang['mediaview'] = 'Originaldatei öffnen';
$lang['mediaroot'] = 'Wurzel';
$lang['mediaupload'] = 'Laden Sie hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stellen Sie diese dem Dateinamen im Feld "Hochladen als" durch Doppelpunkt getrennt voran.';
$lang['mediaupload'] = 'Laden Sie hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stellen Sie diese dem Dateinamen durch Doppelpunkt getrennt voran, nachdem Sie die Datei ausgewählt haben.';
$lang['mediaextchange'] = 'Dateiendung vom .%s nach .%s geändert!';
$lang['reference'] = 'Verwendung von';
$lang['ref_inuse'] = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:';
@ -198,6 +198,11 @@ $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.';
$lang['download'] = 'Schnipsel herunterladen';
$lang['tools'] = 'Werkzeuge';
$lang['user_tools'] = 'Benutzer-Werkzeuge';
$lang['site_tools'] = 'Webseiten-Werkzeuge';
$lang['page_tools'] = 'Seiten-Werkzeuge';
$lang['skip_to_content'] = 'zum Inhalt springen';
$lang['mail_newpage'] = 'Neue Seite:';
$lang['mail_changed'] = 'Seite geändert:';
$lang['mail_subscribe_list'] = 'Geänderte Seiten im Namensraum:';
@ -268,6 +273,7 @@ $lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede ver
$lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)';
$lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.';
$lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.';
$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab, Sie sollten es bald ändern.';
$lang['i_chooselang'] = 'Wählen Sie Ihre Sprache';
$lang['i_installer'] = 'DokuWiki Installation';
$lang['i_wikiname'] = 'Wiki-Name';
@ -290,21 +296,6 @@ $lang['i_pol1'] = 'Öffentliches Wiki (lesen für alle, schreiben
$lang['i_pol2'] = 'Geschlossenes Wiki (lesen, schreiben, hochladen nur für registrierte Nutzer)';
$lang['i_retry'] = 'Wiederholen';
$lang['i_license'] = 'Bitte wählen Sie die Lizenz, unter die Sie Ihre Inhalte stellen möchten:';
$lang['mu_intro'] = 'In diesem Bereich können Sie mehrere Dateien gleichzeitig hochladen. Benutzen Sie die Schaltfläche "Durchsuchen" um sie der Warteschlange zuzufügen. Betätigen Sie die Schaltfläche "Hochladen" um die Übertragung zu starten.';
$lang['mu_gridname'] = 'Dateiname';
$lang['mu_gridsize'] = 'Größe';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namensraum';
$lang['mu_browse'] = 'Durchsuchen';
$lang['mu_toobig'] = 'zu groß';
$lang['mu_ready'] = 'bereit zum Hochladen';
$lang['mu_done'] = 'fertig';
$lang['mu_fail'] = 'gescheitert';
$lang['mu_authfail'] = 'Sitzung abgelaufen';
$lang['mu_progress'] = '@PCT@% hochgeladen';
$lang['mu_filetypes'] = 'Erlaubte Dateitypen';
$lang['mu_info'] = 'Dateien hochgeladen!';
$lang['mu_lasterr'] = 'Letzter Fehler:';
$lang['recent_global'] = 'Im Moment sehen Sie die Änderungen im Namensraum <b>%s</b>. Sie können auch <a href="%s">die Änderungen im gesamten Wiki sehen</a>.';
$lang['years'] = 'vor %d Jahren';
$lang['months'] = 'vor %d Monaten';
@ -330,8 +321,8 @@ $lang['media_upload'] = 'In den <strong>%s</strong> Namespace hochladen
$lang['media_search'] = 'Im Namespace <strong>%s</strong> suchen.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s in %s';
$lang['media_edit'] = 'Bearbeiten';
$lang['media_history'] = 'Versionsverlauf der Datei.';
$lang['media_edit'] = '%s bearbeiten';
$lang['media_history'] = 'Versionsverlauf von %s.';
$lang['media_meta_edited'] = 'Meta-Informationen bearbeitet';
$lang['media_perm_read'] = 'Sie besitzen nicht die notwendigen Berechtigungen um die Datei anzuzeigen.';
$lang['media_perm_upload'] = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.';

4
inc/lang/de/resetpwd.txt Normal file
View File

@ -0,0 +1,4 @@
====== Neues Passwort setzen ======
Bitte geben Sie ein neues Passwort für Ihren Wiki-Zugang ein.

View File

@ -43,7 +43,6 @@ $lang['btn_backtomedia'] = 'Επιστροφή στην επιλογή α
$lang['btn_subscribe'] = 'Εγγραφή σε λήψη ενημερώσεων σελίδας';
$lang['btn_profile'] = 'Επεξεργασία προφίλ';
$lang['btn_reset'] = 'Ακύρωση';
$lang['btn_resendpwd'] = 'Αποστολή νέου κωδικού';
$lang['btn_draft'] = 'Επεξεργασία αυτόματα αποθηκευμένης σελίδας';
$lang['btn_recover'] = 'Επαναφορά αυτόματα αποθηκευμένης σελίδας';
$lang['btn_draftdel'] = 'Διαγραφή αυτόματα αποθηκευμένης σελίδας';
@ -80,7 +79,6 @@ $lang['profnoempty'] = 'Δεν επιτρέπεται κενό όνο
$lang['profchanged'] = 'Το προφίλ χρήστη τροποποιήθηκε επιτυχώς.';
$lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
$lang['resendna'] = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.';
$lang['resendpwd'] = 'Αποστολή νέων κωδικών για τον χρήστη';
$lang['resendpwdmissing'] = 'Πρέπει να συμπληρώσετε όλα τα πεδία.';
$lang['resendpwdnouser'] = 'Αυτός ο χρήστης δεν υπάρχει στα αρχεία μας.';
$lang['resendpwdbadauth'] = 'Αυτός ο κωδικός ενεργοποίησης δεν είναι έγκυρος.';
@ -280,21 +278,6 @@ $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μπορούν
$lang['i_pol2'] = 'Κλειστό Wiki (μόνο οι εγγεγραμμένοι χρήστες μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)';
$lang['i_retry'] = 'Νέα προσπάθεια';
$lang['i_license'] = 'Παρακαλώ επιλέξτε την άδεια που θα χρησιμοποιήσετε για την διάθεση του περιεχομένου σας:';
$lang['mu_intro'] = 'Εδώ μπορείτε να φορτώσετε ταυτόχρονα πολλαπλά αρχεία. Πατήστε στο κουμπί προεπισκόπησης για να τα προσθέσετε στη λίστα. Πατήστε στο κουμπί μεταφόρτωσης όταν έχετε τελειώσει.';
$lang['mu_gridname'] = 'Όνομα αρχείου';
$lang['mu_gridsize'] = 'Μέγεθος';
$lang['mu_gridstat'] = 'Κατάσταση';
$lang['mu_namespace'] = 'Φάκελος';
$lang['mu_browse'] = 'Επισκόπηση';
$lang['mu_toobig'] = 'υπερβολικά μεγάλο';
$lang['mu_ready'] = 'έτοιμο για φόρτωση';
$lang['mu_done'] = 'ολοκληρώθηκε';
$lang['mu_fail'] = 'απέτυχε';
$lang['mu_authfail'] = 'η συνεδρία έληξε';
$lang['mu_progress'] = 'φορτώθηκε @PCT@%';
$lang['mu_filetypes'] = 'Επιτρεπτοί τύποι αρχείων';
$lang['mu_info'] = 'τα αρχεία ανέβηκαν.';
$lang['mu_lasterr'] = 'Τελευταίο σφάλμα:';
$lang['recent_global'] = 'Βλέπετε τις αλλαγές εντός του φακέλου <b>%s</b>. Μπορείτε επίσης να <a href="%s">δείτε τις πρόσφατες αλλαγές σε όλο το wiki</a>.';
$lang['years'] = 'πριν %d χρόνια';
$lang['months'] = 'πριν %d μήνες';

View File

@ -43,7 +43,7 @@ $lang['btn_backtomedia'] = 'Back to Mediafile Selection';
$lang['btn_subscribe'] = 'Manage Subscriptions';
$lang['btn_profile'] = 'Update Profile';
$lang['btn_reset'] = 'Reset';
$lang['btn_resendpwd'] = 'Send new password';
$lang['btn_resendpwd'] = 'Set new password';
$lang['btn_draft'] = 'Edit draft';
$lang['btn_recover'] = 'Recover draft';
$lang['btn_draftdel'] = 'Delete draft';
@ -84,7 +84,7 @@ $lang['profchanged'] = 'User profile successfully updated.';
$lang['pwdforget'] = 'Forgotten your password? Get a new one';
$lang['resendna'] = 'This wiki does not support password resending.';
$lang['resendpwd'] = 'Send new password for';
$lang['resendpwd'] = 'Set new password for';
$lang['resendpwdmissing'] = 'Sorry, you must fill in all fields.';
$lang['resendpwdnouser'] = 'Sorry, we can\'t find this user in our database.';
$lang['resendpwdbadauth'] = 'Sorry, this auth code is not valid. Make sure you used the complete confirmation link.';
@ -166,7 +166,7 @@ $lang['accessdenied'] = 'You are not allowed to view this page.';
$lang['mediausage'] = 'Use the following syntax to reference this file:';
$lang['mediaview'] = 'View original file';
$lang['mediaroot'] = 'root';
$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your "Upload as" filename separated by colons. Files also can be selected by drag and drop.';
$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.';
$lang['mediaextchange'] = 'Filextension changed from .%s to .%s!';
$lang['reference'] = 'References for';
$lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:';
@ -195,6 +195,11 @@ $lang['external_edit'] = 'external edit';
$lang['summary'] = 'Edit summary';
$lang['noflash'] = 'The <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> is needed to display this content.';
$lang['download'] = 'Download Snippet';
$lang['tools'] = 'Tools';
$lang['user_tools'] = 'User Tools';
$lang['site_tools'] = 'Site Tools';
$lang['page_tools'] = 'Page Tools';
$lang['skip_to_content'] = 'skip to content';
$lang['mail_newpage'] = 'page added:';
$lang['mail_changed'] = 'page changed:';
@ -275,6 +280,7 @@ $lang['subscr_style_list'] = 'list of changed pages since last email (e
/* auth.class language support */
$lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.';
$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.';
/* installer strings */
$lang['i_chooselang'] = 'Choose your language';
@ -304,22 +310,6 @@ $lang['i_pol2'] = 'Closed Wiki (read, write, upload for registere
$lang['i_retry'] = 'Retry';
$lang['i_license'] = 'Please choose the license you want to put your content under:';
$lang['mu_intro'] = 'Here you can upload multiple files at once. Click the browse button to add them to the queue. Press upload when done.';
$lang['mu_gridname'] = 'Filename';
$lang['mu_gridsize'] = 'Size';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namespace';
$lang['mu_browse'] = 'Browse';
$lang['mu_toobig'] = 'too big';
$lang['mu_ready'] = 'ready for upload';
$lang['mu_done'] = 'complete';
$lang['mu_fail'] = 'failed';
$lang['mu_authfail'] = 'session expired';
$lang['mu_progress'] = '@PCT@% uploaded';
$lang['mu_filetypes'] = 'Allowed Filetypes';
$lang['mu_info'] = 'files uploaded.';
$lang['mu_lasterr'] = 'Last error:';
$lang['recent_global'] = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.';
$lang['years'] = '%d years ago';
$lang['months'] = '%d months ago';

4
inc/lang/en/resetpwd.txt Normal file
View File

@ -0,0 +1,4 @@
====== Set new password ======
Please enter a new password for your account in this wiki.

View File

@ -26,8 +26,8 @@ $lang['btn_search'] = 'Serĉi';
$lang['btn_save'] = 'Konservi';
$lang['btn_preview'] = 'Antaŭrigardi';
$lang['btn_top'] = 'Supren';
$lang['btn_newer'] = '&lt;&lt; pli freŝe';
$lang['btn_older'] = 'malpli freŝe &gt;&gt;';
$lang['btn_newer'] = '<< pli freŝe';
$lang['btn_older'] = 'malpli freŝe >>';
$lang['btn_revs'] = 'Malnovaj revizioj';
$lang['btn_recent'] = 'Freŝaj ŝanĝoj';
$lang['btn_upload'] = 'Alŝuti';
@ -45,7 +45,6 @@ $lang['btn_backtomedia'] = 'Retroiri al elekto de dosiero';
$lang['btn_subscribe'] = 'Aliĝi al paĝaj modifoj';
$lang['btn_profile'] = 'Ĝisdatigi profilon';
$lang['btn_reset'] = 'Rekomenci';
$lang['btn_resendpwd'] = 'Sendi novan pasvorton';
$lang['btn_draft'] = 'Redakti skizon';
$lang['btn_recover'] = 'Restarigi skizon';
$lang['btn_draftdel'] = 'Forigi skizon';
@ -82,7 +81,6 @@ $lang['profnoempty'] = 'Malplena nomo aŭ retadreso ne estas permesata
$lang['profchanged'] = 'La profilo de la uzanto estas sukcese ĝisdatigita.';
$lang['pwdforget'] = 'Ĉu vi forgesis vian pasvorton? Prenu novan';
$lang['resendna'] = 'Tiu ĉi vikio ne ebligas resendon de la pasvortoj.';
$lang['resendpwd'] = 'Sendi novan pasvorton al';
$lang['resendpwdmissing'] = 'Pardonu, vi devas plenigi ĉiujn kampojn.';
$lang['resendpwdnouser'] = 'Pardonu, ni ne trovas tiun uzanton en nia datenbazo.';
$lang['resendpwdbadauth'] = 'Pardonu, tiu aŭtentiga kodo ne validas. Certiĝu, ke vi uzis la kompletan konfirmigan ligilon.';
@ -124,8 +122,7 @@ $lang['js']['medialeft'] = 'Meti la bildon maldekstren.';
$lang['js']['mediaright'] = 'Meti la bildon dekstren.';
$lang['js']['mediacenter'] = 'Meti la bildon mezen.';
$lang['js']['medianoalign'] = 'Ne uzi poziciigon.';
$lang['js']['nosmblinks'] = 'Tio ĉi nur funkcias en la Vindozaĉa &quot;Microsoft Internet Explorer&quot;.
Vi ankoraŭ povas kopii kaj almeti la ligilon.';
$lang['js']['nosmblinks'] = 'Tio ĉi nur funkcias en la Vindozaĉa "Microsoft Internet Explorer".\nVi ankoraŭ povas kopii kaj almeti la ligilon.';
$lang['js']['linkwiz'] = 'Ligil-Asistanto';
$lang['js']['linkto'] = 'Ligilo al:';
$lang['js']['del_confirm'] = 'Ĉu vere forigi elektitajn ero(j)n?';
@ -152,16 +149,16 @@ $lang['uploadbadcontent'] = 'La alŝutita enhavo ne kongruas al la sufikso
$lang['uploadspam'] = 'La alŝutaĵo estis blokita de kontraŭspama vortlisto.';
$lang['uploadxss'] = 'La alŝutajo estis blokita pro ebla malica enhavo.';
$lang['uploadsize'] = 'La alŝutita dosiero estis tro granda. (maks. %s)';
$lang['deletesucc'] = 'La dosiero &quot;%s%quot; estas forigita.';
$lang['deletefail'] = '&quot;%s&quot; ne povis esti forigita - kontrolu permes-atributojn.';
$lang['mediainuse'] = 'La dosiero &quot;%s&quot; ne estis forigita - ĝi ankoraŭ estas uzata.';
$lang['deletesucc'] = 'La dosiero "%s" estas forigita.';
$lang['deletefail'] = '"%s" ne povis esti forigita - kontrolu permes-atributojn.';
$lang['mediainuse'] = 'La dosiero "%s" ne estis forigita - ĝi ankoraŭ estas uzata.';
$lang['namespaces'] = 'Nomspacoj';
$lang['mediafiles'] = 'Disponeblaj dosieroj';
$lang['accessdenied'] = 'Vi ne rajtas vidi tiun paĝon.';
$lang['mediausage'] = 'Uzu la jenan sintakson por referenci tiun ĉi dosieron:';
$lang['mediaview'] = 'Rigardi originalan dosieron';
$lang['mediaroot'] = 'ĉefo (root)';
$lang['mediaupload'] = 'Alŝutu dosieron al la kuranta nomspaco tien ĉi. Por krei subnomspacojn, antaŭmetu ilin al via &quot;Alŝuti kiel&quot; dosiernomo, apartigante per dupunktoj (:).';
$lang['mediaupload'] = 'Alŝutu dosieron al la kuranta nomspaco tien ĉi. Por krei subnomspacojn, antaŭmetu ilin al via "Alŝuti kiel" dosiernomo, apartigante per dupunktoj (:).';
$lang['mediaextchange'] = 'La dosiersufikso ŝanĝis de .%s al .%s!';
$lang['reference'] = 'Referencoj por';
$lang['ref_inuse'] = 'La dosiero ne povas esti forigita, ĉar ĝi ankoraŭ estas uzata de la jenaj paĝoj:';
@ -187,7 +184,7 @@ $lang['created'] = 'kreita';
$lang['restored'] = 'malnova revizio restarigita';
$lang['external_edit'] = 'ekstera redakto';
$lang['summary'] = 'Bulteno de ŝanĝoj';
$lang['noflash'] = 'La &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; estas bezonata por montrigi tiun ĉi enhavon.';
$lang['noflash'] = 'La <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> estas bezonata por montrigi tiun ĉi enhavon.';
$lang['download'] = 'Elŝuti eltiraĵon';
$lang['mail_newpage'] = 'paĝo aldonita:';
$lang['mail_changed'] = 'paĝo modifita:';
@ -255,49 +252,34 @@ $lang['subscr_m_unsubscribe'] = 'Malaboni';
$lang['subscr_m_subscribe'] = 'Aboni';
$lang['subscr_m_receive'] = 'Ricevi';
$lang['subscr_style_every'] = 'retpoŝtaĵo pro ĉiu ŝanĝo';
$lang['subscr_style_digest'] = 'kolekta retpoŝtaĵo de ŝanĝoj por ĉiu paĝo';
$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo';
$lang['subscr_style_digest'] = 'resuma retpoŝtaĵo de ŝanĝoj por ĉiu paĝo (je %.2f tagoj)';
$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo (je %.2f tagoj)';
$lang['authmodfailed'] = 'Malbona agordo por identigi la uzanton. Bonvolu informi la administranton de la vikio.';
$lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.';
$lang['i_chooselang'] = 'Elektu vian lingvon';
$lang['i_installer'] = 'Instalilo de DokuWiki';
$lang['i_wikiname'] = 'Nomo de la vikio';
$lang['i_enableacl'] = 'Ebligi &quot;ACL&quot; (alirkontrolo, rekomendinde)';
$lang['i_enableacl'] = 'Ebligi "ACL" (alirkontrolo, rekomendinde)';
$lang['i_superuser'] = 'Superuzanto';
$lang['i_problems'] = 'La instalilo trovis kelkajn problemojn, indikitaj sube. Vi ne povas pluiri ĝis ili estos iel korektitaj.';
$lang['i_modified'] = 'Pro sekureco tiu ĉi instalilo nur funkcias por nova kaj nemodifita DokuWiki-pakaĵo.
Vi devas redemeti la dosierojn el la elŝutita pakaĵo plibone informiĝi pri la instalada procezo.';
$lang['i_funcna'] = 'La PHP-a funkcio &lt;code&gt;%s&lt;/code&gt; ne estas uzebla. Eble via retprovizanto ial malpermesis tion?';
$lang['i_phpver'] = 'La versio de la PHP &lt;code&gt;%s&lt;/code&gt; estas pli malnova ol la bezonata &lt;code&gt;%s&lt;/code&gt;. Vi bezonas ĝisdatigi la PHP-an instalon.';
$lang['i_permfail'] = '&lt;code&gt;%s&lt;/code&gt; ne estas skribebla por DokuWiki. Vi devas redifini la permes-atributojn de tiu ĉi dosierujo!';
$lang['i_confexists'] = '&lt;code&gt;%s&lt;/code&gt; jam ekzistas';
$lang['i_writeerr'] = 'Ne eblas krei &quot;&lt;code&gt;%s&lt;/code&gt;&quot;. Vi bezonas kontroli la permesojn de la dosier(uj)oj kaj mem krej la dosieron.';
$lang['i_badhash'] = 'dokuwiki.php ne estas rekonebla aŭ ĝi estas modifita (hash=&lt;code&gt;%s&lt;/code&gt;)';
$lang['i_badval'] = '&lt;code&gt;%s&lt;/code&gt; - malvalida aŭ malplena valoro';
$lang['i_success'] = 'La agordado estas sukcese kompletita. Vi povas forigi la dosieron nun. Pluiru al &lt;a href=&quot;doku.php&quot;&gt;via nova DokuWiki&lt;/a&gt;.';
$lang['i_failure'] = 'Kelkaj eraroj okazis dum la konservo de la agordaj dosieroj. Vi devas senpere korekti ilin antaŭ ol vi povos uzi &lt;a href=&quot;doku.php&quot;&gt;vian novan DokuWiki-on&lt;/a&gt;. ';
$lang['i_funcna'] = 'La PHP-a funkcio <code>%s</code> ne estas uzebla. Eble via retprovizanto ial malpermesis tion?';
$lang['i_phpver'] = 'La versio de la PHP <code>%s</code> estas pli malnova ol la bezonata <code>%s</code>. Vi bezonas ĝisdatigi la PHP-an instalon.';
$lang['i_permfail'] = '<code>%s</code> ne estas skribebla por DokuWiki. Vi devas redifini la permes-atributojn de tiu ĉi dosierujo!';
$lang['i_confexists'] = '<code>%s</code> jam ekzistas';
$lang['i_writeerr'] = 'Ne eblas krei "<code>%s</code>". Vi bezonas kontroli la permesojn de la dosier(uj)oj kaj mem krej la dosieron.';
$lang['i_badhash'] = 'dokuwiki.php ne estas rekonebla aŭ ĝi estas modifita (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - malvalida aŭ malplena valoro';
$lang['i_success'] = 'La agordado estas sukcese kompletita. Vi povas forigi la dosieron nun. Pluiru al <a href="doku.php">via nova DokuWiki</a>.';
$lang['i_failure'] = 'Kelkaj eraroj okazis dum la konservo de la agordaj dosieroj. Vi devas senpere korekti ilin antaŭ ol vi povos uzi <a href="doku.php">vian novan DokuWiki-on</a>. ';
$lang['i_policy'] = 'Komenca ACL-a agordo';
$lang['i_pol0'] = 'Malferma Vikio (legi, skribi, alŝuti povas ĉiuj)';
$lang['i_pol1'] = 'Publika Vikio (legi povas ĉiuj, skribi kaj alŝuti povas registritaj uzantoj)';
$lang['i_pol2'] = 'Ferma Vikio (legi, skribi, alŝuti nur povas registritaj uzantoj)';
$lang['i_retry'] = 'Reprovi';
$lang['i_license'] = 'Bonvolu elekti la permesilon, sub kiun vi volas meti vian enhavon:';
$lang['mu_intro'] = 'Ĉi tie vi povas alŝuti plurajn dosierojn multope. Klaku la esplor-butonon por aldoni ilin al la vico. Premu alŝuti kiam prete.';
$lang['mu_gridname'] = 'Dosiernomo';
$lang['mu_gridsize'] = 'Grandeco';
$lang['mu_gridstat'] = 'Stato';
$lang['mu_namespace'] = 'Nomspaco';
$lang['mu_browse'] = 'Esplori';
$lang['mu_toobig'] = 'tro granda';
$lang['mu_ready'] = 'preta por alŝuti';
$lang['mu_done'] = 'plenumite';
$lang['mu_fail'] = 'malsukcesinte';
$lang['mu_authfail'] = 'sekcio tro longdaŭris';
$lang['mu_progress'] = '@PCT@&#37; alŝutite';
$lang['mu_filetypes'] = 'Permesitaj dosiertipoj';
$lang['mu_info'] = 'alŝutitaj dosieroj.';
$lang['mu_lasterr'] = 'Lasta eraro:';
$lang['recent_global'] = 'Vi nun rigardas la ŝanĝojn ene de la nomspaco &lt;b&gt;%s&lt;/b&gt;. Vi povas ankaŭ &lt;a href=&quot;%s&quot;&gt;vidi la freŝajn ŝanĝojn de la tuta vikio&lt;/a&gt;.';
$lang['recent_global'] = 'Vi nun rigardas la ŝanĝojn ene de la nomspaco <b>%s</b>. Vi povas ankaŭ <a href="%s">vidi la freŝajn ŝanĝojn de la tuta vikio</a>.';
$lang['years'] = 'antaŭ %d jaroj';
$lang['months'] = 'antaŭ %d monatoj';
$lang['weeks'] = 'antaŭ %d semajnoj';
@ -318,12 +300,12 @@ $lang['media_sort_name'] = 'per nomo';
$lang['media_sort_date'] = 'per dato';
$lang['media_namespaces'] = 'Elektu nomspacon';
$lang['media_files'] = 'Dosieroj en %s';
$lang['media_upload'] = 'Alŝuti al la nomspaco &lt;strong&gt;%s&lt;/strong&gt;.';
$lang['media_search'] = 'Serĉi en la nomspaco &lt;strong&gt;%s&lt;/strong&gt;.';
$lang['media_upload'] = 'Alŝuti al la nomspaco <strong>%s</strong>.';
$lang['media_search'] = 'Serĉi en la nomspaco <strong>%s</strong>.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s ĉe %s';
$lang['media_edit'] = 'Modifi';
$lang['media_history'] = 'Tiuj estas la pli malnovaj revizioj de la dosiero.';
$lang['media_edit'] = 'Modifi %s';
$lang['media_history'] = 'Protokolo de %s';
$lang['media_meta_edited'] = 'metadatumoj ŝanĝitaj';
$lang['media_perm_read'] = 'Bedaûrinde viaj rajtoj ne sufiĉas por legi dosierojn.';
$lang['media_perm_upload'] = 'Bedaûrinde viaj rajtoj ne sufiĉas por alŝuti dosierojn.';

View File

@ -61,7 +61,6 @@ $lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia'
$lang['btn_subscribe'] = 'Suscribirse a cambios de la página';
$lang['btn_profile'] = 'Actualizar perfil';
$lang['btn_reset'] = 'Restablecer';
$lang['btn_resendpwd'] = 'Enviar nueva contraseña';
$lang['btn_draft'] = 'Editar borrador';
$lang['btn_recover'] = 'Recuperar borrador';
$lang['btn_draftdel'] = 'Eliminar borrador';
@ -98,7 +97,6 @@ $lang['profnoempty'] = 'No se permite que el nombre o la dirección de
$lang['profchanged'] = 'Se actualizó correctamente el perfil del usuario.';
$lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva';
$lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
$lang['resendpwd'] = 'Enviar una nueva contraseña para';
$lang['resendpwdmissing'] = 'Lo siento, debes completar todos los campos.';
$lang['resendpwdnouser'] = 'Lo siento, no se encuentra este usuario en nuestra base de datos.';
$lang['resendpwdbadauth'] = 'Lo siento, este código de autenticación no es válido. Asegúrate de haber usado el enlace de confirmación entero.';
@ -282,9 +280,9 @@ $lang['i_enableacl'] = 'Habilitar ACL (recomendado) (ACL: lista de con
$lang['i_superuser'] = 'Super-usuario';
$lang['i_problems'] = 'El instalador encontró algunos problemas, se muestran abajo. No se puede continuar la instalación hasta que usted no los corrija.';
$lang['i_modified'] = 'Por razones de seguridad este script sólo funcionará con una instalación nueva y no modificada de Dokuwiki. Usted debe extraer nuevamente los ficheros del paquete bajado, o bien consultar las <a href="http://dokuwiki.org/install">instrucciones de instalación de Dokuwiki</a> completas.';
$lang['i_funcna'] = 'La función de PHP <code>%s</code> no está disponible. Tal vez su proveedor de hosting la ha deshabilitado por alguna razón?';
$lang['i_funcna'] = 'La función de PHP <code>%s</code> no está disponible. ¿Tal vez su proveedor de hosting la ha deshabilitado por alguna razón?';
$lang['i_phpver'] = 'Su versión de PHP <code>%s</code> es menor que la necesaria <code>%s</code>. Es necesario que actualice su instalación de PHP.';
$lang['i_permfail'] = 'DokuWili no puede escribir <code>%s</code>. Es necesario establecer correctamente los permisos de este directorio!';
$lang['i_permfail'] = 'DokuWili no puede escribir <code>%s</code>. ¡Es necesario establecer correctamente los permisos de este directorio!';
$lang['i_confexists'] = '<code>%s</code> ya existe';
$lang['i_writeerr'] = 'Imposible crear <code>%s</code>. Se necesita que usted controle los permisos del fichero/directorio y que cree el fichero manualmente.';
$lang['i_badhash'] = 'dokuwiki.php no reconocido o modificado (hash=<code>%s</code>)';
@ -297,21 +295,6 @@ $lang['i_pol1'] = 'Wiki público (leer para todos, escribir y sub
$lang['i_pol2'] = 'Wiki cerrado (leer, escribir y subir archivos para usuarios registrados únicamente)';
$lang['i_retry'] = 'Reintentar';
$lang['i_license'] = 'Por favor escoja una licencia bajo la que publicar su contenido:';
$lang['mu_intro'] = 'Puedes subir varios archivos a la vez desde aquí. Pulsa el botón del navegador para agregarlos a la cola. Pulsa "subir archivo" para proceder.';
$lang['mu_gridname'] = 'Nombre de archivo';
$lang['mu_gridsize'] = 'Tamaño';
$lang['mu_gridstat'] = 'Estado';
$lang['mu_namespace'] = 'Espacio de nombres';
$lang['mu_browse'] = 'Buscar';
$lang['mu_toobig'] = 'demasiado grande';
$lang['mu_ready'] = 'listo para subir';
$lang['mu_done'] = 'completado';
$lang['mu_fail'] = 'falló';
$lang['mu_authfail'] = 'la sesión caducó';
$lang['mu_progress'] = '@PCT@% transferido';
$lang['mu_filetypes'] = 'Tipos de archivos permitidos';
$lang['mu_info'] = 'Archivos subidos:';
$lang['mu_lasterr'] = 'Último error:';
$lang['recent_global'] = 'Actualmente estás viendo los cambios dentro del namespace <b>%s</b>. También puedes <a href="%s">ver los cambios recientes en el wiki completo</a>.';
$lang['years'] = '%d años atrás';
$lang['months'] = '%d meses atrás';

View File

@ -43,7 +43,6 @@ $lang['btn_backtomedia'] = 'Tagasi faili valikusse';
$lang['btn_subscribe'] = 'Jälgi seda lehte (teated meilile)';
$lang['btn_profile'] = 'Minu info';
$lang['btn_reset'] = 'Taasta';
$lang['btn_resendpwd'] = 'Saada uus parool';
$lang['btn_draft'] = 'Toimeta mustandit';
$lang['btn_recover'] = 'Taata mustand';
$lang['btn_draftdel'] = 'Kustuta mustand';
@ -79,7 +78,6 @@ $lang['profnoempty'] = 'Tühi nimi ega meiliaadress pole lubatud.';
$lang['profchanged'] = 'Kasutaja info edukalt muudetud';
$lang['pwdforget'] = 'Unustasid parooli? Tee uus';
$lang['resendna'] = 'See wiki ei toeta parooli taassaatmist.';
$lang['resendpwd'] = 'Saada uus parool';
$lang['resendpwdmissing'] = 'Khmm... Sa pead täitma kõik väljad.';
$lang['resendpwdnouser'] = 'Aga sellist kasutajat ei ole.';
$lang['resendpwdbadauth'] = 'See autentimiskood ei ole õige. Kontrolli, et kopeerisid terve lingi.';
@ -232,12 +230,3 @@ $lang['i_pol0'] = 'Avatud (lugemine, kirjutamine ja üleslaadimin
$lang['i_pol1'] = 'Avalikuks lugemiseks (lugeda saavad kõik, kirjutada ja üles laadida vaid registreeritud kasutajad)';
$lang['i_pol2'] = 'Suletud (kõik õigused, kaasaarvatud lugemine on lubatud vaid registreeritud kasutajatele)';
$lang['i_retry'] = 'Proovi uuesti';
$lang['mu_gridname'] = 'Failinimi';
$lang['mu_gridsize'] = 'Suurus';
$lang['mu_gridstat'] = 'Staatus';
$lang['mu_browse'] = 'Sirvi';
$lang['mu_toobig'] = 'liiga suur';
$lang['mu_ready'] = 'valmis üleslaadimiseks';
$lang['mu_done'] = 'valmis';
$lang['mu_fail'] = 'ebaõnnestus';
$lang['mu_lasterr'] = 'Viimane viga:';

View File

@ -40,7 +40,6 @@ $lang['btn_backtomedia'] = 'Atzera Multimedia Fitxategiaren Aukeraketara';
$lang['btn_subscribe'] = 'Harpidetu Orri Aldaketetara';
$lang['btn_profile'] = 'Eguneratu Profila ';
$lang['btn_reset'] = 'Aldaketak Desegin';
$lang['btn_resendpwd'] = 'Pasahitz berria bidali';
$lang['btn_draft'] = 'Editatu zirriborroa';
$lang['btn_recover'] = 'Berreskuratu zirriborroa';
$lang['btn_draftdel'] = 'Ezabatu zirriborroa';
@ -75,7 +74,6 @@ $lang['profnoempty'] = 'Izen edota e-posta hutsa ez dago onartua.';
$lang['profchanged'] = 'Erabiltzaile profila arrakastaz eguneratua.';
$lang['pwdforget'] = 'Pasahitza ahaztu duzu? Eskuratu berri bat';
$lang['resendna'] = 'Wiki honek ez du pasahitz berbidalketa onartzen.';
$lang['resendpwd'] = 'Bidali pasahitz berria honentzat:';
$lang['resendpwdmissing'] = 'Barkatu, eremu guztiak bete behar dituzu.';
$lang['resendpwdnouser'] = 'Barkatu, ez dugu erabiltzaile hori datu-basean aurkitzen';
$lang['resendpwdbadauth'] = 'Barkatu, kautotze kodea ez da baliozkoa. Ziurtatu baieztapen esteka osoa erabili duzula.';
@ -256,21 +254,6 @@ $lang['i_pol1'] = 'Wiki Publikoa (irakurri edonorentzat, idatzi e
$lang['i_pol2'] = 'Wiki Itxia (irakurri, idatzi, fitxategiak igo erregistratutako erabiltzaileentzat soilik)';
$lang['i_retry'] = 'Berriz saiatu';
$lang['i_license'] = 'Mesedez, aukeratu zein lizentzipean ezarri nahi duzun zure edukia:';
$lang['mu_intro'] = 'Hemen hainbat fitxategi aldi berean igo ditzakezu. Egin klik nabigazio botoian hauek ilarara gehitzeko. Sakatu igo botoia prest egotean.';
$lang['mu_gridname'] = 'Fitxategi izena';
$lang['mu_gridsize'] = 'Tamaina';
$lang['mu_gridstat'] = 'Egoera';
$lang['mu_namespace'] = 'Izen-espazioa';
$lang['mu_browse'] = 'Nabigatu';
$lang['mu_toobig'] = 'handiegia';
$lang['mu_ready'] = 'igotzeko prest';
$lang['mu_done'] = 'amaitua';
$lang['mu_fail'] = 'hutsegitea';
$lang['mu_authfail'] = 'saioa iraungita';
$lang['mu_progress'] = '@PCT@% igota';
$lang['mu_filetypes'] = 'Onartutako Fitxategi Motak';
$lang['mu_info'] = 'igotako fitxategiak.';
$lang['mu_lasterr'] = 'Azken errorea;';
$lang['recent_global'] = 'Une honetan <b>%s</b> izen-espazioaren barneko aldaketak ikusten ari zara.<a href="%s"> Wiki osoaren azken aldaketak</a> ere ikusi ditzakezu.';
$lang['years'] = 'duela %d urte';
$lang['months'] = 'duela %d hilabete';

View File

@ -47,7 +47,6 @@ $lang['btn_backtomedia'] = 'بازگشت به انتخاب فایل';
$lang['btn_subscribe'] = 'عضویت در تغییرات صفحه';
$lang['btn_profile'] = 'به روز رسانی پروفایل';
$lang['btn_reset'] = 'بازنشاندن';
$lang['btn_resendpwd'] = 'یک گذرواژه‌ی جدید برای شما فرستاده شود';
$lang['btn_draft'] = 'ویرایش پیش‌نویس';
$lang['btn_recover'] = 'بازیابی پیش‌نویس';
$lang['btn_draftdel'] = 'حذف پیش‌نویس';
@ -82,7 +81,6 @@ $lang['profnoempty'] = 'نام و آدرس ایمیل باید پر ش
$lang['profchanged'] = 'پروفایل کاربر با موفقیت به روز شد';
$lang['pwdforget'] = 'گذرواژه‌ی خود را فراموش کرده‌اید؟ جدید دریافت کنید';
$lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند';
$lang['resendpwd'] = 'گذرواژه‌ی جدید ارسال شد';
$lang['resendpwdmissing'] = 'متاسفم، شما باید تمام قسمت‌ها را پر کنید';
$lang['resendpwdnouser'] = 'متاسفم، ما نتوانستیم این نام کاربری را در بانک خود پیدا کنیم';
$lang['resendpwdbadauth'] = 'متاسفم، کد شناسایی معتبر نیست. از صحت لینک تاییدیه اطمینان حاصل کنید.';
@ -263,21 +261,6 @@ $lang['i_pol1'] = 'ویکی عمومی (همه می‌توانن
$lang['i_pol2'] = 'ویکی بسته (فقط کاربران ثبت شده می‌توانند بخوانند، بنویسند و فایل ارسال کنند)';
$lang['i_retry'] = 'تلاش مجدد';
$lang['i_license'] = 'لطفن مجوز این محتوا را وارد کنید:';
$lang['mu_intro'] = 'شما می‌توانید چندین فایل را با یک حرکت ارسال کنید. روی دکمه‌ی «بچر» کلیک کنید و فایل‌ها را به صف ارسال اضافه نمایید. سپس دکمه‌ی «ارسال» را فشار دهید. ';
$lang['mu_gridname'] = 'نام فایل';
$lang['mu_gridsize'] = 'اندازه';
$lang['mu_gridstat'] = 'وضعیت';
$lang['mu_namespace'] = 'فضای‌نام';
$lang['mu_browse'] = 'بچر';
$lang['mu_toobig'] = 'خیلی بزرگ';
$lang['mu_ready'] = 'آماده‌ی ارسال';
$lang['mu_done'] = 'کامل';
$lang['mu_fail'] = 'شکست خورد';
$lang['mu_authfail'] = 'سشن به پایان رسید';
$lang['mu_progress'] = '@PCT@% ارسال شد';
$lang['mu_filetypes'] = 'توسعه‌های مجاز';
$lang['mu_info'] = 'فایل ارسال گردید';
$lang['mu_lasterr'] = 'آخرین خطا:';
$lang['recent_global'] = 'شما هم‌اکنون تغییرات فضای‌نام <b>%s</b> را مشاهده می‌کنید. شما هم‌چنین می‌توانید <a href="%s">تغییرات اخیر در کل ویکی را مشاهده نمایید</a>.';
$lang['years'] = '%d سال پیش';
$lang['months'] = '%d ماه پیش';

View File

@ -43,7 +43,6 @@ $lang['btn_backtomedia'] = 'Takaisin mediatiedostojen valintaan';
$lang['btn_subscribe'] = 'Tilaa muutokset';
$lang['btn_profile'] = 'Päivitä profiili';
$lang['btn_reset'] = 'Tyhjennä';
$lang['btn_resendpwd'] = 'Lähetä uusi salasana';
$lang['btn_draft'] = 'Muokkaa luonnosta';
$lang['btn_recover'] = 'Palauta luonnos';
$lang['btn_draftdel'] = 'Poista luonnos';
@ -80,7 +79,6 @@ $lang['profnoempty'] = 'Tyhjä nimi tai sähköpostiosoite ei ole sall
$lang['profchanged'] = 'Käyttäjän profiilin päivitys onnistui.';
$lang['pwdforget'] = 'Unohtuiko salasana? Hanki uusi';
$lang['resendna'] = 'Tämä wiki ei tue salasanan uudelleenlähettämistä.';
$lang['resendpwd'] = 'Lähetä uusi salasana käyttäjälle';
$lang['resendpwdmissing'] = 'Kaikki kentät on täytettävä.';
$lang['resendpwdnouser'] = 'Käyttäjää ei löydy tietokannastamme.';
$lang['resendpwdbadauth'] = 'Tunnistuskoodi on virheellinen. Varmista, että käytit koko varmistuslinkkiä.';
@ -242,7 +240,7 @@ $lang['img_manager'] = 'Näytä mediamanagerissa';
$lang['subscr_subscribe_success'] = '%s lisätty %s tilauslistalle';
$lang['subscr_subscribe_error'] = 'Virhe lisättäessä %s tilauslistalle %s';
$lang['subscr_subscribe_noaddress'] = 'Login tiedoissasi ei ole sähköpostiosoitetta. Sinua ei voi lisätä tilaukseen';
$lang['subscr_unsubscribe_success'] = '% poistettu tilauslistalta %s';
$lang['subscr_unsubscribe_success'] = '%s poistettu tilauslistalta %s';
$lang['subscr_unsubscribe_error'] = 'Virhe tapahtui poistaessa %s tilauslistalta %s';
$lang['subscr_already_subscribed'] = '%s on jo tilannut %s';
$lang['subscr_not_subscribed'] = '%s ei ole tilannut %s';
@ -253,8 +251,8 @@ $lang['subscr_m_unsubscribe'] = 'Poista tilaus';
$lang['subscr_m_subscribe'] = 'Tilaa';
$lang['subscr_m_receive'] = 'Vastaanota';
$lang['subscr_style_every'] = 'Sähköposti joka muutoksesta';
$lang['subscr_style_digest'] = 'yhteenveto sähköposti joka sivusta';
$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen';
$lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)';
$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)';
$lang['authmodfailed'] = 'Käyttäjien autentikoinnin asetukset ovat virheelliset. Ilmoita asiasta wikin ylläpitäjälle.';
$lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.';
$lang['i_chooselang'] = 'Valitse kieli';
@ -279,21 +277,6 @@ $lang['i_pol1'] = 'Julkinen Wiki (luku kaikilla, kirjoitus ja tie
$lang['i_pol2'] = 'Suljettu Wiki (luku, kirjoitus ja tiedostojen lähetys vain rekisteröityneillä käyttäjillä)';
$lang['i_retry'] = 'Yritä uudelleen';
$lang['i_license'] = 'Valitse lisenssi, jonka alle haluat sisältösi laittaa:';
$lang['mu_intro'] = 'Täällä voit lähettää useampia tiedostoja kerralla. Klikkaa Selaa-nappia lisätäksesi ne jonoon. Paina lähetä, kun olet valmis.';
$lang['mu_gridname'] = 'Tiedoston nimi';
$lang['mu_gridsize'] = 'Koko';
$lang['mu_gridstat'] = 'Tilanne';
$lang['mu_namespace'] = 'Nimiavaruus';
$lang['mu_browse'] = 'Selaa';
$lang['mu_toobig'] = 'liian iso';
$lang['mu_ready'] = 'valmis lähetettäväksi';
$lang['mu_done'] = 'valmis';
$lang['mu_fail'] = 'epäonnistui';
$lang['mu_authfail'] = 'istunto on vanhentunut';
$lang['mu_progress'] = '@PCT@% lähetetty';
$lang['mu_filetypes'] = 'Sallitut tyypit';
$lang['mu_info'] = 'tiedostoa ladattu.';
$lang['mu_lasterr'] = 'Edellinen virhe:';
$lang['recent_global'] = 'Seuraat tällä hetkellä muutoksia nimiavaruuden <b>%s</b> sisällä. Voit myös <a href="%s">katsoa muutoksia koko wikissä</a>';
$lang['years'] = '%d vuotta sitten';
$lang['months'] = '%d kuukautta sitten';
@ -301,22 +284,26 @@ $lang['weeks'] = '%d viikkoa sitten';
$lang['days'] = '%d päivää sitten';
$lang['hours'] = '%d tuntia sitten';
$lang['minutes'] = '%d minuuttia sitten';
$lang['seconds'] = '% sekuntia sitten';
$lang['seconds'] = '%d sekuntia sitten';
$lang['wordblock'] = 'Muutostasi ei talletettu, koska se sisältää estettyä tekstiä (spam).';
$lang['media_uploadtab'] = 'Lähetä';
$lang['media_searchtab'] = 'Etsi';
$lang['media_file'] = 'Tiedosto';
$lang['media_viewtab'] = 'Näytä';
$lang['media_edittab'] = 'Muokkaa';
$lang['media_historytab'] = 'Historia';
$lang['media_thumbsview'] = 'Pikkukuvat';
$lang['media_listview'] = 'Lista';
$lang['media_sort'] = 'Järjestä';
$lang['media_list_thumbs'] = 'Thumbnails';
$lang['media_list_rows'] = 'Rivit';
$lang['media_sort_name'] = 'nimen mukaan';
$lang['media_sort_date'] = 'päivämäärän mukaan';
$lang['media_namespaces'] = 'Valitse nimiavaruus';
$lang['media_files'] = 'Tiedostoja %s';
$lang['media_upload'] = 'Lähetä <strong>%s</strong> nimiavaruuteen';
$lang['media_search'] = 'Etsi <strong>%s</strong> nimiavaruudesta';
$lang['media_edit'] = 'Muokkaa';
$lang['media_history'] = 'Nämä ovat vanhat versiot tiedostosta.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s at %s';
$lang['media_edit'] = 'Muokkaa %s';
$lang['media_history'] = 'Nämä ovat vanhat versiot tiedostosta %s';
$lang['media_meta_edited'] = 'Metadataa muokattu';
$lang['media_perm_read'] = 'Anteeksi. Sinulla ei ole riittävästi oikeuksia lukeaksesi tiedostoja.';
$lang['media_perm_upload'] = 'Anteeksi. Sinulla ei ole riittävästi oikeuksia lähettääksesi tiedostoja.';

View File

@ -40,7 +40,6 @@ $lang['btn_backtomedia'] = 'Aftur til val av miðlafílu';
$lang['btn_subscribe'] = 'Tilmelda broytingar';
$lang['btn_profile'] = 'Dagføra vangamynd';
$lang['btn_reset'] = 'Nullstilla';
$lang['btn_resendpwd'] = 'Send nýtt loyniorð';
$lang['btn_draft'] = 'Broyt kladdu';
$lang['btn_recover'] = 'Endurbygg kladdu';
$lang['btn_draftdel'] = 'Sletta';
@ -75,7 +74,6 @@ $lang['profnoempty'] = 'Tómt navn ella t-post adressa er ikki loyvt.'
$lang['profchanged'] = 'Brúkara vangamynd dagført rætt.';
$lang['pwdforget'] = 'Gloymt títt loyniorð? Fá eitt nýtt';
$lang['resendna'] = 'Tað er ikki møguligt at fá sent nýtt loyniorð við hesu wiki.';
$lang['resendpwd'] = 'Send nýtt loyniorð til';
$lang['resendpwdmissing'] = 'Tú skal filla út øll økir.';
$lang['resendpwdnouser'] = 'Vit kunna ikki finna hendan brúkara í okkara dátagrunni.';
$lang['resendpwdbadauth'] = 'Hald til góðar, hendan góðkenningar kodan er ikki gildug. Kanna eftir at tú nýtti tað fulfíggjaðu góðkenningarleinkjuna';

View File

@ -1,4 +1,4 @@
====== Index ======
Voici un index de toutes les pages disponibles, triées par [[doku>namespaces|catégorie]].
Voici un index de toutes les pages disponibles, triées par [[doku>fr:namespaces|catégorie]].

View File

@ -22,6 +22,7 @@
* @author Samuel Dorsaz <samuel.dorsaz@novelion.net>
* @author Johan Guilbaud <guilbaud.johan@gmail.com>
* @author schplurtz@laposte.net
* @author skimpax@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -57,7 +58,6 @@ $lang['btn_backtomedia'] = 'Retour à la sélection du fichier média';
$lang['btn_subscribe'] = 'S\'abonner à la page';
$lang['btn_profile'] = 'Mettre à jour le profil';
$lang['btn_reset'] = 'Réinitialiser';
$lang['btn_resendpwd'] = 'Envoyer le mot de passe';
$lang['btn_draft'] = 'Modifier le brouillon';
$lang['btn_recover'] = 'Récupérer le brouillon';
$lang['btn_draftdel'] = 'Effacer le brouillon';
@ -94,7 +94,6 @@ $lang['profnoempty'] = 'Un nom ou une adresse de courriel vide n\'est
$lang['profchanged'] = 'Mise à jour du profil réussie.';
$lang['pwdforget'] = 'Mot de passe oublié ? Faites-vous envoyer votre mot de passe ';
$lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de passe.';
$lang['resendpwd'] = 'Renvoyer le mot de passe de';
$lang['resendpwdmissing'] = 'Désolé, vous devez remplir tous les champs.';
$lang['resendpwdnouser'] = 'Désolé, cet utilisateur est introuvable dans notre base.';
$lang['resendpwdbadauth'] = 'Désolé, ce code d\'authentification est invalide. Assurez-vous d\'avoir utilisé le lien de confirmation.';
@ -112,7 +111,7 @@ $lang['lockexpire'] = 'Le blocage expire à';
$lang['js']['willexpire'] = 'Votre verrouillage pour la modification de cette page expire dans une minute.\nPour éviter les conflits, utilisez le bouton « Aperçu » pour réinitialiser le minuteur.';
$lang['js']['notsavedyet'] = 'Les modifications non enregistrées seront perdues. Voulez-vous vraiment continuer ?';
$lang['js']['searchmedia'] = 'Chercher des fichiers';
$lang['js']['keepopen'] = 'Gardez la fenêtre ouverte pendant la sélection';
$lang['js']['keepopen'] = 'Gardez cette fenêtre toujours ouverte';
$lang['js']['hidedetails'] = 'Masquer détails';
$lang['js']['mediatitle'] = 'Paramètres de lien';
$lang['js']['mediadisplay'] = 'Type de lien';
@ -135,12 +134,10 @@ $lang['js']['medialeft'] = 'Aligner l\'image sur la gauche.';
$lang['js']['mediaright'] = 'Aligner l\'image sur la droite.';
$lang['js']['mediacenter'] = 'Centrer l\'image';
$lang['js']['medianoalign'] = 'Ne pas aligner.';
$lang['js']['nosmblinks'] = 'Les liens vers les partages Windows ne fonctionnent qu\'avec Microsoft Internet Explorer.
Vous pouvez toujours copier puis coller le lien.';
$lang['js']['nosmblinks'] = 'Les liens vers les partages Windows ne fonctionnent qu\'avec Microsoft Internet Explorer.\nVous pouvez toujours copier puis coller le lien.';
$lang['js']['linkwiz'] = 'Assistant Lien';
$lang['js']['linkto'] = 'Lien vers :';
$lang['js']['del_confirm'] = 'Effacer cette entrée ?';
$lang['js']['mu_btn'] = 'Envoyer plusieurs fichiers en même temps';
$lang['js']['restore_confirm'] = 'Voulez vous vraiment restaurer cette version ?';
$lang['js']['media_diff'] = 'Voir les différences:';
$lang['js']['media_diff_both'] = 'Côte à côte';
@ -267,8 +264,8 @@ $lang['subscr_m_unsubscribe'] = 'Annuler la souscription';
$lang['subscr_m_subscribe'] = 'Souscrire';
$lang['subscr_m_receive'] = 'Recevoir';
$lang['subscr_style_every'] = 'Envoyer un courriel à chaque modification';
$lang['subscr_style_digest'] = 'Courriel résumant les modifications de chaque page';
$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel';
$lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page';
$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)';
$lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'informer l\'administrateur du Wiki.';
$lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'informer l\'administrateur du Wiki.';
$lang['i_chooselang'] = 'Choisissez votre langue';
@ -293,21 +290,6 @@ $lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écri
$lang['i_pol2'] = 'Wiki fermé (lecture, écriture, envoi de fichiers pour les utilisateurs enregistrés uniquement)';
$lang['i_retry'] = 'Réessayer';
$lang['i_license'] = 'Veuillez choisir la licence sous laquelle placer votre contenu :';
$lang['mu_intro'] = 'Ici vous pouvez envoyer plusieurs fichiers en même temps. Cliquez sur le bouton parcourir pour les ajouter. Cliquez sur envoyer lorsque c\'est prêt. ';
$lang['mu_gridname'] = 'Nom du fichier';
$lang['mu_gridsize'] = 'Taille';
$lang['mu_gridstat'] = 'État';
$lang['mu_namespace'] = 'Catégorie';
$lang['mu_browse'] = 'Parcourir';
$lang['mu_toobig'] = 'Trop gros';
$lang['mu_ready'] = 'Prêt à envoyer';
$lang['mu_done'] = 'Terminé';
$lang['mu_fail'] = 'Échoué';
$lang['mu_authfail'] = 'Session expirée';
$lang['mu_progress'] = '@PCT@% envoyé';
$lang['mu_filetypes'] = 'Types de fichiers acceptés';
$lang['mu_info'] = 'fichiers envoyés.';
$lang['mu_lasterr'] = 'Dernière erreur : ';
$lang['recent_global'] = 'Vous êtes actuellement en train de regarder les modifications au sein de la catégorie <strong>%s</strong>. Vous pouvez aussi <a href="%s">voir les récentes modifications sur tout le wiki</a>.';
$lang['years'] = 'il y a %d ans';
$lang['months'] = 'il y a %d mois';
@ -328,13 +310,13 @@ $lang['media_list_rows'] = 'Lignes';
$lang['media_sort_name'] = 'Tri par nom';
$lang['media_sort_date'] = 'Tri par date';
$lang['media_namespaces'] = 'Choisissez un espace de nom';
$lang['media_files'] = 'Fichiers présents dans';
$lang['media_upload'] = 'Télécharger dans la catégorie <strong>%s</strong>.';
$lang['media_search'] = 'Chercher dans la catégorie <strong>%s</strong>.';
$lang['media_files'] = 'Fichiers de %s';
$lang['media_upload'] = 'Télécharger dans %s.';
$lang['media_search'] = 'Chercher dans %s.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s dans %s';
$lang['media_edit'] = 'Éditer %s';
$lang['media_history'] = 'Historique du %s';
$lang['media_history'] = 'Historique de %s';
$lang['media_meta_edited'] = 'métadonnées éditées';
$lang['media_perm_read'] = 'Désolé, vous n\'avez pas les droits pour lire les fichiers.';
$lang['media_perm_upload'] = 'Désolé, vous n\'avez pas les droits pour télécharger des fichiers.';

View File

@ -4,6 +4,7 @@
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Medúlio <medulio@ciberirmandade.org>
* @author Oscar M. Lage <r0sk10@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -39,12 +40,13 @@ $lang['btn_backtomedia'] = 'Volver á Selección de Arquivos-Media';
$lang['btn_subscribe'] = 'Avísame dos trocos na páxina';
$lang['btn_profile'] = 'Actualizar Perfil';
$lang['btn_reset'] = 'Reiniciar';
$lang['btn_resendpwd'] = 'Envíame un novo contrasinal';
$lang['btn_draft'] = 'Editar borrador';
$lang['btn_recover'] = 'Recuperar borrador';
$lang['btn_draftdel'] = 'Eliminar borrador';
$lang['btn_revert'] = 'Restaurar';
$lang['btn_register'] = 'Rexístrate';
$lang['btn_apply'] = 'Aplicar';
$lang['btn_media'] = 'Xestor de Arquivos-Media';
$lang['loggedinas'] = 'Iniciaches sesión como';
$lang['user'] = 'Nome de Usuario';
$lang['pass'] = 'Contrasinal';
@ -74,7 +76,6 @@ $lang['profnoempty'] = 'Non se permite un nome ou un enderezo de corre
$lang['profchanged'] = 'Perfil de usuario actualizado correctamente.';
$lang['pwdforget'] = 'Esqueceches o teu contrasinal? Consegue un novo';
$lang['resendna'] = 'Este wiki non permite o reenvío de contrasinais.';
$lang['resendpwd'] = 'Enviar novo contrasinal para';
$lang['resendpwdmissing'] = 'Sentímolo, tes que cubrir todos os campos.';
$lang['resendpwdnouser'] = 'Sentímolo, non atopamos este usuario no noso banco de datos.';
$lang['resendpwdbadauth'] = 'Sentímolo, mais este código de autorización non é válido. Asegúrate de que usaches a ligazón completa de confirmación.';
@ -89,25 +90,9 @@ $lang['txt_filename'] = 'Subir como (opcional)';
$lang['txt_overwrt'] = 'Sobrescribir arquivo existente';
$lang['lockedby'] = 'Bloqueado actualmente por';
$lang['lockexpire'] = 'O bloqueo remata o';
$lang['js']['willexpire'] = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.';
$lang['js']['notsavedyet'] = "Perderanse os trocos non gardados.\nEstá certo de quereres continuar?";
$lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: ';
$lang['nothingfound'] = 'Non se atopou nada.';
$lang['mediaselect'] = 'Arquivos-Media';
$lang['fileupload'] = 'Subida de Arquivos-Media';
$lang['uploadsucc'] = 'Subida correcta';
$lang['uploadfail'] = 'Erra na subida. Pode que sexa un problema de permisos?';
$lang['uploadwrong'] = 'Subida denegada. Esta extensión de arquivo non está permitida!';
$lang['uploadexist'] = 'Xa existe o arquivo. Non se fixo nada.';
$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión do arquivo %s.';
$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo-lixo.';
$lang['uploadxss'] = 'A subida foi bloqueada por un posíbel contido malicioso.';
$lang['uploadsize'] = 'O arquivo subido é grande de máis. (máx. %s)';
$lang['deletesucc'] = 'O arquivo "%s" foi eliminado.';
$lang['deletefail'] = '"%s" non puido ser eliminado - comproba os permisos.';
$lang['mediainuse'] = 'O arquivo "%s" non foi eliminado - aínda está en uso.';
$lang['namespaces'] = 'Nomes de espazos';
$lang['mediafiles'] = 'Arquivos dispoñíbeis en';
$lang['js']['willexpire'] = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.';
$lang['js']['notsavedyet'] = 'Perderanse os trocos non gardados.
Está certo de quereres continuar?';
$lang['js']['searchmedia'] = 'Procurar ficheiros';
$lang['js']['keepopen'] = 'Manter a fiestra aberta na selección';
$lang['js']['hidedetails'] = 'Agochar Pormenores';
@ -137,6 +122,35 @@ Sempre podes copiar e colar a ligazón.';
$lang['js']['linkwiz'] = 'Asistente de ligazóns';
$lang['js']['linkto'] = 'Ligazón para:';
$lang['js']['del_confirm'] = 'Estás certo de quereres eliminar os elementos seleccionados?';
$lang['js']['restore_confirm'] = 'Realmente desexas restaurar esta versión?';
$lang['js']['media_diff'] = 'Ver as diferencias:';
$lang['js']['media_diff_both'] = 'Cara a Cara';
$lang['js']['media_diff_opacity'] = 'Opacidade';
$lang['js']['media_diff_portions'] = 'Porcións';
$lang['js']['media_select'] = 'Selecciona arquivos...';
$lang['js']['media_upload_btn'] = 'Subir';
$lang['js']['media_done_btn'] = 'Feito';
$lang['js']['media_drop'] = 'Solta aquí os arquivos a subir';
$lang['js']['media_cancel'] = 'eliminar';
$lang['js']['media_overwrt'] = 'Sobreescribir os arquivos existentes';
$lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: ';
$lang['nothingfound'] = 'Non se atopou nada.';
$lang['mediaselect'] = 'Arquivos-Media';
$lang['fileupload'] = 'Subida de Arquivos-Media';
$lang['uploadsucc'] = 'Subida correcta';
$lang['uploadfail'] = 'Erra na subida. Pode que sexa un problema de permisos?';
$lang['uploadwrong'] = 'Subida denegada. Esta extensión de arquivo non está permitida!';
$lang['uploadexist'] = 'Xa existe o arquivo. Non se fixo nada.';
$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión do arquivo %s.';
$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo-lixo.';
$lang['uploadxss'] = 'A subida foi bloqueada por un posíbel contido malicioso.';
$lang['uploadsize'] = 'O arquivo subido é grande de máis. (máx. %s)';
$lang['deletesucc'] = 'O arquivo "%s" foi eliminado.';
$lang['deletefail'] = '"%s" non puido ser eliminado - comproba os permisos.';
$lang['mediainuse'] = 'O arquivo "%s" non foi eliminado - aínda está en uso.';
$lang['namespaces'] = 'Nomes de espazos';
$lang['mediafiles'] = 'Arquivos dispoñíbeis en';
$lang['accessdenied'] = 'Non tes permitido ver esta páxina.';
$lang['mediausage'] = 'Emprega a seguinte sintaxe para inserires unha referencia a este arquivo:';
$lang['mediaview'] = 'Ver arquivo orixinal';
$lang['mediaroot'] = 'raigaña';
@ -152,6 +166,10 @@ $lang['current'] = 'actual';
$lang['yours'] = 'A túa Versión';
$lang['diff'] = 'Amosar diferenzas coa versión actual';
$lang['diff2'] = 'Amosar diferenzas entre as revisións seleccionadas';
$lang['difflink'] = 'Enlazar a esta vista de comparación';
$lang['diff_type'] = 'Ver diferenzas:';
$lang['diff_inline'] = 'Por liña';
$lang['diff_side'] = 'Cara a Cara';
$lang['line'] = 'Liña';
$lang['breadcrumb'] = 'Trazado';
$lang['youarehere'] = 'Estás aquí';
@ -169,6 +187,10 @@ $lang['mail_changed'] = 'páxina mudada:';
$lang['mail_subscribe_list'] = 'páxinas mudadas en nome de espazo:';
$lang['mail_new_user'] = 'Novo usuario:';
$lang['mail_upload'] = 'arquivo subido:';
$lang['changes_type'] = 'Ver cambios';
$lang['pages_changes'] = 'Páxinas';
$lang['media_changes'] = 'Arquivos-Media';
$lang['both_changes'] = 'Ambos, páxinas e arquivos-media';
$lang['qb_bold'] = 'Texto Resaltado';
$lang['qb_italic'] = 'Texto en Cursiva';
$lang['qb_underl'] = 'Texto Subliñado';
@ -209,6 +231,9 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Formato';
$lang['img_camera'] = 'Cámara';
$lang['img_keywords'] = 'Verbas chave';
$lang['img_width'] = 'Ancho';
$lang['img_height'] = 'Alto';
$lang['img_manager'] = 'Ver no xestor de arquivos-media';
$lang['subscr_subscribe_success'] = 'Engadido %s á lista de subscrición para %s';
$lang['subscr_subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición para %s';
$lang['subscr_subscribe_noaddress'] = 'Non hai enderezos asociados co teu inicio de sesión, non é posíbel engadirte á lista de subscrición';
@ -252,21 +277,7 @@ $lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arq
$lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)';
$lang['i_pol2'] = 'Wiki Fechado (lectura, escritura, subida de arquivos só para usuarios rexistrados)';
$lang['i_retry'] = 'Tentar de novo';
$lang['mu_intro'] = 'Aquí podes subir varios arquivos de vez. Preme o botón Navegar para engadilos á cola. Preme en Subir cando remates.';
$lang['mu_gridname'] = 'Nome de Arquivo';
$lang['mu_gridsize'] = 'Tamaño';
$lang['mu_gridstat'] = 'Estado';
$lang['mu_namespace'] = 'Nome de Espazo';
$lang['mu_browse'] = 'Navegar';
$lang['mu_toobig'] = 'grande de máis';
$lang['mu_ready'] = 'disposto para subir';
$lang['mu_done'] = 'feito';
$lang['mu_fail'] = 'fallou';
$lang['mu_authfail'] = 'sesión expirada';
$lang['mu_progress'] = '@PCT@% subido';
$lang['mu_filetypes'] = 'Tipos de arquivo Permitidos';
$lang['mu_info'] = 'arquivos subidos.';
$lang['mu_lasterr'] = 'Último erro:';
$lang['i_license'] = 'Por favor escolla a licenza para o contido:';
$lang['recent_global'] = 'Agora mesmo estás a ver os trocos no nome de espazo <b>%s</b>. Tamén podes <a href="%s">ver os trocos recentes no Wiki enteiro</a>.';
$lang['years'] = 'hai %d anos';
$lang['months'] = 'hai %d meses';
@ -275,3 +286,28 @@ $lang['days'] = 'hai %d días';
$lang['hours'] = 'hai %d horas';
$lang['minutes'] = 'hai %d minutos';
$lang['seconds'] = 'hai %d segundos';
$lang['wordblock'] = 'Non se gardaron os cambios porque conteñen texto bloqueado (spam).';
$lang['media_uploadtab'] = 'Subir';
$lang['media_searchtab'] = 'Buscar';
$lang['media_file'] = 'Arquivo';
$lang['media_viewtab'] = 'Ver';
$lang['media_edittab'] = 'Editar';
$lang['media_historytab'] = 'Histórico';
$lang['media_list_thumbs'] = 'Miniaturas';
$lang['media_list_rows'] = 'Filas';
$lang['media_sort_name'] = 'Nome';
$lang['media_sort_date'] = 'Data';
$lang['media_namespaces'] = 'Escolla espazo';
$lang['media_files'] = 'Arquivos en %s';
$lang['media_upload'] = 'Subir a %s';
$lang['media_search'] = 'Buscar en %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s en %s';
$lang['media_edit'] = 'Editar %s';
$lang['media_history'] = 'Historia de %s';
$lang['media_meta_edited'] = 'datos meta editados';
$lang['media_perm_read'] = 'Sentímolo, non tes permisos suficientes para ler arquivos.';
$lang['media_perm_upload'] = 'Sentímolo, non tes permisos suficientes para subir arquivos.';
$lang['media_update'] = 'Subir nova versión';
$lang['media_restore'] = 'Restaurar esta versión';
$lang['plugin_install_err'] = 'Extensión instalada correctamente. Re-nomea o directorio da extensión de \'%s\' a \'%s\'.';

View File

@ -45,7 +45,6 @@ $lang['btn_backtomedia'] = 'חזרה לבחירת קובץ מדיה';
$lang['btn_subscribe'] = 'מעקב אחרי שינוים';
$lang['btn_profile'] = 'עדכון הפרופיל';
$lang['btn_reset'] = 'איפוס';
$lang['btn_resendpwd'] = 'שליחת ססמה חדשה';
$lang['btn_draft'] = 'עריכת טיוטה';
$lang['btn_recover'] = 'שחזור טיוטה';
$lang['btn_draftdel'] = 'מחיקת טיוטה';
@ -80,7 +79,6 @@ $lang['profnoempty'] = 'השם וכתובת הדוא״ל לא יכול
$lang['profchanged'] = 'הפרופיל עודכן בהצלחה';
$lang['pwdforget'] = 'שכחת את הססמה שלך? ניתן לקבל חדשה';
$lang['resendna'] = 'הוויקי הזה אינו תומך בחידוש ססמה';
$lang['resendpwd'] = 'שליחת ססמה חדשה עבור';
$lang['resendpwdmissing'] = 'עליך למלא את כל השדות, עמך הסליחה.';
$lang['resendpwdnouser'] = 'משתמש בשם זה לא נמצא במסד הנתונים, עמך הסליחה.';
$lang['resendpwdbadauth'] = 'קוד אימות זה אינו תקף. יש לוודא כי נעשה שימוש בקישור האימות המלא, עמך הסליחה.';
@ -259,21 +257,6 @@ $lang['i_pol1'] = ' ויקי ציבורי (קריאה לכולם,
$lang['i_pol2'] = 'ויקי סגור (קריאה, כתיבה והעלאה למשתמשים רשומים בלבד)';
$lang['i_retry'] = 'ניסיון נוסף';
$lang['i_license'] = 'נא לבחור את הרישיון שיחול על התוכן שבוויקי שלך:';
$lang['mu_intro'] = 'דרך כאן ניתן להעלות מספר קבצים בבת אחת. יש ללחוץ על לחצן החיפוש להוסיף אותם למחסנית. ניתן ללחוץ על העלאה לסיום.';
$lang['mu_gridname'] = 'שם הקובץ';
$lang['mu_gridsize'] = 'גודל';
$lang['mu_gridstat'] = 'מצב';
$lang['mu_namespace'] = 'מרחב שם';
$lang['mu_browse'] = 'חיפוש';
$lang['mu_toobig'] = 'גדול מדי';
$lang['mu_ready'] = 'בהמתנה להעלאה';
$lang['mu_done'] = 'הסתיים';
$lang['mu_fail'] = 'נכשל';
$lang['mu_authfail'] = 'תוקף ההפעלה פג';
$lang['mu_progress'] = '@PCT@% הועלה';
$lang['mu_filetypes'] = 'סוגי קבצים מורשים';
$lang['mu_info'] = 'הקבצים הועלו';
$lang['mu_lasterr'] = 'שגיאה אחרונה:';
$lang['recent_global'] = 'נכון לעכשיו מתנהל על ידיך מעקב אחר מרחב השם <b>%s</b>. כמו כן, באפשרותך <a href="%s">לצפות בשינויים האחרונים בוויקי כולו</a>.';
$lang['years'] = 'לפני %d שנים';
$lang['months'] = 'לפני %d חודשים';

View File

@ -59,7 +59,6 @@ $lang['regpwmail'] = 'आपकी डोकुविकी का
$lang['reghere'] = 'आपके पास अभी तक कोई खाता नहीं है? बस एक लें |';
$lang['profna'] = 'यह विकी प्रोफ़ाइल संशोधन का समर्थन नहीं करता |';
$lang['profnochange'] = 'कोई परिवर्तन नहीं, कुछ नहीं करना |';
$lang['resendpwd'] = 'नवगुप्तशब्द भेजें';
$lang['resendpwdmissing'] = 'छमा करें, आपको सारे रिक्त स्थान भरने पड़ेंगे |';
$lang['resendpwdsuccess'] = 'आपका नवगुप्तशब्द ईमेल द्वारा सम्प्रेषित कर दिया गया है |';
$lang['txt_upload'] = 'अपलोड करने के लिए फ़ाइल चुनें';
@ -116,10 +115,3 @@ $lang['i_installer'] = 'डोकुविकी इंस्टॉल
$lang['i_wikiname'] = 'विकी का नाम';
$lang['i_superuser'] = 'महाउपयोगकर्ता';
$lang['i_retry'] = 'पुनःप्रयास';
$lang['mu_gridsize'] = 'आकार';
$lang['mu_gridstat'] = 'स्थिति';
$lang['mu_browse'] = 'ब्राउज़';
$lang['mu_toobig'] = 'बहुत बड़ा';
$lang['mu_ready'] = 'अपलोड करने के लिए तैयार';
$lang['mu_done'] = 'पूर्ण';
$lang['mu_fail'] = 'असफल';

View File

@ -42,7 +42,6 @@ $lang['btn_backtomedia'] = 'Povratak na Mediafile izbornik';
$lang['btn_subscribe'] = 'Pretplati se na promjene dokumenta';
$lang['btn_profile'] = 'Ažuriraj profil';
$lang['btn_reset'] = 'Poništi promjene';
$lang['btn_resendpwd'] = 'Pošalji novu lozinku';
$lang['btn_draft'] = 'Uredi nacrt dokumenta';
$lang['btn_recover'] = 'Vrati prijašnji nacrt dokumenta';
$lang['btn_draftdel'] = 'Obriši nacrt dokumenta';
@ -77,7 +76,6 @@ $lang['profnoempty'] = 'Prazno korisničko ime ili email nisu dopušte
$lang['profchanged'] = 'Korisnički profil je uspješno izmijenjen.';
$lang['pwdforget'] = 'Izgubili ste lozinku? Zatražite novu';
$lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke emailom.';
$lang['resendpwd'] = 'Poslati 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.';
@ -257,21 +255,6 @@ $lang['i_pol1'] = 'Javni Wiki (čitanje za sve, pisanje i učitav
$lang['i_pol2'] = 'Zatvoreni Wiki (čitanje, pisanje, učitavanje samo za registrirane korisnike)';
$lang['i_retry'] = 'Pokušaj ponovo';
$lang['i_license'] = 'Molim odaberite licencu pod kojom želite postavljati vaš sadržaj:';
$lang['mu_intro'] = 'Ovdje možeš učitati više datoteka odjednom. Klikni gumb pregled te ih dodajte u red. Pritisnite učitaj kad ste gotovi.';
$lang['mu_gridname'] = 'Naziv datoteke';
$lang['mu_gridsize'] = 'Veličina';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Imenski prostor';
$lang['mu_browse'] = 'Pregled';
$lang['mu_toobig'] = 'prevelik';
$lang['mu_ready'] = 'spremno za učitavanje';
$lang['mu_done'] = 'gotovo';
$lang['mu_fail'] = 'nije uspio';
$lang['mu_authfail'] = 'sjednica istekla';
$lang['mu_progress'] = '@PCT@% učitan';
$lang['mu_filetypes'] = 'Dozvoljeni tipovi datoteka';
$lang['mu_info'] = 'datoteke učitane.';
$lang['mu_lasterr'] = 'Posljednja greška:';
$lang['recent_global'] = 'Trenutno gledate promjene unutar <b>%s</b> imenskog prostora. Također možete <a href="%s">vidjeti zadnje promjene cijelog wiki-a</a>';
$lang['years'] = '%d godina prije';
$lang['months'] = '%d mjeseci prije';

View File

@ -45,7 +45,6 @@ $lang['btn_backtomedia'] = 'Vissza a médiafájlok kezeléséhez';
$lang['btn_subscribe'] = 'Oldalváltozások-hírlevél feliratkozás';
$lang['btn_profile'] = 'Személyes beállítások';
$lang['btn_reset'] = 'Alaphelyzet';
$lang['btn_resendpwd'] = 'Új jelszó küldése';
$lang['btn_draft'] = 'Piszkozat szerkesztése';
$lang['btn_recover'] = 'Piszkozat folytatása';
$lang['btn_draftdel'] = 'Piszkozat törlése';
@ -80,7 +79,6 @@ $lang['profnoempty'] = 'A név és e-mail mező nem maradhat üresen!'
$lang['profchanged'] = 'A személyes beállítások változtatása megtörtént.';
$lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat';
$lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.';
$lang['resendpwd'] = 'Új jelszó kiküldése ennek a felhasználónak';
$lang['resendpwdmissing'] = 'Sajnáljuk, az összes mezőt ki kell töltened.';
$lang['resendpwdnouser'] = 'Sajnáljuk, ilyen azonosítójú felhasználónk nem létezik.';
$lang['resendpwdbadauth'] = 'Sajnáljuk, ez a megerősítő kód nem helyes. Biztos, hogy a teljes megerősítés linket beírtad pontosan?';
@ -262,21 +260,6 @@ $lang['i_pol1'] = 'Publikus Wiki (mindenki olvashatja, de csak re
$lang['i_pol2'] = 'Zárt Wiki (csak regisztrált felhasználók olvashatják, írhatják és tölthetnek fel fájlokat)';
$lang['i_retry'] = 'Újra';
$lang['i_license'] = 'Kérlek válassz licenszt a feltöltött tartalomhoz:';
$lang['mu_intro'] = 'Itt több fájlt is fel tudsz tölteni egyszerre. Kattints a "Kiválaszt" gombra és add hozzá a listához. Nyomd meg a Feltöltés gombot, amikor elkészültél.';
$lang['mu_gridname'] = 'Fájlnév';
$lang['mu_gridsize'] = 'Méret';
$lang['mu_gridstat'] = 'Állapot';
$lang['mu_namespace'] = 'Névtér';
$lang['mu_browse'] = 'Kiválaszt';
$lang['mu_toobig'] = 'túl nagy';
$lang['mu_ready'] = 'feltöltésre kész';
$lang['mu_done'] = 'kész';
$lang['mu_fail'] = 'hibás';
$lang['mu_authfail'] = 'session lejárt';
$lang['mu_progress'] = '@PCT@% feltöltve';
$lang['mu_filetypes'] = 'Megengedett fájltípusok';
$lang['mu_info'] = 'Fájlok feltöltve.';
$lang['mu_lasterr'] = 'Utolsó hiba:';
$lang['recent_global'] = 'Jelenleg csak a <b>%s</b> névtér friss változásai látszanak. Megtekinthetők <a href="%s">a teljes wiki friss változásai</a> is.';
$lang['years'] = '%d évvel ezelőtt';
$lang['months'] = '%d hónappal ezelőtt';

View File

@ -45,7 +45,6 @@ $lang['btn_backtomedia'] = 'Retornar al selection de files multimedia';
$lang['btn_subscribe'] = 'Gerer subscriptiones';
$lang['btn_profile'] = 'Actualisar profilo';
$lang['btn_reset'] = 'Reinitialisar';
$lang['btn_resendpwd'] = 'Inviar nove contrasigno';
$lang['btn_draft'] = 'Modificar version provisori';
$lang['btn_recover'] = 'Recuperar version provisori';
$lang['btn_draftdel'] = 'Deler version provisori';
@ -80,7 +79,6 @@ $lang['profnoempty'] = 'Un nomine o adresse de e-mail vacue non es per
$lang['profchanged'] = 'Actualisation del profilo de usator succedite.';
$lang['pwdforget'] = 'Contrasigno oblidate? Obtene un altere';
$lang['resendna'] = 'Iste wiki non supporta le invio de un nove contrasigno.';
$lang['resendpwd'] = 'Inviar nove contrasigno pro';
$lang['resendpwdmissing'] = 'Es necessari completar tote le campos.';
$lang['resendpwdnouser'] = 'Iste usator non ha essite trovate in le base de datos.';
$lang['resendpwdbadauth'] = 'Iste codice de authentication non es valide. Assecura te que tu ha usate le ligamine de confirmation complete.';
@ -257,21 +255,6 @@ $lang['i_pol0'] = 'Wiki aperte (lectura, scriptura, incargamento
$lang['i_pol1'] = 'Wiki public (lectura pro omnes, scriptura e incargamento pro usatores registrate)';
$lang['i_pol2'] = 'Wiki claudite (lectura, scriptura e incargamento solmente pro usatores registrate)';
$lang['i_retry'] = 'Reprobar';
$lang['mu_intro'] = 'Hic tu pote incargar plure files insimul. Clicca super le button Navigar pro adder los al cauda. Preme Incargar quando tu ha finite.';
$lang['mu_gridname'] = 'Nomine de file';
$lang['mu_gridsize'] = 'Dimension';
$lang['mu_gridstat'] = 'Stato';
$lang['mu_namespace'] = 'Spatio de nomines';
$lang['mu_browse'] = 'Navigar';
$lang['mu_toobig'] = 'troppo grande';
$lang['mu_ready'] = 'preste pro incargamento';
$lang['mu_done'] = 'complete';
$lang['mu_fail'] = 'fallite';
$lang['mu_authfail'] = 'session expirate';
$lang['mu_progress'] = '@PCT@% incargate';
$lang['mu_filetypes'] = 'Typos de file permittite';
$lang['mu_info'] = 'files incargate.';
$lang['mu_lasterr'] = 'Ultime error:';
$lang['recent_global'] = 'Tu observa actualmente le modificationes intra le spatio de nomines <b>%s</b>. Tu pote etiam <a href="%s">vider le modificationes recente de tote le wiki</a>.';
$lang['years'] = '%d annos retro';
$lang['months'] = '%d menses retro';

View File

@ -38,7 +38,6 @@ $lang['btn_backlink'] = 'Link fangawuli';
$lang['btn_backtomedia'] = 'Angawuli ba filianö Mediafile';
$lang['btn_profile'] = 'Famohouni pörofile';
$lang['btn_reset'] = 'Fawu\'a';
$lang['btn_resendpwd'] = 'Fa\'ohe\'ö kode sibohou';
$lang['btn_draft'] = 'Fawu\'a wanura';
$lang['btn_draftdel'] = 'Heta zura';
$lang['btn_register'] = 'Fasura\'ö';
@ -69,7 +68,6 @@ $lang['profnoempty'] = 'Lö tetehegö na lö hadöi töi ma imele.';
$lang['profchanged'] = 'Pörofile zangoguna\'ö no tebohouni.';
$lang['pwdforget'] = 'Hadia olifu\'ö kode? Fuli halö kode';
$lang['resendna'] = 'Lö tetehegi ba wiki da\'a wama\'ohe\'ö kode dua kali.';
$lang['resendpwd'] = 'Tefa\'ohe\'ö kode sibahou khö';
$lang['resendpwdmissing'] = 'Bologö dödöu, si lö tola lö\'ö öfo\'ösi fefu nahia si tohöna.';
$lang['resendpwdnouser'] = 'Bologö dödöu, lö masöndra zangoguna da\'a ba database.';
$lang['resendpwdconfirm'] = 'No tefaohe\'ö link famaduhu\'ö ba imele.';

View File

@ -42,7 +42,6 @@ $lang['btn_subscribe'] = 'Ikuti Perubahan';
$lang['btn_unsubscribe'] = 'Berhenti Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
$lang['btn_reset'] = 'Reset';
$lang['btn_resendpwd'] = 'Kirim password baru';
$lang['btn_draft'] = 'Edit draft';
$lang['btn_draftdel'] = 'Hapus draft';
$lang['btn_register'] = 'Daftar';
@ -74,7 +73,6 @@ $lang['profnoempty'] = 'Mohon mengisikan nama atau alamat email.';
$lang['profchanged'] = 'Profil User berhasil diubah.';
$lang['pwdforget'] = 'Lupa Password? Dapatkan yang baru';
$lang['resendna'] = 'Wiki ini tidak mendukung pengiriman ulang password.';
$lang['resendpwd'] = 'Kirim password baru untuk';
$lang['resendpwdmissing'] = 'Maaf, Anda harus mengisikan semua field.';
$lang['resendpwdnouser'] = 'Maaf, user ini tidak ditemukan.';
$lang['resendpwdbadauth'] = 'Maaf, kode autentikasi tidak valid. Pastikan Anda menggunakan keseluruhan link konfirmasi.';
@ -197,14 +195,3 @@ $lang['i_pol0'] = 'Wiki Terbuka (baca, tulis, upload untuk semua
$lang['i_pol1'] = 'Wiki Publik (baca untuk semua orang, tulis dan upload untuk pengguna terdaftar)';
$lang['i_pol2'] = 'Wiki Privat (baca, tulis dan upload hanya untuk pengguna terdaftar)';
$lang['i_retry'] = 'Coba Lagi';
$lang['mu_gridname'] = 'Nama file';
$lang['mu_gridsize'] = 'Ukuran';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namaspace';
$lang['mu_browse'] = 'Jelajah';
$lang['mu_ready'] = 'Siap untuk uplod';
$lang['mu_done'] = 'Selesai';
$lang['mu_fail'] = 'Gagal';
$lang['mu_authfail'] = 'sesi habis';
$lang['mu_progress'] = '@PCT@% uploaded';
$lang['mu_filetypes'] = 'Izinkan tipe file';

View File

@ -47,7 +47,6 @@ $lang['btn_subscribe'] = 'Vakta';
$lang['btn_unsubscribe'] = 'Afvakta';
$lang['btn_profile'] = 'Uppfæra notanda';
$lang['btn_reset'] = 'Endurstilla';
$lang['btn_resendpwd'] = 'Senda nýtt aðgangsorð með tölvupósti';
$lang['btn_draft'] = 'Breyta uppkasti';
$lang['btn_recover'] = 'Endurheimta uppkast';
$lang['btn_draftdel'] = 'Eyða uppkasti';
@ -82,7 +81,6 @@ $lang['profnoempty'] = 'Það er ekki leyfilegt að skilja nafn og pó
$lang['profchanged'] = 'Notendaupplýsingum breytt';
$lang['pwdforget'] = 'Gleymt aðgangsorð? Fáðu nýtt';
$lang['resendna'] = 'Þessi wiki styður ekki endursendingar aðgangsorðs';
$lang['resendpwd'] = 'Senda nýtt aðgangsorð fyrir';
$lang['resendpwdmissing'] = 'Afsakið, þú verður að út eyðublaðið allt';
$lang['resendpwdnouser'] = 'Afsakið, notandi finnst ekki.';
$lang['resendpwdbadauth'] = 'Afsakið, þessi sannvottunorð er ekki gild. Gakktu úr skugga um að þú notaðir að ljúka staðfesting hlekkur.';
@ -185,10 +183,3 @@ $lang['img_format'] = 'Forsnið';
$lang['img_camera'] = 'Myndavél';
$lang['img_keywords'] = 'Lykilorðir';
$lang['i_retry'] = 'Reyna aftur';
$lang['mu_gridsize'] = 'Stærð';
$lang['mu_toobig'] = 'of stór';
$lang['mu_ready'] = 'tilbúin til upphleðslu';
$lang['mu_done'] = 'lokið';
$lang['mu_fail'] = 'mistókst';
$lang['mu_info'] = 'Skrár innhlaðnar.';
$lang['mu_lasterr'] = 'Síðasta villa:';

View File

@ -48,7 +48,6 @@ $lang['btn_backtomedia'] = 'Torna alla selezione file';
$lang['btn_subscribe'] = 'Sottoscrivi modifiche';
$lang['btn_profile'] = 'Aggiorna profilo';
$lang['btn_reset'] = 'Annulla';
$lang['btn_resendpwd'] = 'Invia nuova password';
$lang['btn_draft'] = 'Modifica bozza';
$lang['btn_recover'] = 'Ripristina bozza';
$lang['btn_draftdel'] = 'Elimina bozza';
@ -83,7 +82,6 @@ $lang['profnoempty'] = 'Nome o indirizzo email vuoti non sono consenti
$lang['profchanged'] = 'Aggiornamento del profilo utente riuscito.';
$lang['pwdforget'] = 'Hai dimenticato la password? Richiedine una nuova';
$lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove password.';
$lang['resendpwd'] = 'Invia nuova password per';
$lang['resendpwdmissing'] = 'Devi riempire tutti i campi.';
$lang['resendpwdnouser'] = 'Impossibile trovare questo utente nel database.';
$lang['resendpwdbadauth'] = 'Spiacenti, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.';
@ -92,7 +90,7 @@ $lang['resendpwdsuccess'] = 'La nuova password è stata spedita via email.'
$lang['license'] = 'Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza:';
$lang['licenseok'] = 'Nota: modificando questa pagina accetti di rilasciare il contenuto sotto la seguente licenza:';
$lang['searchmedia'] = 'Cerca file di nome:';
$lang['searchmedia_in'] = 'Cerca in &s';
$lang['searchmedia_in'] = 'Cerca in %s';
$lang['txt_upload'] = 'Seleziona un file da caricare';
$lang['txt_filename'] = 'Carica come (opzionale)';
$lang['txt_overwrt'] = 'Sovrascrivi file esistente';
@ -225,8 +223,8 @@ $lang['subscr_subscribe_error'] = 'Impossibile aggiungere %s alla lista di sotto
$lang['subscr_subscribe_noaddress'] = 'Non esiste alcun indirizzo associato al tuo account, non puoi essere aggiunto alla lista di sottoscrizioni';
$lang['subscr_unsubscribe_success'] = 'Rimosso %s dalla lista di sottoscrizioni %s';
$lang['subscr_unsubscribe_error'] = 'Impossibile rimuovere %s dalla lista di sottoscrizioni %s';
$lang['subscr_already_subscribed'] = '% è già iscritto a %s';
$lang['subscr_not_subscribed'] = '% non è iscritto a %s';
$lang['subscr_already_subscribed'] = '%s è già iscritto a %s';
$lang['subscr_not_subscribed'] = '%s non è iscritto a %s';
$lang['subscr_m_not_subscribed'] = 'Attualmente non sei iscritto alla pagina o categoria corrente';
$lang['subscr_m_new_header'] = 'Aggiungi sottoscrizione';
$lang['subscr_m_current_header'] = 'Sottoscrizioni attuali';
@ -262,21 +260,6 @@ $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e
$lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)';
$lang['i_retry'] = 'Riprova';
$lang['i_license'] = 'Per favore scegli la licenza sotto cui vuoi rilasciare il contenuto:';
$lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Scegliere "Sfoglia..." per aggiungere file alla coda. Alla fine, fai click su "Invia file".';
$lang['mu_gridname'] = 'Nome file';
$lang['mu_gridsize'] = 'Dimensione';
$lang['mu_gridstat'] = 'Stato';
$lang['mu_namespace'] = 'Categoria';
$lang['mu_browse'] = 'Sfoglia';
$lang['mu_toobig'] = 'troppo grande';
$lang['mu_ready'] = 'pronto per caricare';
$lang['mu_done'] = 'completo';
$lang['mu_fail'] = 'fallito';
$lang['mu_authfail'] = 'sessione scaduta';
$lang['mu_progress'] = '@PCT@% caricato';
$lang['mu_filetypes'] = 'Tipi di file permessi';
$lang['mu_info'] = 'file caricati.';
$lang['mu_lasterr'] = 'Ultimo errore:';
$lang['recent_global'] = 'Stai attualmente vedendo le modifiche effettuate nell\'area <b>%s</b>. Puoi anche <a href="%s">vedere le modifiche recenti dell\'intero wiki</a>.';
$lang['years'] = '%d anni fa';
$lang['months'] = '%d mesi fa';

View File

@ -1,4 +1,4 @@
====== 索引 ======
====== サイトマップ ======
[[doku>namespaces|名前空間]] に基づく、全ての文書の索引です。

View File

@ -7,6 +7,7 @@
* @author Ikuo Obataya <i.obataya@gmail.com>
* @author Daniel Dupriest <kououken@gmail.com>
* @author Kazutaka Miyasaka <kazmiya@gmail.com>
* @author Taisuke Shimamoto <dentostar@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -29,7 +30,7 @@ $lang['btn_revs'] = '以前のリビジョン';
$lang['btn_recent'] = '最近の変更';
$lang['btn_upload'] = 'アップロード';
$lang['btn_cancel'] = 'キャンセル';
$lang['btn_index'] = '索引';
$lang['btn_index'] = 'サイトマップ';
$lang['btn_secedit'] = '編集';
$lang['btn_login'] = 'ログイン';
$lang['btn_logout'] = 'ログアウト';
@ -42,12 +43,14 @@ $lang['btn_backtomedia'] = 'メディアファイル選択に戻る';
$lang['btn_subscribe'] = '変更履歴配信の登録';
$lang['btn_profile'] = 'ユーザー情報の更新';
$lang['btn_reset'] = 'リセット';
$lang['btn_resendpwd'] = 'パスワード再発行';
$lang['btn_resendpwd'] = '新しいパスワードをセット';
$lang['btn_draft'] = 'ドラフトを編集';
$lang['btn_recover'] = 'ドラフトを復元';
$lang['btn_draftdel'] = 'ドラフトを削除';
$lang['btn_revert'] = '元に戻す';
$lang['btn_register'] = 'ユーザー登録';
$lang['btn_apply'] = '適用';
$lang['btn_media'] = 'メディアマネージャー';
$lang['loggedinas'] = 'ようこそ';
$lang['user'] = 'ユーザー名';
$lang['pass'] = 'パスワード';
@ -77,7 +80,7 @@ $lang['profnoempty'] = 'ユーザー名とメールアドレスを入
$lang['profchanged'] = 'ユーザー情報は更新されました。';
$lang['pwdforget'] = 'パスワードをお忘れですか?パスワード再発行';
$lang['resendna'] = 'パスワードの再発行は出来ません。';
$lang['resendpwd'] = '新しいパスワードを送信します:';
$lang['resendpwd'] = '新しいパスワードをセット';
$lang['resendpwdmissing'] = '全ての項目を入力して下さい。';
$lang['resendpwdnouser'] = '入力されたユーザーが見つかりませんでした。';
$lang['resendpwdbadauth'] = '申し訳ありません。この確認コードは有効ではありません。メール内に記載されたリンクを確認してください。';
@ -92,7 +95,7 @@ $lang['txt_filename'] = '名前を変更してアップロード(オ
$lang['txt_overwrt'] = '既存のファイルを上書き';
$lang['lockedby'] = 'この文書は次のユーザによってロックされています';
$lang['lockexpire'] = 'ロック期限:';
$lang['js']['willexpire'] = '編集中の文書はロック期限を過ぎようとしています。このままロックする場合は、一度文書の確認を行って期限をリセットしてください。';
$lang['js']['willexpire'] = '編集中の文書はロック期限を過ぎようとしています。このままロックする場合は、一度文書の確認を行って期限をリセットしてください。';
$lang['js']['notsavedyet'] = '変更は保存されません。このまま処理を続けてよろしいですか?';
$lang['js']['searchmedia'] = 'ファイル検索';
$lang['js']['keepopen'] = '選択中はウィンドウを閉じない';
@ -123,9 +126,20 @@ $lang['js']['nosmblinks'] = 'ウィンドウズの共有フォルダへリ
$lang['js']['linkwiz'] = 'リンクウィザード';
$lang['js']['linkto'] = 'リンク先:';
$lang['js']['del_confirm'] = '選択した項目を本当に削除しますか?';
$lang['js']['restore_confirm'] = '本当にこのバージョンを復元しますか?';
$lang['js']['media_diff'] = '差分の表示方法:';
$lang['js']['media_diff_both'] = '並べて表示';
$lang['js']['media_diff_opacity'] = '重ねて透過表示';
$lang['js']['media_diff_portions'] = '重ねて切替表示';
$lang['js']['media_select'] = 'ファイルを選択...';
$lang['js']['media_upload_btn'] = 'アップロード';
$lang['js']['media_done_btn'] = '完了';
$lang['js']['media_drop'] = 'ここにファイルをドロップするとアップロードします';
$lang['js']['media_cancel'] = '削除';
$lang['js']['media_overwrt'] = '既存のファイルを上書きする';
$lang['rssfailed'] = 'RSSの取得に失敗しました';
$lang['nothingfound'] = '該当文書はありませんでした。';
$lang['mediaselect'] = 'メディアファイルを選択';
$lang['mediaselect'] = 'メディアファイル';
$lang['fileupload'] = 'メディアファイルをアップロード';
$lang['uploadsucc'] = 'アップロード完了';
$lang['uploadfail'] = 'アップロードに失敗しました。権限がありません。';
@ -172,11 +186,20 @@ $lang['external_edit'] = '外部編集';
$lang['summary'] = '編集の概要';
$lang['noflash'] = 'この内容を表示するためには <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> が必要です。';
$lang['download'] = 'この部分をダウンロード';
$lang['tools'] = 'ツール';
$lang['user_tools'] = 'ユーザ用ツール';
$lang['site_tools'] = 'サイト用ツール';
$lang['page_tools'] = 'ページ用ツール';
$lang['skip_to_content'] = '内容へ移動';
$lang['mail_newpage'] = '文書の追加:';
$lang['mail_changed'] = '文書の変更:';
$lang['mail_subscribe_list'] = '名前空間内でページが変更:';
$lang['mail_new_user'] = '新規ユーザー:';
$lang['mail_upload'] = 'ファイルのアップロード:';
$lang['changes_type'] = '表示する変更のタイプ:';
$lang['pages_changes'] = 'ページの変更';
$lang['media_changes'] = 'メディアファイルの変更';
$lang['both_changes'] = 'ページとメディアファイルの変更';
$lang['qb_bold'] = '太字';
$lang['qb_italic'] = '斜体';
$lang['qb_underl'] = '下線';
@ -217,6 +240,9 @@ $lang['img_copyr'] = '著作権';
$lang['img_format'] = 'フォーマット';
$lang['img_camera'] = '使用カメラ';
$lang['img_keywords'] = 'キーワード';
$lang['img_width'] = '幅';
$lang['img_height'] = '高さ';
$lang['img_manager'] = 'メディアマネージャーで閲覧';
$lang['subscr_subscribe_success'] = '%sが%sの購読リストに登録されました。';
$lang['subscr_subscribe_error'] = '%sを%sの購読リストへの追加に失敗しました。';
$lang['subscr_subscribe_noaddress'] = 'あなたのログインに対応するアドレスがないため、購読リストへ追加することができません。';
@ -259,21 +285,6 @@ $lang['i_pol1'] = 'パブリック Wiki閲覧は全ての人
$lang['i_pol2'] = 'クローズド Wiki (登録ユーザーにのみ使用を許可)';
$lang['i_retry'] = '再試行';
$lang['i_license'] = 'あなたが作成したコンテンツが属するライセンスを選択してください:';
$lang['mu_intro'] = '複数のファイルを一度にアップロードできます。ブラウズボタンをクリックしてファイルを追加してください。追加したら、アップロードボタンをクリックしてください。';
$lang['mu_gridname'] = 'ファイル名';
$lang['mu_gridsize'] = 'サイズ';
$lang['mu_gridstat'] = 'ステータス';
$lang['mu_namespace'] = '名前空間';
$lang['mu_browse'] = 'ブラウズ';
$lang['mu_toobig'] = '大きすぎます';
$lang['mu_ready'] = 'アップロードできます';
$lang['mu_done'] = '完了';
$lang['mu_fail'] = '失敗';
$lang['mu_authfail'] = 'セッション期限切れ';
$lang['mu_progress'] = '@PCT@% アップロード完了';
$lang['mu_filetypes'] = '使用できるファイル形式';
$lang['mu_info'] = 'ファイルアップロード完了';
$lang['mu_lasterr'] = '直近のエラー:';
$lang['recent_global'] = '現在、<b>%s</b> 名前空間内の変更点を閲覧中です。<a href="%s">Wiki全体の最近の変更点を確認する</a>ことも可能です。';
$lang['years'] = '%d年前';
$lang['months'] = '%dカ月前';
@ -283,3 +294,27 @@ $lang['hours'] = '%d時間前';
$lang['minutes'] = '%d分前';
$lang['seconds'] = '%d秒前';
$lang['wordblock'] = 'スパムと認識されるテキストが含まれているため、変更は保存されませんでした。';
$lang['media_uploadtab'] = 'アップロード';
$lang['media_searchtab'] = '検索';
$lang['media_file'] = 'ファイル';
$lang['media_viewtab'] = '詳細';
$lang['media_edittab'] = '編集';
$lang['media_historytab'] = '履歴';
$lang['media_list_thumbs'] = 'サムネイル';
$lang['media_list_rows'] = '行';
$lang['media_sort_name'] = '名前';
$lang['media_sort_date'] = '日付';
$lang['media_namespaces'] = '名前空間を選択';
$lang['media_files'] = '%s 内のファイル';
$lang['media_upload'] = '%s にアップロード';
$lang['media_search'] = '%s 内で検索';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s at %s';
$lang['media_edit'] = '%s を編集';
$lang['media_history'] = '%s の履歴';
$lang['media_meta_edited'] = 'メタデータが編集されました';
$lang['media_perm_read'] = 'ファイルを閲覧する権限がありません。';
$lang['media_perm_upload'] = 'ファイルをアップロードする権限がありません。';
$lang['media_update'] = '新しいバージョンをアップロード';
$lang['media_restore'] = 'このバージョンを復元';
$lang['plugin_install_err'] = 'プラグインが正しくインストールされませんでした。プラグインのディレクトリ名を \'%s\' から \'%s\' に変更してください。';

3
inc/lang/ja/resetpwd.txt Normal file
View File

@ -0,0 +1,3 @@
====== 新しいパスワードをセット ======
このWikiでの、あなたのアカウント用の新しいパスワードを入力して下さい

View File

@ -38,7 +38,6 @@ $lang['btn_backtomedia'] = 'Медиафайлды таңдауға қай
$lang['btn_subscribe'] = 'Жазылуларды басқару';
$lang['btn_profile'] = 'Профильді жаңарту';
$lang['btn_reset'] = 'Түсіру';
$lang['btn_resendpwd'] = 'Жаңа құпиясөзді жіберу';
$lang['btn_draft'] = 'Шимайды өңдеу';
$lang['btn_recover'] = 'Шимайды қайтару';
$lang['btn_draftdel'] = 'Шимайды өшіру';
@ -73,7 +72,6 @@ $lang['profnoempty'] = 'Бос есім не email рұқсат еті
$lang['profchanged'] = 'Пайдаланушы профилі сәтті жаңартылған.';
$lang['pwdforget'] = 'Құпиясөзіңізді ұмыттыңызба? Жаңадан біреуін алыңыз';
$lang['resendna'] = 'Бұл wiki құпиясөзді қайта жіберуді қолдамайды.';
$lang['resendpwd'] = 'Келесіге жаңа құпиясөзді жіберу ';
$lang['resendpwdmissing'] = 'Кешіріңіз, барлық тармақтары толтыруыңыз керек.';
$lang['resendpwdnouser'] = 'Кешіріңіз, бұл пайдаланушыны дерекқорымызда тапқан жоқпыз.';
$lang['resendpwdbadauth'] = 'Кешіріңіз, бұл түпнұсқалық коды бұрыс. Толық растау сілтемені пайдалануыңызды тексеріңіз.';
@ -82,7 +80,7 @@ $lang['resendpwdsuccess'] = 'Сіздің жаңа құпиясөзіңіз
$lang['license'] = 'Басқаша көрсетілген болмаса, бұл wiki-дің мазмұны келесі лицензия бойынша беріледі:';
$lang['licenseok'] = 'Ескерту: бұл бетті өңдеуіңізбен мазмұныңыз келесі лицензия бойынша беруге келесесіз:';
$lang['searchmedia'] = 'Іздеу файлдың атауы:';
$lang['searchmedia_in'] = '%-мен іздеу:';
$lang['searchmedia_in'] = '%s-мен іздеу:';
$lang['txt_upload'] = 'Еңгізетін файлды таңдау';
$lang['txt_filename'] = 'Келесідей еңгізу (қалауынша)';
$lang['txt_overwrt'] = 'Бар файлды қайта жазу';

View File

@ -39,7 +39,6 @@ $lang['btn_subscribe'] = 'ដាក់ដំណឹងផ្លស់ប្ត
$lang['btn_unsubscribe'] = 'ដកដំណឹងផ្លស់ប្តូរ';
$lang['btn_profile'] = 'កែប្រវត្តិរូប';
$lang['btn_reset'] = 'កមណត់ឡើងរិញ';
$lang['btn_resendpwd'] = 'ផ្ញើពាក្សសម្ងាត់';
$lang['btn_draft'] = 'កែគំរោង';
$lang['btn_recover'] = 'ស្រោះគំរោងឡើង';
$lang['btn_draftdel'] = 'លុបគំរោង';
@ -76,7 +75,6 @@ $lang['profchanged'] = 'ប្រវត្តិរូបអ្នកប្រ
$lang['pwdforget'] = 'ភ្លិចពាក្សសម្ងាត់ យកមួយទាត។';
$lang['resendna'] = 'វីគីនេះមិនឧបរំផ្ញើពាក្សសម្ងាតម្ដងទៀតទេ។';
$lang['resendpwd'] = 'ផ្ញើពាក្សសម្ងាតឲ្យ';
$lang['resendpwdmissing'] = 'សុំអាទោស​ អ្នកត្រវបំពេញវាល។';
$lang['resendpwdnouser'] = 'សុំអាទោស​ យាងរកអ្នកប្រើមិនឃើងទេ។';
$lang['resendpwdbadauth'] = 'សុំអាទោស​ រហស្សលេខអនុញ្ញាតពំអាចប្រើបានទេ។ ខ្សែបន្ត';

View File

@ -8,6 +8,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author Seung-Chul Yoo <dryoo@live.com>
* @author erial2@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -43,13 +44,15 @@ $lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기';
$lang['btn_subscribe'] = '구독 신청';
$lang['btn_profile'] = '개인정보 변경';
$lang['btn_reset'] = '초기화';
$lang['btn_resendpwd'] = '새 패스워드 보내기';
$lang['btn_resendpwd'] = '새 암호 설정';
$lang['btn_draft'] = '문서초안 편집';
$lang['btn_recover'] = '문서초안 복구';
$lang['btn_draftdel'] = '문서초안 삭제';
$lang['btn_revert'] = '복원';
$lang['btn_register'] = '등록';
$lang['loggedinas'] = '다음 사용자로 로그인';
$lang['btn_apply'] = '적용';
$lang['btn_media'] = '미디어 관리';
$lang['loggedinas'] = '다른 사용자로 로그인';
$lang['user'] = '사용자';
$lang['pass'] = '패스워드';
$lang['newpass'] = '새로운 패스워드';
@ -78,7 +81,7 @@ $lang['profnoempty'] = '이름이나 이메일 주소가 비었습니
$lang['profchanged'] = '개인정보 변경이 성공했습니다.';
$lang['pwdforget'] = '패스워드를 잊어버린 경우 새로 발급받을 수 있습니다.';
$lang['resendna'] = '이 위키는 패스워드 재발급을 지원하지 않습니다.';
$lang['resendpwd'] = '새로운 패스워드를 보냅니다.';
$lang['resendpwd'] = '새 암호 다음으로 전송 : ';
$lang['resendpwdmissing'] = '새로운 패스워드를 입력해야햡니다.';
$lang['resendpwdnouser'] = '등록된 사용자가 아닙니다. 다시 확인 바랍니다.';
$lang['resendpwdbadauth'] = '인증 코드가 틀립니다. 잘못된 링크인지 확인 바랍니다.';
@ -93,7 +96,7 @@ $lang['txt_filename'] = '업로드 파일 이름을 입력합니다.(
$lang['txt_overwrt'] = '새로운 파일로 이전 파일을 교체합니다.';
$lang['lockedby'] = '현재 잠금 사용자';
$lang['lockexpire'] = '잠금 해제 시간';
$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하기 바랍니다.';
$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하기 바랍니다.';
$lang['js']['notsavedyet'] = '저장하지 않은 변경은 지워집니다.
계속하시겠습니까?';
$lang['js']['searchmedia'] = '파일 찾기';
@ -125,6 +128,17 @@ $lang['js']['nosmblinks'] = '윈도우 공유 파일과의 연결은 MS 인
$lang['js']['linkwiz'] = '링크 마법사';
$lang['js']['linkto'] = '다음으로 연결:';
$lang['js']['del_confirm'] = '정말로 선택된 항목(들)을 삭제하시겠습니까?';
$lang['js']['restore_confirm'] = '정말 이 버전으로 되돌리시겠습니까?';
$lang['js']['media_diff'] = '차이점 보기 :';
$lang['js']['media_diff_both'] = '나란히 보기';
$lang['js']['media_diff_opacity'] = '겹쳐 보기';
$lang['js']['media_diff_portions'] = '쪼개 보기';
$lang['js']['media_select'] = '파일 선택';
$lang['js']['media_upload_btn'] = '업로드';
$lang['js']['media_done_btn'] = '완료';
$lang['js']['media_drop'] = '업로드할 파일을 끌어넣으세요';
$lang['js']['media_cancel'] = '삭제';
$lang['js']['media_overwrt'] = '이미있는 파일 덮어쓰기';
$lang['rssfailed'] = 'feed 가져오기 실패: ';
$lang['nothingfound'] = '아무 것도 없습니다.';
$lang['mediaselect'] = '미디어 파일 선택';
@ -174,11 +188,20 @@ $lang['external_edit'] = '외부 편집기';
$lang['summary'] = '편집 요약';
$lang['noflash'] = '이 컨텐츠를 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>이 필요합니다.';
$lang['download'] = '조각 다운로드';
$lang['tools'] = '도구';
$lang['user_tools'] = '사용자 도구';
$lang['site_tools'] = '사이트 도구';
$lang['page_tools'] = '페이지 도구';
$lang['skip_to_content'] = '컨텐츠 넘기기';
$lang['mail_newpage'] = '페이지 추가:';
$lang['mail_changed'] = '페이지 변경:';
$lang['mail_subscribe_list'] = '네임스페이스에서 변경된 페이지:';
$lang['mail_new_user'] = '새로운 사용자:';
$lang['mail_upload'] = '파일 첨부:';
$lang['changes_type'] = '차이점 보기';
$lang['pages_changes'] = '페이지';
$lang['media_changes'] = '미디어 파일';
$lang['both_changes'] = '미디어 파일과 페이지 양쪽';
$lang['qb_bold'] = '굵은 글';
$lang['qb_italic'] = '이탤릭체 글';
$lang['qb_underl'] = '밑줄 그어진 글';
@ -219,6 +242,9 @@ $lang['img_copyr'] = '저작권';
$lang['img_format'] = '포맷';
$lang['img_camera'] = '카메라';
$lang['img_keywords'] = '키워드';
$lang['img_width'] = '너비';
$lang['img_height'] = '높이';
$lang['img_manager'] = '미디어 관리자에서 보기';
$lang['subscr_subscribe_success'] = '%s을(를) 구독목록 %s에 추가하였습니다';
$lang['subscr_subscribe_error'] = '%s을(를) 구독목록 %s에 추가하는데 실패했습니다';
$lang['subscr_subscribe_noaddress'] = '등록된 주소가 없기 때문에 구독목록에 등록되지 않았습니다';
@ -237,6 +263,7 @@ $lang['subscr_style_digest'] = '각 페이지의 변화를 요약 (매 %.2f
$lang['subscr_style_list'] = '마지막 이메일 이후 변화된 페이지의 목록 (매 %.2f 일 마다)';
$lang['authmodfailed'] = '잘못된 사용자 인증 설정입니다. 관리자에게 문의하기 바랍니다.';
$lang['authtempfail'] = '사용자 인증이 일시적으로 불가능합니다. 만일 계속해서 문제가 발생하면 관리자에게 문의하기 바랍니다.';
$lang['authpwdexpire'] = '현재 암호를 설정하신지 %d 일이 지났습니다. 새로 설정해주시기 바랍니다.';
$lang['i_chooselang'] = '사용하는 언어를 선택합니다.';
$lang['i_installer'] = 'DokuWiki 설치';
$lang['i_wikiname'] = '위키 이름';
@ -262,21 +289,6 @@ $lang['i_pol1'] = '공개형 위키 (누구나 읽을 수 있지
$lang['i_pol2'] = '폐쇄형 위키 (등록된 사용자만 읽기/쓰기/업로드가 가능합니다.)';
$lang['i_retry'] = '다시 시도';
$lang['i_license'] = '내용의 배포를 위한 라이센스를 선택하세요.';
$lang['mu_intro'] = '여러 파일을 한번에 업로드할 수 있습니다. 파일 목록에 추가하려면 "찾기" 버튼을 클릭합니다. 파일 목록 추가 작업이 끝나면 "업로드" 버튼을 클릭하기 바랍니다. ';
$lang['mu_gridname'] = '파일명';
$lang['mu_gridsize'] = '크기';
$lang['mu_gridstat'] = '상태';
$lang['mu_namespace'] = '네임스페이스';
$lang['mu_browse'] = '찾기';
$lang['mu_toobig'] = '업로드 가능 크기를 초과했습니다.';
$lang['mu_ready'] = '업로드가 가능합니다.';
$lang['mu_done'] = '업로드가 완료되었습니다.';
$lang['mu_fail'] = '업로드가 실패했습니다.';
$lang['mu_authfail'] = '세션 기간이 종료되었습니다.';
$lang['mu_progress'] = '@PCT@% 업로드되었습니다.';
$lang['mu_filetypes'] = '허용된 파일타입';
$lang['mu_info'] = '업로드 되었습니다.';
$lang['mu_lasterr'] = '마지막 에러:';
$lang['recent_global'] = '<b>%s</b> 네임스페이스를 구독중입니다. <a href="%s">전체위키 변경사항 </a>도 보실수 있습니다.';
$lang['years'] = '%d 년 전';
$lang['months'] = '%d 개월 전';
@ -286,3 +298,27 @@ $lang['hours'] = '%d 시간 전';
$lang['minutes'] = '%d 분 전';
$lang['seconds'] = '%d 초 전';
$lang['wordblock'] = '스팸 문구를 포함하고 있어서 저장되지 않았습니다.';
$lang['media_uploadtab'] = '업로드';
$lang['media_searchtab'] = '검색';
$lang['media_file'] = '파일';
$lang['media_viewtab'] = '보기';
$lang['media_edittab'] = '수정';
$lang['media_historytab'] = '변경사항';
$lang['media_list_thumbs'] = '썸네일';
$lang['media_list_rows'] = '목록';
$lang['media_sort_name'] = '이름';
$lang['media_sort_date'] = '날짜';
$lang['media_namespaces'] = '네임스페이스 선택';
$lang['media_files'] = '%s 의 파일';
$lang['media_upload'] = '%s 에 업로드';
$lang['media_search'] = '%s 를 검색';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s 의 %s';
$lang['media_edit'] = '%s 수정';
$lang['media_history'] = '%s 변경사항';
$lang['media_meta_edited'] = '메타데이터 수정됨';
$lang['media_perm_read'] = '죄송합니다, 이 파일을 읽을 권한이 없습니다.';
$lang['media_perm_upload'] = '죄송합니다. 파일을 업로드할 권한이 없습니다.';
$lang['media_update'] = '새 버전 올리기';
$lang['media_restore'] = '이 버전으로 되돌리기';
$lang['plugin_install_err'] = '플러그인 설치가 비정상적으로 이뤄졌습니다. 플러그인 디렉토리 \'%s\'를 \'%s\'로 변경하십시오.';

3
inc/lang/ko/resetpwd.txt Normal file
View File

@ -0,0 +1,3 @@
====== 새 암호 설정 ======
이 위키의 계정의 새 암호를 입력해주세요.

View File

@ -44,7 +44,6 @@ $lang['btn_backtomedia'] = 'Ad media redire';
$lang['btn_subscribe'] = 'Custodire';
$lang['btn_profile'] = 'Tabellam nouare';
$lang['btn_reset'] = 'Abrogare';
$lang['btn_resendpwd'] = 'Tesseram nouam cursu interretiali petere';
$lang['btn_draft'] = 'Propositum recensere';
$lang['btn_recover'] = 'Propositum reficere';
$lang['btn_draftdel'] = 'Propositum delere';
@ -79,7 +78,6 @@ $lang['profnoempty'] = 'Omnes campi complendi sunt.';
$lang['profchanged'] = 'Tabella Sodalis feliciter nouatur';
$lang['pwdforget'] = 'Tesseram amisistine? Nouam petere';
$lang['resendna'] = 'Tesseram non mutare potest.';
$lang['resendpwd'] = 'Tesseram mitte';
$lang['resendpwdmissing'] = 'Omnes campi complendi sunt.';
$lang['resendpwdnouser'] = 'In tabellis Sodalium nomen non inuentum est.';
$lang['resendpwdbadauth'] = 'Tesseram non legitima est.';
@ -222,7 +220,7 @@ $lang['subscr_subscribe_noaddress'] = 'Cursus interretialis tuus deest, sic in i
$lang['subscr_unsubscribe_success'] = 'A subscriptione %s deletur quod %s';
$lang['subscr_unsubscribe_error'] = 'Error delendi %s a subscriptione quod %s';
$lang['subscr_already_subscribed'] = '%s iam subscriptus\a est in %s';
$lang['subscr_not_subscribed'] = '%s non subscriptus\a est in %n';
$lang['subscr_not_subscribed'] = '%s non subscriptus\a est in %s';
$lang['subscr_m_not_subscribed'] = 'Non hanc paginam uel genus subscribere potes.';
$lang['subscr_m_new_header'] = 'Subscriptionem addere';
$lang['subscr_m_current_header'] = 'haec subscriptio:';
@ -256,21 +254,6 @@ $lang['i_pol1'] = 'Publicus uicis (omnes legere, Sodales scribere
$lang['i_pol2'] = 'Clausus uicis (Soli Sodales legere scribere et onerare poccunt)';
$lang['i_retry'] = 'Rursum temptas';
$lang['i_license'] = 'Elige facultatem sub qua tuus uicis est:';
$lang['mu_intro'] = 'Plura documenta uno tempore onerare potes.';
$lang['mu_gridname'] = 'Documenti nomen';
$lang['mu_gridsize'] = 'Pondus';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Genus';
$lang['mu_browse'] = 'Euoluere';
$lang['mu_toobig'] = 'Ponderosius';
$lang['mu_ready'] = 'Aptus ad onerandum';
$lang['mu_done'] = 'Perfectum';
$lang['mu_fail'] = 'Error';
$lang['mu_authfail'] = 'Sessio exit';
$lang['mu_progress'] = '@PCT@% oneratum';
$lang['mu_filetypes'] = 'Genera documenti apta facere';
$lang['mu_info'] = 'Documenta onerare';
$lang['mu_lasterr'] = 'Extremus error:';
$lang['recent_global'] = 'Mutatione in hoc genere uides. Recentiores mutationes quoque uidere <a href="%s">potes</a>';
$lang['years'] = 'ab annis %d';
$lang['months'] = 'a mensibus %d';

View File

@ -37,7 +37,6 @@ $lang['btn_backlink'] = 'Linker zeréck';
$lang['btn_backtomedia'] = 'Zeréck bei d\'Auswiel vun de Mediadateien';
$lang['btn_profile'] = 'Profil aktualiséieren';
$lang['btn_reset'] = 'Zerécksetzen';
$lang['btn_resendpwd'] = 'Nei Passwuert schécken';
$lang['btn_draft'] = 'Entworf änneren';
$lang['btn_recover'] = 'Entworf zeréckhuelen';
$lang['btn_draftdel'] = 'Entworf läschen';
@ -71,7 +70,6 @@ $lang['profnoempty'] = 'En eidele Numm oder Emailadress ass net erlaab
$lang['profchanged'] = 'Benotzerprofil erfollegräicht aktualiséiert.';
$lang['pwdforget'] = 'Passwuert vergiess? Fro der e Neit';
$lang['resendna'] = 'Dëse Wiki ënnerstëtzt net d\'Neiverschécke vu Passwieder.';
$lang['resendpwd'] = 'Nei Passwuert schécke fir';
$lang['resendpwdmissing'] = 'Du muss all Felder ausfëllen.';
$lang['resendpwdnouser'] = 'Kann dëse Benotzer net an der Datebank fannen.';
$lang['resendpwdbadauth'] = 'Den "Auth"-Code ass ongëlteg. Kuck no obs de dee ganze Konfirmationslink benotzt hues.';
@ -189,24 +187,9 @@ $lang['i_pol0'] = 'Oppene Wiki (liese, schreiwen an eroplueden fi
$lang['i_pol1'] = 'Ëffentleche Wiki (liesen fir jidfereen, schreiwen an eroplueden fir registréiert Benotzer)';
$lang['i_pol2'] = 'Zouene Wiki (liesen, schreiwen, eroplueden nëmme fir registréiert Benotzer)';
$lang['i_retry'] = 'Nach eng Kéier probéieren';
$lang['mu_intro'] = 'Hei kanns de méi Dateie mateneen eroplueden. Klick op den Duerchsiche-Knäppchen fir se an d\'Schlaang ze setzen. Dréck op Eroplueden wanns de fäerdeg bass.';
$lang['mu_gridname'] = 'Dateinumm';
$lang['mu_gridsize'] = 'Gréisst';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namespace';
$lang['mu_browse'] = 'Duerchsichen';
$lang['mu_toobig'] = 'ze grouss';
$lang['mu_ready'] = 'prett fir eropzelueden';
$lang['mu_done'] = 'fäerdeg';
$lang['mu_fail'] = 'feelgeschloen';
$lang['mu_authfail'] = 'Sessioun ofgelaf';
$lang['mu_progress'] = '@PCT@% eropgelueden';
$lang['mu_filetypes'] = 'Erlaabten Dateitypen';
$lang['mu_info'] = 'Dateien eropgelueden.';
$lang['mu_lasterr'] = 'Leschte Feeler:';
$lang['recent_global'] = 'Du kucks am Moment d\'Ännerungen innerhalb vum <b>%s</b> Namespace. Du kanns och <a href="%s">d\'Kierzilech Ännerungen vum ganze Wiki kucken</a>.';
$lang['years'] = 'virun %d Joer';
$lang['months'] = 'virun % Méint';
$lang['months'] = 'virun %d Méint';
$lang['weeks'] = 'virun %d Wochen';
$lang['days'] = 'virun %d Deeg';
$lang['hours'] = 'virun %d Stonnen';

View File

@ -43,7 +43,6 @@ $lang['btn_subscribe'] = 'Užsisakyti keitimų prenumeratą';
$lang['btn_unsubscribe'] = 'Atsisakyti keitimų prenumeratos';
$lang['btn_profile'] = 'Atnaujinti profilį';
$lang['btn_reset'] = 'Atstata';
$lang['btn_resendpwd'] = 'Išsiųsti naują slaptažodį';
$lang['btn_draft'] = 'Redaguoti juodraštį';
$lang['btn_recover'] = 'Atkurti juodraštį';
$lang['btn_draftdel'] = 'Šalinti juodraštį';
@ -77,7 +76,6 @@ $lang['profnoempty'] = 'Tuščias vardo arba el. pašto adreso laukas
$lang['profchanged'] = 'Vartotojo profilis sėkmingai atnaujintas.';
$lang['pwdforget'] = 'Pamiršote slaptažodį? Gaukite naują';
$lang['resendna'] = 'Ši vikisvetainė neleidžia persiųsti slaptažodžių.';
$lang['resendpwd'] = 'Atsiųsti naują slaptažodį';
$lang['resendpwdmissing'] = 'Jūs turite užpildyti visus laukus.';
$lang['resendpwdnouser'] = 'Tokio vartotojo nėra duomenų bazėje.';
$lang['resendpwdbadauth'] = 'Atsiprašome, bet šis tapatybės nustatymo kodas netinkamas. Įsitikinkite, kad panaudojote pilną patvirtinimo nuorodą.';
@ -190,14 +188,3 @@ $lang['i_wikiname'] = 'Wiki vardas';
$lang['i_enableacl'] = 'Įjungti ACL (rekomenduojama)';
$lang['i_superuser'] = 'Supervartotojas';
$lang['i_problems'] = 'Instaliavimo metu buvo klaidų, kurios pateiktos žemiau. Tęsti negalima, kol nebus pašalintos priežastys.';
$lang['mu_gridname'] = 'Failo vardas';
$lang['mu_gridsize'] = 'Dydis';
$lang['mu_gridstat'] = 'Statusas';
$lang['mu_namespace'] = 'Vardų sritis';
$lang['mu_browse'] = 'Browse';
$lang['mu_toobig'] = 'perdidelis';
$lang['mu_ready'] = 'paruošta įkrovimui';
$lang['mu_done'] = 'užbaigta';
$lang['mu_fail'] = 'nepavyko';
$lang['mu_authfail'] = 'sesija nutraukta';
$lang['mu_filetypes'] = 'Leidžiami failų tipai';

View File

@ -39,7 +39,6 @@ $lang['btn_backtomedia'] = 'Atpakaļ uz mēdiju failu izvēli';
$lang['btn_subscribe'] = 'Abonēt izmaiņu paziņojumus';
$lang['btn_profile'] = 'Labot savu profilu';
$lang['btn_reset'] = 'Atsaukt izmaiņas';
$lang['btn_resendpwd'] = 'Nosūtīt jaunu paroli';
$lang['btn_draft'] = 'Labot melnrakstu';
$lang['btn_recover'] = 'Atjaunot melnrakstu';
$lang['btn_draftdel'] = 'Dzēst melnrakstu';
@ -76,7 +75,6 @@ $lang['profnoempty'] = 'Bez vārda vai e-pasta adreses nevar.';
$lang['profchanged'] = 'Profils veiksmīgi izlabots.';
$lang['pwdforget'] = 'Aizmirsi paroli? Saņem jaunu';
$lang['resendna'] = 'Paroļu izsūtīšanu nepiedāvāju.';
$lang['resendpwd'] = 'Nosūtīt jaunu paroli lietotājam';
$lang['resendpwdmissing'] = 'Atvaino, jāizpilda visas ailes.';
$lang['resendpwdnouser'] = 'Atvaino, tāda lietotāja nav.';
$lang['resendpwdbadauth'] = 'Atvaino, šis autorizācijas kods nav derīgs. Pārliecinies, ka lietoji pilnu apstiprināšanas adresi.';
@ -123,7 +121,6 @@ Protams, ka vari saiti kopēt un iespraust citā programmā.';
$lang['js']['linkwiz'] = 'Saišu vednis';
$lang['js']['linkto'] = 'Saite uz: ';
$lang['js']['del_confirm'] = 'Dzēst šo šķirkli?';
$lang['js']['mu_btn'] = 'Augšuplādēt uzreiz vairākus failus.';
$lang['js']['restore_confirm'] = 'Tiešām atjaunot šo versiju';
$lang['js']['media_diff'] = 'Skatīt atšķirību';
$lang['js']['media_diff_both'] = 'Blakus';
@ -248,9 +245,9 @@ $lang['subscr_m_unsubscribe'] = 'Atteikties no abonēšanas';
$lang['subscr_m_subscribe'] = 'Abonēt';
$lang['subscr_m_receive'] = 'Saņemt';
$lang['subscr_style_every'] = 'vēstuli par katru izmaiņu';
$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu';
$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu';
$lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzo ziņo Wiki administratoram.';
$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienās)';
$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu (reizi %.2f dienās)';
$lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzu ziņo Wiki administratoram.';
$lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.';
$lang['i_chooselang'] = 'Izvēlies valodu';
$lang['i_installer'] = 'DokuWiki instalētājs';
@ -275,25 +272,10 @@ $lang['i_pol1'] = 'Publisks Wiki (lasa ikviens, raksta un augšup
$lang['i_pol2'] = 'Slēgts Wiki (raksta, lasa un augšupielādē tikai reģistrēti lietotāji)';
$lang['i_retry'] = 'Atkārtot';
$lang['i_license'] = 'Ar kādu licenci saturs tiks publicēts:';
$lang['mu_intro'] = 'Šeit var augšupielādēt uzreiz vairāku failus. Uzklikšķini Pārlūkot pogai, lai tos ieliktu rindā. Nospied Augšupielādēt, kad rinda sastādīta.';
$lang['mu_gridname'] = 'Faila vārds';
$lang['mu_gridsize'] = 'Izmērs';
$lang['mu_gridstat'] = 'Statuss';
$lang['mu_namespace'] = 'Nodaļa';
$lang['mu_browse'] = 'Pārlūkot';
$lang['mu_toobig'] = 'par lielu';
$lang['mu_ready'] = 'gatavs augšupielādei';
$lang['mu_done'] = 'pabeigts';
$lang['mu_fail'] = 'neizdevās';
$lang['mu_authfail'] = 'sesijas laiks iztecējis';
$lang['mu_progress'] = '@PCT@% augšupielādēts';
$lang['mu_filetypes'] = 'Atļautie failu tipi';
$lang['mu_info'] = 'faili ir augšupielādēti.';
$lang['mu_lasterr'] = 'Pēdējā ķļūda.';
$lang['recent_global'] = 'Tu skati izmaiņas nodaļā <b>%s</b>. Ir iespējams <a href="%s">skatīt jaunākos grozījums visā viki</a>. ';
$lang['years'] = 'pirms %d gadiem';
$lang['months'] = 'pirms %d mēnešiem';
$lang['weeks'] = 'pirms % nedēļām';
$lang['weeks'] = 'pirms %d nedēļām';
$lang['days'] = 'pirms %d dienām';
$lang['hours'] = 'pirms %d stundām';
$lang['minutes'] = 'pirms %d minūtēm';
@ -310,16 +292,16 @@ $lang['media_list_rows'] = 'Rindas';
$lang['media_sort_name'] = 'Nosaukums';
$lang['media_sort_date'] = 'Datums';
$lang['media_namespaces'] = 'Norādīt nodaļu';
$lang['media_files'] = 'Faili nodaļā s%';
$lang['media_upload'] = 'Augšuplādēt nodaļā s%';
$lang['media_search'] = 'Meklēt nodaļā s%';
$lang['media_view'] = 's%';
$lang['media_viewold'] = 's% nodaļā s%';
$lang['media_files'] = 'Faili nodaļā %s';
$lang['media_upload'] = 'Augšuplādēt nodaļā %s';
$lang['media_search'] = 'Meklēt nodaļā %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s nodaļā %s';
$lang['media_edit'] = 'Labot %s';
$lang['media_history'] = 's% vēsture';
$lang['media_history'] = '%s vēsture';
$lang['media_meta_edited'] = 'metadati laboti';
$lang['media_perm_read'] = 'Atvainojiet, jums nav tiesību skatīt failus. ';
$lang['media_perm_upload'] = 'Atvainojiet, jums nav tiesību augšupielādēt. ';
$lang['media_update'] = 'Augšupielādēt jaunu versiju';
$lang['media_restore'] = 'Atjaunot šo versiju';
$lang['plugin_install_err'] = 'Modulis aplami instalēts. Pārdēvē moduļa direktoriju s% par s%.';
$lang['plugin_install_err'] = 'Modulis aplami instalēts. Pārdēvē moduļa direktoriju %s par %s.';

View File

@ -42,7 +42,6 @@ $lang['btn_backtomedia'] = 'Назад до изборот за медиа
$lang['btn_subscribe'] = 'Менаџирај претплати';
$lang['btn_profile'] = 'Ажурирај профил';
$lang['btn_reset'] = 'Ресет';
$lang['btn_resendpwd'] = 'Испрати нов пасворд';
$lang['btn_draft'] = 'Уреди скица';
$lang['btn_recover'] = 'Поврати скица';
$lang['btn_draftdel'] = 'Избриши скица';
@ -77,7 +76,6 @@ $lang['profnoempty'] = 'Празно име или адреса за
$lang['profchanged'] = 'Корисничкиот профил е успешно ажуриран.';
$lang['pwdforget'] = 'Ја заборавивте лозинката? Добијте нова';
$lang['resendna'] = 'Ова вики не поддржува повторно испраќање на лозинка.';
$lang['resendpwd'] = 'Испрати нова лозинка за';
$lang['resendpwdmissing'] = 'Жалам, морате да ги пополните сите полиња.';
$lang['resendpwdnouser'] = 'Жалам, таков корисник не постои во нашата база со податоци.';
$lang['resendpwdbadauth'] = 'Жалам, овај код за валидација не е валиден. Проверете повторно дали ја искористивте целосната врска за потврда.';
@ -223,20 +221,6 @@ $lang['i_pol0'] = 'Отвори вики (читај, запиш
$lang['i_pol1'] = 'Јавно вики (читај за сите, запиши и качи за регистрирани корисници)';
$lang['i_pol2'] = 'Затворено вики (читај, запиши, качи само за регистрирани корисници)';
$lang['i_retry'] = 'Пробај повторно';
$lang['mu_intro'] = 'Овде можете да прикачите повеќе датотеки од еднаш. Кликнете на копчето за пребарување за да ги додадете во редица. Притиснете на качи кога е готово.';
$lang['mu_gridname'] = 'Име на датотека';
$lang['mu_gridsize'] = 'Големина';
$lang['mu_gridstat'] = 'Состојба';
$lang['mu_browse'] = 'Пребарај';
$lang['mu_toobig'] = 'премногу голема';
$lang['mu_ready'] = 'спремна за качување';
$lang['mu_done'] = 'комплетно';
$lang['mu_fail'] = 'неуспешно';
$lang['mu_authfail'] = 'сесијата истече';
$lang['mu_progress'] = '@PCT@% качено';
$lang['mu_filetypes'] = 'Дозволено типови на датотеки';
$lang['mu_info'] = 'качени датотеки.';
$lang['mu_lasterr'] = 'Последна грешка: ';
$lang['years'] = 'пред %d години';
$lang['months'] = 'пред %d месеци';
$lang['weeks'] = 'пред %d недели';

View File

@ -44,14 +44,16 @@ $lang['btn_back'] = 'मागॆ';
$lang['btn_backlink'] = 'येथे काय जोडले आहे';
$lang['btn_backtomedia'] = 'परत माध्यम फाइल निवडीकड़े';
$lang['btn_subscribe'] = 'पृष्ठाच्या बदलांची पुरवणी (फीड) लावा ';
$lang['btn_unsubscribe'] = 'पृष्ठाच्या बदलांची पुरवणी (फीड) बंद करा';
$lang['btn_profile'] = 'प्रोफाइल अद्ययावत करा';
$lang['btn_reset'] = 'रिसेट';
$lang['btn_resendpwd'] = 'कृपया परवलीचा नवीन शब्द माझ्या इमेल पत्त्यावर पाठविणे.';
$lang['btn_resendpwd'] = 'नवीन पासवर्ड';
$lang['btn_draft'] = 'प्रत संपादन';
$lang['btn_recover'] = 'प्रत परत मिळवा';
$lang['btn_draftdel'] = 'प्रत रद्द';
$lang['btn_revert'] = 'पुनर्स्थापन';
$lang['btn_register'] = 'नोंदणी';
$lang['btn_apply'] = 'लागू';
$lang['btn_media'] = 'मिडिया व्यवस्थापक';
$lang['loggedinas'] = 'लॉगिन नाव';
$lang['user'] = 'वापरकर्ता';
$lang['pass'] = 'परवलीचा शब्द';
@ -82,20 +84,58 @@ $lang['profchanged'] = 'सदस्याची प्रोफाइ
$lang['pwdforget'] = 'परवलीचा शब्द विसरला आहे का? नविन मागवा.';
$lang['resendna'] = 'ह्या विकी मधे परवलीचा शब्द परत पाथाव्न्याची सुविधा नाही.';
$lang['resendpwd'] = 'नविन परवली इच्छुक';
$lang['resendpwdmissing'] = 'कृपया सर्व रकाने भरा.';
$lang['resendpwdmissing'] = 'माफ करा, पण सर्व जागा भरल्या पाहिजेत.';
$lang['resendpwdnouser'] = 'माफ़ करा, हा सदस्य आमच्या माहितिसंग्रहात सापडला नाही.';
$lang['resendpwdbadauth'] = 'माफ़ करा, हा अधिकार कोड बरोबर नाही. कृपया आपण पूर्ण शिकामोर्तबाची लिंक वापरल्याची खात्री करा.';
$lang['resendpwdconfirm'] = 'शिक्कामोर्तबाची लिंक ईमेल द्वारा पाठवली आहे.';
$lang['resendpwdsuccess'] = 'शिक्कामोर्तबाची लिंक ईमेल द्वारा पाठवली आहे.';
$lang['license'] = 'विशिष्ठ नोंद केलि नसल्यास ह्या विकी वरील सर्व मजकूर खालील लायसन्स मधे मोडतो : ';
$lang['licenseok'] = 'नोंद : हे पृष्ठ संपादित केल्यास तुम्ही तुमचे योगदान खालील लायसन्स अंतर्गत येइल : ';
$lang['searchmedia'] = 'फाईल शोधा:';
$lang['searchmedia_in'] = '%s मधे शोधा';
$lang['txt_upload'] = 'अपलोड करण्याची फाइल निवडा';
$lang['txt_filename'] = 'अपलोड उर्फ़ ( वैकल्पिक )';
$lang['txt_overwrt'] = 'अस्तित्वात असलेल्या फाइलवरच सुरक्षित करा.';
$lang['lockedby'] = 'सध्या लॉक करणारा :';
$lang['lockexpire'] = 'सध्या लॉक करणारा :';
$lang['js']['willexpire'] = 'हे पृष्ठ संपादित करण्यासाठी मिळालेले लॉक एखाद्या मिनिटात संपणार आहे.\n चुका होऊ नयेत म्हणुन कृपया प्रीव्यू बटन दाबुन लॉक ची वेळ पुन्हा चालू करा.';
$lang['js']['notsavedyet'] = "सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?";
$lang['js']['willexpire'] = 'हे पृष्ठ संपादित करण्यासाठी मिळालेले लॉक एखाद्या मिनिटात संपणार आहे.\n चुका होऊ नयेत म्हणुन कृपया प्रीव्यू बटन दाबुन लॉक ची वेळ पुन्हा चालू करा.';
$lang['js']['notsavedyet'] = 'सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?';
$lang['js']['searchmedia'] = 'फाईल्ससाठी शोधा';
$lang['js']['keepopen'] = 'निवड केल्यावर विण्डो उघडी ठेवा';
$lang['js']['hidedetails'] = 'सविस्तर मजकूर लपवा';
$lang['js']['mediatitle'] = 'लिंक सेटिंग';
$lang['js']['mediadisplay'] = 'लिंकचा प्रकार';
$lang['js']['mediaalign'] = 'जुळवणी';
$lang['js']['mediasize'] = 'प्रतिमेचा आकार';
$lang['js']['mediatarget'] = 'लिंकचे लक्ष्य';
$lang['js']['mediaclose'] = 'बंद';
$lang['js']['mediadisplayimg'] = 'प्रतिमा दाखवा.';
$lang['js']['mediadisplaylnk'] = 'फक्त लिंक दाखवा.';
$lang['js']['mediasmall'] = 'लहान आवृत्ती';
$lang['js']['mediamedium'] = 'माध्यम आवृत्ती';
$lang['js']['medialarge'] = 'मोठी आवृत्ती';
$lang['js']['mediaoriginal'] = 'मूळ आवृत्ती';
$lang['js']['medialnk'] = 'सविस्तर माहितीकडेची लिंक';
$lang['js']['mediadirect'] = 'मूळ मजकुराकडे थेट लिंक';
$lang['js']['medianolnk'] = 'लिंक नको';
$lang['js']['medianolink'] = 'प्रतिमा लिंक करू नका';
$lang['js']['medialeft'] = 'प्रतिमा डाव्या बाजूला जुळवून घ्या.';
$lang['js']['mediaright'] = 'प्रतिमा उजव्या बाजूला जुळवून घ्या.';
$lang['js']['mediacenter'] = 'प्रतिमा मध्यभागी जुळवून घ्या.';
$lang['js']['medianoalign'] = 'जुळवाजुळव वापरू नका.';
$lang['js']['nosmblinks'] = 'विन्डोज़ शेअर ला लिंक केल्यास ते फक्त मायक्रोसॉफ़्ट इन्टरनेट एक्स्प्लोरर वरच चालते. तरी तुम्ही लिंक कॉपी करू शकता.';
$lang['js']['linkwiz'] = 'लिंक जादूगार';
$lang['js']['linkto'] = 'याला लिंक करा:';
$lang['js']['del_confirm'] = 'निवडलेल्या गोष्टी नक्की नष्ट करू का ?';
$lang['js']['restore_confirm'] = 'हि आवृत्ती खरोखर पुनर्स्थापित करू का?';
$lang['js']['media_diff'] = 'फरक बघू:';
$lang['js']['media_diff_both'] = 'बाजूबाजूला';
$lang['js']['media_diff_portions'] = 'स्वाईप';
$lang['js']['media_select'] = 'फाईल निवड...';
$lang['js']['media_upload_btn'] = 'अपलोड';
$lang['js']['media_done_btn'] = 'झालं';
$lang['js']['media_drop'] = 'अपलोड करण्यासाठी इथे फाईल टाका';
$lang['js']['media_cancel'] = 'काढा';
$lang['rssfailed'] = 'ही पुरवणी आणण्यात काही चूक झाली:';
$lang['nothingfound'] = 'काही सापडला नाही.';
$lang['mediaselect'] = 'दृकश्राव्य फाइल';
@ -113,9 +153,7 @@ $lang['deletefail'] = '%s ही फाइल नष्ट करू
$lang['mediainuse'] = '%s ही फाइल नष्ट केली नाही - ती अजुन वापरात आहे.';
$lang['namespaces'] = 'नेमस्पेस';
$lang['mediafiles'] = 'मध्ये उपलब्ध असलेल्या फाइल';
$lang['js']['keepopen'] = 'निवड केल्यावर विण्डो उघडी ठेवा';
$lang['js']['hidedetails'] = 'सविस्तर मजकूर लपवा';
$lang['js']['nosmblinks'] = 'विन्डोज़ शेअर ला लिंक केल्यास ते फक्त मायक्रोसॉफ़्ट इन्टरनेट एक्स्प्लोरर वरच चालते. तरी तुम्ही लिंक कॉपी करू शकता.';
$lang['accessdenied'] = 'तुम्हाला हे पान बघायची परवानगी नाही.';
$lang['mediausage'] = 'ह्या फाइलचा संदर्भ देण्यासाठी खालील सिन्टॅक्स वापरा :';
$lang['mediaview'] = 'मूळ फाइल बघू ';
$lang['mediaroot'] = 'रूट';
@ -131,6 +169,10 @@ $lang['current'] = 'चालू';
$lang['yours'] = 'तुमची आवृत्ति';
$lang['diff'] = 'सध्याच्या आवृत्तिंशी फरक दाखवा';
$lang['diff2'] = 'निवडलेल्या आवृत्तिंमधील फरक दाखवा';
$lang['difflink'] = 'ह्या तुलना दृष्टीकोनाला लिंक करा';
$lang['diff_type'] = 'फरक बघू:';
$lang['diff_inline'] = 'एका ओळीत';
$lang['diff_side'] = 'बाजूबाजूला';
$lang['line'] = 'ओळ';
$lang['breadcrumb'] = 'मागमूस';
$lang['youarehere'] = 'तुम्ही इथे आहात';
@ -142,10 +184,21 @@ $lang['restored'] = 'जुनी आवृत्ति पुन
$lang['external_edit'] = 'बाहेरून संपादित';
$lang['summary'] = 'सारांश बदला';
$lang['noflash'] = 'ही माहिती दाखवण्यासाठी <a href="http://www.adobe.com/products/flashplayer/">अडोब फ्लॅश प्लेअर</a> ची गरज आहे.';
$lang['download'] = 'तुकडा डाउनलोड करा';
$lang['tools'] = 'साधने';
$lang['user_tools'] = 'युजरची साधने';
$lang['site_tools'] = 'साईटची साधने';
$lang['page_tools'] = 'पानाची साधने';
$lang['skip_to_content'] = 'सरळ मजकुराकडे ';
$lang['mail_newpage'] = 'पृष्ठ जोडले : ';
$lang['mail_changed'] = 'पृष्ठ बदलले : ';
$lang['mail_subscribe_list'] = 'ह्या नेमस्पेस नाढे बदललेली पाने:';
$lang['mail_new_user'] = 'नवीन सदस्य : ';
$lang['mail_upload'] = 'फाइल अपलोड केली : ';
$lang['changes_type'] = 'ह्याचे बदल बघू';
$lang['pages_changes'] = 'पाने';
$lang['media_changes'] = 'मिडिया फाईल';
$lang['both_changes'] = 'पाने आणि मिडिया फाईल दोन्ही';
$lang['qb_bold'] = 'ठळक मजकूर';
$lang['qb_italic'] = 'तिरका मजकूर';
$lang['qb_underl'] = 'अधोरेखित मजकूर';
@ -156,6 +209,11 @@ $lang['qb_h2'] = 'दुसर्या पातळीचे
$lang['qb_h3'] = 'तिसर्या पातळीचे शीर्षक';
$lang['qb_h4'] = 'चवथ्या पातळीचे शीर्षक';
$lang['qb_h5'] = 'पाचव्या पातळीचे शीर्षक';
$lang['qb_h'] = 'शीर्षक';
$lang['qb_hs'] = 'शीर्षक निवड';
$lang['qb_hplus'] = 'उंच शीर्षक';
$lang['qb_hminus'] = 'खालचं शीर्षक';
$lang['qb_hequal'] = 'समान लेवलचे शीर्षक';
$lang['qb_link'] = 'अंतर्गत लिंक';
$lang['qb_extlink'] = 'बाह्य लिंक';
$lang['qb_hr'] = 'आडवी पट्टी';
@ -165,7 +223,7 @@ $lang['qb_media'] = 'प्रतिमा आणि इतर फ
$lang['qb_sig'] = 'स्वाक्षरी टाका';
$lang['qb_smileys'] = 'स्माइली';
$lang['qb_chars'] = 'ख़ास चिन्ह';
$lang['js']['del_confirm'] = 'निवडलेल्या गोष्टी नक्की नष्ट करू का ?';
$lang['upperns'] = 'ह्यावरच्या नेमस्पेसकडे उडी मारा';
$lang['admin_register'] = 'नवीन सदस्य';
$lang['metaedit'] = 'मेटाडेटा बदला';
$lang['metasaveerr'] = 'मेटाडेटा सुरक्षित झाला नाही';
@ -181,11 +239,9 @@ $lang['img_copyr'] = 'कॉपीराइट';
$lang['img_format'] = 'प्रकार';
$lang['img_camera'] = 'कॅमेरा';
$lang['img_keywords'] = 'मुख्य शब्द';
$lang['subscribe_success'] = '%s ला %s च्या पुरवणिसाठि नोंदवले';
$lang['subscribe_error'] = '%s ला %s च्या पुरवणिसाठि नोंदवताना चूक झाली';
$lang['subscribe_noaddress'] = 'तुमच्या लॉगिनशी सम्बंधित कुठलाही पत्ता नाही , त्यामुळे पुरवणिसाठि नोंद केली जाऊ शकत नाही';
$lang['unsubscribe_success'] = '%s ला %s च्या पुरवणी यादी मधून काढून टाकले';
$lang['unsubscribe_error'] = '%s ला %s च्या पुरवणी यादी मधून काढून टाकण्यात चूक झाली';
$lang['img_width'] = 'रुंदी';
$lang['img_height'] = 'उंची';
$lang['img_manager'] = 'मिडिया व्यवस्थापकात बघू';
$lang['authmodfailed'] = 'सदस्य अधिकृत करण्याची व्यवस्था चुकीची आहे. कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['authtempfail'] = 'सदस्य अधिकृत करण्याची सुविधा सध्या चालू नाही. सतत हा मजकूर दिसल्यास कृपया तुमच्या विकीच्या व्यवस्थापकाशी सम्पर्क साधा.';
$lang['i_chooselang'] = 'तुमची भाषा निवडा';
@ -209,17 +265,4 @@ $lang['i_pol0'] = 'मुक्त विकी ( सर्वा
$lang['i_pol1'] = 'सार्वजनिक विकी ( सर्वांना वाचण्याची मुभा , लेखन व अपलोडची परवानगी फक्त नोंदणीकृत सदस्यांना )';
$lang['i_pol2'] = 'बंदिस्त विकी ( वाचन , लेखन व अपलोडची परवानगी फक्त नोंदणीकृत सदस्यांना ) ';
$lang['i_retry'] = 'पुन्हा प्रयत्न';
$lang['mu_intro'] = 'इथे तुम्ही एकापेक्षा अधिक फाइल अपलोड करू शकता. ब्राउझ च्या बटणावर क्लिक करून त्याना लिस्ट मधे टाका. सगळ्या टाकुन झाल्यावर अपलोड च्या बटणावर क्लिक करा.';
$lang['mu_gridname'] = 'फाइल नाम';
$lang['mu_gridsize'] = 'साइज';
$lang['mu_gridstat'] = 'स्थिति';
$lang['mu_namespace'] = 'नेमस्पेस';
$lang['mu_browse'] = 'ब्राउझ';
$lang['mu_toobig'] = 'अति मोठे';
$lang['mu_ready'] = 'अपलोडसाठी तयार';
$lang['mu_done'] = 'पूर्ण';
$lang['mu_fail'] = 'अयशस्वी';
$lang['mu_authfail'] = 'सेशन संपला';
$lang['mu_progress'] = '@PCT@% अपलोड झाले';
$lang['mu_filetypes'] = 'मान्य फाइल टाइप';
$lang['recent_global'] = 'तुम्ही सध्या <b>%s</b> या नेमस्पेस मधील बदल पाहात आहात.तुम्ही <a href="%s">पूर्ण विकी मधले बदल </a> सुद्धा पाहू शकता.';

97
inc/lang/ms/lang.php Normal file
View File

@ -0,0 +1,97 @@
<?php
/**
* ms language file
*
* This file was initially built by fetching translations from other
* Wiki projects. See the @url lines below. Additional translations
* and fixes where done for DokuWiki by the people mentioned in the
* lines starting with @author
*
* @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesMs.php?view=co
* @author Markos
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Sunting halaman ini';
$lang['btn_source'] = 'Lihat sumber';
$lang['btn_show'] = 'Baca';
$lang['btn_create'] = 'Cipta halaman';
$lang['btn_search'] = 'Cari';
$lang['btn_save'] = 'Simpan';
$lang['btn_preview'] = 'Pratonton';
$lang['btn_top'] = 'Balik ke mula';
$lang['btn_newer'] = '<< lebih kini';
$lang['btn_older'] = 'lebih awal >>';
$lang['btn_revs'] = 'Sejarah';
$lang['btn_recent'] = 'Perubahan Terkini';
$lang['btn_upload'] = 'Unggah (upload)';
$lang['btn_cancel'] = 'Batal';
$lang['btn_secedit'] = 'Sunting';
$lang['btn_login'] = 'Masuk';
$lang['btn_logout'] = 'Keluar';
$lang['btn_admin'] = 'Admin';
$lang['btn_update'] = 'Kemaskini';
$lang['btn_delete'] = 'Hapus';
$lang['btn_back'] = 'Balik';
$lang['btn_backlink'] = 'Pautan ke halaman ini';
$lang['btn_backtomedia'] = 'Balik ke rangkaian pilihan fail media';
$lang['btn_subscribe'] = 'Pantau';
$lang['btn_profile'] = 'Kemaskinikan profil';
$lang['btn_reset'] = 'Batalkan suntingan';
$lang['btn_resendpwd'] = 'Emel kata laluan baru';
$lang['btn_draft'] = 'Sunting draf';
$lang['btn_recover'] = 'Pulihkan draf';
$lang['btn_draftdel'] = 'Hapuskan draf';
$lang['btn_revert'] = 'Pulihkan';
$lang['btn_register'] = 'Daftaran';
$lang['btn_apply'] = 'Simpan';
$lang['btn_media'] = 'Manager media';
$lang['loggedinas'] = 'Log masuk sebagai';
$lang['user'] = 'Nama pengguna';
$lang['pass'] = 'Kata laluan';
$lang['newpass'] = 'Kata laluan baru';
$lang['oldpass'] = 'Kata laluan lama';
$lang['passchk'] = 'sekali lagi';
$lang['remember'] = 'Sentiasa ingati kata laluan saya.';
$lang['fullname'] = 'Nama sebenar';
$lang['email'] = 'E-mel';
$lang['profile'] = 'Profil pengguna';
$lang['badlogin'] = 'Maaf, ralat log masuk. Nama pengguna atau kata laluan salah.';
$lang['minoredit'] = 'Suntingan Kecil';
$lang['draftdate'] = 'Draf automatik disimpan pada';
$lang['nosecedit'] = 'Halaman ini telah bertukar pada waktu sementara dan info bahagian ini telah luput. Seluruh halaman telah disarat.';
$lang['regmissing'] = 'Maaf, semua medan mesti diisi';
$lang['reguexists'] = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.';
$lang['regsuccess'] = 'Akaun pengguna telah dicipta dan kata laluan telah dikirim kepada e-mel anda.';
$lang['regsuccess2'] = 'Akaun pegguna telah dicipta.';
$lang['regbadmail'] = 'Format alamat e-mel tidak sah. Sila masukkan semula ataupun kosongkan sahaja medan tersebut.';
$lang['regbadpass'] = 'Kedua-dua kata laluan tidak sama. Sila masukkan semula.';
$lang['regpwmail'] = 'Kata laluan Dokuwiki anda';
$lang['reghere'] = 'Belum mendaftar akaun? Dapat akaun baru';
$lang['profna'] = 'Wiki ini tidak menyokong modifikasi profil';
$lang['profnoempty'] = 'Medan nama pengguna atau e-mel yang kosong tidak dibenarkan.';
$lang['profchanged'] = 'Profil pengguna telah dikemaskini.';
$lang['pwdforget'] = 'Terlupa kata laluan? Dapatkan yang baru';
$lang['resendpwd'] = 'Kirimkan kata laluan baru untuk';
$lang['resendpwdmissing'] = 'Maaf, semua medan perlu diisi.';
$lang['resendpwdnouser'] = 'Maaf, nama pengguna ini tidak dapat dicari dalam database kami.';
$lang['resendpwdbadauth'] = 'Maaf, kod authorasi ini tidak sah. Semak bahawa anda telah menggunakan seluruh pautan pengesahan yang dikirim.';
$lang['resendpwdconfirm'] = 'Pautan pengesahan telah dikirimkan ke e-mel anda.';
$lang['resendpwdsuccess'] = 'Kata laluan baru telah dikirimkan ke e-mel anda.';
$lang['license'] = 'Selain daripada yang dinyata, isi wiki ini disediakan dengan lesen berikut:';
$lang['licenseok'] = 'Perhatian: Dengan menyunting halaman ini, anda setuju untuk isi-isi anda dilesen menggunakan lesen berikut:';
$lang['searchmedia'] = 'Cari nama fail:';
$lang['searchmedia_in'] = 'Cari di %s';
$lang['txt_upload'] = 'Pilih fail untuk diunggah';
$lang['txt_filename'] = 'Unggah fail dengan nama (tidak wajib)';
$lang['txt_overwrt'] = 'Timpa fail sekarang';
$lang['lockedby'] = 'Halaman ini telah di';
$lang['fileupload'] = 'Muat naik fail';
$lang['uploadsucc'] = 'Pemuatan naik berjaya';
$lang['uploadfail'] = 'Ralat muat naik';
$lang['uploadxss'] = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.';
$lang['toc'] = 'Jadual Kandungan';
$lang['current'] = 'kini';
$lang['restored'] = 'Telah dikembalikan ke semakan sebelumnya';
$lang['summary'] = 'Paparan';

View File

@ -40,7 +40,6 @@ $lang['btn_subscribe'] = 'पृष्ठ परिवर्तन ग
$lang['btn_unsubscribe'] = 'पृष्ठ परिवर्तन अग्राह्य गर्नुहोस्';
$lang['btn_profile'] = 'प्रोफाइल अध्यावधिक गर्नुहोस् ';
$lang['btn_reset'] = 'पूर्वरुपमा फर्काउनुहोस';
$lang['btn_resendpwd'] = 'नयाँ प्रवेश शव्द(पासवर्ड) पठाउनुहोस् ';
$lang['btn_draft'] = ' ड्राफ्ट सम्पादन गर्नुहोस् ';
$lang['btn_recover'] = 'पहिलेको ड्राफ्ट हासिल गर्नुहोस ';
$lang['btn_draftdel'] = ' ड्राफ्ट मेटाउनुहोस् ';
@ -75,7 +74,6 @@ $lang['profchanged'] = 'प्रयोगकर्ताको प्
$lang['pwdforget'] = 'आफ्नो पासवर्ड भुल्नु भयो ? नयाँ हासिल गर्नुहोस् ';
$lang['resendna'] = 'यो विकिबाट प्रवेशशव्द पठाउन समर्थित छैन ।';
$lang['resendpwd'] = 'नयाँ प्रवेशशव्द पठाउनुहोस् ';
$lang['resendpwdmissing'] = 'माफ गर्नुहोस् , तपाईले सबै ठाउ भर्नुपर्छ। ';
$lang['resendpwdnouser'] = 'माफ गर्नुहोस्, हाम्रो डेटावेसमा यो प्रयोगकर्ता भेटिएन ।';
$lang['resendpwdbadauth'] = 'माफ गर्नुहोस् , यो अनुमति चिन्ह गलत छ। तपाईले पूरै जानकारी लिङ्क प्रयोग गर्नु पर्नेछ। ';
$lang['resendpwdconfirm'] = 'तपाईको इमेलमा कन्फरमेशन लिङ्क पठाइएको छ। ';
@ -200,17 +198,4 @@ $lang['i_pol0'] = 'खुल्ला विकि (पठन,
$lang['i_pol1'] = 'Public विकि (पठन सवैका लागि,लेखन र अपलोड दर्ता गरिएका प्रयपगकर्ताका लागि ) ';
$lang['i_pol2'] = 'बन्द विकि (पठन , लेखन, अपलोड ) दर्ता भएका प्रयोगकर्ताका लागि मात्र ।';
$lang['i_retry'] = 'पुन: प्रयास गर्नुहोस् ';
$lang['mu_intro'] = 'तपाईले धेरै वटा फाइलहरु एकै पटक अपलोड गर्न सक्नुहुन्छ । browse थिच्नुहोस् अनि सुचीमा थप्नुहोस् । सकिएपछि अपलोड थिछ्चुहोस् ।';
$lang['mu_gridname'] = 'फाइलनाम ';
$lang['mu_gridsize'] = 'आकार';
$lang['mu_gridstat'] = 'स्थिति';
$lang['mu_namespace'] = 'नेमस्पेस';
$lang['mu_browse'] = 'Browse';
$lang['mu_toobig'] = 'धेरै ठूलो';
$lang['mu_ready'] = 'अपलोडको लागि तयार';
$lang['mu_done'] = 'पूरा';
$lang['mu_fail'] = 'असफल';
$lang['mu_authfail'] = 'सत्र सकियो ';
$lang['mu_progress'] = '@PCT@% अपलोड भयो ';
$lang['mu_filetypes'] = 'समर्थित फाइल प्रकार';
$lang['recent_global'] = 'तपाई अहिले <b>%s</b> नेमस्पेस भित्र भएका परिवर्तन हेर्दैहुनुहुन्छ। तपाई <a href="%s">पुरै विकिमा भएको परिवर्तन हेर्न सक्नुहुन्छ</a>.';

View File

@ -15,6 +15,7 @@
* @author Marijn Hofstra <hofstra.m@gmail.com>
* @author Timon Van Overveldt <timonvo@gmail.com>
* @author Jeroen
* @author Ricardo Guijt <ricardoguijt@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -50,7 +51,6 @@ $lang['btn_backtomedia'] = 'Terug naar Bestandsselectie';
$lang['btn_subscribe'] = 'Inschrijven wijzigingen';
$lang['btn_profile'] = 'Profiel aanpassen';
$lang['btn_reset'] = 'Wissen';
$lang['btn_resendpwd'] = 'Stuur een nieuw wachtwoord';
$lang['btn_draft'] = 'Bewerk concept';
$lang['btn_recover'] = 'Herstel concept';
$lang['btn_draftdel'] = 'Verwijder concept';
@ -87,7 +87,6 @@ $lang['profnoempty'] = 'Een lege gebruikersnaam of e-mailadres is niet
$lang['profchanged'] = 'Gebruikersprofiel succesvol aangepast';
$lang['pwdforget'] = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan';
$lang['resendna'] = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet';
$lang['resendpwd'] = 'Stuur een nieuw wachtwoord voor';
$lang['resendpwdmissing'] = 'Sorry, je moet alle velden invullen.';
$lang['resendpwdnouser'] = 'Sorry, we kunnen deze gebruikersnaam niet vinden in onze database.';
$lang['resendpwdbadauth'] = 'Sorry, deze authentiecatiecode is niet geldig. Controleer of je de volledige bevestigings-link hebt gebruikt.';
@ -138,8 +137,11 @@ $lang['js']['restore_confirm'] = 'Werkelijk deze versie terugzetten?';
$lang['js']['media_diff'] = 'Verschillen bekijken:';
$lang['js']['media_diff_both'] = 'Naast elkaar';
$lang['js']['media_diff_opacity'] = 'Doorschijnend';
$lang['js']['media_diff_portions'] = 'Swipe';
$lang['js']['media_select'] = 'Selecteer bestanden';
$lang['js']['media_upload_btn'] = 'Uploaden';
$lang['js']['media_done_btn'] = 'Klaar';
$lang['js']['media_drop'] = 'Sleep bestanden hierheen om ze te uploaden';
$lang['js']['media_cancel'] = 'Verwijderen';
$lang['js']['media_overwrt'] = 'Bestaande bestanden overschrijven';
$lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: ';
@ -196,6 +198,7 @@ $lang['mail_changed'] = 'pagina aangepast:';
$lang['mail_subscribe_list'] = 'Pagina\'s veranderd in namespace:';
$lang['mail_new_user'] = 'nieuwe gebruiker:';
$lang['mail_upload'] = 'bestand geüpload:';
$lang['changes_type'] = 'Bekijk wijzigingen van';
$lang['pages_changes'] = 'Pagina\'s';
$lang['media_changes'] = 'Media bestanden';
$lang['both_changes'] = 'Zowel pagina\'s als media bestanden';
@ -282,21 +285,6 @@ $lang['i_pol1'] = 'Publieke wiki (lezen voor iedereen, schrijven
$lang['i_pol2'] = 'Besloten wiki (lezen, schrijven en uploaden alleen voor geregistreerde gebruikers)';
$lang['i_retry'] = 'Opnieuw';
$lang['i_license'] = 'Kies a.u.b. een licentie die u voor uw inhoud wilt gebruiken:';
$lang['mu_intro'] = 'Hiier kun je meerdere bestanden tegelijk uploaden. Klik de blader-knop om ze aan de lijst toe te voegen. Klik Upload als je klaar bent.';
$lang['mu_gridname'] = 'Bestandsnaam';
$lang['mu_gridsize'] = 'Grootte';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Namespace';
$lang['mu_browse'] = 'Blader';
$lang['mu_toobig'] = 'te groot';
$lang['mu_ready'] = 'Klaar om te uploaden';
$lang['mu_done'] = 'klaar';
$lang['mu_fail'] = 'mislukt';
$lang['mu_authfail'] = 'sessie beëindigd';
$lang['mu_progress'] = '@PCT@% geüpload';
$lang['mu_filetypes'] = 'Toegestane bestandstypes';
$lang['mu_info'] = 'bestanden geüpload.';
$lang['mu_lasterr'] = 'Laatste foutmelding:';
$lang['recent_global'] = 'Je bekijkt momenteel de wijzigingen binnen de <b>%s</b> namespace. Je kunt ook de <a href="%s">recente wijzigingen van de hele wiki</a> bekijken.';
$lang['years'] = '%d jaar geleden';
$lang['months'] = '%d maand geleden';
@ -306,22 +294,27 @@ $lang['hours'] = '%d uren geleden';
$lang['minutes'] = '%d minuten geleden';
$lang['seconds'] = '%d seconden geleden';
$lang['wordblock'] = 'Uw wijziging is niet opgeslagen omdat deze niet-toegestane tekst bevat (spam).';
$lang['media_uploadtab'] = 'Uploaden';
$lang['media_searchtab'] = 'Zoeken';
$lang['media_file'] = 'Bestand';
$lang['media_viewtab'] = 'Beeld';
$lang['media_edittab'] = 'Bewerken';
$lang['media_historytab'] = 'Geschiedenis';
$lang['media_list_thumbs'] = 'Miniatuurweergaven';
$lang['media_list_rows'] = 'Regels';
$lang['media_sort_name'] = 'Naam';
$lang['media_sort_date'] = 'Datum';
$lang['media_namespaces'] = 'Kies naamruimte';
$lang['media_files'] = 'Bestanden in %s';
$lang['media_upload'] = 'Upload naar %s';
$lang['media_search'] = 'Zoeken in %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s bij %s';
$lang['media_edit'] = '%s bewerken';
$lang['media_history'] = 'Geschiedenis van %s';
$lang['media_meta_edited'] = 'Metagegevens bewerkt';
$lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om bestanden te lezen.';
$lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.';
$lang['media_update'] = 'Upload nieuwe versie';
$lang['media_restore'] = 'Deze versie terugzetten';
$lang['plugin_install_err'] = 'Plugin is juist geinstalleerd. Hernoem plugin map \'%s\' naar \'%s\'.';

View File

@ -1,3 +1,3 @@
====== Administrasjon ======
Nedenfor finner du en liste over administrative oppgaver tilgjengelig i DokuWiki.
Nedenfor finner du en liste over administrative oppgaver i DokuWiki.

View File

@ -1 +1 @@
====== Ekstra tillegg ======
====== Ekstra programtillegg ======

View File

@ -1,6 +1,6 @@
====== Det finnes en nyere versjon ======
Det fins en nyere versjon av dokumentet du har redigert. Dette kan skje når en annen bruker redigerer dokumentet samtidig med deg.
Det fins en nyere utgave av dokumentet du har redigert. Dette kan skje når en annen bruker redigerer dokumentet samtidig med deg.
Legg nøye merke til forskjellene som vises under, og velg deretter hvilken versjon du vil beholde. Om du velger ''**Lagre**'', så kommer din versjon til å lagres. Velg ''**Avbryt**'' for å beholde den nyeste versjonen (ikke din).

View File

@ -1,3 +1,3 @@
====== Adgang forbudt ======
Adgang forbudt. Kanskje du har glemt å logge deg inn?
Beklager, men du har ikke rettigheter til dette. Kanskje du har glemt å logge inn?

View File

@ -17,6 +17,7 @@
* @author Erik Pedersen <erik.pedersen@shaw.ca>
* @author Rune Rasmussen syntaxerror.no@gmail.com
* @author Jon Bøe <jonmagneboe@hotmail.com>
* @author Egil Hansen <egil@rosetta.no>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -26,7 +27,7 @@ $lang['singlequoteopening'] = '';
$lang['singlequoteclosing'] = '';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Rediger denne siden';
$lang['btn_source'] = 'Vis kildetekst';
$lang['btn_source'] = 'Vis kildekode';
$lang['btn_show'] = 'Vis siden';
$lang['btn_create'] = 'Lag denne siden';
$lang['btn_search'] = 'Søk';
@ -49,10 +50,9 @@ $lang['btn_delete'] = 'Slett';
$lang['btn_back'] = 'Tilbake';
$lang['btn_backlink'] = 'Tilbakelenker';
$lang['btn_backtomedia'] = 'Tilbake til valg av mediafil';
$lang['btn_subscribe'] = 'Abonner på endringer';
$lang['btn_subscribe'] = 'Abonnér på endringer';
$lang['btn_profile'] = 'Oppdater profil';
$lang['btn_reset'] = 'Tilbakestill';
$lang['btn_resendpwd'] = 'Send nytt passord';
$lang['btn_draft'] = 'Rediger kladd';
$lang['btn_recover'] = 'Gjennvinn kladd';
$lang['btn_draftdel'] = 'Slett kladd';
@ -86,28 +86,27 @@ $lang['reghere'] = 'Har du ikke en konto ennå? Lag deg en';
$lang['profna'] = 'Denne wikien støtter ikke profilendringer';
$lang['profnochange'] = 'Ingen endringer, ingenting å gjøre.';
$lang['profnoempty'] = 'Tomt navn- eller e-postfelt er ikke tillatt.';
$lang['profchanged'] = 'Brukerprofil ble vellykket oppdatert.';
$lang['pwdforget'] = 'Glemt ditt passord? Få deg et nytt';
$lang['resendna'] = 'Denne wikien støtter ikke nyutsending.';
$lang['resendpwd'] = 'Send nytt passord for';
$lang['profchanged'] = 'Brukerprofilen ble vellykket oppdatert.';
$lang['pwdforget'] = 'Glemt passordet ditt? Få deg et nytt';
$lang['resendna'] = 'Denne wikien støtter ikke nyutsending av passord.';
$lang['resendpwdmissing'] = 'Beklager, du må fylle inn alle felt.';
$lang['resendpwdnouser'] = 'Beklager, vi kan ikke finne denne brukeren i vår database.';
$lang['resendpwdbadauth'] = 'Beklager, denne autorisasjonskoden er ikke gyldig. Sjekk at du brukte hele bekreftelseslenken.';
$lang['resendpwdconfirm'] = 'En bekreftelseslenke er blitt sendt på e-post.';
$lang['resendpwdsuccess'] = 'Ditt nye passord er blitt sendt på e-post.';
$lang['license'] = 'Der annet ikke er særskilt beskrevet, er innholdet på denne wiki regulert av følgende lisens:';
$lang['licenseok'] = 'Merk: Ved å endre på denne siden godtar du at ditt innhold blir regulert av følgende lisens:';
$lang['license'] = 'Der annet ikke er angitt, er innholdet på denne wiki utgitt under følgende lisens:';
$lang['licenseok'] = 'Merk: Ved å endre på denne siden godtar du at ditt innhold utgis under følgende lisens:';
$lang['searchmedia'] = 'Søk filnavn';
$lang['searchmedia_in'] = 'Søk i %s';
$lang['txt_upload'] = 'Velg fil som skal lastes opp';
$lang['txt_filename'] = 'Skriv inn wikinavn (alternativt)';
$lang['txt_overwrt'] = 'Overskriv eksisterende fil';
$lang['lockedby'] = 'Stengt av';
$lang['lockexpire'] = 'Avstengningen opphører';
$lang['js']['willexpire'] = 'Din redigeringslås for dette dokumentet kommer snart til å opphøre.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.';
$lang['js']['notsavedyet'] = 'Ulagrede endringer vil tapt.
$lang['lockedby'] = 'Låst av';
$lang['lockexpire'] = 'Låsingen utløper';
$lang['js']['willexpire'] = 'Din redigeringslås for dette dokumentet kommer snart til å utløpe.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.';
$lang['js']['notsavedyet'] = 'Ulagrede endringer vil tapt!
Vil du fortsette?';
$lang['js']['searchmedia'] = 'Søk for filer';
$lang['js']['searchmedia'] = 'Søk etter filer';
$lang['js']['keepopen'] = 'Hold vindu åpent ved valg';
$lang['js']['hidedetails'] = 'Skjul detaljer';
$lang['js']['mediatitle'] = 'Lenkeinnstillinger';
@ -117,16 +116,16 @@ $lang['js']['mediasize'] = 'Bildestørrelse';
$lang['js']['mediatarget'] = 'Lenkemål';
$lang['js']['mediaclose'] = 'Lukk';
$lang['js']['mediainsert'] = 'Sett inn';
$lang['js']['mediadisplayimg'] = 'Vis bilde';
$lang['js']['mediadisplaylnk'] = 'Vis bare lenken';
$lang['js']['mediadisplayimg'] = 'Vis bilde.';
$lang['js']['mediadisplaylnk'] = 'Vis bare lenken.';
$lang['js']['mediasmall'] = 'Liten versjon';
$lang['js']['mediamedium'] = 'Medium versjon';
$lang['js']['medialarge'] = 'Stor versjon';
$lang['js']['mediaoriginal'] = 'Original versjon';
$lang['js']['medialnk'] = 'Lenke til detaljeside';
$lang['js']['medialnk'] = 'Lenke til detaljside';
$lang['js']['mediadirect'] = 'Direktelenke til original';
$lang['js']['medianolnk'] = 'Ingen lenke';
$lang['js']['medianolink'] = 'Ikke lenk bilde';
$lang['js']['medianolink'] = 'Ikke lenk bildet';
$lang['js']['medialeft'] = 'Venstrejuster bilde';
$lang['js']['mediaright'] = 'Høyrejuster bilde';
$lang['js']['mediacenter'] = 'Midtstill bilde';
@ -165,13 +164,13 @@ $lang['mediainuse'] = 'Filen "%s" har ikke biltt slettet - den er for
$lang['namespaces'] = 'Navnerom';
$lang['mediafiles'] = 'Tilgjengelige filer i';
$lang['accessdenied'] = 'Du har ikke tilgang til å se denne siden';
$lang['mediausage'] = 'Bruk følgende syntaks til å refferer til denne filen:';
$lang['mediausage'] = 'Bruk følgende syntaks til å referere til denne filen:';
$lang['mediaview'] = 'Vis original fil';
$lang['mediaroot'] = 'rot';
$lang['mediaupload'] = 'Last opp en fil til gjeldende navnerom her. For å opprette undernavnerom, før dem opp før filnavn i "Last opp som" adskilt med kolon.';
$lang['mediaextchange'] = 'Filendelse endret fra .%s til .%s!';
$lang['reference'] = 'Referanser for';
$lang['ref_inuse'] = 'Denne filen kan ikke slettes fordi den er fortsatt i bruk av følgende sider:';
$lang['ref_inuse'] = 'Denne filen kan ikke slettes fordi den er fortsatt i bruk følgende sider:';
$lang['ref_hidden'] = 'Noen referanser er på sider du ikke har tilgang til å lese';
$lang['hits'] = 'Treff';
$lang['quickhits'] = 'Matchende wikinavn';
@ -187,7 +186,7 @@ $lang['diff_side'] = 'Side ved side';
$lang['line'] = 'Linje';
$lang['breadcrumb'] = 'Spor';
$lang['youarehere'] = 'Du er her';
$lang['lastmod'] = 'Sist modifisert';
$lang['lastmod'] = 'Sist endret';
$lang['by'] = 'av';
$lang['deleted'] = 'fjernet';
$lang['created'] = 'opprettet';
@ -258,15 +257,15 @@ $lang['subscr_not_subscribed'] = '%s abonnerer ikke på %s';
$lang['subscr_m_not_subscribed'] = 'Du abonnerer ikke på denne sida eller dette navnerommet';
$lang['subscr_m_new_header'] = 'Legg til abonnement';
$lang['subscr_m_current_header'] = 'Gjeldende abonnementer';
$lang['subscr_m_unsubscribe'] = 'Avmeld';
$lang['subscr_m_subscribe'] = 'Påmeld';
$lang['subscr_m_unsubscribe'] = 'Stoppe abonnement';
$lang['subscr_m_subscribe'] = 'Abonnere på';
$lang['subscr_m_receive'] = 'Motta';
$lang['subscr_style_every'] = 'e-post for alle endringer';
$lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)';
$lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)';
$lang['authmodfailed'] = 'Feilkonfigurert brukerautorisasjon. Vennligst innformer Wiki-admin.';
$lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.';
$lang['i_chooselang'] = 'Velg ditt språk';
$lang['i_chooselang'] = 'Velg språk';
$lang['i_installer'] = 'DokuWiki-installasjon';
$lang['i_wikiname'] = 'Wikinavn';
$lang['i_enableacl'] = 'Aktiver ACL (anbefalt)';
@ -276,7 +275,7 @@ $lang['i_modified'] = 'For sikkerhets skyld vil dette skriptet bare v
Du bør enten pakke ut filene 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_phpver'] = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.';
$lang['i_phpver'] = 'Din PHP versjon <code>%s</code> er lavere enn kravet <code>%s</code>. Du må oppgradere PHP installasjonen. ';
$lang['i_permfail'] = '<code>%s</code> er ikke skrivbar for DokuWiki. Du må fikse rettighetene for denne mappen!';
$lang['i_confexists'] = '<code>%s</code> eksisterer allerede';
$lang['i_writeerr'] = 'Kunne ikke opprette <code>%s</code>. Du må sjekke mappe-/filrettigheter og opprette filen manuelt.';
@ -292,21 +291,6 @@ $lang['i_pol1'] = 'Offentlig Wiki (les for alle, skriving og oppl
$lang['i_pol2'] = 'Lukket Wiki (les, skriv og opplasting bare for registrerte brukere)';
$lang['i_retry'] = 'Prøv igjen';
$lang['i_license'] = 'Velg lisens som du vil legge ut innholdet under:';
$lang['mu_intro'] = 'Her kan du laste opp flere filer samtidig. Klikk på utforsk-knappen for å legge dem til i køen. Klikk på "last opp" når du er ferdig med å velge filene. ';
$lang['mu_gridname'] = 'Filnavn';
$lang['mu_gridsize'] = 'Størrelse';
$lang['mu_gridstat'] = 'Status';
$lang['mu_namespace'] = 'Navnerom (Namespace)';
$lang['mu_browse'] = 'Utforsk';
$lang['mu_toobig'] = 'for stor';
$lang['mu_ready'] = 'klar for opplasting';
$lang['mu_done'] = 'komplett';
$lang['mu_fail'] = 'feilet';
$lang['mu_authfail'] = 'sesjonen har utløpt';
$lang['mu_progress'] = '@PCT@% lastet opp';
$lang['mu_filetypes'] = 'Tillatte filtyper';
$lang['mu_info'] = 'filer lastet opp.';
$lang['mu_lasterr'] = 'Siste feilen:';
$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';
@ -333,10 +317,10 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s på %s';
$lang['media_edit'] = 'Rediger';
$lang['media_history'] = 'Dette er de tidligere versjonene av fila.';
$lang['media_history'] = 'Dette er de tidligere versjonene av filen.';
$lang['media_meta_edited'] = 'metadata er endra';
$lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese filer.';
$lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.';
$lang['media_update'] = 'Last opp ny versjon';
$lang['media_restore'] = 'Gjenopprett denne versjonen';
$lang['plugin_install_err'] = 'Tillegget ble feil installert. Skift navn på mappa \'%s\' til \'%s\'.';
$lang['plugin_install_err'] = 'Tillegget ble feil installert. Skift navn på mappen \'%s\' til \'%s\'.';

View File

@ -1,3 +1,3 @@
====== Dette emnet har ikke noe innhold ======
Du har klikket på en lenke til et emne som ikke finnes ennå. Du kan skape det gjennom å klikke på ''**Lag denne siden**''.
Du har klikket på en lenke til et emne som ikke finnes ennå. Du kan opprette det ved å klikke på ''**Lag denne siden**''.

View File

@ -3,7 +3,7 @@ Hei @FULLNAME@!
Noen har bedt om nytt passord for din @TITLE@ innlogging
på @DOKUWIKIURL@
Om du ikke bad om nytt passord kan du bare overse denne e-posten.
Om du ikke ba om nytt passord kan du bare overse denne e-posten.
For å bekrefte at forespørselen virkelig kom fra deg kan du bruke
følgende lenke:

Some files were not shown because too many files have changed in this diff Show More