diff options
author | Andreas Gohr <andi@splitbrain.org> | 2015-06-26 11:07:20 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2015-06-26 11:07:20 +0200 |
commit | 5ddba4576a304c9e62b028c97ee466d79de12429 (patch) | |
tree | 03199c579f9302f0ed1e0b47f9c597a7f9bd2fc7 /inc | |
parent | 5114259bf530b89afbb21bd693b1da3f96016b7f (diff) | |
parent | 71c46303d9cd8a321e58a7e7255d13f0d5a5c4eb (diff) | |
download | rpg-5ddba4576a304c9e62b028c97ee466d79de12429.tar.gz rpg-5ddba4576a304c9e62b028c97ee466d79de12429.tar.bz2 |
Merge branch 'master' into styler
* master: (26 commits)
translation update
translation update
Replace old constructor call by __construct() in dokuwiki_xmlrpc_server
translation update
change two spaces to a space
translation update
translation update
translation update
translation update
Upgrade to jQuery 1.11.3 and jQueryUI 1.11.4 closes #1175
update confToHash() inline documentation for new parameter
translation update
Plugins can send usage data
fixed isBundled() check when remote info is unavailable
avoid accessing nonexistant array key. fixes #1165
translation update
Define the negation character in a constant
Ensure single value negation is not affected by white space differences
Ensure filtering only removes empty string values (not other values which PHP evaluates to false)
translation update
...
Diffstat (limited to 'inc')
-rw-r--r-- | inc/actions.php | 17 | ||||
-rw-r--r-- | inc/confutils.php | 58 | ||||
-rw-r--r-- | inc/html.php | 8 | ||||
-rw-r--r-- | inc/lang/ar/jquery.ui.datepicker.js | 13 | ||||
-rw-r--r-- | inc/lang/de/lang.php | 5 | ||||
-rw-r--r-- | inc/lang/el/jquery.ui.datepicker.js | 2 | ||||
-rw-r--r-- | inc/lang/fa/jquery.ui.datepicker.js | 24 | ||||
-rw-r--r-- | inc/lang/fr/jquery.ui.datepicker.js | 2 | ||||
-rw-r--r-- | inc/lang/it/lang.php | 1 | ||||
-rw-r--r-- | inc/lang/ja/lang.php | 3 | ||||
-rw-r--r-- | inc/lang/ka/jquery.ui.datepicker.js | 35 | ||||
-rw-r--r-- | inc/lang/ko/lang.php | 3 | ||||
-rw-r--r-- | inc/lang/lt/lang.php | 3 | ||||
-rw-r--r-- | inc/lang/ru/lang.php | 4 | ||||
-rw-r--r-- | inc/lang/ta/admin.txt | 3 | ||||
-rw-r--r-- | inc/lang/ta/adminplugins.txt | 1 | ||||
-rw-r--r-- | inc/lang/ta/backlinks.txt | 3 | ||||
-rw-r--r-- | inc/lang/ta/conflict.txt | 3 | ||||
-rw-r--r-- | inc/lang/ta/diff.txt | 3 | ||||
-rw-r--r-- | inc/lang/ta/draft.txt | 1 | ||||
-rw-r--r-- | inc/lang/ta/edit.txt | 1 | ||||
-rw-r--r-- | inc/lang/ta/jquery.ui.datepicker.js | 37 | ||||
-rw-r--r-- | inc/lang/ta/lang.php | 18 | ||||
-rw-r--r-- | inc/lang/tr/lang.php | 14 | ||||
-rw-r--r-- | inc/lang/uk/lang.php | 10 | ||||
-rw-r--r-- | inc/pluginutils.php | 31 | ||||
-rw-r--r-- | inc/template.php | 32 |
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: '<السابق', nextText: 'التالي>', 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: 'بعدی>', 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: '< წინა', + nextText: 'შემდეგი >', + 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; |