summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2015-07-25 23:13:18 +0100
committerAnika Henke <anika@selfthinker.org>2015-07-25 23:13:18 +0100
commit0bfc8d5a03c495c3436780901fe59341faee4d9e (patch)
tree5fe7a6e2e087880647a748b1fbd53ca66aafd943
parentcf2c8e759bf06596f9492d090f4dd8dbb76a178c (diff)
parent6cb9974651aef2a41b48fcb922cc6baa18a0660f (diff)
downloadrpg-0bfc8d5a03c495c3436780901fe59341faee4d9e.tar.gz
rpg-0bfc8d5a03c495c3436780901fe59341faee4d9e.tar.bz2
Merge remote-tracking branch 'origin/master' into styler
Conflicts: lib/exe/css.php
-rw-r--r--.travis.yml1
-rw-r--r--_test/tests/inc/auth_password.test.php9
-rw-r--r--_test/tests/inc/form_form.test.php4
-rw-r--r--_test/tests/inc/io_deletefromfile.test.php15
-rw-r--r--_test/tests/inc/io_readfile.test.php7
-rw-r--r--_test/tests/inc/io_readfile/large.txt.bz2bin0 -> 47 bytes
-rw-r--r--_test/tests/inc/io_readfile/long.txt.bz2bin0 -> 53 bytes
-rw-r--r--_test/tests/inc/io_replaceinfile.test.php108
-rw-r--r--_test/tests/inc/io_savefile.test.php49
-rw-r--r--_test/tests/inc/ixr_library_date.test.php13
-rw-r--r--_test/tests/inc/parser/renderer_resolveinterwiki.test.php22
-rw-r--r--_test/tests/inc/remote.test.php8
-rw-r--r--composer.lock22
-rw-r--r--conf/interwiki.conf46
-rw-r--r--data/pages/wiki/syntax.txt43
-rw-r--r--inc/IXR_Library.php57
-rw-r--r--inc/auth.php23
-rw-r--r--inc/changelog.php13
-rw-r--r--inc/cliopts.php4
-rw-r--r--inc/feedcreator.class.php56
-rw-r--r--inc/fetch.functions.php5
-rw-r--r--inc/form.php6
-rw-r--r--inc/html.php18
-rw-r--r--inc/io.php190
-rw-r--r--inc/lang/ar/lang.php10
-rw-r--r--inc/lang/bg/lang.php6
-rw-r--r--inc/lang/bn/lang.php17
-rw-r--r--inc/lang/ca/lang.php6
-rw-r--r--inc/lang/de-informal/lang.php20
-rw-r--r--inc/lang/de/lang.php2
-rw-r--r--inc/lang/el/lang.php6
-rw-r--r--inc/lang/eo/lang.php4
-rw-r--r--inc/lang/es/lang.php4
-rw-r--r--inc/lang/et/lang.php2
-rw-r--r--inc/lang/fi/lang.php4
-rw-r--r--inc/lang/fo/lang.php10
-rw-r--r--inc/lang/fr/lang.php6
-rw-r--r--inc/lang/gl/lang.php4
-rw-r--r--inc/lang/he/lang.php10
-rw-r--r--inc/lang/he/mailtext.txt4
-rw-r--r--inc/lang/he/registermail.txt4
-rw-r--r--inc/lang/hr/lang.php4
-rw-r--r--inc/lang/id/lang.php27
-rw-r--r--inc/lang/ja/index.txt2
-rw-r--r--inc/lang/ka/lang.php86
-rw-r--r--inc/lang/kk/lang.php4
-rw-r--r--inc/lang/km/lang.php9
-rw-r--r--inc/lang/ko/edit.txt2
-rw-r--r--inc/lang/ko/lang.php17
-rw-r--r--inc/lang/ku/admin.txt4
-rw-r--r--inc/lang/ku/denied.txt4
-rw-r--r--inc/lang/ku/editrev.txt2
-rw-r--r--inc/lang/ku/lang.php93
-rw-r--r--inc/lang/ku/locked.txt3
-rw-r--r--inc/lang/ku/login.txt4
-rw-r--r--inc/lang/ku/mailtext.txt17
-rw-r--r--inc/lang/ku/norev.txt4
-rw-r--r--inc/lang/ku/password.txt10
-rw-r--r--inc/lang/ku/read.txt2
-rw-r--r--inc/lang/ku/register.txt4
-rw-r--r--inc/lang/ku/revisions.txt4
-rw-r--r--inc/lang/ku/showrev.txt2
-rw-r--r--inc/lang/ku/stopwords.txt29
-rw-r--r--inc/lang/la/lang.php8
-rw-r--r--inc/lang/mk/lang.php4
-rw-r--r--inc/lang/nl/lang.php4
-rw-r--r--inc/lang/no/lang.php6
-rw-r--r--inc/lang/pl/lang.php4
-rw-r--r--inc/lang/pt/lang.php4
-rw-r--r--inc/lang/ro/lang.php4
-rw-r--r--inc/lang/ru/lang.php5
-rw-r--r--inc/lang/sq/lang.php8
-rw-r--r--inc/lang/ta/lang.php6
-rw-r--r--inc/lang/th/lang.php4
-rw-r--r--inc/lang/tr/lang.php6
-rw-r--r--inc/lang/uk/lang.php3
-rw-r--r--inc/lang/zh-tw/lang.php6
-rw-r--r--inc/lang/zh/lang.php4
-rw-r--r--inc/pageutils.php26
-rw-r--r--inc/parser/renderer.php14
-rw-r--r--inc/parser/xhtml.php87
-rw-r--r--inc/parserutils.php19
-rw-r--r--inc/remote.php2
-rw-r--r--inc/template.php59
-rw-r--r--install.php6
-rw-r--r--lib/exe/css.php17
-rw-r--r--lib/plugins/acl/admin.php21
-rw-r--r--lib/plugins/acl/lang/ja/help.txt15
-rw-r--r--lib/plugins/acl/remote.php2
-rw-r--r--lib/plugins/acl/script.js2
-rw-r--r--lib/plugins/action.php2
-rw-r--r--lib/plugins/authad/lang/de-informal/lang.php3
-rw-r--r--lib/plugins/authad/lang/de/lang.php3
-rw-r--r--lib/plugins/authad/lang/es/lang.php3
-rw-r--r--lib/plugins/authad/lang/et/lang.php4
-rw-r--r--lib/plugins/authad/lang/he/lang.php4
-rw-r--r--lib/plugins/authad/lang/ko/lang.php2
-rw-r--r--lib/plugins/authad/lang/pt/settings.php4
-rw-r--r--lib/plugins/authad/lang/ru/lang.php3
-rw-r--r--lib/plugins/authad/lang/zh/lang.php3
-rw-r--r--lib/plugins/authldap/lang/de/lang.php9
-rw-r--r--lib/plugins/authldap/lang/de/settings.php2
-rw-r--r--lib/plugins/authldap/lang/es/lang.php8
-rw-r--r--lib/plugins/authldap/lang/ja/lang.php9
-rw-r--r--lib/plugins/authldap/lang/ja/settings.php5
-rw-r--r--lib/plugins/authldap/lang/ko/lang.php9
-rw-r--r--lib/plugins/authldap/lang/ru/lang.php9
-rw-r--r--lib/plugins/authldap/lang/zh-tw/settings.php6
-rw-r--r--lib/plugins/authldap/lang/zh/lang.php9
-rw-r--r--lib/plugins/authldap/lang/zh/settings.php8
-rw-r--r--lib/plugins/authmysql/lang/de/lang.php2
-rw-r--r--lib/plugins/authmysql/lang/ja/lang.php11
-rw-r--r--lib/plugins/authmysql/lang/ja/settings.php2
-rw-r--r--lib/plugins/authmysql/lang/ko/lang.php7
-rw-r--r--lib/plugins/authmysql/lang/ru/lang.php11
-rw-r--r--lib/plugins/authmysql/lang/zh/lang.php11
-rw-r--r--lib/plugins/authpgsql/lang/ja/settings.php2
-rw-r--r--lib/plugins/authplain/auth.php12
-rw-r--r--lib/plugins/config/admin.php4
-rw-r--r--lib/plugins/config/lang/ar/intro.txt2
-rw-r--r--lib/plugins/config/lang/ca-valencia/intro.txt2
-rw-r--r--lib/plugins/config/lang/cs/intro.txt1
-rw-r--r--lib/plugins/config/lang/da/intro.txt1
-rw-r--r--lib/plugins/config/lang/de-informal/intro.txt2
-rw-r--r--lib/plugins/config/lang/de/intro.txt3
-rw-r--r--lib/plugins/config/lang/en/intro.txt2
-rw-r--r--lib/plugins/config/lang/eo/lang.php2
-rw-r--r--lib/plugins/config/lang/fa/intro.txt2
-rw-r--r--lib/plugins/config/lang/fi/intro.txt2
-rw-r--r--lib/plugins/config/lang/fr/intro.txt2
-rw-r--r--lib/plugins/config/lang/fr/lang.php2
-rw-r--r--lib/plugins/config/lang/he/intro.txt2
-rw-r--r--lib/plugins/config/lang/ia/intro.txt2
-rw-r--r--lib/plugins/config/lang/it/intro.txt2
-rw-r--r--lib/plugins/config/lang/ja/intro.txt2
-rw-r--r--lib/plugins/config/lang/ko/intro.txt1
-rw-r--r--lib/plugins/config/lang/la/intro.txt2
-rw-r--r--lib/plugins/config/lang/mr/intro.txt2
-rw-r--r--lib/plugins/config/lang/nl/intro.txt2
-rw-r--r--lib/plugins/config/lang/pl/intro.txt2
-rw-r--r--lib/plugins/config/lang/pt-br/intro.txt2
-rw-r--r--lib/plugins/config/lang/pt/intro.txt2
-rw-r--r--lib/plugins/config/lang/ru/intro.txt2
-rw-r--r--lib/plugins/config/lang/sk/intro.txt2
-rw-r--r--lib/plugins/config/lang/sq/intro.txt2
-rw-r--r--lib/plugins/config/lang/sv/intro.txt2
-rw-r--r--lib/plugins/config/lang/tr/intro.txt2
-rw-r--r--lib/plugins/config/lang/zh-tw/intro.txt2
-rw-r--r--lib/plugins/config/lang/zh-tw/lang.php2
-rw-r--r--lib/plugins/config/lang/zh/intro.txt2
-rw-r--r--lib/plugins/config/settings/extra.class.php2
-rw-r--r--lib/plugins/extension/helper/list.php2
-rw-r--r--lib/plugins/extension/lang/cs/lang.php4
-rw-r--r--lib/plugins/extension/lang/de/lang.php7
-rw-r--r--lib/plugins/extension/lang/eo/lang.php4
-rw-r--r--lib/plugins/extension/lang/es/lang.php9
-rw-r--r--lib/plugins/extension/lang/hu/lang.php4
-rw-r--r--lib/plugins/extension/lang/ja/lang.php1
-rw-r--r--lib/plugins/extension/lang/ko/lang.php5
-rw-r--r--lib/plugins/extension/lang/lv/lang.php4
-rw-r--r--lib/plugins/extension/lang/pl/lang.php4
-rw-r--r--lib/plugins/extension/lang/pt-br/lang.php30
-rw-r--r--lib/plugins/extension/lang/pt/intro_templates.txt2
-rw-r--r--lib/plugins/extension/lang/pt/lang.php4
-rw-r--r--lib/plugins/extension/lang/ru/lang.php185
-rw-r--r--lib/plugins/extension/lang/zh/lang.php7
-rw-r--r--lib/plugins/extension/script.js15
-rw-r--r--lib/plugins/extension/style.less30
-rw-r--r--lib/plugins/popularity/admin.php2
-rw-r--r--lib/plugins/popularity/lang/ja/intro.txt2
-rw-r--r--lib/plugins/popularity/lang/ko/intro.txt2
-rw-r--r--lib/plugins/remote.php13
-rw-r--r--lib/plugins/revert/admin.php8
-rw-r--r--lib/plugins/usermanager/admin.php22
-rw-r--r--lib/plugins/usermanager/style.css2
-rw-r--r--lib/scripts/behaviour.js32
-rw-r--r--lib/scripts/editor.js2
-rw-r--r--lib/scripts/fileuploaderextended.js4
-rw-r--r--lib/scripts/hotkeys.js6
-rw-r--r--lib/scripts/media.js4
-rw-r--r--lib/scripts/page.js13
-rw-r--r--lib/tpl/dokuwiki/css/_edit.css4
-rw-r--r--lib/tpl/dokuwiki/css/_forms.css3
-rw-r--r--lib/tpl/dokuwiki/css/_media_fullscreen.css2
-rw-r--r--lib/tpl/dokuwiki/css/_media_popup.css2
-rw-r--r--lib/tpl/dokuwiki/css/_modal.css2
-rw-r--r--lib/tpl/dokuwiki/css/design.less8
-rw-r--r--lib/tpl/dokuwiki/css/mobile.less4
-rw-r--r--lib/tpl/dokuwiki/main.php4
-rw-r--r--vendor/composer/ClassLoader.php8
-rw-r--r--vendor/composer/installed.json98
-rwxr-xr-xvendor/easybook/geshi/geshi/cpp-qt.php2
-rw-r--r--vendor/splitbrain/php-archive/README.md23
-rw-r--r--vendor/splitbrain/php-archive/src/Zip.php218
194 files changed, 1440 insertions, 1113 deletions
diff --git a/.travis.yml b/.travis.yml
index edca80e0b..61e47522d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,5 @@
language: php
+sudo: false
php:
- "5.6"
- "5.5"
diff --git a/_test/tests/inc/auth_password.test.php b/_test/tests/inc/auth_password.test.php
index 07b9f5bb2..5067e2ca1 100644
--- a/_test/tests/inc/auth_password.test.php
+++ b/_test/tests/inc/auth_password.test.php
@@ -16,9 +16,16 @@ class auth_password_test extends DokuWikiTest {
'kmd5' => 'a579299436d7969791189acadd86fcb716',
'djangomd5' => 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158',
'djangosha1' => 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678',
- 'sha512' => '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1'
+
);
+ function __construct() {
+ if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) {
+ // Check SHA512 only if available in this PHP
+ $this->passes['sha512'] = '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1';
+ }
+ }
+
function test_cryptPassword(){
foreach($this->passes as $method => $hash){
diff --git a/_test/tests/inc/form_form.test.php b/_test/tests/inc/form_form.test.php
index 02242a807..7f168b895 100644
--- a/_test/tests/inc/form_form.test.php
+++ b/_test/tests/inc/form_form.test.php
@@ -30,9 +30,9 @@ class form_test extends DokuWikiTest {
$realoutput .= '<input type="checkbox" id="check__id" name="r" value="1" /> ';
$realoutput .= '<span>Check</span></label>';
$realoutput .= "\n";
- $realoutput .= '<input name="do[save]" type="submit" value="Save" class="button" accesskey="s" title="Save [S]" />';
+ $realoutput .= '<button name="do[save]" type="submit" accesskey="s" title="Save [S]">Save</button>';
$realoutput .= "\n";
- $realoutput .= '<input name="do[cancel]" type="submit" value="Cancel" class="button" />';
+ $realoutput .= '<button name="do[cancel]" type="submit">Cancel</button>';
$realoutput .= "\n";
$realoutput .= "</fieldset>\n</div></form>\n";
return $realoutput;
diff --git a/_test/tests/inc/io_deletefromfile.test.php b/_test/tests/inc/io_deletefromfile.test.php
new file mode 100644
index 000000000..e86150aac
--- /dev/null
+++ b/_test/tests/inc/io_deletefromfile.test.php
@@ -0,0 +1,15 @@
+<?php
+
+class io_deletefromfile_test extends DokuWikiTest {
+
+ function test_delete(){
+ $file = TMP_DIR.'/test.txt';
+ $contents = "The\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012";
+ io_saveFile($file, $contents);
+ $this->assertTrue(io_deleteFromFile($file, "Delete\012"));
+ $this->assertEquals("The\012Delete01\012Delete02\012DeleteX\012Test\012", io_readFile($file));
+ $this->assertTrue(io_deleteFromFile($file, "#Delete\\d+\012#", true));
+ $this->assertEquals("The\012DeleteX\012Test\012", io_readFile($file));
+ }
+
+}
diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php
index e3e90cd8d..700c1902b 100644
--- a/_test/tests/inc/io_readfile.test.php
+++ b/_test/tests/inc/io_readfile.test.php
@@ -48,6 +48,11 @@ class io_readfile_test extends DokuWikiTest {
$this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2', false));
$this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.bz2'));
$this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.bz2'));
+ // internal bzfile function
+ $this->assertEquals(array("The\015\012","Test\015\012"), bzfile(__DIR__.'/io_readfile/test.txt.bz2', true));
+ $this->assertEquals(array_fill(0, 120, str_repeat('a', 80)."\012"), bzfile(__DIR__.'/io_readfile/large.txt.bz2', true));
+ $line = str_repeat('a', 8888)."\012";
+ $this->assertEquals(array($line,"\012",$line,"!"), bzfile(__DIR__.'/io_readfile/long.txt.bz2', true));
}
-} \ No newline at end of file
+}
diff --git a/_test/tests/inc/io_readfile/large.txt.bz2 b/_test/tests/inc/io_readfile/large.txt.bz2
new file mode 100644
index 000000000..3135435f8
--- /dev/null
+++ b/_test/tests/inc/io_readfile/large.txt.bz2
Binary files differ
diff --git a/_test/tests/inc/io_readfile/long.txt.bz2 b/_test/tests/inc/io_readfile/long.txt.bz2
new file mode 100644
index 000000000..fb40759e6
--- /dev/null
+++ b/_test/tests/inc/io_readfile/long.txt.bz2
Binary files differ
diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php
new file mode 100644
index 000000000..452ed7401
--- /dev/null
+++ b/_test/tests/inc/io_replaceinfile.test.php
@@ -0,0 +1,108 @@
+<?php
+
+class io_replaceinfile_test extends DokuWikiTest {
+
+ protected $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012";
+
+ /*
+ * dependency for tests needing zlib extension to pass
+ */
+ public function test_ext_zlib() {
+ if (!extension_loaded('zlib')) {
+ $this->markTestSkipped('skipping all zlib tests. Need zlib extension');
+ }
+ }
+
+ /*
+ * dependency for tests needing zlib extension to pass
+ */
+ public function test_ext_bz2() {
+ if (!extension_loaded('bz2')) {
+ $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension');
+ }
+ }
+
+ function _write($file){
+
+ io_saveFile($file, $this->contents);
+ // Replace one, no regex
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete00\012", false, 1));
+ $this->assertEquals("The\012Delete00\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file));
+ // Replace all, no regex
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "DeleteX\012", false, -1));
+ $this->assertEquals("The\012Delete00\012DeleteX\012Delete01\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file));
+ // Replace two, regex and backreference
+ $this->assertTrue(io_replaceInFile($file, "#Delete(\\d+)\012#", "\\1\012", true, 2));
+ $this->assertEquals("The\01200\012DeleteX\01201\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file));
+ // Delete and insert, no regex
+ $this->assertTrue(io_replaceInFile($file, "DeleteX\012", "Replace\012", false, 0));
+ $this->assertEquals("The\01200\01201\012Delete02\012Test\012Replace\012", io_readFile($file));
+ }
+
+ function test_replace(){
+ $this->_write(TMP_DIR.'/test.txt');
+ }
+
+
+ /**
+ * @depends test_ext_zlib
+ */
+ function test_gzwrite(){
+ $this->_write(TMP_DIR.'/test.txt.gz');
+ }
+
+ /**
+ * @depends test_ext_bz2
+ */
+ function test_bzwrite(){
+ $this->_write(TMP_DIR.'/test.txt.bz2');
+ }
+
+ /**
+ * Test for a non-regex replacement where $newline contains a backreference like construct - it shouldn't affect the replacement
+ */
+ function test_edgecase1()
+ {
+ $file = TMP_DIR . '/test.txt';
+
+ io_saveFile($file, $this->contents);
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\\00\012", false, -1));
+ $this->assertEquals("The\012Delete\\00\012Delete\\00\012Delete01\012Delete02\012Delete\\00\012DeleteX\012Test\012", io_readFile($file), "Edge case: backreference like construct in replacement line");
+ }
+ /**
+ * Test with replace all where replacement line == search line - must not timeout
+ *
+ * @small
+ */
+ function test_edgecase2() {
+ $file = TMP_DIR.'/test.txt';
+
+ io_saveFile($file, $this->contents);
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1));
+ $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line");
+ }
+
+ /**
+ * Test where $oldline exactly matches one line and also matches part of other lines - only the exact match should be replaced
+ */
+ function test_edgecase3()
+ {
+ $file = TMP_DIR . '/test.txt';
+ $contents = "The\012Delete\01201Delete\01202Delete\012Test\012";
+
+ io_saveFile($file, $contents);
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Replace\012", false, -1));
+ $this->assertEquals("The\012Replace\01201Delete\01202Delete\012Test\012", io_readFile($file), "Edge case: old line is a match for parts of other lines");
+ }
+
+ /**
+ * Test passing an invalid parameter.
+ *
+ * @expectedException PHPUnit_Framework_Error_Warning
+ */
+ function test_badparam()
+ {
+ /* The empty $oldline parameter should be caught before the file doesn't exist test. */
+ $this->assertFalse(io_replaceInFile(TMP_DIR.'/not_existing_file.txt', '', '', false, 0));
+ }
+}
diff --git a/_test/tests/inc/io_savefile.test.php b/_test/tests/inc/io_savefile.test.php
new file mode 100644
index 000000000..4a4d4671d
--- /dev/null
+++ b/_test/tests/inc/io_savefile.test.php
@@ -0,0 +1,49 @@
+<?php
+
+class io_savefile_test extends DokuWikiTest {
+
+ /*
+ * dependency for tests needing zlib extension to pass
+ */
+ public function test_ext_zlib() {
+ if (!extension_loaded('zlib')) {
+ $this->markTestSkipped('skipping all zlib tests. Need zlib extension');
+ }
+ }
+
+ /*
+ * dependency for tests needing zlib extension to pass
+ */
+ public function test_ext_bz2() {
+ if (!extension_loaded('bz2')) {
+ $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension');
+ }
+ }
+
+ function _write($file){
+ $contents = "The\012Write\012Test\012";
+ $this->assertTrue(io_saveFile($file, $contents));
+ $this->assertEquals($contents, io_readFile($file));
+ $this->assertTrue(io_saveFile($file, $contents, true));
+ $this->assertEquals($contents.$contents, io_readFile($file));
+ }
+
+ function test_write(){
+ $this->_write(TMP_DIR.'/test.txt');
+ }
+
+ /**
+ * @depends test_ext_zlib
+ */
+ function test_gzwrite(){
+ $this->_write(TMP_DIR.'/test.txt.gz');
+ }
+
+ /**
+ * @depends test_ext_bz2
+ */
+ function test_bzwrite(){
+ $this->_write(TMP_DIR.'/test.txt.bz2');
+ }
+
+}
diff --git a/_test/tests/inc/ixr_library_date.test.php b/_test/tests/inc/ixr_library_date.test.php
index f38486925..0c81e6741 100644
--- a/_test/tests/inc/ixr_library_date.test.php
+++ b/_test/tests/inc/ixr_library_date.test.php
@@ -2,6 +2,9 @@
require_once DOKU_INC.'inc/IXR_Library.php';
+/**
+ * Class ixr_library_date_test
+ */
class ixr_library_date_test extends DokuWikiTest {
@@ -16,18 +19,24 @@ class ixr_library_date_test extends DokuWikiTest {
array('2010-08-17T09:23:14Z', 1282036994),
array('20100817T09:23:14Z', 1282036994),
+ // with timezone
+ array('2010-08-17 09:23:14+0000', 1282036994),
+ array('2010-08-17 09:23:14+00:00', 1282036994),
+ array('2010-08-17 12:23:14+03:00', 1282036994),
+
// no seconds
array('2010-08-17T09:23', 1282036980),
array('20100817T09:23', 1282036980),
// no time
array('2010-08-17', 1282003200),
- //array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp
+ array(1282036980, 1282036980),
+// array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp
);
foreach($tests as $test){
$dt = new IXR_Date($test[0]);
- $this->assertEquals($dt->getTimeStamp(),$test[1]);
+ $this->assertEquals($test[1], $dt->getTimeStamp());
}
}
diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php
index dd1ed1d3f..772001b99 100644
--- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php
+++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php
@@ -14,21 +14,23 @@ class Test_resolveInterwiki extends DokuWikiTest {
$Renderer->interwiki['withslash'] = '/test';
$Renderer->interwiki['onlytext'] = ':onlytext{NAME}'; //with {URL} double urlencoded
$Renderer->interwiki['withquery'] = ':anyns:{NAME}?do=edit';
+ //this was the only link with host/port/path/query. Keep it here for regression
+ $Renderer->interwiki['coral'] = 'http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY}';
$tests = array(
// shortcut, reference and expected
- array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'),
- array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'),
- array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'),
- array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%2F'),
+ array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'),
+ array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F/splitbrain-20/#txt'),
+ array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'),
+ array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%3F%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%3F%2F'),
array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'),
//relative url
- array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'),
- array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'),
+ array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'),
+ array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'),
//dokuwiki id's
- array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'),
- array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=user:foo#txt'),
- array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&amp;do=edit#txt')
+ array('onlytext', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'),
+ array('user', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'),
+ array('withquery', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=anyns:foo&amp;do=edit#txt')
);
foreach($tests as $test) {
@@ -45,7 +47,7 @@ class Test_resolveInterwiki extends DokuWikiTest {
$shortcut = 'nonexisting';
$reference = 'foo @+%/';
$url = $Renderer->_resolveInterWiki($shortcut, $reference);
- $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&amp;btnI=lucky';
+ $expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&amp;btnI=lucky';
$this->assertEquals($expected, $url);
}
diff --git a/_test/tests/inc/remote.test.php b/_test/tests/inc/remote.test.php
index d0d4eb7ce..037b1dc0b 100644
--- a/_test/tests/inc/remote.test.php
+++ b/_test/tests/inc/remote.test.php
@@ -160,10 +160,16 @@ class remote_test extends DokuWikiTest {
$this->assertTrue($this->remote->hasAccess());
}
+ /**
+ * @expectedException RemoteAccessDeniedException
+ */
function test_hasAccessFail() {
global $conf;
$conf['remote'] = 0;
- $this->assertFalse($this->remote->hasAccess());
+ // the hasAccess() should throw a Exception to keep the same semantics with xmlrpc.php.
+ // because the user(xmlrpc) check remote before .--> (!$conf['remote']) die('XML-RPC server not enabled.');
+ // so it must be a Exception when get here.
+ $this->remote->hasAccess();
}
function test_hasAccessFailAcl() {
diff --git a/composer.lock b/composer.lock
index 8b6424244..9aa165902 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,23 +1,23 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
- "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "23ee0dd06136e2301c930e75055300d5",
"packages": [
{
"name": "easybook/geshi",
- "version": "v1.0.8.14",
+ "version": "v1.0.8.15",
"source": {
"type": "git",
"url": "https://github.com/easybook/geshi.git",
- "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8"
+ "reference": "54387de80bc7ee50397ffae39234626a48d2d45f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8",
- "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8",
+ "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f",
+ "reference": "54387de80bc7ee50397ffae39234626a48d2d45f",
"shasum": ""
},
"require": {
@@ -50,20 +50,20 @@
"highlighter",
"syntax"
],
- "time": "2015-04-15 13:21:45"
+ "time": "2015-06-18 14:56:28"
},
{
"name": "splitbrain/php-archive",
- "version": "1.0.0",
+ "version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/splitbrain/php-archive.git",
- "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549"
+ "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549",
- "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549",
+ "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68",
+ "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68",
"shasum": ""
},
"require": {
@@ -97,7 +97,7 @@
"unzip",
"zip"
],
- "time": "2015-02-25 20:15:02"
+ "time": "2015-07-24 11:36:49"
}
],
"packages-dev": [],
diff --git a/conf/interwiki.conf b/conf/interwiki.conf
index 4857e27f3..4dc3c80ee 100644
--- a/conf/interwiki.conf
+++ b/conf/interwiki.conf
@@ -1,35 +1,39 @@
-# Each URL may contain one of the placeholders {URL} or {NAME}
+# Each URL may contain one of these placeholders
# {URL} is replaced by the URL encoded representation of the wikiname
# this is the right thing to do in most cases
# {NAME} this is replaced by the wikiname as given in the document
-# no further encoding is done
+# only mandatory encoded is done, urlencoding if the link
+# is an external URL, or encoding as a wikiname if it is an
+# internal link (begins with a colon)
+# {SCHEME}
+# {HOST}
+# {PORT}
+# {PATH}
+# {QUERY} these placeholders will be replaced with the appropriate part
+# of the link when parsed as a URL
# If no placeholder is defined the urlencoded name is appended to the URL
# To prevent losing your added InterWiki shortcuts after an upgrade,
# you should add new ones to interwiki.local.conf
-wp http://en.wikipedia.org/wiki/{NAME}
-wpfr http://fr.wikipedia.org/wiki/{NAME}
-wpde http://de.wikipedia.org/wiki/{NAME}
-wpes http://es.wikipedia.org/wiki/{NAME}
-wppl http://pl.wikipedia.org/wiki/{NAME}
-wpjp http://ja.wikipedia.org/wiki/{NAME}
-wpmeta http://meta.wikipedia.org/wiki/{NAME}
-doku http://www.dokuwiki.org/
-dokubug http://bugs.dokuwiki.org/index.php?do=details&amp;task_id=
-rfc http://tools.ietf.org/html/rfc
+wp https://en.wikipedia.org/wiki/{NAME}
+wpfr https://fr.wikipedia.org/wiki/{NAME}
+wpde https://de.wikipedia.org/wiki/{NAME}
+wpes https://es.wikipedia.org/wiki/{NAME}
+wppl https://pl.wikipedia.org/wiki/{NAME}
+wpjp https://ja.wikipedia.org/wiki/{NAME}
+wpmeta https://meta.wikipedia.org/wiki/{NAME}
+doku https://www.dokuwiki.org/
+rfc https://tools.ietf.org/html/rfc
man http://man.cx/
-amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/
-amazon.de http://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/
-amazon.uk http://www.amazon.co.uk/exec/obidos/ASIN/
+amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/
+amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/
+amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/
paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=
-phpfn http://www.php.net/{NAME}
-coral http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY}
-freecache http://freecache.org/{NAME}
-sb http://www.splitbrain.org/go/
+phpfn https://www.php.net/{NAME}
skype skype:{NAME}
-google.de http://www.google.de/search?q=
-go http://www.google.com/search?q={URL}&amp;btnI=lucky
+google.de https://www.google.de/search?q=
+go https://www.google.com/search?q={URL}&amp;btnI=lucky
user :user:{NAME}
# To support VoIP/SIP/TEL links
diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt
index 7b453efa2..bdfda9c46 100644
--- a/data/pages/wiki/syntax.txt
+++ b/data/pages/wiki/syntax.txt
@@ -83,9 +83,14 @@ Windows shares like [[\\server\share|this]] are recognized, too. Please note tha
Notes:
* For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone").
- * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/userscript.js'':
-
- LANG.nosmblinks = '';
+ * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code - conf/lang/en/lang.php>
+<?php
+/**
+ * Customization of the english language file
+ * Copy only the strings that needs to be modified
+ */
+$lang['js']['nosmblinks'] = '';
+</code>
==== Image Links ====
@@ -170,6 +175,12 @@ DokuWiki can embed the following media formats directly.
If you specify a filename that is not a supported media format, then it will be displayed as a link instead.
+By adding ''?linkonly'' you provide a link to the media without displaying it inline
+
+ {{wiki:dokuwiki-128.png?linkonly}}
+
+{{wiki:dokuwiki-128.png?linkonly}} This is just a link to the image.
+
==== Fallback Formats ====
Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility.
@@ -261,17 +272,19 @@ There are three exceptions which do not come from that pattern file: multiplicat
Some times you want to mark some text to show it's a reply or comment. You can use the following syntax:
- I think we should do it
-
- > No we shouldn't
-
- >> Well, I say we should
-
- > Really?
-
- >> Yes!
-
- >>> Then lets do it!
+<code>
+I think we should do it
+
+> No we shouldn't
+
+>> Well, I say we should
+
+> Really?
+
+>> Yes!
+
+>>> Then lets do it!
+</code>
I think we should do it
@@ -317,7 +330,7 @@ As you can see, it's the cell separator before a cell which decides about the fo
^ Heading 4 | no colspan this time | |
^ Heading 5 | Row 2 Col 2 | Row 2 Col 3 |
-You can have rowspans (vertically connected cells) by adding '':::'' into the cells below the one to which they should connect.
+You can have rowspans (vertically connected cells) by adding ''%%:::%%'' into the cells below the one to which they should connect.
^ Heading 1 ^ Heading 2 ^ Heading 3 ^
| Row 1 Col 1 | this cell spans vertically | Row 1 Col 3 |
diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php
index 301a8d9e1..5ae1402b9 100644
--- a/inc/IXR_Library.php
+++ b/inc/IXR_Library.php
@@ -297,6 +297,7 @@ class IXR_Message {
* @param $tag
*/
function tag_close($parser, $tag) {
+ $value = null;
$valueFlag = false;
switch($tag) {
case 'int':
@@ -818,18 +819,14 @@ EOD;
* @since 1.5
*/
class IXR_Date {
- var $year;
- var $month;
- var $day;
- var $hour;
- var $minute;
- var $second;
- var $timezone;
+
+ /** @var DateTime */
+ protected $date;
/**
* @param int|string $time
*/
- function __construct($time) {
+ public function __construct($time) {
// $time can be a PHP timestamp or an ISO one
if(is_numeric($time)) {
$this->parseTimestamp($time);
@@ -839,51 +836,48 @@ class IXR_Date {
}
/**
+ * Parse unix timestamp
+ *
* @param int $timestamp
*/
- function parseTimestamp($timestamp) {
- $this->year = gmdate('Y', $timestamp);
- $this->month = gmdate('m', $timestamp);
- $this->day = gmdate('d', $timestamp);
- $this->hour = gmdate('H', $timestamp);
- $this->minute = gmdate('i', $timestamp);
- $this->second = gmdate('s', $timestamp);
- $this->timezone = '';
+ protected function parseTimestamp($timestamp) {
+ $this->date = new DateTime('@' . $timestamp);
}
/**
+ * Parses less or more complete iso dates and much more, if no timezone given assumes UTC
+ *
* @param string $iso
*/
- function parseIso($iso) {
- if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/', $iso, $match)) {
- $this->year = (int) $match[1];
- $this->month = (int) $match[2];
- $this->day = (int) $match[3];
- $this->hour = (int) $match[5];
- $this->minute = (int) $match[6];
- $this->second = (int) $match[8];
- }
+ protected function parseIso($iso) {
+ $this->date = new DateTime($iso, new DateTimeZone("UTC"));
}
/**
+ * Returns date in ISO 8601 format
+ *
* @return string
*/
- function getIso() {
- return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second . $this->timezone;
+ public function getIso() {
+ return $this->date->format(DateTime::ISO8601);
}
/**
+ * Returns date in valid xml
+ *
* @return string
*/
- function getXml() {
+ public function getXml() {
return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>';
}
/**
+ * Returns Unix timestamp
+ *
* @return int
*/
function getTimestamp() {
- return gmmktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
+ return $this->date->getTimestamp();
}
}
@@ -923,6 +917,9 @@ class IXR_IntrospectionServer extends IXR_Server {
/** @var string[] */
var $help;
+ /**
+ * Constructor
+ */
function __construct() {
$this->setCallbacks();
$this->setCapabilities();
@@ -1107,7 +1104,7 @@ class IXR_ClientMulticall extends IXR_Client {
* @param int $port
*/
function __construct($server, $path = false, $port = 80) {
- parent::IXR_Client($server, $path, $port);
+ parent::__construct($server, $path, $port);
//$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
}
diff --git a/inc/auth.php b/inc/auth.php
index 60b8c7c78..e04a6ca1a 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -739,28 +739,23 @@ function auth_aclcheck_cb($data) {
$user = utf8_strtolower($user);
$groups = array_map('utf8_strtolower', $groups);
}
- $user = $auth->cleanUser($user);
+ $user = auth_nameencode($auth->cleanUser($user));
$groups = array_map(array($auth, 'cleanGroup'), (array) $groups);
- $user = auth_nameencode($user);
//prepend groups with @ and nameencode
- $cnt = count($groups);
- for($i = 0; $i < $cnt; $i++) {
- $groups[$i] = '@'.auth_nameencode($groups[$i]);
+ foreach($groups as &$group) {
+ $group = '@'.auth_nameencode($group);
}
$ns = getNS($id);
$perm = -1;
- if($user || count($groups)) {
- //add ALL group
- $groups[] = '@ALL';
- //add User
- if($user) $groups[] = $user;
- } else {
- $groups[] = '@ALL';
- }
-
+ //add ALL group
+ $groups[] = '@ALL';
+
+ //add User
+ if($user) $groups[] = $user;
+
//check exact match first
$matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
if(count($matches)) {
diff --git a/inc/changelog.php b/inc/changelog.php
index d1ef7973e..f4731021c 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -849,18 +849,17 @@ abstract class ChangeLog {
public function isCurrentRevision($rev) {
return $rev == @filemtime($this->getFilename());
}
-
+
/**
- * Return an existing revision for a specific date which is
+ * Return an existing revision for a specific date which is
* the current one or younger or equal then the date
*
- * @param string $id
* @param number $date_at timestamp
* @return string revision ('' for current)
*/
function getLastRevisionAt($date_at){
//requested date_at(timestamp) younger or equal then modified_time($this->id) => load current
- if($date_at >= @filemtime($this->getFilename())) {
+ if($date_at >= @filemtime($this->getFilename())) {
return '';
} else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision
return $rev;
@@ -1049,6 +1048,12 @@ class MediaChangelog extends ChangeLog {
*
* @author Ben Coburn <btcoburn@silicodon.net>
* @author Kate Arzamastseva <pshns@ukr.net>
+ *
+ * @param string $id
+ * @param int $rev
+ * @param int $chunk_size
+ * @param bool $media
+ * @return array|bool
*/
function getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false) {
dbg_deprecated('class PageChangeLog or class MediaChangelog');
diff --git a/inc/cliopts.php b/inc/cliopts.php
index 7d71c7dc9..d7d06119a 100644
--- a/inc/cliopts.php
+++ b/inc/cliopts.php
@@ -447,7 +447,7 @@ class Doku_Cli_Opts_Error {
var $code;
var $msg;
- function Doku_Cli_Opts_Error($code, $msg) {
+ function __construct($code, $msg) {
$this->code = $code;
$this->msg = $msg;
}
@@ -468,7 +468,7 @@ class Doku_Cli_Opts_Container {
var $options = array();
var $args = array();
- function Doku_Cli_Opts_Container($options) {
+ function __construct($options) {
foreach ( $options[0] as $option ) {
if ( false !== ( strpos($option[0], '--') ) ) {
$opt_name = substr($option[0], 2);
diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php
index b90da5724..fe444b39b 100644
--- a/inc/feedcreator.class.php
+++ b/inc/feedcreator.class.php
@@ -129,6 +129,9 @@ class FeedItem extends HtmlDescribable {
// var $source;
}
+/**
+ * Class EnclosureItem
+ */
class EnclosureItem extends HtmlDescribable {
/*
*
@@ -226,7 +229,7 @@ class FeedHtmlField {
* Creates a new instance of FeedHtmlField.
* @param string $parFieldContent: if given, sets the rawFieldContent property
*/
- function FeedHtmlField($parFieldContent) {
+ function __construct($parFieldContent) {
if ($parFieldContent) {
$this->rawFieldContent = $parFieldContent;
}
@@ -482,6 +485,8 @@ class FeedCreator extends HtmlDescribable {
var $additionalElements = Array();
+ var $_timeout;
+
/**
* Adds an FeedItem to the feed.
*
@@ -505,7 +510,7 @@ class FeedCreator extends HtmlDescribable {
* @param int $length the maximum length the string should be truncated to
* @return string the truncated string
*/
- function iTrunc($string, $length) {
+ static function iTrunc($string, $length) {
if (strlen($string)<=$length) {
return $string;
}
@@ -604,6 +609,8 @@ class FeedCreator extends HtmlDescribable {
/**
* @since 1.4
* @access private
+ *
+ * @param string $filename
*/
function _redirect($filename) {
// attention, heavily-commented-out-area
@@ -697,7 +704,7 @@ class FeedDate {
* Accepts RFC 822, ISO 8601 date formats as well as unix time stamps.
* @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and time is used.
*/
- function FeedDate($dateString="") {
+ function __construct($dateString="") {
if ($dateString=="") $dateString = date("r");
if (is_numeric($dateString)) {
@@ -878,7 +885,10 @@ class RSSCreator091 extends FeedCreator {
*/
var $RSSVersion;
- function RSSCreator091() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->_setRSSVersion("0.91");
$this->contentType = "application/rss+xml";
}
@@ -886,6 +896,8 @@ class RSSCreator091 extends FeedCreator {
/**
* Sets this RSS feed's version number.
* @access private
+ *
+ * @param $version
*/
function _setRSSVersion($version) {
$this->RSSVersion = $version;
@@ -1034,7 +1046,10 @@ class RSSCreator091 extends FeedCreator {
*/
class RSSCreator20 extends RSSCreator091 {
- function RSSCreator20() {
+ /**
+ * Constructor
+ */
+ function __construct() {
parent::_setRSSVersion("2.0");
}
@@ -1051,7 +1066,10 @@ class RSSCreator20 extends RSSCreator091 {
*/
class PIECreator01 extends FeedCreator {
- function PIECreator01() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->encoding = "utf-8";
}
@@ -1113,7 +1131,10 @@ class PIECreator01 extends FeedCreator {
*/
class AtomCreator10 extends FeedCreator {
- function AtomCreator10() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "application/atom+xml";
$this->encoding = "utf-8";
}
@@ -1200,7 +1221,10 @@ class AtomCreator10 extends FeedCreator {
*/
class AtomCreator03 extends FeedCreator {
- function AtomCreator03() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "application/atom+xml";
$this->encoding = "utf-8";
}
@@ -1272,12 +1296,19 @@ class AtomCreator03 extends FeedCreator {
* @author Kai Blankenhorn <kaib@bitfolge.de>
*/
class MBOXCreator extends FeedCreator {
-
- function MBOXCreator() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->contentType = "text/plain";
$this->encoding = "utf-8";
}
+ /**
+ * @param string $input
+ * @param int $line_max
+ * @return string
+ */
function qp_enc($input = "", $line_max = 76) {
$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$lines = preg_split("/(?:\r\n|\r|\n)/", $input);
@@ -1363,7 +1394,10 @@ class MBOXCreator extends FeedCreator {
*/
class OPMLCreator extends FeedCreator {
- function OPMLCreator() {
+ /**
+ * Constructor
+ */
+ function __construct() {
$this->encoding = "utf-8";
}
diff --git a/inc/fetch.functions.php b/inc/fetch.functions.php
index c99fbf20a..b8e75eaec 100644
--- a/inc/fetch.functions.php
+++ b/inc/fetch.functions.php
@@ -1,4 +1,4 @@
-<?php
+<?php
/**
* Functions used by lib/exe/fetch.php
* (not included by other parts of dokuwiki)
@@ -47,18 +47,15 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) {
// cache publically
header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.$maxage);
- header('Pragma: public');
} else {
// cache in browser
header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
header('Cache-Control: private, no-transform, max-age='.$maxage);
- header('Pragma: no-cache');
}
} else {
// no cache at all
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');
header('Cache-Control: no-cache, no-transform');
- header('Pragma: no-cache');
}
//send important headers first, script stops here if '304 Not Modified' response
diff --git a/inc/form.php b/inc/form.php
index 748983281..91a171555 100644
--- a/inc/form.php
+++ b/inc/form.php
@@ -400,7 +400,7 @@ function form_makeWikiText($text, $attrs=array()) {
function form_makeButton($type, $act, $value='', $attrs=array()) {
if ($value == '') $value = $act;
$elem = array('_elem'=>'button', 'type'=>$type, '_action'=>$act,
- 'value'=>$value, 'class'=>'button');
+ 'value'=>$value);
if (!empty($attrs['accesskey']) && empty($attrs['title'])) {
$attrs['title'] = $value . ' ['.strtoupper($attrs['accesskey']).']';
}
@@ -761,7 +761,9 @@ function form_wikitext($attrs) {
*/
function form_button($attrs) {
$p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : '';
- return '<input '.$p.buildAttributes($attrs,true).' />';
+ $value = $attrs['value'];
+ unset($attrs['value']);
+ return '<button '.$p.buildAttributes($attrs,true).'>'.$value.'</button>';
}
/**
diff --git a/inc/html.php b/inc/html.php
index 36083a57e..0914a1762 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -183,7 +183,7 @@ function html_topbtn(){
* @param bool|string $label label text, false: lookup btn_$name in localization
* @return string
*/
-function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false){
+function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false){
global $conf;
global $lang;
@@ -221,13 +221,15 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false
$tip = htmlspecialchars($label);
}
- $ret .= '<input type="submit" value="'.hsc($label).'" class="button" ';
+ $ret .= '<button type="submit" ';
if($akey){
$tip .= ' ['.strtoupper($akey).']';
$ret .= 'accesskey="'.$akey.'" ';
}
$ret .= 'title="'.$tip.'" ';
$ret .= '/>';
+ $ret .= hsc($label);
+ $ret .= '</button>';
$ret .= '</div></form>';
return $ret;
@@ -856,26 +858,28 @@ function html_recent($first=0, $show_changes='both'){
$first -= $conf['recent'];
if ($first < 0) $first = 0;
$form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev')));
- $form->addElement(form_makeTag('input', array(
+ $form->addElement(form_makeOpenTag('button', array(
'type' => 'submit',
'name' => 'first['.$first.']',
- 'value' => $lang['btn_newer'],
'accesskey' => 'n',
'title' => $lang['btn_newer'].' [N]',
'class' => 'button show'
)));
+ $form->addElement($lang['btn_newer']);
+ $form->addElement(form_makeCloseTag('button'));
$form->addElement(form_makeCloseTag('div'));
}
if ($hasNext) {
$form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next')));
- $form->addElement(form_makeTag('input', array(
+ $form->addElement(form_makeOpenTag('button', array(
'type' => 'submit',
'name' => 'first['.$last.']',
- 'value' => $lang['btn_older'],
'accesskey' => 'p',
'title' => $lang['btn_older'].' [P]',
'class' => 'button show'
)));
+ $form->addElement($lang['btn_older']);
+ $form->addElement(form_makeCloseTag('button'));
$form->addElement(form_makeCloseTag('div'));
}
$form->addElement(form_makeCloseTag('div'));
@@ -1005,7 +1009,7 @@ function html_li_default($item){
* @param callable $func callback to print an list item
* @param callable $lifunc callback to the opening li tag
* @param bool $forcewrapper Trigger building a wrapper ul if the first level is
- 0 (we have a root object) or 1 (just the root content)
+ * 0 (we have a root object) or 1 (just the root content)
* @return string html of an unordered list
*/
function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){
diff --git a/inc/io.php b/inc/io.php
index 0636a4b62..704c5b1a6 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -107,13 +107,15 @@ function io_readFile($file,$clean=true){
$ret = '';
if(file_exists($file)){
if(substr($file,-3) == '.gz'){
- $ret = join('',gzfile($file));
+ $ret = gzfile($file);
+ if(is_array($ret)) $ret = join('', $ret);
}else if(substr($file,-4) == '.bz2'){
$ret = bzfile($file);
}else{
$ret = file_get_contents($file);
}
}
+ if($ret === null) return false;
if($ret !== false && $clean){
return cleanText($ret);
}else{
@@ -127,22 +129,36 @@ function io_readFile($file,$clean=true){
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $file filename
- * @return string|bool content or false on error
+ * @param bool $array return array of lines
+ * @return string|array|bool content or false on error
*/
-function bzfile($file){
+function bzfile($file, $array=false) {
$bz = bzopen($file,"r");
if($bz === false) return false;
+ if($array) $lines = array();
$str = '';
- while (!feof($bz)){
+ while (!feof($bz)) {
//8192 seems to be the maximum buffersize?
$buffer = bzread($bz,8192);
if(($buffer === false) || (bzerrno($bz) !== 0)) {
return false;
}
$str = $str . $buffer;
+ if($array) {
+ $pos = strpos($str, "\n");
+ while($pos !== false) {
+ $lines[] = substr($str, 0, $pos+1);
+ $str = substr($str, $pos+1);
+ $pos = strpos($str, "\n");
+ }
+ }
}
bzclose($bz);
+ if($array) {
+ if($str !== '') $lines[] = $str;
+ return $lines;
+ }
return $str;
}
@@ -191,13 +207,7 @@ function _io_writeWikiPage_action($data) {
}
/**
- * Saves $content to $file.
- *
- * If the third parameter is set to true the given content
- * will be appended.
- *
- * Uses gzip if extension is .gz
- * and bz2 if extension is .bz2
+ * Internal function to save contents to a file.
*
* @author Andreas Gohr <andi@splitbrain.org>
*
@@ -206,64 +216,97 @@ function _io_writeWikiPage_action($data) {
* @param bool $append
* @return bool true on success, otherwise false
*/
-function io_saveFile($file,$content,$append=false){
+function _io_saveFile($file, $content, $append) {
global $conf;
$mode = ($append) ? 'ab' : 'wb';
-
$fileexists = file_exists($file);
- io_makeFileDir($file);
- io_lock($file);
+
if(substr($file,-3) == '.gz'){
$fh = @gzopen($file,$mode.'9');
- if(!$fh){
- msg("Writing $file failed",-1);
- io_unlock($file);
- return false;
- }
+ if(!$fh) return false;
gzwrite($fh, $content);
gzclose($fh);
}else if(substr($file,-4) == '.bz2'){
- $fh = @bzopen($file,$mode{0});
- if(!$fh){
- msg("Writing $file failed", -1);
- io_unlock($file);
- return false;
+ if($append) {
+ $bzcontent = bzfile($file);
+ if($bzcontent === false) return false;
+ $content = $bzcontent.$content;
}
+ $fh = @bzopen($file,'w');
+ if(!$fh) return false;
bzwrite($fh, $content);
bzclose($fh);
}else{
$fh = @fopen($file,$mode);
- if(!$fh){
- msg("Writing $file failed",-1);
- io_unlock($file);
- return false;
- }
+ if(!$fh) return false;
fwrite($fh, $content);
fclose($fh);
}
if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']);
- io_unlock($file);
return true;
}
/**
- * Delete exact linematch for $badline from $file.
+ * Saves $content to $file.
*
- * Be sure to include the trailing newline in $badline
+ * If the third parameter is set to true the given content
+ * will be appended.
*
* Uses gzip if extension is .gz
+ * and bz2 if extension is .bz2
*
- * 2005-10-14 : added regex option -- Christopher Smith <chris@jalakai.co.uk>
+ * @author Andreas Gohr <andi@splitbrain.org>
*
- * @author Steven Danz <steven-danz@kc.rr.com>
+ * @param string $file filename path to file
+ * @param string $content
+ * @param bool $append
+ * @return bool true on success, otherwise false
+ */
+function io_saveFile($file, $content, $append=false) {
+ io_makeFileDir($file);
+ io_lock($file);
+ if(!_io_saveFile($file, $content, $append)) {
+ msg("Writing $file failed",-1);
+ io_unlock($file);
+ return false;
+ }
+ io_unlock($file);
+ return true;
+}
+
+/**
+ * Replace one or more occurrences of a line in a file.
*
- * @param string $file filename
- * @param string $badline exact linematch to remove
- * @param bool $regex use regexp?
+ * The default, when $maxlines is 0 is to delete all matching lines then append a single line.
+ * A regex that matches any part of the line will remove the entire line in this mode.
+ * Captures in $newline are not available.
+ *
+ * Otherwise each line is matched and replaced individually, up to the first $maxlines lines
+ * or all lines if $maxlines is -1. If $regex is true then captures can be used in $newline.
+ *
+ * Be sure to include the trailing newline in $oldline when replacing entire lines.
+ *
+ * Uses gzip if extension is .gz
+ * and bz2 if extension is .bz2
+ *
+ * @author Steven Danz <steven-danz@kc.rr.com>
+ * @author Christopher Smith <chris@jalakai.co.uk>
+ * @author Patrick Brown <ptbrown@whoopdedo.org>
+ *
+ * @param string $file filename
+ * @param string $oldline exact linematch to remove
+ * @param string $newline new line to insert
+ * @param bool $regex use regexp?
+ * @param int $maxlines number of occurrences of the line to replace
* @return bool true on success
*/
-function io_deleteFromFile($file,$badline,$regex=false){
+function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) {
+ if ((string)$oldline === '') {
+ trigger_error('$oldline parameter cannot be empty in io_replaceInFile()', E_USER_WARNING);
+ return false;
+ }
+
if (!file_exists($file)) return true;
io_lock($file);
@@ -271,41 +314,40 @@ function io_deleteFromFile($file,$badline,$regex=false){
// load into array
if(substr($file,-3) == '.gz'){
$lines = gzfile($file);
+ }else if(substr($file,-4) == '.bz2'){
+ $lines = bzfile($file, true);
}else{
$lines = file($file);
}
- // remove all matching lines
- if ($regex) {
- $lines = preg_grep($badline,$lines,PREG_GREP_INVERT);
- } else {
- $pos = array_search($badline,$lines); //return null or false if not found
- while(is_int($pos)){
- unset($lines[$pos]);
- $pos = array_search($badline,$lines);
+ // make non-regexes into regexes
+ $pattern = $regex ? $oldline : '/^'.preg_quote($oldline,'/').'$/';
+ $replace = $regex ? $newline : addcslashes($newline, '\$');
+
+ // remove matching lines
+ if ($maxlines > 0) {
+ $count = 0;
+ $matched = 0;
+ while (($count < $maxlines) && (list($i,$line) = each($lines))) {
+ // $matched will be set to 0|1 depending on whether pattern is matched and line replaced
+ $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched);
+ if ($matched) $count++;
+ }
+ } else if ($maxlines == 0) {
+ $lines = preg_grep($pattern, $lines, PREG_GREP_INVERT);
+
+ if ((string)$newline !== ''){
+ $lines[] = $newline;
}
+ } else {
+ $lines = preg_replace($pattern, $replace, $lines);
}
if(count($lines)){
- $content = join('',$lines);
- if(substr($file,-3) == '.gz'){
- $fh = @gzopen($file,'wb9');
- if(!$fh){
- msg("Removing content from $file failed",-1);
- io_unlock($file);
- return false;
- }
- gzwrite($fh, $content);
- gzclose($fh);
- }else{
- $fh = @fopen($file,'wb');
- if(!$fh){
- msg("Removing content from $file failed",-1);
- io_unlock($file);
- return false;
- }
- fwrite($fh, $content);
- fclose($fh);
+ if(!_io_saveFile($file, join('',$lines), false)) {
+ msg("Removing content from $file failed",-1);
+ io_unlock($file);
+ return false;
}
}else{
@unlink($file);
@@ -316,6 +358,22 @@ function io_deleteFromFile($file,$badline,$regex=false){
}
/**
+ * Delete lines that match $badline from $file.
+ *
+ * Be sure to include the trailing newline in $badline
+ *
+ * @author Patrick Brown <ptbrown@whoopdedo.org>
+ *
+ * @param string $file filename
+ * @param string $badline exact linematch to remove
+ * @param bool $regex use regexp?
+ * @return bool true on success
+ */
+function io_deleteFromFile($file,$badline,$regex=false){
+ return io_replaceInFile($file,$badline,null,$regex,0);
+}
+
+/**
* Tries to lock a file
*
* Locking is only done for io_savefile and uses directories
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index 2d21fc8f0..fb89bb0c7 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Mostafa Hussein <mostafa@gmail.com>
* @author Yaman Hokan <always.smile.yh@hotmail.com>
* @author Usama Akkad <uahello@gmail.com>
@@ -87,7 +87,7 @@ $lang['profchanged'] = 'حُدث الملف الشخصي للمستخ
$lang['profnodelete'] = 'هذه الموسوعه لا ندعم حذف الأشخاص';
$lang['profdeleteuser'] = 'احذف حساب';
$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
-$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
+$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
هذا الحدث غير ممكن.';
$lang['profconfdeletemissing'] = 'لم تقم بوضع علامة في مربع التأكيد';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
@@ -142,8 +142,6 @@ $lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود ا
$lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟';
$lang['js']['media_diff'] = 'عرض الفروق:';
$lang['js']['media_diff_both'] = 'جنبا إلى جنب';
-$lang['js']['media_diff_opacity'] = 'Shine-through';
-$lang['js']['media_diff_portions'] = 'Swipe';
$lang['js']['media_select'] = 'اختر ملفا...';
$lang['js']['media_upload_btn'] = 'ارفع';
$lang['js']['media_done_btn'] = 'تم';
@@ -299,8 +297,8 @@ $lang['i_badhash'] = 'الملف dokuwiki.php غير مصنف أو
(hash=<code>%s</code>)';
$lang['i_badval'] = 'القيمة <code>%s</code> غير شرعية أو فارغة';
$lang['i_success'] = 'الإعدادات تمت بنجاح، يرجى حذف الملف install.php الآن.
-ثم تابع إلى <a href="doku.php"> دوكو ويكي الجديدة</a>';
-$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة ملفات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php"> دوكو ويكي الجديدة</a>';
+ثم تابع إلى <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>';
+$lang['i_failure'] = 'بعض الأخطاء حدثت أثنا كتابة ملفات الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>';
$lang['i_policy'] = 'تصريح ACL مبدئي';
$lang['i_pol0'] = 'ويكي مفتوحة؛ أي القراءة والكتابة والتحميل مسموحة للجميع';
$lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين فقط';
diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php
index 9176cee56..697f39ad3 100644
--- a/inc/lang/bg/lang.php
+++ b/inc/lang/bg/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Nikolay Vladimirov <nikolay@vladimiroff.com>
* @author Viktor Usunov <usun0v@mail.bg>
* @author Kiril <neohidra@gmail.com>
@@ -10,8 +10,8 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '’';
diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php
index 8443228e3..5cb66a853 100644
--- a/inc/lang/bn/lang.php
+++ b/inc/lang/bn/lang.php
@@ -2,25 +2,24 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Foysol <ragebot1125@gmail.com>
* @author ninetailz <ninetailz1125@gmail.com>
* @author Khan M. B. Asad <muhammad2017@gmail.com>
* @author Ninetailz <ninetailz1125@gmail.com>
*/
$lang['encoding'] = 'utf-8';
-$lang['direction'] = 'itr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
-$lang['apostrophe'] = '\'';
+$lang['direction'] = 'ltr';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'এই পৃষ্ঠা সম্পাদনা করুন';
$lang['btn_source'] = 'দেখান পাতা উৎস';
$lang['btn_show'] = 'দেখান পৃষ্ঠা';
$lang['btn_create'] = 'এই পৃষ্ঠা তৈরি করুন';
$lang['btn_search'] = 'অনুসন্ধান';
-$lang['btn_save'] = 'Save';
$lang['btn_preview'] = 'পূর্বরূপ';
$lang['btn_top'] = 'উপরে ফিরে যান ';
$lang['btn_newer'] = '<< আরো সাম্প্রতিক';
@@ -196,7 +195,7 @@ $lang['created'] = 'তৈরি করা';
$lang['restored'] = 'পুরানো সংস্করণের পুনঃস্থাপন (%s)';
$lang['external_edit'] = 'বাহ্যিক সম্পাদনা';
$lang['summary'] = 'সম্পাদনা সারাংশ';
-$lang['noflash'] = 'এ href="http://www.adobe.com/products/flashplayer/"> অ্যাডোবি ফ্ল্যাশ প্লাগইন </ a> এই সামগ্রী প্রদর্শন করার জন্য প্রয়োজন হয়.';
+$lang['noflash'] = 'এ href="http://www.adobe.com/products/flashplayer/"> অ্যাডোবি ফ্ল্যাশ প্লাগইন </a> এই সামগ্রী প্রদর্শন করার জন্য প্রয়োজন হয়.';
$lang['download'] = 'ডাউনলোড স্নিপেট ';
$lang['tools'] = 'সরঞ্জামসমূহ';
$lang['user_tools'] = 'ব্যবহারকারীর সরঞ্জামসমূহ';
diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php
index 220600dec..bb21f5c3c 100644
--- a/inc/lang/ca/lang.php
+++ b/inc/lang/ca/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Carles Bellver <carles.bellver@cent.uji.es>
* @author Carles Bellver <carles.bellver@gmail.com>
* @author daniel@6temes.cat
@@ -271,8 +271,8 @@ $lang['i_confexists'] = '<code>%s</code> ja existeix';
$lang['i_writeerr'] = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.';
$lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valor il·legal o buit';
-$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou <a href="doku.php">DokuWiki</a>.';
-$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el vostre nou <a href="doku.php">DokuWiki</a>.';
+$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
+$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
$lang['i_policy'] = 'Política ACL inicial';
$lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)';
$lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)';
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 6545621d7..42fb9a265 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -22,6 +22,7 @@
* @author Frank Loizzi <contact@software.bacal.de>
* @author Volker Bödker <volker@boedker.de>
* @author Janosch <janosch@moinzen.de>
+ * @author rnck <dokuwiki@rnck.de>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -65,6 +66,8 @@ $lang['btn_register'] = 'Registrieren';
$lang['btn_apply'] = 'Übernehmen';
$lang['btn_media'] = 'Medien-Manager';
$lang['btn_deleteuser'] = 'Benutzerprofil löschen';
+$lang['btn_img_backto'] = 'Zurück zu %s';
+$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen';
$lang['loggedinas'] = 'Angemeldet als:';
$lang['user'] = 'Benutzername';
$lang['pass'] = 'Passwort';
@@ -80,11 +83,12 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.';
$lang['minoredit'] = 'Kleine Änderung';
$lang['draftdate'] = 'Entwurf gespeichert am';
$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.';
-$lang['searchcreatepage'] = "Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **''[Seite anlegen]''** drückst.";
+$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **\'\'[Seite anlegen]\'\'** drückst.';
$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden';
$lang['reguexists'] = 'Der Benutzername existiert leider schon.';
$lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.';
$lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.';
+$lang['regfail'] = 'Der Benutzer konnte nicht erstellt werden.';
$lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.';
$lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.';
$lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.';
@@ -99,6 +103,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Dein Benutzerprofil wurde im Wiki gelöscht.';
$lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['proffail'] = 'Das Benutzerprofil wurde nicht aktualisiert.';
$lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an';
$lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
$lang['resendpwd'] = 'Neues Passwort setzen für';
@@ -194,6 +199,11 @@ $lang['difflink'] = 'Link zu der Vergleichsansicht';
$lang['diff_type'] = 'Unterschiede anzeigen:';
$lang['diff_inline'] = 'Inline';
$lang['diff_side'] = 'Side by Side';
+$lang['diffprevrev'] = 'Vorherige Überarbeitung';
+$lang['diffnextrev'] = 'Nächste Überarbeitung';
+$lang['difflastrev'] = 'Letzte Überarbeitung';
+$lang['diffbothprevrev'] = 'Beide Seiten, vorherige Überarbeitung';
+$lang['diffbothnextrev'] = 'Beide Seiten, nächste Überarbeitung';
$lang['line'] = 'Zeile';
$lang['breadcrumb'] = 'Zuletzt angesehen:';
$lang['youarehere'] = 'Du befindest dich hier:';
@@ -249,7 +259,6 @@ $lang['upperns'] = 'Gehe zum übergeordneten Namensraum';
$lang['metaedit'] = 'Metadaten bearbeiten';
$lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden';
$lang['metasaveok'] = 'Metadaten gesichert';
-$lang['btn_img_backto'] = 'Zurück zu %s';
$lang['img_title'] = 'Titel:';
$lang['img_caption'] = 'Bildunterschrift:';
$lang['img_date'] = 'Datum:';
@@ -262,7 +271,6 @@ $lang['img_camera'] = 'Kamera:';
$lang['img_keywords'] = 'Schlagwörter:';
$lang['img_width'] = 'Breite:';
$lang['img_height'] = 'Höhe:';
-$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen';
$lang['subscr_subscribe_success'] = 'Die Seite %s wurde zur Abonnementliste von %s hinzugefügt';
$lang['subscr_subscribe_error'] = 'Fehler beim Hinzufügen von %s zur Abonnementliste von %s';
$lang['subscr_subscribe_noaddress'] = 'In deinem Account ist keine E-Mail-Adresse hinterlegt. Dadurch kann die Seite nicht abonniert werden';
@@ -289,6 +297,7 @@ $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführ
$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.';
$lang['i_funcna'] = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?';
$lang['i_phpver'] = 'Deine PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisiere deine PHP-Installation.';
+$lang['i_mbfuncoverload'] = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.';
$lang['i_permfail'] = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!';
$lang['i_confexists'] = '<code>%s</code> existiert bereits';
$lang['i_writeerr'] = '<code>%s</code> konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.';
@@ -338,6 +347,9 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge
$lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
$lang['media_update'] = 'Neue Version hochladen';
$lang['media_restore'] = 'Diese Version wiederherstellen';
+$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
$lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnis';
-$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
+$lang['plainhtml'] = 'Reines HTML';
+$lang['wikimarkup'] = 'Wiki Markup';
+$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.';
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index d74f66149..c452042b6 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -358,5 +358,5 @@ $lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnisse';
$lang['plainhtml'] = 'HTML Klartext';
$lang['wikimarkup'] = 'Wiki Markup';
-$lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>';
+$lang['page_nonexist_rev'] = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>';
$lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 21a854b30..0e62dd37b 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Thanos Massias <tm@thriasio.gr>
* @author Αθανάσιος Νταής <homunculus@wana.gr>
* @author Konstantinos Koryllos <koryllos@gmail.com>
@@ -284,8 +284,8 @@ $lang['i_confexists'] = '<code>%s</code> υπάρχει ήδη';
$lang['i_writeerr'] = 'Δεν είναι δυνατή η δημιουργία του <code>%s</code>. Πρέπει να διορθώσετε τα δικαιώματα πρόσβασης αυτού του φακέλου/αρχείου και να δημιουργήσετε το αρχείο χειροκίνητα!';
$lang['i_badhash'] = 'Μη αναγνωρίσιμο ή τροποποιημένο αρχείο dokuwiki.php (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - λάθος ή ανύπαρκτη τιμή';
-$lang['i_success'] = 'Η εγκατάσταση ολοκληρώθηκε επιτυχώς. Μπορείτε πλέον να διαγράψετε το αρχείο install.php. Συνεχίστε στο <a href="doku.php">νέο σας DokuWiki</a>.';
-$lang['i_failure'] = 'Εμφανίστηκαν κάποια προβλήματα στη διαδικασία ανανέωσης των αρχείων ρυθμίσεων. Πιθανόν να χρειάζεται να τα τροποποιήσετε χειροκίνητα ώστε να μπορείτε να χρησιμοποιήσετε το <a href="doku.php">νέο σας DokuWiki</a>.';
+$lang['i_success'] = 'Η εγκατάσταση ολοκληρώθηκε επιτυχώς. Μπορείτε πλέον να διαγράψετε το αρχείο install.php. Συνεχίστε στο <a href="doku.php?id=wiki:welcome">νέο σας DokuWiki</a>.';
+$lang['i_failure'] = 'Εμφανίστηκαν κάποια προβλήματα στη διαδικασία ανανέωσης των αρχείων ρυθμίσεων. Πιθανόν να χρειάζεται να τα τροποποιήσετε χειροκίνητα ώστε να μπορείτε να χρησιμοποιήσετε το <a href="doku.php?id=wiki:welcome">νέο σας DokuWiki</a>.';
$lang['i_policy'] = 'Αρχική πολιτική Λίστας Δικαιωμάτων Πρόσβασης - ACL';
$lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)';
$lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μπορούν να διαβάσουν σελίδες αλλά μόνο οι εγγεγραμμένοι χρήστες μπορούν να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)';
diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php
index 24df39dc7..3e0b91059 100644
--- a/inc/lang/eo/lang.php
+++ b/inc/lang/eo/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Antono Vasiljev <esperanto.minsk ĈE tut.by>
* @author Felipe Castro <fefcas@yahoo.com.br>
* @author Felipe Castro <fefcas@uol.com.br>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Redakti la paĝon';
$lang['btn_source'] = 'Montri fontan tekston';
$lang['btn_show'] = 'Montri paĝon';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index e10a29a0f..65978f558 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -39,6 +39,7 @@
* @author pokesakura <pokesakura@gmail.com>
* @author Álvaro Iradier <airadier@gmail.com>
* @author Alejandro Nunez <nunez.alejandro@gmail.com>
+ * @author Mauricio Segura <maose38@yahoo.es>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -104,6 +105,7 @@ $lang['regmissing'] = 'Lo siento, tienes que completar todos los camp
$lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.';
$lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.';
$lang['regsuccess2'] = 'El usuario ha sido creado.';
+$lang['regfail'] = 'No se pudo crear el usuario.';
$lang['regmailfail'] = 'Parece que ha habido un error al enviar el correo con la contraseña. ¡Por favor, contacta al administrador!';
$lang['regbadmail'] = 'La dirección de correo no parece válida. Si piensas que esto es un error, contacta al administrador';
$lang['regbadpass'] = 'Las dos contraseñas no son iguales, por favor inténtalo de nuevo.';
@@ -118,6 +120,7 @@ $lang['profdeleteuser'] = 'Eliminar Cuenta';
$lang['profdeleted'] = 'Tu cuenta de usuario ha sido eliminada de este wiki';
$lang['profconfdelete'] = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.';
$lang['profconfdeletemissing'] = 'Casilla de verificación no activada.';
+$lang['proffail'] = 'No se ha actualizado el perfil del usuario.';
$lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva';
$lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
$lang['resendpwd'] = 'Establecer nueva contraseña para';
@@ -363,6 +366,7 @@ $lang['media_perm_read'] = 'Disculpa, no tienes los permisos necesarios pa
$lang['media_perm_upload'] = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.';
$lang['media_update'] = 'Actualizar nueva versión';
$lang['media_restore'] = 'Restaurar esta versión';
+$lang['media_acl_warning'] = 'Puede que esta lista no esté completa debido a restricciones de la ACL y a las páginas ocultas.';
$lang['currentns'] = 'Espacio de nombres actual';
$lang['searchresult'] = 'Resultado de la búsqueda';
$lang['plainhtml'] = 'HTML sencillo';
diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php
index 2372482c3..dbff49dfc 100644
--- a/inc/lang/et/lang.php
+++ b/inc/lang/et/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Oliver S6ro <seem.iges@mail.ee>
* @author Aari Juhanson <aari@vmg.vil.ee>
* @author Kaiko Kaur <kaiko@kultuur.edu.ee>
diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php
index 0f70efa5c..de2ca13da 100644
--- a/inc/lang/fi/lang.php
+++ b/inc/lang/fi/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Petteri <petteri@gmail.com>
* @author Matti Pöllä <mpo@iki.fi>
* @author Otto Vainio <otto@valjakko.net>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '”';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '’';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Muokkaa tätä sivua';
$lang['btn_source'] = 'Näytä sivun lähdekoodi';
$lang['btn_show'] = 'Näytä sivu';
diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php
index f3f462272..d1d7096c9 100644
--- a/inc/lang/fo/lang.php
+++ b/inc/lang/fo/lang.php
@@ -8,11 +8,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = 'Vanligt gásareygað byrjan';
-$lang['doublequoteclosing'] = 'Vanligt gásareygað endi';
-$lang['singlequoteopening'] = 'Einstakt gásareygað byrjan';
-$lang['singlequoteclosing'] = 'Einstakt gásareygað endi';
-$lang['apostrophe'] = 'Apostroff';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
+$lang['singlequoteopening'] = '\'';
+$lang['singlequoteclosing'] = '\'';
+$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Rætta hetta skjal';
$lang['btn_source'] = 'Vís keldu';
$lang['btn_show'] = 'Vís skjal';
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index 74b1edd19..4a25aab43 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Sébastien Bauer <sebastien.bauer@advalvas.be>
* @author Antoine Fixary <antoine.fixary@freesbee.fr>
* @author cumulus <pta-n56@myamail.com>
@@ -197,7 +197,7 @@ $lang['accessdenied'] = 'Vous n\'êtes pas autorisé à voir cette page
$lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :';
$lang['mediaview'] = 'Afficher le fichier original';
$lang['mediaroot'] = 'racine';
-$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)';
+$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag &amp; drop)';
$lang['mediaextchange'] = 'Extension du fichier modifiée de .%s en .%s !';
$lang['reference'] = 'Références pour';
$lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :';
@@ -318,7 +318,7 @@ $lang['i_writeerr'] = 'Impossible de créer <code>%s</code>. Vous dev
$lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - valeur interdite ou vide';
$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
-$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php">votre nouveau DokuWiki</a>.';
+$lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
$lang['i_policy'] = 'Politique de contrôle d\'accès initiale';
$lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)';
$lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)';
diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php
index 9cc460b58..9e3d4f2b2 100644
--- a/inc/lang/gl/lang.php
+++ b/inc/lang/gl/lang.php
@@ -274,9 +274,9 @@ $lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terás de
$lang['i_badhash'] = 'dokuwiki.php irrecoñecíbel ou modificado (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - ilegal ou valor baleiro';
$lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o
- <a href="doku.php">teu novo DokuWiki</a>.';
+ <a href="doku.php?id=wiki:welcome">teu novo DokuWiki</a>.';
$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes
- de poderes empregar <a href="doku.php">o teu novo DokuWiki</a>.';
+ de poderes empregar <a href="doku.php?id=wiki:welcome">o teu novo DokuWiki</a>.';
$lang['i_policy'] = 'Regras iniciais da ACL';
$lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)';
$lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)';
diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php
index 37ea704da..a24ccace9 100644
--- a/inc/lang/he/lang.php
+++ b/inc/lang/he/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author גיא שפר <guysoft@ort.org.il>
* @author Denis Simakov <akinoame1@gmail.com>
* @author Dotan Kamber <kamberd@yahoo.com>
@@ -110,7 +110,7 @@ $lang['searchmedia_in'] = 'חיפוש תחת %s';
$lang['txt_upload'] = 'בחירת קובץ להעלות:';
$lang['txt_filename'] = 'העלאה בשם (נתון לבחירה):';
$lang['txt_overwrt'] = 'שכתוב על קובץ קיים';
-$lang['maxuploadsize'] = 'העלה מקסימום. s% לכל קובץ.';
+$lang['maxuploadsize'] = 'העלה מקסימום. %s לכל קובץ.';
$lang['lockedby'] = 'נעול על ידי:';
$lang['lockexpire'] = 'הנעילה פגה:';
$lang['js']['willexpire'] = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאפס את מד משך הנעילה.';
@@ -289,7 +289,7 @@ $lang['i_problems'] = 'תכנית ההתקנה זיהתה מספר ב
$lang['i_modified'] = 'משיקולי אבטחה סקריפט זה יעבוד אך ורק עם התקנת DokuWiki חדשה שלא עברה כל שינוי.
עליך לחלץ שנית את הקבצים מהחבילה שהורדה או להיעזר בדף
<a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna'] = 'פונקציית ה-PHP&rlm; <code>%s</code> אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?';
+$lang['i_funcna'] = 'פונקציית ה-PHP&#8207; <code>%s</code> אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?';
$lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> נמוכה מ <code>%s</code> הצורך. אתה צריך לשדרג PHP שלך להתקין.';
$lang['i_mbfuncoverload'] = 'יש לבטל את mbstring.func_overload בphp.ini בכדי להריץ את DokuWiki';
$lang['i_permfail'] = '<code>%s</code> אינה ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרשאות תיקייה זו!';
@@ -329,8 +329,8 @@ $lang['media_list_rows'] = 'שורות';
$lang['media_sort_name'] = 'שם';
$lang['media_sort_date'] = 'תאריך';
$lang['media_namespaces'] = 'בחר מרחב שמות';
-$lang['media_files'] = 'קבצים ב s%';
-$lang['media_upload'] = 'להעלות s%';
+$lang['media_files'] = 'קבצים ב %s';
+$lang['media_upload'] = 'להעלות %s';
$lang['media_search'] = 'חיפוש ב%s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s ב %s';
diff --git a/inc/lang/he/mailtext.txt b/inc/lang/he/mailtext.txt
index 222ee1b6d..5ef4ec7e2 100644
--- a/inc/lang/he/mailtext.txt
+++ b/inc/lang/he/mailtext.txt
@@ -2,7 +2,7 @@
תאריך : @DATE@
דפדפן : @BROWSER@
-כתובת ה־IP&rlm; : @IPADDRESS@
+כתובת ה־IP&#8207; : @IPADDRESS@
שם המארח : @HOSTNAME@
המהדורה הישנה: @OLDPAGE@
המהדורה החדשה: @NEWPAGE@
@@ -11,7 +11,7 @@
@DIFF@
---
+--
דף זה נוצר ע״י ה־DokuWiki הזמין בכתובת
@DOKUWIKIURL@
diff --git a/inc/lang/he/registermail.txt b/inc/lang/he/registermail.txt
index 3edca3fa0..d478d1c20 100644
--- a/inc/lang/he/registermail.txt
+++ b/inc/lang/he/registermail.txt
@@ -6,9 +6,9 @@
תאריך : @DATE@
דפדפן : @BROWSER@
-כתובת IP&rlm; : @IPADDRESS@
+כתובת IP&#8207; : @IPADDRESS@
שם המארח : @HOSTNAME@
---
+--
הודעת דוא״ל זו נוצרה על ידי ה־DokuWiki הזמין בכתובת
@DOKUWIKIURL@
diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php
index 39eaa18c0..40e0c59c3 100644
--- a/inc/lang/hr/lang.php
+++ b/inc/lang/hr/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Tomo Krajina <aaa@puzz.info>
* @author Branko Rihtman <theney@gmail.com>
* @author Dražen Odobašić <dodobasic@gmail.com>
@@ -15,7 +15,7 @@ $lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Izmijeni stranicu';
$lang['btn_source'] = 'Prikaži kod stranice';
$lang['btn_show'] = 'Prikaži dokument';
diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php
index 514c63871..4321e2cc9 100644
--- a/inc/lang/id/lang.php
+++ b/inc/lang/id/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author mubaidillah <mubaidillah@gmail.com>
* @author Irwan Butar Butar <irwansah.putra@gmail.com>
* @author Yustinus Waruwu <juswaruwu@gmail.com>
@@ -12,10 +12,10 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
+$lang['doublequoteopening'] = '“';
+$lang['doublequoteclosing'] = '”';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Edit halaman ini';
$lang['btn_source'] = 'Lihat sumber halaman';
@@ -23,7 +23,6 @@ $lang['btn_show'] = 'Tampilkan halaman';
$lang['btn_create'] = 'Buat halaman baru';
$lang['btn_search'] = 'Cari';
$lang['btn_save'] = 'Simpan';
-$lang['btn_preview'] = 'Preview';
$lang['btn_top'] = 'kembali ke atas';
$lang['btn_newer'] = '<< lebih lanjut';
$lang['btn_older'] = 'sebelumnya >>';
@@ -32,7 +31,6 @@ $lang['btn_recent'] = 'Perubahan terbaru';
$lang['btn_upload'] = 'Upload';
$lang['btn_cancel'] = 'Batal';
$lang['btn_index'] = 'Indeks';
-$lang['btn_secedit'] = 'Edit';
$lang['btn_login'] = 'Login';
$lang['btn_logout'] = 'Keluar';
$lang['btn_admin'] = 'Admin';
@@ -42,9 +40,7 @@ $lang['btn_back'] = 'Kembali';
$lang['btn_backlink'] = 'Backlinks';
$lang['btn_subscribe'] = 'Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
-$lang['btn_reset'] = 'Reset';
$lang['btn_resendpwd'] = 'Atur password baru';
-$lang['btn_draft'] = 'Edit draft';
$lang['btn_recover'] = 'Cadangkan draf';
$lang['btn_draftdel'] = 'Hapus draft';
$lang['btn_revert'] = 'Kembalikan';
@@ -157,7 +153,7 @@ $lang['uploadexist'] = 'File telah ada. Tidak mengerjakan apa-apa.';
$lang['uploadbadcontent'] = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.';
$lang['uploadspam'] = 'File yang diupload diblok oleh spam blacklist.';
$lang['uploadxss'] = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.';
-$lang['uploadsize'] = 'File yang diupload terlalu besar. (max.%)';
+$lang['uploadsize'] = 'File yang diupload terlalu besar. (max. %s)';
$lang['deletesucc'] = 'File "%s" telah dihapus.';
$lang['deletefail'] = '"%s" tidak dapat dihapus - cek hak aksesnya.';
$lang['mediainuse'] = 'File "%s" belum dihapus - file ini sedang digunakan.';
@@ -172,7 +168,6 @@ $lang['mediaextchange'] = 'Ektensi file berubah dari .%s ke .%s';
$lang['reference'] = 'Referensi untuk';
$lang['ref_inuse'] = 'File tidak dapat dihapus karena sedang digunakan oleh halaman:';
$lang['ref_hidden'] = 'Beberapa referensi ada didalam halaman yang tidak diijinkan untuk Anda baca.';
-$lang['hits'] = 'Hits';
$lang['quickhits'] = 'Matching pagenames';
$lang['toc'] = 'Daftar isi';
$lang['current'] = 'sekarang';
@@ -195,7 +190,6 @@ $lang['deleted'] = 'terhapus';
$lang['created'] = 'dibuat';
$lang['restored'] = 'revisi lama ditampilkan kembali (%s)';
$lang['external_edit'] = 'Perubahan eksternal';
-$lang['summary'] = 'Edit summary';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> diperlukan untuk menampilkan konten ini.';
$lang['download'] = 'Unduh Cuplikan';
$lang['tools'] = 'Alat';
@@ -218,26 +212,17 @@ $lang['qb_italic'] = 'Miring';
$lang['qb_underl'] = 'Garis Bawah';
$lang['qb_code'] = 'Kode';
$lang['qb_strike'] = 'Text Tercoret';
-$lang['qb_h1'] = 'Level 1 Headline';
-$lang['qb_h2'] = 'Level 2 Headline';
-$lang['qb_h3'] = 'Level 3 Headline';
-$lang['qb_h4'] = 'Level 4 Headline';
-$lang['qb_h5'] = 'Level 5 Headline';
$lang['qb_hs'] = 'Pilih Judul';
$lang['qb_hplus'] = 'Judul Lebih Atas';
$lang['qb_hminus'] = 'Judul Lebih Bawah';
$lang['qb_hequal'] = 'Tingkat Judul yang Sama';
-$lang['qb_link'] = 'Link Internal';
-$lang['qb_extlink'] = 'Link External';
$lang['qb_hr'] = 'Garis Horisontal';
$lang['qb_ol'] = 'Item Berurutan';
$lang['qb_ul'] = 'Item Tidak Berurutan';
$lang['qb_media'] = 'Tambahkan gambar atau file lain';
$lang['qb_sig'] = 'Sisipkan tanda tangan';
-$lang['qb_smileys'] = 'Smileys';
$lang['qb_chars'] = 'Karakter Khusus';
$lang['upperns'] = 'lompat ke namespace induk';
-$lang['metaedit'] = 'Edit Metadata';
$lang['metasaveerr'] = 'Gagal menulis metadata';
$lang['metasaveok'] = 'Metadata tersimpan';
$lang['img_title'] = 'Judul:';
diff --git a/inc/lang/ja/index.txt b/inc/lang/ja/index.txt
index b0447899d..b3dbb95f3 100644
--- a/inc/lang/ja/index.txt
+++ b/inc/lang/ja/index.txt
@@ -1,4 +1,4 @@
====== サイトマップ ======
-[[doku>namespaces|名前空間]] に基づく、全ての文書の索引です。
+[[doku>ja:namespaces|名前空間]] に基づく、全ての文書の索引です。
diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php
index 0b2d60e4e..72594efe3 100644
--- a/inc/lang/ka/lang.php
+++ b/inc/lang/ka/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Luka Lejava <luka.lejava@gmail.com>
*/
$lang['encoding'] = 'utf-8';
@@ -35,7 +35,6 @@ $lang['btn_update'] = 'განახლება';
$lang['btn_delete'] = 'წაშლა';
$lang['btn_back'] = 'უკან';
$lang['btn_backlink'] = 'გადმომისამართებული ბმულები';
-$lang['btn_subscribe'] = 'Manage Subscriptions';
$lang['btn_profile'] = 'პროფილის განახლება';
$lang['btn_reset'] = 'წაშლა';
$lang['btn_resendpwd'] = 'ახალი პაროლის დაყენება';
@@ -47,7 +46,7 @@ $lang['btn_register'] = 'რეგისტრაცია';
$lang['btn_apply'] = 'ცადე';
$lang['btn_media'] = 'მედია ფაილების მართვა';
$lang['btn_deleteuser'] = 'ჩემი ექაუნთის წაშლა';
-$lang['btn_img_backto'] = 'უკან %';
+$lang['btn_img_backto'] = 'უკან %s';
$lang['btn_mediaManager'] = 'მედია ფაილების მმართველში გახსნა';
$lang['loggedinas'] = 'შესული ხართ როგორც:';
$lang['user'] = 'ლოგინი';
@@ -93,11 +92,11 @@ $lang['resendpwdsuccess'] = 'ახალი პაროლი გამ
$lang['license'] = 'ვიკი ლიცენზირებულია: ';
$lang['licenseok'] = 'ამ გვერდის რედაქტირებით თვენ ეთანხმებით ლიცენზიას:';
$lang['searchmedia'] = 'საძებო სახელი:';
-$lang['searchmedia_in'] = 'ძებნა %-ში';
+$lang['searchmedia_in'] = 'ძებნა %s-ში';
$lang['txt_upload'] = 'აირჩიეთ ასატვირთი ფაილი:';
$lang['txt_filename'] = 'ატვირთვა როგორც (არჩევითი):';
$lang['txt_overwrt'] = 'გადაწერა ზემოდან';
-$lang['maxuploadsize'] = 'მაქსიმალური ზომა %';
+$lang['maxuploadsize'] = 'მაქსიმალური ზომა %s';
$lang['lockedby'] = 'დაბლოკილია:';
$lang['lockexpire'] = 'განიბლოკება:';
$lang['js']['willexpire'] = 'გვერდი განიბლოკება 1 წუთში';
@@ -107,7 +106,6 @@ $lang['js']['keepopen'] = 'დატოვეთ ღია';
$lang['js']['hidedetails'] = 'დეტალების დამალვა';
$lang['js']['mediatitle'] = 'ინსტრუმენტები';
$lang['js']['mediadisplay'] = 'ბმულის ტიპი';
-$lang['js']['mediaalign'] = 'Alignment';
$lang['js']['mediasize'] = 'სურათის ზომა';
$lang['js']['mediatarget'] = 'მიზნის ბმული';
$lang['js']['mediaclose'] = 'დახურვა';
@@ -125,7 +123,6 @@ $lang['js']['medianolink'] = 'არ დალინკოთ სურა
$lang['js']['medialeft'] = 'მარცხვნივ განათავსეთ სურათი';
$lang['js']['mediaright'] = 'მარჯვნივ განათავსეთ სურათი';
$lang['js']['mediacenter'] = 'შუაში განათავსეთ სურათი';
-$lang['js']['medianoalign'] = 'Use no align.';
$lang['js']['nosmblinks'] = 'ეს ფუქნცია მუშაობს მხოლოდ Internet Explorer-ზე';
$lang['js']['linkwiz'] = 'ბმული';
$lang['js']['linkto'] = 'ბმული';
@@ -133,9 +130,6 @@ $lang['js']['del_confirm'] = 'დარწმუნებული ხარ
$lang['js']['restore_confirm'] = 'დარწმუნებული ხართ რომ აღდგენა გინდათ?';
$lang['js']['media_diff'] = 'განსხვავებების ჩვენება';
$lang['js']['media_diff_both'] = 'გვერდიგვერდ';
-$lang['js']['media_diff_opacity'] = 'Shine-through';
-$lang['js']['media_diff_portions'] = 'Swipe
-';
$lang['js']['media_select'] = 'არჩეული ფაილები';
$lang['js']['media_upload_btn'] = 'ატვირთვა';
$lang['js']['media_done_btn'] = 'მზადაა';
@@ -149,49 +143,36 @@ $lang['uploadsucc'] = 'ატვირთვა დასრულე
$lang['uploadfail'] = 'შეფერხება ატვირთვისას';
$lang['uploadwrong'] = 'ატვირთვა შეუძლებელია';
$lang['uploadexist'] = 'ფაილი უკვე არსებობს';
-$lang['uploadbadcontent'] = 'ატვირთული ფაილები არ ემთხვევა ';
+$lang['uploadbadcontent'] = 'ატვირთული ფაილები არ ემთხვევა %s';
$lang['uploadspam'] = 'ატვირთვა დაბლოკილია სპამბლოკერის მიერ';
$lang['uploadxss'] = 'ატვირთვა დაბლოკილია';
-$lang['uploadsize'] = 'ასატვირთი ფაილი ზედმეტად დიდია';
-$lang['deletesucc'] = '% ფაილები წაიშალა';
-$lang['deletefail'] = '% ვერ მოიძებნა';
-$lang['mediainuse'] = 'ფაილის % ვერ წაიშალა, რადგან გამოყენებაშია';
-$lang['namespaces'] = 'Namespaces';
+$lang['uploadsize'] = 'ასატვირთი ფაილი ზედმეტად დიდია %s';
+$lang['deletesucc'] = '%s ფაილები წაიშალა';
+$lang['deletefail'] = '%s ვერ მოიძებნა';
+$lang['mediainuse'] = 'ფაილის %s ვერ წაიშალა, რადგან გამოყენებაშია';
$lang['mediafiles'] = 'არსებული ფაილები';
$lang['accessdenied'] = 'თქვენ არ შეგიძლიათ გვერდის ნახვა';
-$lang['mediausage'] = 'Use the following syntax to reference this file:';
$lang['mediaview'] = 'ორიგინალი ფაილის ჩვენება';
$lang['mediaroot'] = 'root';
-$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.';
-$lang['mediaextchange'] = 'Filextension changed from .%s to .%s!';
-$lang['reference'] = 'References for';
$lang['ref_inuse'] = 'ფაილი წაშლა შეუძლებელია, გამოიყენება აქ:';
$lang['ref_hidden'] = 'ზოგიერთი ბლოკის წაკითხვის უფლება არ გაქვთ';
-$lang['hits'] = 'Hits';
$lang['quickhits'] = 'მსგავსი სახელები';
-$lang['toc'] = 'Table of Contents';
$lang['current'] = 'ახლანდელი';
$lang['yours'] = 'თვენი ვერსია';
$lang['diff'] = 'ვერსიების განსხვავება';
$lang['diff2'] = 'განსხვავებები';
-$lang['difflink'] = 'Link to this comparison view';
$lang['diff_type'] = 'განსხვავებების ჩვენება';
-$lang['diff_inline'] = 'Inline';
$lang['diff_side'] = 'გვერდიგვერდ';
$lang['diffprevrev'] = 'წინა ვერსია';
$lang['diffnextrev'] = 'შემდეგი ვერსია';
$lang['difflastrev'] = 'ბოლო ვერსია';
-$lang['diffbothprevrev'] = 'Both sides previous revision';
-$lang['diffbothnextrev'] = 'Both sides next revision';
$lang['line'] = 'ზოლი';
-$lang['breadcrumb'] = 'Trace:';
$lang['youarehere'] = 'თვენ ხართ აქ:';
$lang['lastmod'] = 'ბოლოს მოდიფიცირებული:';
$lang['deleted'] = 'წაშლილია';
$lang['created'] = 'შექმნილია';
-$lang['restored'] = 'ძველი ვერსია აღდგენილია %';
+$lang['restored'] = 'ძველი ვერსია აღდგენილია (%s)';
$lang['external_edit'] = 'რედაქტირება';
-$lang['summary'] = 'Edit summary';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">საჭიროა Adobe Flash Plugin</a>';
$lang['download'] = 'Snippet-ის გადმოწერა';
$lang['tools'] = 'ინსტრუმენტები';
@@ -209,11 +190,6 @@ $lang['changes_type'] = 'ცვლილებები';
$lang['pages_changes'] = 'გვერდები';
$lang['media_changes'] = 'მედია ფაილები';
$lang['both_changes'] = 'გვერდები და მედია ფაილები';
-$lang['qb_bold'] = 'Bold Text';
-$lang['qb_italic'] = 'Italic Text';
-$lang['qb_underl'] = 'Underlined Text';
-$lang['qb_code'] = 'Monospaced Text';
-$lang['qb_strike'] = 'Strike-through Text';
$lang['qb_h1'] = 'Level 1 სათაური';
$lang['qb_h2'] = 'Level 2 სათაური';
$lang['qb_h3'] = 'Level 3 სათაური';
@@ -224,64 +200,28 @@ $lang['qb_hs'] = 'სათაურის არჩევა';
$lang['qb_hplus'] = 'Higher სათაური';
$lang['qb_hminus'] = 'Lower სათაური';
$lang['qb_hequal'] = 'Same Level სათაური';
-$lang['qb_link'] = 'Internal Link';
-$lang['qb_extlink'] = 'External Link';
-$lang['qb_hr'] = 'Horizontal Rule';
$lang['qb_ol'] = 'შეკვეთილი ბოლო მასალა';
-$lang['qb_ul'] = 'Unordered List Item';
$lang['qb_media'] = 'ნახატების და სხვა ფაიელბის დამატება';
$lang['qb_sig'] = 'ხელმოწერა';
$lang['qb_smileys'] = 'სმაილები';
-$lang['qb_chars'] = 'Special Chars';
-$lang['upperns'] = 'jump to parent namespace';
-$lang['metaedit'] = 'Edit Metadata';
-$lang['metasaveerr'] = 'Writing metadata failed';
-$lang['metasaveok'] = 'Metadata saved';
$lang['img_title'] = 'სათაური:';
-$lang['img_caption'] = 'Caption:';
$lang['img_date'] = 'თარიღი:';
$lang['img_fname'] = 'ფაილის სახელი:';
$lang['img_fsize'] = 'ზომა:';
$lang['img_artist'] = 'ფოტოგრაფი:';
-$lang['img_copyr'] = 'Copyright:';
$lang['img_format'] = 'ფორმატი:';
$lang['img_camera'] = 'კამერა:';
-$lang['img_keywords'] = 'Keywords:';
$lang['img_width'] = 'სიგანე:';
$lang['img_height'] = 'სიმაღლე:';
-$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s';
-$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s';
-$lang['subscr_subscribe_noaddress'] = 'There is no address associated with your login, you cannot be added to the subscription list';
-$lang['subscr_unsubscribe_success'] = 'Removed %s from subscription list for %s';
-$lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s';
-$lang['subscr_already_subscribed'] = '%s is already subscribed to %s';
-$lang['subscr_not_subscribed'] = '%s is not subscribed to %s';
-$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to the current page or namespace.';
-$lang['subscr_m_new_header'] = 'Add subscription';
-$lang['subscr_m_current_header'] = 'Current subscriptions';
-$lang['subscr_m_unsubscribe'] = 'Unsubscribe';
-$lang['subscr_m_subscribe'] = 'Subscribe';
$lang['subscr_m_receive'] = 'მიღება';
$lang['subscr_style_every'] = 'ფოსტა ყოველ ცვლილებაზე';
$lang['subscr_style_digest'] = 'ფოსტა ყოველი გვერდის შეცვლაზე ';
$lang['subscr_style_list'] = 'ფოსტა ყოველი გვერდის შეცვლაზე ';
-$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
$lang['i_chooselang'] = 'ენსი არჩევა';
$lang['i_installer'] = 'DokuWiki დამყენებელი';
$lang['i_wikiname'] = 'Wiki სახელი';
-$lang['i_enableacl'] = 'Enable ACL (recommended)';
$lang['i_superuser'] = 'ადმინი';
$lang['i_problems'] = 'შეასწორეთ შეცდომები';
-$lang['i_modified'] = 'For security reasons this script will only work with a new and unmodified Dokuwiki installation. You should either re-extract the files from the downloaded package or consult the complete <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna'] = 'PHP function <code>%s</code> is not available. Maybe your hosting provider disabled it for some reason?';
-$lang['i_phpver'] = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.';
-$lang['i_permfail'] = '<code>%s</code> is not writable by DokuWiki. You need to fix the permission settings of this directory!';
-$lang['i_confexists'] = '<code>%s</code> already exists';
-$lang['i_writeerr'] = 'Unable to create <code>%s</code>. You will need to check directory/file permissions and create the file manually.';
-$lang['i_badhash'] = 'unrecognised or modified dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code> - illegal or empty value';
-$lang['i_failure'] = 'Some errors occurred while writing the configuration files. You may need to fix them manually before you can use <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_policy'] = 'Initial ACL policy';
$lang['i_pol0'] = 'ღია ვიკი (წაკითხვა, დაწერა და ატვირთვა შეუძლია ნებისმიერს)';
$lang['i_pol1'] = 'თავისუფალი ვიკი (წაკითხვა შეუძლია ყველას, დაწერა და ატვირთვა - რეგისტრირებულს)';
$lang['i_pol2'] = 'დახურული ვიკი (წაკითხვა, დაწერა და ატვირთვა შეუძლიათ მხოლოდ რეგისტრირებულებს)';
@@ -291,7 +231,6 @@ $lang['i_license'] = 'აირჩიეთ ლიცენზია
$lang['i_license_none'] = 'არ აჩვენოთ ლიცენზიის ინფორმაცია';
$lang['i_pop_field'] = 'დაგვეხმარეთ DokuWiki-ს აგუმჯობესებაში';
$lang['i_pop_label'] = 'თვეში ერთელ ინფორმაციის DokuWiki-ის ადმინისტრაციისთვის გაგზავნა';
-$lang['recent_global'] = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.';
$lang['years'] = '%d წლის უკან';
$lang['months'] = '%d თვის უკან';
$lang['weeks'] = '%d კვირის უკან';
@@ -306,17 +245,12 @@ $lang['media_file'] = 'ფაილი';
$lang['media_viewtab'] = 'ჩვენება';
$lang['media_edittab'] = 'რედაქტირება';
$lang['media_historytab'] = 'ისტორია';
-$lang['media_list_thumbs'] = 'Thumbnails';
-$lang['media_list_rows'] = 'Rows';
$lang['media_sort_name'] = 'სახელი';
$lang['media_sort_date'] = 'თარიღი';
-$lang['media_namespaces'] = 'Choose namespace';
$lang['media_files'] = 'ფაილები %s';
$lang['media_upload'] = 'ატვირთვა %s';
$lang['media_search'] = 'ძებნა %s';
$lang['media_view'] = '%s';
-$lang['media_viewold'] = '%s at %s';
$lang['media_edit'] = 'რედაქტირება %s';
$lang['media_history'] = 'ისტორია %s';
-$lang['media_meta_edited'] = 'metadata edited';
$lang['media_perm_read'] = 'თვენ არ გაქვთ უფლება წაიკითხოთ ეს მასალა';
diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php
index 5536d48d3..cb224d9a0 100644
--- a/inc/lang/kk/lang.php
+++ b/inc/lang/kk/lang.php
@@ -6,8 +6,8 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php
index 87ac30936..52e0e6a3d 100644
--- a/inc/lang/km/lang.php
+++ b/inc/lang/km/lang.php
@@ -61,7 +61,7 @@ $lang['reguexists'] = 'សុំអាទោស​ នាមប្រើនេ
$lang['regsuccess'] = 'អ្នកប្រើបានបង្កើតហើយ និងពាក្សសម្ងាតក៏បានផ្ញើទៀត។';
$lang['regsuccess2']= 'អ្នកប្រើបានបង្កើតហើយ។';
$lang['regmailfail']= 'មើលទៅដុចជាមានកំហុសក្នុង....សុំទាកទងអ្នកក្របក្រង';
-$lang['regbadmail'] = 'អ៊ីមេលអ្នកសាសេមិនត្រូវបញ្ជរ&mdash;បើអ្នកកិតថានេះជាកំហុសបដិបត្តិ សុំទាកទងអ្នកក្របគ្រោង។';
+$lang['regbadmail'] = 'អ៊ីមេលអ្នកសាសេមិនត្រូវបញ្ជរ—បើអ្នកកិតថានេះជាកំហុសបដិបត្តិ សុំទាកទងអ្នកក្របគ្រោង។';
$lang['regbadpass'] = 'គូពាក្សសម្ងាតមិនដូចគ្នាទេ សមសាកទៀត។';
$lang['regpwmail'] = 'ពាក្សសម្ងាតអ្នក';
$lang['reghere'] = 'អ្នកឥតមានបញ្ជីនាមបម្រើទេ? សុំចល់ចុះឈ្មោះធ្វើគណនីសម្របប្រើប្រស';
@@ -99,8 +99,8 @@ $lang['uploadbadcontent'] = 'ធាតុចំរុញឡើងមិនត្
$lang['uploadspam'] = 'ចំរុញឡើង បង្ខាំង ដៅយ ';
$lang['uploadxss'] = 'ចំរុញឡើង បង្ខាំង ';
$lang['deletesucc'] = 'ឯកសារ «%s» បានលុបហើយ។';
-$lang['deletefail'] = '«%s» មិនអាចលុបទេ&mdashមើល';
-$lang['mediainuse'] = 'ឯកសារ «%s» ឥតទានលុបទេ&mdashមានគេកំភងទេជាប់ប្រើ។';
+$lang['deletefail'] = '«%s» មិនអាចលុបទេ—មើល';
+$lang['mediainuse'] = 'ឯកសារ «%s» ឥតទានលុបទេ—មានគេកំភងទេជាប់ប្រើ។';
$lang['namespaces'] = 'នាមដ្ឋាន';
$lang['mediafiles'] = 'ឯកសារទំនេនៅក្នុង';
@@ -185,12 +185,9 @@ $lang['i_enableacl'] = 'បើកប្រើ (អនុសាស)';
$lang['i_superuser'] = 'អ្នកកំពូល';
$lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្តទៅទៀត ដល់អ្នកជួសជុលវា។';
$lang['i_modified'] = '';
-$lang['i_funcna'] = '<code>%s</code> ';
$lang['i_permfail'] = '<code>%s</code> មិនអាចសាស';
$lang['i_confexists'] = '<code>%s</code> មានហាយ';
$lang['i_writeerr'] = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកត្រវការពិនិត្យអធិក្រឹតិរបស់ថតនឹងឯកសារ។';
-$lang['i_badhash'] = '(hash=<code>%s</code>)';
-$lang['i_badval'] = '<code>%s</code>&mdash;';
$lang['i_success'] = '';
$lang['i_failure'] = 'ពលសាសារ';
$lang['i_policy'] = 'បញ្ជីអនុញ្ញតផ្ដើម';
diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt
index 8da90266c..70b24ac7b 100644
--- a/inc/lang/ko/edit.txt
+++ b/inc/lang/ko/edit.txt
@@ -1 +1 @@
-문서를 편집하고 ''저장''을 누르세요. 위키 구문은 [[wiki:syntax]]를 참고하세요. 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
+문서를 편집하고 ''저장''을 누르세요. 위키 구문은 [[wiki:syntax]]를 참조하세요. 문서를 **더 좋게 만들 자신이 있을 때**에만 편집하세요. 연습을 하고 싶다면 먼저 [[playground:playground|연습장]]에 가서 연습하세요. \ No newline at end of file
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index b46abf5d1..48ebfb1d6 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -77,9 +77,9 @@ $lang['nosecedit'] = '한 동안 문서가 바뀌었으며, 문단
$lang['searchcreatepage'] = '만약 원하는 문서를 찾지 못했다면, \'\'문서 만들기\'\'나 \'\'문서 편집\'\'을 사용해 검색어와 같은 이름의 문서를 만들거나 편집할 수 있습니다.';
$lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합니다.';
$lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
-$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
-$lang['regsuccess2'] = '사용자를 만들었습니다.';
-$lang['regfail'] = '사용자 계정이 만들어지지 않았습니다.';
+$lang['regsuccess'] = '사용자 계정을 만들었으며 비밀번호는 이메일로 보냈습니다.';
+$lang['regsuccess2'] = '사용자 계정을 만들었습니다.';
+$lang['regfail'] = '사용자 계정을 만들 수 없었습니다.';
$lang['regmailfail'] = '비밀번호를 이메일로 보내는 동안 오류가 발생했습니다. 관리자에게 문의해주세요!';
$lang['regbadmail'] = '주어진 이메일 주소가 잘못되었습니다 - 오류라고 생각하면 관리자에게 문의해주세요';
$lang['regbadpass'] = '두 주어진 비밀번호가 같지 않습니다. 다시 입력하세요.';
@@ -89,12 +89,12 @@ $lang['profna'] = '이 위키는 프로필 수정을 할 수 없
$lang['profnochange'] = '바뀐 내용이 없습니다.';
$lang['profnoempty'] = '빈 이름이나 이메일 주소는 허용하지 않습니다.';
$lang['profchanged'] = '프로필이 성공적으로 바뀌었습니다.';
-$lang['profnodelete'] = '이 위키는 사용자 삭제를 지원하지 않습니다';
+$lang['profnodelete'] = '이 위키는 사용자 계정 삭제를 지원하지 않습니다';
$lang['profdeleteuser'] = '계정 삭제';
$lang['profdeleted'] = '당신의 사용자 계정이 이 위키에서 삭제되었습니다';
$lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.';
$lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인';
-$lang['proffail'] = '사용자 설정이 업데이트되지 않았습니다.';
+$lang['proffail'] = '사용자 프로필이 업데이트되지 않았습니다.';
$lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정하세요';
$lang['resendna'] = '이 위키는 비밀번호 재설정을 지원하지 않습니다.';
$lang['resendpwd'] = '다음으로 새 비밀번호 보내기';
@@ -171,14 +171,14 @@ $lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다 -
$lang['namespaces'] = '이름공간';
$lang['mediafiles'] = '사용할 수 있는 파일 목록';
$lang['accessdenied'] = '이 문서를 볼 권한이 없습니다.';
-$lang['mediausage'] = '이 파일을 참고하려면 다음 문법을 사용하세요:';
+$lang['mediausage'] = '이 파일을 참조하려면 다음 문법을 사용하세요:';
$lang['mediaview'] = '원본 파일 보기';
$lang['mediaroot'] = '루트';
$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭해 선택할 수 있습니다.';
$lang['mediaextchange'] = '파일 확장자가 .%s에서 .%s(으)로 바뀌었습니다!';
$lang['reference'] = '다음을 참조';
$lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:';
-$lang['ref_hidden'] = '문서의 일부 참고는 읽을 수 있는 권한이 없습니다';
+$lang['ref_hidden'] = '문서의 일부 참조는 읽을 수 있는 권한이 없습니다';
$lang['hits'] = '조회 수';
$lang['quickhits'] = '일치하는 문서 이름';
$lang['toc'] = '목차';
@@ -286,7 +286,7 @@ $lang['i_enableacl'] = 'ACL 활성화 (권장)';
$lang['i_superuser'] = '슈퍼 사용자';
$lang['i_problems'] = '설치 관리자가 아래에 나와 있는 몇 가지 문제를 찾았습니다. 문제를 해결하지 전까지 설치를 계속할 수 없습니다.';
$lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 도쿠위키 설치에서만 동작됩니다.
-다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참고해서 설치하세요.';
+다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참조해서 설치하세요.';
$lang['i_funcna'] = '<code>%s</code> PHP 함수를 사용할 수 없습니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.';
$lang['i_phpver'] = 'PHP <code>%s</code> 버전은 필요한 <code>%s</code> 버전보다 오래되었습니다. PHP를 업그레이드할 필요가 있습니다.';
$lang['i_mbfuncoverload'] = '도쿠위키를 실행하려면 mbstring.func_overload를 php.ini에서 비활성화해야 합니다.';
@@ -341,6 +341,7 @@ $lang['media_perm_read'] = '죄송하지만 파일을 읽을 권한이 없
$lang['media_perm_upload'] = '죄송하지만 파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 판 올리기';
$lang['media_restore'] = '이 판으로 되돌리기';
+$lang['media_acl_warning'] = '이 목록은 ACL로 제한되어 있고 숨겨진 문서이기 때문에 완전하지 않을 수 있습니다.';
$lang['currentns'] = '현재 이름공간';
$lang['searchresult'] = '검색 결과';
$lang['plainhtml'] = '일반 HTML';
diff --git a/inc/lang/ku/admin.txt b/inc/lang/ku/admin.txt
deleted file mode 100644
index cfd21b217..000000000
--- a/inc/lang/ku/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Below you can find a list of administrative tasks available in DokuWiki.
-
diff --git a/inc/lang/ku/denied.txt b/inc/lang/ku/denied.txt
deleted file mode 100644
index 34cb8456a..000000000
--- a/inc/lang/ku/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permission Denied ======
-
-Sorry, you don't have enough rights to continue.
-
diff --git a/inc/lang/ku/editrev.txt b/inc/lang/ku/editrev.txt
deleted file mode 100644
index e6995713b..000000000
--- a/inc/lang/ku/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**You've loaded an old revision of the document!** If you save it, you will create a new version with this data.
----- \ No newline at end of file
diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php
index 7e21b5ba7..460b5e8a3 100644
--- a/inc/lang/ku/lang.php
+++ b/inc/lang/ku/lang.php
@@ -31,109 +31,16 @@ $lang['btn_update'] = 'Rojanekirin';
$lang['btn_delete'] = 'Jê bibe';
$lang['btn_back'] = 'Paş';
$lang['btn_backlink'] = 'Girêdanên paş';
-$lang['btn_subscribe'] = 'Subscribe Changes';
-$lang['btn_register'] = 'Register';
-$lang['loggedinas'] = 'Logged in as:';
-$lang['user'] = 'Username';
-$lang['pass'] = 'Password';
-$lang['passchk'] = 'once again';
-$lang['remember'] = 'Remember me';
-$lang['fullname'] = 'Full name';
-$lang['email'] = 'E-Mail';
-$lang['badlogin'] = 'Sorry, username or password was wrong.';
-
-$lang['regmissing'] = 'Sorry, you must fill in all fields.';
-$lang['reguexists'] = 'Sorry, a user with this login already exists.';
-$lang['regsuccess'] = 'The user has been created and the password was sent by email.';
-$lang['regsuccess2']= 'The user has been created.';
-$lang['regmailfail']= 'Looks like there was an error on sending the password mail. Please contact the admin!';
-$lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin';
-$lang['regbadpass'] = 'The two given passwords are not identically, please try again.';
-$lang['regpwmail'] = 'Your DokuWiki password';
-$lang['reghere'] = 'You don\'t have an account yet? Just get one';
-
-$lang['txt_upload'] = 'Select file to upload';
-$lang['txt_filename'] = 'Enter wikiname (optional)';
-$lang['txt_overwrt'] = 'Overwrite existing file';
-$lang['lockedby'] = 'Currently locked by';
-$lang['lockexpire'] = 'Lock expires at';
-$lang['js']['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.';
-
-$lang['js']['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?';
-
-$lang['rssfailed'] = 'An error occured while fetching this feed: ';
$lang['nothingfound']= 'Tiştek nehat dîtin.';
-
-$lang['mediaselect'] = 'Mediafile Selection';
-$lang['uploadsucc'] = 'Upload successful';
-$lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?';
-$lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!';
-$lang['uploadexist'] = 'File already exists. Nothing done.';
-$lang['deletesucc'] = 'The file "%s" has been deleted.';
-$lang['deletefail'] = '"%s" couldn\'t be deleted - check permissions.';
-$lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.';
-$lang['namespaces'] = 'Namespace';
-$lang['mediafiles'] = 'Available files in';
-
$lang['reference'] = 'Referansa';
-$lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:';
-$lang['ref_hidden'] = 'Some references are on pages you don\'t have permission to read';
-
-$lang['hits'] = 'Hits';
-$lang['quickhits'] = 'Matching pagenames';
$lang['toc'] = 'Tabloya Navêrokê';
-$lang['current'] = 'current';
-$lang['yours'] = 'Your Version';
-$lang['diff'] = 'show differences to current version';
$lang['line'] = 'Rêz';
$lang['breadcrumb'] = 'Şop:';
$lang['lastmod'] = 'Guherandina dawî:';
-$lang['by'] = 'by';
$lang['deleted'] = 'hat jê birin';
$lang['created'] = 'hat afirandin';
-$lang['restored'] = 'old revision restored (%s)';
$lang['summary'] = 'Kurteya guhartinê';
-
-$lang['mail_newpage'] = 'page added:';
-$lang['mail_changed'] = 'page changed:';
-
-$lang['js']['nosmblinks'] = 'Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.';
-
-$lang['qb_bold'] = 'Bold Text';
-$lang['qb_italic'] = 'Italic Text';
-$lang['qb_underl'] = 'Underlined Text';
-$lang['qb_code'] = 'Code Text';
-$lang['qb_strike'] = 'Strike-through Text';
-$lang['qb_h1'] = 'Level 1 Headline';
-$lang['qb_h2'] = 'Level 2 Headline';
-$lang['qb_h3'] = 'Level 3 Headline';
-$lang['qb_h4'] = 'Level 4 Headline';
-$lang['qb_h5'] = 'Level 5 Headline';
-$lang['qb_link'] = 'Internal Link';
-$lang['qb_extlink'] = 'External Link';
-$lang['qb_hr'] = 'Horizontal Rule';
-$lang['qb_ol'] = 'Ordered List Item';
-$lang['qb_ul'] = 'Unordered List Item';
-$lang['qb_media'] = 'Add Images and other files';
-$lang['qb_sig'] = 'Insert Signature';
-
-$lang['js']['del_confirm']= 'Delete this entry?';
-
-$lang['metaedit'] = 'Edit Metadata';
-$lang['metasaveerr'] = 'Writing metadata failed';
-$lang['metasaveok'] = 'Metadata saved';
-$lang['btn_img_backto'] = 'Back to %s';
-$lang['img_title'] = 'Title:';
-$lang['img_caption'] = 'Caption:';
-$lang['img_date'] = 'Date:';
-$lang['img_fname'] = 'Filename:';
-$lang['img_fsize'] = 'Size:';
-$lang['img_artist'] = 'Photographer:';
-$lang['img_copyr'] = 'Copyright:';
-$lang['img_format'] = 'Format:';
-$lang['img_camera'] = 'Camera:';
-$lang['img_keywords']= 'Keywords:';
$lang['searchcreatepage'] = "Heke tiştek nehatibe dîtin, tu dikarî dest bi nivîsandina rûpelekê nû bikî. Ji bo vê, ''Vê rûpelê biguherîne'' bitikîne.";
//Setup VIM: ex: et ts=2 :
diff --git a/inc/lang/ku/locked.txt b/inc/lang/ku/locked.txt
deleted file mode 100644
index af6347a96..000000000
--- a/inc/lang/ku/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Page locked ======
-
-This page is currently locked for editing by another user. You have to wait until this user finishes editing or the lock expires.
diff --git a/inc/lang/ku/login.txt b/inc/lang/ku/login.txt
deleted file mode 100644
index 2004ea198..000000000
--- a/inc/lang/ku/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
-
diff --git a/inc/lang/ku/mailtext.txt b/inc/lang/ku/mailtext.txt
deleted file mode 100644
index 44a3f6553..000000000
--- a/inc/lang/ku/mailtext.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-A page in your DokuWiki was added or changed. Here are the details:
-
-Date : @DATE@
-Browser : @BROWSER@
-IP-Address : @IPADDRESS@
-Hostname : @HOSTNAME@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-Edit Summary: @SUMMARY@
-User : @USER@
-
-@DIFF@
-
-
---
-This mail was generated by DokuWiki at
-@DOKUWIKIURL@
diff --git a/inc/lang/ku/norev.txt b/inc/lang/ku/norev.txt
deleted file mode 100644
index 0b21bf3f0..000000000
--- a/inc/lang/ku/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== No such revision ======
-
-The specified revision doesn't exist. Use the ''Old revisions'' button for a list of old revisions of this document.
-
diff --git a/inc/lang/ku/password.txt b/inc/lang/ku/password.txt
deleted file mode 100644
index 6d5cbe678..000000000
--- a/inc/lang/ku/password.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Hi @FULLNAME@!
-
-Here is your userdata for @TITLE@ at @DOKUWIKIURL@
-
-Login : @LOGIN@
-Password : @PASSWORD@
-
---
-This mail was generated by DokuWiki at
-@DOKUWIKIURL@
diff --git a/inc/lang/ku/read.txt b/inc/lang/ku/read.txt
deleted file mode 100644
index 9f56d81ad..000000000
--- a/inc/lang/ku/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong.
-
diff --git a/inc/lang/ku/register.txt b/inc/lang/ku/register.txt
deleted file mode 100644
index b65683bc2..000000000
--- a/inc/lang/ku/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Register as new user ======
-
-Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - your new password will be sent to it. The login name should be a valid [[doku>pagename|pagename]].
-
diff --git a/inc/lang/ku/revisions.txt b/inc/lang/ku/revisions.txt
deleted file mode 100644
index dd5f35b8e..000000000
--- a/inc/lang/ku/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Old Revisions ======
-
-These are the older revisons of the current document. To revert to an old revision, select it from below, click ''Edit this page'' and save it.
-
diff --git a/inc/lang/ku/showrev.txt b/inc/lang/ku/showrev.txt
deleted file mode 100644
index 3608de36b..000000000
--- a/inc/lang/ku/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**This is an old revision of the document!**
-----
diff --git a/inc/lang/ku/stopwords.txt b/inc/lang/ku/stopwords.txt
deleted file mode 100644
index bc6eb48ae..000000000
--- a/inc/lang/ku/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is a list of words the indexer ignores, one word per line
-# When you edit this file be sure to use UNIX line endings (single newline)
-# No need to include words shorter than 3 chars - these are ignored anyway
-# This list is based upon the ones found at http://www.ranks.nl/stopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php
index 35f8308d0..d6b828525 100644
--- a/inc/lang/la/lang.php
+++ b/inc/lang/la/lang.php
@@ -12,11 +12,11 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '`';
-$lang['singlequoteclosing'] = '\'';
-$lang['apostrophe'] = '´';
+$lang['singlequoteclosing'] = '´';
+$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Recensere hanc paginam';
$lang['btn_source'] = 'Fontem uidere';
$lang['btn_show'] = 'Ostendere paginam';
diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php
index 5621fe9c0..034d98b38 100644
--- a/inc/lang/mk/lang.php
+++ b/inc/lang/mk/lang.php
@@ -14,7 +14,9 @@ $lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '“';
-$lang['apostrophe'] = '\'';
+$lang['singlequoteopening'] = '’';
+$lang['singlequoteclosing'] = '‘';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Уреди ја страницата';
$lang['btn_source'] = 'Прикажи ја изворната страница';
$lang['btn_show'] = 'Прикажи страница';
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index e7d82af19..496144a27 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author François Kooman <fkooman.tuxed.net>
* @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl>
* @author Riny Heijdendael <riny@heijdendael.nl>
@@ -355,4 +355,4 @@ $lang['searchresult'] = 'Zoekresultaat';
$lang['plainhtml'] = 'Alleen HTML';
$lang['wikimarkup'] = 'Wiki Opmaak';
$lang['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.';
-$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "% s".';
+$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "%s".';
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index fddbf1419..9388a0a70 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Reidar Mosvold <Reidar.Mosvold@hit.no>
* @author Jorge Barrera Grandon <jorge@digitalwolves.org>
* @author Rune Rasmussen [http://www.syntaxerror.no/]
@@ -30,7 +30,7 @@ $lang['doublequoteopening'] = '«';
$lang['doublequoteclosing'] = '»';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Rediger denne siden';
$lang['btn_source'] = 'Vis kildekode';
$lang['btn_show'] = 'Vis siden';
@@ -347,7 +347,7 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s på %s';
$lang['media_edit'] = 'Rediger %s';
-$lang['media_history'] = '%vis historikk';
+$lang['media_history'] = '%s vis historikk';
$lang['media_meta_edited'] = 'metadata er endra';
$lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese filer.';
$lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 5c9acfa17..ae307b4fd 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Grzegorz Żur <grzegorz.zur@gmail.com>
* @author Mariusz Kujawski <marinespl@gmail.com>
* @author Maciej Kurczewski <pipijajko@gmail.com>
@@ -25,7 +25,7 @@ $lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‚';
$lang['singlequoteclosing'] = '’';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Edytuj stronę';
$lang['btn_source'] = 'Pokaż źródło strony';
$lang['btn_show'] = 'Pokaż stronę';
diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php
index 7c6395b4b..1603e7cec 100644
--- a/inc/lang/pt/lang.php
+++ b/inc/lang/pt/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
@@ -340,5 +340,5 @@ $lang['currentns'] = 'Namespace actual';
$lang['searchresult'] = 'Resultado da pesquisa';
$lang['plainhtml'] = 'HTML simples';
$lang['wikimarkup'] = 'Markup de Wiki';
-$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">% s </a>.';
+$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Não é possível analisar o parâmetro "%s".';
diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php
index 5953fccda..5dab68c69 100644
--- a/inc/lang/ro/lang.php
+++ b/inc/lang/ro/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Tiberiu Micu <tibimicu@gmx.net>
* @author Sergiu Baltariu <s_baltariu@yahoo.com>
* @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
@@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '„';
$lang['doublequoteclosing'] = '“';
$lang['singlequoteopening'] = '‚';
$lang['singlequoteclosing'] = '‘';
-$lang['apostrophe'] = '\'';
+$lang['apostrophe'] = '’';
$lang['btn_edit'] = 'Editează această pagină';
$lang['btn_source'] = 'Arată sursa paginii';
$lang['btn_show'] = 'Arată pagina';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 3a1fb2c56..40d3ffefe 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Yuri Pimenov <up@ftpsearch.lv>
* @author Igor Tarasov <tigr@mail15.com>
* @author Denis Simakov <akinoame1@gmail.com>
@@ -31,8 +31,9 @@
* @author Vitaly Filatenko <kot@hacktest.net>
* @author Alex P <alexander@lanos.co.uk>
* @author Nolf <m.kopachovets@gmail.com>
+ * @author Takumo <9206984@mail.ru>
*/
-$lang['encoding'] = ' utf-8';
+$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
$lang['doublequoteopening'] = '«';
$lang['doublequoteclosing'] = '»';
diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php
index 3d2146394..331819a66 100644
--- a/inc/lang/sq/lang.php
+++ b/inc/lang/sq/lang.php
@@ -12,10 +12,10 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
-$lang['singlequoteopening'] = '\'';
-$lang['singlequoteclosing'] = '\'';
+$lang['doublequoteopening'] = '„';
+$lang['doublequoteclosing'] = '“';
+$lang['singlequoteopening'] = '‘';
+$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'Redaktoni këtë faqe';
$lang['btn_source'] = 'Trego kodin burim të faqes';
diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php
index 41c4a94c3..422613ec7 100644
--- a/inc/lang/ta/lang.php
+++ b/inc/lang/ta/lang.php
@@ -2,12 +2,12 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Naveen Venugopal <naveen.venugopal.anu@gmail.com>
* @author Sri Saravana <saravanamuthaly@gmail.com>
*/
-$lang['doublequoteopening'] = '"';
-$lang['doublequoteclosing'] = '"';
+$lang['doublequoteopening'] = '&quot;';
+$lang['doublequoteclosing'] = '&quot;';
$lang['singlequoteopening'] = '\'';
$lang['singlequoteclosing'] = '\'';
$lang['apostrophe'] = '\'';
diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php
index e40b69454..59332f70b 100644
--- a/inc/lang/th/lang.php
+++ b/inc/lang/th/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Komgrit Niyomrath <n.komgrit@gmail.com>
* @author Arthit Suriyawongkul <arthit@gmail.com>
* @author Kittithat Arnontavilas <mrtomyum@gmail.com>
@@ -11,7 +11,7 @@
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
-$lang['doublequoteopening'] = '“ ';
+$lang['doublequoteopening'] = '“';
$lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index 6b4315c7c..2242b1792 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Selim Farsakoğlu <farsakogluselim@yahoo.de>
* @author Aydın Coşkuner <aydinweb@gmail.com>
* @author Cihan Kahveci <kahvecicihan@gmail.com>
@@ -290,8 +290,8 @@ $lang['i_confexists'] = '<code>%s</code> zaten var';
$lang['i_writeerr'] = '<code>%s</code> oluşturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluşturmalısınız.';
$lang['i_badhash'] = 'dokuwiki.php tanınamadı ya da değiştirilmiş (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - Yanlış veya boş değer';
-$lang['i_success'] = 'Kurulum başarıyla tamamlandı. Şimdi install.php dosyasını silebilirsiniz. <a href="doku.php">Yeni DokuWikiniz</a>i kullanabilirsiniz.';
-$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluştu. <a href="doku.php">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.';
+$lang['i_success'] = 'Kurulum başarıyla tamamlandı. Şimdi install.php dosyasını silebilirsiniz. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanabilirsiniz.';
+$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluştu. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.';
$lang['i_policy'] = 'İlk ACL ayarı';
$lang['i_pol0'] = 'Tamamen Açık Wiki (herkes okuyabilir, yazabilir ve dosya yükleyebilir)';
$lang['i_pol1'] = 'Açık Wiki (herkes okuyabilir, ancak sadece üye olanlar yazabilir ve dosya yükleyebilir)';
diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php
index 52edaafda..74a717bfe 100644
--- a/inc/lang/uk/lang.php
+++ b/inc/lang/uk/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Oleksiy Voronin <ovoronin@gmail.com>
* @author serg_stetsuk@ukr.net
* @author Oleksandr Kunytsia <okunia@gmail.com>
@@ -189,7 +189,6 @@ $lang['line'] = 'Рядок';
$lang['breadcrumb'] = 'Відвідано:';
$lang['youarehere'] = 'Ви тут:';
$lang['lastmod'] = 'В останнє змінено:';
-$lang['by'] = ' ';
$lang['deleted'] = 'знищено';
$lang['created'] = 'створено';
$lang['restored'] = 'відновлено стару ревізію (%s)';
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index bfe38b920..b69456ee7 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author chinsan <chinsan@mail2000.com.tw>
* @author Li-Jiun Huang <ljhuang.tw@gmail.com>
* @author http://www.chinese-tools.com/tools/converter-simptrad.html
@@ -296,8 +296,8 @@ $lang['i_writeerr'] = '無法建立 <code>%s</code>。您必須檢查
$lang['i_badhash'] = '無法辨識或已遭修改的 dokuwiki.php (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> —— 非法或空白的值';
$lang['i_success'] = '設定已完成。您現在可以刪除 install.php 檔案。繼續到
-<a href="doku.php">您的新 DokuWiki</a>.';
-$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用<a href="doku.php">您的新 Dokuwiki</a> 之前手動修正它們。';
+<a href="doku.php?id=wiki:welcome">您的新 DokuWiki</a>.';
+$lang['i_failure'] = '寫入設定檔時發生了一些錯誤。您必須在使用<a href="doku.php?id=wiki:welcome">您的新 Dokuwiki</a> 之前手動修正它們。';
$lang['i_policy'] = '初步的 ACL 政策';
$lang['i_pol0'] = '開放的 wiki (任何人可讀取、寫入、上傳)';
$lang['i_pol1'] = '公開的 wiki (任何人可讀取,註冊使用者可寫入與上傳)';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index 8f3a7bbf4..d179ad634 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -24,6 +24,7 @@
* @author xiqingongzi <Xiqingongzi@Gmail.com>
* @author qinghao <qingxianhao@gmail.com>
* @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de>
+ * @author Errol <errol@hotmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -89,6 +90,7 @@ $lang['regmissing'] = '对不起,您必须填写所有的字段。'
$lang['reguexists'] = '对不起,该用户名已经存在。';
$lang['regsuccess'] = '新用户已建立,密码将通过电子邮件发送给您。';
$lang['regsuccess2'] = '新用户已建立';
+$lang['regfail'] = '用户不能被创建。';
$lang['regmailfail'] = '发送密码邮件时产生错误。请联系管理员!';
$lang['regbadmail'] = '您输入的邮件地址有问题——如果您认为这是系统错误,请联系管理员。';
$lang['regbadpass'] = '您输入的密码与系统产生的不符,请重试。';
@@ -103,6 +105,7 @@ $lang['profdeleteuser'] = '删除账号';
$lang['profdeleted'] = '你的用户已经从这个 wiki 中删除';
$lang['profconfdelete'] = '我希望删除我的账户。<br/>这项操作无法撤销。';
$lang['profconfdeletemissing'] = '确认框未勾选';
+$lang['proffail'] = '用户设置没有更新。';
$lang['pwdforget'] = '忘记密码?立即获取新密码';
$lang['resendna'] = '本维基不支持二次发送密码。';
$lang['resendpwd'] = '设置新密码用于';
@@ -352,6 +355,7 @@ $lang['media_perm_read'] = '抱歉,您没有足够权限读取这些文
$lang['media_perm_upload'] = '抱歉,您没有足够权限来上传文件。';
$lang['media_update'] = '上传新版本';
$lang['media_restore'] = '恢复这个版本';
+$lang['media_acl_warning'] = '此列表可能不完全是由ACL限制和隐藏的页面。';
$lang['currentns'] = '当前命名空间';
$lang['searchresult'] = '搜索结果';
$lang['plainhtml'] = '纯HTML';
diff --git a/inc/pageutils.php b/inc/pageutils.php
index 375712661..a5bf039d5 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -243,7 +243,6 @@ function sectionID($title,&$check) {
return $title;
}
-
/**
* Wiki page existence check
*
@@ -251,9 +250,10 @@ function sectionID($title,&$check) {
*
* @author Chris Smith <chris@jalakai.co.uk>
*
- * @param string $id page id
- * @param string|int $rev empty or revision timestamp
- * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well)
+ * @param string $id page id
+ * @param string|int $rev empty or revision timestamp
+ * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well)
+ * @param bool $date_at
* @return bool exists?
*/
function page_exists($id,$rev='',$clean=true, $date_at=false) {
@@ -489,9 +489,11 @@ function resolve_id($ns,$id,$clean=true){
*
* @author Andreas Gohr <andi@splitbrain.org>
*
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative media id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
+ * @param string $ns namespace which is context of id
+ * @param string &$page (reference) relative media id, updated to resolved id
+ * @param bool &$exists (reference) updated with existance of media
+ * @param int|string $rev
+ * @param bool $date_at
*/
function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
$page = resolve_id($ns,$page);
@@ -502,7 +504,7 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
$rev = $medialog_rev;
}
}
-
+
$file = mediaFN($page,$rev);
$exists = file_exists($file);
}
@@ -512,9 +514,11 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative page id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
+ * @param string $ns namespace which is context of id
+ * @param string &$page (reference) relative page id, updated to resolved id
+ * @param bool &$exists (reference) updated with existance of media
+ * @param string $rev
+ * @param bool $date_at
*/
function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){
global $conf;
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index 35bdd0e3f..d7a3faef8 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -806,18 +806,26 @@ class Doku_Renderer extends DokuWiki_Plugin {
$url = $this->interwiki[$shortcut];
} else {
// Default to Google I'm feeling lucky
- $url = 'http://www.google.com/search?q={URL}&amp;btnI=lucky';
+ $url = 'https://www.google.com/search?q={URL}&amp;btnI=lucky';
$shortcut = 'go';
}
//split into hash and url part
- @list($reference, $hash) = explode('#', $reference, 2);
+ $hash = strrchr($reference, '#');
+ if($hash) {
+ $reference = substr($reference, 0, -strlen($hash));
+ $hash = substr($hash, 1);
+ }
//replace placeholder
if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#', $url)) {
//use placeholders
$url = str_replace('{URL}', rawurlencode($reference), $url);
- $url = str_replace('{NAME}', $reference, $url);
+ //wiki names will be cleaned next, otherwise urlencode unsafe chars
+ $url = str_replace('{NAME}', ($url{0} === ':') ? $reference :
+ preg_replace_callback('/[[\\\\\]^`{|}#%]/', function($match) {
+ return rawurlencode($match[0]);
+ }, $reference), $url);
$parsed = parse_url($reference);
if(!$parsed['port']) $parsed['port'] = 80;
$url = str_replace('{SCHEME}', $parsed['scheme'], $url);
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index d1bf91a02..c544d9e32 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -761,27 +761,40 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Render a CamelCase link
*
- * @param string $link The link name
+ * @param string $link The link name
+ * @param bool $returnonly whether to return html or write to doc attribute
* @see http://en.wikipedia.org/wiki/CamelCase
*/
- function camelcaselink($link) {
- $this->internallink($link, $link);
+ function camelcaselink($link, $returnonly = false) {
+ if($returnonly) {
+ return $this->internallink($link, $link, null, true);
+ } else {
+ $this->internallink($link, $link);
+ }
}
/**
* Render a page local link
*
- * @param string $hash hash link identifier
- * @param string $name name for the link
+ * @param string $hash hash link identifier
+ * @param string $name name for the link
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function locallink($hash, $name = null) {
+ function locallink($hash, $name = null, $returnonly = false) {
global $ID;
$name = $this->_getLinkTitle($name, $hash, $isImage);
$hash = $this->_headerToLink($hash);
$title = $ID.' ↵';
- $this->doc .= '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">';
- $this->doc .= $name;
- $this->doc .= '</a>';
+
+ $doc = '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">';
+ $doc .= $name;
+ $doc .= '</a>';
+
+ if($returnonly) {
+ return $doc;
+ } else {
+ $this->doc .= $doc;
+ }
}
/**
@@ -884,10 +897,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
/**
* Render an external link
*
- * @param string $url full URL with scheme
- * @param string|array $name name for the link, array for media file
+ * @param string $url full URL with scheme
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function externallink($url, $name = null) {
+ function externallink($url, $name = null, $returnonly = false) {
global $conf;
$name = $this->_getLinkTitle($name, $url, $isImage);
@@ -926,7 +940,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"';
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
@@ -934,12 +952,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* You may want to use $this->_resolveInterWiki() here
*
- * @param string $match original link - probably not much use
- * @param string|array $name name for the link, array for media file
- * @param string $wikiName indentifier (shortcut) for the remote wiki
- * @param string $wikiUri the fragment parsed from the original link
+ * @param string $match original link - probably not much use
+ * @param string|array $name name for the link, array for media file
+ * @param string $wikiName indentifier (shortcut) for the remote wiki
+ * @param string $wikiUri the fragment parsed from the original link
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function interwikilink($match, $name = null, $wikiName, $wikiUri) {
+ function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) {
global $conf;
$link = array();
@@ -977,16 +996,21 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = htmlspecialchars($link['url']);
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
* Link to windows share
*
- * @param string $url the link
- * @param string|array $name name for the link, array for media file
+ * @param string $url the link
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function windowssharelink($url, $name = null) {
+ function windowssharelink($url, $name = null, $returnonly = false) {
global $conf;
//simple setup
@@ -1010,7 +1034,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['url'] = $url;
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
@@ -1018,10 +1046,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
*
* Honors $conf['mailguard'] setting
*
- * @param string $address Email-Address
- * @param string|array $name name for the link, array for media file
+ * @param string $address Email-Address
+ * @param string|array $name name for the link, array for media file
+ * @param bool $returnonly whether to return html or write to doc attribute
*/
- function emaillink($address, $name = null) {
+ function emaillink($address, $name = null, $returnonly = false) {
global $conf;
//simple setup
$link = array();
@@ -1053,7 +1082,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$link['title'] = $title;
//output formatted
- $this->doc .= $this->_formatLink($link);
+ if($returnonly) {
+ return $this->_formatLink($link);
+ } else {
+ $this->doc .= $this->_formatLink($link);
+ }
}
/**
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 8650f974f..5b96d39fe 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -121,15 +121,21 @@ function p_cached_output($file, $format='xhtml', $id='') {
$cache = new cache_renderer($id, $file, $format);
if ($cache->useCache()) {
$parsed = $cache->retrieveCache(false);
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n";
+ }
} else {
$parsed = p_render($format, p_cached_instructions($file,false,$id), $info);
if ($info['cache'] && $cache->storeCache($parsed)) { // storeCache() attempts to save cachefile
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n";
+ }
}else{
$cache->removeCache(); //try to delete cachefile
- if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n";
+ if($conf['allowdebug'] && $format=='xhtml') {
+ $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n";
+ }
}
}
@@ -616,8 +622,9 @@ function p_sort_modes($a, $b){
* @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $mode
- * @param array|null|false $instructions
- * @param array $info returns render info like enabled toc and cache
+ * @param array|null|false $instructions
+ * @param array $info returns render info like enabled toc and cache
+ * @param string $date_at
* @return null|string rendered output
*/
function p_render($mode,$instructions,&$info,$date_at=''){
@@ -632,7 +639,7 @@ function p_render($mode,$instructions,&$info,$date_at=''){
if($date_at) {
$Renderer->date_at = $date_at;
}
-
+
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = getAcronyms();
diff --git a/inc/remote.php b/inc/remote.php
index 861353a19..3e032049d 100644
--- a/inc/remote.php
+++ b/inc/remote.php
@@ -234,7 +234,7 @@ class RemoteAPI {
global $INPUT;
if (!$conf['remote']) {
- return false;
+ throw new RemoteAccessDeniedException('server error. RPC server not enabled.',-32604); //should not be here,just throw
}
if(!$conf['useacl']) {
return true;
diff --git a/inc/template.php b/inc/template.php
index 7a25e12c8..f918d1a04 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -835,7 +835,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) {
print 'placeholder="'.$lang['btn_search'].'" ';
if(!$autocomplete) print 'autocomplete="off" ';
print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />';
- print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />';
+ print '<button type="submit" title="'.$lang['btn_search'].'">'.$lang['btn_search'].'</button>';
if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>';
print '</div></form>';
return true;
@@ -1614,6 +1614,12 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
/** @var Input $INPUT */
global $INPUT;
+ $action_structure = array(
+ 'page_tools' => array('edit', 'revert', 'revisions', 'backlink', 'subscribe'),
+ 'site_tools' => array('recent', 'media', 'index'),
+ 'user_tools' => array('login', 'register', 'profile', 'admin'),
+ );
+
echo '<form action="'.script().'" method="get" accept-charset="utf-8">';
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
@@ -1625,50 +1631,17 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
echo '<select name="do" class="edit quickselect" title="'.$lang['tools'].'">';
echo '<option value="">'.$empty.'</option>';
- echo '<optgroup label="'.$lang['page_tools'].'">';
- $act = tpl_get_action('edit');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('revert');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('revisions');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('backlink');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('subscribe');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
-
- echo '<optgroup label="'.$lang['site_tools'].'">';
- $act = tpl_get_action('recent');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('media');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('index');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
-
- echo '<optgroup label="'.$lang['user_tools'].'">';
- $act = tpl_get_action('login');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('register');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('profile');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
-
- $act = tpl_get_action('admin');
- if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
- echo '</optgroup>';
+ foreach($action_structure as $tools => $actions) {
+ echo '<optgroup label="'.$lang[$tools].'">';
+ foreach($actions as $action) {
+ $act = tpl_get_action($action);
+ if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>';
+ }
+ echo '</optgroup>';
+ }
echo '</select>';
- echo '<input type="submit" value="'.$button.'" />';
+ echo '<button type="submit">'.$button.'</button>';
echo '</div>';
echo '</form>';
}
diff --git a/install.php b/install.php
index 1a2d03dff..4de8093d6 100644
--- a/install.php
+++ b/install.php
@@ -243,7 +243,7 @@ function print_form($d){
</fieldset>
<fieldset id="process">
- <input class="button" type="submit" name="submit" value="<?php echo $lang['btn_save']?>" />
+ <button type="submit" name="submit"><?php echo $lang['btn_save']?></button>
</fieldset>
</form>
<?php
@@ -256,7 +256,7 @@ function print_retry() {
<form action="" method="get">
<fieldset>
<input type="hidden" name="l" value="<?php echo $LC ?>" />
- <input class="button" type="submit" value="<?php echo $lang['i_retry'];?>" />
+ <button type="submit"><?php echo $lang['i_retry'];?></button>
</fieldset>
</form>
<?php
@@ -619,7 +619,7 @@ function langsel(){
echo '<option value="'.$l.'" '.$sel.'>'.$l.'</option>';
}
echo '</select> ';
- echo '<input type="submit" value="'.$lang['btn_update'].'" />';
+ echo '<button type="submit">'.$lang['btn_update'].'</button>';
echo '</form>';
}
diff --git a/lib/exe/css.php b/lib/exe/css.php
index dc4d7d75c..3b8a524bc 100644
--- a/lib/exe/css.php
+++ b/lib/exe/css.php
@@ -32,25 +32,24 @@ function css_out(){
global $config_cascade;
global $INPUT;
- // decide from where to get the template
- $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t')));
- if(!$tpl) $tpl = $conf['template'];
-
- // load style.ini
- $styleini = css_styleini($tpl, $INPUT->bool('preview'));
-
- // find mediatypes
if ($INPUT->str('s') == 'feed') {
$mediatypes = array('feed');
$type = 'feed';
} else {
- $mediatypes = array_unique(array_merge(array('screen', 'all', 'print'), array_keys($styleini['stylesheets'])));
+ $mediatypes = array('screen', 'all', 'print');
$type = '';
}
+ // decide from where to get the template
+ $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t')));
+ if(!$tpl) $tpl = $conf['template'];
+
// The generated script depends on some dynamic options
$cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$INPUT->int('preview').DOKU_BASE.$tpl.$type,'.css');
+ // load styl.ini
+ $styleini = css_styleini($tpl, $INPUT->bool('preview'));
+
// if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility
if (isset($config_cascade['userstyle']['default'])) {
$config_cascade['userstyle']['screen'] = array($config_cascade['userstyle']['default']);
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index 814bbfe9c..f4baec994 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -332,7 +332,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
echo $this->getLang('acl_perms').' ';
$inl = $this->_html_select();
echo '<input type="text" name="acl_w" class="edit" value="'.(($inl)?'':hsc(ltrim($this->who,'@'))).'" />'.NL;
- echo '<input type="submit" value="'.$this->getLang('btn_select').'" class="button" />'.NL;
+ echo '<button type="submit">'.$this->getLang('btn_select').'</button>'.NL;
echo '</div>'.NL;
echo '<div id="acl__info">';
@@ -391,10 +391,10 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
echo $this->_html_checkboxes($current,empty($this->ns),'acl');
if(is_null($current)){
- echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_save'].'" />'.NL;
+ echo '<button type="submit" name="cmd[save]">'.$lang['btn_save'].'</button>'.NL;
}else{
- echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_update'].'" />'.NL;
- echo '<input type="submit" name="cmd[del]" class="button" value="'.$lang['btn_delete'].'" />'.NL;
+ echo '<button type="submit" name="cmd[save]">'.$lang['btn_update'].'</button>'.NL;
+ echo '<button type="submit" name="cmd[del]">'.$lang['btn_delete'].'</button>'.NL;
}
echo '</fieldset>';
@@ -641,7 +641,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
echo '<tr>';
echo '<th class="action" colspan="4">';
- echo '<input type="submit" value="'.$lang['btn_update'].'" name="cmd[update]" class="button" />';
+ echo '<button type="submit" name="cmd[update]">'.$lang['btn_update'].'</button>';
echo '</th>';
echo '</tr>';
echo '</table>';
@@ -682,7 +682,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
*/
function _acl_add($acl_scope, $acl_user, $acl_level){
global $config_cascade;
- $acl_config = file_get_contents($config_cascade['acl']['default']);
$acl_user = auth_nameencode($acl_user,true);
// max level for pagenames is edit
@@ -692,9 +691,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
$new_acl = "$acl_scope\t$acl_user\t$acl_level\n";
- $new_config = $acl_config.$new_acl;
-
- return io_saveFile($config_cascade['acl']['default'], $new_config);
+ return io_saveFile($config_cascade['acl']['default'], $new_acl, true);
}
/**
@@ -704,15 +701,11 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
*/
function _acl_del($acl_scope, $acl_user){
global $config_cascade;
- $acl_config = file($config_cascade['acl']['default']);
$acl_user = auth_nameencode($acl_user,true);
$acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$';
- // save all non!-matching
- $new_config = preg_grep("/$acl_pattern/", $acl_config, PREG_GREP_INVERT);
-
- return io_saveFile($config_cascade['acl']['default'], join('',$new_config));
+ return io_deleteFromFile($config_cascade['acl']['default'], "/$acl_pattern/", true);
}
/**
diff --git a/lib/plugins/acl/lang/ja/help.txt b/lib/plugins/acl/lang/ja/help.txt
index f7867f8e2..a1f03a3af 100644
--- a/lib/plugins/acl/lang/ja/help.txt
+++ b/lib/plugins/acl/lang/ja/help.txt
@@ -1,11 +1,8 @@
-=== クイックヘルプ: ===
+=== 操作案内 ===
-このページでは、Wiki内の名前空間とページに対する権限を追加・削除することができます。
+このページでは、Wiki 内の名前空間とページに対する権限を追加・削除することができます。
+ * 左側のボックスには存在する名前空間とページが表示されています。
+ * 上部のフォームを使って、選択したユーザーもしくはグループの権限を閲覧・変更することができます。
+ * 下部の一覧は、現在設定されているアクセス制御のルールを表示します。この一覧を使って、複数のルールを素早く変更・削除することが可能です。
-左側のボックスには存在する名前空間とページが表示されています。
-
-上記のフォームを使って、選択したユーザーもしくはグループの権限を閲覧・変更することができます。
-
-以下のテープルには、現在設定されているアクセスコントロールのルールが表示されています。このテーブルを使って、複数のルールを素早く変更・削除することが可能です。
-
-DokuWikiのアクセスコントロールについては、[[doku>acl|official documentation on ACL]] をお読み下さい。 \ No newline at end of file
+DokuWiki のアクセス制御については、[[doku>ja:acl|アクセス制御リスト (ACL)の公式解説]]をお読み下さい。 \ No newline at end of file
diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php
index 42449428f..031686f95 100644
--- a/lib/plugins/acl/remote.php
+++ b/lib/plugins/acl/remote.php
@@ -8,7 +8,7 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin {
/**
* Returns details about the remote plugin methods
*
- * @return array
+ * @return array Information about all provided methods. {@see RemoteAPI}
*/
public function _getMethods() {
return array(
diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js
index 58598b1e0..86badffdd 100644
--- a/lib/plugins/acl/script.js
+++ b/lib/plugins/acl/script.js
@@ -16,7 +16,7 @@ var dw_acl = {
}
jQuery('#acl__user select').change(dw_acl.userselhandler);
- jQuery('#acl__user input[type=submit]').click(dw_acl.loadinfo);
+ jQuery('#acl__user button').click(dw_acl.loadinfo);
$tree = jQuery('#acl__tree');
$tree.dw_tree({toggle_selector: 'img',
diff --git a/lib/plugins/action.php b/lib/plugins/action.php
index 4b5eef60a..23d94a509 100644
--- a/lib/plugins/action.php
+++ b/lib/plugins/action.php
@@ -16,6 +16,8 @@ class DokuWiki_Action_Plugin extends DokuWiki_Plugin {
/**
* Registers a callback function for a given event
+ *
+ * @param Doku_Event_Handler $controller
*/
public function register(Doku_Event_Handler $controller) {
trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING);
diff --git a/lib/plugins/authad/lang/de-informal/lang.php b/lib/plugins/authad/lang/de-informal/lang.php
index e9361d5fe..973c992d2 100644
--- a/lib/plugins/authad/lang/de-informal/lang.php
+++ b/lib/plugins/authad/lang/de-informal/lang.php
@@ -4,5 +4,8 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Andreas Gohr <gohr@cosmocode.de>
+ * @author rnck <dokuwiki@rnck.de>
*/
$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.';
+$lang['passchangefail'] = 'Das Passwort konnte nicht geändert werden. Eventuell wurde die Passwort-Richtlinie nicht eingehalten.';
+$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.';
diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php
index 11f52a414..93a65667e 100644
--- a/lib/plugins/authad/lang/de/lang.php
+++ b/lib/plugins/authad/lang/de/lang.php
@@ -4,6 +4,9 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Andreas Gohr <gohr@cosmocode.de>
+ * @author Philip Knack <p.knack@stollfuss.de>
*/
$lang['domain'] = 'Anmelde-Domäne';
$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.';
+$lang['passchangefail'] = 'Kennwortänderung fehlgeschlagen. Entspricht das Kennwort der Richtlinie?';
+$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.';
diff --git a/lib/plugins/authad/lang/es/lang.php b/lib/plugins/authad/lang/es/lang.php
index ffbff49a1..0ad262c21 100644
--- a/lib/plugins/authad/lang/es/lang.php
+++ b/lib/plugins/authad/lang/es/lang.php
@@ -5,6 +5,9 @@
*
* @author Juan De La Cruz <juann.dlc@gmail.com>
* @author Gerardo Zamudio <gerardo@gerardozamudio.net>
+ * @author Mauricio Segura <maose38@yahoo.es>
*/
$lang['domain'] = 'Dominio de inicio';
$lang['authpwdexpire'] = 'Su contraseña caducara en %d días, debería cambiarla lo antes posible';
+$lang['passchangefail'] = 'Error al cambiar la contraseña. ¿Tal vez no se cumplió la directiva de contraseñas?';
+$lang['connectfail'] = 'Error al conectar con el servidor de Active Directory.';
diff --git a/lib/plugins/authad/lang/et/lang.php b/lib/plugins/authad/lang/et/lang.php
index 6dda19360..94fe9ed8e 100644
--- a/lib/plugins/authad/lang/et/lang.php
+++ b/lib/plugins/authad/lang/et/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Janar Leas <janar.leas@eesti.ee>
*/
-$lang['authpwdexpire'] = 'Sinu salasõna aegub %päeva pärast, võiksid seda peatselt muuta.';
+$lang['authpwdexpire'] = 'Sinu salasõna aegub %d päeva pärast, võiksid seda peatselt muuta.';
diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php
index 616d1ab4b..ac8fbcb5c 100644
--- a/lib/plugins/authad/lang/he/lang.php
+++ b/lib/plugins/authad/lang/he/lang.php
@@ -2,9 +2,9 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author tomer <tomercarolldergicz@gmail.com>
* @author Menashe Tomer <menashesite@gmail.com>
*/
-$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימים, אתה צריך לשנות את זה בקרוב.';
+$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב %d ימים, אתה צריך לשנות את זה בקרוב.';
$lang['passchangefail'] = 'שגיאה בשינוי סיסמה. האם הסיסמה תואמת למדיניות המערכת?';
diff --git a/lib/plugins/authad/lang/ko/lang.php b/lib/plugins/authad/lang/ko/lang.php
index c119fabc5..7e9b22f40 100644
--- a/lib/plugins/authad/lang/ko/lang.php
+++ b/lib/plugins/authad/lang/ko/lang.php
@@ -7,3 +7,5 @@
*/
$lang['domain'] = '로그온 도메인';
$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났으며, 비밀번호를 곧 바꿔야 합니다.';
+$lang['passchangefail'] = '비밀번호를 바꾸는 데 실패했습니다. 비밀번호 정책을 따르지 않았나요?';
+$lang['connectfail'] = 'Active Directory 서버에 연결하는 데 실패했습니다.';
diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php
index 6256eb597..c5756890d 100644
--- a/lib/plugins/authad/lang/pt/settings.php
+++ b/lib/plugins/authad/lang/pt/settings.php
@@ -2,14 +2,14 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author André Neves <drakferion@gmail.com>
* @author Murilo <muriloricci@hotmail.com>
* @author Paulo Silva <paulotsilva@yahoo.com>
* @author Guido Salatino <guidorafael23@gmail.com>
*/
$lang['account_suffix'] = 'O sufixo da sua conta. Por exemplo, <code>@my.domain.org</code>';
-$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </ code>';
+$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </code>';
$lang['domain_controllers'] = 'Uma lista separada por vírgulas de Controladores de Domínio (AD DC). Ex.: <code>srv1.domain.org,srv2.domain.org</code>';
$lang['admin_username'] = 'Um utilizador com privilégios na Active Directory que tenha acesso aos dados de todos os outros utilizadores. Opcional, mas necessário para certas ações como enviar emails de subscrição.';
$lang['admin_password'] = 'A senha para o utilizador acima.';
diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php
index 6a3f6e995..fe56be2bf 100644
--- a/lib/plugins/authad/lang/ru/lang.php
+++ b/lib/plugins/authad/lang/ru/lang.php
@@ -4,6 +4,9 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
+ * @author Takumo <9206984@mail.ru>
*/
$lang['domain'] = 'Домен';
$lang['authpwdexpire'] = 'Действие вашего пароля истекает через %d дней. Вы должны изменить его как можно скорее';
+$lang['passchangefail'] = 'Не удалось изменить пароль. Возможно, он не соответствует требованиям к паролю.';
+$lang['connectfail'] = 'Невозможно соединиться с сервером AD.';
diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php
index 4f3794999..df1a7a7f7 100644
--- a/lib/plugins/authad/lang/zh/lang.php
+++ b/lib/plugins/authad/lang/zh/lang.php
@@ -4,6 +4,9 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author lainme <lainme993@gmail.com>
+ * @author Errol <errol@hotmail.com>
*/
$lang['domain'] = '登录域';
$lang['authpwdexpire'] = '您的密码将在 %d 天内过期,请尽快更改';
+$lang['passchangefail'] = '密码更改失败。是不是密码规则不符合?';
+$lang['connectfail'] = '无法连接到Active Directory服务器。';
diff --git a/lib/plugins/authldap/lang/de/lang.php b/lib/plugins/authldap/lang/de/lang.php
new file mode 100644
index 000000000..74197f918
--- /dev/null
+++ b/lib/plugins/authldap/lang/de/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Philip Knack <p.knack@stollfuss.de>
+ */
+$lang['connectfail'] = 'LDAP-Verbindung scheitert: %s';
+$lang['domainfail'] = 'LDAP kann nicht dein Benutzer finden dn';
diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php
index 933189c40..df1974867 100644
--- a/lib/plugins/authldap/lang/de/settings.php
+++ b/lib/plugins/authldap/lang/de/settings.php
@@ -5,6 +5,7 @@
*
* @author Matthias Schulte <dokuwiki@lupo49.de>
* @author christian studer <cstuder@existenz.ch>
+ * @author Philip Knack <p.knack@stollfuss.de>
*/
$lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).';
$lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.';
@@ -28,3 +29,4 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER';
$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING';
$lang['deref_o_2'] = 'LDAP_DEREF_FINDING';
$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS';
+$lang['referrals_o_-1'] = 'Standard verwenden';
diff --git a/lib/plugins/authldap/lang/es/lang.php b/lib/plugins/authldap/lang/es/lang.php
new file mode 100644
index 000000000..e68a42603
--- /dev/null
+++ b/lib/plugins/authldap/lang/es/lang.php
@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Mauricio Segura <maose38@yahoo.es>
+ */
+$lang['connectfail'] = 'LDAP no se puede conectar: %5';
diff --git a/lib/plugins/authldap/lang/ja/lang.php b/lib/plugins/authldap/lang/ja/lang.php
new file mode 100644
index 000000000..aeeb6c75e
--- /dev/null
+++ b/lib/plugins/authldap/lang/ja/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Hideaki SAWADA <chuno@live.jp>
+ */
+$lang['connectfail'] = 'LDAP に接続できません: %s';
+$lang['domainfail'] = 'LDAP で user dn を発見できません。';
diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php
index 717b5a6d9..99a70de79 100644
--- a/lib/plugins/authldap/lang/ja/settings.php
+++ b/lib/plugins/authldap/lang/ja/settings.php
@@ -23,10 +23,15 @@ $lang['binddn'] = '匿名バインドでは不十分な場合、
$lang['bindpw'] = '上記ユーザーのパスワード';
$lang['userscope'] = 'ユーザー検索の範囲を限定させる';
$lang['groupscope'] = 'グループ検索の範囲を限定させる';
+$lang['userkey'] = 'ユーザー名を示す属性。userfilter と一致している必要があります。';
$lang['groupkey'] = 'ユーザー属性をグループのメンバーシップから設定します(代わりに標準のADグループ)。
例えば、部署や電話番号などです。';
+$lang['modPass'] = 'DokuWiki から LDAP パスワードの変更が可能?';
$lang['debug'] = 'エラーに関して追加のデバッグ情報を表示する。';
$lang['deref_o_0'] = 'LDAP_DEREF_NEVER';
$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING';
$lang['deref_o_2'] = 'LDAP_DEREF_FINDING';
$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS';
+$lang['referrals_o_-1'] = 'デフォルトを使用する';
+$lang['referrals_o_0'] = 'referral に従わない';
+$lang['referrals_o_1'] = 'referral に従う';
diff --git a/lib/plugins/authldap/lang/ko/lang.php b/lib/plugins/authldap/lang/ko/lang.php
new file mode 100644
index 000000000..3c6722a81
--- /dev/null
+++ b/lib/plugins/authldap/lang/ko/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Myeongjin <aranet100@gmail.com>
+ */
+$lang['connectfail'] = 'LDAP가 연결할 수 없습니다: %s';
+$lang['domainfail'] = 'LDAP가 사용자 DN을 찾을 수 없습니다';
diff --git a/lib/plugins/authldap/lang/ru/lang.php b/lib/plugins/authldap/lang/ru/lang.php
new file mode 100644
index 000000000..c05ed3b15
--- /dev/null
+++ b/lib/plugins/authldap/lang/ru/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Takumo <9206984@mail.ru>
+ */
+$lang['connectfail'] = 'Ошибка соединения LDAP с %s';
+$lang['domainfail'] = 'Не найдено имя пользователя LDAP (dn)';
diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php
index e3d85cb87..dcbbace8c 100644
--- a/lib/plugins/authldap/lang/zh-tw/settings.php
+++ b/lib/plugins/authldap/lang/zh-tw/settings.php
@@ -2,15 +2,15 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author syaoranhinata@gmail.com
*/
$lang['server'] = '您的 LDAP 伺服器。填寫主機名稱 (<code>localhost</code>) 或完整的 URL (<code>ldap://server.tld:389</code>)';
$lang['port'] = 'LDAP 伺服器端口 (若上方沒填寫完整的 URL)';
$lang['usertree'] = '到哪裏尋找使用者帳號?如: <code>ou=People, dc=server, dc=tld</code>';
$lang['grouptree'] = '到哪裏尋找使用者群組?如: <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter'] = '用於搜索使用者賬號的 LDAP 篩選器。如: <code>(&(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter'] = '用於搜索群組的 LDAP 篩選器。例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['userfilter'] = '用於搜索使用者賬號的 LDAP 篩選器。如: <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = '用於搜索群組的 LDAP 篩選器。例如 <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
$lang['version'] = '使用的通訊協定版本。您可能要設置為 <code>3</code>';
$lang['starttls'] = '使用 TLS 連接嗎?';
$lang['referrals'] = '是否允許引用 (referrals)?';
diff --git a/lib/plugins/authldap/lang/zh/lang.php b/lib/plugins/authldap/lang/zh/lang.php
new file mode 100644
index 000000000..ef727497e
--- /dev/null
+++ b/lib/plugins/authldap/lang/zh/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Errol <errol@hotmail.com>
+ */
+$lang['connectfail'] = 'LDAP 无法连接: %s';
+$lang['domainfail'] = 'LDAP 无法找到你的用户 dn';
diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php
index d4ea5c615..11cba4f55 100644
--- a/lib/plugins/authldap/lang/zh/settings.php
+++ b/lib/plugins/authldap/lang/zh/settings.php
@@ -2,16 +2,17 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author lainme <lainme993@gmail.com>
* @author oott123 <ip.192.168.1.1@qq.com>
+ * @author Errol <errol@hotmail.com>
*/
$lang['server'] = '您的 LDAP 服务器。填写主机名 (<code>localhost</code>) 或者完整的 URL (<code>ldap://server.tld:389</code>)';
$lang['port'] = 'LDAP 服务器端口 (如果上面没有给出完整的 URL)';
$lang['usertree'] = '何处查找用户账户。例如 <code>ou=People, dc=server, dc=tld</code>';
$lang['grouptree'] = '何处查找用户组。例如 <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter'] = '用于搜索用户账户的 LDAP 筛选器。例如 <code>(&(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter'] = '用于搜索组的 LDAP 筛选器。例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['userfilter'] = '用于搜索用户账户的 LDAP 筛选器。例如 <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = '用于搜索组的 LDAP 筛选器。例如 <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
$lang['version'] = '使用的协议版本。您或许需要设置为 <code>3</code>';
$lang['starttls'] = '使用 TLS 连接?';
$lang['referrals'] = '是否允许引用 (referrals)?';
@@ -21,6 +22,7 @@ $lang['bindpw'] = '上述用户的密码';
$lang['userscope'] = '限制用户搜索的范围';
$lang['groupscope'] = '限制组搜索的范围';
$lang['groupkey'] = '根据任何用户属性得来的组成员(而不是标准的 AD 组),例如根据部门或者电话号码得到的组。';
+$lang['modPass'] = ' LDAP密码可以由dokuwiki修改吗?';
$lang['debug'] = '有错误时显示额外的调试信息';
$lang['deref_o_0'] = 'LDAP_DEREF_NEVER';
$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING';
diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php
index 819b98458..c5c3c657a 100644
--- a/lib/plugins/authmysql/lang/de/lang.php
+++ b/lib/plugins/authmysql/lang/de/lang.php
@@ -5,7 +5,9 @@
*
* @author Noel Tilliot <noeltilliot@byom.de>
* @author Hendrik Diel <diel.hendrik@gmail.com>
+ * @author Philip Knack <p.knack@stollfuss.de>
*/
+$lang['connectfail'] = 'Verbindung zur Datenbank fehlgeschlagen.';
$lang['userexists'] = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.';
$lang['usernotexists'] = 'Sorry, dieser Nutzer existiert nicht.';
$lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
diff --git a/lib/plugins/authmysql/lang/ja/lang.php b/lib/plugins/authmysql/lang/ja/lang.php
new file mode 100644
index 000000000..a2348f2f3
--- /dev/null
+++ b/lib/plugins/authmysql/lang/ja/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Hideaki SAWADA <chuno@live.jp>
+ */
+$lang['connectfail'] = 'データベースへの接続に失敗しました。';
+$lang['userexists'] = 'このログイン名のユーザーが既に存在しています。';
+$lang['usernotexists'] = 'そのユーザーは存在しません。';
+$lang['writefail'] = 'ユーザーデータを変更できません。Wiki の管理者に連絡してください。';
diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php
index e5d5689df..6bc3f9a14 100644
--- a/lib/plugins/authmysql/lang/ja/settings.php
+++ b/lib/plugins/authmysql/lang/ja/settings.php
@@ -11,7 +11,7 @@ $lang['password'] = 'MySQL 接続用ユーザーのパスワード'
$lang['database'] = '使用するデータベース名';
$lang['charset'] = 'データベースの文字コード';
$lang['debug'] = 'デバック情報を表示する';
-$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 &#x25;{pass} を平文とする(DokiWiki側で暗号化しない)';
+$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 を平文とする(DokiWiki側で暗号化しない)';
$lang['TablesToLock'] = '書き込み時にロックするテーブル(コンマ区切りで列挙)';
$lang['checkPass'] = 'パスワードの照合に用いる SQL ステートメント';
$lang['getUserInfo'] = 'ユーザー情報の取得に用いる SQL ステートメント';
diff --git a/lib/plugins/authmysql/lang/ko/lang.php b/lib/plugins/authmysql/lang/ko/lang.php
index a2ad278c1..d07d58388 100644
--- a/lib/plugins/authmysql/lang/ko/lang.php
+++ b/lib/plugins/authmysql/lang/ko/lang.php
@@ -4,8 +4,9 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author hyeonsoft <hyeonsoft@live.co.kr>
+ * @author Myeongjin <aranet100@gmail.com>
*/
$lang['connectfail'] = '데이터베이스에 연결하는 데 실패했습니다.';
-$lang['userexists'] = '이 계정으로 이미 로그인 된 사용자가 있습니다.';
-$lang['usernotexists'] = '이 계정은 존재하지 않습니다.';
-$lang['writefail'] = '사용자 데이터를 수정할 수 없습니다. 관리자에게 문의하십시오.';
+$lang['userexists'] = '죄송하지만 이 계정으로 이미 로그인한 사용자가 있습니다.';
+$lang['usernotexists'] = '죄송하지만 해당 사용자가 존재하지 않습니다.';
+$lang['writefail'] = '사용자 데이터를 수정할 수 없습니다. 위키 관리자에게 문의하시기 바랍니다';
diff --git a/lib/plugins/authmysql/lang/ru/lang.php b/lib/plugins/authmysql/lang/ru/lang.php
new file mode 100644
index 000000000..75b5613f5
--- /dev/null
+++ b/lib/plugins/authmysql/lang/ru/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Takumo <9206984@mail.ru>
+ */
+$lang['connectfail'] = 'Ошибка соединения с базой данных.';
+$lang['userexists'] = 'Извините, пользователь с таким логином уже существует.';
+$lang['usernotexists'] = 'Извините, такой пользователь не существует.';
+$lang['writefail'] = 'Невозможно изменить данные пользователя. Сообщите об этом администратору Вики.';
diff --git a/lib/plugins/authmysql/lang/zh/lang.php b/lib/plugins/authmysql/lang/zh/lang.php
new file mode 100644
index 000000000..044fe6d60
--- /dev/null
+++ b/lib/plugins/authmysql/lang/zh/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Errol <errol@hotmail.com>
+ */
+$lang['connectfail'] = '连接数据库失败';
+$lang['userexists'] = '抱歉,用户名已被使用。';
+$lang['usernotexists'] = '抱歉,用户不存在。';
+$lang['writefail'] = '无法修改用户数据。请通知管理员';
diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php
index d7a5f6cf2..c4a82a179 100644
--- a/lib/plugins/authpgsql/lang/ja/settings.php
+++ b/lib/plugins/authpgsql/lang/ja/settings.php
@@ -11,7 +11,7 @@ $lang['user'] = 'PostgreSQL 接続用ユーザー名';
$lang['password'] = 'PostgreSQL 接続用ユーザーのパスワード';
$lang['database'] = '使用するデータベース名';
$lang['debug'] = 'デバック情報を表示する';
-$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 &#x25;{pass} を平文とする(DokiWiki側で暗号化しない)';
+$lang['forwardClearPass'] = '以下で定義する SQL ステートメントにおいて, パスワード変数 を平文とする(DokiWiki側で暗号化しない)';
$lang['checkPass'] = 'パスワードの照合に用いる SQL ステートメント';
$lang['getUserInfo'] = 'ユーザー情報の取得に用いる SQL ステートメント';
$lang['getGroups'] = 'ユーザーが所属する全てのグループの取得に用いる SQL ステートメント';
diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index bd46c61a7..8ec632dad 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -188,15 +188,9 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
$userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']);
- if(!$this->deleteUsers(array($user))) {
- msg($this->getLang('writefail'), -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
- // Should replace the delete/save hybrid modify with an atomic io_replaceInFile
+ if(!io_replaceInFile($config_cascade['plainauth.users']['default'], '/^'.$user.':/', $userline, true)) {
+ msg('There was an error modifying your user data. You may need to register again.', -1);
+ // FIXME, io functions should be fail-safe so existing data isn't lost
$ACT = 'register';
return false;
}
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index 2ef570b68..ec8ee0b84 100644
--- a/lib/plugins/config/admin.php
+++ b/lib/plugins/config/admin.php
@@ -212,8 +212,8 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
if (!$this->_config->locked) {
ptln(' <input type="hidden" name="save" value="1" />');
- ptln(' <input type="submit" name="submit" class="button" value="'.$lang['btn_save'].'" accesskey="s" />');
- ptln(' <input type="reset" class="button" value="'.$lang['btn_reset'].'" />');
+ ptln(' <button type="submit" name="submit" accesskey="s">'.$lang['btn_save'].'</button>');
+ ptln(' <button type="reset">'.$lang['btn_reset'].'</button>');
}
ptln('</p>');
diff --git a/lib/plugins/config/lang/ar/intro.txt b/lib/plugins/config/lang/ar/intro.txt
index d447ec315..15905189f 100644
--- a/lib/plugins/config/lang/ar/intro.txt
+++ b/lib/plugins/config/lang/ar/intro.txt
@@ -4,4 +4,4 @@
الاعدادات الظاهرة بخلفية حمراء فاتحة اعدادات محمية ولا يمكن تغييرها بهذه الاضافة. الاعدادات الظاهرة بخلفية زرقاء هي القيم الافتراضية والاعدادات الظاهرة بخلفية بيضاء خصصت لهذا التثبيت محليا. الاعدادات الزرقاء والبيضاء يمكن تغييرها.
-تأكد من ضغط زر **SAVE** قبل ترك الصفحة وإلا ستضيع تعديلاتك. \ No newline at end of file
+تأكد من ضغط زر **SAVE** قبل ترك الصفحة وإلا ستضيع تعديلاتك.
diff --git a/lib/plugins/config/lang/ca-valencia/intro.txt b/lib/plugins/config/lang/ca-valencia/intro.txt
index 40729e5fe..6dd461db3 100644
--- a/lib/plugins/config/lang/ca-valencia/intro.txt
+++ b/lib/plugins/config/lang/ca-valencia/intro.txt
@@ -7,4 +7,4 @@ Per a més informació al voltant d'este plúgin vaja a [[doku>config]].
Els ajusts mostrats en un fondo roig claret estan protegits i no els pot
modificar en este plúgin. Els ajusts mostrats en un fondo blau tenen els valors predeterminats i els ajusts mostrats en un fondo blanc han segut modificats localment per ad esta instalació. Abdós ajusts, blaus i blancs, es poden modificar.
-Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pàgina o perdrà els canvis que haja fet. \ No newline at end of file
+Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pàgina o perdrà els canvis que haja fet.
diff --git a/lib/plugins/config/lang/cs/intro.txt b/lib/plugins/config/lang/cs/intro.txt
index 63381b84e..f98a62a6e 100644
--- a/lib/plugins/config/lang/cs/intro.txt
+++ b/lib/plugins/config/lang/cs/intro.txt
@@ -5,4 +5,3 @@ Tuto stránku můžete používat ke správě nastavení vaší instalace DokuWi
Položky se světle červeným pozadím jsou chráněné a nelze je upravovat tímto pluginem. Položky s modrým pozadím jsou výchozí hodnoty a položky s bílým pozadím byly nastaveny lokálně v této konkrétní instalaci. Modré i bílé položky je možné upravovat.
Než opustíte tuto stránku, nezapomeňte stisknout tlačítko **Uložit**, jinak budou změny ztraceny.
-
diff --git a/lib/plugins/config/lang/da/intro.txt b/lib/plugins/config/lang/da/intro.txt
index f20961b98..14cd3d601 100644
--- a/lib/plugins/config/lang/da/intro.txt
+++ b/lib/plugins/config/lang/da/intro.txt
@@ -5,4 +5,3 @@ Brug denne side til at kontrollere indstillingerne for din Dokuwiki-opsætning.
Indstillinger vist med lys rød baggrund er beskyttede og kan ikke ændres med denne udvidelse. Indstillinger vist med blå baggrund er standardindstillinger og indstillinger vist med hvid baggrund er blevet sat lokalt denne konkrete opsætning. Både blå og hvide indstillinger kan ændres.
Husk at trykke på **Gem**-knappen før du forlader siden, for at du ikke mister dine ændringer.
-
diff --git a/lib/plugins/config/lang/de-informal/intro.txt b/lib/plugins/config/lang/de-informal/intro.txt
index df9845ebc..ce4625cff 100644
--- a/lib/plugins/config/lang/de-informal/intro.txt
+++ b/lib/plugins/config/lang/de-informal/intro.txt
@@ -4,4 +4,4 @@ Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation
Einstellungen die mit einem hellroten Hintergrund angezeigt werden, können mit dieser Erweiterung nicht verändert werden. Einstellungen mit einem blauen Hintergrund sind Standardwerte und Einstellungen mit einem weißen Hintergrund wurden lokal gesetzt für diese Installation. Sowohl blaue als auch weiße Einstellungen können angepasst werden.
-Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen. \ No newline at end of file
+Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen.
diff --git a/lib/plugins/config/lang/de/intro.txt b/lib/plugins/config/lang/de/intro.txt
index b79b5f871..e743379ff 100644
--- a/lib/plugins/config/lang/de/intro.txt
+++ b/lib/plugins/config/lang/de/intro.txt
@@ -5,6 +5,3 @@ Dieses Plugin hilft Ihnen bei der Konfiguration von DokuWiki. Hilfe zu den einze
Einstellungen mit einem hellroten Hintergrund sind gesichert und können nicht mit diesem Plugin verändert werden, Einstellungen mit hellblauem Hintergrund sind Voreinstellungen, weiß hinterlegte Felder zeigen lokal veränderte Werte an. Sowohl die blauen als auch die weißen Felder können verändert werden.
Bitte vergessen Sie nicht **Speichern** zu drücken bevor Sie die Seite verlassen, andernfalls gehen Ihre Änderungen verloren.
-
-
-
diff --git a/lib/plugins/config/lang/en/intro.txt b/lib/plugins/config/lang/en/intro.txt
index 7cf46cee3..01089871c 100644
--- a/lib/plugins/config/lang/en/intro.txt
+++ b/lib/plugins/config/lang/en/intro.txt
@@ -5,5 +5,3 @@ Use this page to control the settings of your DokuWiki installation. For help o
Settings shown with a light red background are protected and can not be altered with this plugin. Settings shown with a blue background are the default values and settings shown with a white background have been set locally for this particular installation. Both blue and white settings can be altered.
Remember to press the **Save** button before leaving this page otherwise your changes will be lost.
-
-
diff --git a/lib/plugins/config/lang/eo/lang.php b/lib/plugins/config/lang/eo/lang.php
index 440d771dc..566da0d2d 100644
--- a/lib/plugins/config/lang/eo/lang.php
+++ b/lib/plugins/config/lang/eo/lang.php
@@ -137,7 +137,7 @@ $lang['compress'] = 'Kompaktigi CSS-ajn kaj ĵavaskriptajn elmetojn
$lang['cssdatauri'] = 'Grandeco en bitokoj, ĝis kiom en CSS-dosieroj referencitaj bildoj enmetiĝu rekte en la stilfolion por malgrandigi vanan HTTP-kapan trafikon. Tiu tekniko ne funkcias en IE 7 aŭ pli frua!
<code>400</code> ĝis <code>600</code> bitokoj estas bona grandeco. Indiku <code>0</code> por malebligi enmeton.';
$lang['send404'] = 'Sendi la mesaĝon "HTTP 404/Paĝo ne trovita" por ne ekzistantaj paĝoj';
-$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuŝaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&task_id=852&">Cimon 852</a> por pli da informoj.';
+$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuŝaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Cimon 852</a> por pli da informoj.';
$lang['xsendfile'] = 'Ĉu uzi la kaplinion X-Sendfile por ebligi al la retservilo liveri fiksajn dosierojn? Via retservilo subtenu tion.';
$lang['renderer_xhtml'] = 'Prezentilo por la ĉefa vikia rezulto (xhtml)';
$lang['renderer__core'] = '%s (DokuWiki-a kerno)';
diff --git a/lib/plugins/config/lang/fa/intro.txt b/lib/plugins/config/lang/fa/intro.txt
index f5b6ba235..31bbaea98 100644
--- a/lib/plugins/config/lang/fa/intro.txt
+++ b/lib/plugins/config/lang/fa/intro.txt
@@ -5,4 +5,4 @@
تنظیماتی که با پیش‌زمینه‌ی قرمز مشخص شده‌اند، غیرقابل تغییر می‌باشند. تنظیماتی که به پیش‌زمینه‌ی آبی مشخص شده‌اند نیز حامل مقادیر پیش‌فرض می‌باشند و تنظیماتی که پیش‌زمینه‌ی سفید دارند به طور محلی برای این سیستم تنظیم شده‌اند. تمامی مقادیر آبی و سفید قابلیت تغییر دارند.
-به یاد داشته باشید که قبل از ترک صفحه، دکمه‌ی **ذخیره** را بفشارید، در غیر این صورت تنظیمات شما از بین خواهد رفت. \ No newline at end of file
+به یاد داشته باشید که قبل از ترک صفحه، دکمه‌ی **ذخیره** را بفشارید، در غیر این صورت تنظیمات شما از بین خواهد رفت.
diff --git a/lib/plugins/config/lang/fi/intro.txt b/lib/plugins/config/lang/fi/intro.txt
index f6eedb50c..2765a18af 100644
--- a/lib/plugins/config/lang/fi/intro.txt
+++ b/lib/plugins/config/lang/fi/intro.txt
@@ -4,4 +4,4 @@ Käytä tätä sivua hallitaksesi DokuWikisi asetuksia. Apua yksittäisiin asetu
Asetukset, jotka näkyvät vaaleanpunaisella taustalla ovat suojattuja, eikä niitä voi muutta tämän liitännäisen avulla. Asetukset, jotka näkyvät sinisellä taustalla ovat oletusasetuksia. Asetukset valkoisella taustalla ovat asetettu paikallisesti tätä asennusta varten. Sekä sinisiä että valkoisia asetuksia voi muokata.
-Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät. \ No newline at end of file
+Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät.
diff --git a/lib/plugins/config/lang/fr/intro.txt b/lib/plugins/config/lang/fr/intro.txt
index 3d71f6184..afc5805d8 100644
--- a/lib/plugins/config/lang/fr/intro.txt
+++ b/lib/plugins/config/lang/fr/intro.txt
@@ -5,5 +5,3 @@ Utilisez cette page pour contrôler les paramètres de votre installation de Dok
Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec cette extension. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs spécifiquement définies pour votre installation sont affichées sur un fond blanc. Seuls les paramètres sur fond bleu ou blanc peuvent être modifiés.
N'oubliez pas d'utiliser le bouton **ENREGISTRER** avant de quitter cette page, sinon vos modifications ne seront pas prises en compte !
-
-
diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php
index e92144b22..75dc4f177 100644
--- a/lib/plugins/config/lang/fr/lang.php
+++ b/lib/plugins/config/lang/fr/lang.php
@@ -94,7 +94,9 @@ $lang['disableactions'] = 'Actions à désactiver dans DokuWiki';
$lang['disableactions_check'] = 'Vérifier';
$lang['disableactions_subscription'] = 'Abonnement aux pages';
$lang['disableactions_wikicode'] = 'Afficher le texte source';
+$lang['disableactions_profile_delete'] = 'Supprimer votre propre compte';
$lang['disableactions_other'] = 'Autres actions (séparées par des virgules)';
+$lang['disableactions_rss'] = 'Syndication XML (RSS)';
$lang['auth_security_timeout'] = 'Délai d\'expiration de sécurité (secondes)';
$lang['securecookie'] = 'Les cookies définis via HTTPS doivent-ils n\'être envoyé par le navigateur que via HTTPS ? Désactivez cette option lorsque seule la connexion à votre wiki est sécurisée avec SSL et que la navigation sur le wiki est effectuée de manière non sécurisée.';
$lang['remote'] = 'Active l\'API système distante. Ceci permet à d\'autres applications d\'accéder au wiki via XML-RPC ou d\'autres mécanismes.';
diff --git a/lib/plugins/config/lang/he/intro.txt b/lib/plugins/config/lang/he/intro.txt
index 010c69018..d61a93861 100644
--- a/lib/plugins/config/lang/he/intro.txt
+++ b/lib/plugins/config/lang/he/intro.txt
@@ -5,5 +5,3 @@
הגדרות עם רקע אדום-בהיר מוגנות ואין אפשרות לשנותן עם תוסף זה. הגדרות עם רקע כחול הן בעלות ערך ברירת המחדל והגדרות עם רקע לבן הוגדרו באופן מקומי עבור התקנה זו. ההגדרות בעלות הרקעים הכחול והלבן הן ברות שינוי.
יש לזכור ללחוץ על כפתור ה**שמירה** טרם עזיבת דף זה פן יאבדו השינויים.
-
-
diff --git a/lib/plugins/config/lang/ia/intro.txt b/lib/plugins/config/lang/ia/intro.txt
index 37b970c4f..eb2e10591 100644
--- a/lib/plugins/config/lang/ia/intro.txt
+++ b/lib/plugins/config/lang/ia/intro.txt
@@ -4,4 +4,4 @@ Usa iste pagina pro controlar le configurationes de tu installation de DokuWiki.
Le configurationes monstrate super un fundo rubie clar es protegite e non pote esser alterate con iste plug-in. Le configurationes monstrate super un fundo blau es le valores predefinite e le configurationes monstrate super un fundo blanc ha essite definite localmente pro iste particular installation. Le configurationes blau e blanc pote esser alterate.
-Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite. \ No newline at end of file
+Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite.
diff --git a/lib/plugins/config/lang/it/intro.txt b/lib/plugins/config/lang/it/intro.txt
index 617e8c7b5..02984baa7 100644
--- a/lib/plugins/config/lang/it/intro.txt
+++ b/lib/plugins/config/lang/it/intro.txt
@@ -5,5 +5,3 @@ Usa questa pagina per gestire la configurazione della tua installazione DokuWiki
Le impostazioni con lo sfondo rosso chiaro sono protette e non possono essere modificate con questo plugin. Le impostazioni con lo sfondo blu contengono i valori predefiniti, e le impostazioni con lo sfondo bianco sono relative solo a questa particolare installazione. Sia le impostazioni su sfondo blu che quelle su sfondo bianco possono essere modificate.
Ricordati di premere il pulsante **SALVA** prima di lasciare questa pagina altrimenti le modifiche andranno perse.
-
-
diff --git a/lib/plugins/config/lang/ja/intro.txt b/lib/plugins/config/lang/ja/intro.txt
index 0c45471c6..6a1f956cb 100644
--- a/lib/plugins/config/lang/ja/intro.txt
+++ b/lib/plugins/config/lang/ja/intro.txt
@@ -5,5 +5,3 @@
背景が薄い赤になっている場合、その設定は変更することが出来ません。 背景が青の値はデフォルト、背景が白の値は現在の設定となっており、 どちらの値も変更が可能です。
設定の変更後は必ず **保存** ボタンを押して変更を確定してください。 ボタンを押さなかった場合、変更は破棄されます。
-
-
diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt
index 979bbcb14..42240e3d7 100644
--- a/lib/plugins/config/lang/ko/intro.txt
+++ b/lib/plugins/config/lang/ko/intro.txt
@@ -5,4 +5,3 @@
밝은 빨간색 배경으로 보이는 설정은 이 플러그인에서 바꿀 수 없도록 보호되어 있습니다. 파란색 배경으로 보이는 설정은 기본값이며 하얀색 배경으로 보이는 설정은 특수한 설치를 위해 로컬로 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다.
이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀜이 사라지는 것에 주의하세요.
-
diff --git a/lib/plugins/config/lang/la/intro.txt b/lib/plugins/config/lang/la/intro.txt
index 573d34ac1..51d8c3d71 100644
--- a/lib/plugins/config/lang/la/intro.txt
+++ b/lib/plugins/config/lang/la/intro.txt
@@ -4,4 +4,4 @@ In hac pagina administratoris optiones mutare et inspicere potes. Auxilia in pag
Optiones ostensae rubro colore tutae et non nunc mutabiles sunt. Optiones ostensae caeruleo colore praecipuae sunt et optiones ostensae in area alba singulares huic uici sunt. Et caerulae et albae optiones mutabiles sunt.
-Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt. \ No newline at end of file
+Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt.
diff --git a/lib/plugins/config/lang/mr/intro.txt b/lib/plugins/config/lang/mr/intro.txt
index 12ada73a1..e068295e5 100644
--- a/lib/plugins/config/lang/mr/intro.txt
+++ b/lib/plugins/config/lang/mr/intro.txt
@@ -7,4 +7,4 @@
निळ्या पार्श्वभूमीमधे दाखवलेले सेटिंग आपोआप सेट होणार्या किमती आहेत आणि पांढर्या पार्श्वभूमीमधे
दाखवलेले सेटिंग या इन्स्टॉलेशनसाठी ख़ास सेट केलेले आहेत. निळे आणि पांढरे दोन्ही सेटिंग बदलता येतील.
-ह्या पानावरून बाहर जाण्याआधी "Save" चे बटन क्लिक करायला विसरू नका नाहीतर सर्व बदल नाहीसे होतील. \ No newline at end of file
+ह्या पानावरून बाहर जाण्याआधी "Save" चे बटन क्लिक करायला विसरू नका नाहीतर सर्व बदल नाहीसे होतील.
diff --git a/lib/plugins/config/lang/nl/intro.txt b/lib/plugins/config/lang/nl/intro.txt
index 3814b70bd..4d72b695d 100644
--- a/lib/plugins/config/lang/nl/intro.txt
+++ b/lib/plugins/config/lang/nl/intro.txt
@@ -5,5 +5,3 @@ Gebruik deze pagina om de instellingen van je DokuWiki te bekijken en/of te wijz
Instellingen met een rode achtergond kunnen niet worden gewijzigd met deze plugin. Instellingen met een blauwe achtergrond hebben de default waarde, en instellingen met een witte achtergrond zijn lokaal gewijzigd voor deze specifieke installatie. Zowel blauwe als witte instellingen kunnen worden gewijzigd.
Vergeet niet op **Opslaan** te drukken alvorens de pagina te verlaten, anders gaan je wijzigingen verloren.
-
-
diff --git a/lib/plugins/config/lang/pl/intro.txt b/lib/plugins/config/lang/pl/intro.txt
index 72c0e1c13..9d85c7a7c 100644
--- a/lib/plugins/config/lang/pl/intro.txt
+++ b/lib/plugins/config/lang/pl/intro.txt
@@ -5,5 +5,3 @@ Na tej stronie można zmienić ustawienia tej instalacji DokuWiki. W celu uzyska
Ustawienia w kolorze jasnoczerwonym są chronione i nie mogą być zmienioną z użyciem tej wtyczki. Ustawienia w kolorze niebieskim mają domyślne wartości. Ustawienia w kolorze białym są specyficzne dla tej instalacji. Ustawienia w kolorach niebieskim i białym mogą być zmienione.
W celu zapisania nowej konfiguracji naciśnij **zapisz** przed opuszczeniem tej strony.
-
-
diff --git a/lib/plugins/config/lang/pt-br/intro.txt b/lib/plugins/config/lang/pt-br/intro.txt
index 850ba25cb..db31de4cf 100644
--- a/lib/plugins/config/lang/pt-br/intro.txt
+++ b/lib/plugins/config/lang/pt-br/intro.txt
@@ -4,4 +4,4 @@ Use essa página para controlar as configurações da instalação do seu DokuWi
Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com esse plug-in. As definições com um fundo azul são o padrão e as com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul quanto as em branco podem ser alteradas.
-Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas. \ No newline at end of file
+Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas.
diff --git a/lib/plugins/config/lang/pt/intro.txt b/lib/plugins/config/lang/pt/intro.txt
index 2010dadaf..06a68c475 100644
--- a/lib/plugins/config/lang/pt/intro.txt
+++ b/lib/plugins/config/lang/pt/intro.txt
@@ -4,4 +4,4 @@ Use esta página para controlar as definições da instalação do seu DokuWiki.
Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com este plugin. Definições com um fundo azul são padrão e definições com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul como em branco podem ser alteradas.
-Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas. \ No newline at end of file
+Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas.
diff --git a/lib/plugins/config/lang/ru/intro.txt b/lib/plugins/config/lang/ru/intro.txt
index a629d9332..f30d4c791 100644
--- a/lib/plugins/config/lang/ru/intro.txt
+++ b/lib/plugins/config/lang/ru/intro.txt
@@ -5,5 +5,3 @@
Настройки, отображаемые на светло-красном фоне, защищены от изменений и не могут быть отредактированы с помощью этого плагина. Голубым фоном отмечены настройки со значениями по умолчанию, а белым фоном — настройки, которые были локально изменены для этой конкретной «ДокуВики». Как голубые, так и белые настройки доступны для изменения.
Не забудьте нажать кнопку «**Сохранить**» перед тем, как покинуть эту страницу, иначе все ваши изменения будут потеряны.
-
-
diff --git a/lib/plugins/config/lang/sk/intro.txt b/lib/plugins/config/lang/sk/intro.txt
index 5de62a315..a3d15bf93 100644
--- a/lib/plugins/config/lang/sk/intro.txt
+++ b/lib/plugins/config/lang/sk/intro.txt
@@ -4,4 +4,4 @@ Túto stránku môžete používať na zmenu nastavení Vašej DokuWiki inštal
Nastavenia zobrazené na červenom pozadí sú neprístupné a nemôžu byť týmto pluginom zmenené. Nastavenia s modrým pozadím obsahujú prednastavené hodnoty a nastavenia s bielym pozadím boli nastavené lokálne pre túto konkrétnu inštaláciu. Nastavenia s modrým a bielym pozadím môžu byť zmenené.
-Nezabudnite stlačiť tlačidlo **Uložiť** pred opustením stránky, inak budú vaše zmeny stratené. \ No newline at end of file
+Nezabudnite stlačiť tlačidlo **Uložiť** pred opustením stránky, inak budú vaše zmeny stratené.
diff --git a/lib/plugins/config/lang/sq/intro.txt b/lib/plugins/config/lang/sq/intro.txt
index 687b497c9..d2bab0fd5 100644
--- a/lib/plugins/config/lang/sq/intro.txt
+++ b/lib/plugins/config/lang/sq/intro.txt
@@ -4,4 +4,4 @@ Përdoreni këtë faqe për të kontrolluar kuadrot e instalimit të DokuWiki-t
Kuadrot e treguara me një backgroudn me një ngjyrë të kuqe të lehtë janë të mbrojtura dhe nuk mund të ndryshohen me këtë plugin. Kuadrot e treguara me një background blu janë vlerat default dhe kuadrot e treguara me një background të bardhë janë vendosur lokalisht për këtë instalim të caktuar. Si kuadrot blu, ashtu edhe ato të bardhë mund të ndryshohen.
-Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin. \ No newline at end of file
+Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin.
diff --git a/lib/plugins/config/lang/sv/intro.txt b/lib/plugins/config/lang/sv/intro.txt
index 8887d4a7b..fd77634c2 100644
--- a/lib/plugins/config/lang/sv/intro.txt
+++ b/lib/plugins/config/lang/sv/intro.txt
@@ -5,5 +5,3 @@ Använd den här sidan för att göra inställningar i din Dokuwiki. För hjälp
Inställningar med en rosa bakgrund är skyddade och kan inte ändras med den här insticksmodulen. Inställningar med en blå bakgrund är standardvärden, och inställningar som visas med en vit bakgrund har ändrats i den här installationen. Både blåa och vita inställningar kan ändras.
Kom i håg att trycka på knappen **Spara** innan du lämnar den här sidan, annars kommer ändringarna att gå förlorade.
-
-
diff --git a/lib/plugins/config/lang/tr/intro.txt b/lib/plugins/config/lang/tr/intro.txt
index 4a9654222..2602fb3ed 100644
--- a/lib/plugins/config/lang/tr/intro.txt
+++ b/lib/plugins/config/lang/tr/intro.txt
@@ -4,4 +4,4 @@ Bu sayfayı DokuWiki kurulumunun ayarlarını değiştirmek için kullanabilirsi
Açık kırmızı renkle gösterilenler bu eklenti ile değiştirilemez. Mavi ile gösterilenler varsayılan değerlerdir. Beyaz altyazı ile gösterilenler is bu kuruluma özel değiştirilmiş ayarlardır. Mavi ve beyaz ayarlar değiştirilebilir.
-Değişiklik yapmanız durumunda **Kaydet** tuşuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir. \ No newline at end of file
+Değişiklik yapmanız durumunda **Kaydet** tuşuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir.
diff --git a/lib/plugins/config/lang/zh-tw/intro.txt b/lib/plugins/config/lang/zh-tw/intro.txt
index 228c12e0a..e131ec342 100644
--- a/lib/plugins/config/lang/zh-tw/intro.txt
+++ b/lib/plugins/config/lang/zh-tw/intro.txt
@@ -4,4 +4,4 @@
淡紅色背景的項目是受到保護的,不能通過這管理器更改。藍色背景的項目是系統的預設值,白色背景的項目是您更改過的。藍色和白色的設定項目都可以更改。
-離開本頁之前,不要忘記點擊最下面的 **儲存** 按鈕,否則您的修改不會生效。 \ No newline at end of file
+離開本頁之前,不要忘記點擊最下面的 **儲存** 按鈕,否則您的修改不會生效。
diff --git a/lib/plugins/config/lang/zh-tw/lang.php b/lib/plugins/config/lang/zh-tw/lang.php
index cc2c28c31..c586a0d51 100644
--- a/lib/plugins/config/lang/zh-tw/lang.php
+++ b/lib/plugins/config/lang/zh-tw/lang.php
@@ -137,7 +137,7 @@ $lang['gzip_output'] = '對 xhtml 使用 gzip 內容編碼';
$lang['compress'] = '壓縮 CSS 與 JavaScript 的輸出';
$lang['cssdatauri'] = '假如 CSS 中所引用的圖片小於該數字大小(bytes),圖片將被直接嵌入 CSS 中,以減少 HTTP Request 的發送。 IE 7 及以下的版本並不支援此功能。推薦把此數值設定成 <code>400</code> 至 <code>600</code> bytes 之間。若輸入 <code>0</code> 則停用此功能。';
$lang['send404'] = '存取不存在的頁面時送出 "HTTP 404/Page Not Found"';
-$lang['broken_iua'] = 'ignore_user_abort 功能失效了?這有可能導致搜索索引不可用。IIS+PHP/CGI 已損壞。請參閱 <a href=\"http://bugs.splitbrain.org/?do=details&task_id=852\">Bug 852</a> 獲取更多訊息。';
+$lang['broken_iua'] = 'ignore_user_abort 功能失效了?這有可能導致搜索索引不可用。IIS+PHP/CGI 已損壞。請參閱 <a href=\"http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> 獲取更多訊息。';
$lang['xsendfile'] = '使用 X-Sendfile 頭讓網頁伺服器發送狀態文件?您的網頁伺服器需要支持該功能。';
$lang['renderer_xhtml'] = '主要 wiki 輸出 (xhtml) 的渲染器';
$lang['renderer__core'] = '%s (dokuwiki 核心)';
diff --git a/lib/plugins/config/lang/zh/intro.txt b/lib/plugins/config/lang/zh/intro.txt
index a7db4eda0..30cb65004 100644
--- a/lib/plugins/config/lang/zh/intro.txt
+++ b/lib/plugins/config/lang/zh/intro.txt
@@ -5,5 +5,3 @@
淡红色背景的项目被保护,不能通过这个管理器更改。 蓝色背景的项目是系统的默认值,白色背景的项目是您作出更改的项目。蓝色和白色的设置项目都可以更改。
离开本页之前不要忘记点击最后的 **保存** 按钮,否则您做的修改不会生效。
-
-
diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php
index c6a3f9dae..2445577d1 100644
--- a/lib/plugins/config/settings/extra.class.php
+++ b/lib/plugins/config/settings/extra.class.php
@@ -15,7 +15,7 @@ if (!class_exists('setting_sepchar')) {
* @param string $key
* @param array|null $param array with metadata of setting
*/
- function setting_sepchar($key,$param=null) {
+ function __construct($key,$param=null) {
$str = '_-.';
for ($i=0;$i<strlen($str);$i++) $this->_choices[] = $str{$i};
diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php
index 11aea1d0e..bf099d308 100644
--- a/lib/plugins/extension/helper/list.php
+++ b/lib/plugins/extension/helper/list.php
@@ -535,7 +535,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin {
$classes = 'button '.$action;
$name = 'fn['.$action.']['.hsc($extension->getID()).']';
- return '<input class="'.$classes.'" name="'.$name.'" type="submit" value="'.$this->getLang('btn_'.$action).'" '.$title.' />';
+ return '<button class="'.$classes.'" name="'.$name.'" type="submit" '.$title.'>'.$this->getLang('btn_'.$action).'</button> ';
}
/**
diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php
index dc38afd52..d48c517cf 100644
--- a/lib/plugins/extension/lang/cs/lang.php
+++ b/lib/plugins/extension/lang/cs/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Viktor Zavadil <vzavadil@newps.cz>
* @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
*/
@@ -62,7 +62,7 @@ $lang['status_template'] = 'šablona';
$lang['status_bundled'] = 'svázaný';
$lang['msg_enabled'] = 'Zásuvný modul %s povolen';
$lang['msg_disabled'] = 'Zásuvný modul %s zakázán';
-$lang['msg_delete_success'] = 'Rozšíření odinstalováno';
+$lang['msg_delete_success'] = 'Rozšíření %s odinstalováno';
$lang['msg_delete_failed'] = 'Odinstalování rozšíření %s selhalo';
$lang['msg_template_install_success'] = 'Šablona %s úspěšně nainstalována';
$lang['msg_template_update_success'] = 'Šablona %s úspěšně aktualizována';
diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php
index ef3197513..a47c9360f 100644
--- a/lib/plugins/extension/lang/de/lang.php
+++ b/lib/plugins/extension/lang/de/lang.php
@@ -9,6 +9,7 @@
* @author Hoisl <hoisl@gmx.at>
* @author Dominik Mahr <drache.mahr@gmx.de>
* @author Noel Tilliot <noeltilliot@byom.de>
+ * @author Philip Knack <p.knack@stollfuss.de>
*/
$lang['menu'] = 'Erweiterungen verwalten';
$lang['tab_plugins'] = 'Installierte Plugins';
@@ -33,6 +34,7 @@ $lang['js']['reallydel'] = 'Wollen Sie diese Erweiterung wirklich löschen
$lang['js']['display_viewoptions'] = 'Optionen anzeigen';
$lang['js']['display_enabled'] = 'aktiviert';
$lang['js']['display_disabled'] = 'deaktiviert';
+$lang['js']['display_updatable'] = 'aktualisierbar';
$lang['search_for'] = 'Erweiterung suchen:';
$lang['search'] = 'Suchen';
$lang['extensionby'] = '<strong>%s</strong> von %s';
@@ -69,7 +71,8 @@ $lang['status_template'] = 'Template';
$lang['status_bundled'] = 'gebündelt';
$lang['msg_enabled'] = 'Plugin %s ist aktiviert';
$lang['msg_disabled'] = 'Erweiterung %s ist deaktiviert';
-$lang['msg_delete_success'] = 'Erweiterung wurde entfernt';
+$lang['msg_delete_success'] = 'Erweiterung %s wurde entfernt';
+$lang['msg_delete_failed'] = 'Deinstallation der Erweiterung %s fehlgeschlagen';
$lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert';
$lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich ';
$lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert';
@@ -91,6 +94,8 @@ $lang['noperms'] = 'Das Erweiterungs-Verzeichnis ist schreibgesch
$lang['notplperms'] = 'Das Template-Verzeichnis ist schreibgeschützt';
$lang['nopluginperms'] = 'Das Plugin-Verzeichnis ist schreibgeschützt';
$lang['git'] = 'Diese Erweiterung wurde über git installiert und sollte daher nicht hier aktualisiert werden.';
+$lang['auth'] = 'Dieses Auth Plugin ist in der Konfiguration nicht aktiviert, Sie sollten es deaktivieren.';
$lang['install_url'] = 'Von Webadresse (URL) installieren';
$lang['install_upload'] = 'Erweiterung hochladen:';
$lang['repo_error'] = 'Es konnte keine Verbindung zum Plugin-Verzeichnis hergestellt werden. Stellen sie sicher das der Server Verbindung mit www.dokuwiki.org aufnehmen darf und überprüfen sie ihre Proxy Einstellungen.';
+$lang['nossl'] = 'Ihr PHP scheint SSL nicht zu unterstützen. Das Herunterladen vieler DokuWiki Erweiterungen wird scheitern.';
diff --git a/lib/plugins/extension/lang/eo/lang.php b/lib/plugins/extension/lang/eo/lang.php
index 6ce840be8..e0488cb46 100644
--- a/lib/plugins/extension/lang/eo/lang.php
+++ b/lib/plugins/extension/lang/eo/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Robert Bogenschneider <bogi@uea.org>
*/
$lang['menu'] = 'Aldonaĵa administrado';
@@ -61,7 +61,7 @@ $lang['status_template'] = 'ŝablono';
$lang['status_bundled'] = 'kunliverita';
$lang['msg_enabled'] = 'Kromaĵo %s ebligita';
$lang['msg_disabled'] = 'Kromaĵo %s malebligita';
-$lang['msg_delete_success'] = 'Aldonaĵo malinstaliĝis';
+$lang['msg_delete_success'] = 'Aldonaĵo %s malinstaliĝis';
$lang['msg_template_install_success'] = 'Ŝablono %s sukcese instaliĝis';
$lang['msg_template_update_success'] = 'Ŝablono %s sukcese aktualiĝis';
$lang['msg_plugin_install_success'] = 'Kromaĵo %s sukcese instaliĝis';
diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php
index a835cb630..9e3d24318 100644
--- a/lib/plugins/extension/lang/es/lang.php
+++ b/lib/plugins/extension/lang/es/lang.php
@@ -2,11 +2,12 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Antonio Bueno <atnbueno@gmail.com>
* @author Antonio Castilla <antoniocastilla@trazoide.com>
* @author Jonathan Hernández <me@jhalicea.com>
* @author Álvaro Iradier <airadier@gmail.com>
+ * @author Mauricio Segura <maose38@yahoo.es>
*/
$lang['menu'] = 'Administrador de Extensiones ';
$lang['tab_plugins'] = 'Plugins instalados';
@@ -28,6 +29,10 @@ $lang['btn_disable'] = 'Desactivar';
$lang['btn_install'] = 'Instalar';
$lang['btn_reinstall'] = 'Reinstalar';
$lang['js']['reallydel'] = '¿Realmente quiere desinstalar esta extensión?';
+$lang['js']['display_viewoptions'] = 'Ver opciones:';
+$lang['js']['display_enabled'] = 'habilitado';
+$lang['js']['display_disabled'] = 'deshabilitado';
+$lang['js']['display_updatable'] = 'actualizable';
$lang['search_for'] = 'Extensión de búsqueda :';
$lang['search'] = 'Buscar';
$lang['extensionby'] = '<strong>%s</strong> por %s';
@@ -64,7 +69,7 @@ $lang['status_template'] = 'plantilla';
$lang['status_bundled'] = 'agrupado';
$lang['msg_enabled'] = 'Plugin %s activado';
$lang['msg_disabled'] = 'Plugin %s desactivado';
-$lang['msg_delete_success'] = 'Extensión desinstalada';
+$lang['msg_delete_success'] = 'Extensión %s desinstalada';
$lang['msg_delete_failed'] = 'La desinstalación de la extensión %s ha fallado';
$lang['msg_template_install_success'] = 'Plantilla %s instalada con éxito';
$lang['msg_template_update_success'] = 'Plantilla %s actualizada con éxito';
diff --git a/lib/plugins/extension/lang/hu/lang.php b/lib/plugins/extension/lang/hu/lang.php
index a27b5a307..28194ad9d 100644
--- a/lib/plugins/extension/lang/hu/lang.php
+++ b/lib/plugins/extension/lang/hu/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Marton Sebok <sebokmarton@gmail.com>
*/
$lang['menu'] = 'Bővítménykezelő';
@@ -61,7 +61,7 @@ $lang['status_template'] = 'sablon';
$lang['status_bundled'] = 'beépített';
$lang['msg_enabled'] = 'A(z) %s modul engedélyezve';
$lang['msg_disabled'] = 'A(z) %s modul letiltva';
-$lang['msg_delete_success'] = 'A bővítmény törölve';
+$lang['msg_delete_success'] = 'A bővítmény %s törölve';
$lang['msg_template_install_success'] = 'A(z) %s sablon sikeresen telepítve';
$lang['msg_template_update_success'] = 'A(z) %s sablon sikeresen frissítve';
$lang['msg_plugin_install_success'] = 'A(z) %s modul sikeresen telepítve';
diff --git a/lib/plugins/extension/lang/ja/lang.php b/lib/plugins/extension/lang/ja/lang.php
index 42334c767..689a9877e 100644
--- a/lib/plugins/extension/lang/ja/lang.php
+++ b/lib/plugins/extension/lang/ja/lang.php
@@ -28,6 +28,7 @@ $lang['btn_disable'] = '無効化';
$lang['btn_install'] = 'インストール';
$lang['btn_reinstall'] = '再インストール';
$lang['js']['reallydel'] = 'この拡張機能を本当にアンインストールしますか?';
+$lang['js']['display_viewoptions'] = '表示オプション: ';
$lang['js']['display_enabled'] = '有効';
$lang['js']['display_disabled'] = '無効';
$lang['js']['display_updatable'] = '更新可能';
diff --git a/lib/plugins/extension/lang/ko/lang.php b/lib/plugins/extension/lang/ko/lang.php
index 3de28c0c8..31b230b53 100644
--- a/lib/plugins/extension/lang/ko/lang.php
+++ b/lib/plugins/extension/lang/ko/lang.php
@@ -28,8 +28,9 @@ $lang['btn_install'] = '설치';
$lang['btn_reinstall'] = '다시 설치';
$lang['js']['reallydel'] = '정말 이 확장 기능을 제거하겠습니까?';
$lang['js']['display_viewoptions'] = '보기 옵션:';
-$lang['js']['display_enabled'] = '켜짐';
-$lang['js']['display_disabled'] = '꺼짐';
+$lang['js']['display_enabled'] = '활성화됨';
+$lang['js']['display_disabled'] = '비활성화됨';
+$lang['js']['display_updatable'] = '업데이트할 수 있음';
$lang['search_for'] = '확장 기능 검색:';
$lang['search'] = '검색';
$lang['extensionby'] = '<strong>%s</strong> (저자 %s)';
diff --git a/lib/plugins/extension/lang/lv/lang.php b/lib/plugins/extension/lang/lv/lang.php
index e7e9bdfd9..b3e5ce0d2 100644
--- a/lib/plugins/extension/lang/lv/lang.php
+++ b/lib/plugins/extension/lang/lv/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Aivars Miška <allefm@gmail.com>
*/
-$lang['msg_delete_success'] = 'Papildinājums atinstalēts';
+$lang['msg_delete_success'] = 'Papildinājums %s atinstalēts';
diff --git a/lib/plugins/extension/lang/pl/lang.php b/lib/plugins/extension/lang/pl/lang.php
index 4fdca79c9..ab9a818b6 100644
--- a/lib/plugins/extension/lang/pl/lang.php
+++ b/lib/plugins/extension/lang/pl/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Mati <mackosa@wp.pl>
*/
$lang['menu'] = 'Menedżer rozszerzeń';
@@ -36,4 +36,4 @@ $lang['status_not_installed'] = 'nie zainstalowano';
$lang['status_enabled'] = 'uruchomione';
$lang['status_disabled'] = 'wyłączone';
$lang['status_plugin'] = 'dodatek';
-$lang['msg_delete_success'] = 'Rozszerzenie odinstalowane';
+$lang['msg_delete_success'] = 'Rozszerzenie %s odinstalowane';
diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php
index 47286389f..823900acf 100644
--- a/lib/plugins/extension/lang/pt-br/lang.php
+++ b/lib/plugins/extension/lang/pt-br/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Felipe Castro <fefcas@gmail.com>
* @author Hudson FAS <hudsonfas@gmail.com>
*/
@@ -62,8 +62,8 @@ $lang['status_template'] = 'modelo';
$lang['status_bundled'] = 'agrupado';
$lang['msg_enabled'] = 'Extensão %s habilitada';
$lang['msg_disabled'] = 'Extensão %s desabilitada';
-$lang['msg_delete_success'] = 'Extensão desinstalada';
-$lang['msg_delete_failed'] = 'Falha na desinstala&ccedil;&atilde;o da extens&atilde;o';
+$lang['msg_delete_success'] = 'Extensão %s desinstalada';
+$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão %s';
$lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso';
$lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso';
$lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso';
@@ -75,18 +75,18 @@ $lang['security_warning'] = '<strong>Aviso sobre segurança:</strong> %s';
$lang['update_available'] = '<strong>Atualização:</strong> Nova versão %s está disponível.';
$lang['wrong_folder'] = '<strong>Extensão instalada incorretamente:</strong> Renomeie o diretório de extensões "%s" para "%s".';
$lang['url_change'] = '<strong>URL mudou:</strong> A URL para baixar mudou desde a última baixada. Verifique se a nova URL é válida antes de atualizar a extensão.<br />Novo: %s<br />Velho: %s';
-$lang['error_badurl'] = 'O URL deve come&ccedil;ar com http ou https';
-$lang['error_dircreate'] = 'Imposs&iacute;vel criar pasta tempor&aacute;ria para receber o download';
-$lang['error_download'] = 'Imposs&aacute;vel baixar o arquivo: %s';
-$lang['error_decompress'] = 'Imposs&aacute;vel descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compress&atilde;o pode ser desconhecido, neste caso baixe e instale manualmente.';
-$lang['error_findfolder'] = 'Imposs&iacute;l identificar a extens&atilde;o do diret&oacute;rio, voc&ecirc; deve baixar e instalar manualmente.';
-$lang['error_copy'] = 'Houve um erro de c&oacute;pia de arquivo durante a tentativa de instalar os arquivos para o diret&oacute;rio <em>%s</ em> : o disco pode estar cheio ou as permiss&otilde;es de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instala&ccedil;&atilde;o wiki inst&aacute;vel';
-$lang['noperms'] = 'Diret&oacute;rio de extens&atilde;o n&atilde;o &eacute; grav&aacute;vel';
-$lang['notplperms'] = 'Diret&oacute;rio de modelo (Template) n&atilde;o &eacute; grav&aacute;vel';
-$lang['nopluginperms'] = 'Diret&oacute;rio de plugin n&atilde;o &eacute; grav&aacute;vel';
-$lang['git'] = 'A extens&atilde;o foi instalada via git, voc&ecirc; talvez n&atilde;o queira atualiz&aacute;-lo aqui.';
-$lang['auth'] = 'O plugin auth n&atilde;o est&aacute; ativado na configura&ccedil;&atilde;o, considere desativ&aacute-lo.';
+$lang['error_badurl'] = 'O URL deve começar com http ou https';
+$lang['error_dircreate'] = 'Impossível criar pasta temporária para receber o download';
+$lang['error_download'] = 'Impossável baixar o arquivo: %s';
+$lang['error_decompress'] = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.';
+$lang['error_findfolder'] = 'Impossíl identificar a extensão do diretório, você deve baixar e instalar manualmente.';
+$lang['error_copy'] = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável';
+$lang['noperms'] = 'Diretório de extensão não é gravável';
+$lang['notplperms'] = 'Diretório de modelo (Template) não é gravável';
+$lang['nopluginperms'] = 'Diretório de plugin não é gravável';
+$lang['git'] = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.';
+$lang['auth'] = 'O plugin auth não está ativado na configuração, considere desativá-lo.';
$lang['install_url'] = 'Instale a partir do URL:';
-$lang['install_upload'] = 'Publicar Extens&atilde;o:';
+$lang['install_upload'] = 'Publicar Extensão:';
$lang['repo_error'] = 'O repositório de plugin não pode ser contactado. Certifique-se de que o servidor pode acessar www.dokuwiki.org e confira suas configurações de proxy.';
$lang['nossl'] = 'Sua instalação PHP parece que não suporta SSL. Algumas extensões DokuWiki não serão baixadas.';
diff --git a/lib/plugins/extension/lang/pt/intro_templates.txt b/lib/plugins/extension/lang/pt/intro_templates.txt
index ecdf99f17..02bc33643 100644
--- a/lib/plugins/extension/lang/pt/intro_templates.txt
+++ b/lib/plugins/extension/lang/pt/intro_templates.txt
@@ -1 +1 @@
-Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[Do = admin & page = configuração |? Configuration Manager]]. \ No newline at end of file
+Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[?do=admin&page=config|Configuration Manager]].
diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php
index c9ca8d976..e8c8a7d55 100644
--- a/lib/plugins/extension/lang/pt/lang.php
+++ b/lib/plugins/extension/lang/pt/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Guido Salatino <guidorafael23@gmail.com>
* @author Romulo Pereira <romuloccomp@gmail.com>
*/
@@ -41,7 +41,7 @@ $lang['downloadurl'] = 'Baixar URL:
';
$lang['repository'] = 'Repositório:
';
-$lang['unknown'] = '<em> desconhecido </ em>
+$lang['unknown'] = '<em> desconhecido </em>
';
$lang['installed_version'] = 'Versão instalada:';
$lang['install_date'] = 'Sua última atualização:';
diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php
index 4b2542420..71d949606 100644
--- a/lib/plugins/extension/lang/ru/lang.php
+++ b/lib/plugins/extension/lang/ru/lang.php
@@ -2,94 +2,111 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
* @author Igor Degraf <igordegraf@gmail.com>
* @author Type-kun <workwork-1@yandex.ru>
* @author Vitaly Filatenko <kot@hacktest.net>
* @author Alex P <alexander@lanos.co.uk>
+ * @author Takumo <9206984@mail.ru>
*/
-$lang['menu'] = 'Управление дополнениями';
-$lang['tab_plugins'] = 'Установленные плагины';
-$lang['tab_templates'] = 'Установленные шаблоны';
-$lang['tab_search'] = 'Поиск и установка';
-$lang['tab_install'] = 'Ручная установка';
-$lang['notimplemented'] = 'Эта возможность ещё не реализована';
-$lang['notinstalled'] = 'Это дополнение не установлено';
-$lang['alreadyenabled'] = 'Это расширение уже включено';
-$lang['alreadydisabled'] = 'Это расширение уже выключено';
-$lang['pluginlistsaveerror'] = 'Ошибка при сохранении списка плагинов';
-$lang['unknownauthor'] = 'Автор неизвестен';
-$lang['unknownversion'] = 'Версия неизвестна';
-$lang['btn_info'] = 'Отобразить доп. информацию';
-$lang['btn_update'] = 'Обновить';
-$lang['btn_uninstall'] = 'Удалить';
-$lang['btn_enable'] = 'Включить';
-$lang['btn_disable'] = 'Отключить';
-$lang['btn_install'] = 'Установить';
-$lang['btn_reinstall'] = 'Переустановить';
-$lang['js']['reallydel'] = 'Действительно удалить это дополнение?';
-$lang['search_for'] = 'Поиск дополнения:';
-$lang['search'] = 'Найти';
-$lang['extensionby'] = '<strong>%s</strong> — %s';
-$lang['screenshot'] = 'Скриншот: %s';
-$lang['popularity'] = 'Популярность: %s%%';
-$lang['homepage_link'] = 'Описание';
-$lang['bugs_features'] = 'Баг-трекер';
-$lang['tags'] = 'Метки:';
-$lang['author_hint'] = 'Найти дополнения автора';
-$lang['installed'] = 'Установлено:';
-$lang['downloadurl'] = 'Скачать:';
-$lang['repository'] = 'Репозиторий:';
-$lang['unknown'] = '<em>неизвестно</em>';
-$lang['installed_version'] = 'Уст. версия:';
-$lang['install_date'] = 'Посл. обновление:';
-$lang['available_version'] = 'Доступная версия:';
-$lang['compatible'] = 'Совместим с';
-$lang['depends'] = 'Зависит от';
-$lang['similar'] = 'Похож на';
-$lang['conflicts'] = 'Конфликтует с';
-$lang['donate'] = 'Нравится?';
-$lang['donate_action'] = 'Купить автору кофе!';
-$lang['repo_retry'] = 'Повторить';
-$lang['provides'] = 'Предоставляет:';
-$lang['status'] = 'Статус:';
-$lang['status_installed'] = 'установлено';
-$lang['status_not_installed'] = 'не установлено';
-$lang['status_protected'] = 'защищено';
-$lang['status_enabled'] = 'включён';
-$lang['status_disabled'] = 'отключено';
-$lang['status_unmodifiable'] = 'неизменяемо';
-$lang['status_plugin'] = 'плагин';
-$lang['status_template'] = 'шаблон';
-$lang['status_bundled'] = 'в комплекте';
-$lang['msg_enabled'] = 'Плагин %s включён';
-$lang['msg_disabled'] = 'Плагин %s отключён';
-$lang['msg_delete_success'] = 'Дополнение %s удалено';
-$lang['msg_delete_failed'] = 'Не удалось удалить расширение %s';
+$lang['menu'] = 'Управление дополнениями';
+
+$lang['tab_plugins'] = 'Установленные плагины';
+$lang['tab_templates'] = 'Установленные шаблоны';
+$lang['tab_search'] = 'Поиск и установка';
+$lang['tab_install'] = 'Ручная установка';
+
+$lang['notimplemented'] = 'Эта возможность ещё не реализована';
+$lang['notinstalled'] = 'Это дополнение не установлено';
+$lang['alreadyenabled'] = 'Это дополнение уже включено';
+$lang['alreadydisabled'] = 'Это дополнение уже отключено';
+$lang['pluginlistsaveerror'] = 'Ошибка при сохранении списка плагинов';
+$lang['unknownauthor'] = 'Автор неизвестен';
+$lang['unknownversion'] = 'Версия неизвестна';
+
+$lang['btn_info'] = 'Отобразить доп. информацию';
+$lang['btn_update'] = 'Обновить';
+$lang['btn_uninstall'] = 'Удалить';
+$lang['btn_enable'] = 'Включить';
+$lang['btn_disable'] = 'Отключить';
+$lang['btn_install'] = 'Установить';
+$lang['btn_reinstall'] = 'Переустановить';
+
+$lang['js']['reallydel'] = 'Действительно удалить это дополнение?';
+$lang['js']['display_viewoptions'] = 'Показать как:';
+$lang['js']['display_enabled'] = 'включено';
+$lang['js']['display_disabled'] = 'отключено';
+$lang['js']['display_updatable'] = 'обновление';
+
+$lang['search_for'] = 'Поиск дополнения:';
+$lang['search'] = 'Найти';
+
+$lang['extensionby'] = '<strong>%s</strong> — %s';
+$lang['screenshot'] = 'Скриншот: %s';
+$lang['popularity'] = 'Популярность: %s%%';
+$lang['homepage_link'] = 'Описание';
+$lang['bugs_features'] = 'Баг-трекер';
+$lang['tags'] = 'Метки:';
+$lang['author_hint'] = 'Найти дополнения этого автора';
+$lang['installed'] = 'Установлено:';
+$lang['downloadurl'] = 'Скачать:';
+$lang['repository'] = 'Репозиторий:';
+$lang['unknown'] = '<em>неизвестно</em>';
+$lang['installed_version'] = 'Уст. версия:';
+$lang['install_date'] = 'Посл. обновление:';
+$lang['available_version'] = 'Доступная версия:';
+$lang['compatible'] = 'Совместим с:';
+$lang['depends'] = 'Зависит от:';
+$lang['similar'] = 'Похож на:';
+$lang['conflicts'] = 'Конфликтует с:';
+$lang['donate'] = 'Нравится?';
+$lang['donate_action'] = 'Купить автору кофе!';
+$lang['repo_retry'] = 'Повторить';
+$lang['provides'] = 'Предоставляет:';
+$lang['status'] = 'Состояние:';
+$lang['status_installed'] = 'установлено';
+$lang['status_not_installed'] = 'не установлено';
+$lang['status_protected'] = 'защищено';
+$lang['status_enabled'] = 'включено';
+$lang['status_disabled'] = 'отключено';
+$lang['status_unmodifiable'] = 'неизменяемо';
+$lang['status_plugin'] = 'плагин';
+$lang['status_template'] = 'шаблон';
+$lang['status_bundled'] = 'в комплекте';
+
+$lang['msg_enabled'] = 'Плагин %s включён';
+$lang['msg_disabled'] = 'Плагин %s отключён';
+$lang['msg_delete_success'] = 'Дополнение %s удалено';
+$lang['msg_delete_failed'] = 'Не удалось удалить дополнение %s';
$lang['msg_template_install_success'] = 'Шаблон %s успешно установлен';
-$lang['msg_template_update_success'] = 'Шаблон %s успешно обновлён';
-$lang['msg_plugin_install_success'] = 'Плагин %s успешно установлен';
-$lang['msg_plugin_update_success'] = 'Плагин %s успешно обновлён';
-$lang['msg_upload_failed'] = 'Не удалось загрузить файл';
-$lang['missing_dependency'] = '<strong>Отсутствует или отключена зависимость:</strong> %s';
-$lang['security_issue'] = '<strong>Проблема безопасности:</strong> %s';
-$lang['security_warning'] = '<strong>Предупреждение безопасности:</strong> %s';
-$lang['update_available'] = '<strong>Обновление:</strong> доступна новая версия %s.';
-$lang['wrong_folder'] = '<strong>Плагин установлен неправильно:</strong> переименуйте папку плагина из %s в %s.';
-$lang['url_change'] = '<strong>Ссылка изменилась:</strong> ссылка для загрузки изменилась с прошлого раза. Проверьте новую ссылку прежде, чем обновлять расширение.<br />Новая: %s<br />Старая: %s';
-$lang['error_badurl'] = 'Ссылки должны начинаться с http или https';
-$lang['error_dircreate'] = 'Не удалось создать временную директорию для загрузки';
-$lang['error_download'] = 'Не удалось загрузить файл: %s';
-$lang['error_decompress'] = 'Не удалось распаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвестен формат архива — тогда загрузку и установку надо произвести вручную.';
-$lang['error_findfolder'] = 'Не удалось определить директорию для расширения, загрузку и установку надо произвести вручную.';
-$lang['error_copy'] = 'Возникла ошибка копирования файлов в директорию <em>%s</em>: возможно, диск переполнен, или неверно выставлены права доступа. Это могло привести к неполной установке плагина и нарушить работу вашей вики.';
-$lang['noperms'] = 'Папка для расширений недоступна для записи';
-$lang['notplperms'] = 'Папка для шаблонов недоступна для записи';
-$lang['nopluginperms'] = 'Папка плагинов недоступна для записи';
-$lang['git'] = 'Это расширение было установлено через git. Вы не можете обновить его тут.';
-$lang['auth'] = 'Этот auth плагин не включен в конфигурации, подумайте о его отключении';
-$lang['install_url'] = 'Установить с адреса URL';
-$lang['install_upload'] = 'Скачать расширение';
-$lang['repo_error'] = 'Сайт с плагинами недоступен. Убедитесь, что у сайта есть доступ на www.dokuwiki.org, а также проверьте настройки соединения с Интернетом.';
-$lang['nossl'] = 'Ваша PHP конфигурация не имеет SSL поддержки. Это поломает скачивание для многих DokuWiki плагинов и расширений.';
+$lang['msg_template_update_success'] = 'Шаблон %s успешно обновлён';
+$lang['msg_plugin_install_success'] = 'Плагин %s успешно установлен';
+$lang['msg_plugin_update_success'] = 'Плагин %s успешно обновлён';
+$lang['msg_upload_failed'] = 'Не удалось загрузить файл';
+
+$lang['missing_dependency'] = '<strong>Отсутствует или отключена зависимость:</strong> %s';
+$lang['security_issue'] = '<strong>Проблема безопасности:</strong> %s';
+$lang['security_warning'] = '<strong>Предупреждение безопасности:</strong> %s';
+$lang['update_available'] = '<strong>Обновление:</strong> доступна новая версия %s';
+$lang['wrong_folder'] = '<strong>Плагин установлен неправильно:</strong> переименуйте директорию плагина из %s в %s';
+$lang['url_change'] = '<strong>Ссылка изменилась:</strong> ссылка для загрузки изменилась с прошлого раза. Проверьте новую ссылку прежде, чем обновлять дополнение.<br />Новая: %s<br />Старая: %s';
+
+$lang['error_badurl'] = 'Ссылка должна начинаться с http или https';
+$lang['error_dircreate'] = 'Не удалось создать временную директорию для загрузки';
+$lang['error_download'] = 'Не удалось загрузить файл: %s';
+$lang['error_decompress'] = 'Не удалось распаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвестен формат архива — тогда загрузку и установку надо произвести вручную';
+$lang['error_findfolder'] = 'Не удалось определить директорию для дополнения, загрузку и установку надо произвести вручную.';
+$lang['error_copy'] = 'Возникла ошибка копирования файлов в директорию <em>%s</em>: возможно, диск переполнен, или неверно выставлены права доступа. Это могло привести к неполной установке плагина и нарушить работу вашей вики.';
+
+$lang['noperms'] = 'Директория для дополнений не доступна для записи';
+$lang['notplperms'] = 'Директория для шаблонов не доступна для записи';
+$lang['nopluginperms'] = 'Директория для плагинов не доступна для записи';
+$lang['git'] = 'Это дополнение было установлено через git. Вы не можете обновить его тут.';
+$lang['auth'] = 'Этот auth плагин не включен в конфигурации, подумайте о его отключении';
+
+$lang['install_url'] = 'Установить с адреса:';
+$lang['install_upload'] = 'Скачать дополнение:';
+
+$lang['repo_error'] = 'Сайт с плагинами недоступен. Убедитесь, что у сайта есть доступ на www.dokuwiki.org и также проверьте настройки соединения прокси.';
+$lang['nossl'] = 'Ваша PHP конфигурация не имеет SSL поддержки. Это поломает скачивание для многих DokuWiki плагинов и дополнений.';
diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php
index 5ab3d77ba..f07bee0ac 100644
--- a/lib/plugins/extension/lang/zh/lang.php
+++ b/lib/plugins/extension/lang/zh/lang.php
@@ -2,11 +2,12 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Cupen <Cupenoruler@foxmail.com>
* @author xiqingongzi <Xiqingongzi@Gmail.com>
* @author qinghao <qingxianhao@gmail.com>
* @author lainme <lainme993@gmail.com>
+ * @author Errol <errol@hotmail.com>
*/
$lang['menu'] = '扩展管理器';
$lang['tab_plugins'] = '安装插件';
@@ -28,6 +29,10 @@ $lang['btn_disable'] = '关闭';
$lang['btn_install'] = '安装';
$lang['btn_reinstall'] = '重新安装';
$lang['js']['reallydel'] = '确定卸载这个扩展么?';
+$lang['js']['display_viewoptions'] = '查看选项:';
+$lang['js']['display_enabled'] = '启用';
+$lang['js']['display_disabled'] = '禁用';
+$lang['js']['display_updatable'] = '可更新';
$lang['search_for'] = '搜索扩展';
$lang['search'] = '搜索';
$lang['extensionby'] = '<strong>%s</strong> by %s';
diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js
index bc1bf8b12..0c43de6ae 100644
--- a/lib/plugins/extension/script.js
+++ b/lib/plugins/extension/script.js
@@ -5,7 +5,7 @@ jQuery(function(){
/**
* Confirm uninstalling
*/
- $extmgr.find('input.uninstall').click(function(e){
+ $extmgr.find('button.uninstall').click(function(e){
if(!window.confirm(LANG.plugins.extension.reallydel)){
e.preventDefault();
return false;
@@ -46,7 +46,7 @@ jQuery(function(){
/**
* Enable/Disable extension via AJAX
*/
- $extmgr.find('input.disable, input.enable').click(function (e) {
+ $extmgr.find('button.disable, button.enable').click(function (e) {
e.preventDefault();
var $btn = jQuery(this);
@@ -114,19 +114,20 @@ jQuery(function(){
Create section for enabling/disabling viewing options
*/
if ( $extmgr.find('.plugins, .templates').hasClass('active') ) {
+ var $extlist = jQuery('#extension__list');
+ $extlist.addClass('hasDisplayOptions');
var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' ));
$displayOpts.append(LANG.plugins.extension.display_viewoptions);
-
+
var displayOptionsHandler = function(){
- jQuery('#extension__list').toggleClass( this.name );
+ $extlist.toggleClass( this.name );
};
-
+
jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){
-
var $label = jQuery( '<label></label>' ).appendTo($displayOpts);
jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click();
- jQuery( '<span/>' ).append(LANG.plugins.extension['display_'+chkName]).appendTo($label);
+ jQuery( '<span/>' ).append(' '+LANG.plugins.extension['display_'+chkName]).appendTo($label);
});
}
});
diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less
index 38b2d65d0..c400d649a 100644
--- a/lib/plugins/extension/style.less
+++ b/lib/plugins/extension/style.less
@@ -80,8 +80,8 @@
overflow: hidden;
}
- input.button {
- margin: 0 .3em .3em 0;
+ button {
+ margin-bottom: .3em;
}
}
@@ -281,18 +281,21 @@
* Enabled/Disabled overrides
*/
#extension__list {
-
- .enabled, .disabled,
- .updatable {
- display: none;
- }
-
- &.enabled .enabled,
- &.disabled .disabled,
- &.updatable .updatable {
- display: block;
+
+ &.hasDisplayOptions {
+ .enabled,
+ .disabled,
+ .updatable {
+ display: none;
+ }
+
+ &.enabled .enabled,
+ &.disabled .disabled,
+ &.updatable .updatable {
+ display: block;
+ }
}
-
+
.enabled div.screenshot span {
background: transparent url(images/enabled.png) no-repeat 2px 2px;
}
@@ -376,4 +379,5 @@
#extension__viewoptions label {
margin-left: 1em;
+ vertical-align: baseline;
}
diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php
index a2c3c6c8b..0cf174e0d 100644
--- a/lib/plugins/popularity/admin.php
+++ b/lib/plugins/popularity/admin.php
@@ -144,7 +144,7 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin {
.'<input type="hidden" name="do" value="admin" />'
.'<input type="hidden" name="page" value="popularity" />';
}
- $form .= '<input type="submit" class="button" value="'.$this->getLang('submit').'"/>'
+ $form .= '<button type="submit">'.$this->getLang('submit').'</button>'
.'</fieldset>'
.'</form>';
return $form;
diff --git a/lib/plugins/popularity/lang/ja/intro.txt b/lib/plugins/popularity/lang/ja/intro.txt
index 09886f418..db9a34284 100644
--- a/lib/plugins/popularity/lang/ja/intro.txt
+++ b/lib/plugins/popularity/lang/ja/intro.txt
@@ -1,6 +1,6 @@
====== 利用状況調査 ======
-このツールは、ご利用中のwikiの情報を収集し、それをDokuWikiの開発者へ匿名で送信するものです。開発者はこのツールにより、DokuWikiが実際にどの様に利用されているかを理解し、そして実際の利用状況に基づいて今後の開発方針の決定することができます。
+この[[doku>ja:popularity|ツール]]は、ご利用中のwikiの情報を収集し、それをDokuWikiの開発者へ匿名で送信するものです。開発者はこのツールにより、DokuWikiが実際にどの様に利用されているかを理解し、そして実際の利用状況に基づいて今後の開発方針の決定することができます。
お使いのwikiの規模が大きくなってきたときは、このステップを定期的に繰り返すことを推奨しています。また、送信されたデータは匿名のIDで識別されます。
diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt
index bc9bb9dd0..edc0f8733 100644
--- a/lib/plugins/popularity/lang/ko/intro.txt
+++ b/lib/plugins/popularity/lang/ko/intro.txt
@@ -1,6 +1,6 @@
====== 인기도 조사 ======
-설치된 위키의 익명 정보를 도쿠위키 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 도쿠위키가 실제 사용자에게 어떻게 사용되는지 도쿠위키 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다.
+설치된 위키의 익명 정보를 도쿠위키 개발자에게 보냅니다. 이 [[doku>ko:popularity|도구]]는 도쿠위키가 실제 사용자에게 어떻게 사용되는지 도쿠위키 개발자에게 알려줌으로써 이 후 개발 시 참조가 됩니다.
설치된 위키가 커짐에 따라서 이 과정을 반복할 필요가 있습니다. 반복된 데이터는 익명 ID로 구별되어집니다.
diff --git a/lib/plugins/remote.php b/lib/plugins/remote.php
index a51f701fb..47f954ee6 100644
--- a/lib/plugins/remote.php
+++ b/lib/plugins/remote.php
@@ -1,19 +1,30 @@
<?php
+/**
+ * Class DokuWiki_Remote_Plugin
+ */
abstract class DokuWiki_Remote_Plugin extends DokuWiki_Plugin {
private $api;
+ /**
+ * Constructor
+ */
public function __construct() {
$this->api = new RemoteAPI();
}
/**
+ * Get all available methods with remote access.
+ *
* @abstract
- * @return array Information to all provided methods. {@see RemoteAPI}.
+ * @return array Information about all provided methods. {@see RemoteAPI}.
*/
public abstract function _getMethods();
+ /**
+ * @return RemoteAPI
+ */
protected function getApi() {
return $this->api;
}
diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php
index b61615d00..1a0300585 100644
--- a/lib/plugins/revert/admin.php
+++ b/lib/plugins/revert/admin.php
@@ -64,9 +64,9 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin {
global $lang, $INPUT;
echo '<form action="" method="post"><div class="no">';
echo '<label>'.$this->getLang('filter').': </label>';
- echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" />';
- echo ' <input type="submit" class="button" value="'.$lang['btn_search'].'" />';
- echo ' <span>'.$this->getLang('note1').'</span>';
+ echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" /> ';
+ echo '<button type="submit">'.$lang['btn_search'].'</button> ';
+ echo '<span>'.$this->getLang('note1').'</span>';
echo '</div></form><br /><br />';
}
@@ -173,7 +173,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin {
echo '</ul>';
echo '<p>';
- echo '<input type="submit" class="button" value="'.$this->getLang('revert').'" /> ';
+ echo '<button type="submit">'.$this->getLang('revert').'</button> ';
printf($this->getLang('note2'),hsc($filter));
echo '</p>';
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index 0d92e5cc1..86823ee2f 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -241,18 +241,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln(" <tbody>");
ptln(" <tr><td colspan=\"5\" class=\"centeralign\">");
ptln(" <span class=\"medialeft\">");
- ptln(" <input type=\"submit\" name=\"fn[delete]\" ".$delete_disable." class=\"button\" value=\"".$this->lang['delete_selected']."\" id=\"usrmgr__del\" />");
- ptln(" </span>");
+ ptln(" <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>");
+ ptln(" ");
ptln(" <span class=\"mediaright\">");
- ptln(" <input type=\"submit\" name=\"fn[start]\" ".$page_buttons['start']." class=\"button\" value=\"".$this->lang['start']."\" />");
- ptln(" <input type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev']." class=\"button\" value=\"".$this->lang['prev']."\" />");
- ptln(" <input type=\"submit\" name=\"fn[next]\" ".$page_buttons['next']." class=\"button\" value=\"".$this->lang['next']."\" />");
- ptln(" <input type=\"submit\" name=\"fn[last]\" ".$page_buttons['last']." class=\"button\" value=\"".$this->lang['last']."\" />");
+ ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>");
+ ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>");
+ ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>");
+ ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>");
ptln(" </span>");
if (!empty($this->_filter)) {
- ptln(" <input type=\"submit\" name=\"fn[search][clear]\" class=\"button\" value=\"".$this->lang['clear']."\" />");
+ ptln(" <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>");
}
- ptln(" <input type=\"submit\" name=\"fn[export]\" class=\"button\" value=\"".$export_label."\" />");
+ ptln(" <button type=\"submit\" name=\"fn[export]\">".$export_label."</button>");
ptln(" <input type=\"hidden\" name=\"do\" value=\"admin\" />");
ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />");
@@ -360,7 +360,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
$this->_htmlFilterSettings($indent+10);
- ptln(" <input type=\"submit\" name=\"fn[".$cmd."]\" class=\"button\" value=\"".$this->lang[$cmd]."\" />",$indent);
+ ptln(" <button type=\"submit\" name=\"fn[".$cmd."]\">".$this->lang[$cmd]."</button>",$indent);
ptln(" </td>",$indent);
ptln(" </tr>",$indent);
ptln(" </tbody>",$indent);
@@ -369,7 +369,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
if ($notes) {
ptln(" <ul class=\"notes\">");
foreach ($notes as $note) {
- ptln(" <li><span class=\"li\">".$note."</span></li>",$indent);
+ ptln(" <li><span class=\"li\">".$note."</li>",$indent);
}
ptln(" </ul>");
}
@@ -456,7 +456,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
ptln(' <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent);
formSecurityToken();
ptln(' <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent);
- ptln(' <input type="submit" name="fn[import]" value="'.$this->lang['import'].'" />',$indent);
+ ptln(' <button type="submit" name="fn[import]">'.$this->lang['import'].'</button>',$indent);
ptln(' <input type="hidden" name="do" value="admin" />',$indent);
ptln(' <input type="hidden" name="page" value="usermanager" />',$indent);
diff --git a/lib/plugins/usermanager/style.css b/lib/plugins/usermanager/style.css
index d119b195a..9028fed5e 100644
--- a/lib/plugins/usermanager/style.css
+++ b/lib/plugins/usermanager/style.css
@@ -17,7 +17,7 @@
padding-left: 0;
padding-right: 1.4em;
}
-#user__manager input.button[disabled] {
+#user__manager button[disabled] {
color: #ccc!important;
border-color: #ccc!important;
}
diff --git a/lib/scripts/behaviour.js b/lib/scripts/behaviour.js
index fb61f6e48..b05949a90 100644
--- a/lib/scripts/behaviour.js
+++ b/lib/scripts/behaviour.js
@@ -1,37 +1,41 @@
/**
* Hides elements with a slide animation
*
- * @param fn optional callback to run after hiding
+ * @param {function} fn optional callback to run after hiding
+ * @param {bool} noaria supress aria-expanded state setting
* @author Adrian Lang <mail@adrianlang.de>
*/
-jQuery.fn.dw_hide = function(fn) {
- this.attr('aria-expanded', 'false');
+jQuery.fn.dw_hide = function(fn, noaria) {
+ if(!noaria) this.attr('aria-expanded', 'false');
return this.slideUp('fast', fn);
};
/**
* Unhides elements with a slide animation
*
- * @param fn optional callback to run after hiding
+ * @param {function} fn optional callback to run after hiding
+ * @param {bool} noaria supress aria-expanded state setting
* @author Adrian Lang <mail@adrianlang.de>
*/
-jQuery.fn.dw_show = function(fn) {
- this.attr('aria-expanded', 'true');
+jQuery.fn.dw_show = function(fn, noaria) {
+ if(!noaria) this.attr('aria-expanded', 'true');
return this.slideDown('fast', fn);
};
/**
* Toggles visibility of an element using a slide element
*
- * @param bool the current state of the element (optional)
+ * @param {bool} state the current state of the element (optional)
+ * @param {function} fn callback after the state has been toggled
+ * @param {bool} noaria supress aria-expanded state setting
*/
-jQuery.fn.dw_toggle = function(bool, fn) {
+jQuery.fn.dw_toggle = function(state, fn, noaria) {
return this.each(function() {
var $this = jQuery(this);
- if (typeof bool === 'undefined') {
- bool = $this.is(':hidden');
+ if (typeof state === 'undefined') {
+ state = $this.is(':hidden');
}
- $this[bool ? "dw_show" : "dw_hide" ](fn);
+ $this[state ? "dw_show" : "dw_hide" ](fn, noaria);
});
};
@@ -107,7 +111,7 @@ var dw_behaviour = {
quickSelect: function(){
jQuery('select.quickselect')
.change(function(e){ e.target.form.submit(); })
- .closest('form').find('input[type=submit]').not('.show').hide();
+ .closest('form').find(':button').not('.show').hide();
},
/**
@@ -171,10 +175,10 @@ var dw_behaviour = {
if($checked.length < 2){
$all.attr('disabled',false);
- jQuery('#page__revisions input[type=submit]').attr('disabled',true);
+ jQuery('#page__revisions button').attr('disabled',true);
}else{
$all.attr('disabled',true);
- jQuery('#page__revisions input[type=submit]').attr('disabled',false);
+ jQuery('#page__revisions button').attr('disabled',false);
for(var i=0; i<$checked.length; i++){
$checked[i].disabled = false;
if(i>1){
diff --git a/lib/scripts/editor.js b/lib/scripts/editor.js
index f4143f0bc..fac084489 100644
--- a/lib/scripts/editor.js
+++ b/lib/scripts/editor.js
@@ -146,7 +146,7 @@ var dw_editor = {
if((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) { // Ctrl-Enter (With Chrome workaround)
// Submit current edit
- jQuery('input#edbtn__save').click();
+ jQuery('#edbtn__save').click();
e.preventDefault(); // prevent enter key
return false;
}else if(e.keyCode == 13){ // Enter
diff --git a/lib/scripts/fileuploaderextended.js b/lib/scripts/fileuploaderextended.js
index f5786c387..d6a82397d 100644
--- a/lib/scripts/fileuploaderextended.js
+++ b/lib/scripts/fileuploaderextended.js
@@ -82,7 +82,7 @@ qq.FileUploaderExtended = function(o){
'<div class="qq-upload-button">' + LANG.media_select + '</div>' +
'<ul class="qq-upload-list"></ul>' +
'<div class="qq-action-container">' +
- ' <input class="qq-upload-action button" type="submit" value="' + LANG.media_upload_btn + '" id="mediamanager__upload_button">' +
+ ' <button class="qq-upload-action" type="submit" id="mediamanager__upload_button">' + LANG.media_upload_btn + '</button>' +
' <label class="qq-overwrite-check"><input type="checkbox" value="1" name="ow" class="dw__ow"> <span>' + LANG.media_overwrt + '</span></label>' +
'</div>' +
'</div>',
@@ -189,7 +189,7 @@ qq.extend(qq.FileUploaderExtended.prototype, {
var button = '<form method="post" action="' + action + '" id="mediamanager__done_form"><div>';
button += '<input type="hidden" value="' + result.ns + '" name="ns">';
button += '<input type="hidden" value="1" name="recent">';
- button += '<input class="button" type="submit" value="' + LANG.media_done_btn + '"></div></form>';
+ button += '<button type="submit">' + LANG.media_done_btn + '</button></div></form>';
jQuery('#mediamanager__uploader').append(button);
}
}
diff --git a/lib/scripts/hotkeys.js b/lib/scripts/hotkeys.js
index bff28530d..76a277aea 100644
--- a/lib/scripts/hotkeys.js
+++ b/lib/scripts/hotkeys.js
@@ -26,7 +26,7 @@ function Hotkeys() {
* Initialization
*
* This function looks up all the accesskeys used in the current page
- * (at anchor elements and input elements [type="submit"]) and registers
+ * (at anchor elements and button elements [type="submit"]) and registers
* appropriate shortcuts.
*
* Secondly, initialization registers listeners on document to catch all
@@ -59,10 +59,10 @@ function Hotkeys() {
});
/**
- * Lookup all input [type="submit"] with accesskey and register event -
+ * Lookup all button [type="submit"] with accesskey and register event -
* perform "click" on a button.
*/
- var inputs = document.getElementsByTagName("input");
+ var inputs = document.getElementsByTagName("button");
t.each(inputs, function(i) {
if (i.type == "submit" && i.accessKey != "") {
t.addShortcut(t.modifier + '+' + i.accessKey, function() {
diff --git a/lib/scripts/media.js b/lib/scripts/media.js
index 8ca21ecab..2995addfd 100644
--- a/lib/scripts/media.js
+++ b/lib/scripts/media.js
@@ -119,7 +119,7 @@ var dw_mediamanager = {
$both = $listType.add($sortBy);
// Remove the submit button
- $options.find('input[type=submit]').parent().hide();
+ $options.find('button[type=submit]').parent().hide();
// Prepare HTML for jQuery UI buttonset
$both.find('label').each(function () {
@@ -435,7 +435,7 @@ var dw_mediamanager = {
dw_mediamanager.$resizables().resizable('destroy');
if (update_list) {
- dw_mediamanager.list.call(jQuery('#mediamanager__page form.options input[type="submit"]')[0]);
+ dw_mediamanager.list.call(jQuery('#mediamanager__page form.options button[type="submit"]')[0]);
}
$content.html(data);
diff --git a/lib/scripts/page.js b/lib/scripts/page.js
index 7b4958d82..a179ae2a8 100644
--- a/lib/scripts/page.js
+++ b/lib/scripts/page.js
@@ -109,8 +109,14 @@ dw_page = {
* as well. A state indicator is inserted into the handle and can be styled
* by CSS.
*
- * @param selector handle What should be clicked to toggle
- * @param selector content This element will be toggled
+ * To properly reserve space for the expanded element, the sliding animation is
+ * done on the children of the content. To make that look good and to make sure aria
+ * attributes are assigned correctly, it's recommended to make sure that the content
+ * element contains a single child element only.
+ *
+ * @param {selector} handle What should be clicked to toggle
+ * @param {selector} content This element will be toggled
+ * @param {int} state initial state (-1 = open, 1 = closed)
*/
makeToggle: function(handle, content, state){
var $handle, $content, $clicky, $child, setClicky;
@@ -160,8 +166,9 @@ dw_page = {
// Start animation and assure that $toc is hidden/visible
$child.dw_toggle(hidden, function () {
$content.toggle(hidden);
+ $content.attr('aria-expanded', hidden);
$content.css('min-height',''); // remove min-height again
- });
+ }, true);
};
// the state indicator
diff --git a/lib/tpl/dokuwiki/css/_edit.css b/lib/tpl/dokuwiki/css/_edit.css
index f40aaa891..d6dcb93ab 100644
--- a/lib/tpl/dokuwiki/css/_edit.css
+++ b/lib/tpl/dokuwiki/css/_edit.css
@@ -88,7 +88,7 @@ div.picker button.toolbutton {
margin-right: 0;
margin-left: 1em;
}
-.dokuwiki .editBar .editButtons input {
+.dokuwiki .editBar .editButtons button {
}
/* summary input and minor changes checkbox */
@@ -130,7 +130,7 @@ div.picker button.toolbutton {
[dir=rtl] .dokuwiki .secedit {
float: left;
}
-.dokuwiki .secedit input.button {
+.dokuwiki .secedit button {
font-size: 75%;
}
diff --git a/lib/tpl/dokuwiki/css/_forms.css b/lib/tpl/dokuwiki/css/_forms.css
index 522f9ed4d..bf70fa24b 100644
--- a/lib/tpl/dokuwiki/css/_forms.css
+++ b/lib/tpl/dokuwiki/css/_forms.css
@@ -62,8 +62,7 @@
}
-.dokuwiki input.button,
-.dokuwiki button.button {
+.dokuwiki button {
vertical-align: middle;
}
/**
diff --git a/lib/tpl/dokuwiki/css/_media_fullscreen.css b/lib/tpl/dokuwiki/css/_media_fullscreen.css
index 31b71897b..71308ec85 100644
--- a/lib/tpl/dokuwiki/css/_media_fullscreen.css
+++ b/lib/tpl/dokuwiki/css/_media_fullscreen.css
@@ -394,7 +394,7 @@
width: 50%;
}
-#mediamanager__page form.meta input.button {
+#mediamanager__page form.meta button {
width: auto;
}
diff --git a/lib/tpl/dokuwiki/css/_media_popup.css b/lib/tpl/dokuwiki/css/_media_popup.css
index 20d669c14..af536489c 100644
--- a/lib/tpl/dokuwiki/css/_media_popup.css
+++ b/lib/tpl/dokuwiki/css/_media_popup.css
@@ -204,7 +204,7 @@ html.popup {
}
#dw__mediasearch input.edit {
}
-#dw__mediasearch input.button {
+#dw__mediasearch button {
}
diff --git a/lib/tpl/dokuwiki/css/_modal.css b/lib/tpl/dokuwiki/css/_modal.css
index a46dff30e..37f64830f 100644
--- a/lib/tpl/dokuwiki/css/_modal.css
+++ b/lib/tpl/dokuwiki/css/_modal.css
@@ -88,7 +88,7 @@
cursor: default;
}
-#media__popup_content .button {
+#media__popup_content button {
margin-right: 1px;
cursor: pointer;
}
diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less
index 548ba7228..ed643fb25 100644
--- a/lib/tpl/dokuwiki/css/design.less
+++ b/lib/tpl/dokuwiki/css/design.less
@@ -207,12 +207,12 @@ form.search {
position: relative;
margin-bottom: 0.5em;
- input.edit {
+ input {
width: 18em;
padding: .35em 22px .35em .1em;
}
- input.button {
+ button {
background: transparent url(images/search.png) no-repeat 0 0;
border-width: 0;
width: 19px;
@@ -225,11 +225,11 @@ form.search {
}
[dir=rtl] form.search {
- input.edit {
+ input {
padding: .35em .1em .35em 22px;
}
- input.button {
+ button {
background-position: 5px 0;
margin-left: 0;
margin-right: -20px;
diff --git a/lib/tpl/dokuwiki/css/mobile.less b/lib/tpl/dokuwiki/css/mobile.less
index e5e13e221..a52c723ca 100644
--- a/lib/tpl/dokuwiki/css/mobile.less
+++ b/lib/tpl/dokuwiki/css/mobile.less
@@ -237,7 +237,7 @@ body {
margin: 0 0 .2em .2em;
}
-#dokuwiki__sitetools form.search input.edit {
+#dokuwiki__sitetools form.search input {
width: 100% !important;
}
.dokuwiki form.search div.ajax_qsearch {
@@ -261,7 +261,7 @@ body {
}
/* force same height on search input and tools select */
-#dokuwiki__sitetools form.search input.edit,
+#dokuwiki__sitetools form.search input,
#dokuwiki__header .mobileTools select {
height: 2.1em;
line-height: 2.1em;
diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php
index 165230e8a..eea1df71a 100644
--- a/lib/tpl/dokuwiki/main.php
+++ b/lib/tpl/dokuwiki/main.php
@@ -38,12 +38,12 @@ $showSidebar = $hasSidebar && ($ACT=='show');
<!-- ********** ASIDE ********** -->
<div id="dokuwiki__aside"><div class="pad aside include group">
<h3 class="toggle"><?php echo $lang['sidebar'] ?></h3>
- <div class="content">
+ <div class="content"><div class="group">
<?php tpl_flush() ?>
<?php tpl_includeFile('sidebarheader.html') ?>
<?php tpl_include_page($conf['sidebar'], true, true) ?>
<?php tpl_includeFile('sidebarfooter.html') ?>
- </div>
+ </div></div>
</div></div><!-- /aside -->
<?php endif; ?>
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 5e1469e83..4e05d3b15 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -351,7 +351,7 @@ class ClassLoader
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
if (0 === strpos($class, $prefix)) {
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
+ if (is_file($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file;
}
}
@@ -361,7 +361,7 @@ class ClassLoader
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
@@ -380,7 +380,7 @@ class ClassLoader
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
@@ -390,7 +390,7 @@ class ClassLoader
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index a9eb3f9ee..9b20b8a09 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,99 +1,99 @@
[
{
- "name": "splitbrain/php-archive",
- "version": "1.0.0",
- "version_normalized": "1.0.0.0",
+ "name": "easybook/geshi",
+ "version": "v1.0.8.15",
+ "version_normalized": "1.0.8.15",
"source": {
"type": "git",
- "url": "https://github.com/splitbrain/php-archive.git",
- "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549"
+ "url": "https://github.com/easybook/geshi.git",
+ "reference": "54387de80bc7ee50397ffae39234626a48d2d45f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a0fbfc2f85ed491f3d2af42cff48a9cb783a8549",
- "reference": "a0fbfc2f85ed491f3d2af42cff48a9cb783a8549",
+ "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f",
+ "reference": "54387de80bc7ee50397ffae39234626a48d2d45f",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "4.5.*"
+ "php": ">4.3.0"
},
- "time": "2015-02-25 20:15:02",
+ "time": "2015-06-18 14:56:28",
"type": "library",
"installation-source": "dist",
"autoload": {
- "psr-4": {
- "splitbrain\\PHPArchive\\": "src"
- }
+ "classmap": [
+ "./"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "GPL-2.0"
],
"authors": [
{
- "name": "Andreas Gohr",
- "email": "andi@splitbrain.org"
+ "name": "Nigel McNie",
+ "email": "nigel@geshi.org"
+ },
+ {
+ "name": "Benny Baumann",
+ "email": "BenBE@geshi.org"
}
],
- "description": "Pure-PHP implementation to read and write TAR and ZIP archives",
+ "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.",
+ "homepage": "http://qbnz.com/highlighter",
"keywords": [
- "archive",
- "extract",
- "tar",
- "unpack",
- "unzip",
- "zip"
+ "highlight",
+ "highlighter",
+ "syntax"
]
},
{
- "name": "easybook/geshi",
- "version": "v1.0.8.14",
- "version_normalized": "1.0.8.14",
+ "name": "splitbrain/php-archive",
+ "version": "1.0.4",
+ "version_normalized": "1.0.4.0",
"source": {
"type": "git",
- "url": "https://github.com/easybook/geshi.git",
- "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8"
+ "url": "https://github.com/splitbrain/php-archive.git",
+ "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/easybook/geshi/zipball/af589a67bf308791bb13e54bddd9aa3544b7dff8",
- "reference": "af589a67bf308791bb13e54bddd9aa3544b7dff8",
+ "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6572e78ef9d064eeb5c74d4ffe61b473a4996b68",
+ "reference": "6572e78ef9d064eeb5c74d4ffe61b473a4996b68",
"shasum": ""
},
"require": {
- "php": ">4.3.0"
+ "php": ">=5.3.0"
},
- "time": "2015-04-15 13:21:45",
+ "require-dev": {
+ "phpunit/phpunit": "4.5.*"
+ },
+ "time": "2015-07-24 11:36:49",
"type": "library",
"installation-source": "dist",
"autoload": {
- "classmap": [
- "./"
- ]
+ "psr-4": {
+ "splitbrain\\PHPArchive\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "GPL-2.0"
+ "MIT"
],
"authors": [
{
- "name": "Nigel McNie",
- "email": "nigel@geshi.org"
- },
- {
- "name": "Benny Baumann",
- "email": "BenBE@geshi.org"
+ "name": "Andreas Gohr",
+ "email": "andi@splitbrain.org"
}
],
- "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.",
- "homepage": "http://qbnz.com/highlighter",
+ "description": "Pure-PHP implementation to read and write TAR and ZIP archives",
"keywords": [
- "highlight",
- "highlighter",
- "syntax"
+ "archive",
+ "extract",
+ "tar",
+ "unpack",
+ "unzip",
+ "zip"
]
}
]
diff --git a/vendor/easybook/geshi/geshi/cpp-qt.php b/vendor/easybook/geshi/geshi/cpp-qt.php
index 5a23f5854..44f2d215f 100755
--- a/vendor/easybook/geshi/geshi/cpp-qt.php
+++ b/vendor/easybook/geshi/geshi/cpp-qt.php
@@ -540,7 +540,7 @@ $language_data = array (
2 => '',
3 => '',
4 => '',
- 5 => 'http://doc.trolltech.com/latest/{FNAMEL}.html'
+ 5 => 'http://doc.qt.io/qt-5/{FNAMEL}.html'
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => array(
diff --git a/vendor/splitbrain/php-archive/README.md b/vendor/splitbrain/php-archive/README.md
index 4fb673259..6c5780a7a 100644
--- a/vendor/splitbrain/php-archive/README.md
+++ b/vendor/splitbrain/php-archive/README.md
@@ -18,24 +18,29 @@ Use composer:
Usage
-----
-The usage for the Zip and Tar classes are basically the same. Here are some examples for working with TARs to get
-you started. Check the source code comments for more info
+The usage for the Zip and Tar classes are basically the same. Here are some
+examples for working with TARs to get you started. Check the source code
+comments for more info
```php
+require_once 'vendor/autoload.php';
use splitbrain\PHPArchive\Tar;
-// To list the contents of an existing TAR archive, open() it and use contents() on it:
+// To list the contents of an existing TAR archive, open() it and use
+// contents() on it:
$tar = new Tar();
$tar->open('myfile.tgz');
$toc = $tar->contents();
print_r($toc); // array of FileInfo objects
-// To extract the contents of an existing TAR archive, open() it and use extract() on it:
+// To extract the contents of an existing TAR archive, open() it and use
+// extract() on it:
$tar = new Tar();
$tar->open('myfile.tgz');
$tar->extract('/tmp');
-// To create a new TAR archive directly on the filesystem (low memory requirements), create() it,
+// To create a new TAR archive directly on the filesystem (low memory
+// requirements), create() it:
$tar = new Tar();
$tar->create('myfile.tgz');
$tar->addFile(...);
@@ -43,8 +48,8 @@ $tar->addData(...);
...
$tar->close();
-// To create a TAR archive directly in memory, create() it, add*() files and then either save()
-// or getData() it:
+// To create a TAR archive directly in memory, create() it, add*()
+// files and then either save() or getArchive() it:
$tar = new Tar();
$tar->create();
$tar->addFile(...);
@@ -54,8 +59,8 @@ $tar->save('myfile.tgz'); // compresses and saves it
echo $tar->getArchive(Archive::COMPRESS_GZIP); // compresses and returns it
```
-Differences between Tar and Zip: Tars are compressed as a whole while Zips compress each file individually. Therefore
-you can call ```setCompression``` before each ```addFile()``` and ```addData()``` functions.
+Differences between Tar and Zip: Tars are compressed as a whole, while Zips compress each file individually. Therefore
+you can call ```setCompression``` before each ```addFile()``` and ```addData()``` function call.
The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to
an archive. \ No newline at end of file
diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php
index c2ff36575..1bc1ac1b7 100644
--- a/vendor/splitbrain/php-archive/src/Zip.php
+++ b/vendor/splitbrain/php-archive/src/Zip.php
@@ -7,6 +7,8 @@ namespace splitbrain\PHPArchive;
*
* Creates or extracts Zip archives
*
+ * for specs see http://www.pkware.com/appnote
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @package splitbrain\PHPArchive
* @license MIT
@@ -221,6 +223,7 @@ class Zip extends Archive
}
fclose($fp);
gzclose($gzp);
+ unlink($extractto); // remove temporary gz file
}
touch($output, $fileinfo->getMtime());
@@ -308,45 +311,45 @@ class Zip extends Archive
throw new ArchiveIOException('Archive has been closed, files can no longer be added');
}
- // prepare the various header infos
- $dtime = dechex($this->makeDosTime($fileinfo->getMtime()));
- $hexdtime = pack(
- 'H*',
- $dtime[6].$dtime[7].
- $dtime[4].$dtime[5].
- $dtime[2].$dtime[3].
- $dtime[0].$dtime[1]
- );
+ // prepare info and compress data
$size = strlen($data);
$crc = crc32($data);
if ($this->complevel) {
- $fmagic = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00";
- $cmagic = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00";
- $data = gzcompress($data, $this->complevel);
- $data = substr($data, 2, -4); // strip compression headers
- } else {
- $fmagic = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00";
- $cmagic = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00";
+ $data = gzcompress($data, $this->complevel);
+ $data = substr($data, 2, -4); // strip compression headers
}
$csize = strlen($data);
$offset = $this->dataOffset();
$name = $fileinfo->getPath();
+ $time = $fileinfo->getMtime();
+
+ // write local file header
+ $this->writebytes($this->makeLocalFileHeader(
+ $time,
+ $crc,
+ $size,
+ $csize,
+ $name,
+ (bool) $this->complevel
+ ));
+
+ // we store no encryption header
// write data
- $this->writebytes($fmagic);
- $this->writebytes($hexdtime);
- $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //pre header
- $this->writebytes(pack('v', strlen($name)).pack('v', 0).$name.$data); //file data
- $this->writebytes(pack('V', $crc).pack('V', $csize).pack('V', $size)); //post header
+ $this->writebytes($data);
+
+ // we store no data descriptor
// add info to central file directory
- $cdrec = $cmagic;
- $cdrec .= $hexdtime.pack('V', $crc).pack('V', $csize).pack('V', $size);
- $cdrec .= pack('v', strlen($name)).pack('v', 0).pack('v', 0);
- $cdrec .= pack('v', 0).pack('v', 0).pack('V', 32);
- $cdrec .= pack('V', $offset);
- $cdrec .= $name;
- $this->ctrl_dir[] = $cdrec;
+ $this->ctrl_dir[] = $this->makeCentralFileRecord(
+ $offset,
+ $time,
+ $crc,
+ $size,
+ $csize,
+ $name,
+ (bool) $this->complevel
+ );
}
/**
@@ -361,14 +364,24 @@ class Zip extends Archive
return;
} // we did this already
- // write footer
if ($this->writeaccess) {
- $offset = $this->dataOffset();
+ // write central directory
+ $offset = $this->dataOffset();
$ctrldir = join('', $this->ctrl_dir);
$this->writebytes($ctrldir);
- $this->writebytes("\x50\x4b\x05\x06\x00\x00\x00\x00"); // EOF CTRL DIR
- $this->writebytes(pack('v', count($this->ctrl_dir)).pack('v', count($this->ctrl_dir)));
- $this->writebytes(pack('V', strlen($ctrldir)).pack('V', strlen($offset))."\x00\x00");
+
+ // write end of central directory record
+ $this->writebytes("\x50\x4b\x05\x06"); // end of central dir signature
+ $this->writebytes(pack('v', 0)); // number of this disk
+ $this->writebytes(pack('v', 0)); // number of the disk with the start of the central directory
+ $this->writebytes(pack('v',
+ count($this->ctrl_dir))); // total number of entries in the central directory on this disk
+ $this->writebytes(pack('v', count($this->ctrl_dir))); // total number of entries in the central directory
+ $this->writebytes(pack('V', strlen($ctrldir))); // size of the central directory
+ $this->writebytes(pack('V',
+ $offset)); // offset of start of central directory with respect to the starting disk number
+ $this->writebytes(pack('v', 0)); // .ZIP file comment length
+
$this->ctrl_dir = array();
}
@@ -492,18 +505,7 @@ class Zip extends Archive
$header['comment'] = '';
}
- if ($header['mdate'] && $header['mtime']) {
- $hour = ($header['mtime'] & 0xF800) >> 11;
- $minute = ($header['mtime'] & 0x07E0) >> 5;
- $seconde = ($header['mtime'] & 0x001F) * 2;
- $year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
- $month = ($header['mdate'] & 0x01E0) >> 5;
- $day = $header['mdate'] & 0x001F;
- $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
- } else {
- $header['mtime'] = time();
- }
-
+ $header['mtime'] = $this->makeUnixTime($header['mdate'], $header['mtime']);
$header['stored_filename'] = $header['filename'];
$header['status'] = 'ok';
if (substr($header['filename'], -1) == '/') {
@@ -518,12 +520,12 @@ class Zip extends Archive
* Reads the local file header
*
* This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at
- * the right position already. Enhances this given central header with the data found at the local header.
+ * the right position already. Enhances the given central header with the data found at the local header.
*
* @param array $header the central file header read previously (see above)
* @return array
*/
- function readFileHeader($header)
+ protected function readFileHeader($header)
{
$binary_data = fread($this->fh, 30);
$data = unpack(
@@ -549,20 +551,7 @@ class Zip extends Archive
}
}
$header['flag'] = $data['flag'];
- $header['mdate'] = $data['mdate'];
- $header['mtime'] = $data['mtime'];
-
- if ($header['mdate'] && $header['mtime']) {
- $hour = ($header['mtime'] & 0xF800) >> 11;
- $minute = ($header['mtime'] & 0x07E0) >> 5;
- $seconde = ($header['mtime'] & 0x001F) * 2;
- $year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
- $month = ($header['mdate'] & 0x01E0) >> 5;
- $day = $header['mdate'] & 0x001F;
- $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
- } else {
- $header['mtime'] = time();
- }
+ $header['mtime'] = $this->makeUnixTime($data['mdate'], $data['mtime']);
$header['stored_filename'] = $header['filename'];
$header['status'] = "ok";
@@ -651,4 +640,111 @@ class Zip extends Archive
($timearray['seconds'] >> 1);
}
+ /**
+ * Create a UNIX timestamp from a DOS timestamp
+ *
+ * @param $mdate
+ * @param $mtime
+ * @return int
+ */
+ protected function makeUnixTime($mdate = null, $mtime = null)
+ {
+ if ($mdate && $mtime) {
+ $year = (($mdate & 0xFE00) >> 9) + 1980;
+ $month = ($mdate & 0x01E0) >> 5;
+ $day = $mdate & 0x001F;
+
+ $hour = ($mtime & 0xF800) >> 11;
+ $minute = ($mtime & 0x07E0) >> 5;
+ $seconde = ($mtime & 0x001F) << 1;
+
+ $mtime = mktime($hour, $minute, $seconde, $month, $day, $year);
+ } else {
+ $mtime = time();
+ }
+
+ return $mtime;
+ }
+
+ /**
+ * Returns a local file header for the given data
+ *
+ * @param int $offset location of the local header
+ * @param int $ts unix timestamp
+ * @param int $crc CRC32 checksum of the uncompressed data
+ * @param int $len length of the uncompressed data
+ * @param int $clen length of the compressed data
+ * @param string $name file name
+ * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen
+ * @return string
+ */
+ protected function makeCentralFileRecord($offset, $ts, $crc, $len, $clen, $name, $comp = null)
+ {
+ if(is_null($comp)) $comp = $len != $clen;
+ $comp = $comp ? 8 : 0;
+ $dtime = dechex($this->makeDosTime($ts));
+
+ $header = "\x50\x4b\x01\x02"; // central file header signature
+ $header .= pack('v', 14); // version made by - VFAT
+ $header .= pack('v', 20); // version needed to extract - 2.0
+ $header .= pack('v', 0); // general purpose flag - no flags set
+ $header .= pack('v', $comp); // compression method - deflate|none
+ $header .= pack(
+ 'H*',
+ $dtime[6] . $dtime[7] .
+ $dtime[4] . $dtime[5] .
+ $dtime[2] . $dtime[3] .
+ $dtime[0] . $dtime[1]
+ ); // last mod file time and date
+ $header .= pack('V', $crc); // crc-32
+ $header .= pack('V', $clen); // compressed size
+ $header .= pack('V', $len); // uncompressed size
+ $header .= pack('v', strlen($name)); // file name length
+ $header .= pack('v', 0); // extra field length
+ $header .= pack('v', 0); // file comment length
+ $header .= pack('v', 0); // disk number start
+ $header .= pack('v', 0); // internal file attributes
+ $header .= pack('V', 0); // external file attributes @todo was 0x32!?
+ $header .= pack('V', $offset); // relative offset of local header
+ $header .= $name; // file name
+
+ return $header;
+ }
+
+ /**
+ * Returns a local file header for the given data
+ *
+ * @param int $ts unix timestamp
+ * @param int $crc CRC32 checksum of the uncompressed data
+ * @param int $len length of the uncompressed data
+ * @param int $clen length of the compressed data
+ * @param string $name file name
+ * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen
+ * @return string
+ */
+ protected function makeLocalFileHeader($ts, $crc, $len, $clen, $name, $comp = null)
+ {
+ if(is_null($comp)) $comp = $len != $clen;
+ $comp = $comp ? 8 : 0;
+ $dtime = dechex($this->makeDosTime($ts));
+
+ $header = "\x50\x4b\x03\x04"; // local file header signature
+ $header .= pack('v', 20); // version needed to extract - 2.0
+ $header .= pack('v', 0); // general purpose flag - no flags set
+ $header .= pack('v', $comp); // compression method - deflate|none
+ $header .= pack(
+ 'H*',
+ $dtime[6] . $dtime[7] .
+ $dtime[4] . $dtime[5] .
+ $dtime[2] . $dtime[3] .
+ $dtime[0] . $dtime[1]
+ ); // last mod file time and date
+ $header .= pack('V', $crc); // crc-32
+ $header .= pack('V', $clen); // compressed size
+ $header .= pack('V', $len); // uncompressed size
+ $header .= pack('v', strlen($name)); // file name length
+ $header .= pack('v', 0); // extra field length
+ $header .= $name;
+ return $header;
+ }
}