summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/Input.class.php58
-rw-r--r--inc/auth.php14
-rw-r--r--inc/common.php30
-rw-r--r--inc/fulltext.php2
-rw-r--r--inc/infoutils.php7
-rw-r--r--inc/init.php12
-rw-r--r--inc/lang/ar/lang.php13
-rw-r--r--inc/lang/cs/lang.php5
-rw-r--r--inc/lang/de/backlinks.txt2
-rw-r--r--inc/lang/de/lang.php2
-rw-r--r--inc/lang/es/lang.php1
-rw-r--r--inc/lang/fa/index.txt4
-rw-r--r--inc/lang/fa/lang.php64
-rw-r--r--inc/lang/fr/denied.txt2
-rw-r--r--inc/lang/fr/lang.php2
-rw-r--r--inc/lang/fr/newpage.txt2
-rw-r--r--inc/lang/hr/adminplugins.txt2
-rw-r--r--inc/lang/hr/backlinks.txt4
-rw-r--r--inc/lang/hr/edit.txt2
-rw-r--r--inc/lang/hr/index.txt4
-rw-r--r--inc/lang/hr/lang.php127
-rw-r--r--inc/lang/hr/revisions.txt2
-rw-r--r--inc/lang/hr/searchpage.txt6
-rw-r--r--inc/lang/hr/showrev.txt2
-rw-r--r--inc/lang/it/lang.php1
-rw-r--r--inc/lang/pt-br/lang.php2
-rw-r--r--inc/lang/ru/lang.php1
-rw-r--r--inc/lang/ta/lang.php7
-rw-r--r--inc/lang/zh-tw/lang.php2
-rw-r--r--inc/lang/zh/lang.php2
-rw-r--r--inc/template.php6
31 files changed, 248 insertions, 142 deletions
diff --git a/inc/Input.class.php b/inc/Input.class.php
index e7eef1c29..94da2a10e 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -21,6 +21,11 @@ class Input {
protected $access;
/**
+ * @var Callable
+ */
+ protected $filter;
+
+ /**
* Intilizes the Input class and it subcomponents
*/
function __construct() {
@@ -31,6 +36,32 @@ class Input {
}
/**
+ * Apply the set filter to the given value
+ *
+ * @param string $data
+ * @return string
+ */
+ protected function applyfilter($data){
+ if(!$this->filter) return $data;
+ return call_user_func($this->filter, $data);
+ }
+
+ /**
+ * Return a filtered copy of the input object
+ *
+ * Expects a callable that accepts one string parameter and returns a filtered string
+ *
+ * @param Callable|string $filter
+ * @return Input
+ */
+ public function filter($filter='stripctl'){
+ $this->filter = $filter;
+ $clone = clone $this;
+ $this->filter = '';
+ return $clone;
+ }
+
+ /**
* Check if a parameter was set
*
* Basically a wrapper around isset. When called on the $post and $get subclasses,
@@ -77,8 +108,9 @@ class Input {
*/
public function param($name, $default = null, $nonempty = false) {
if(!isset($this->access[$name])) return $default;
- if($nonempty && empty($this->access[$name])) return $default;
- return $this->access[$name];
+ $value = $this->applyfilter($this->access[$name]);
+ if($nonempty && empty($value)) return $default;
+ return $value;
}
/**
@@ -121,10 +153,11 @@ class Input {
public function int($name, $default = 0, $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default;
- if($this->access[$name] === '') return $default;
- if($nonempty && empty($this->access[$name])) return $default;
+ $value = $this->applyfilter($this->access[$name]);
+ if($value === '') return $default;
+ if($nonempty && empty($value)) return $default;
- return (int) $this->access[$name];
+ return (int) $value;
}
/**
@@ -138,9 +171,10 @@ class Input {
public function str($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default;
- if($nonempty && empty($this->access[$name])) return $default;
+ $value = $this->applyfilter($this->access[$name]);
+ if($nonempty && empty($value)) return $default;
- return (string) $this->access[$name];
+ return (string) $value;
}
/**
@@ -158,7 +192,8 @@ class Input {
public function valid($name, $valids, $default = null) {
if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default; // we don't allow arrays
- $found = array_search($this->access[$name], $valids);
+ $value = $this->applyfilter($this->access[$name]);
+ $found = array_search($value, $valids);
if($found !== false) return $valids[$found]; // return the valid value for type safety
return $default;
}
@@ -176,10 +211,11 @@ class Input {
public function bool($name, $default = false, $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default;
- if($this->access[$name] === '') return $default;
- if($nonempty && empty($this->access[$name])) return $default;
+ $value = $this->applyfilter($this->access[$name]);
+ if($value === '') return $default;
+ if($nonempty && empty($value)) return $default;
- return (bool) $this->access[$name];
+ return (bool) $value;
}
/**
diff --git a/inc/auth.php b/inc/auth.php
index e224b2fb5..e938830ef 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -95,9 +95,10 @@ function auth_setup() {
$INPUT->set('http_credentials', true);
}
- // apply cleaning
+ // apply cleaning (auth specific user names, remove control chars)
if (true === $auth->success) {
- $INPUT->set('u', $auth->cleanUser($INPUT->str('u')));
+ $INPUT->set('u', $auth->cleanUser(stripctl($INPUT->str('u'))));
+ $INPUT->set('p', stripctl($INPUT->str('p')));
}
if($INPUT->str('authtok')) {
@@ -228,7 +229,7 @@ function auth_login($user, $pass, $sticky = false, $silent = false) {
if(!empty($user)) {
//usual login
- if($auth->checkPass($user, $pass)) {
+ if(!empty($pass) && $auth->checkPass($user, $pass)) {
// make logininfo globally available
$INPUT->server->set('REMOTE_USER', $user);
$secret = auth_cookiesalt(!$sticky, true); //bind non-sticky to session
@@ -638,6 +639,7 @@ function auth_isMember($memberlist, $user, array $groups) {
// compare cleaned values
foreach($members as $member) {
+ if($member == '@ALL' ) return true;
if(!$auth->isCaseSensitive()) $member = utf8_strtolower($member);
if($member[0] == '@') {
$member = $auth->cleanGroup(substr($member, 1));
@@ -922,7 +924,7 @@ function auth_sendPassword($user, $password) {
if(!$auth) return false;
$user = $auth->cleanUser($user);
- $userinfo = $auth->getUserData($user);
+ $userinfo = $auth->getUserData($user, $requireGroups = false);
if(!$userinfo['mail']) return false;
@@ -1184,7 +1186,7 @@ function act_resendpwd() {
}
$user = io_readfile($tfile);
- $userinfo = $auth->getUserData($user);
+ $userinfo = $auth->getUserData($user, $requireGroups = false);
if(!$userinfo['mail']) {
msg($lang['resendpwdnouser'], -1);
return false;
@@ -1236,7 +1238,7 @@ function act_resendpwd() {
$user = trim($auth->cleanUser($INPUT->post->str('login')));
}
- $userinfo = $auth->getUserData($user);
+ $userinfo = $auth->getUserData($user, $requireGroups = false);
if(!$userinfo['mail']) {
msg($lang['resendpwdnouser'], -1);
return false;
diff --git a/inc/common.php b/inc/common.php
index 8c9956018..e56285f62 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -1583,7 +1583,7 @@ function shorten($keep, $short, $max, $min = 9, $char = '…') {
}
/**
- * Return the users realname or e-mail address for use
+ * Return the users real name or e-mail address for use
* in page footer and recent changes pages
*
* @param string|null $username or null when currently logged-in user should be used
@@ -1641,22 +1641,20 @@ function userlink($username = null, $textonly = false) {
$evt = new Doku_Event('COMMON_USER_LINK', $data);
if($evt->advise_before(true)) {
if(empty($data['name'])) {
- if($conf['showuseras'] == 'loginname') {
- $data['name'] = $textonly ? $data['username'] : hsc($data['username']);
- } else {
- if($auth) $info = $auth->getUserData($username);
- if(isset($info) && $info) {
- switch($conf['showuseras']) {
- case 'username':
- case 'username_link':
- $data['name'] = $textonly ? $info['name'] : hsc($info['name']);
- break;
- case 'email':
- case 'email_link':
- $data['name'] = obfuscate($info['mail']);
- break;
- }
+ if($auth) $info = $auth->getUserData($username);
+ if($conf['showuseras'] != 'loginname' && isset($info) && $info) {
+ switch($conf['showuseras']) {
+ case 'username':
+ case 'username_link':
+ $data['name'] = $textonly ? $info['name'] : hsc($info['name']);
+ break;
+ case 'email':
+ case 'email_link':
+ $data['name'] = obfuscate($info['mail']);
+ break;
}
+ } else {
+ $data['name'] = $textonly ? $data['username'] : hsc($data['username']);
}
}
diff --git a/inc/fulltext.php b/inc/fulltext.php
index dd918f214..aaef090e1 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -215,7 +215,7 @@ function ft_pageLookup($id, $in_ns=false, $in_title=false){
function _ft_pageLookup(&$data){
// split out original parameters
$id = $data['id'];
- if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) {
+ if (preg_match('/(?:^| )(?:@|ns:)([\w:]+)/', $id, $matches)) {
$ns = cleanID($matches[1]) . ':';
$id = str_replace($matches[0], '', $id);
}
diff --git a/inc/infoutils.php b/inc/infoutils.php
index db856141f..f9ba11560 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -30,7 +30,12 @@ function checkUpdateMessages(){
$http = new DokuHTTPClient();
$http->timeout = 12;
$data = $http->get(DOKU_MESSAGEURL.$updateVersion);
- io_saveFile($cf,$data);
+ if(substr(trim($data), -1) != '%') {
+ // this doesn't look like one of our messages, maybe some WiFi login interferred
+ $data = '';
+ }else {
+ io_saveFile($cf,$data);
+ }
}else{
dbglog("checkUpdateMessages(): messages.txt up to date");
$data = io_readFile($cf);
diff --git a/inc/init.php b/inc/init.php
index 4ff239787..d825b5250 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -456,10 +456,6 @@ function getBaseURL($abs=null){
$port = '';
}
- if(!$port && isset($_SERVER['SERVER_PORT'])) {
- $port = $_SERVER['SERVER_PORT'];
- }
-
if(is_null($port)){
$port = '';
}
@@ -490,6 +486,14 @@ function getBaseURL($abs=null){
* @returns bool true when SSL is active
*/
function is_ssl(){
+ // check if we are behind a reverse proxy
+ if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
+ if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
+ return true;
+ } else {
+ return false;
+ }
+ }
if (!isset($_SERVER['HTTPS']) ||
preg_match('/^(|off|false|disabled)$/i',$_SERVER['HTTPS'])){
return false;
diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php
index a63e1ed44..9d192639b 100644
--- a/inc/lang/ar/lang.php
+++ b/inc/lang/ar/lang.php
@@ -9,6 +9,7 @@
* @author uahello@gmail.com
* @author Ahmad Abd-Elghany <tolpa1@gmail.com>
* @author alhajr <alhajr300@gmail.com>
+ * @author Mohamed Belhsine <b.mohamed897@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -53,6 +54,8 @@ $lang['btn_register'] = 'سجّل';
$lang['btn_apply'] = 'طبق';
$lang['btn_media'] = 'مدير الوسائط';
$lang['btn_deleteuser'] = 'احذف حسابي الخاص';
+$lang['btn_img_backto'] = 'عودة إلى %s';
+$lang['btn_mediaManager'] = 'اعرض في مدير الوسائط';
$lang['loggedinas'] = 'داخل باسم:';
$lang['user'] = 'اسم المستخدم';
$lang['pass'] = 'كلمة السر';
@@ -86,6 +89,7 @@ $lang['profdeleteuser'] = 'احذف حساب';
$lang['profdeleted'] = 'حسابك الخاص تم حذفه من هذه الموسوعة';
$lang['profconfdelete'] = 'أنا أرغب في حذف حسابي من هذه الموسوعة.<br/>
هذا الحدث غير ممكن.';
+$lang['profconfdeletemissing'] = 'لم تقم بوضع علامة في مربع التأكيد';
$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
$lang['resendpwd'] = 'اضبط كلمة سر جديدة لـ';
@@ -183,6 +187,11 @@ $lang['difflink'] = 'رابط إلى هذه المقارنة';
$lang['diff_type'] = 'أظهر الفروق:';
$lang['diff_inline'] = 'ضمنا';
$lang['diff_side'] = 'جنبا إلى جنب';
+$lang['diffprevrev'] = 'المراجعة السابقة';
+$lang['diffnextrev'] = 'المراجعة التالية';
+$lang['difflastrev'] = 'المراجعة الأخيرة';
+$lang['diffbothprevrev'] = 'جانبي المراجعة السابقة';
+$lang['diffbothnextrev'] = 'جانبي المراجعة التالية';
$lang['line'] = 'سطر';
$lang['breadcrumb'] = 'أثر:';
$lang['youarehere'] = 'أنت هنا:';
@@ -239,7 +248,6 @@ $lang['admin_register'] = 'أضف مستخدما جديدا';
$lang['metaedit'] = 'تحرير البيانات الشمولية ';
$lang['metasaveerr'] = 'فشلت كتابة البيانات الشمولية';
$lang['metasaveok'] = 'حُفظت البيانات الشمولية';
-$lang['btn_img_backto'] = 'عودة إلى %s';
$lang['img_title'] = 'العنوان:';
$lang['img_caption'] = 'وصف:';
$lang['img_date'] = 'التاريخ:';
@@ -252,7 +260,6 @@ $lang['img_camera'] = 'الكمرا:';
$lang['img_keywords'] = 'كلمات مفتاحية:';
$lang['img_width'] = 'العرض:';
$lang['img_height'] = 'الإرتفاع:';
-$lang['btn_mediaManager'] = 'اعرض في مدير الوسائط';
$lang['subscr_subscribe_success'] = 'اضيف %s لقائمة اشتراك %s';
$lang['subscr_subscribe_error'] = 'خطأ في إضافة %s لقائمة اشتراك %s';
$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بولوجك، لا يمكن اضافتك لقائمة الاشتراك';
@@ -287,6 +294,7 @@ $lang['i_phpver'] = 'نسخة PHP التي لديك هي
وهي أقل من النسخة المطلوبة
<code>%s</code>
عليك تحديث نسخة PHP';
+$lang['i_mbfuncoverload'] = 'يجب ايقاف تشغيل mbstring.func_overload في ملف php.ini لتشغيل دوكوويكي.';
$lang['i_permfail'] = 'إن <code>%s</code> غير قابل للكتابة بواسطة دوكو ويكي، عليك تعديل إعدادات الصلاحيات لهذا المجلد!';
$lang['i_confexists'] = 'إن <code>%s</code> موجود أصلاً';
$lang['i_writeerr'] = 'لا يمكن إنشاء <code>%s</code>، عليك التأكد من صلاحيات الملف أو المجلد وإنشاء الملف يدوياً.';
@@ -340,4 +348,5 @@ $lang['media_update'] = 'ارفع إصدارا أحدث';
$lang['media_restore'] = 'استرجع هذه النسخة';
$lang['currentns'] = 'مساحة الاسم الحالية';
$lang['searchresult'] = 'نتيجة البحث';
+$lang['plainhtml'] = 'نص HTML غير منسق';
$lang['wikimarkup'] = 'علامات الوكي';
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index fa0a65044..4d084d479 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -17,6 +17,8 @@
* @author Zbyněk Křivka <krivka@fit.vutbr.cz>
* @author Petr Klíma <qaxi@seznam.cz>
* @author Radovan Buroň <radovan@buron.cz>
+ * @author Viktor Zavadil <vzavadil@newps.cz>
+ * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -194,6 +196,9 @@ $lang['difflink'] = 'Odkaz na výstup diff';
$lang['diff_type'] = 'Zobrazit rozdíly:';
$lang['diff_inline'] = 'Vložené';
$lang['diff_side'] = 'Přidané';
+$lang['diffprevrev'] = 'Předchozí verze';
+$lang['diffnextrev'] = 'Následující verze';
+$lang['difflastrev'] = 'Poslední revize';
$lang['line'] = 'Řádek';
$lang['breadcrumb'] = 'Historie:';
$lang['youarehere'] = 'Umístění:';
diff --git a/inc/lang/de/backlinks.txt b/inc/lang/de/backlinks.txt
index 1ffa815c2..25e0ed5f9 100644
--- a/inc/lang/de/backlinks.txt
+++ b/inc/lang/de/backlinks.txt
@@ -1,5 +1,5 @@
====== Links hierher ======
-Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite verlinken.
+Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite führen.
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 12b7db396..183571681 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -26,6 +26,7 @@
* @author Joerg <scooter22@gmx.de>
* @author Simon <st103267@stud.uni-stuttgart.de>
* @author Hoisl <hoisl@gmx.at>
+ * @author Marcel Eickhoff <eickhoff.marcel@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -299,6 +300,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. Sie sollten 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 Ihrem Hoster deaktiviert?';
$lang['i_phpver'] = 'Ihre PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisieren Sie Ihre PHP-Installation.';
+$lang['i_mbfuncoverload'] = 'Um DokuWiki zu starten muss mbstring.func_overload in php.ini ausgeschaltet sein.';
$lang['i_permfail'] = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Sie müssen die Berechtigungen dieses Ordners ändern!';
$lang['i_confexists'] = '<code>%s</code> existiert bereits';
$lang['i_writeerr'] = '<code>%s</code> konnte nicht erzeugt werden. Sie sollten die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index 03cbd51d2..47bee3b6f 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -36,6 +36,7 @@
* @author Eloy <ej.perezgomez@gmail.com>
* @author Antonio Castilla <antoniocastilla@trazoide.com>
* @author Jonathan Hernández <me@jhalicea.com>
+ * @author pokesakura <pokesakura@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/fa/index.txt b/inc/lang/fa/index.txt
index 89ed74b7d..993c8d164 100644
--- a/inc/lang/fa/index.txt
+++ b/inc/lang/fa/index.txt
@@ -1,3 +1,3 @@
-====== فهرست ======
+====== نقشه‌ی سایت ======
-این صفحه فهرست تمامی صفحات بر اساس [[doku>namespaces|فضای‌نام‌ها]] است. \ No newline at end of file
+این صفحه حاوی فهرست تمامی صفحات موجود به ترتیب [[doku>namespaces|فضای‌نام‌ها]] است. \ No newline at end of file
diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php
index d3016c0bd..96ffcaf90 100644
--- a/inc/lang/fa/lang.php
+++ b/inc/lang/fa/lang.php
@@ -11,6 +11,8 @@
* @author AmirH Hassaneini <mytechmix@gmail.com>
* @author mehrdad <mehrdad.jafari.bojd@gmail.com>
* @author reza_khn <reza_khn@yahoo.com>
+ * @author Hamid <zarrabi@sharif.edu>
+ * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -38,30 +40,32 @@ $lang['btn_secedit'] = 'ویرایش';
$lang['btn_login'] = 'ورود به سیستم';
$lang['btn_logout'] = 'خروج از سیستم';
$lang['btn_admin'] = 'مدیر';
-$lang['btn_update'] = 'به روز رسانی';
+$lang['btn_update'] = 'به‌روزرسانی';
$lang['btn_delete'] = 'حذف';
$lang['btn_back'] = 'عقب';
$lang['btn_backlink'] = 'پیوندهای به این صفحه';
$lang['btn_backtomedia'] = 'بازگشت به انتخاب فایل';
$lang['btn_subscribe'] = 'عضویت در تغییرات صفحه';
-$lang['btn_profile'] = 'به روز رسانی پروفایل';
+$lang['btn_profile'] = 'به‌روزرسانی پروفایل';
$lang['btn_reset'] = 'بازنشاندن';
-$lang['btn_resendpwd'] = 'تعیین کلمه عبور جدید';
+$lang['btn_resendpwd'] = 'تعیین گذرواژه‌ی جدید';
$lang['btn_draft'] = 'ویرایش پیش‌نویس';
$lang['btn_recover'] = 'بازیابی پیش‌نویس';
$lang['btn_draftdel'] = 'حذف پیش‌نویس';
$lang['btn_revert'] = 'بازیابی';
-$lang['btn_register'] = 'یک حساب جدید بسازید';
-$lang['btn_apply'] = 'اعمال کن';
-$lang['btn_media'] = 'مدیریت محتوای چند رسانه ای';
-$lang['btn_deleteuser'] = 'حذف حساب کاربری خود';
-$lang['loggedinas'] = 'به عنوان کاربر روبرو وارد شده‌اید:';
-$lang['user'] = 'نام کاربری:';
-$lang['pass'] = 'گذرواژه‌ی شما';
+$lang['btn_register'] = 'ثبت نام';
+$lang['btn_apply'] = 'اعمال';
+$lang['btn_media'] = 'مدیریت رسانه‌ها';
+$lang['btn_deleteuser'] = 'حساب کاربری مرا حذف کن';
+$lang['btn_img_backto'] = 'بازگشت به %s';
+$lang['btn_mediaManager'] = 'مشاهده در مدیریت رسانه‌ها';
+$lang['loggedinas'] = 'به این عنوان وارد شده‌اید:';
+$lang['user'] = 'نام کاربری';
+$lang['pass'] = 'گذرواژه‌';
$lang['newpass'] = 'گذروازه‌ی جدید';
-$lang['oldpass'] = 'گذرواژه‌ی پیشین';
-$lang['passchk'] = 'گذرواژه را دوباره وارد کنید';
-$lang['remember'] = 'گذرواژه را به یاد بسپار.';
+$lang['oldpass'] = 'گذرواژه‌ی فعلی را تایید کنید';
+$lang['passchk'] = 'یک بار دیگر';
+$lang['remember'] = 'مرا به خاطر بسپار.';
$lang['fullname'] = '*نام واقعی شما';
$lang['email'] = 'ایمیل شما*';
$lang['profile'] = 'پروفایل کاربر';
@@ -86,6 +90,8 @@ $lang['profchanged'] = 'پروفایل کاربر با موفقیت ب
$lang['profnodelete'] = 'ویکی توانایی پشتیبانی از حذف کاربران را ندارد';
$lang['profdeleteuser'] = 'حذف حساب کاربری';
$lang['profdeleted'] = 'حساب کاربری شما حذف گردیده است.';
+$lang['profconfdelete'] = 'می‌خواهم حساب کاربری من از این ویکی حذف شود. <br/> این عمل قابل برگشت نیست.';
+$lang['profconfdeletemissing'] = 'جعبه‌ی تأیید تیک نخورده است';
$lang['pwdforget'] = 'گذرواژه‌ی خود را فراموش کرده‌اید؟ جدید دریافت کنید';
$lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند';
$lang['resendpwd'] = 'تعیین کلمه عبور جدید برای ';
@@ -135,9 +141,9 @@ $lang['js']['nosmblinks'] = 'پیوند به Windows share فقط در ای
شما می‌توانید پیوند‌ها رو کپی کنید.';
$lang['js']['linkwiz'] = 'ویزارد پیوند';
$lang['js']['linkto'] = 'پیوند به:';
-$lang['js']['del_confirm'] = 'واقعن تصمیم به حذف این موارد دارید؟';
-$lang['js']['restore_confirm'] = 'آیا مطمئن هستید که می خواهید این نسخه را بازیابی کنید؟';
-$lang['js']['media_diff'] = 'تفاوت ها را ببینید : ';
+$lang['js']['del_confirm'] = 'واقعا تصمیم به حذف این موارد دارید؟';
+$lang['js']['restore_confirm'] = 'آیا مطمئن هستید که می خواهید این نگارش را بازیابی کنید؟';
+$lang['js']['media_diff'] = 'تفاوت ها را ببینید: ';
$lang['js']['media_diff_both'] = 'پهلو به پهلو';
$lang['js']['media_diff_opacity'] = 'درخشش از';
$lang['js']['media_diff_portions'] = 'کش رفتن';
@@ -184,6 +190,11 @@ $lang['difflink'] = 'پیوند به صفحه‌ی تفاوت‌ه
$lang['diff_type'] = 'مشاهده تغییرات:';
$lang['diff_inline'] = 'خطی';
$lang['diff_side'] = 'کلی';
+$lang['diffprevrev'] = 'نگارش قبل';
+$lang['diffnextrev'] = 'نگارش بعد';
+$lang['difflastrev'] = 'آخرین نگارش';
+$lang['diffbothprevrev'] = 'نگارش قبل در دو طرف';
+$lang['diffbothnextrev'] = 'نگارش بعد در دو طرف';
$lang['line'] = 'خط';
$lang['breadcrumb'] = 'ردپا:';
$lang['youarehere'] = 'محل شما:';
@@ -240,7 +251,6 @@ $lang['admin_register'] = 'یک حساب جدید بسازید';
$lang['metaedit'] = 'ویرایش داده‌های متا';
$lang['metasaveerr'] = 'نوشتن داده‌نما با مشکل مواجه شد';
$lang['metasaveok'] = 'داده‌نما ذخیره شد';
-$lang['btn_img_backto'] = 'بازگشت به %s';
$lang['img_title'] = 'عنوان تصویر:';
$lang['img_caption'] = 'عنوان:';
$lang['img_date'] = 'تاریخ:';
@@ -253,7 +263,6 @@ $lang['img_camera'] = 'دوربین:';
$lang['img_keywords'] = 'واژه‌های کلیدی:';
$lang['img_width'] = 'عرض:';
$lang['img_height'] = 'ارتفاع:';
-$lang['btn_mediaManager'] = 'دیدن در مدیریت محتوای چند رسانه ای';
$lang['subscr_subscribe_success'] = '%s به لیست آبونه %s افزوده شد';
$lang['subscr_subscribe_error'] = 'اشکال در افزودن %s به لیست آبونه %s';
$lang['subscr_subscribe_noaddress'] = 'هیچ آدرسی برای این عضویت اضافه نشده است، شما نمی‌توانید به لیست آبونه اضافه شوید';
@@ -268,6 +277,8 @@ $lang['subscr_m_unsubscribe'] = 'لغو آبونه';
$lang['subscr_m_subscribe'] = 'آبونه شدن';
$lang['subscr_m_receive'] = 'دریافت کردن';
$lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات';
+$lang['subscr_style_digest'] = 'ایمیل خلاصه‌ی تغییرات هر روز (هر %.2f روز)';
+$lang['subscr_style_list'] = 'فهرست صفحات تغییریافته از آخرین ایمیل (هر %.2f روز)';
$lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.';
$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ، شما باید آن را زود تغییر دهید';
$lang['i_chooselang'] = 'انتخاب زبان';
@@ -279,6 +290,7 @@ $lang['i_problems'] = 'نصب کننده با مشکلات زیر م
$lang['i_modified'] = 'به دلایل امنیتی، این اسکریپت فقط با نصب تازه و بدون تغییر DokuWiki کار خواهد کرد.شما باید دوباره فایل فشرده را باز کنید <a href="http://dokuwiki.org/install">راهنمای نصب DokuWiki</a> را بررسی کنید.';
$lang['i_funcna'] = 'تابع <code>%s</code> در PHP موجود نیست. ممکن است شرکت خدمات وب شما آن را مسدود کرده باشد.';
$lang['i_phpver'] = 'نگارش پی‌اچ‌پی <code>%s</code> پایین‌تر از نگارش مورد نیاز، یعنی <code>%s</code> می‌باشد. خواهشمندیم به روز رسانی کنید.';
+$lang['i_mbfuncoverload'] = 'برای اجرای دوکوویکی باید mbstring.func_overload را در php.ini غیرفعال کنید.';
$lang['i_permfail'] = 'شاخه‌ی <code>%s</code> قابلیت نوشتن ندارد. شما باید دسترسی‌های این شاخه را تنظیم کنید!';
$lang['i_confexists'] = '<code>%s</code> پیش‌تر موجود است';
$lang['i_writeerr'] = 'توانایی ایجاد <code>%s</code> نیست. شما باید دسترسی‌های شاخه یا فایل را بررسی کنید و فایل را به طور دستی ایجاد کنید.';
@@ -290,8 +302,12 @@ $lang['i_policy'] = 'کنترل دسترسی‌های اولیه';
$lang['i_pol0'] = 'ویکی باز (همه می‌توانند بخوانند، بنویسند و فایل ارسال کنند)';
$lang['i_pol1'] = 'ویکی عمومی (همه می‌توانند بخوانند، کاربران ثبت شده می‌توانند بنویسند و فایل ارسال کنند)';
$lang['i_pol2'] = 'ویکی بسته (فقط کاربران ثبت شده می‌توانند بخوانند، بنویسند و فایل ارسال کنند)';
+$lang['i_allowreg'] = 'اجازه دهید که کاربران خود را ثبت نام کنند';
$lang['i_retry'] = 'تلاش مجدد';
$lang['i_license'] = 'لطفن مجوز این محتوا را وارد کنید:';
+$lang['i_license_none'] = 'هیچ اطلاعات مجوزی را نشان نده';
+$lang['i_pop_field'] = 'لطفا کمک کنید تا تجربه‌ی دوکوویکی را بهبود دهیم.';
+$lang['i_pop_label'] = 'ماهی یک بار، اطلاعات بدون‌نامی از نحوه‌ی استفاده به توسعه‌دهندگان دوکوویکی ارسال کن';
$lang['recent_global'] = 'شما هم‌اکنون تغییرات فضای‌نام <b>%s</b> را مشاهده می‌کنید. شما هم‌چنین می‌توانید <a href="%s">تغییرات اخیر در کل ویکی را مشاهده نمایید</a>.';
$lang['years'] = '%d سال پیش';
$lang['months'] = '%d ماه پیش';
@@ -319,8 +335,12 @@ $lang['media_view'] = '%s';
$lang['media_viewold'] = '%s در %s';
$lang['media_edit'] = '%s ویرایش';
$lang['media_history'] = 'تاریخچه %s';
-$lang['media_meta_edited'] = 'فرا داده ها ویرایش شدند.';
-$lang['media_perm_read'] = 'متاسفانه ، شما حق خواندن این فایل ها را ندارید.';
-$lang['media_perm_upload'] = 'متاسفانه ، شما حق آپلود این فایل ها را ندارید.';
-$lang['media_update'] = 'آپلود نسخه جدید';
+$lang['media_meta_edited'] = 'فراداده‌ها ویرایش شدند.';
+$lang['media_perm_read'] = 'متاسفانه شما حق خواندن این فایل‌ها را ندارید.';
+$lang['media_perm_upload'] = 'متاسفانه شما حق آپلود این فایل‌ها را ندارید.';
+$lang['media_update'] = 'آپلود نسخه‌ی جدید';
$lang['media_restore'] = 'بازیابی این نسخه';
+$lang['currentns'] = 'فضای نام جاری';
+$lang['searchresult'] = 'نتیجه‌ی جستجو';
+$lang['plainhtml'] = 'HTML ساده';
+$lang['wikimarkup'] = 'نشانه‌گذاری ویکی';
diff --git a/inc/lang/fr/denied.txt b/inc/lang/fr/denied.txt
index da01a4086..6de193004 100644
--- a/inc/lang/fr/denied.txt
+++ b/inc/lang/fr/denied.txt
@@ -1,4 +1,4 @@
====== Autorisation refusée ======
-Désolé, vous n'avez pas suffisement d'autorisations pour poursuivre votre demande.
+Désolé, vous n'avez pas suffisamment d'autorisations pour poursuivre votre demande.
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index c5edd4cf7..a7651e730 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -360,7 +360,7 @@ $lang['media_perm_read'] = 'Désolé, vous n\'avez pas l\'autorisation de
$lang['media_perm_upload'] = 'Désolé, vous n\'avez pas l\'autorisation d\'envoyer des fichiers.';
$lang['media_update'] = 'Envoyer une nouvelle version';
$lang['media_restore'] = 'Restaurer cette version';
-$lang['currentns'] = 'Namespace actuel';
+$lang['currentns'] = 'Catégorie courante';
$lang['searchresult'] = 'Résultat de la recherche';
$lang['plainhtml'] = 'HTML brut';
$lang['wikimarkup'] = 'Wiki balise';
diff --git a/inc/lang/fr/newpage.txt b/inc/lang/fr/newpage.txt
index b23bf4fe4..c649489fa 100644
--- a/inc/lang/fr/newpage.txt
+++ b/inc/lang/fr/newpage.txt
@@ -1,4 +1,4 @@
====== Cette page n'existe pas encore ======
-Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos autorisations sont suffisants, vous pouvez la créer en cliquant sur « Créer cette page ».
+Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos permissions sont suffisantes, vous pouvez la créer en cliquant sur « Créer cette page ».
diff --git a/inc/lang/hr/adminplugins.txt b/inc/lang/hr/adminplugins.txt
index 556ffda0b..5a7656d27 100644
--- a/inc/lang/hr/adminplugins.txt
+++ b/inc/lang/hr/adminplugins.txt
@@ -1 +1 @@
-===== Dodatni Pluginovi ===== \ No newline at end of file
+===== Dodatni dodatci ===== \ No newline at end of file
diff --git a/inc/lang/hr/backlinks.txt b/inc/lang/hr/backlinks.txt
index e7115a6b6..a78b9213e 100644
--- a/inc/lang/hr/backlinks.txt
+++ b/inc/lang/hr/backlinks.txt
@@ -1,3 +1,3 @@
-====== Linkovi na stranicu ======
+====== Veze na stranicu ======
-Slijedi spisak svih dokumenata koji imaju link na trenutni.
+Slijedi spisak svih stanica koje imaju vezu na trenutnu stranicu.
diff --git a/inc/lang/hr/edit.txt b/inc/lang/hr/edit.txt
index 8cd57d524..bce1abeea 100644
--- a/inc/lang/hr/edit.txt
+++ b/inc/lang/hr/edit.txt
@@ -1 +1 @@
-Nakon što ste napravili sve potrebne promjene - odaberite ''Snimi'' za snimanje dokumenta.
+Uredite stranicu i pritisnite "Snimi". Pogledajte [[wiki:syntax]] za Wiki sintaksu. Molimo izmijenite samo ako možete unaprijediti sadržaj. Ako trebate testirati ili naučiti kako se nešto radi, molimo koristite za to namijenjene stranice kao što je [[playground:playground|igraonica]].
diff --git a/inc/lang/hr/index.txt b/inc/lang/hr/index.txt
index 9c30a805c..4395994c4 100644
--- a/inc/lang/hr/index.txt
+++ b/inc/lang/hr/index.txt
@@ -1 +1,3 @@
-====== Indeks ======
+====== Mapa stranica ======
+
+Ovo je mapa svih dostupnih stranica poredanih po [[doku>namespaces|imenskom prostoru]].
diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php
index 6a3fa20e2..69157015b 100644
--- a/inc/lang/hr/lang.php
+++ b/inc/lang/hr/lang.php
@@ -16,42 +16,42 @@ $lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '‘';
$lang['singlequoteclosing'] = '’';
$lang['apostrophe'] = '\'';
-$lang['btn_edit'] = 'Izmijeni dokument';
-$lang['btn_source'] = 'Prikaži kod dokumenta';
+$lang['btn_edit'] = 'Izmijeni stranicu';
+$lang['btn_source'] = 'Prikaži kod stranice';
$lang['btn_show'] = 'Prikaži dokument';
-$lang['btn_create'] = 'Novi dokument';
+$lang['btn_create'] = 'Stvori ovu stranicu';
$lang['btn_search'] = 'Pretraži';
$lang['btn_save'] = 'Spremi';
$lang['btn_preview'] = 'Prikaži';
$lang['btn_top'] = 'Na vrh';
$lang['btn_newer'] = '<< noviji';
$lang['btn_older'] = 'stariji >>';
-$lang['btn_revs'] = 'Stare inačice';
+$lang['btn_revs'] = 'Stare promjene';
$lang['btn_recent'] = 'Nedavne izmjene';
-$lang['btn_upload'] = 'Postavi';
+$lang['btn_upload'] = 'Učitaj';
$lang['btn_cancel'] = 'Odustani';
-$lang['btn_index'] = 'Indeks';
-$lang['btn_secedit'] = 'Izmjeni';
+$lang['btn_index'] = 'Mapa lokacije';
+$lang['btn_secedit'] = 'Uredi';
$lang['btn_login'] = 'Prijavi se';
$lang['btn_logout'] = 'Odjavi se';
$lang['btn_admin'] = 'Administriranje';
-$lang['btn_update'] = 'Ažuriraj';
+$lang['btn_update'] = 'Dopuni';
$lang['btn_delete'] = 'Obriši';
-$lang['btn_back'] = 'Povratak';
+$lang['btn_back'] = 'Nazad';
$lang['btn_backlink'] = 'Povratni linkovi';
-$lang['btn_backtomedia'] = 'Povratak na Mediafile izbornik';
-$lang['btn_subscribe'] = 'Pretplati se na promjene dokumenta';
-$lang['btn_profile'] = 'Ažuriraj profil';
-$lang['btn_reset'] = 'Poništi promjene';
+$lang['btn_backtomedia'] = 'Natrag na odabir datoteka';
+$lang['btn_subscribe'] = 'Uređivanje pretplata';
+$lang['btn_profile'] = 'Dopuni profil';
+$lang['btn_reset'] = 'Poništi';
$lang['btn_resendpwd'] = 'Postavi novu lozinku';
$lang['btn_draft'] = 'Uredi nacrt dokumenta';
-$lang['btn_recover'] = 'Vrati prijašnji nacrt dokumenta';
-$lang['btn_draftdel'] = 'Obriši nacrt dokumenta';
+$lang['btn_recover'] = 'Vrati nacrt stranice';
+$lang['btn_draftdel'] = 'Obriši nacrt stranice';
$lang['btn_revert'] = 'Vrati';
$lang['btn_register'] = 'Registracija';
$lang['btn_apply'] = 'Primjeni';
$lang['btn_media'] = 'Upravitelj datoteka';
-$lang['btn_deleteuser'] = 'Ukloni mojeg korisnika';
+$lang['btn_deleteuser'] = 'Ukloni mog korisnika';
$lang['btn_img_backto'] = 'Povratak na %s';
$lang['btn_mediaManager'] = 'Pogledaj u upravitelju datoteka';
$lang['loggedinas'] = 'Prijavljen kao:';
@@ -59,7 +59,7 @@ $lang['user'] = 'Korisničko ime';
$lang['pass'] = 'Lozinka';
$lang['newpass'] = 'Nova lozinka';
$lang['oldpass'] = 'Potvrdi trenutnu lozinku';
-$lang['passchk'] = 'Ponoviti';
+$lang['passchk'] = 'još jednom';
$lang['remember'] = 'Zapamti me';
$lang['fullname'] = 'Ime i prezime';
$lang['email'] = 'Email';
@@ -67,7 +67,7 @@ $lang['profile'] = 'Korisnički profil';
$lang['badlogin'] = 'Ne ispravno korisničko ime ili lozinka.';
$lang['badpassconfirm'] = 'Nažalost, lozinka nije ispravna';
$lang['minoredit'] = 'Manje izmjene';
-$lang['draftdate'] = 'Nacrt dokumenta je automatski spremljen u ';
+$lang['draftdate'] = 'Nacrt promjena automatski spremljen u';
$lang['nosecedit'] = 'Stranica se u međuvremenu promijenila. Informacija o odjeljku je ostarila pa je učitana kompletna stranica.';
$lang['regmissing'] = 'Morate popuniti sva polja.';
$lang['reguexists'] = 'Korisnik s tim korisničkim imenom već postoji.';
@@ -80,7 +80,7 @@ $lang['regpwmail'] = 'Vaša DokuWiki lozinka';
$lang['reghere'] = 'Još uvijek nemate korisnički račun? Registrirajte se.';
$lang['profna'] = 'Ovaj wiki ne dopušta izmjene korisničkog profila.';
$lang['profnochange'] = 'Nema izmjena.';
-$lang['profnoempty'] = 'Prazno korisničko ime ili email nisu dopušteni.';
+$lang['profnoempty'] = 'Prazno korisničko ime ili e-pošta nisu dopušteni.';
$lang['profchanged'] = 'Korisnički profil je uspješno izmijenjen.';
$lang['profnodelete'] = 'Ovaj wiki ne podržava brisanje korisnika';
$lang['profdeleteuser'] = 'Obriši korisnika';
@@ -88,13 +88,13 @@ $lang['profdeleted'] = 'Vaš korisnik je obrisan s ovog wiki-a';
$lang['profconfdelete'] = 'Želim ukloniti mojeg korisnika s ovog wiki-a. <br/> Ova akcija se ne može poništiti.';
$lang['profconfdeletemissing'] = 'Kvačica za potvrdu nije označena';
$lang['pwdforget'] = 'Izgubili ste lozinku? Zatražite novu';
-$lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke emailom.';
+$lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke e-poštom.';
$lang['resendpwd'] = 'Postavi novu lozinku za';
$lang['resendpwdmissing'] = 'Ispunite sva polja.';
$lang['resendpwdnouser'] = 'Nije moguće pronaći korisnika.';
$lang['resendpwdbadauth'] = 'Neispravan autorizacijski kod. Provjerite da li ste koristili potpun potvrdni link.';
-$lang['resendpwdconfirm'] = 'Potvrdni link je poslan emailom.';
-$lang['resendpwdsuccess'] = 'Nova lozinka je poslana emailom.';
+$lang['resendpwdconfirm'] = 'Potvrdni link je poslan e-poštom.';
+$lang['resendpwdsuccess'] = 'Nova lozinka je poslana e-poštom.';
$lang['license'] = 'Osim na mjestima gdje je naznačeno drugačije, sadržaj ovog wikija je licenciran sljedećom licencom:';
$lang['licenseok'] = 'Pažnja: promjenom ovog dokumenta pristajete licencirati sadržaj sljedećom licencom: ';
$lang['searchmedia'] = 'Traži naziv datoteke:';
@@ -103,7 +103,7 @@ $lang['txt_upload'] = 'Odaberite datoteku za postavljanje:';
$lang['txt_filename'] = 'Postaviti kao (nije obavezno):';
$lang['txt_overwrt'] = 'Prepiši postojeću datoteku';
$lang['maxuploadsize'] = 'Moguće je učitati maks. %s po datoteci.';
-$lang['lockedby'] = 'Zaključao:';
+$lang['lockedby'] = 'Trenutno zaključao:';
$lang['lockexpire'] = 'Zaključano do:';
$lang['js']['willexpire'] = 'Dokument kojeg mijenjate će biti zaključan još 1 minutu.\n Ukoliko želite i dalje raditi izmjene na dokumentu - kliknite na "Pregled".';
$lang['js']['notsavedyet'] = 'Vaše izmjene će se izgubiti.
@@ -149,16 +149,16 @@ $lang['js']['media_cancel'] = 'ukloni';
$lang['js']['media_overwrt'] = 'Prepiši preko postojeće datoteke';
$lang['rssfailed'] = 'Došlo je do greške prilikom preuzimanja feed-a: ';
$lang['nothingfound'] = 'Traženi dokumetni nisu pronađeni.';
-$lang['mediaselect'] = 'Mediafile datoteke';
-$lang['fileupload'] = 'Mediafile postavljanje';
-$lang['uploadsucc'] = 'Postavljanje uspješno';
-$lang['uploadfail'] = 'Neuspješno postavljanje. Možda dozvole na poslužitelju nisu ispravne?';
-$lang['uploadwrong'] = 'Postavljanje nije dopušteno. Nastavak datoteke je zabranjen!';
+$lang['mediaselect'] = 'Datoteke';
+$lang['fileupload'] = 'Učitavanje datoteka';
+$lang['uploadsucc'] = 'Učitavanje uspješno';
+$lang['uploadfail'] = 'Neuspješno učitavanje. Možda dozvole na poslužitelju nisu ispravne?';
+$lang['uploadwrong'] = 'Učitavanje nije dopušteno. Nastavak datoteke je zabranjen!';
$lang['uploadexist'] = 'Datoteka već postoji.';
$lang['uploadbadcontent'] = 'Postavljeni sadržaj ne odgovara ekstenziji %s datoteke.';
-$lang['uploadspam'] = 'Postavljanje je blokirano spam crnom listom.';
-$lang['uploadxss'] = 'Postavljanje je blokirano zbog mogućeg zlonamjernog sadržaja.';
-$lang['uploadsize'] = 'Postavljena datoteka je prevelika (max. %s)';
+$lang['uploadspam'] = 'Učitavanje je spriječeno od spam crne liste.';
+$lang['uploadxss'] = 'Učitavanje je spriječeno zbog mogućeg zlonamjernog sadržaja.';
+$lang['uploadsize'] = 'Učitana datoteka je prevelika (max. %s)';
$lang['deletesucc'] = 'Datoteka "%s" je obrisana.';
$lang['deletefail'] = '"%s" se ne može obrisati - provjerite dozvole na poslužitelju.';
$lang['mediainuse'] = 'Datoteka "%s" nije obrisana - još uvijek se koristi.';
@@ -166,10 +166,10 @@ $lang['namespaces'] = 'Imenski prostori';
$lang['mediafiles'] = 'Datoteke u';
$lang['accessdenied'] = 'Nemate potrebne dozvole za pregled ove stranice.';
$lang['mediausage'] = 'Koristi sljedeću sintaksu za referenciranje ove datoteke:';
-$lang['mediaview'] = 'Pregledaj originalnu datoteku';
+$lang['mediaview'] = 'Vidi izvornu datoteku';
$lang['mediaroot'] = 'root';
$lang['mediaupload'] = 'Postavi datoteku u odabrani imenski prostor. Podimenski prostori se stvaraju dodavanjem istih kao prefiks naziva datoteke u "Postavi kao" polju, tako da se odvoje dvotočkama.';
-$lang['mediaextchange'] = 'Ekstenzija datoteke promijenjena iz .%s u .%s!';
+$lang['mediaextchange'] = 'Nastavak datoteke promijenjen iz .%s u .%s!';
$lang['reference'] = 'Reference za';
$lang['ref_inuse'] = 'Datoteka se ne može obrisati jer se još uvijek koristi u sljedećim dokumentima:';
$lang['ref_hidden'] = 'Neke reference se nalaze na dokumentima koje nemate dozvolu čitati';
@@ -178,17 +178,17 @@ $lang['quickhits'] = 'Pronađeno po nazivima dokumenata';
$lang['toc'] = 'Sadržaj';
$lang['current'] = 'trenutno';
$lang['yours'] = 'Vaša inačica';
-$lang['diff'] = 'Prikaži razlike u odnosu na trenutnu inačicu';
-$lang['diff2'] = 'Pokaži razlike između odabranih inačica';
-$lang['difflink'] = 'Poveznica na ovaj prikaz usporedbe';
-$lang['diff_type'] = 'Razlike u prikazu:';
+$lang['diff'] = 'Prikaži razlike u odnosu na zadnje stanje';
+$lang['diff2'] = 'Pokaži razlike između odabranih izmjena';
+$lang['difflink'] = 'Poveznica na ovu usporedbu';
+$lang['diff_type'] = 'Vidi razlike:';
$lang['diff_inline'] = 'U istoj razini';
$lang['diff_side'] = 'Usporedo';
-$lang['diffprevrev'] = 'Prošla verzija';
-$lang['diffnextrev'] = 'Novija verzija';
-$lang['difflastrev'] = 'Zadnja verzija';
-$lang['diffbothprevrev'] = 'Prošle verzije na obje strane';
-$lang['diffbothnextrev'] = 'Novije verzije na obje strane';
+$lang['diffprevrev'] = 'Starija izmjena';
+$lang['diffnextrev'] = 'Novija izmjena';
+$lang['difflastrev'] = 'Zadnja izmjena';
+$lang['diffbothprevrev'] = 'Starije izmjene na obje strane';
+$lang['diffbothnextrev'] = 'Novije izmjene na obje strane';
$lang['line'] = 'Redak';
$lang['breadcrumb'] = 'Putanja:';
$lang['youarehere'] = 'Vi ste ovdje:';
@@ -196,7 +196,7 @@ $lang['lastmod'] = 'Zadnja izmjena:';
$lang['by'] = 'od';
$lang['deleted'] = 'obrisano';
$lang['created'] = 'stvoreno';
-$lang['restored'] = 'vraćena prijašnja inačica (%s)';
+$lang['restored'] = 'vraćeno na prijašnju izmjenu (%s)';
$lang['external_edit'] = 'vanjsko uređivanje';
$lang['summary'] = 'Sažetak izmjena';
$lang['noflash'] = 'Za prikazivanje ovog sadržaja potreban je <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>';
@@ -214,30 +214,30 @@ $lang['mail_new_user'] = 'novi korisnik:';
$lang['mail_upload'] = 'datoteka postavljena:';
$lang['changes_type'] = 'Vidi promjene od';
$lang['pages_changes'] = 'Stranice';
-$lang['media_changes'] = 'Medijske datoteke';
+$lang['media_changes'] = 'Datoteke';
$lang['both_changes'] = 'Zajedno stranice i datoteke';
$lang['qb_bold'] = 'Podebljani tekst';
$lang['qb_italic'] = 'Ukošeni tekst';
$lang['qb_underl'] = 'Podcrtani tekst';
$lang['qb_code'] = 'Kod';
$lang['qb_strike'] = 'Precrtani tekst';
-$lang['qb_h1'] = 'Naslov - razina 1';
-$lang['qb_h2'] = 'Naslov - razina 2';
-$lang['qb_h3'] = 'Naslov - razina 3';
-$lang['qb_h4'] = 'Naslov - razina 4';
-$lang['qb_h5'] = 'Naslov - razina 5';
+$lang['qb_h1'] = 'Naslov 1. razine';
+$lang['qb_h2'] = 'Naslov 2. razine';
+$lang['qb_h3'] = 'Naslov 3. razine';
+$lang['qb_h4'] = 'Naslov 4. razine';
+$lang['qb_h5'] = 'Naslov 5. razine';
$lang['qb_h'] = 'Naslov';
$lang['qb_hs'] = 'Odaberite naslov';
$lang['qb_hplus'] = 'Naslov više razine';
$lang['qb_hminus'] = 'Naslov niže razine';
$lang['qb_hequal'] = 'Naslov iste razine';
-$lang['qb_link'] = 'Interni link';
-$lang['qb_extlink'] = 'Vanjski link';
+$lang['qb_link'] = 'Interna poveznica';
+$lang['qb_extlink'] = 'Vanjska poveznica';
$lang['qb_hr'] = 'Vodoravna crta';
-$lang['qb_ol'] = 'Pobrojana lista';
-$lang['qb_ul'] = 'Lista';
-$lang['qb_media'] = 'Dodaj slike i ostale datoteke';
-$lang['qb_sig'] = 'Potpis';
+$lang['qb_ol'] = 'Element brojane liste';
+$lang['qb_ul'] = 'Element obične liste';
+$lang['qb_media'] = 'Dodaj slike i ostale datoteke (prikaz u novom prozoru)';
+$lang['qb_sig'] = 'Ubaci potpis';
$lang['qb_smileys'] = 'Smiješkići';
$lang['qb_chars'] = 'Posebni znakovi';
$lang['upperns'] = 'Skoči u nadređeni imenski prostor';
@@ -269,10 +269,10 @@ $lang['subscr_m_new_header'] = 'Dodaj pretplatu';
$lang['subscr_m_current_header'] = 'Trenutne pretplate';
$lang['subscr_m_unsubscribe'] = 'Odjavi pretplatu';
$lang['subscr_m_subscribe'] = 'Pretplati se';
-$lang['subscr_m_receive'] = 'Primaj';
-$lang['subscr_style_every'] = 'email za svaku promjenu';
-$lang['subscr_style_digest'] = 'email s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)';
-$lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnjeg primljenog email-a (svaka %.2f dana)';
+$lang['subscr_m_receive'] = 'Primi';
+$lang['subscr_style_every'] = 'e-pošta za svaku promjenu';
+$lang['subscr_style_digest'] = 'e-pošta s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)';
+$lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnje primljene e-pošte (svaka %.2f dana)';
$lang['authtempfail'] = 'Autentifikacija korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora.';
$lang['authpwdexpire'] = 'Vaša lozinka će isteći za %d dana, trebate ju promijeniti.';
$lang['i_chooselang'] = 'Izaberite vaš jezik';
@@ -281,7 +281,8 @@ $lang['i_wikiname'] = 'Naziv Wikija';
$lang['i_enableacl'] = 'Omogući ACL (preporučeno)';
$lang['i_superuser'] = 'Superkorisnik';
$lang['i_problems'] = 'Instalacija je pronašla probleme koji su naznačeni ispod. Nije moguće nastaviti dok se ti problemi ne riješe.';
-$lang['i_modified'] = 'Zbog sigurnosnih razlog, ova skripta ce raditi samo sa novim i nepromijenjenim instalacijama dokuWikija. Preporucujemo da ili re-ekstraktirate fajlove iz downloadovanog paketa ili konsultujete pune a href="http://dokuwiki.org/install">Instrukcije za instalaciju Dokuwikija</a>';
+$lang['i_modified'] = 'Zbog sigurnosnih razlog, ova skripta raditi će samo sa novim i neizmijenjenim DokuWiki instalacijama.
+ Molimo ponovno prekopirajte datoteke iz preuzetoga paketa ili pogledajte detaljno <a href="http://dokuwiki.org/install">Uputstvo za postavljanje DokuWiki-a</a>';
$lang['i_funcna'] = 'PHP funkcija <code>%s</code> nije dostupna. Možda ju je vaš pružatelj hostinga onemogućio iz nekog razloga?';
$lang['i_phpver'] = 'Vaša PHP verzija <code>%s</code> je niža od potrebne <code>%s</code>. Trebate nadograditi vašu PHP instalaciju.';
$lang['i_mbfuncoverload'] = 'mbstring.func_overload mora biti onemogućena u php.ini da bi ste pokrenuli DokuWiki.';
@@ -321,15 +322,15 @@ $lang['media_list_thumbs'] = 'Ikone';
$lang['media_list_rows'] = 'Redovi';
$lang['media_sort_name'] = 'Naziv';
$lang['media_sort_date'] = 'Datum';
-$lang['media_namespaces'] = 'Odaberi namespace';
-$lang['media_files'] = 'Datoteka u %s';
+$lang['media_namespaces'] = 'Odaberi imenski prostor';
+$lang['media_files'] = 'Datoteke u %s';
$lang['media_upload'] = 'Učitaj u %s';
$lang['media_search'] = 'Potraži u %s';
$lang['media_view'] = '%s';
$lang['media_viewold'] = '%s na %s';
$lang['media_edit'] = 'Uredi %s';
$lang['media_history'] = 'Povijest %s';
-$lang['media_meta_edited'] = 'meta podatci uređeni';
+$lang['media_meta_edited'] = 'meta podaci uređeni';
$lang['media_perm_read'] = 'Nažalost, nemate prava za čitanje datoteka.';
$lang['media_perm_upload'] = 'Nažalost, nemate prava za učitavanje datoteka.';
$lang['media_update'] = 'Učitaj novu verziju';
diff --git a/inc/lang/hr/revisions.txt b/inc/lang/hr/revisions.txt
index d224a56f3..67d4cb89f 100644
--- a/inc/lang/hr/revisions.txt
+++ b/inc/lang/hr/revisions.txt
@@ -1,3 +1,3 @@
====== Stare verzije ======
-Slijedi spisak starih verzija za traženi dokument.
+Slijedi spisak starih verzija za traženi dokument. Da bi ste se vratili na neku od njih, odaberite ju, pritisnite Uređivanje i snimite ju.
diff --git a/inc/lang/hr/searchpage.txt b/inc/lang/hr/searchpage.txt
index 91d9f9c0a..7a94f32d2 100644
--- a/inc/lang/hr/searchpage.txt
+++ b/inc/lang/hr/searchpage.txt
@@ -1 +1,5 @@
-====== Rezultati pretraživanja ======
+====== Pretraživanja ======
+
+Možete naći rezultat vaše pretrage u nastavku. Ako ne možete naći što tražite, možete urediti ili stvoriti novu stranicu s odgovarajućim alatom.
+
+====== Rezultati ======
diff --git a/inc/lang/hr/showrev.txt b/inc/lang/hr/showrev.txt
index aba2c0db0..86c1a0295 100644
--- a/inc/lang/hr/showrev.txt
+++ b/inc/lang/hr/showrev.txt
@@ -1,2 +1,2 @@
-**Ovo je stara verzija dokumenta!**
+**Ovo je stara izmjena dokumenta!**
----
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index a3017a92e..f59a7b948 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -19,6 +19,7 @@
* @author Claudio Lanconelli <lancos@libero.it>
* @author Mirko <malisan.mirko@gmail.com>
* @author Francesco <francesco.cavalli@hotmail.com>
+ * @author Fabio <fabioslurp@yahoo.it>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php
index 4f1baf22c..31940f5be 100644
--- a/inc/lang/pt-br/lang.php
+++ b/inc/lang/pt-br/lang.php
@@ -204,6 +204,8 @@ $lang['diff_side'] = 'Lado a lado';
$lang['diffprevrev'] = 'Revisão anterior';
$lang['diffnextrev'] = 'Próxima revisão';
$lang['difflastrev'] = 'Última revisão';
+$lang['diffbothprevrev'] = 'Ambos lados da revisão anterior';
+$lang['diffbothnextrev'] = 'Ambos lados da revisão seguinte';
$lang['line'] = 'Linha';
$lang['breadcrumb'] = 'Visitou:';
$lang['youarehere'] = 'Você está aqui:';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index c36c611c0..e2f9b3d57 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -26,6 +26,7 @@
* @author Erli Moen <evseev.jr@gmail.com>
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
* @author Владимир <id37736@yandex.ru>
+ * @author Igor Degraf <igordegraf@gmail.com>
*/
$lang['encoding'] = ' utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php
index 4a1da3531..a5b89527a 100644
--- a/inc/lang/ta/lang.php
+++ b/inc/lang/ta/lang.php
@@ -10,7 +10,7 @@ $lang['btn_show'] = 'பக்கத்தை காண்பி ';
$lang['btn_create'] = 'இந்த பக்கத்தை உருவாக்கு ';
$lang['btn_search'] = 'தேடு';
$lang['btn_save'] = 'சேமி ';
-$lang['btn_revs'] = 'old திருத்தங்கள்';
+$lang['btn_revs'] = 'பழைய திருத்தங்கள்';
$lang['btn_recent'] = 'சமீபத்திய மாற்றங்கள்';
$lang['btn_upload'] = 'பதிவேற்று';
$lang['btn_cancel'] = 'ரத்து';
@@ -30,3 +30,8 @@ $lang['fullname'] = 'உண்மையான பெயர்';
$lang['email'] = 'மின்னஞ்சல்';
$lang['profile'] = 'பயன்படுத்துபவர் விவரம்';
$lang['minoredit'] = 'சிறிய மாற்றங்கள்';
+$lang['media_historytab'] = 'வரலாறு';
+$lang['media_list_rows'] = 'வரிசைகள் ';
+$lang['media_sort_name'] = 'பெயர் ';
+$lang['media_sort_date'] = 'தேதி ';
+$lang['media_namespaces'] = 'பெயர்வெளியை தேர்வுசெய் ';
diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php
index 953d866f8..bf7f89130 100644
--- a/inc/lang/zh-tw/lang.php
+++ b/inc/lang/zh-tw/lang.php
@@ -14,6 +14,7 @@
* @author tsangho <ou4222@gmail.com>
* @author Danny Lin <danny0838@gmail.com>
* @author Stan <talktostan@gmail.com>
+ * @author June-Hao Hou <junehao@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -303,6 +304,7 @@ $lang['i_policy'] = '初步的 ACL 政策';
$lang['i_pol0'] = '開放的 wiki (任何人可讀取、寫入、上傳)';
$lang['i_pol1'] = '公開的 wiki (任何人可讀取,註冊使用者可寫入與上傳)';
$lang['i_pol2'] = '封閉的 wiki (只有註冊使用者可讀取、寫入、上傳)';
+$lang['i_allowreg'] = '允許使用者自行註冊';
$lang['i_retry'] = '重試';
$lang['i_license'] = '請選擇您想要的內容發佈授權方式:';
$lang['i_license_none'] = '不要顯示任何關於授權方式的訊息';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index c8a76b66b..797a9b7a1 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -23,6 +23,7 @@
* @author Cupen <Cupenoruler@foxmail.com>
* @author xiqingongzi <Xiqingongzi@Gmail.com>
* @author qinghao <qingxianhao@gmail.com>
+ * @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -302,6 +303,7 @@ $lang['i_modified'] = '由于安全上的考虑,该脚本只能用
<a href="http://dokuwiki.org/install">Dokuwiki 安装指南</a>';
$lang['i_funcna'] = 'PHP 功能 <code>%s</code> 无法使用。也许您的服务器提供商因为某些原因禁用了它。';
$lang['i_phpver'] = '您的 PHP 版本 <code>%s</code> 低于最低要求的 <code>%s</code>。您需要升级您的 PHP 版本。';
+$lang['i_mbfuncoverload'] = '为了运行DocuWiki,您必须在php.ini中禁用mbstring.func_overload。';
$lang['i_permfail'] = 'DokuWiki 无法写入 <code>%s</code>。您需要修改该路径的权限设定!';
$lang['i_confexists'] = '<code>%s</code> 已经存在';
$lang['i_writeerr'] = '无法创建 <code>%s</code>。您需要检查该路径/文件的权限设定并手动创建该文件。';
diff --git a/inc/template.php b/inc/template.php
index 8b39529c5..7f3c68534 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -369,7 +369,11 @@ function tpl_metaheaders($alt = true) {
} else {
$head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
}
- $head['link'][] = array('rel'=> 'canonical', 'href'=> wl($ID, '', true, '&'));
+ $canonicalUrl = wl($ID, '', true, '&');
+ if ($ID == $conf['start']) {
+ $canonicalUrl = DOKU_URL;
+ }
+ $head['link'][] = array('rel'=> 'canonical', 'href'=> $canonicalUrl);
} else {
$head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,follow');
}