summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/actions.php17
-rw-r--r--inc/confutils.php58
-rw-r--r--inc/html.php8
-rw-r--r--inc/lang/ar/jquery.ui.datepicker.js13
-rw-r--r--inc/lang/de/lang.php5
-rw-r--r--inc/lang/el/jquery.ui.datepicker.js2
-rw-r--r--inc/lang/fa/jquery.ui.datepicker.js24
-rw-r--r--inc/lang/fr/jquery.ui.datepicker.js2
-rw-r--r--inc/lang/it/lang.php1
-rw-r--r--inc/lang/ja/lang.php3
-rw-r--r--inc/lang/ka/jquery.ui.datepicker.js35
-rw-r--r--inc/lang/ko/lang.php3
-rw-r--r--inc/lang/lt/lang.php3
-rw-r--r--inc/lang/ru/lang.php4
-rw-r--r--inc/lang/ta/admin.txt3
-rw-r--r--inc/lang/ta/adminplugins.txt1
-rw-r--r--inc/lang/ta/backlinks.txt3
-rw-r--r--inc/lang/ta/conflict.txt3
-rw-r--r--inc/lang/ta/diff.txt3
-rw-r--r--inc/lang/ta/draft.txt1
-rw-r--r--inc/lang/ta/edit.txt1
-rw-r--r--inc/lang/ta/jquery.ui.datepicker.js37
-rw-r--r--inc/lang/ta/lang.php18
-rw-r--r--inc/lang/tr/lang.php14
-rw-r--r--inc/lang/uk/lang.php10
-rw-r--r--inc/pluginutils.php31
-rw-r--r--inc/template.php32
27 files changed, 263 insertions, 72 deletions
diff --git a/inc/actions.php b/inc/actions.php
index 709c19ddd..b0753b22e 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -162,20 +162,9 @@ function act_dispatch(){
if($ACT == 'admin'){
// retrieve admin plugin name from $_REQUEST['page']
if (($page = $INPUT->str('page', '', true)) != '') {
- $pluginlist = plugin_list('admin');
- if (in_array($page, $pluginlist)) {
- // attempt to load the plugin
-
- if (($plugin = plugin_load('admin',$page)) !== null){
- /** @var DokuWiki_Admin_Plugin $plugin */
- if($plugin->forAdminOnly() && !$INFO['isadmin']){
- // a manager tried to load a plugin that's for admins only
- $INPUT->remove('page');
- msg('For admins only',-1);
- }else{
- $plugin->handle();
- }
- }
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ if ($plugin = plugin_getRequestAdminPlugin()){
+ $plugin->handle();
}
}
}
diff --git a/inc/confutils.php b/inc/confutils.php
index 8643a056c..8b61a8d5b 100644
--- a/inc/confutils.php
+++ b/inc/confutils.php
@@ -6,6 +6,12 @@
* @author Harry Fuecks <hfuecks@gmail.com>
*/
+/*
+ * line prefix used to negate single value config items
+ * (scheme.conf & stopwords.conf), e.g.
+ * !gopher
+ */
+const DOKU_CONF_NEGATION = '!';
/**
* Returns the (known) extension and mimetype of a given filename
@@ -49,6 +55,7 @@ function getMimeTypes() {
static $mime = null;
if ( !$mime ) {
$mime = retrieveConfig('mime','confToHash');
+ $mime = array_filter($mime);
}
return $mime;
}
@@ -62,6 +69,7 @@ function getAcronyms() {
static $acronyms = null;
if ( !$acronyms ) {
$acronyms = retrieveConfig('acronyms','confToHash');
+ $acronyms = array_filter($acronyms, 'strlen');
}
return $acronyms;
}
@@ -75,6 +83,7 @@ function getSmileys() {
static $smileys = null;
if ( !$smileys ) {
$smileys = retrieveConfig('smileys','confToHash');
+ $smileys = array_filter($smileys, 'strlen');
}
return $smileys;
}
@@ -88,6 +97,7 @@ function getEntities() {
static $entities = null;
if ( !$entities ) {
$entities = retrieveConfig('entities','confToHash');
+ $entities = array_filter($entities, 'strlen');
}
return $entities;
}
@@ -101,9 +111,11 @@ function getInterwiki() {
static $wikis = null;
if ( !$wikis ) {
$wikis = retrieveConfig('interwiki','confToHash',array(true));
+ $wikis = array_filter($wikis, 'strlen');
+
+ //add sepecial case 'this'
+ $wikis['this'] = DOKU_URL.'{NAME}';
}
- //add sepecial case 'this'
- $wikis['this'] = DOKU_URL.'{NAME}';
return $wikis;
}
@@ -114,7 +126,7 @@ function getInterwiki() {
function getWordblocks() {
static $wordblocks = null;
if ( !$wordblocks ) {
- $wordblocks = retrieveConfig('wordblock','file');
+ $wordblocks = retrieveConfig('wordblock','file',null,'array_merge_with_removal');
}
return $wordblocks;
}
@@ -127,11 +139,11 @@ function getWordblocks() {
function getSchemes() {
static $schemes = null;
if ( !$schemes ) {
- $schemes = retrieveConfig('scheme','file');
+ $schemes = retrieveConfig('scheme','file',null,'array_merge_with_removal');
+ $schemes = array_map('trim', $schemes);
+ $schemes = preg_replace('/^#.*/', '', $schemes);
+ $schemes = array_filter($schemes);
}
- $schemes = array_map('trim', $schemes);
- $schemes = preg_replace('/^#.*/', '', $schemes);
- $schemes = array_filter($schemes);
return $schemes;
}
@@ -194,9 +206,14 @@ function confToHash($file,$lower=false) {
* @param string $type the configuration settings to be read, must correspond to a key/array in $config_cascade
* @param callback $fn the function used to process the configuration file into an array
* @param array $params optional additional params to pass to the callback
+ * @param callback $combine the function used to combine arrays of values read from different configuration files;
+ * the function takes two parameters,
+ * $combined - the already read & merged configuration values
+ * $new - array of config values from the config cascade file being currently processed
+ * and returns an array of the merged configuration values.
* @return array configuration values
*/
-function retrieveConfig($type,$fn,$params=null) {
+function retrieveConfig($type,$fn,$params=null,$combine='array_merge') {
global $config_cascade;
if(!is_array($params)) $params = array();
@@ -208,7 +225,7 @@ function retrieveConfig($type,$fn,$params=null) {
foreach ($config_cascade[$type][$config_group] as $file) {
if (file_exists($file)) {
$config = call_user_func_array($fn,array_merge(array($file),$params));
- $combined = array_merge($combined, $config);
+ $combined = $combine($combined, $config);
}
}
}
@@ -347,4 +364,27 @@ function conf_decodeString($str) {
return $str;
}
}
+
+/**
+ * array combination function to remove negated values (prefixed by !)
+ *
+ * @param array $current
+ * @param array $new
+ *
+ * @return array the combined array, numeric keys reset
+ */
+function array_merge_with_removal($current, $new) {
+ foreach ($new as $val) {
+ if (substr($val,0,1) == DOKU_CONF_NEGATION) {
+ $idx = array_search(trim(substr($val,1)),$current);
+ if ($idx !== false) {
+ unset($current[$idx]);
+ }
+ } else {
+ $current[] = trim($val);
+ }
+ }
+
+ return array_slice($current,0);
+}
//Setup VIM: ex: et ts=4 :
diff --git a/inc/html.php b/inc/html.php
index 2564c3bd6..2f10e3c08 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1409,7 +1409,13 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
// last timestamp is not in changelog, retrieve timestamp from metadata
// note: when page is removed, the metadata timestamp is zero
- $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
+ if(!$r_rev) {
+ if(isset($INFO['meta']['last_change']['date'])) {
+ $r_rev = $INFO['meta']['last_change']['date'];
+ } else {
+ $r_rev = 0;
+ }
+ }
//retrieve revisions with additional info
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
diff --git a/inc/lang/ar/jquery.ui.datepicker.js b/inc/lang/ar/jquery.ui.datepicker.js
index c93fed48d..c9ee84a54 100644
--- a/inc/lang/ar/jquery.ui.datepicker.js
+++ b/inc/lang/ar/jquery.ui.datepicker.js
@@ -1,6 +1,7 @@
/* Arabic Translation for jQuery UI date picker plugin. */
-/* Khaled Alhourani -- me@khaledalhourani.com */
-/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
+/* Used in most of Arab countries, primarily in Bahrain, Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */
+/* Written by Mohammed Alshehri -- m@dralshehri.com */
+
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
@@ -18,15 +19,15 @@ datepicker.regional['ar'] = {
prevText: '&#x3C;السابق',
nextText: 'التالي&#x3E;',
currentText: 'اليوم',
- monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
- 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+ monthNames: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
+ 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
- dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+ dayNamesShort: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
weekHeader: 'أسبوع',
dateFormat: 'dd/mm/yy',
- firstDay: 6,
+ firstDay: 0,
isRTL: true,
showMonthAfterYear: false,
yearSuffix: ''};
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 7dd95eddd..d74f66149 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -28,6 +28,7 @@
* @author Hoisl <hoisl@gmx.at>
* @author Marcel Eickhoff <eickhoff.marcel@gmail.com>
* @author Pascal Schröder <Pascal1802@gmail.com>
+ * @author Hendrik Diel <diel.hendrik@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -93,6 +94,7 @@ $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 angelegt werden.';
$lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwort-E-Mail aufgetreten. Bitte wenden Sie sich an den Wiki-Admin.';
$lang['regbadmail'] = 'Die angegebene E-Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wenden Sie sich bitte an den Wiki-Admin.';
$lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuchen Sie es noch einmal.';
@@ -107,6 +109,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen';
$lang['profdeleted'] = 'Ihr 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 Benutzerkonto konnte nicht aktualisiert werden.';
$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';
@@ -350,10 +353,10 @@ $lang['media_perm_read'] = 'Sie besitzen nicht die notwendigen Berechtigun
$lang['media_perm_upload'] = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
$lang['media_update'] = 'Neue Version hochladen';
$lang['media_restore'] = 'Diese Version wiederherstellen';
+$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
$lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnisse';
$lang['plainhtml'] = 'HTML Klartext';
$lang['wikimarkup'] = 'Wiki Markup';
$lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>';
$lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.';
-$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
diff --git a/inc/lang/el/jquery.ui.datepicker.js b/inc/lang/el/jquery.ui.datepicker.js
index a852a77d7..362e248f8 100644
--- a/inc/lang/el/jquery.ui.datepicker.js
+++ b/inc/lang/el/jquery.ui.datepicker.js
@@ -16,7 +16,7 @@ datepicker.regional['el'] = {
closeText: 'Κλείσιμο',
prevText: 'Προηγούμενος',
nextText: 'Επόμενος',
- currentText: 'Τρέχων Μήνας',
+ currentText: 'Σήμερα',
monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
diff --git a/inc/lang/fa/jquery.ui.datepicker.js b/inc/lang/fa/jquery.ui.datepicker.js
index 8ffd66411..71f8a2852 100644
--- a/inc/lang/fa/jquery.ui.datepicker.js
+++ b/inc/lang/fa/jquery.ui.datepicker.js
@@ -19,18 +19,18 @@ datepicker.regional['fa'] = {
nextText: 'بعدی&#x3E;',
currentText: 'امروز',
monthNames: [
- 'فروردين',
- 'ارديبهشت',
- 'خرداد',
- 'تير',
- 'مرداد',
- 'شهريور',
- 'مهر',
- 'آبان',
- 'آذر',
- 'دی',
- 'بهمن',
- 'اسفند'
+ 'ژانویه',
+ 'فوریه',
+ 'مارس',
+ 'آوریل',
+ 'مه',
+ 'ژوئن',
+ 'ژوئیه',
+ 'اوت',
+ 'سپتامبر',
+ 'اکتبر',
+ 'نوامبر',
+ 'دسامبر'
],
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
dayNames: [
diff --git a/inc/lang/fr/jquery.ui.datepicker.js b/inc/lang/fr/jquery.ui.datepicker.js
index 2f5ff3cbe..6b6e0b35f 100644
--- a/inc/lang/fr/jquery.ui.datepicker.js
+++ b/inc/lang/fr/jquery.ui.datepicker.js
@@ -21,7 +21,7 @@ datepicker.regional['fr'] = {
currentText: 'Aujourd\'hui',
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
- monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
+ monthNamesShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin',
'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index a7da52935..b84c4d7d8 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -21,6 +21,7 @@
* @author Francesco <francesco.cavalli@hotmail.com>
* @author Fabio <fabioslurp@yahoo.it>
* @author Torpedo <dgtorpedo@gmail.com>
+ * @author Maurizio <mcannavo@katamail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php
index 67a69c3de..290bb175b 100644
--- a/inc/lang/ja/lang.php
+++ b/inc/lang/ja/lang.php
@@ -77,6 +77,7 @@ $lang['regmissing'] = '全ての項目を入力してください。'
$lang['reguexists'] = 'このユーザー名は既に存在しています。';
$lang['regsuccess'] = '新しいユーザーが作成されました。パスワードは登録したメールアドレス宛てに送付されます。';
$lang['regsuccess2'] = '新しいユーザーが作成されました。';
+$lang['regfail'] = 'ユーザーを作成できませんでした。';
$lang['regmailfail'] = 'パスワードのメール送信に失敗しました。お手数ですが管理者まで連絡をお願いします。';
$lang['regbadmail'] = 'メールアドレスが有効ではありません。';
$lang['regbadpass'] = '確認用のパスワードが正しくありません。';
@@ -91,6 +92,7 @@ $lang['profdeleteuser'] = 'アカウントの削除';
$lang['profdeleted'] = 'このwikiからあなたのユーザーアカウントは削除済です。';
$lang['profconfdelete'] = 'このwikiから自分のアカウント抹消を希望します。<br/> この操作は取消すことができません。';
$lang['profconfdeletemissing'] = '確認のチェックボックスがチェックされていません。';
+$lang['proffail'] = 'ユーザー情報は更新されませんでした。';
$lang['pwdforget'] = 'パスワードをお忘れですか?パスワード再発行';
$lang['resendna'] = 'パスワードの再発行は出来ません。';
$lang['resendpwd'] = '新しいパスワードをセット';
@@ -336,6 +338,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/ka/jquery.ui.datepicker.js b/inc/lang/ka/jquery.ui.datepicker.js
new file mode 100644
index 000000000..69103542b
--- /dev/null
+++ b/inc/lang/ka/jquery.ui.datepicker.js
@@ -0,0 +1,35 @@
+/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Lado Lomidze (lado.lomidze@gmail.com). */
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define([ "../datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}(function( datepicker ) {
+
+datepicker.regional['ka'] = {
+ closeText: 'დახურვა',
+ prevText: '&#x3c; წინა',
+ nextText: 'შემდეგი &#x3e;',
+ currentText: 'დღეს',
+ monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'],
+ monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'],
+ dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'],
+ dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
+ dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
+ weekHeader: 'კვირა',
+ dateFormat: 'dd-mm-yy',
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: ''};
+datepicker.setDefaults(datepicker.regional['ka']);
+
+return datepicker.regional['ka'];
+
+}));
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index c9b72197b..b46abf5d1 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -13,6 +13,7 @@
* @author Gerrit Uitslag <klapinklapin@gmail.com>
* @author Garam <rowain8@gmail.com>
* @author Young gon Cha <garmede@gmail.com>
+ * @author hyeonsoft <hyeonsoft@live.co.kr>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -78,6 +79,7 @@ $lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합
$lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.';
$lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.';
$lang['regsuccess2'] = '사용자를 만들었습니다.';
+$lang['regfail'] = '사용자 계정이 만들어지지 않았습니다.';
$lang['regmailfail'] = '비밀번호를 이메일로 보내는 동안 오류가 발생했습니다. 관리자에게 문의해주세요!';
$lang['regbadmail'] = '주어진 이메일 주소가 잘못되었습니다 - 오류라고 생각하면 관리자에게 문의해주세요';
$lang['regbadpass'] = '두 주어진 비밀번호가 같지 않습니다. 다시 입력하세요.';
@@ -92,6 +94,7 @@ $lang['profdeleteuser'] = '계정 삭제';
$lang['profdeleted'] = '당신의 사용자 계정이 이 위키에서 삭제되었습니다';
$lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.';
$lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인';
+$lang['proffail'] = '사용자 설정이 업데이트되지 않았습니다.';
$lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정하세요';
$lang['resendna'] = '이 위키는 비밀번호 재설정을 지원하지 않습니다.';
$lang['resendpwd'] = '다음으로 새 비밀번호 보내기';
diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php
index 80ffb8a10..a9eb05260 100644
--- a/inc/lang/lt/lang.php
+++ b/inc/lang/lt/lang.php
@@ -2,7 +2,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
+ *
* @author Linas Valiukas <shirshegsm@gmail.com>
* @author Edmondas Girkantas <eg@zemaitija.net>
* @author Arūnas Vaitekūnas <aras@fan.lt>
@@ -160,7 +160,6 @@ $lang['qb_media'] = 'Paveikslėliai ir kitos bylos';
$lang['qb_sig'] = 'Įterpti parašą';
$lang['qb_smileys'] = 'Šypsenėlės';
$lang['qb_chars'] = 'Specialūs simboliai';
-$lang['js']['del_confirm'] = 'Ar tikrai ištrinti pažymėtą(us) įrašą(us)?';
$lang['metaedit'] = 'Redaguoti metaduomenis';
$lang['metasaveerr'] = 'Nepavyko išsaugoti metaduomenų';
$lang['metasaveok'] = 'Metaduomenys išsaugoti';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 7ca9fb8b3..3a1fb2c56 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -30,6 +30,7 @@
* @author Type-kun <workwork-1@yandex.ru>
* @author Vitaly Filatenko <kot@hacktest.net>
* @author Alex P <alexander@lanos.co.uk>
+ * @author Nolf <m.kopachovets@gmail.com>
*/
$lang['encoding'] = ' utf-8';
$lang['direction'] = 'ltr';
@@ -95,6 +96,7 @@ $lang['regmissing'] = 'Извините, вам следует зап
$lang['reguexists'] = 'Извините, пользователь с таким логином уже существует.';
$lang['regsuccess'] = 'Пользователь создан; пароль выслан на адрес электронной почты.';
$lang['regsuccess2'] = 'Пользователь создан.';
+$lang['regfail'] = 'Пользователь не может быть создан.';
$lang['regmailfail'] = 'Похоже есть проблема с отправкой пароля по почте. Пожалуйста, сообщите об этом администратору.';
$lang['regbadmail'] = 'Данный вами адрес электронной почты выглядит неправильным. Если вы считаете это ошибкой, сообщите администратору.';
$lang['regbadpass'] = 'Два введённых пароля не идентичны. Пожалуйста, попробуйте ещё раз.';
@@ -109,6 +111,7 @@ $lang['profdeleteuser'] = 'Удалить аккаунт';
$lang['profdeleted'] = 'Ваш аккаунт был удален из этой вики';
$lang['profconfdelete'] = 'Я хочу удалить свой аккаунт из этой вики. <br /> Это действие необратимо.';
$lang['profconfdeletemissing'] = 'Флажок подтверждения не установлен';
+$lang['proffail'] = 'Профиль пользователя не был обновлен.';
$lang['pwdforget'] = 'Забыли пароль? Получите новый';
$lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.';
$lang['resendpwd'] = 'Установить новый пароль для';
@@ -356,6 +359,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/ta/admin.txt b/inc/lang/ta/admin.txt
new file mode 100644
index 000000000..2538b4569
--- /dev/null
+++ b/inc/lang/ta/admin.txt
@@ -0,0 +1,3 @@
+====== நிர்வாகம் ======
+
+கீழே டோகுவிக்கியின் நிர்வாகம் தொடர்பான முறைமைகளைப் பார்க்கலாம். \ No newline at end of file
diff --git a/inc/lang/ta/adminplugins.txt b/inc/lang/ta/adminplugins.txt
new file mode 100644
index 000000000..54a363a8a
--- /dev/null
+++ b/inc/lang/ta/adminplugins.txt
@@ -0,0 +1 @@
+===== மேலதிக சொருகிகள் ===== \ No newline at end of file
diff --git a/inc/lang/ta/backlinks.txt b/inc/lang/ta/backlinks.txt
new file mode 100644
index 000000000..d8e618fc0
--- /dev/null
+++ b/inc/lang/ta/backlinks.txt
@@ -0,0 +1,3 @@
+====== பின்னிணைப்புக்கள் ======
+
+குறித்த பக்கத்திற்கான இணைப்பைக் கொண்டிருக்கும் அனைத்துப் பக்கங்களும் \ No newline at end of file
diff --git a/inc/lang/ta/conflict.txt b/inc/lang/ta/conflict.txt
new file mode 100644
index 000000000..301c2f07a
--- /dev/null
+++ b/inc/lang/ta/conflict.txt
@@ -0,0 +1,3 @@
+====== புதிய பதிப்பு உண்டு ======
+
+நீங்கள் திருத்திய பக்கத்திற்கு புதிய பதிப்பு உருவாகியுள்ளது. நீங்கள் குறித்த பக்கத்தை திருத்தும் போது, இன்னுமொரு பயனர் அதே பக்கத்தைத் திருத்தினால் இப்படி ஏற்பட வாய்ப்புண்டு. \ No newline at end of file
diff --git a/inc/lang/ta/diff.txt b/inc/lang/ta/diff.txt
new file mode 100644
index 000000000..bbc287676
--- /dev/null
+++ b/inc/lang/ta/diff.txt
@@ -0,0 +1,3 @@
+====== வேறுபாடுகள் ======
+
+குறித்த பக்கத்திற்கான இருவேறுபட்ட மாறுதல்களைக் காட்டுகின்றது. \ No newline at end of file
diff --git a/inc/lang/ta/draft.txt b/inc/lang/ta/draft.txt
new file mode 100644
index 000000000..2bb89219d
--- /dev/null
+++ b/inc/lang/ta/draft.txt
@@ -0,0 +1 @@
+====== பூரணமாகத கோப்பு ====== \ No newline at end of file
diff --git a/inc/lang/ta/edit.txt b/inc/lang/ta/edit.txt
new file mode 100644
index 000000000..e2d61d781
--- /dev/null
+++ b/inc/lang/ta/edit.txt
@@ -0,0 +1 @@
+பக்கத்தைத் திருத்தி முடிந்தவுடன், "செமி" என்ற பட்டனை அழுத்தவும். விக்கியின் வாக்கிய அமைப்புக்களைப் அறிந்துகொள்ள [[wiki:syntax]] ஐ பார்க்கவும். நீங்கள் விக்கியில் எழுதிப் பயிற்சிபெற [playground:playground|விளையாட்டுத்தாடலை]] பயன்படுத்தவும். \ No newline at end of file
diff --git a/inc/lang/ta/jquery.ui.datepicker.js b/inc/lang/ta/jquery.ui.datepicker.js
new file mode 100644
index 000000000..113a20849
--- /dev/null
+++ b/inc/lang/ta/jquery.ui.datepicker.js
@@ -0,0 +1,37 @@
+/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by S A Sureshkumar (saskumar@live.com). */
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define([ "../datepicker" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery.datepicker );
+ }
+}(function( datepicker ) {
+
+datepicker.regional['ta'] = {
+ closeText: 'மூடு',
+ prevText: 'முன்னையது',
+ nextText: 'அடுத்தது',
+ currentText: 'இன்று',
+ monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
+ 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
+ monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
+ 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
+ dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
+ dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
+ dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
+ weekHeader: 'Не',
+ dateFormat: 'dd/mm/yy',
+ firstDay: 1,
+ isRTL: false,
+ showMonthAfterYear: false,
+ yearSuffix: ''};
+datepicker.setDefaults(datepicker.regional['ta']);
+
+return datepicker.regional['ta'];
+
+}));
diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php
index a5b89527a..41c4a94c3 100644
--- a/inc/lang/ta/lang.php
+++ b/inc/lang/ta/lang.php
@@ -4,21 +4,39 @@
* @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['singlequoteopening'] = '\'';
+$lang['singlequoteclosing'] = '\'';
+$lang['apostrophe'] = '\'';
$lang['btn_edit'] = 'இந்த பக்கத்தை திருத்து ';
+$lang['btn_source'] = 'பக்க மூலத்தைக் காட்டு';
$lang['btn_show'] = 'பக்கத்தை காண்பி ';
$lang['btn_create'] = 'இந்த பக்கத்தை உருவாக்கு ';
$lang['btn_search'] = 'தேடு';
$lang['btn_save'] = 'சேமி ';
+$lang['btn_preview'] = 'முன்னோட்டம்';
+$lang['btn_top'] = 'மேலே செல்';
$lang['btn_revs'] = 'பழைய திருத்தங்கள்';
$lang['btn_recent'] = 'சமீபத்திய மாற்றங்கள்';
$lang['btn_upload'] = 'பதிவேற்று';
$lang['btn_cancel'] = 'ரத்து';
$lang['btn_index'] = 'தள வரைபடம்';
+$lang['btn_secedit'] = 'தொகு';
+$lang['btn_login'] = 'புகுபதிகை';
+$lang['btn_logout'] = 'விடுபதிகை';
$lang['btn_admin'] = 'நிர்வாகம்';
$lang['btn_update'] = 'மேம்படுத்து ';
$lang['btn_delete'] = 'நீக்கு';
+$lang['btn_back'] = 'பின்';
+$lang['btn_backlink'] = 'பின்னிணைப்புக்கள்';
+$lang['btn_subscribe'] = 'சந்தா நிர்வகிப்பு';
+$lang['btn_profile'] = 'பயனர் கணக்கு மாற்றம்';
+$lang['btn_reset'] = 'மீட்டமை';
$lang['btn_resendpwd'] = 'புதிய அடையாளச்சொல்லை நியமி';
+$lang['btn_draft'] = 'திருத்த வரைவு';
$lang['btn_apply'] = 'உபயோகி';
$lang['user'] = 'பயனர்பெயர்';
$lang['pass'] = 'அடையாளச்சொல்';
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index ff7a73eea..6b4315c7c 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -73,11 +73,12 @@ $lang['badpassconfirm'] = 'Üzgünüz, parolanız yanlış';
$lang['minoredit'] = 'Küçük Değişiklikler';
$lang['draftdate'] = 'Taslak şu saatte otomatik kaydedildi:';
$lang['nosecedit'] = 'Sayfa yakın zamanda değiştirilmiştir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiştir.';
-$lang['searchcreatepage'] = "Aradığınız şeyi bulamadıysanız, ''Sayfayı değiştir'' tuşuna tıklayarak girdiğiniz sorgu adıyla yeni bir sayfa oluşturabilirsiniz .";
+$lang['searchcreatepage'] = 'Aradığınız şeyi bulamadıysanız, \'\'Sayfayı değiştir\'\' tuşuna tıklayarak girdiğiniz sorgu adıyla yeni bir sayfa oluşturabilirsiniz .';
$lang['regmissing'] = 'Üzgünüz, tüm alanları doldurmalısınız.';
$lang['reguexists'] = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.';
$lang['regsuccess'] = 'Kullanıcı oluşturuldu ve şifre e-posta adresine gönderildi.';
$lang['regsuccess2'] = 'Kullanıcı oluşturuldu.';
+$lang['regfail'] = 'Kullanıcı oluşturulamadı.';
$lang['regmailfail'] = 'Şifrenizi e-posta ile gönderirken bir hata oluşmuş gibi görünüyor. Lütfen yönetici ile temasa geçiniz!';
$lang['regbadmail'] = 'Verilen e-posta adresi geçersiz gibi görünüyor - bunun bir hata olduğunu düşünüyorsanız yönetici ile temasa geçiniz.';
$lang['regbadpass'] = 'Girilen parolalar aynı değil. Lütfen tekrar deneyiniz.';
@@ -92,6 +93,7 @@ $lang['profdeleteuser'] = 'Hesabı Sil';
$lang['profdeleted'] = 'Bu wiki\'den hesabınız silindi';
$lang['profconfdelete'] = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu işlem geri alınamaz';
$lang['profconfdeletemissing'] = 'Onay kutusu işaretlenmedi';
+$lang['proffail'] = 'Kullanıcı bilgileri güncellenmedi.';
$lang['pwdforget'] = 'Parolanızı mı unuttunuz? Yeni bir parola alın';
$lang['resendna'] = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.';
$lang['resendpwd'] = 'İçin yeni şifre belirle';
@@ -184,6 +186,7 @@ $lang['diff'] = 'Kullanılan sürüm ile farkları göster';
$lang['diff2'] = 'Seçili sürümler arasındaki farkı göster';
$lang['difflink'] = 'Karşılaştırma görünümüne bağlantı';
$lang['diff_type'] = 'farklı görünüş';
+$lang['diff_inline'] = 'Satır içi';
$lang['diff_side'] = 'Yan yana';
$lang['diffprevrev'] = 'Önceki sürüm';
$lang['diffnextrev'] = 'Sonraki sürüm';
@@ -257,6 +260,14 @@ $lang['img_camera'] = 'Fotoğraf Makinası:';
$lang['img_keywords'] = 'Anahtar Sözcükler:';
$lang['img_width'] = 'Genişlik:';
$lang['img_height'] = 'Yükseklik:';
+$lang['subscr_subscribe_success'] = '%s, %s için abonelik listesine eklendi.';
+$lang['subscr_subscribe_error'] = '%s, %s için abonelik listesine eklenirken hata ile karşılaşıldı.';
+$lang['subscr_subscribe_noaddress'] = 'Oturum bilginiz ile ilişkilendirilmiş bir adres olmadığı için abonelik listesine dahil olamazsınız.';
+$lang['subscr_unsubscribe_success'] = '%s, %s için abonelik listesinden çıkarıldı.';
+$lang['subscr_unsubscribe_error'] = '%s, %s için abonelik listesinden çıkarılırken hata ile karşılaşıldı.';
+$lang['subscr_already_subscribed'] = '%s zaten %s listesine abone.';
+$lang['subscr_not_subscribed'] = '%s, %s listesine abone değil.';
+$lang['subscr_m_not_subscribed'] = 'Bu sayfa veya isim alanına (namespace) abone değilsiniz. ';
$lang['subscr_m_new_header'] = 'Üyelik ekle';
$lang['subscr_m_current_header'] = 'Üyeliğini onayla';
$lang['subscr_m_unsubscribe'] = 'Üyelik iptali';
@@ -273,6 +284,7 @@ $lang['i_problems'] = 'Kurulum sihirbazı aşağıda gösterilen soru
$lang['i_modified'] = 'Güzenlik sebebiyle bu script sadece yeni ve değiştirilmemiş bir Dokuwiki kurulumunda çalışır. Ya indirdiğiniz paketi yeniden açmalı ya da <a href="http://dokuwiki.org/install"> adresindeki Dokuwiki kurulum kılavuzu</a>na bakmalısınız.';
$lang['i_funcna'] = '<code>%s</code> PHP fonksiyonu bulunmamaktadır. Barındırma(Hosting) hizmetinde bu özellik kapatılmış olabilir.';
$lang['i_phpver'] = '<code>%s</code> PHP sürümü, gereken <code>%s</code> sürümünden daha düşük. PHP kurulumunu yükseltmeniz gerekmektedir.';
+$lang['i_mbfuncoverload'] = 'DokuWiki\'nin çalışması için php.ini dosyasında mbstring.func_overload seçeneği kapalı (değeri 0) olarak ayarlanmalıdır.';
$lang['i_permfail'] = '<code>%s</code> Dokuwiki tarafından yazılabilir değil. İzin ayarlarını bu klasör için düzeltmeniz gerekmektedir!';
$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.';
diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php
index 173b844fc..52edaafda 100644
--- a/inc/lang/uk/lang.php
+++ b/inc/lang/uk/lang.php
@@ -11,6 +11,7 @@
* @author Kate Arzamastseva pshns@ukr.net
* @author Egor Smkv <egorsmkv@gmail.com>
* @author Max Lyashuk <m_lyashuk@ukr.net>
+ * @author Pavel <pavelholovko@yandex.ru>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -55,6 +56,7 @@ $lang['btn_apply'] = 'Застосувати';
$lang['btn_media'] = 'Керування медіа-файлами';
$lang['btn_deleteuser'] = 'Видалити мій аккаунт';
$lang['btn_img_backto'] = 'Повернутися до %s';
+$lang['btn_mediaManager'] = 'Показати в медіа менеджері';
$lang['loggedinas'] = 'Ви:';
$lang['user'] = 'Користувач';
$lang['pass'] = 'Пароль';
@@ -75,6 +77,7 @@ $lang['regmissing'] = 'Необхідно заповнити всі
$lang['reguexists'] = 'Користувач з таким іменем вже існує.';
$lang['regsuccess'] = 'Користувача створено. Пароль відправлено на e-mail.';
$lang['regsuccess2'] = 'Користувача створено.';
+$lang['regfail'] = 'Користувач не створений';
$lang['regmailfail'] = 'При відправленні пароля сталась помилка. Зв’яжіться з адміністратором!';
$lang['regbadmail'] = 'Схоже, що адреса e-mail невірна - якщо ви вважаєте, що це помилка, зв’яжіться з адміністратором';
$lang['regbadpass'] = 'Надані паролі не співпадають, спробуйте ще раз.';
@@ -298,3 +301,10 @@ $lang['hours'] = '%d годин тому';
$lang['minutes'] = '%d хвилин тому';
$lang['seconds'] = '%d секунд тому';
$lang['wordblock'] = 'Ваші зміни не збережено, тому що вони розпізнані як такі, що містять заблокований текст(спам).';
+$lang['media_searchtab'] = 'Пошук';
+$lang['media_file'] = 'Файл';
+$lang['media_viewtab'] = 'Огляд';
+$lang['media_edittab'] = 'Редагувати';
+$lang['media_historytab'] = 'Історія';
+$lang['media_sort_name'] = 'Ім’я';
+$lang['media_sort_date'] = 'Дата';
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index 4d591869d..60f79869f 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -103,3 +103,34 @@ function plugin_getcascade() {
global $plugin_controller;
return $plugin_controller->getCascade();
}
+
+
+/**
+ * Return the currently operating admin plugin or null
+ * if not on an admin plugin page
+ *
+ * @return Doku_Plugin_Admin
+ */
+function plugin_getRequestAdminPlugin(){
+ static $admin_plugin = false;
+ global $ACT,$INPUT,$INFO;
+
+ if ($admin_plugin === false) {
+ if (($ACT == 'admin') && ($page = $INPUT->str('page', '', true)) != '') {
+ $pluginlist = plugin_list('admin');
+ if (in_array($page, $pluginlist)) {
+ // attempt to load the plugin
+ /** @var $admin_plugin DokuWiki_Admin_Plugin */
+ $admin_plugin = plugin_load('admin', $page);
+ // verify
+ if ($admin_plugin && $admin_plugin->forAdminOnly() && !$INFO['isadmin']) {
+ $admin_plugin = null;
+ $INPUT->remove('page');
+ msg('For admins only',-1);
+ }
+ }
+ }
+ }
+
+ return $admin_plugin;
+}
diff --git a/inc/template.php b/inc/template.php
index fd8bff11a..95dc52deb 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -218,18 +218,9 @@ function tpl_toc($return = false) {
$toc = array();
}
} elseif($ACT == 'admin') {
- // try to load admin plugin TOC FIXME: duplicates code from tpl_admin
- $plugin = null;
- $class = $INPUT->str('page');
- if(!empty($class)) {
- $pluginlist = plugin_list('admin');
- if(in_array($class, $pluginlist)) {
- // attempt to load the plugin
- /** @var $plugin DokuWiki_Admin_Plugin */
- $plugin = plugin_load('admin', $class);
- }
- }
- if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
+ // try to load admin plugin TOC
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ if ($plugin = plugin_getRequestAdminPlugin()) {
$toc = $plugin->getTOC();
$TOC = $toc; // avoid later rebuild
}
@@ -1035,7 +1026,7 @@ function tpl_pageinfo($ret = false) {
* @return bool|string
*/
function tpl_pagetitle($id = null, $ret = false) {
- global $ACT, $INPUT, $lang;
+ global $ACT, $INPUT, $conf, $lang;
if(is_null($id)) {
global $ID;
@@ -1054,17 +1045,10 @@ function tpl_pagetitle($id = null, $ret = false) {
case 'admin' :
$page_title = $lang['btn_admin'];
// try to get the plugin name
- // retrieve admin plugin name from $_REQUEST['page']
- if (($page = $INPUT->str('page', '', true)) != '') {
- $pluginlist = plugin_list('admin');
- if (in_array($page, $pluginlist)) {
- // attempt to load the plugin
-
- if (($plugin = plugin_load('admin',$page)) !== null){
- $plugin_title = $plugin->getMenuText();
- $page_title = $plugin_title ? $plugin_title : $page;
- }
- }
+ /** @var $plugin DokuWiki_Admin_Plugin */
+ if ($plugin = plugin_getRequestAdminPlugin()){
+ $plugin_title = $plugin->getMenuText($conf['lang']);
+ $page_title = $plugin_title ? $plugin_title : $plugin->getPluginName();
}
break;