diff options
Diffstat (limited to 'plugins')
21 files changed, 207 insertions, 223 deletions
diff --git a/plugins/acl/localization/ko_KR.inc b/plugins/acl/localization/ko_KR.inc index 85e33725d..524427a4e 100644 --- a/plugins/acl/localization/ko_KR.inc +++ b/plugins/acl/localization/ko_KR.inc @@ -19,81 +19,81 @@ $labels['sharing'] = '공유'; $labels['myrights'] = '접근 권한'; $labels['username'] = '사용자:'; -$labels['advanced'] = 'advanced mode'; +$labels['advanced'] = '고급 모드'; $labels['newuser'] = '엔트리 추가'; -$labels['actions'] = 'Access right actions...'; -$labels['anyone'] = 'All users (anyone)'; -$labels['anonymous'] = 'Guests (anonymous)'; +$labels['actions'] = '접근 권한 동작...'; +$labels['anyone'] = '모든 사용자 (아무나)'; +$labels['anonymous'] = '방문자 (익명)'; $labels['identifier'] = '식별자'; -$labels['acll'] = 'Lookup'; -$labels['aclr'] = 'Read messages'; +$labels['acll'] = '조회'; +$labels['aclr'] = '읽은 메시지'; $labels['acls'] = '읽은 상태로 유지'; -$labels['aclw'] = 'Write flags'; -$labels['acli'] = 'Insert (Copy into)'; +$labels['aclw'] = '쓰기 깃발'; +$labels['acli'] = '삽입 (복사할 위치)'; $labels['aclp'] = '게시'; $labels['aclc'] = '하위 폴더 만들기'; $labels['aclk'] = '하위 폴더 만들기'; $labels['acld'] = '메시지 삭제'; $labels['aclt'] = '메시지 삭제'; -$labels['acle'] = 'Expunge'; +$labels['acle'] = '영구 제거'; $labels['aclx'] = '폴더 삭제'; $labels['acla'] = '관리자'; -$labels['aclfull'] = 'Full control'; -$labels['aclother'] = 'Other'; -$labels['aclread'] = 'Read'; -$labels['aclwrite'] = 'Write'; -$labels['acldelete'] = 'Delete'; +$labels['aclfull'] = '전체 제어권'; +$labels['aclother'] = '기타'; +$labels['aclread'] = '읽기'; +$labels['aclwrite'] = '쓰기'; +$labels['acldelete'] = '삭제'; -$labels['shortacll'] = 'Lookup'; -$labels['shortaclr'] = 'Read'; -$labels['shortacls'] = 'Keep'; -$labels['shortaclw'] = 'Write'; -$labels['shortacli'] = 'Insert'; +$labels['shortacll'] = '조회'; +$labels['shortaclr'] = '읽기'; +$labels['shortacls'] = '보관'; +$labels['shortaclw'] = '쓰기'; +$labels['shortacli'] = '삽입'; $labels['shortaclp'] = '게시'; -$labels['shortaclc'] = 'Create'; -$labels['shortaclk'] = 'Create'; -$labels['shortacld'] = 'Delete'; -$labels['shortaclt'] = 'Delete'; -$labels['shortacle'] = 'Expunge'; +$labels['shortaclc'] = '생성'; +$labels['shortaclk'] = '생성'; +$labels['shortacld'] = '삭제'; +$labels['shortaclt'] = '삭제'; +$labels['shortacle'] = '지움'; $labels['shortaclx'] = '폴더 삭제'; -$labels['shortacla'] = '관리자'; +$labels['shortacla'] = '관리'; -$labels['shortaclother'] = 'Other'; -$labels['shortaclread'] = 'Read'; -$labels['shortaclwrite'] = 'Write'; -$labels['shortacldelete'] = 'Delete'; +$labels['shortaclother'] = '기타'; +$labels['shortaclread'] = '읽기'; +$labels['shortaclwrite'] = '쓱'; +$labels['shortacldelete'] = '삭제'; -$labels['longacll'] = 'The folder is visible on lists and can be subscribed to'; -$labels['longaclr'] = 'The folder can be opened for reading'; -$labels['longacls'] = 'Messages Seen flag can be changed'; -$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; -$labels['longacli'] = '폴더에 메시지를 복사하거나 작성할 수 있음'; -$labels['longaclp'] = '이 폴더로 메시지를 게시할 수 있음'; -$labels['longaclc'] = '이 폴더의 바로 밑에 폴더를 생성(또는 이름 변경)할 수 있음'; -$labels['longaclk'] = '이 폴더의 바로 밑에 폴더를 생성(또는 이름 변경)할 수 있음'; -$labels['longacld'] = '메시지 삭제 플래그가 변경될 수 있음'; -$labels['longaclt'] = '메시지 삭제 플래그가 변경될 수 있음'; -$labels['longacle'] = 'Messages can be expunged'; -$labels['longaclx'] = '폴더를 삭제하거나 이름 변경 할 수 있음'; +$labels['longacll'] = '폴더가 목록에 나타나고 다음 사용자가 구독할 수 있음:'; +$labels['longaclr'] = '읽기 위해 폴더를 열 수 있음'; +$labels['longacls'] = '읽은 메시지 깃발이 변경될 수 있음'; +$labels['longaclw'] = '메시지 깃발 및 키워드를 변경할 수 있음, 다만 읽음 및 삭제됨은 제외'; +$labels['longacli'] = '메시지를 폴더에 복사하거나 작성할 수 있음'; +$labels['longaclp'] = '메시지를 이 폴더로 게시할 수 있음'; +$labels['longaclc'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음'; +$labels['longaclk'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음'; +$labels['longacld'] = '메시지 삭제 깃발이 변경될 수 있음'; +$labels['longaclt'] = '메시지 삭제 깃발이 변경될 수 있음'; +$labels['longacle'] = '메시지가 영구 제거될 수 있음'; +$labels['longaclx'] = '폴더를 삭제하거나 이름을 변경 할 수 있음'; $labels['longacla'] = '폴더의 접근 권한을 변경할 수 있음'; $labels['longaclfull'] = '폴더 관리를 포함한 모든 제어권'; -$labels['longaclread'] = 'The folder can be opened for reading'; -$labels['longaclwrite'] = '메시지에 표시하거나, 폴더로 메시지를 복사하거나 작성할 수 있음'; +$labels['longaclread'] = '폴더를 열어 읽을 수 있음'; +$labels['longaclwrite'] = '메시지에 표시하거나, 폴더로 이동하거나 복사할 수 있음'; $labels['longacldelete'] = '메시지를 삭제할 수 있음'; -$messages['deleting'] = '접근 권한 삭제 중...'; -$messages['saving'] = '접근 권한 저장 중...'; -$messages['updatesuccess'] = '접근 권한을 변경하는데 성공 함.'; -$messages['deletesuccess'] = '접근 권한을 삭제하는데 성공 함.'; -$messages['createsuccess'] = '접근 권한을 추가하는데 성공 함.'; -$messages['updateerror'] = '접근 권한을 갱신할 수 없음.'; +$messages['deleting'] = '접근 권한을 삭제하는 중...'; +$messages['saving'] = '접근 권한을 저장하는 중...'; +$messages['updatesuccess'] = '접근 권한을 성공적으로 변경함.'; +$messages['deletesuccess'] = '접근 권한을 성공적으로 삭제함.'; +$messages['createsuccess'] = '접근 권한을 성공적으로 추가함.'; +$messages['updateerror'] = '접근 권한을 업데이트할 수 없음.'; $messages['deleteerror'] = '접근 권한을 삭제할 수 없음.'; $messages['createerror'] = '접근 권한을 추가할 수 없음.'; -$messages['deleteconfirm'] = '선택한 사용자(들)의 접근 권한을 삭제하고자 하는 것이 확실 합니까?'; +$messages['deleteconfirm'] = '정말로 선택한 사용자의 접근 권한을 삭제하시겠습니까?'; $messages['norights'] = '지정된 권한이 없음!'; -$messages['nouser'] = '지정된 username이 없음!'; +$messages['nouser'] = '지정된 사용자명이 없음!'; ?> diff --git a/plugins/archive/localization/az_AZ.inc b/plugins/archive/localization/az_AZ.inc index 8aab6f2da..19a409d41 100644 --- a/plugins/archive/localization/az_AZ.inc +++ b/plugins/archive/localization/az_AZ.inc @@ -20,15 +20,15 @@ $labels = array(); $labels['buttontext'] = 'Arxiv'; $labels['buttontitle'] = 'Mesajı arxivə göndər'; $labels['archived'] = 'Arxivə göndərildi'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivedreload'] = 'Müvəffəqiyyətlə arxivləşdirildi. Yeni arxiv qovluqlarını görmək üçün səhifəni yeniləyin.'; +$labels['archiveerror'] = 'Bəzi məktublar arxivləşdirilə bilinmirlər'; $labels['archivefolder'] = 'Arxiv'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; +$labels['settingstitle'] = 'Arxiv'; +$labels['archivetype'] = 'Arxivi böl: '; +$labels['archivetypeyear'] = 'İl (məs. Arxiv/2012)'; +$labels['archivetypemonth'] = 'Ay (məs. Arxiv/2012/06)'; +$labels['archivetypefolder'] = 'Orijinal qovluq'; +$labels['archivetypesender'] = 'Göndərənin E-Poçtu'; +$labels['unkownsender'] = 'naməlum'; ?> diff --git a/plugins/archive/localization/es_AR.inc b/plugins/archive/localization/es_AR.inc index ad9e84add..5fb082497 100644 --- a/plugins/archive/localization/es_AR.inc +++ b/plugins/archive/localization/es_AR.inc @@ -20,15 +20,15 @@ $labels = array(); $labels['buttontext'] = 'Archivo'; $labels['buttontitle'] = 'Archivar este mensaje'; $labels['archived'] = 'Mensaje Archivado'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivedreload'] = 'Archivado satisfactoriamente. Recarga la página para ver las nuevas capetas archivadas.'; +$labels['archiveerror'] = 'Algunos mensajes no pudieron archivarse'; $labels['archivefolder'] = 'Archivo'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; +$labels['settingstitle'] = 'Archivo'; +$labels['archivetype'] = 'Separar archivo por'; +$labels['archivetypeyear'] = 'Año (ej. Archivo/2012)'; +$labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)'; +$labels['archivetypefolder'] = 'Carpeta original'; +$labels['archivetypesender'] = 'Remitente del correo'; +$labels['unkownsender'] = 'desconocido'; ?> diff --git a/plugins/archive/localization/ko_KR.inc b/plugins/archive/localization/ko_KR.inc index 96a7ac404..4226420a0 100644 --- a/plugins/archive/localization/ko_KR.inc +++ b/plugins/archive/localization/ko_KR.inc @@ -19,16 +19,16 @@ $labels = array(); $labels['buttontext'] = '보관'; $labels['buttontitle'] = '이 메시지를 보관'; -$labels['archived'] = '성공적으로 보관 됨'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archived'] = '성공적으로 보관됨'; +$labels['archivedreload'] = '성공적으로 보관됨. 페이지를 다시 불러와서 새 보관 폴더를 확인하세요.'; +$labels['archiveerror'] = '일부 메시지가 보관되지 않음'; $labels['archivefolder'] = '보관'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; +$labels['settingstitle'] = '보관'; +$labels['archivetype'] = '보관된 메시지 정리 기준'; +$labels['archivetypeyear'] = '연도 (예: 보관 편지함/2012)'; +$labels['archivetypemonth'] = '월 (예: 보관 편지함/2012/06)'; +$labels['archivetypefolder'] = '원본 폴더'; +$labels['archivetypesender'] = '발신인 이메일'; +$labels['unkownsender'] = '알 수 없음'; ?> diff --git a/plugins/archive/localization/lt_LT.inc b/plugins/archive/localization/lt_LT.inc index 36046277a..069a65665 100644 --- a/plugins/archive/localization/lt_LT.inc +++ b/plugins/archive/localization/lt_LT.inc @@ -20,15 +20,15 @@ $labels = array(); $labels['buttontext'] = 'Archyvuoti'; $labels['buttontitle'] = 'Perkelti šį laišką į archyvą'; $labels['archived'] = 'Laiškas sėkmingai perkeltas į archyvą'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivedreload'] = 'Sėkmingai perkelta į archyvą. Iš naujo įkelkite puslapį, kad pamatytumėt pasikeitimus.'; +$labels['archiveerror'] = 'Į archyvą nepavyko perkelti keleto laiškų.'; $labels['archivefolder'] = 'Archyvuoti'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; +$labels['settingstitle'] = 'Archyvuoti'; +$labels['archivetype'] = 'Padalinti archyvą pagal'; +$labels['archivetypeyear'] = 'Metai (pvz. Archyvas/2012)'; +$labels['archivetypemonth'] = 'Mėnesis (pvz. Archyvas/2012/06)'; +$labels['archivetypefolder'] = 'Tikrasis aplankas'; +$labels['archivetypesender'] = 'Siuntėjo el. pašto adresas'; +$labels['unkownsender'] = 'nežinomas'; ?> diff --git a/plugins/archive/localization/tr_TR.inc b/plugins/archive/localization/tr_TR.inc index 765498301..b6960ea89 100644 --- a/plugins/archive/localization/tr_TR.inc +++ b/plugins/archive/localization/tr_TR.inc @@ -20,15 +20,15 @@ $labels = array(); $labels['buttontext'] = 'Arşiv'; $labels['buttontitle'] = 'Bu postayı arşivle'; $labels['archived'] = 'Başarıyla arşivlendi'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivedreload'] = 'Başarıyla arşivlendi. Yeni arşiv dosyalarını görmek için sayfayı yenileyin.'; +$labels['archiveerror'] = 'Bazı mesajlar arşivlenemedi.'; $labels['archivefolder'] = 'Arşiv'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; +$labels['settingstitle'] = 'Arşiv'; +$labels['archivetype'] = 'Arşivi bunla böl'; +$labels['archivetypeyear'] = 'Yıl (Arşiv/2012)'; +$labels['archivetypemonth'] = 'Ay(Arşiv/2012/06)'; +$labels['archivetypefolder'] = 'Özgün dosya'; +$labels['archivetypesender'] = 'E-Posta Göndericisi'; +$labels['unkownsender'] = 'bilinmeyen'; ?> diff --git a/plugins/filesystem_attachments/filesystem_attachments.php b/plugins/filesystem_attachments/filesystem_attachments.php index fa147795f..d952e5a75 100644 --- a/plugins/filesystem_attachments/filesystem_attachments.php +++ b/plugins/filesystem_attachments/filesystem_attachments.php @@ -60,6 +60,7 @@ class filesystem_attachments extends rcube_plugin $args['id'] = $this->file_id(); $args['path'] = $tmpfname; $args['status'] = true; + @chmod($tmpfname, 0600); // set correct permissions (#1488996) // Note the file for later cleanup $_SESSION['plugins']['filesystem_attachments'][$group][] = $tmpfname; diff --git a/plugins/help/localization/ko_KR.inc b/plugins/help/localization/ko_KR.inc index a589d0ce1..836da6639 100644 --- a/plugins/help/localization/ko_KR.inc +++ b/plugins/help/localization/ko_KR.inc @@ -19,6 +19,6 @@ $labels = array(); $labels['help'] = '도움말'; $labels['about'] = '정보'; -$labels['license'] = '라이센스'; +$labels['license'] = '라이선스'; ?> diff --git a/plugins/managesieve/localization/bs_BA.inc b/plugins/managesieve/localization/bs_BA.inc index 6d1ec8d2c..7d21dbd9f 100644 --- a/plugins/managesieve/localization/bs_BA.inc +++ b/plugins/managesieve/localization/bs_BA.inc @@ -57,9 +57,9 @@ $labels['sender'] = 'Pošiljaoc'; $labels['recipient'] = 'Primaoc'; $labels['vacationaddresses'] = 'Moje dodatne email adrese (odvojite zarezima):'; $labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):'; -$labels['vacationinterval'] = 'How often send messages:'; -$labels['days'] = 'days'; -$labels['seconds'] = 'seconds'; +$labels['vacationinterval'] = 'Frekvencija slanja poruka:'; +$labels['days'] = 'dana'; +$labels['seconds'] = 'sekundi'; $labels['vacationreason'] = 'Tijelo poruke (razlog za odmor):'; $labels['vacationsubject'] = 'Naslov poruke:'; $labels['rulestop'] = 'Prestani procjenjivati pravila'; diff --git a/plugins/new_user_dialog/localization/ko_KR.inc b/plugins/new_user_dialog/localization/ko_KR.inc index 82240f37d..d9b519475 100644 --- a/plugins/new_user_dialog/localization/ko_KR.inc +++ b/plugins/new_user_dialog/localization/ko_KR.inc @@ -17,7 +17,7 @@ */ $labels = array(); -$labels['identitydialogtitle'] = '수신자의 신원을 채우기 바랍니다.'; -$labels['identitydialoghint'] = '이 박스는 최초로 로그인할 때만 나타납니다.'; +$labels['identitydialogtitle'] = '수신인의 신원을 완성하시기 바랍니다.'; +$labels['identitydialoghint'] = '이 상자는 최초로 로그인할 때만 나타납니다.'; ?>
\ No newline at end of file diff --git a/plugins/new_user_dialog/localization/nl_NL.inc b/plugins/new_user_dialog/localization/nl_NL.inc index 4d5d41185..c5d392f98 100644 --- a/plugins/new_user_dialog/localization/nl_NL.inc +++ b/plugins/new_user_dialog/localization/nl_NL.inc @@ -17,7 +17,7 @@ */ $labels = array(); -$labels['identitydialogtitle'] = 'Vul uw correcte identiteitgegevens in a.u.b.'; -$labels['identitydialoghint'] = 'Dit scherm verschijnt enkel bij uw eerste login.'; +$labels['identitydialogtitle'] = 'Vul alstublieft uw afzendergegevens in.'; +$labels['identitydialoghint'] = 'Dit scherm verschijnt eenmalig bij uw eerste aanmelding.'; ?>
\ No newline at end of file diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php index 871384e47..8d641c946 100644 --- a/plugins/new_user_dialog/new_user_dialog.php +++ b/plugins/new_user_dialog/new_user_dialog.php @@ -126,7 +126,7 @@ class new_user_dialog extends rcube_plugin ); // don't let the user alter the e-mail address if disabled by config - if ($identities_level == 1 || $identities_level == 3) + if (in_array($identities_level, array(1,3,4))) $save_data['email'] = $identity['email']; else $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']); @@ -141,5 +141,3 @@ class new_user_dialog extends rcube_plugin } } - -?> diff --git a/plugins/new_user_dialog/package.xml b/plugins/new_user_dialog/package.xml index 0bca1d9d4..c9f1965de 100644 --- a/plugins/new_user_dialog/package.xml +++ b/plugins/new_user_dialog/package.xml @@ -13,10 +13,9 @@ <email>roundcube@gmail.com</email> <active>yes</active> </lead> - <date>2012-01-16</date> - <time>17:00</time> + <date>2013-04-16</date> <version> - <release>1.5</release> + <release>1.6</release> <api>1.0</api> </version> <stability> @@ -25,8 +24,7 @@ </stability> <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license> <notes> -- Use jquery UI to render the dialog -- Fixed IDNA encoding/decoding of e-mail addresses (#1487909) +- Fix handling of identities_level=4 </notes> <contents> <dir baseinstalldir="/" name="/"> @@ -150,5 +148,22 @@ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> <notes>- Use jquery UI to render the dialog</notes> </release> + <release> + <date>2012-01-16</date> + <time>17:00</time> + <version> + <release>1.5</release> + <api>1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license> + <notes> +- Use jquery UI to render the dialog +- Fixed IDNA encoding/decoding of e-mail addresses (#1487909) + </notes> + </release> </changelog> </package> diff --git a/plugins/newmail_notifier/localization/nl_NL.inc b/plugins/newmail_notifier/localization/nl_NL.inc index e18a6ff2d..01f97e4ce 100644 --- a/plugins/newmail_notifier/localization/nl_NL.inc +++ b/plugins/newmail_notifier/localization/nl_NL.inc @@ -16,14 +16,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ -$labels['basic'] = 'Toon browsermelding bij nieuw bericht'; -$labels['desktop'] = 'Toon desktopmelding bij nieuw bericht'; -$labels['sound'] = 'Speel geluid bij nieuw bericht'; +$labels['basic'] = 'Toon melding in browser bij nieuw bericht'; +$labels['desktop'] = 'Toon melding op bureaublad bij nieuw bericht'; +$labels['sound'] = 'Geluid afspelen bij nieuw bericht'; $labels['test'] = 'Test'; $labels['title'] = 'Nieuwe e-mail!'; $labels['body'] = 'U heeft een nieuw bericht ontvangen.'; $labels['testbody'] = 'Dit is een testmelding.'; -$labels['desktopdisabled'] = 'Desktopmeldingen zijn uitgeschakeld in uw browser.'; -$labels['desktopunsupported'] = 'Uw browser ondersteunt geen desktopmeldingen.'; +$labels['desktopdisabled'] = 'Bureaubladmeldingen zijn uitgeschakeld in uw browser.'; +$labels['desktopunsupported'] = 'Uw browser ondersteunt geen bureaubladmeldingen.'; ?> diff --git a/plugins/password/README b/plugins/password/README index 25af8cbcd..2c57e0cf6 100644 --- a/plugins/password/README +++ b/plugins/password/README @@ -192,8 +192,12 @@ 2.6. cPanel (cpanel) -------------------- - You can specify parameters for HTTP connection to cPanel's admin - interface. See config.inc.php.dist file for more info. + Install cPanel XMLAPI Client Class into Roundcube program/lib directory + or any other place in PHP include path. You can get the class from + https://raw.github.com/CpanelInc/xmlapi-php/master/xmlapi.php + + You can configure parameters for connection to cPanel's API interface. + See config.inc.php.dist file for more info. 2.7. XIMSS/Communigate (ximms) diff --git a/plugins/password/config.inc.php.dist b/plugins/password/config.inc.php.dist index e2d8eeb10..9256829aa 100644 --- a/plugins/password/config.inc.php.dist +++ b/plugins/password/config.inc.php.dist @@ -269,13 +269,7 @@ $rcmail_config['password_cpanel_username'] = 'username'; $rcmail_config['password_cpanel_password'] = 'password'; // The cPanel port to use -$rcmail_config['password_cpanel_port'] = 2082; - -// Using ssl for cPanel connections? -$rcmail_config['password_cpanel_ssl'] = true; - -// The cPanel theme in use -$rcmail_config['password_cpanel_theme'] = 'x'; +$rcmail_config['password_cpanel_port'] = 2087; // XIMSS (Communigate server) Driver options diff --git a/plugins/password/drivers/cpanel.php b/plugins/password/drivers/cpanel.php index 79887109b..b71c33ec1 100644 --- a/plugins/password/drivers/cpanel.php +++ b/plugins/password/drivers/cpanel.php @@ -4,95 +4,43 @@ * cPanel Password Driver * * Driver that adds functionality to change the users cPanel password. - * The cPanel PHP API code has been taken from: http://www.phpclasses.org/browse/package/3534.html + * Originally written by Fulvio Venturelli <fulvio@venturelli.org> * - * This driver has been tested with Hostmonster hosting and seems to work fine. + * Completely rewritten using the cPanel API2 call Email::passwdpop + * as opposed to the original coding against the UI, which is a fragile method that + * makes the driver to always return a failure message for any language other than English + * see http://trac.roundcube.net/ticket/1487015 * - * @version 2.0 - * @author Fulvio Venturelli <fulvio@venturelli.org> + * This driver has been tested with o2switch hosting and seems to work fine. + * + * @version 3.0 + * @author Christian Chech <christian@chech.fr> */ class rcube_cpanel_password { public function save($curpas, $newpass) { + require_once 'xmlapi.php'; + $rcmail = rcmail::get_instance(); - // Create a cPanel email object - $cPanel = new emailAccount($rcmail->config->get('password_cpanel_host'), - $rcmail->config->get('password_cpanel_username'), - $rcmail->config->get('password_cpanel_password'), - $rcmail->config->get('password_cpanel_port'), - $rcmail->config->get('password_cpanel_ssl'), - $rcmail->config->get('password_cpanel_theme'), - $_SESSION['username'] ); + $this->cuser = $rcmail->config->get('password_cpanel_username'); + + // Setup the xmlapi connection + $this->xmlapi = new xmlapi($rcmail->config->get('password_cpanel_host')); + $this->xmlapi->set_port($rcmail->config->get('password_cpanel_port')); + $this->xmlapi->password_auth($this->cuser, $rcmail->config->get('password_cpanel_password')); + $this->xmlapi->set_output('json'); + $this->xmlapi->set_debug(0); - if ($cPanel->setPassword($newpass)) { + if ($this->setPassword($_SESSION['username'], $newpass)) { return PASSWORD_SUCCESS; } else { return PASSWORD_ERROR; } } -} - - -class HTTP -{ - function HTTP($host, $username, $password, $port, $ssl, $theme) - { - $this->ssl = $ssl ? 'ssl://' : ''; - $this->username = $username; - $this->password = $password; - $this->theme = $theme; - $this->auth = base64_encode($username . ':' . $password); - $this->port = $port; - $this->host = $host; - $this->path = '/frontend/' . $theme . '/'; - } - - function getData($url, $data = '') - { - $url = $this->path . $url; - if (is_array($data)) { - $url = $url . '?'; - foreach ($data as $key => $value) { - $url .= urlencode($key) . '=' . urlencode($value) . '&'; - } - $url = substr($url, 0, -1); - } - - $response = ''; - $fp = fsockopen($this->ssl . $this->host, $this->port); - if (!$fp) { - return false; - } - - $out = 'GET ' . $url . ' HTTP/1.0' . "\r\n"; - $out .= 'Authorization: Basic ' . $this->auth . "\r\n"; - $out .= 'Connection: Close' . "\r\n\r\n"; - fwrite($fp, $out); - while (!feof($fp)) { - $response .= @fgets($fp); - } - fclose($fp); - return $response; - } -} - - -class emailAccount -{ - function emailAccount($host, $username, $password, $port, $ssl, $theme, $address) - { - $this->HTTP = new HTTP($host, $username, $password, $port, $ssl, $theme); - if (strpos($address, '@')) { - list($this->email, $this->domain) = explode('@', $address); - } - else { - list($this->email, $this->domain) = array($address, ''); - } - } /** * Change email account password @@ -101,16 +49,24 @@ class emailAccount * @param string $password email account password * @return bool */ - function setPassword($password) + function setPassword($address, $password) { - $data['email'] = $this->email; - $data['domain'] = $this->domain; + if (strpos($address, '@')) { + list($data['email'], $data['domain']) = explode('@', $address); + } + else { + list($data['email'], $data['domain']) = array($address, ''); + } + $data['password'] = $password; - $response = $this->HTTP->getData('mail/dopasswdpop.html', $data); - if (strpos($response, 'success') && !strpos($response, 'failure')) { + $query = $this->xmlapi->api2_query($this->cuser, 'Email', 'passwdpop', $data); + $query = json_decode($query, true); + + if ($query['cpanelresult']['data'][0]['result'] == 1) { return true; } + return false; } } diff --git a/plugins/password/localization/nl_NL.inc b/plugins/password/localization/nl_NL.inc index c2c4599bc..e5b634602 100644 --- a/plugins/password/localization/nl_NL.inc +++ b/plugins/password/localization/nl_NL.inc @@ -17,21 +17,21 @@ */ $labels = array(); -$labels['changepasswd'] = 'Wijzig Wachtwoord'; -$labels['curpasswd'] = 'Huidig Wachtwoord:'; -$labels['newpasswd'] = 'Nieuw Wachtwoord:'; -$labels['confpasswd'] = 'Bevestig Nieuw Wachtwoord:'; +$labels['changepasswd'] = 'Wachtwoord wijzigen'; +$labels['curpasswd'] = 'Huidig wachtwoord:'; +$labels['newpasswd'] = 'Nieuw wachtwoord:'; +$labels['confpasswd'] = 'Bevestig nieuw wachtwoord:'; $messages = array(); -$messages['nopassword'] = 'Vul een wachtwoord in.'; -$messages['nocurpassword'] = 'vul het huidige wachtwoord in.'; +$messages['nopassword'] = 'Vul uw nieuwe wachtwoord in.'; +$messages['nocurpassword'] = 'Vul uw huidige wachtwoord in.'; $messages['passwordincorrect'] = 'Huidig wachtwoord is onjuist.'; $messages['passwordinconsistency'] = 'Wachtwoorden komen niet overeen, probeer het opnieuw.'; -$messages['crypterror'] = 'De server mist een functie om uw wachtwoord et beveiligen.'; -$messages['connecterror'] = 'Kan het nieuwe wachtwoord niet opslaan. Verbindingsfout.'; -$messages['internalerror'] = 'Uw wachtwoord kan niet worden opgeslagen.'; +$messages['crypterror'] = 'Nieuwe wachtwoord kan niet opgeslagen worden; de server mist een versleutelfunctie.'; +$messages['connecterror'] = 'Nieuwe wachtwoord kan niet opgeslagen worden; verbindingsfout.'; +$messages['internalerror'] = 'Uw nieuwe wachtwoord kan niet worden opgeslagen.'; $messages['passwordshort'] = 'Het wachtwoord moet minimaal $length tekens lang zijn.'; -$messages['passwordweak'] = 'Het wachtwoord moet minimaal één nummer en één leesteken bevatten.'; +$messages['passwordweak'] = 'Het wachtwoord moet minimaal één cijfer en één leesteken bevatten.'; $messages['passwordforbidden'] = 'Het wachtwoord bevat tekens die niet toegestaan zijn.'; ?> diff --git a/plugins/password/package.xml b/plugins/password/package.xml index 9a056dec6..be917917f 100644 --- a/plugins/password/package.xml +++ b/plugins/password/package.xml @@ -15,9 +15,9 @@ <email>alec@alec.pl</email> <active>yes</active> </lead> - <date>2012-11-15</date> + <date>2013-03-30</date> <version> - <release>3.2</release> + <release>3.3</release> <api>2.0</api> </version> <stability> @@ -26,8 +26,7 @@ </stability> <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> <notes> -- Fix wrong (non-specific) error message on crypt or connection error (#1488808) -- Added option to define IMAP hosts that support password changes - password_hosts +Added new cPanel driver - fixes localization related issues (#1487015) </notes> <contents> <dir baseinstalldir="/" name="/"> @@ -347,5 +346,21 @@ - Added Samba password (#1488364) </notes> </release> + <release> + <date>2012-11-15</date> + <version> + <release>3.2</release> + <api>2.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> + <notes> +- Fix wrong (non-specific) error message on crypt or connection error (#1488808) +- Added option to define IMAP hosts that support password changes - password_hosts + </notes> + </release> </changelog> </package> diff --git a/plugins/userinfo/localization/nl_NL.inc b/plugins/userinfo/localization/nl_NL.inc index 8c636e700..8c46ca6c4 100644 --- a/plugins/userinfo/localization/nl_NL.inc +++ b/plugins/userinfo/localization/nl_NL.inc @@ -19,7 +19,7 @@ $labels = array(); $labels['userinfo'] = 'Gebruikersinformatie'; $labels['created'] = 'Aangemaakt'; -$labels['lastlogin'] = 'Laatste login'; +$labels['lastlogin'] = 'Laatste aanmelding'; $labels['defaultidentity'] = 'Standaardidentiteit'; ?>
\ No newline at end of file diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php index 675eb7c1b..9e3dc9071 100644 --- a/plugins/virtuser_query/virtuser_query.php +++ b/plugins/virtuser_query/virtuser_query.php @@ -59,7 +59,7 @@ class virtuser_query extends rcube_plugin { $dbh = $this->get_dbh(); - $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->config['email'])); + $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['email'])); while ($sql_arr = $dbh->fetch_array($sql_result)) { if (strpos($sql_arr[0], '@')) { @@ -78,8 +78,9 @@ class virtuser_query extends rcube_plugin $result[] = $sql_arr[0]; } - if ($p['first']) + if ($p['first']) { break; + } } } @@ -95,7 +96,7 @@ class virtuser_query extends rcube_plugin { $dbh = $this->get_dbh(); - $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escapeSimple($p['email']), $this->config['user'])); + $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escape($p['email']), $this->config['user'])); if ($sql_arr = $dbh->fetch_array($sql_result)) { $p['user'] = $sql_arr[0]; @@ -111,7 +112,7 @@ class virtuser_query extends rcube_plugin { $dbh = $this->get_dbh(); - $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->config['host'])); + $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['host'])); if ($sql_arr = $dbh->fetch_array($sql_result)) { $p['host'] = $sql_arr[0]; |