Verified Commit 94efe70a authored by Luc Didry's avatar Luc Didry
Browse files

🔀 Merge branch 'development'

parents a7bb4140 c5984553
Revision history for Lufi
?.??.? ????-??-??
- 🔧 Set default morbo port to 3000 (as it should have stay)
- 🐛 Fix `Notification not defined` in Duckduckgo browser (Fix #224 again)
- ✨ Add `disable_mail_sending` config parameter
- 🌐 Update translations
0.05.13 2021-01-28
- 🐛 Fix latest git tag improperly fetched
......
......@@ -10,7 +10,7 @@ LOCAL_LDAP_PORT ?= 10389
LOCAL_SWIFT_PORT ?= 8080
SWIFT_CONTAINER_IMAGE ?= swiftstack/picoswiftstack:latest
MORBO_HOST ?= 0.0.0.0
MORBO_PORT ?= 3030
MORBO_PORT ?= 3000
locales:
......
......@@ -232,7 +232,7 @@ sub startup {
# Submit mail
$r->post('/m')
->to('Mail#send_mail');
->to('Mail#send_mail') unless $self->config('disable_mail_sending');
# Upload files websocket
$r->websocket('/upload')
......
......@@ -17,6 +17,7 @@ our $default_config = {
how => 'sendmail'
},
mail_sender => 'no-reply@lufi.io',
disable_mail_sending => 0,
theme => 'default',
upload_dir => 'files',
session_duration => 3600,
......
......@@ -166,6 +166,10 @@
# optional, default to no-reply@lufi.io
#mail_sender => 'no-reply@lufi.io',
# Disable sending mail through the server
# optional, default is false
#disable_mail_sending => 0,
#############
# DB settings
#############
......
......@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: 2020-05-30 12:24+0000\n"
"Last-Translator: ButterflyOfFire <butterflyoffire@protonmail.com>\n"
"PO-Revision-Date: 2021-03-02 18:14+0000\n"
"Last-Translator: zer0-x <1rn0kmrwo@relay.firefox.com>\n"
"Language-Team: Arabic <https://weblate.framasoft.org/projects/lufi/"
"default-theme/ar/>\n"
"Language: ar\n"
......@@ -15,49 +15,49 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 3.11.2\n"
"X-Generator: Weblate 4.4.2\n"
#. ($delay)
#. (max_delay)
#: themes/default/templates/index.html.ep:56 themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:66
msgid "%1 days"
msgstr "%1 أيام"
msgstr "زَمَن %1 يَوم"
#. (stash('ldap_user')
#: themes/default/templates/invitations/invite.mail.ep:2
msgid "%1 invites you to send him/her files"
msgstr "لقد دعاك %1 لكي ترسل له ملفات"
msgstr "يَدعُوكَ %1 لإرسالِ المَلَفَّاتِ إليه"
#. (stash('ldap_user')
#: themes/default/templates/invitations/invite.mail.ep:6
msgid "%1 invites you to send him/her files through Lufi."
msgstr "لقد دعاك %1 لكي ترسل له ملفات عبر لوفي."
msgstr "يَدعُوكَ %1 لإرسالِ المَلَفَّاتِ إلَيه عَبرَ لُوفي."
#. (stash('invitation')
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
msgid "%1 sent you files"
msgstr "أرسل إليك %1 ملفات"
msgstr "لَقَد أرسَلَ %1 مَلَفَّاتٍ إليك"
#. (stash('invitation')
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
msgid "%1 used your invitation to send you files:"
msgstr "لقد استخدم %1 دعوتك ليرسل لك ملفات:"
msgstr "لَقَد اِستَخدَمَ %1 دَعوَتَكَ لإرسالِ المَلَفَّاتِ إليك:"
#: lib/Lufi/Controller/Invitation.pm:159 lib/Lufi/Controller/Invitation.pm:84 themes/default/templates/invitations/my_invitations.html.ep:51 themes/default/templates/invitations/my_invitations.html.ep:52 themes/default/templates/invitations/my_invitations.html.ep:53 themes/default/templates/invitations/notification_files_sent.mail.ep:12
msgid "%A %d %B %Y at %T"
msgstr "%A %d %B %Y على %T"
msgstr "%A %d %B %Y عَلَى %T"
#: themes/default/templates/partial/index.js.ep:27
msgid "(max size: XXX)"
msgstr "(الحجم الأقصى: XXX)"
msgstr "(الحَجمُ الأقصَى: XXX)"
#: themes/default/templates/index.html.ep:5
msgid "1 year"
msgstr "سنة واحدة"
msgstr "سَنَةٌ واحِدَةٌ"
#: themes/default/templates/index.html.ep:4 themes/default/templates/index.html.ep:65
msgid "24 hours"
msgstr "24 ساعة"
msgstr "زَمَن 24 ساعَة"
#: themes/default/templates/partial/mail.js.ep:40
msgid ":"
......@@ -65,31 +65,35 @@ msgstr ":"
#: themes/default/templates/render.html.ep:42
msgid "Abort"
msgstr "إلغاء"
msgstr "إجهَاض"
#: themes/default/templates/layouts/default.html.ep:53 themes/default/templates/layouts/default.html.ep:86
msgid "About"
msgstr "عن البرنامج"
msgstr "حَول"
#: themes/default/templates/index.html.ep:107
msgid "Add a password to file(s)"
msgstr "إضافة كلمة سرية إلى الملف"
msgstr "إضافَةُ كَلِمَةُ مُرُورٍ إلى المَلَفَّات"
#: themes/default/templates/mail.html.ep:16
msgid ""
"Adding URLs not related to this Lufi instance to the mail body or subject is "
"prohibited."
msgstr "يُحظر إضافة رابط غير مرتبط بسيرفر Lufi هذا في نص البريد أو في الموضوع."
msgstr ""
"يُمنَعُ إضافَةُ رابِط غَيرُ مُرتَبِطٍ بِمَثِيلِ Lufi هَذَا فِي نَصِّ البَريدِ"
" أو مَوضُوعِه."
#: themes/default/templates/partial/invitations.js.ep:3
msgid "Are you sure you want to delete the selected invitations?"
msgstr "متأكد أنك تريد حذف كافة الدعوات المختارة؟"
msgstr "هَل أنتَ مُتَأكِّدٌ مِن رَغبَتِكَ فِي حَذفِ الدَّعَواتِ المُحَدَّدَة؟"
#: themes/default/templates/partial/invitations.js.ep:4
msgid ""
"Are you sure you want to resend the invitation mail for the selected "
"invitations?"
msgstr "هل أنت متأكد أنك تريد إعادة إرسال الدعوة البريدية للدعوات المختارة؟"
msgstr ""
"هَل أنتَ مُتَأكِّدٌ مِن رَغبَتِكَ فِي إعادَةِ إرسالِ الدَّعَوَة البَريديَّة "
"لِلدَعَوَات المُحَدَّدَة؟"
#: themes/default/templates/about.html.ep:17
msgid ""
......@@ -102,31 +106,31 @@ msgstr ""
#. (stash('nbslices')
#: themes/default/templates/partial/render.js.ep:9
msgid "Asking for file part XX1 of %1"
msgstr "طلب الجزء XX1 مِن %1"
msgstr "يَجري طَلَبُ جُزءِ المَلَفّ XX1 مِن %1"
#: themes/default/templates/about.html.ep:20
msgid "Back to homepage"
msgstr "العودة إلى الصفحة الرئيسة"
msgstr "العَودَةُ إلى الصَّفحَةِ الرَّئِيسَة"
#: lib/Lufi/Controller/Mail.pm:25
msgid "Bad CSRF token!"
msgstr "رمز CSRF خاطئ!"
msgstr "رَمزُ CSRF غَيرُ صَالِح!"
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
msgid "Bad CSRF token."
msgstr "رمز CSRF خاطئ."
msgstr "رَمزُ CSRF غَيرُ صَالِح."
#: themes/default/templates/partial/render.js.ep:5
msgid "Click here to refresh the page and restart the download."
msgstr "اضغط لتحديث الصفحة و إعادة التنزيل."
msgstr "اِضغَط لِتَحدِيثِ الصَّفحَة وَإِعادَةِ التَّنزِيل."
#: themes/default/templates/invitations/invite.mail.ep:8
msgid "Click on the following URL to upload files on Lufi:"
msgstr "اضغط على الربط التالي قصد تحميل ملفات على لوفي :"
msgstr "اِضغَط عَلَى عُنوَانِ URL التَّالِي قَصدُ رَفعِ مَلَفَّاتٍ عَلَى لوفي:"
#: themes/default/templates/index.html.ep:126
msgid "Click to open the file browser"
msgstr "اضغط لفتح متصفح الملفات"
msgstr "اِضغَط لِفَتحِ مُتَصَفِّحِ المَلَفَّات"
#: themes/default/templates/delays.html.ep:38 themes/default/templates/invitations/my_invitations.html.ep:80
msgid "Close"
......@@ -134,79 +138,82 @@ msgstr "إغلاق"
#: themes/default/templates/mail.html.ep:23
msgid "Comma-separated email addresses"
msgstr "عناوين البريد الإلكترونية مُقسّمة بفاصلة"
msgstr "عَنَاوِينُ البَريدِ الإلكتُرونِيِّ مُقَسَّمَةٌ-بِفَوَاصِلِ"
#: themes/default/templates/index.html.ep:140
msgid "Compressing zip file…"
msgstr "جارٍ ضغط ملف zip…"
msgstr "يَجري ضَغطُ مَلَفِّ zip…"
#: themes/default/templates/partial/index.js.ep:15
msgid "Copy all links to clipboard"
msgstr "نسخ كافة الروابط إلى الحافظة"
msgstr "نَسخُ جَميعِ الرَّوابِطِ إلى الحافِظَة"
#: themes/default/templates/partial/index.js.ep:18
msgid "Copy to clipboard"
msgstr "انسخ إلى الحافظة"
msgstr "النَّسخُ إلى الحافِظَة"
#: lib/Lufi/Controller/Files.pm:507
msgid "Could not delete the file. You are not authenticated."
msgstr "لا يمكن حذف الملف. إنك لم تقم بتسجيل الدخول."
msgstr "يَتَعَذَّرُ حَذفُ المَلَفّ. أَنتَ غَيرُ مُصَدَّق."
#: lib/Lufi/Controller/Files.pm:489
msgid "Could not find the file. Are you sure of the URL and the token?"
msgstr "تعذر العثور على الملف. هل أنت متأكد من الرابط والرمز؟"
msgstr ""
"يَتَعَذَّرُ حَذفُ المَلَفّ. هَل أنتَ مُتَأَكِّدٌ مِن عُنوانِ URL وَالرَّمز؟"
#: lib/Lufi/Controller/Files.pm:400
msgid "Could not find the file. Are you sure of the URL?"
msgstr "لا يمكن العثور على الملفات. متأكد مٍن الرابط؟"
msgstr ""
"يَتَعَذَّرُ العُثُورُ عَلَى المَلَفّ. هَل أنتَ مُتَأَكِّدٌ مِن عُنوانِ URL؟"
#: themes/default/templates/files.html.ep:29
msgid "Counter"
msgstr "العداد"
msgstr "العَدَّاد"
#: themes/default/templates/index.html.ep:100
msgid "Create a zip archive with the files before uploading?"
msgstr "هل تريد إنشاء ملف مضغوط يحوي هذه الملفات قبل تحميلها؟"
msgstr "إنشاءُ أرشيفِ zip مِنَ المَلَفَّاتِ قَبلَ الرَّفع؟"
#: themes/default/templates/invitations/my_invitations.html.ep:26
msgid "Created at"
msgstr "أنشئ في"
msgstr "أُنشِئ فِي"
#: themes/default/templates/invitations/my_invitations.html.ep:14
msgid "Delete"
msgstr "حذف"
msgstr "حَذف"
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
msgid "Delete at first download?"
msgstr "هل تريد أن يُحذَف الملف عند أول تنزيل؟"
msgstr "الحَذفُ عِندَ أوَّلِ تَنزيل؟"
#: themes/default/templates/files.html.ep:19
msgid "Delete selected files"
msgstr "حذف الملفات التي تم اختيارها"
msgstr "حَذفُ المَلَفَّاتِ المُحَدَّدَة"
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
msgid "Deletion link"
msgstr "رابط الحذف"
msgstr "رابِطُ الحَذف"
#: themes/default/templates/delays.html.ep:8
msgid ""
"Don't worry: if a user begins to download the file before the expiration and "
"the download ends after the expiration, he will be able to get the file."
msgstr ""
"لا تقلق: إذا بدأ المستخدم في تنزيل الملف قبل انتهاء صلاحيته وانتهت عملية "
"التنزيل بعد انتهاء صلاحيته ، فسيتمكن من الحصول على الملف."
"لا تَقلَق: إذا بَدَأ المُستخدِمُ فِي تَنزيلِ المَلَفِّ قَبلَ اِنتِهاءِ "
"الصَّلاحِيَّة ثُمَّ اِنتَهَى التَّنزِيلُ بَعدَ اِنتِهاءِ الصَّلاحِيَّة، "
"فَسَوفَ يَكُونُ قادِرًا عَلَى الحُصُولِ عَلَى المَلَفّ."
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
msgid "Download"
msgstr "تنزيل"
msgstr "تَنزِيل"
#: themes/default/templates/partial/render.js.ep:4
msgid "Download aborted."
msgstr "لقد ألغِيَ التنزيل."
msgstr "أُجهِضَ التَّنزيل."
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
msgid "Download link"
msgstr "رابط التنزيل"
msgstr "رابِط التَّنزيل"
#: themes/default/templates/about.html.ep:10
msgid ""
......@@ -222,7 +229,7 @@ msgstr ""
#: themes/default/templates/index.html.ep:122
msgid "Drop files here"
msgstr "قم بوضع الملفات هنا"
msgstr "اِرمِ المَلَفَّاتَ هُنَا"
#: themes/default/templates/invitations/invite.html.ep:40
msgid "Email address of your guest"
......@@ -945,10 +952,11 @@ msgstr "تم تنزيل الملف"
#: themes/default/templates/about.html.ep:17
msgid "As Lufi is a free software licensed under of the terms of the <a href=\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, you can install it on you own server. Have a look on the <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> for the procedure."
msgstr ""
"Lufi هو برنامج حر مرخص بموجب شروط <a href=\"https://gnu.org/licenses/agpl."
"html\" class=\"classic\"> AGPLv3</a> يمكنك تثبيته على خادمك الخاص. إلقي نظرة "
"على <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home\" "
"class=\"classic\"> الويكي</a> للتعرّف على كيفية القيام بذلك."
"بِما أنَّ لوفي هُوَ بَرنامَجٌ حُرٌّ مُرَخَصٌّ بِمُوجَبِ شُرُوطِ <a href="
"\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a> يُمكِنُكَ"
" تَثبيته عَلَى خادِمِكَ الخاصّ. ألق نَظرَةً عَلَى <a href=\"https://framagit."
"org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">الويكي</a> "
"لِفِعلِ ذَلِك."
#: themes/default/templates/about.html.ep:20
msgid "Version"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: 2020-11-21 12:52+0000\n"
"PO-Revision-Date: 2021-05-26 15:15+0000\n"
"Last-Translator: Dimitris T. <dimitris@stinpriza.org>\n"
"Language-Team: Greek <https://weblate.framasoft.org/projects/lufi/"
"default-theme/el/>\n"
......@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1\n"
"X-Generator: Weblate 4.6.2\n"
#. ($delay)
#. (max_delay)
......@@ -96,7 +96,7 @@ msgstr ""
#. (stash('nbslices')
#: themes/default/templates/partial/render.js.ep:10
msgid "Asking for file part XX1 of %1"
msgstr ""
msgstr "Ζητώντας το μέρος αρχείου XX1 από %1"
#: themes/default/templates/about.html.ep:23
msgid "Back to homepage"
......@@ -129,7 +129,7 @@ msgstr "Κλείσιμο"
#: themes/default/templates/mail.html.ep:23
msgid "Comma-separated email addresses"
msgstr ""
msgstr "διευθύνσεις email, χωρισμένες με κόμμα"
#: themes/default/templates/index.html.ep:140
msgid "Compressing zip file…"
......@@ -145,7 +145,7 @@ msgstr ""
#: lib/Lufi/Controller/Files.pm:501
msgid "Could not delete the file. You are not authenticated."
msgstr ""
msgstr "Δεν μπορεί να διαγραφεί το αρχείο. Δεν είστε πιστοποιημένος/η."
#: lib/Lufi/Controller/Files.pm:483
msgid "Could not find the file. Are you sure of the URL and the token?"
......@@ -162,6 +162,8 @@ msgstr "Μετρητής"
#: themes/default/templates/index.html.ep:100
msgid "Create a zip archive with the files before uploading?"
msgstr ""
"Θέλετε να δημιουργήσετε ένα συμπιεσμένο αρχείο zip με τα αρχεία πριν τα "
"ανεβάσετε;"
#: themes/default/templates/invitations/my_invitations.html.ep:26
msgid "Created at"
......@@ -193,7 +195,7 @@ msgstr "Μεταφόρτωση"
#: themes/default/templates/partial/render.js.ep:4
msgid "Download aborted."
msgstr ""
msgstr "Ακύρωση μεταφόρτωσης."
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
msgid "Download link"
......@@ -229,7 +231,7 @@ msgstr "Κρυπτογράφηση μέρους XX1 από XX2"
#: lib/Lufi/Controller/Files.pm:283
msgid "Error: the file existed but was deleted."
msgstr ""
msgstr "Μήνυμα λάθους: το αρχείο υπήρχε αλλά διαγράφηκε"
#: lib/Lufi/Controller/Files.pm:363
msgid "Error: the file has not been sent entirely."
......@@ -361,7 +363,7 @@ msgstr ""
#: themes/default/templates/index.html.ep:53
msgid "Important: more information on delays"
msgstr ""
msgstr "Σημαντικό: περισσότερες πληροφορίες για καθυστερήσεις"
#: themes/default/templates/delays.html.ep:5
msgid "Information about delays"
......@@ -379,7 +381,7 @@ msgstr ""
#. ($invitation->guest_mail, $url)
#: lib/Lufi/Controller/Invitation.pm:87
msgid "Invitation sent to %1.<br> URL: %2"
msgstr ""
msgstr "Η πρόσκληση στάλθηκε στο %1.<br> URL: %2"
#: themes/default/templates/invitations/invite.html.ep:27 themes/default/templates/layouts/default.html.ep:36 themes/default/templates/layouts/default.html.ep:69
msgid "Invite a guest"
......@@ -534,7 +536,7 @@ msgstr ""
#: themes/default/templates/invitations/my_invitations.html.ep:13 themes/default/templates/partial/invitations.js.ep:9
msgid "Show hidden invitations"
msgstr ""
msgstr "Προβολή κρυφών προσκλήσεων"
#: themes/default/templates/partial/render.js.ep:12
msgid "Show zip content"
......@@ -542,7 +544,7 @@ msgstr "Προβολή περιεχομένων zip"
#: themes/default/templates/layouts/default.html.ep:40 themes/default/templates/layouts/default.html.ep:73 themes/default/templates/login.html.ep:28 themes/default/templates/logout.html.ep:17
msgid "Signin"
msgstr ""
msgstr "Είσοδος"
#: lib/Lufi/Controller/Invitation.pm:283 themes/default/templates/invitations/exception.html.ep:16
msgid "Sorry, the invitation doesn’t exist. Are you sure you are on the right URL?"
......@@ -580,7 +582,7 @@ msgstr ""
#: themes/default/templates/partial/files.js.ep:11
msgid "The data has been successfully imported."
msgstr ""
msgstr "Τα δεδομένα έχουν εισαχθεί επιτυχώς."
#: lib/Lufi/Controller/Mail.pm:73
msgid "The email body can't be empty."
......@@ -657,6 +659,8 @@ msgstr ""
#: lib/Lufi/Controller/Files.pm:289
msgid "This file has been deactivated by the admins. Contact them to know why."
msgstr ""
"Αυτό το αρχείο έχει απανεργοποιηθεί από τους διαχειριστές. Επικοινωνήστε "
"μαζί τους για να μάθετε το λόγο."
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
msgid "This invitation is normally hidden"
......@@ -701,7 +705,7 @@ msgstr ""
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
msgid "Upload files"
msgstr ""
msgstr "Μεταφόρτωση αρχείων"
#: themes/default/templates/index.html.ep:145
msgid "Upload generated zip file"
......@@ -765,7 +769,7 @@ msgstr ""
#: themes/default/templates/logout.html.ep:14
msgid "You have been successfully logged out."
msgstr ""
msgstr "Έχετε αποσυνδεθεί επιτυχώς."
#: lib/Lufi/Controller/Mail.pm:71
msgid "You must give email addresses."
......
function notify(title, body) {
if (!'Notification' in window) {
if (!'Notification' in window || typeof(Notification) === 'undefined') {
console.log("This browser does not support desktop notification, cannot send following message: "+title+" "+body);
return;
}
......@@ -16,7 +16,7 @@ function notify(title, body) {
}
document.addEventListener('DOMContentLoaded', function () {
if (!'Notification' in window) {
if (!'Notification' in window || typeof(Notification) === 'undefined') {
return;
}
......
......@@ -43,7 +43,9 @@
% }
</textarea>
</div>
<button type="submit" class="btn btn-info"><%= l('Send with this server') %></button>
% if (!$self->config('disable_mail_sending')) {
<button type="submit" class="btn btn-info"><%= l('Send with this server') %></button>
% }
<a href="#" class="btn btn-primary" id="mailto"><%= l('Send with your own mail software') %></a>
</form>
<div>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment