diff options
60 files changed, 693 insertions, 172 deletions
diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 542a307b8..bc19ebff9 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -626,5 +626,24 @@ def'); ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + + function testTable_FS1833() { + $syntax = " \n| Row 0 Col 1 |\n"; + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse($syntax); + $calls = array ( + array('document_start',array()), + array('table_open',array(1, 1, 2)), + array('tablerow_open',array()), + array('tablecell_open',array(1,'left',1)), + array('cdata',array(' Row 0 Col 1 ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(strlen($syntax))), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + } + } diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 02ff85fad..be3f14a18 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr <andi@splitbrain.org> * @author Christof <gagi@fin.de> * @author Anika Henke <anika@selfthinker.org> @@ -21,6 +21,7 @@ * @author Pierre Corell <info@joomla-praxis.de> * @author Frank Loizzi <contact@software.bacal.de> * @author Volker Bödker <volker@boedker.de> + * @author Janosch <janosch@moinzen.de> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -302,6 +303,7 @@ $lang['i_policy'] = 'Anfangseinstellungen der Zugangskontrolle (ACL $lang['i_pol0'] = 'Offenes Wiki (lesen, schreiben und hochladen für alle Benutzer)'; $lang['i_pol1'] = 'Öffentliches Wiki (Lesen für alle, Schreiben und Hochladen nur für registrierte Benutzer)'; $lang['i_pol2'] = 'Geschlossenes Wiki (Lesen, Schreiben und Hochladen nur für registrierte Benutzer)'; +$lang['i_allowreg'] = 'Benutzer können sich selbst registrieren'; $lang['i_retry'] = 'Wiederholen'; $lang['i_license'] = 'Bitte wähle die Lizenz aus unter der die Wiki-Inhalte veröffentlicht werden sollen:'; $lang['i_license_none'] = 'Keine Lizenzinformationen anzeigen'; @@ -339,3 +341,5 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge $lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.'; $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; +$lang['currentns'] = 'Aktueller Namensraum'; +$lang['searchresult'] = 'Suchergebnis'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 61b2fda9d..8007f2b23 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> @@ -10,6 +10,7 @@ * @author Petros Vidalis <pvidalis@gmail.com> * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com * @author Constantinos Xanthopoulos <conx@xanthopoulos.info> + * @author chris taklis <ctaklis@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -85,6 +86,7 @@ $lang['profchanged'] = 'Το προφίλ χρήστη τροποπο $lang['profnodelete'] = 'Το wiki δεν υποστηρίζει την διαγραφή χρηστών'; $lang['profdeleteuser'] = 'Διαγραφή λογαριασμού'; $lang['profdeleted'] = 'Ο λογαριασμός διαγράφηκε από αυτό το wiki'; +$lang['profconfdelete'] = 'Επιθυμώ να διαγράψω τον λογαριασμό μου από αυτό το wiki. <br/> Αυτή η επιλογή δεν μπορεί να αναιρεθεί.'; $lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.'; $lang['resendna'] = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.'; $lang['resendpwd'] = 'Εισαγωγή νέου ωδικού για'; @@ -291,6 +293,7 @@ $lang['i_policy'] = 'Αρχική πολιτική Λίστας Δ $lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)'; $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μπορούν να διαβάσουν σελίδες αλλά μόνο οι εγγεγραμμένοι χρήστες μπορούν να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)'; $lang['i_pol2'] = 'Κλειστό Wiki (μόνο οι εγγεγραμμένοι χρήστες μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)'; +$lang['i_allowreg'] = 'Οι χρήστες επιτρέπεται να εγγραφούν μόνοι τους'; $lang['i_retry'] = 'Νέα προσπάθεια'; $lang['i_license'] = 'Παρακαλώ επιλέξτε την άδεια που θα χρησιμοποιήσετε για την διάθεση του περιεχομένου σας:'; $lang['recent_global'] = 'Βλέπετε τις αλλαγές εντός του φακέλου <b>%s</b>. Μπορείτε επίσης να <a href="%s">δείτε τις πρόσφατες αλλαγές σε όλο το wiki</a>.'; @@ -319,8 +322,10 @@ $lang['media_search'] = 'Αναζήτηση στο <strong>%s</strong> $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s στα %s'; $lang['media_edit'] = 'Επεξεργασία %s'; +$lang['media_history'] = 'Ιστορικό των %s'; $lang['media_meta_edited'] = 'τα μεταδεδομένα επεξεργάστηκαν'; $lang['media_perm_read'] = 'Συγνώμη, δεν έχετε επαρκή διακαιώματα για να διαβάσετε αυτά τα αρχεία.'; $lang['media_perm_upload'] = 'Συγνώμη, δεν έχετε επαρκή διακαιώματα για να φορτώσετε αυτά τα αρχεία.'; $lang['media_update'] = 'Φόρτωση νέας έκδοσης'; $lang['media_restore'] = 'Επαναφορά αυτή της έκδοσης'; +$lang['searchresult'] = 'Αποτέλεσμα έρευνας'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 84c53d306..feefc3da8 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -8,6 +8,7 @@ * @author Otto Vainio <otto@valjakko.net> * @author Teemu Mattila <ghcsystems@gmail.com> * @author Sami Olmari <sami@olmari.fi> + * @author Rami Lehti <rammer@ipi.fi> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 44bc0f859..49f617323 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -28,6 +28,7 @@ * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Emmanuel <seedfloyd@gmail.com> + * @author Jérôme Brandt <jeromebrandt@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -309,6 +310,7 @@ $lang['i_policy'] = 'Politique de contrôle d\'accès initiale'; $lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)'; $lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)'; $lang['i_pol2'] = 'Wiki fermé (lecture, écriture, envoi de fichiers pour les utilisateurs enregistrés uniquement)'; +$lang['i_allowreg'] = 'Permettre aux utilisateurs de s\'enregistrer eux-mêmes.'; $lang['i_retry'] = 'Réessayer'; $lang['i_license'] = 'Veuillez choisir la licence sous laquelle vous souhaitez placer votre contenu :'; $lang['i_license_none'] = 'Ne pas afficher d\'information de licence.'; @@ -346,3 +348,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['searchresult'] = 'Résultat de la recherche'; +$lang['plainhtml'] = 'HTML brut'; +$lang['wikimarkup'] = 'Wiki balise'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 5300dfd2a..a2bde3b60 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Giorgio Vecchiocattivi <giorgio@vecchio.it> * @author Roberto Bolli [http://www.rbnet.it/] * @author Silvia Sargentoni <polinnia@tin.it> @@ -16,6 +16,7 @@ * @author Matteo Pasotti <matteo@xquiet.eu> * @author snarchio@gmail.com * @author Edmondo Di Tucci <snarchio@gmail.com> + * @author Claudio Lanconelli <lancos@libero.it> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -298,6 +299,7 @@ $lang['i_policy'] = 'Regole di accesso iniziali'; $lang['i_pol0'] = 'Wiki Aperto (lettura, scrittura, caricamento file per tutti)'; $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e caricamento file per gli utenti registrati)'; $lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)'; +$lang['i_allowreg'] = 'Permetti agli utenti di registrarsi'; $lang['i_retry'] = 'Riprova'; $lang['i_license'] = 'Per favore scegli la licenza sotto cui vuoi rilasciare il contenuto:'; $lang['i_license_none'] = 'Non mostrare informazioni sulla licenza'; @@ -335,3 +337,4 @@ $lang['media_perm_read'] = 'Spiacente, non hai abbastanza privilegi per le $lang['media_perm_upload'] = 'Spiacente, non hai abbastanza privilegi per caricare files.'; $lang['media_update'] = 'Carica nuova versione'; $lang['media_restore'] = 'Ripristina questa versione'; +$lang['searchresult'] = 'Risultati della ricerca'; diff --git a/inc/lang/ko/backlinks.txt b/inc/lang/ko/backlinks.txt index 6a6ad48a4..f464e5541 100644 --- a/inc/lang/ko/backlinks.txt +++ b/inc/lang/ko/backlinks.txt @@ -1,3 +1,3 @@ -====== 백링크 ====== +====== 가리키는 링크 ====== 현재 문서를 가리키는 링크가 있는 문서 목록입니다.
\ No newline at end of file diff --git a/inc/lang/ko/denied.txt b/inc/lang/ko/denied.txt index cff844bf4..c70039169 100644 --- a/inc/lang/ko/denied.txt +++ b/inc/lang/ko/denied.txt @@ -1,3 +1,3 @@ ====== 권한 거절 ====== -죄송하지만 계속할 수 있는 권한이 없습니다. 로그인하세요.
\ No newline at end of file +죄송하지만 기여 권한이 없습니다. 로그인 후 이용해주세요.
\ No newline at end of file diff --git a/inc/lang/ko/editrev.txt b/inc/lang/ko/editrev.txt index 8d3aeb813..530b38d25 100644 --- a/inc/lang/ko/editrev.txt +++ b/inc/lang/ko/editrev.txt @@ -1,2 +1,2 @@ -**문서의 이전 판을 선택했습니다!** 저장하면 이 데이터로 새 판을 만듭니다. +**문서의 이전 판을 선택했습니다!** 저장하면 이 자료로 새 판을 만듭니다. ----
\ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 39f2428fa..2d6b0f147 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -11,6 +11,7 @@ * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -25,7 +26,7 @@ $lang['btn_show'] = '문서 보기'; $lang['btn_create'] = '문서 만들기'; $lang['btn_search'] = '검색'; $lang['btn_save'] = '저장'; -$lang['btn_preview'] = '미리 보기'; +$lang['btn_preview'] = '미리보기'; $lang['btn_top'] = '맨 위로'; $lang['btn_newer'] = '<< 최근'; $lang['btn_older'] = '이전 >>'; @@ -37,14 +38,14 @@ $lang['btn_index'] = '사이트맵'; $lang['btn_secedit'] = '편집'; $lang['btn_login'] = '로그인'; $lang['btn_logout'] = '로그아웃'; -$lang['btn_admin'] = '관리'; +$lang['btn_admin'] = '관리자'; $lang['btn_update'] = '바꾸기'; -$lang['btn_delete'] = '삭제'; +$lang['btn_delete'] = '지우기'; $lang['btn_back'] = '뒤로'; -$lang['btn_backlink'] = '백링크'; +$lang['btn_backlink'] = '가리키는 링크'; $lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기'; $lang['btn_subscribe'] = '구독 관리'; -$lang['btn_profile'] = '개인 정보 바꾸기'; +$lang['btn_profile'] = '개인정보 바꾸기'; $lang['btn_reset'] = '재설정'; $lang['btn_resendpwd'] = '새 비밀번호 설정'; $lang['btn_draft'] = '초안 편집'; @@ -64,28 +65,28 @@ $lang['passchk'] = '비밀번호 다시 확인'; $lang['remember'] = '기억하기'; $lang['fullname'] = '실명'; $lang['email'] = '이메일'; -$lang['profile'] = '개인 정보'; -$lang['badlogin'] = '죄송하지만 사용자 이름이나 비밀번호가 잘못되었습니다.'; -$lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못되었습니다'; +$lang['profile'] = '개인정보'; +$lang['badlogin'] = '죄송하지만 사용자 이름이나 비밀번호가 잘못 입력되었습니다.'; +$lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못 입력되었습니다'; $lang['minoredit'] = '사소한 바뀜'; $lang['draftdate'] = '초안 자동 저장 시간'; -$lang['nosecedit'] = '한동안 문서가 바뀌었으며, 문단 정보가 오래되어 문서 전체를 대신 열었습니다.'; +$lang['nosecedit'] = '한 동안 문서가 바뀌었으며, 문단 정보가 오래되어 문서 전체를 대신 열었습니다.'; $lang['regmissing'] = '죄송하지만 모든 필드를 채워야 합니다.'; $lang['reguexists'] = '죄송하지만 같은 이름을 사용하는 사용자가 있습니다.'; $lang['regsuccess'] = '사용자를 만들었으며 비밀번호는 이메일로 보냈습니다.'; $lang['regsuccess2'] = '사용자를 만들었습니다.'; -$lang['regmailfail'] = '비밀번호를 이메일로 보낼 때 오류가 발생했습니다. 관리자에게 문의하세요!'; -$lang['regbadmail'] = '이메일 주소가 잘못됐습니다 - 오류라고 생각하면 관리자에게 문의하세요'; -$lang['regbadpass'] = '새 비밀번호가 같지 않습니다. 다시 입력하세요.'; +$lang['regmailfail'] = '비밀번호를 이메일로 보내는 도중에 오류가 발생했습니다. 관리자에게 문의하세요!'; +$lang['regbadmail'] = '이메일 주소가 잘못 입력되었습니다 - 오류라고 생각하면 관리자에게 문의하세요'; +$lang['regbadpass'] = '새 비밀번호가 동일하지 않습니다. 다시 입력하세요.'; $lang['regpwmail'] = '도쿠위키 비밀번호'; $lang['reghere'] = '계정이 없나요? 계정을 등록할 수 있습니다'; -$lang['profna'] = '이 위키는 개인 정보 수정을 할 수 없습니다'; -$lang['profnochange'] = '바뀐 내용이 없습니다.'; +$lang['profna'] = '이 위키는 개인정보 수정을 할 수 없습니다'; +$lang['profnochange'] = '바뀐 내역이 없습니다.'; $lang['profnoempty'] = '이름이나 이메일 주소가 비었습니다.'; -$lang['profchanged'] = '개인 정보가 성공적으로 바뀌었습니다.'; +$lang['profchanged'] = '개인정보가 성공적으로 바뀌었습니다.'; $lang['profnodelete'] = '이 위키는 사용자 삭제를 지원하지 않습니다'; $lang['profdeleteuser'] = '계정 삭제'; -$lang['profdeleted'] = '내 사용자 계정이 이 위키에서 삭제되었습니다'; +$lang['profdeleted'] = '사용자 계정이 이 위키에서 삭제되었습니다'; $lang['profconfdelete'] = '이 위키에서 내 계정을 제거하고 싶습니다. <br/> 이 행동은 되돌릴 수 없습니다.'; $lang['profconfdeletemissing'] = '선택하지 않은 확인 상자를 확인'; $lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 재설정할 수 있습니다'; @@ -101,12 +102,12 @@ $lang['licenseok'] = '참고: 이 문서를 편집하면 내용은 $lang['searchmedia'] = '파일 이름 검색:'; $lang['searchmedia_in'] = '%s에서 검색'; $lang['txt_upload'] = '올릴 파일 선택'; -$lang['txt_filename'] = '올릴 파일 이름 입력 (선택 사항)'; +$lang['txt_filename'] = '올릴 파일 이름 입력(선택 사항)'; $lang['txt_overwrt'] = '기존 파일에 덮어쓰기'; $lang['maxuploadsize'] = '최대 올리기 용량. 파일당 %s입니다.'; $lang['lockedby'] = '현재 잠겨진 사용자'; $lang['lockexpire'] = '잠금 해제 시간'; -$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리 보기를 눌러 잠금 시간을 다시 설정하세요.'; +$lang['js']['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하세요.'; $lang['js']['notsavedyet'] = '저장하지 않은 바뀜이 사라집니다.'; $lang['js']['searchmedia'] = '파일 검색'; $lang['js']['keepopen'] = '선택할 때 창을 열어 놓기'; @@ -152,13 +153,13 @@ $lang['nothingfound'] = '아무 것도 없습니다.'; $lang['mediaselect'] = '미디어 파일'; $lang['fileupload'] = '미디어 파일 올리기'; $lang['uploadsucc'] = '올리기 성공'; -$lang['uploadfail'] = '올리기를 실패했습니다. 잘못된 권한 때문일지도 모릅니다.'; +$lang['uploadfail'] = '올리기가 실패하였습니다. 잘못된 권한 때문일지도 모릅니다.'; $lang['uploadwrong'] = '올리기가 거부되었습니다. 금지된 파일 확장자입니다!'; $lang['uploadexist'] = '파일이 이미 존재합니다.'; $lang['uploadbadcontent'] = '올린 파일이 %s 파일 확장자와 일치하지 않습니다.'; $lang['uploadspam'] = '스팸 차단 목록이 올리기를 차단했습니다.'; $lang['uploadxss'] = '악성 코드의 가능성이 있어 올리기를 차단했습니다.'; -$lang['uploadsize'] = '올린 파일이 너무 큽니다. (최대 %s)'; +$lang['uploadsize'] = '올린 파일이 너무 큽니다.(최대 %s)'; $lang['deletesucc'] = '"%s" 파일이 삭제되었습니다.'; $lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다 - 권한이 있는지 확인하세요.'; $lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다 - 아직 사용 중입니다.'; @@ -174,7 +175,7 @@ $lang['reference'] = '참고'; $lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:'; $lang['ref_hidden'] = '문서의 일부 참고는 읽을 수 있는 권한이 없습니다'; $lang['hits'] = '조회 수'; -$lang['quickhits'] = '일치하는 문서이름'; +$lang['quickhits'] = '일치하는 문서 이름'; $lang['toc'] = '목차'; $lang['current'] = '현재'; $lang['yours'] = '판'; @@ -182,7 +183,7 @@ $lang['diff'] = '현재 판과의 차이 보기'; $lang['diff2'] = '선택한 판 사이의 차이 보기'; $lang['difflink'] = '차이 보기로 링크'; $lang['diff_type'] = '차이 보기:'; -$lang['diff_inline'] = '인라인 방식'; +$lang['diff_inline'] = '직렬 방식'; $lang['diff_side'] = '다중 창 방식'; $lang['line'] = '줄'; $lang['breadcrumb'] = '추적'; @@ -191,7 +192,7 @@ $lang['lastmod'] = '마지막으로 수정됨'; $lang['by'] = '저자'; $lang['deleted'] = '제거됨'; $lang['created'] = '새로 만듦'; -$lang['restored'] = '이전 판으로 되돌림 (%s)'; +$lang['restored'] = '이전 판으로 되돌림(%s)'; $lang['external_edit'] = '바깥 편집'; $lang['summary'] = '편집 요약'; $lang['noflash'] = '이 내용을 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe 플래시 플러그인</a>이 필요합니다.'; @@ -226,15 +227,15 @@ $lang['qb_hs'] = '문단 제목 선택'; $lang['qb_hplus'] = '상위 문단 제목'; $lang['qb_hminus'] = '하위 문단 제목'; $lang['qb_hequal'] = '동급 문단 제목'; -$lang['qb_link'] = '안쪽 링크'; +$lang['qb_link'] = '안 링크'; $lang['qb_extlink'] = '바깥 링크'; $lang['qb_hr'] = '가로줄'; $lang['qb_ol'] = '순서 있는 목록'; $lang['qb_ul'] = '순서 없는 목록'; -$lang['qb_media'] = '그림과 기타 파일 추가 (새 창에서 열림)'; +$lang['qb_media'] = '그림과 기타 파일 추가(새 창에서 열림)'; $lang['qb_sig'] = '서명 넣기'; $lang['qb_smileys'] = '이모티콘'; -$lang['qb_chars'] = '특수 문자'; +$lang['qb_chars'] = '특수문자'; $lang['upperns'] = '상위 이름공간으로 이동'; $lang['admin_register'] = '새 사용자 추가'; $lang['metaedit'] = '메타데이터 편집'; @@ -244,7 +245,7 @@ $lang['img_backto'] = '뒤로'; $lang['img_title'] = '제목'; $lang['img_caption'] = '설명'; $lang['img_date'] = '날짜'; -$lang['img_fname'] = '파일이름'; +$lang['img_fname'] = '파일 이름'; $lang['img_fsize'] = '크기'; $lang['img_artist'] = '촬영자'; $lang['img_copyr'] = '저작권'; @@ -254,11 +255,11 @@ $lang['img_keywords'] = '키워드'; $lang['img_width'] = '너비'; $lang['img_height'] = '높이'; $lang['img_manager'] = '미디어 관리자에서 보기'; -$lang['subscr_subscribe_success'] = '%s 사용자가 %s 구독 목록에 추가했습니다'; -$lang['subscr_subscribe_error'] = '%s 사용자가 %s 구독 목록에 추가하는데 실패했습니다'; +$lang['subscr_subscribe_success'] = '%s 사용자가 %s 구독 목록에 추가하였습니다'; +$lang['subscr_subscribe_error'] = '%s 사용자가 %s 구독 목록에 추가하는데 실패하였습니다'; $lang['subscr_subscribe_noaddress'] = '로그인으로 연결된 주소가 없기 때문에 구독 목록에 추가할 수 없습니다'; -$lang['subscr_unsubscribe_success'] = '%s 사용자가 %s 구독 목록에서 삭제했습니다'; -$lang['subscr_unsubscribe_error'] = '%s 사용자가 %s 구독 목록에서 삭제하는데 실패했습니다'; +$lang['subscr_unsubscribe_success'] = '%s 사용자가 %s 구독 목록에서 삭제하였습니다'; +$lang['subscr_unsubscribe_error'] = '%s 사용자가 %s 구독 목록에서 삭제하는데 실패하였습니다'; $lang['subscr_already_subscribed'] = '%s 사용자가 이미 %s에 구독하고 있습니다'; $lang['subscr_not_subscribed'] = '%s 사용자가 %s에 구독하고 있지 않습니다'; $lang['subscr_m_not_subscribed'] = '문서나 이름공간에 현재 구독하고 있지 않습니다.'; @@ -268,16 +269,16 @@ $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['subscr_style_digest'] = '각 문서의 바뀜을 요약(매 %.2f일 마다)'; +$lang['subscr_style_list'] = '마지막 이메일 이후 바뀐 문서의 목록(매 %.2f일 마다)'; +$lang['authtempfail'] = '사용자 인증을 일시적으로 사용할 수 없습니다. 만약 계속해서 문제가 발생한다면 위키 관리자에게 문의하시기 바랍니다.'; +$lang['authpwdexpire'] = '비밀번호를 바꾼지 %d일이 지났으며, 비밀번호를 곧 바꿔야 합니다.'; $lang['i_chooselang'] = '사용할 언어를 선택하세요'; -$lang['i_installer'] = 'DokuWiki 설치'; +$lang['i_installer'] = '도쿠위키 설치'; $lang['i_wikiname'] = '위키 이름'; -$lang['i_enableacl'] = 'ACL 활성화 (권장)'; -$lang['i_superuser'] = '슈퍼 유저'; -$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생했습니다. 문제를 해결한 후 설치를 계속할 수 있습니다.'; +$lang['i_enableacl'] = 'ACL 활성화(권장)'; +$lang['i_superuser'] = '슈퍼 사용자'; +$lang['i_problems'] = '설치하는 동안 아래와 같은 문제가 발생하였습니다. 문제를 해결한 후 설치를 계속할 수 있습니다.'; $lang['i_modified'] = '보안 상의 이유로 이 스크립트는 수정되지 않은 새 도쿠위키 설치에서만 동작됩니다. 다운로드한 압축 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">도쿠위키 설치 과정</a>을 참고해서 설치하세요.'; $lang['i_funcna'] = '<code>%s</code> PHP 함수를 사용할 수 없습니다. 호스트 제공자가 어떤 이유에서인지 막아 놓았을지 모릅니다.'; @@ -290,13 +291,14 @@ $lang['i_badval'] = '<code>%s</code> - 잘못되었거나 빈 값 $lang['i_success'] = '환경 설정이 성공적으로 끝났습니다. 지금 install.php를 지워도 상관없습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>로 들어가세요.'; $lang['i_failure'] = '환경 설정 파일에 쓰는 도중에 오류가 발생했습니다. <a href="doku.php?id=wiki:welcome">새 도쿠위키</a>를 사용하기 전에 수동으로 문제를 해결해야 합니다.'; $lang['i_policy'] = '초기 ACL 정책'; -$lang['i_pol0'] = '열린 위키 (누구나 읽기, 쓰기, 올리기가 가능합니다)'; -$lang['i_pol1'] = '공개 위키 (누구나 읽을 수 있지만, 등록된 사용자만 쓰기와 올리기가 가능합니다)'; -$lang['i_pol2'] = '닫힌 위키 (등록된 사용자만 읽기, 쓰기, 올리기가 가능합니다)'; +$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_field'] = '개선될 수 있도록 도쿠위키 경험을 알려주세요:'; $lang['i_pop_label'] = '한 달에 한 번씩, 도쿠위키 개발자에게 익명의 사용 데이터를 보냅니다'; $lang['recent_global'] = '현재 <b>%s</b> 이름공간을 구독 중입니다. <a href="%s">전체 위키의 최근 바뀜도 볼 수</a> 있습니다.'; $lang['years'] = '%d년 전'; @@ -312,7 +314,7 @@ $lang['media_searchtab'] = '검색'; $lang['media_file'] = '파일'; $lang['media_viewtab'] = '보기'; $lang['media_edittab'] = '편집'; -$lang['media_historytab'] = '역사'; +$lang['media_historytab'] = '내역'; $lang['media_list_thumbs'] = '섬네일'; $lang['media_list_rows'] = '목록'; $lang['media_sort_name'] = '이름'; @@ -322,7 +324,7 @@ $lang['media_files'] = '%s에 있는 파일'; $lang['media_upload'] = '%s에 올리기'; $lang['media_search'] = '%s에서 검색'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%2$s (%1$s에 있음)'; +$lang['media_viewold'] = '%2$s(%1$s에 있음)'; $lang['media_edit'] = '%s 편집'; $lang['media_history'] = '%s의 내역'; $lang['media_meta_edited'] = '메타데이터 편집됨'; diff --git a/inc/lang/ko/mailtext.txt b/inc/lang/ko/mailtext.txt index e9e9c25e1..1afe9b3e6 100644 --- a/inc/lang/ko/mailtext.txt +++ b/inc/lang/ko/mailtext.txt @@ -1,16 +1,16 @@ 도쿠위키 문서가 추가되거나 바뀌었습니다. 자세한 내용은 다음과 같습니다: -날짜 : @DATE@ -브라우저 : @BROWSER@ -IP 주소 : @IPADDRESS@ -호스트 이름 : @HOSTNAME@ -이전 판 : @OLDPAGE@ -새 판 : @NEWPAGE@ -편집 요약 : @SUMMARY@ -사용자 : @USER@ +날짜: @DATE@ +브라우저: @BROWSER@ +IP 주소: @IPADDRESS@ +호스트 이름: @HOSTNAME@ +이전 판: @OLDPAGE@ +새 판: @NEWPAGE@ +편집 요약: @SUMMARY@ +사용자: @USER@ @DIFF@ -- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/password.txt b/inc/lang/ko/password.txt index 790f6b479..a60801ae1 100644 --- a/inc/lang/ko/password.txt +++ b/inc/lang/ko/password.txt @@ -2,8 +2,8 @@ 여기에 @DOKUWIKIURL@에서 @TITLE@의 사용자 정보가 있습니다. -로그인 : @LOGIN@ -비밀번호 : @PASSWORD@ +로그인: @LOGIN@ +비밀번호: @PASSWORD@ -- 이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file diff --git a/inc/lang/ko/pwconfirm.txt b/inc/lang/ko/pwconfirm.txt index d820664f0..89f3f0e0a 100644 --- a/inc/lang/ko/pwconfirm.txt +++ b/inc/lang/ko/pwconfirm.txt @@ -10,4 +10,4 @@ @CONFIRM@ -- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/register.txt b/inc/lang/ko/register.txt index 4df968896..3cc3e86b1 100644 --- a/inc/lang/ko/register.txt +++ b/inc/lang/ko/register.txt @@ -1,3 +1,3 @@ ====== 새 사용자 등록 ====== -이 위키에 새 계정을 만드려면 아래의 모든 내용을 입력하세요. **올바른 이메일 주소**를 사용하세요. 비밀번호를 입력하는 곳이 없다면 비밀번호는 이 이메일로 보내집니다. 사용자 이름은 올바른 [[doku>ko:pagename|문서이름]]이어야 합니다.
\ No newline at end of file +이 위키에 새 계정을 만드려면 아래의 모든 내용을 입력하세요. **올바른 이메일 주소**를 사용하세요. 비밀번호를 입력하는 곳이 없다면 비밀번호는 등록한 이메일로 보내집니다. 사용자 이름은 올바른 [[doku>ko:pagename|문서 이름]]이어야 합니다.
\ No newline at end of file diff --git a/inc/lang/ko/registermail.txt b/inc/lang/ko/registermail.txt index e7c808047..b158e5ba2 100644 --- a/inc/lang/ko/registermail.txt +++ b/inc/lang/ko/registermail.txt @@ -1,13 +1,13 @@ 새 사용자가 등록되었습니다. 자세한 내용은 다음과 같습니다: -사용자 이름 : @NEWUSER@ -실제 이름 : @NEWNAME@ -이메일 : @NEWEMAIL@ +사용자 이름: @NEWUSER@ +실제 이름: @NEWNAME@ +이메일: @NEWEMAIL@ -날짜 : @DATE@ -브라우저 : @BROWSER@ -IP 주소 : @IPADDRESS@ -호스트 이름 : @HOSTNAME@ +날짜: @DATE@ +브라우저: @BROWSER@ +IP 주소: @IPADDRESS@ +호스트 이름: @HOSTNAME@ -- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt index 35384c536..2313f0bb0 100644 --- a/inc/lang/ko/searchpage.txt +++ b/inc/lang/ko/searchpage.txt @@ -1,5 +1,5 @@ ====== 검색 ====== -아래에서 검색 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, "문서 만들기"나 "문서 편집"을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다. +아래에서 검색 결과를 찾을 수 있습니다. 만약 원하는 문서를 찾지 못했다면, "문서 만들기"나 "문서 편집"을 사용해 검색어와 같은 이름의 문서를 만들거나 편집할 수 있습니다. ===== 결과 =====
\ No newline at end of file diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt index 7a044736a..d5f3d3387 100644 --- a/inc/lang/ko/subscr_digest.txt +++ b/inc/lang/ko/subscr_digest.txt @@ -7,12 +7,12 @@ @DIFF@ -------------------------------------------------------- -이전 판 : @OLDPAGE@ -새 판 : @NEWPAGE@ +이전 판: @OLDPAGE@ +새로운 판: @NEWPAGE@ 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤 @SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요. --- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +-- +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt index 57aa78cf7..f57528de0 100644 --- a/inc/lang/ko/subscr_list.txt +++ b/inc/lang/ko/subscr_list.txt @@ -10,5 +10,5 @@ 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤 @SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요. --- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다.
\ No newline at end of file +-- +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt index ed5478441..da0a85e2a 100644 --- a/inc/lang/ko/subscr_single.txt +++ b/inc/lang/ko/subscr_single.txt @@ -7,14 +7,14 @@ @DIFF@ -------------------------------------------------------- -날짜 : @DATE@ -사용자 : @USER@ -편집 요약 : @SUMMARY@ -이전 판 : @OLDPAGE@ -새 판 : @NEWPAGE@ +날짜: @DATE@ +사용자: @USER@ +편집 요약: @SUMMARY@ +이전 판: @OLDPAGE@ +새 판: @NEWPAGE@ 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤 @SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요. --- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +-- +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/ko/uploadmail.txt b/inc/lang/ko/uploadmail.txt index 1304ee331..927bcc39a 100644 --- a/inc/lang/ko/uploadmail.txt +++ b/inc/lang/ko/uploadmail.txt @@ -1,14 +1,14 @@ 도쿠위키가 파일을 올렸습니다. 자세한 정보는 다음과 같습니다: -파일 : @MEDIA@ -이전 판 : @OLD@ -날짜 : @DATE@ -브라우저 : @BROWSER@ -IP 주소 : @IPADDRESS@ -호스트 이름 : @HOSTNAME@ -크기 : @SIZE@ -MIME 종류 : @MIME@ -사용자 : @USER@ +파일: @MEDIA@ +이전 판: @OLD@ +날짜: @DATE@ +브라우저: @BROWSER@ +IP 주소: @IPADDRESS@ +호스트 이름: @HOSTNAME@ +크기: @SIZE@ +MIME 종류: @MIME@ +사용자: @USER@ -- -이 메일은 @DOKUWIKIURL@에서 도쿠위키가 생성했습니다
\ No newline at end of file +이 메일은 @DOKUWIKIURL@에서 도쿠위키가 발송하였습니다.
\ No newline at end of file diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 254d3c56b..3f31f6c73 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Norwegian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Reidar Mosvold <Reidar.Mosvold@hit.no> * @author Jorge Barrera Grandon <jorge@digitalwolves.org> * @author Rune Rasmussen [http://www.syntaxerror.no/] @@ -11,13 +11,15 @@ * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen <me@jakobnielsen.net> - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe <jonmagneboe@hotmail.com> * @author Egil Hansen <egil@rosetta.no> + * @author Thomas Juberg <Thomas.Juberg@Gmail.com> + * @author Boris <boris@newton-media.no> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -53,6 +55,7 @@ $lang['btn_backtomedia'] = 'Tilbake til valg av mediafil'; $lang['btn_subscribe'] = 'Abonnér på endringer'; $lang['btn_profile'] = 'Oppdater profil'; $lang['btn_reset'] = 'Tilbakestill'; +$lang['btn_resendpwd'] = 'Sett nytt passord'; $lang['btn_draft'] = 'Rediger kladd'; $lang['btn_recover'] = 'Gjennvinn kladd'; $lang['btn_draftdel'] = 'Slett kladd'; @@ -60,6 +63,7 @@ $lang['btn_revert'] = 'Gjenopprette'; $lang['btn_register'] = 'Registrer deg'; $lang['btn_apply'] = 'Bruk'; $lang['btn_media'] = 'Mediefiler'; +$lang['btn_deleteuser'] = 'Fjern min konto'; $lang['loggedinas'] = 'Innlogget som'; $lang['user'] = 'Brukernavn'; $lang['pass'] = 'Passord'; @@ -71,6 +75,7 @@ $lang['fullname'] = 'Fullt navn'; $lang['email'] = 'E-post'; $lang['profile'] = 'Brukerprofil'; $lang['badlogin'] = 'Ugyldig brukernavn og/eller passord.'; +$lang['badpassconfirm'] = 'Beklager, passordet var feil'; $lang['minoredit'] = 'Mindre endringer'; $lang['draftdate'] = 'Kladd autolagret'; $lang['nosecedit'] = 'Siden ble endret i mellomtiden, seksjonsinfo har blitt foreldet - lastet full side istedet.'; @@ -87,8 +92,14 @@ $lang['profna'] = 'Denne wikien støtter ikke profilendringer'; $lang['profnochange'] = 'Ingen endringer, ingenting å gjøre.'; $lang['profnoempty'] = 'Tomt navn- eller e-postfelt er ikke tillatt.'; $lang['profchanged'] = 'Brukerprofilen ble vellykket oppdatert.'; +$lang['profnodelete'] = 'Denne wikien støtter ikke sletting av brukere'; +$lang['profdeleteuser'] = 'Slett konto'; +$lang['profdeleted'] = 'Din brukerkonto har blitt slettet fra denne wikien'; +$lang['profconfdelete'] = 'Jeg ønsker å fjerne min konto fra denne wikien. <br/> Denne handlingen kan ikke omgjøres.'; +$lang['profconfdeletemissing'] = 'Boks for bekreftelse ikke avkrysset'; $lang['pwdforget'] = 'Glemt passordet ditt? Få deg et nytt'; $lang['resendna'] = 'Denne wikien støtter ikke nyutsending av passord.'; +$lang['resendpwd'] = 'Sett nytt passord for'; $lang['resendpwdmissing'] = 'Beklager, du må fylle inn alle felt.'; $lang['resendpwdnouser'] = 'Beklager, vi kan ikke finne denne brukeren i vår database.'; $lang['resendpwdbadauth'] = 'Beklager, denne autorisasjonskoden er ikke gyldig. Sjekk at du brukte hele bekreftelseslenken.'; @@ -101,6 +112,7 @@ $lang['searchmedia_in'] = 'Søk i %s'; $lang['txt_upload'] = 'Velg fil som skal lastes opp'; $lang['txt_filename'] = 'Skriv inn wikinavn (alternativt)'; $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; +$lang['maxuploadsize'] = 'Opplast maks % per fil.'; $lang['lockedby'] = 'Låst av'; $lang['lockexpire'] = 'Låsingen utløper'; $lang['js']['willexpire'] = 'Din redigeringslås for dette dokumentet kommer snart til å utløpe.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.'; @@ -195,6 +207,12 @@ $lang['external_edit'] = 'ekstern redigering'; $lang['summary'] = 'Redigeringskommentar'; $lang['noflash'] = 'For at dette innholdet skal vises må du ha <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; $lang['download'] = 'Last ned utdraget'; +$lang['tools'] = 'Verktøy'; +$lang['user_tools'] = 'Brukerverktøy'; +$lang['site_tools'] = 'Nettstedverktøy'; +$lang['page_tools'] = 'Sideverktøy'; +$lang['skip_to_content'] = 'Hopp til innhold'; +$lang['sidebar'] = 'Sidefelt'; $lang['mail_newpage'] = 'side lagt til:'; $lang['mail_changed'] = 'side endret:'; $lang['mail_subscribe_list'] = 'side endret i \'namespace\':'; @@ -264,6 +282,7 @@ $lang['subscr_style_every'] = 'e-post for alle endringer'; $lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)'; $lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)'; $lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.'; +$lang['authpwdexpire'] = 'Ditt passord går ut om %d dager, du bør endre det snarest.'; $lang['i_chooselang'] = 'Velg språk'; $lang['i_installer'] = 'DokuWiki-installasjon'; $lang['i_wikiname'] = 'Wikinavn'; @@ -288,8 +307,12 @@ $lang['i_policy'] = 'Innledende ACL-politikk'; $lang['i_pol0'] = 'Åpen Wiki (les, skriv og opplasting for alle)'; $lang['i_pol1'] = 'Offentlig Wiki (les for alle, skriving og opplasting bare for registrerte brukere)'; $lang['i_pol2'] = 'Lukket Wiki (les, skriv og opplasting bare for registrerte brukere)'; +$lang['i_allowreg'] = 'Tillat at brukere registrerer seg selv'; $lang['i_retry'] = 'Prøv igjen'; $lang['i_license'] = 'Velg lisens som du vil legge ut innholdet under:'; +$lang['i_license_none'] = 'Ikke vis noen lisensinformasjon'; +$lang['i_pop_field'] = 'Venligst hejlp oss å forbedre Dokuwiki-opplevelsen:'; +$lang['i_pop_label'] = 'Sand annonyme bruksdata til Dokuwiki-utviklerene, en gang i måneden'; $lang['recent_global'] = 'Du ser nå på endringene i navnerommet <b>%s</b>. Du kan også<a href="%s">se på nylig foretatte endringer for hele wikien</a>.'; $lang['years'] = '%d år siden'; $lang['months'] = '%d måneder siden'; @@ -316,8 +339,12 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s på %s'; $lang['media_edit'] = 'Rediger %s'; +$lang['media_history'] = '%vis historikk'; $lang['media_meta_edited'] = 'metadata er endra'; $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese filer.'; $lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.'; $lang['media_update'] = 'Last opp ny versjon'; $lang['media_restore'] = 'Gjenopprett denne versjonen'; +$lang['currentns'] = 'gjeldende navnemellomrom'; +$lang['searchresult'] = 'Søk i resultat'; +$lang['plainhtml'] = 'Enkel HTML'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 118f0e5ab..142dd3baa 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -1,8 +1,8 @@ <?php + /** - * polish language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> @@ -14,6 +14,7 @@ * @author Łukasz Chmaj <teachmeter@gmail.com> * @author Begina Felicysym <begina.felicysym@wp.eu> * @author Aoi Karasu <aoikarasu@gmail.com> + * @author Tomasz Bosak <bosak.tomasz@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -57,6 +58,7 @@ $lang['btn_revert'] = 'Przywróć'; $lang['btn_register'] = 'Zarejestruj się!'; $lang['btn_apply'] = 'Zastosuj'; $lang['btn_media'] = 'Menadżer multimediów'; +$lang['btn_deleteuser'] = 'Usuń moje konto'; $lang['loggedinas'] = 'Zalogowany jako'; $lang['user'] = 'Użytkownik'; $lang['pass'] = 'Hasło'; @@ -68,6 +70,7 @@ $lang['fullname'] = 'Imię i nazwisko'; $lang['email'] = 'E-mail'; $lang['profile'] = 'Profil użytkownika'; $lang['badlogin'] = 'Nazwa użytkownika lub hasło są nieprawidłowe.'; +$lang['badpassconfirm'] = 'Niestety, hasło jest niepoprawne.'; $lang['minoredit'] = 'Mniejsze zmiany'; $lang['draftdate'] = 'Czas zachowania szkicu'; $lang['nosecedit'] = 'Strona została zmodyfikowana, sekcje zostały zmienione. Załadowano całą stronę.'; @@ -84,6 +87,11 @@ $lang['profna'] = 'To wiki nie pozwala na zmianę profilu.'; $lang['profnochange'] = 'Żadnych zmian, nic do zrobienia.'; $lang['profnoempty'] = 'Pusta nazwa lub adres e-mail nie dozwolone.'; $lang['profchanged'] = 'Zaktualizowano profil użytkownika.'; +$lang['profnodelete'] = 'Ta wiki nie umożliwia usuwania użytkowników'; +$lang['profdeleteuser'] = 'Usuń konto'; +$lang['profdeleted'] = 'Twoje konto zostało usunięte z tej wiki'; +$lang['profconfdelete'] = 'Chcę usunąć moje konto z tej wiki. <br/> Decyzja nie może być cofnięta.'; +$lang['profconfdeletemissing'] = 'Pole potwierdzenia nie zostało zaznaczone'; $lang['pwdforget'] = 'Nie pamiętasz hasła? Zdobądź nowe!'; $lang['resendna'] = 'To wiki nie pozwala na powtórne przesyłanie hasła.'; $lang['resendpwd'] = 'Podaj nowe hasło dla'; @@ -199,6 +207,7 @@ $lang['user_tools'] = 'Narzędzia użytkownika'; $lang['site_tools'] = 'Narzędzia witryny'; $lang['page_tools'] = 'Narzędzia strony'; $lang['skip_to_content'] = 'przejście do zawartości'; +$lang['sidebar'] = 'Pasek boczny'; $lang['mail_newpage'] = 'Strona dodana:'; $lang['mail_changed'] = 'Strona zmieniona:'; $lang['mail_subscribe_list'] = 'Zmienione strony w katalogu:'; @@ -265,6 +274,8 @@ $lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji'; $lang['subscr_m_subscribe'] = 'Subskrybuj'; $lang['subscr_m_receive'] = 'Otrzymuj'; $lang['subscr_style_every'] = 'email przy każdej zmianie'; +$lang['subscr_style_digest'] = 'e-mailowy wyciąg zmian dla każdej strony (co %.2f dni)'; +$lang['subscr_style_list'] = 'lista zmienionych stron od ostatniego e-maila (co %.2f dni)'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.'; $lang['authpwdexpire'] = 'Twoje hasło wygaśnie za %d dni. Należy je zmienić w krótkim czasie.'; $lang['i_chooselang'] = 'Wybierz język'; @@ -288,8 +299,12 @@ $lang['i_policy'] = 'Wstępna polityka uprawnień ACL'; $lang['i_pol0'] = 'Otwarte Wiki (odczyt, zapis i dodawanie plików dla wszystkich)'; $lang['i_pol1'] = 'Publiczne Wiki (odczyt dla wszystkich, zapis i dodawanie plików tylko dla zarejestrowanych użytkowników)'; $lang['i_pol2'] = 'Zamknięte Wiki (odczyt, zapis i dodawanie plików tylko dla zarejestrowanych użytkowników)'; +$lang['i_allowreg'] = 'Pozwól użytkownikom rejestrować się.'; $lang['i_retry'] = 'Spróbuj ponownie'; $lang['i_license'] = 'Wybierz licencję, na warunkach której chcesz udostępniać treści:'; +$lang['i_license_none'] = 'Nie pokazuj żadnych informacji o licencji.'; +$lang['i_pop_field'] = 'Proszę, pomóż nam ulepszyć doświadczenia z DokuWiki:'; +$lang['i_pop_label'] = 'Raz na miesiąc, wysyłaj anonimowe statystyki do deweloperów DokuWiki'; $lang['recent_global'] = 'W tej chwili przeglądasz zmiany w katalogu <b>%s</b>. Możesz przejrzeć także <a href="%s">zmiany w całym wiki</a>.'; $lang['years'] = '%d lat temu'; $lang['months'] = '%d miesięcy temu'; @@ -322,3 +337,6 @@ $lang['media_perm_read'] = 'Przepraszamy, nie masz wystarczających uprawn $lang['media_perm_upload'] = 'Przepraszamy, nie masz wystarczających uprawnień do przesyłania plików.'; $lang['media_update'] = 'Prześlij nową wersję'; $lang['media_restore'] = 'Odtwórz tą wersję'; +$lang['currentns'] = 'Obecna przestrzeń nazw.'; +$lang['searchresult'] = 'Wyniki wyszukiwania'; +$lang['plainhtml'] = 'Czysty HTML'; diff --git a/inc/lang/pt-br/editrev.txt b/inc/lang/pt-br/editrev.txt index c7aa47878..df6413525 100644 --- a/inc/lang/pt-br/editrev.txt +++ b/inc/lang/pt-br/editrev.txt @@ -1,4 +1,4 @@ -**Você carregou uma revisão antiga desse documento!** Se você salvá-la, irá criar uma nova versão em esses dados. +**Você carregou uma revisão antiga desse documento!** Se você salvá-la, irá criar uma nova versão com esses dados. ---- diff --git a/inc/lang/pt-br/index.txt b/inc/lang/pt-br/index.txt index a7d17a2bc..816a49952 100644 --- a/inc/lang/pt-br/index.txt +++ b/inc/lang/pt-br/index.txt @@ -1,3 +1,3 @@ ====== Índice ====== -Esse é um índice de todas as páginas disponíveis, ordenadas por [[doku>namespaces|espaços de nomes]].
\ No newline at end of file +Esse é um índice de todas as páginas disponíveis, ordenadas por [[doku>namespaces|domínios]].
\ No newline at end of file diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 812799f04..6845e792d 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -22,6 +22,7 @@ * @author Victor Westmann <victor.westmann@gmail.com> * @author Leone Lisboa Magevski <leone1983@gmail.com> * @author Dário Estevão <darioems@gmail.com> + * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -97,6 +98,8 @@ $lang['profchanged'] = 'O perfil do usuário foi atualizado com sucess $lang['profnodelete'] = 'Esse wiki não suporta a exclusão de usuários '; $lang['profdeleteuser'] = 'Excluir a conta'; $lang['profdeleted'] = 'Sua conta de usuário foi excluída desse wiki'; +$lang['profconfdelete'] = 'Eu desejo remover minha conta dessa wiki. <br/> Essa ação não pode ser desfeita.'; +$lang['profconfdeletemissing'] = 'Caixa de confirmação não marcada'; $lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra'; $lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.'; $lang['resendpwd'] = 'Definir a nova senha para'; @@ -304,6 +307,7 @@ $lang['i_policy'] = 'Política inicial de permissões'; $lang['i_pol0'] = 'Wiki aberto (leitura, escrita e envio de arquivos por todos)'; $lang['i_pol1'] = 'Wiki público (leitura por todos, escrita e envio de arquivos por usuários registrados)'; $lang['i_pol2'] = 'Wiki fechado (leitura, escrita e envio de arquivos somente por usuários registrados)'; +$lang['i_allowreg'] = 'Permite usuários se registrarem'; $lang['i_retry'] = 'Tentar novamente'; $lang['i_license'] = 'Por favor escolha a licença que voce deseja utilizar para seu conteúdo:'; $lang['i_license_none'] = 'Não mostrar nenhuma informação da licença'; @@ -341,3 +345,7 @@ $lang['media_perm_read'] = 'Desculpe, mas você não tem privilégios sufi $lang['media_perm_upload'] = 'Desculpe, mas você não tem privilégios suficientes para enviar arquivos.'; $lang['media_update'] = 'Enviar uma nova versão'; $lang['media_restore'] = 'Restaurar esta versão'; +$lang['currentns'] = 'Domínio atual'; +$lang['searchresult'] = 'Resultado da Busca'; +$lang['plainhtml'] = 'HTML simples'; +$lang['wikimarkup'] = 'Marcação wiki'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 2f69163f5..371b6659d 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Jaka Kranjc <lynxlupodian@hotmail.com> * @author Boštjan Seničar <senicar@gmail.com> * @author Dejan Levec <webphp@gmail.com> @@ -195,6 +195,7 @@ $lang['user_tools'] = 'Uporabniška orodja'; $lang['site_tools'] = 'Orodja spletišča'; $lang['page_tools'] = 'Orodja strani'; $lang['skip_to_content'] = 'preskoči na vsebino'; +$lang['sidebar'] = 'Stranska vrstica'; $lang['mail_newpage'] = '[DokuWiki] stran dodana:'; $lang['mail_changed'] = '[DokuWiki] stran spremenjena:'; $lang['mail_subscribe_list'] = 'strani s spremenjenim imenom:'; @@ -284,6 +285,7 @@ $lang['i_policy'] = 'Začetna določila ACL'; $lang['i_pol0'] = 'Odprt Wiki (branje, zapis, nalaganje datotek je javno za vse)'; $lang['i_pol1'] = 'Javni Wiki (branje za vse, zapis in nalaganje datotek za prijavljene uporabnike)'; $lang['i_pol2'] = 'Zaprt Wiki (berejo in urejajo lahko le prijavljeni uporabniki)'; +$lang['i_allowreg'] = 'Dovoli uporabnikom vpis'; $lang['i_retry'] = 'Ponovni poskus'; $lang['i_license'] = 'Izbor dovoljenja objave vsebine:'; $lang['i_license_none'] = 'Ne pokaži podrobnosti dovoljenja.'; @@ -319,3 +321,6 @@ $lang['media_perm_read'] = 'Ni ustreznih dovoljenj za branje datotek.'; $lang['media_perm_upload'] = 'Ni ustreznih dovoljenj za nalaganje datotek.'; $lang['media_update'] = 'Naloži novo različico'; $lang['media_restore'] = 'Obnovi to različico'; +$lang['currentns'] = 'Trenutni imenski prostor'; +$lang['searchresult'] = 'Rezultati iskanja'; +$lang['plainhtml'] = 'Zapis HTML'; diff --git a/inc/parser/parser.php b/inc/parser/parser.php index e39a4daf5..1f14b98a3 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -454,8 +454,8 @@ class Doku_Parser_Mode_table extends Doku_Parser_Mode { } function connectTo($mode) { - $this->Lexer->addEntryPattern('\s*\n\^',$mode,'table'); - $this->Lexer->addEntryPattern('\s*\n\|',$mode,'table'); + $this->Lexer->addEntryPattern('[\t ]*\n\^',$mode,'table'); + $this->Lexer->addEntryPattern('[\t ]*\n\|',$mode,'table'); } function postConnect() { diff --git a/lib/exe/css.php b/lib/exe/css.php index c2540cc03..c96dedd37 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -312,6 +312,11 @@ function css_styleini($tpl) { ); } +/** + * Amend paths used in replacement relative urls, refer FS#2879 + * + * @author Chris Smith <chris@jalakai.co.uk> + */ function css_fixreplacementurls($replacements, $location) { foreach($replacements as $key => $value) { $replacements[$key] = preg_replace('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$value); @@ -400,16 +405,29 @@ function css_loadfile($file,$location=''){ return $css_file->load($location); } +/** + * Helper class to abstract loading of css/less files + * + * @author Chris Smith <chris@jalakai.co.uk> + */ class DokuCssFile { - protected $filepath; - protected $location; + protected $filepath; // file system path to the CSS/Less file + protected $location; // base url location of the CSS/Less file private $relative_path = null; public function __construct($file) { $this->filepath = $file; } + /** + * Load the contents of the css/less file and adjust any relative paths/urls (relative to this file) to be + * relative to the dokuwiki root: the web root (DOKU_BASE) for most files; the file system root (DOKU_INC) + * for less files. + * + * @param string $location base url for this file + * @return string the CSS/Less contents of the file + */ public function load($location='') { if (!@file_exists($this->filepath)) return ''; @@ -424,10 +442,17 @@ class DokuCssFile { return $css; } + /** + * Get the relative file system path of this file, relative to dokuwiki's root folder, DOKU_INC + * + * @return string relative file system path + */ private function getRelativePath(){ if (is_null($this->relative_path)) { $basedir = array(DOKU_INC); + + // during testing, files may be found relative to a second base dir, TMP_DIR if (defined('DOKU_UNITTEST')) { $basedir[] = realpath(TMP_DIR); } @@ -439,16 +464,26 @@ class DokuCssFile { return $this->relative_path; } + /** + * preg_replace callback to adjust relative urls from relative to this file to relative + * to the appropriate dokuwiki root location as described in the code + * + * @param array see http://php.net/preg_replace_callback + * @return string see http://php.net/preg_replace_callback + */ public function replacements($match) { + // not a relative url? - no adjustment required if (preg_match('#^(/|data:|https?://)#',$match[3])) { return $match[0]; } + // a less file import? - requires a file system location else if (substr($match[3],-5) == '.less') { if ($match[3]{0} != '/') { $match[3] = $this->getRelativePath() . '/' . $match[3]; } } + // everything else requires a url adjustment else { $match[3] = $this->location . $match[3]; } diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 2f1ba2311..37cec307c 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -12,6 +12,7 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['admin_acl'] = '접근 제어 목록 관리'; $lang['acl_group'] = '그룹'; @@ -27,7 +28,7 @@ $lang['p_group_ns'] = '<b class="aclgroup">%s</b> 그룹 구성원은 $lang['p_choose_id'] = '<b class="aclpage">%s</b> 문서 접근 권한을 보거나 바꾸려면 <b>사용자</b>나 <b>그룹</b>을 위 양식에 입력하세요.'; $lang['p_choose_ns'] = '<b class="aclns">%s</b> 이름공간 접근 권한을 보거나 바꾸려면 <b>사용자</b>나 <b>그룹</b>을 위 양식에 입력하세요.'; $lang['p_inherited'] = '참고: 권한이 명시적으로 설정되지 않았으므로 다른 그룹이나 상위 이름공간으로부터 가져왔습니다.'; -$lang['p_isadmin'] = '참고: 슈퍼유저로 설정되어 있으므로 선택된 그룹이나 사용자는 언제나 모든 접근 권한을 가집니다.'; +$lang['p_isadmin'] = '참고: 슈퍼 사용자로 설정되어 있으므로 선택된 그룹이나 사용자는 언제나 모든 접근 권한을 가집니다.'; $lang['p_include'] = '더 높은 접근 권한은 하위를 포함합니다. 문서가 아닌 이름공간에는 만들기, 올리기, 삭제 권한만 적용됩니다.'; $lang['current'] = '현재 ACL 규칙'; $lang['where'] = '문서/이름공간'; @@ -38,6 +39,6 @@ $lang['acl_perm1'] = '읽기'; $lang['acl_perm2'] = '편집'; $lang['acl_perm4'] = '만들기'; $lang['acl_perm8'] = '올리기'; -$lang['acl_perm16'] = '삭제'; +$lang['acl_perm16'] = '지우기'; $lang['acl_new'] = '새 항목 추가'; $lang['acl_mod'] = '항목 수정'; diff --git a/lib/plugins/acl/lang/no/lang.php b/lib/plugins/acl/lang/no/lang.php index 09d71937a..82cdd5eef 100644 --- a/lib/plugins/acl/lang/no/lang.php +++ b/lib/plugins/acl/lang/no/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Norwegian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Reidar Mosvold <Reidar.Mosvold@hit.no> * @author Jorge Barrera Grandon <jorge@digitalwolves.org> * @author Thomas Nygreen <nygreen@gmail.com> @@ -10,7 +10,7 @@ * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> diff --git a/lib/plugins/acl/lang/pl/lang.php b/lib/plugins/acl/lang/pl/lang.php index bef2d2615..42ce7fdaf 100644 --- a/lib/plugins/acl/lang/pl/lang.php +++ b/lib/plugins/acl/lang/pl/lang.php @@ -1,8 +1,8 @@ <?php + /** - * polish language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> diff --git a/lib/plugins/authad/lang/el/settings.php b/lib/plugins/authad/lang/el/settings.php new file mode 100644 index 000000000..9bf23ea1c --- /dev/null +++ b/lib/plugins/authad/lang/el/settings.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author chris taklis <ctaklis@gmail.com> + */ +$lang['admin_password'] = 'Ο κωδικός του παραπάνω χρήστη.'; diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index 053823508..6c00950bf 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['account_suffix'] = '계정 접미어. 예를 들어 <code>@my.domain.org</code>'; $lang['base_dn'] = '기본 DN. 예를 들어 <code>DC=my,DC=domain,DC=org</code>'; @@ -12,7 +13,7 @@ $lang['admin_username'] = '다른 모든 사용자의 데이터에 접근 $lang['admin_password'] = '위 사용자의 비밀번호.'; $lang['sso'] = 'Kerberos나 NTLM을 통해 Single-Sign-On을 사용해야 합니까?'; $lang['sso_charset'] = '당신의 웹서버의 문자집합은 Kerberos나 NTLM 사용자 이름으로 전달됩니다. UTF-8이나 라린-1이 비어 있습니다. icov 확장 기능이 필요합니다.'; -$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다 (느림)'; +$lang['real_primarygroup'] = '실제 기본 그룹은 "도메인 사용자"를 가정하는 대신 해결될 것입니다(느림)'; $lang['use_ssl'] = 'SSL 연결을 사용합니까? 사용한다면 아래 TLS을 활성화하지 마세요.'; $lang['use_tls'] = 'TLS 연결을 사용합니까? 사용한다면 위 SSL을 활성화하지 마세요.'; $lang['debug'] = '오류에 대한 추가적인 디버그 정보를 보이겠습니까?'; diff --git a/lib/plugins/authad/lang/pl/settings.php b/lib/plugins/authad/lang/pl/settings.php index 9113c0e51..ad051b0ac 100644 --- a/lib/plugins/authad/lang/pl/settings.php +++ b/lib/plugins/authad/lang/pl/settings.php @@ -1,9 +1,12 @@ <?php + /** - * Polish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Tomasz Bosak <bosak.tomasz@gmail.com> */ $lang['account_suffix'] = 'Przyrostek twojej nazwy konta np. <code>@my.domain.org</code>'; +$lang['base_dn'] = 'Twoje bazowe DN. Na przykład: <code>DC=my,DC=domain,DC=org</code>'; $lang['admin_password'] = 'Hasło dla powyższego użytkownika.'; $lang['use_ssl'] = 'Użyć połączenie SSL? Jeśli tak to nie aktywuj TLS poniżej.'; $lang['use_tls'] = 'Użyć połączenie TLS? Jeśli tak to nie aktywuj SSL powyżej.'; diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php index 76fb419a6..cdc748055 100644 --- a/lib/plugins/authad/lang/pt-br/settings.php +++ b/lib/plugins/authad/lang/pt-br/settings.php @@ -5,6 +5,7 @@ * * @author Victor Westmann <victor.westmann@gmail.com> * @author Frederico Guimarães <frederico@teia.bio.br> + * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> */ $lang['account_suffix'] = 'Sufixo de sua conta. Eg. <code>@meu.domínio.org</code>'; $lang['base_dn'] = 'Sua base DN. Eg. <code>DC=meu,DC=domínio,DC=org</code>'; @@ -12,6 +13,7 @@ $lang['domain_controllers'] = 'Uma lista de controles de domínios separada p $lang['admin_username'] = 'Um usuário do Active Directory com privilégios para acessar os dados de todos os outros usuários. Opcional, mas necessário para realizar certas ações, tais como enviar mensagens de assinatura.'; $lang['admin_password'] = 'A senha do usuário acima.'; $lang['sso'] = 'Usar Single-Sign-On através do Kerberos ou NTLM?'; +$lang['sso_charset'] = 'A codificação de caracteres que seu servidor web passará o nome de usuário Kerberos ou NTLM. Vazio para UTF-8 ou latin-1. Requere a extensão iconv.'; $lang['real_primarygroup'] = 'O grupo primário real deve ser resolvido ao invés de assumirmos como "Usuários do Domínio" (mais lento)'; $lang['use_ssl'] = 'Usar conexão SSL? Se usar, não habilitar TLS abaixo.'; $lang['use_tls'] = 'Usar conexão TLS? se usar, não habilitar SSL acima.'; diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 023159489..eba7cde6e 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Edmondo Di Tucci <snarchio@gmail.com> + * @author Claudio Lanconelli <lancos@libero.it> */ $lang['server'] = 'Il tuo server LDAP. Inserire o l\'hostname (<code>localhost</code>) oppure un URL completo (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.'; @@ -13,3 +14,6 @@ $lang['userfilter'] = 'Filtro per cercare l\'account utente LDAP. Eg. $lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'Versione protocollo da usare. Pu<code>3</code>'; $lang['starttls'] = 'Usare la connessione TSL?'; +$lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; +$lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; +$lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; diff --git a/lib/plugins/authldap/lang/pl/settings.php b/lib/plugins/authldap/lang/pl/settings.php index 44641f514..084521e0d 100644 --- a/lib/plugins/authldap/lang/pl/settings.php +++ b/lib/plugins/authldap/lang/pl/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Polish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * */ $lang['starttls'] = 'Użyć połączeń TLS?'; $lang['bindpw'] = 'Hasło powyższego użytkownika'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 10ae72f87..e493ec7e9 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -1,5 +1,8 @@ <?php + /** - * Italian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Claudio Lanconelli <lancos@libero.it> */ +$lang['debug'] = 'Mostra ulteriori informazioni di debug'; diff --git a/lib/plugins/authmysql/lang/ko/settings.php b/lib/plugins/authmysql/lang/ko/settings.php index 2175c1eea..b3479ad41 100644 --- a/lib/plugins/authmysql/lang/ko/settings.php +++ b/lib/plugins/authmysql/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['server'] = 'MySQL 서버'; $lang['user'] = 'MySQL 사용자 이름'; @@ -17,10 +18,10 @@ $lang['checkPass'] = '비밀번호를 확인하기 위한 SQL 문'; $lang['getUserInfo'] = '사용자 정보를 가져오기 위한 SQL 문'; $lang['getGroups'] = '사용자의 그룹 구성원을 가져오기 위한 SQL 문'; $lang['getUsers'] = '모든 사용자를 나타낼 SQL 문'; -$lang['FilterLogin'] = '로그인 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterName'] = '전체 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterEmail'] = '이메일 주소 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterGroup'] = '그룹 구성원 별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterLogin'] = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterName'] = '전체 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterEmail'] = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterGroup'] = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항'; $lang['SortOrder'] = '사용자를 정렬할 SQL 조항'; $lang['addUser'] = '새 사용자를 추가할 SQL 문'; $lang['addGroup'] = '새 그룹을 추가할 SQL 문'; diff --git a/lib/plugins/authmysql/lang/pl/settings.php b/lib/plugins/authmysql/lang/pl/settings.php index 93528cf34..5ae6bf168 100644 --- a/lib/plugins/authmysql/lang/pl/settings.php +++ b/lib/plugins/authmysql/lang/pl/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Polish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * */ $lang['server'] = 'Twój server MySQL'; $lang['user'] = 'Nazwa użytkownika MySQL'; diff --git a/lib/plugins/authpgsql/lang/ko/settings.php b/lib/plugins/authpgsql/lang/ko/settings.php index bdd8c2718..bdf38b3c7 100644 --- a/lib/plugins/authpgsql/lang/ko/settings.php +++ b/lib/plugins/authpgsql/lang/ko/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['server'] = 'PostgreSQL 서버'; $lang['port'] = 'PostgreSQL 서버의 포트'; @@ -16,10 +17,10 @@ $lang['checkPass'] = '비밀번호를 확인하기 위한 SQL 문'; $lang['getUserInfo'] = '사용자 정보를 가져오기 위한 SQL 문'; $lang['getGroups'] = '사용자의 그룹 구성원을 가져오기 위한 SQL 문'; $lang['getUsers'] = '모든 사용자를 나타낼 SQL 문'; -$lang['FilterLogin'] = '로그인 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterName'] = '전체 이름 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterEmail'] = '이메일 주소 별로 사용자를 필터하기 위한 SQL 조항'; -$lang['FilterGroup'] = '그룹 구성원 별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterLogin'] = '로그인 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterName'] = '전체 이름별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterEmail'] = '이메일 주소별로 사용자를 필터하기 위한 SQL 조항'; +$lang['FilterGroup'] = '그룹 구성원별로 사용자를 필터하기 위한 SQL 조항'; $lang['SortOrder'] = '사용자를 정렬할 SQL 조항'; $lang['addUser'] = '새 사용자를 추가할 SQL 문'; $lang['addGroup'] = '새 그룹을 추가할 SQL 문'; diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index a5a11cda1..05f8470f7 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -330,8 +330,7 @@ if (!class_exists('configuration')) { foreach ($this->get_plugin_list() as $plugin) { $plugin_dir = plugin_directory($plugin); if (@file_exists(DOKU_PLUGIN.$plugin_dir.$file)){ - $conf = array(); - @include(DOKU_PLUGIN.$plugin_dir.$file); + $conf = $this->_read_config(DOKU_PLUGIN.$plugin_dir.$file); foreach ($conf as $key => $value){ $default['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value; } @@ -340,8 +339,7 @@ if (!class_exists('configuration')) { // the same for the active template if (@file_exists(tpl_incdir().$file)){ - $conf = array(); - @include(tpl_incdir().$file); + $conf = $this->_read_config(tpl_incdir().$file); foreach ($conf as $key => $value){ $default['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value; } diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php index 6ef9cd69a..8d2006672 100644 --- a/lib/plugins/plugin/lang/ko/lang.php +++ b/lib/plugins/plugin/lang/ko/lang.php @@ -9,6 +9,7 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['menu'] = '플러그인 관리'; $lang['download'] = '새 플러그인을 다운로드하고 설치'; @@ -33,16 +34,16 @@ $lang['deleted'] = '%s 플러그인이 삭제되었습니다.'; $lang['downloading'] = '다운로드 중 ...'; $lang['downloaded'] = '%s 플러그인이 성공적으로 설치되었습니다'; $lang['downloads'] = '다음 플러그인이 성공적으로 설치되었습니다:'; -$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생했습니다.'; +$lang['download_none'] = '플러그인이 없거나 다운로드 또는 설치 중에 알 수 없는 문제가 발생하였습니다.'; $lang['plugin'] = '플러그인:'; $lang['components'] = '구성 요소'; $lang['noinfo'] = '이 플러그인은 어떤 정보도 없습니다. 잘못된 플러그인일 수 있습니다.'; -$lang['name'] = '이름:'; -$lang['date'] = '날짜:'; -$lang['type'] = '종류:'; -$lang['desc'] = '설명:'; -$lang['author'] = '저자:'; -$lang['www'] = '웹:'; +$lang['name'] = '이름: '; +$lang['date'] = '날짜: '; +$lang['type'] = '종류: '; +$lang['desc'] = '설명: '; +$lang['author'] = '저자: '; +$lang['www'] = '웹: '; $lang['error'] = '알 수 없는 문제가 발생했습니다.'; $lang['error_download'] = '플러그인 파일을 다운로드 할 수 없습니다: %s'; $lang['error_badurl'] = '잘못된 URL 같습니다 - URL에서 파일 이름을 알 수 없습니다'; diff --git a/lib/plugins/plugin/lang/no/lang.php b/lib/plugins/plugin/lang/no/lang.php index 829d29387..2b890f972 100644 --- a/lib/plugins/plugin/lang/no/lang.php +++ b/lib/plugins/plugin/lang/no/lang.php @@ -1,13 +1,14 @@ <?php + /** - * Norwegianlanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> diff --git a/lib/plugins/plugin/lang/pl/lang.php b/lib/plugins/plugin/lang/pl/lang.php index faaa69630..eae91f33e 100644 --- a/lib/plugins/plugin/lang/pl/lang.php +++ b/lib/plugins/plugin/lang/pl/lang.php @@ -1,8 +1,8 @@ <?php + /** - * polish language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Michał Tkacz <mehow@autocom.pl> * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php index f52e0007a..088ef1dc9 100644 --- a/lib/plugins/popularity/lang/ko/lang.php +++ b/lib/plugins/popularity/lang/ko/lang.php @@ -9,8 +9,9 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Garam <rowain8@gmail.com> */ -$lang['name'] = '인기도 조사 (불러오는 데 시간이 걸릴 수 있습니다)'; +$lang['name'] = '인기도 조사(불러오는 데 시간이 걸릴 수 있습니다)'; $lang['submit'] = '자료 보내기'; $lang['autosubmit'] = '자료를 자동으로 한 달에 한 번씩 보내기'; $lang['submissionFailed'] = '다음과 같은 이유로 자료 보내기에 실패했습니다:'; diff --git a/lib/plugins/popularity/lang/no/lang.php b/lib/plugins/popularity/lang/no/lang.php index df38f6e0e..dfa99d824 100644 --- a/lib/plugins/popularity/lang/no/lang.php +++ b/lib/plugins/popularity/lang/no/lang.php @@ -1,10 +1,11 @@ <?php + /** - * Norwegian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> diff --git a/lib/plugins/popularity/lang/pl/lang.php b/lib/plugins/popularity/lang/pl/lang.php index 76a9464bd..045574a69 100644 --- a/lib/plugins/popularity/lang/pl/lang.php +++ b/lib/plugins/popularity/lang/pl/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Polish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index 299b12ea7..c58300dc0 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -1,13 +1,14 @@ <?php + /** - * Norwegianlanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> @@ -15,6 +16,8 @@ * @author Rune Rasmussen syntaxerror.no@gmail.com * @author Jon Bøe <jonmagneboe@hotmail.com> * @author Egil Hansen <egil@rosetta.no> + * @author Thomas Juberg <Thomas.Juberg@Gmail.com> + * @author Boris <boris@newton-media.no> */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; diff --git a/lib/plugins/revert/lang/pl/lang.php b/lib/plugins/revert/lang/pl/lang.php index 462841292..d2d53b87e 100644 --- a/lib/plugins/revert/lang/pl/lang.php +++ b/lib/plugins/revert/lang/pl/lang.php @@ -1,6 +1,8 @@ <?php + /** - * polish language file + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> diff --git a/lib/plugins/usermanager/_test/csv_export.test.php b/lib/plugins/usermanager/_test/csv_export.test.php new file mode 100644 index 000000000..667fc71dc --- /dev/null +++ b/lib/plugins/usermanager/_test/csv_export.test.php @@ -0,0 +1,59 @@ +<?php + +/** + * @group plugin_usermanager + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ +require_once(dirname(__FILE__).'/mocks.class.php'); + +class plugin_usermanager_csv_export_test extends DokuWikiTest { + + protected $usermanager; + + function setUp() { + $this->usermanager = new admin_mock_usermanager(); + parent::setUp(); + } + + /** + * based on standard test user/conf setup + * + * users per _test/conf/users.auth.php + * expected to be: testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com + */ + function test_export() { + $expected = 'User,"Real Name",Email,Groups +testuser,"Arthur Dent",arthur@example.com, +'; + $this->assertEquals($expected, $this->usermanager->tryExport()); + } + + /** + * when configured to use a different locale, the column headings in the first line of the + * exported csv data should reflect the langauge strings of that locale + */ + function test_export_withlocale(){ + global $conf; + $old_conf = $conf; + $conf['lang'] = 'de'; + + $this->usermanager->localised = false; + $this->usermanager->setupLocale(); + + $conf = $old_conf; + + $expected = 'Benutzername,"Voller Name",E-Mail,Gruppen +testuser,"Arthur Dent",arthur@example.com, +'; + $this->assertEquals($expected, $this->usermanager->tryExport()); + } +/* + function test_export_withfilter(){ + $this->markTestIncomplete( + 'This test has not been implemented yet.' + ); + } +*/ +} diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php new file mode 100644 index 000000000..3968356bc --- /dev/null +++ b/lib/plugins/usermanager/_test/csv_import.test.php @@ -0,0 +1,185 @@ +<?php + +/** + * @group plugin_usermanager + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ + +require_once(dirname(__FILE__).'/mocks.class.php'); + +/** + * !!!!! NOTE !!!!! + * + * At present, users imported in individual tests remain in the user list for subsequent tests + */ +class plugin_usermanager_csv_import_test extends DokuWikiTest { + + private $old_files; + protected $usermanager; + protected $importfile; + + function setUp() { + $this->importfile = tempnam(TMP_DIR, 'csv'); + + $this->old_files = $_FILES; + $_FILES = array( + 'import' => array( + 'name' => 'import.csv', + 'tmp_name' => $this->importfile, + 'type' => 'text/plain', + 'size' => 1, + 'error' => 0, + ), + ); + + $this->usermanager = new admin_mock_usermanager(); + parent::setUp(); + } + + function tearDown() { + $_FILES = $this->old_files; + parent::tearDown(); + } + + function doImportTest($importCsv, $expectedResult, $expectedNewUsers, $expectedFailures) { + global $auth; + $before_users = $auth->retrieveUsers(); + + io_savefile($this->importfile, $importCsv); + $result = $this->usermanager->tryImport(); + + $after_users = $auth->retrieveUsers(); + $import_count = count($after_users) - count($before_users); + $new_users = array_diff_key($after_users, $before_users); + $diff_users = array_diff_assoc($after_users, $before_users); + + $expectedCount = count($expectedNewUsers); + + $this->assertEquals($expectedResult, $result); // import result as expected + $this->assertEquals($expectedCount, $import_count); // number of new users matches expected number imported + $this->assertEquals($expectedNewUsers, $this->stripPasswords($new_users)); // new user data matches imported user data + $this->assertEquals($expectedCount, $this->countPasswords($new_users)); // new users have a password + $this->assertEquals($expectedCount, $this->usermanager->mock_email_notifications_sent); // new users notified of their passwords + $this->assertEquals($new_users, $diff_users); // no other users were harmed in the testing of this import + $this->assertEquals($expectedFailures, $this->usermanager->getImportFailures()); // failures as expected + } + + function test_cantImport(){ + global $auth; + $oldauth = $auth; + + $auth = new auth_mock_authplain(); + $auth->setCanDo('addUser', false); + + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + + $this->doImportTest($csv, false, array(), array()); + + $auth = $oldauth; + } + + function test_import() { + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + $expected = array( + 'importuser' => array( + 'name' => 'Ford Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + function test_importExisting() { + $csv = 'User,"Real Name",Email,Groups +importuser,"Ford Prefect",ford@example.com,user +'; + $failures = array( + '2' => array( + 'error' => $this->usermanager->lang['import_error_create'], + 'user' => array( + 'importuser', + 'Ford Prefect', + 'ford@example.com', + 'user', + ), + 'orig' => 'importuser,"Ford Prefect",ford@example.com,user'.NL, + ), + ); + + $this->doImportTest($csv, true, array(), $failures); + } + + function test_importUtf8() { + $csv = 'User,"Real Name",Email,Groups +importutf8,"Førd Prefect",ford@example.com,user +'; + $expected = array( + 'importutf8' => array( + 'name' => 'Førd Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + /** + * utf8: u+00F8 (ø) <=> 0xF8 :iso-8859-1 + */ + function test_importIso8859() { + $csv = 'User,"Real Name",Email,Groups +importiso8859,"F'.chr(0xF8).'rd Prefect",ford@example.com,user +'; + $expected = array( + 'importiso8859' => array( + 'name' => 'Førd Prefect', + 'mail' => 'ford@example.com', + 'grps' => array('user'), + ), + ); + + $this->doImportTest($csv, true, $expected, array()); + } + + /** + * Verify usermanager::str_getcsv() behaves identically to php 5.3's str_getcsv() + * within the context/parameters required by _import() + * + * @requires PHP 5.3 + * @deprecated remove when dokuwiki requires 5.3+ + * also associated usermanager & mock usermanager access methods + */ + function test_getcsvcompatibility() { + $line = 'importuser,"Ford Prefect",ford@example.com,user'.NL; + + $this->assertEquals(str_getcsv($line), $this->usermanager->access_str_getcsv($line)); + } + + private function stripPasswords($array){ + foreach ($array as $user => $data) { + unset($array[$user]['pass']); + } + return $array; + } + + private function countPasswords($array){ + $count = 0; + foreach ($array as $user => $data) { + if (!empty($data['pass'])) { + $count++; + } + } + return $count; + } + +} + diff --git a/lib/plugins/usermanager/_test/mocks.class.php b/lib/plugins/usermanager/_test/mocks.class.php new file mode 100644 index 000000000..91c74768c --- /dev/null +++ b/lib/plugins/usermanager/_test/mocks.class.php @@ -0,0 +1,58 @@ +<?php + +/** + * test wrapper to allow access to private/protected functions/properties + * + * NB: for plugin introspection methods, getPluginType() & getPluginName() to work + * this class name needs to start "admin_" and end "_usermanager". Internally + * these methods are used in setting up the class, e.g. for language strings + */ +class admin_mock_usermanager extends admin_plugin_usermanager { + + public $mock_email_notifications = true; + public $mock_email_notifications_sent = 0; + + public function getImportFailures() { + return $this->_import_failures; + } + + public function tryExport() { + ob_start(); + $this->_export(); + return ob_get_clean(); + } + + public function tryImport() { + return $this->_import(); + } + + /** + * @deprecated remove when dokuwiki requires php 5.3+ + * also associated unit test & usermanager methods + */ + public function access_str_getcsv($line){ + return $this->str_getcsv($line); + } + + // no need to send email notifications (mostly) + protected function _notifyUser($user, $password, $status_alert=true) { + if ($this->mock_email_notifications) { + $this->mock_email_notifications_sent++; + return true; + } else { + return parent::_notifyUser($user, $password, $status_alert); + } + } + + protected function _isUploadedFile($file) { + return file_exists($file); + } +} + +class auth_mock_authplain extends auth_plugin_authplain { + + public function setCanDo($op, $canDo) { + $this->cando[$op] = $canDo; + } + +} diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index c4d71cb22..156037f09 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -814,6 +814,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { fputcsv($fd, $line); } fclose($fd); + if (defined('DOKU_UNITTEST')){ return; } + die; } @@ -822,7 +824,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * csv file should have 4 columns, user_id, full name, email, groups (comma separated) * - * @return bool whether succesful + * @return bool whether successful */ protected function _import() { // check we are allowed to add users @@ -830,7 +832,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('addUser')) return false; // check file uploaded ok. - if (empty($_FILES['import']['size']) || !empty($FILES['import']['error']) && is_uploaded_file($FILES['import']['tmp_name'])) { + if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && $this->_isUploadedFile($_FILES['import']['tmp_name'])) { msg($this->lang['import_error_upload'],-1); return false; } @@ -845,7 +847,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!utf8_check($csv)) { $csv = utf8_encode($csv); } - $raw = str_getcsv($csv); + $raw = $this->_getcsv($csv); $error = ''; // clean out any errors from the previous line // data checks... if (1 == ++$line) { @@ -867,6 +869,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $import_success_count++; } else { $import_fail_count++; + array_splice($raw, 1, 1); // remove the spliced in password $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv); } } @@ -940,7 +943,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param array $user data of user * @param string &$error reference catched error message - * @return bool whether succesful + * @return bool whether successful */ protected function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { @@ -973,4 +976,37 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { die; } + /** + * wrapper for is_uploaded_file to facilitate overriding by test suite + */ + protected function _isUploadedFile($file) { + return is_uploaded_file($file); + } + + /** + * wrapper for str_getcsv() to simplify maintaining compatibility with php 5.2 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + * also associated unit test & mock access method + */ + protected function _getcsv($csv) { + return function_exists('str_getcsv') ? str_getcsv($csv) : $this->str_getcsv($csv); + } + + /** + * replacement str_getcsv() function for php < 5.3 + * loosely based on www.php.net/str_getcsv#88311 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + */ + protected function str_getcsv($str) { + $fp = fopen("php://temp/maxmemory:1048576", 'r+'); // 1MiB + fputs($fp, $str); + rewind($fp); + + $data = fgetcsv($fp); + + fclose($fp); + return $data; + } } diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index 7c24ef900..dd0e64fc4 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -23,6 +23,7 @@ * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Antoine Turmel <geekshadow@gmail.com> * @author schplurtz <Schplurtz@laposte.net> + * @author Jérôme Brandt <jeromebrandt@gmail.com> */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -70,6 +71,8 @@ $lang['add_ok'] = 'Utilisateur ajouté avec succès'; $lang['add_fail'] = 'Échec de l\'ajout de l\'utilisateur'; $lang['notify_ok'] = 'Courriel de notification expédié'; $lang['notify_fail'] = 'Échec de l\'expédition du courriel de notification'; +$lang['import_userlistcsv'] = 'Liste utilisateur (fichier CSV)'; +$lang['import_header'] = 'Erreurs d\'import les plus récentes'; $lang['import_success_count'] = 'Import d’utilisateurs : %d utilisateurs trouvés, %d utilisateurs importés avec succès.'; $lang['import_failure_count'] = 'Import d\'utilisateurs : %d ont échoué. Les erreurs sont listées ci-dessous.'; $lang['import_error_fields'] = 'Nombre de champs insuffisant, %d trouvé, 4 requis.'; @@ -80,3 +83,4 @@ $lang['import_error_upload'] = 'L\'import a échoué. Le fichier csv n\'a pas $lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fichier téléchargé.'; $lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; $lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.'; +$lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction'; diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index dfacc6545..6c6789442 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -15,6 +15,7 @@ * @author Jacopo Corbetta <jacopo.corbetta@gmail.com> * @author Matteo Pasotti <matteo@xquiet.eu> * @author snarchio@gmail.com + * @author Claudio Lanconelli <lancos@libero.it> */ $lang['menu'] = 'Gestione Utenti'; $lang['noauth'] = '(autenticazione non disponibile)'; @@ -37,6 +38,8 @@ $lang['search'] = 'Cerca'; $lang['search_prompt'] = 'Esegui ricerca'; $lang['clear'] = 'Azzera filtro di ricerca'; $lang['filter'] = 'Filtro'; +$lang['export_all'] = 'Esporta tutti gli utenti (CSV)'; +$lang['export_filtered'] = 'Esporta elenco utenti filtrati (CSV)'; $lang['summary'] = 'Visualizzazione utenti %1$d-%2$d di %3$d trovati. %4$d utenti totali.'; $lang['nonefound'] = 'Nessun utente trovato. %d utenti totali.'; $lang['delete_ok'] = '%d utenti eliminati'; diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index ccc7f9059..7c629f74f 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -10,6 +10,7 @@ * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> + * @author Garam <rowain8@gmail.com> */ $lang['menu'] = '사용자 관리자'; $lang['noauth'] = '(사용자 인증이 불가능합니다)'; @@ -32,8 +33,8 @@ $lang['search'] = '검색'; $lang['search_prompt'] = '검색 수행'; $lang['clear'] = '검색 필터 재설정'; $lang['filter'] = '필터'; -$lang['export_all'] = '모든 사용자 목록 내보내기 (CSV)'; -$lang['export_filtered'] = '필터된 사용자 목록 내보내기 (CSV)'; +$lang['export_all'] = '모든 사용자 목록 내보내기(CSV)'; +$lang['export_filtered'] = '필터된 사용자 목록 내보내기(CSV)'; $lang['import'] = '새 사용자 목록 가져오기'; $lang['line'] = '줄 번호'; $lang['error'] = '오류 메시지'; @@ -52,12 +53,12 @@ $lang['edit_usermissing'] = '선택된 사용자를 찾을 수 없습니다 $lang['user_notify'] = '사용자에게 알림'; $lang['note_notify'] = '사용자에게 새로운 비밀번호를 준 경우에만 알림 이메일이 보내집니다.'; $lang['note_group'] = '새로운 사용자는 어떤 그룹도 설정하지 않은 경우에 기본 그룹(%s)에 추가됩니다.'; -$lang['note_pass'] = '사용자 통지가 지정되어 있을 때 필드에 아무 값도 입력하지 않으면 비밀번호가 자동으로 만들어집니다.'; +$lang['note_pass'] = '사용자 알림이 지정되어 있을 때 필드에 아무 값도 입력하지 않으면 비밀번호가 자동으로 만들어집니다.'; $lang['add_ok'] = '사용자를 성공적으로 추가했습니다'; $lang['add_fail'] = '사용자 추가를 실패했습니다'; $lang['notify_ok'] = '알림 이메일을 성공적으로 보냈습니다'; $lang['notify_fail'] = '알림 이메일을 보낼 수 없습니다'; -$lang['import_userlistcsv'] = '사용자 목록 파일 (CSV):'; +$lang['import_userlistcsv'] = '사용자 목록 파일(CSV):'; $lang['import_header'] = '가장 최근 가져오기 - 실패'; $lang['import_success_count'] = '사용자 가져오기: 사용자 %d명을 찾았고, %d명을 성공적으로 가져왔습니다.'; $lang['import_failure_count'] = '사용자 가져오기: %d명을 가져오지 못했습니다. 실패는 아래에 나타나 있습니다.'; @@ -68,5 +69,5 @@ $lang['import_error_badmail'] = '잘못된 이메일 주소'; $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일을 올릴 수 없거나 비어 있습니다.'; $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; -$lang['import_notify_fail'] = '알림 메시지를 가져온 %2$s (이메일: %1$s ) 사용자에게 보낼 수 없습니다.'; +$lang['import_notify_fail'] = '알림 메시지를 가져온 %s(이메일: %s) 사용자에게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; diff --git a/lib/plugins/usermanager/lang/no/lang.php b/lib/plugins/usermanager/lang/no/lang.php index 7124e4811..83823b2b8 100644 --- a/lib/plugins/usermanager/lang/no/lang.php +++ b/lib/plugins/usermanager/lang/no/lang.php @@ -1,13 +1,14 @@ <?php + /** - * Norwegianlanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Thomas Nygreen <nygreen@gmail.com> * @author Arild Burud <arildb@met.no> * @author Torkill Bruland <torkar-b@online.no> * @author Rune M. Andersen <rune.andersen@gmail.com> * @author Jakob Vad Nielsen (me@jakobnielsen.net) - * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> + * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no> * @author Knut Staring <knutst@gmail.com> * @author Lisa Ditlefsen <lisa@vervesearch.com> * @author Erik Pedersen <erik.pedersen@shaw.ca> diff --git a/lib/plugins/usermanager/lang/pl/lang.php b/lib/plugins/usermanager/lang/pl/lang.php index cfc0ba327..2e063d2bb 100644 --- a/lib/plugins/usermanager/lang/pl/lang.php +++ b/lib/plugins/usermanager/lang/pl/lang.php @@ -1,7 +1,8 @@ <?php + /** - * polish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Grzegorz Żur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 9bb37742a..356d139eb 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -20,6 +20,7 @@ * @author Victor Westmann <victor.westmann@gmail.com> * @author Leone Lisboa Magevski <leone1983@gmail.com> * @author Dário Estevão <darioems@gmail.com> + * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; @@ -43,6 +44,7 @@ $lang['search_prompt'] = 'Executar a pesquisa'; $lang['clear'] = 'Limpar o filtro de pesquisa'; $lang['filter'] = 'Filtro'; $lang['export_all'] = 'Exportar Todos Usuários (CSV)'; +$lang['export_filtered'] = 'Exportar lista de Usuários Filtrados (CSV)'; $lang['import'] = 'Importar Novos Usuários'; $lang['line'] = 'Linha Nº.'; $lang['error'] = 'Mensagem de Erro'; @@ -66,6 +68,8 @@ $lang['add_ok'] = 'O usuário foi adicionado com sucesso'; $lang['add_fail'] = 'O usuário não foi adicionado'; $lang['notify_ok'] = 'O e-mail de notificação foi enviado'; $lang['notify_fail'] = 'Não foi possível enviar o e-mail de notificação'; +$lang['import_userlistcsv'] = 'Arquivo de lista de usuários (CSV):'; +$lang['import_header'] = 'Importações Mais Recentes - Falhas'; $lang['import_success_count'] = 'Importação de Usuário: %d usuário (s) encontrado (s), %d importado (s) com sucesso.'; $lang['import_failure_count'] = 'Importação de Usuário: %d falhou. As falhas estão listadas abaixo.'; $lang['import_error_fields'] = 'Campos insuficientes, encontrado (s) %d, necessário 4.'; @@ -75,3 +79,5 @@ $lang['import_error_badmail'] = 'Endereço de email errado'; $lang['import_error_upload'] = 'Falha na Importação: O arquivo csv não pode ser carregado ou está vazio.'; $lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o arquivo a ser carregado.'; $lang['import_error_create'] = 'Habilitar para criar o usuário.'; +$lang['import_notify_fail'] = 'Mensagem de notificação não pode ser enviada para o usuário importado, %s com email %s.'; +$lang['import_downloadfailures'] = 'Falhas no Download como CSV para correção'; |