diff options
429 files changed, 2659 insertions, 3565 deletions
diff --git a/apps/admin_audit/l10n/de.js b/apps/admin_audit/l10n/de.js index a1a76aee7b6..fadf5a18e91 100644 --- a/apps/admin_audit/l10n/de.js +++ b/apps/admin_audit/l10n/de.js @@ -1,7 +1,7 @@ OC.L10N.register( "admin_audit", { - "Auditing / Logging" : "Auditieren / Protokollieren", + "Auditing / Logging" : "Auditieren/Protokollieren", "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Stellt Protokollierungsfunktionen für Nextcloud zur Verfügung wie Dateizugriffe oder andere vertrauliche Aktionen." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/admin_audit/l10n/de.json b/apps/admin_audit/l10n/de.json index 7a55fd1457a..7dbf404aa65 100644 --- a/apps/admin_audit/l10n/de.json +++ b/apps/admin_audit/l10n/de.json @@ -1,5 +1,5 @@ { "translations": { - "Auditing / Logging" : "Auditieren / Protokollieren", + "Auditing / Logging" : "Auditieren/Protokollieren", "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Stellt Protokollierungsfunktionen für Nextcloud zur Verfügung wie Dateizugriffe oder andere vertrauliche Aktionen." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php b/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php index 2064136c392..b8892cc6219 100644 --- a/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php +++ b/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php @@ -89,15 +89,25 @@ class ContactInteractionListener implements IEventListener { $uid = $event->getUid(); $email = $event->getEmail(); $federatedCloudId = $event->getFederatedCloudId(); - $existing = $this->mapper->findMatch( + + $existingContact = $this->cardSearchDao->findExisting( + $event->getActor(), + $uid, + $email, + $federatedCloudId); + if ($existingContact !== null) { + return; + } + + $existingRecentlyContacted = $this->mapper->findMatch( $event->getActor(), $uid, $email, $federatedCloudId ); - if (!empty($existing)) { + if (!empty($existingRecentlyContacted)) { $now = $this->timeFactory->getTime(); - foreach ($existing as $c) { + foreach ($existingRecentlyContacted as $c) { $c->setLastContact($now); $this->mapper->update($c); } @@ -117,29 +127,8 @@ class ContactInteractionListener implements IEventListener { $contact->setFederatedCloudId($federatedCloudId); } $contact->setLastContact($this->timeFactory->getTime()); + $contact->setCard($this->generateCard($contact)); - $copy = $this->cardSearchDao->findExisting( - $event->getActor(), - $uid, - $email, - $federatedCloudId - ); - if ($copy !== null) { - try { - $parsed = Reader::read($copy, Reader::OPTION_FORGIVING); - $parsed->CATEGORIES = $this->l10n->t('Recently contacted'); - $contact->setCard($parsed->serialize()); - } catch (Throwable $e) { - $this->logger->warning( - 'Could not parse card to add recent category: ' . $e->getMessage(), - [ - 'exception' => $e, - ]); - $contact->setCard($copy); - } - } else { - $contact->setCard($this->generateCard($contact)); - } $this->mapper->insert($contact); }, $this->dbConnection); } diff --git a/apps/dav/l10n/ar.js b/apps/dav/l10n/ar.js index 14e11887a73..b5ab55abef6 100644 --- a/apps/dav/l10n/ar.js +++ b/apps/dav/l10n/ar.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "رفض", "More options …" : "مزيد مِن الخيارات…", "More options at %s" : "خيارات أخرى في %s", + "In a meeting" : "في اجتماع", "Contacts" : "المُراسِلون", "{actor} created address book {addressbook}" : "{actor} أنشأ دفتر العناوين {addressbook}", "You created address book {addressbook}" : "أنت أنشأت دفتر العناوين {addressbook}", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "النقطة الحدّيّة endpoint لـ WebDAV", "First day" : "أوّل يومٍ", + "Last day (inclusive)" : "آخر يوم (مشمولاً)", + "Short absence status" : "حالة الغياب القصير", + "Long absence Message" : "رسالة الغياب الطويل", "Save" : "حفظ", + "Disable absence" : "تعطيل الغياب", + "Failed to save your absence settings" : "تعذّر حفظ إعداداتك للغياب", + "Failed to clear your absence settings" : "تعذّر محو إعداداتك للغياب", "Time zone:" : "منطقة زمنية:", "to" : "إلى", "Delete slot" : "حذف فُرَضَةٍ slot زمنيّةٍ", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "الجمعة", "Saturday" : "السبت", "Sunday" : "الأحد", + "Pick a start time for {dayName}" : "إختَر وقت البدء ليوم {dayName}", + "Pick a end time for {dayName}" : "إختَر وقت الانتهاء ليوم {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "قم بتعيين حالة المستخدم تلقائيًا على \"عدم الإزعاج\" خارج نطاق أوقات التوافر لكتم جميع الإشعارات", "Failed to load availability" : "إخفاق في تحميل أوقات التوافر", "Saved availability" : "تمّ حفظ أوقات التوافر", "Failed to save availability" : "إخفاق في حفظ أوقات التواجد", "Availability" : "أوقات التواجد availability", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "إذا قمت بتهيئة ساعات العمل الخاصة بك، فسيظهر للمستخدمين الآخرين عندما يحجزون معك موعداً إذا ما كنت في المكتب أو خارجه.", + "Absence" : "غياب", + "Configure your next absence period." : "قٌم بتهيئة فترة غيابك القادمة.", "Calendar server" : "خادوم التقويم", "Send invitations to attendees" : "إرسال دعوات للمُستهدفين بالحُضُُور", "Automatically generate a birthday calendar" : "تجاهل تقويم أعياد الميلاد تلقائيّاً", diff --git a/apps/dav/l10n/ar.json b/apps/dav/l10n/ar.json index ed14d1619d4..38fb3f67baa 100644 --- a/apps/dav/l10n/ar.json +++ b/apps/dav/l10n/ar.json @@ -91,6 +91,7 @@ "Decline" : "رفض", "More options …" : "مزيد مِن الخيارات…", "More options at %s" : "خيارات أخرى في %s", + "In a meeting" : "في اجتماع", "Contacts" : "المُراسِلون", "{actor} created address book {addressbook}" : "{actor} أنشأ دفتر العناوين {addressbook}", "You created address book {addressbook}" : "أنت أنشأت دفتر العناوين {addressbook}", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "النقطة الحدّيّة endpoint لـ WebDAV", "First day" : "أوّل يومٍ", + "Last day (inclusive)" : "آخر يوم (مشمولاً)", + "Short absence status" : "حالة الغياب القصير", + "Long absence Message" : "رسالة الغياب الطويل", "Save" : "حفظ", + "Disable absence" : "تعطيل الغياب", + "Failed to save your absence settings" : "تعذّر حفظ إعداداتك للغياب", + "Failed to clear your absence settings" : "تعذّر محو إعداداتك للغياب", "Time zone:" : "منطقة زمنية:", "to" : "إلى", "Delete slot" : "حذف فُرَضَةٍ slot زمنيّةٍ", @@ -168,12 +175,16 @@ "Friday" : "الجمعة", "Saturday" : "السبت", "Sunday" : "الأحد", + "Pick a start time for {dayName}" : "إختَر وقت البدء ليوم {dayName}", + "Pick a end time for {dayName}" : "إختَر وقت الانتهاء ليوم {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "قم بتعيين حالة المستخدم تلقائيًا على \"عدم الإزعاج\" خارج نطاق أوقات التوافر لكتم جميع الإشعارات", "Failed to load availability" : "إخفاق في تحميل أوقات التوافر", "Saved availability" : "تمّ حفظ أوقات التوافر", "Failed to save availability" : "إخفاق في حفظ أوقات التواجد", "Availability" : "أوقات التواجد availability", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "إذا قمت بتهيئة ساعات العمل الخاصة بك، فسيظهر للمستخدمين الآخرين عندما يحجزون معك موعداً إذا ما كنت في المكتب أو خارجه.", + "Absence" : "غياب", + "Configure your next absence period." : "قٌم بتهيئة فترة غيابك القادمة.", "Calendar server" : "خادوم التقويم", "Send invitations to attendees" : "إرسال دعوات للمُستهدفين بالحُضُُور", "Automatically generate a birthday calendar" : "تجاهل تقويم أعياد الميلاد تلقائيّاً", diff --git a/apps/dav/l10n/bg.js b/apps/dav/l10n/bg.js index b6688e41b97..b59369fdb94 100644 --- a/apps/dav/l10n/bg.js +++ b/apps/dav/l10n/bg.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Отхвърляне", "More options …" : "Още опции ...", "More options at %s" : "Още опции при %s", + "In a meeting" : "В среща", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} създаде адресна книга {addressbook}", "You created address book {addressbook}" : "Вие създадохте адресна книга {addressbook}", diff --git a/apps/dav/l10n/bg.json b/apps/dav/l10n/bg.json index bb8e313bc63..317e3424a7a 100644 --- a/apps/dav/l10n/bg.json +++ b/apps/dav/l10n/bg.json @@ -91,6 +91,7 @@ "Decline" : "Отхвърляне", "More options …" : "Още опции ...", "More options at %s" : "Още опции при %s", + "In a meeting" : "В среща", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} създаде адресна книга {addressbook}", "You created address book {addressbook}" : "Вие създадохте адресна книга {addressbook}", diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js index 9fbbedeb790..a478e915ab6 100644 --- a/apps/dav/l10n/ca.js +++ b/apps/dav/l10n/ca.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Rebutja", "More options …" : "Més opcions…", "More options at %s" : "Més opcions a %s", + "In a meeting" : "En una reunió", "Contacts" : "Contactes", "{actor} created address book {addressbook}" : "{actor} ha creat la llibreta d'adreces {addressbook}", "You created address book {addressbook}" : "Heu creat la llibreta d'adreces {addressbook}", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "Extrem WebDAV", "First day" : "Primer dia", + "Last day (inclusive)" : "Darrer dia (inclòs)", + "Short absence status" : "Estat d'absència breu", + "Long absence Message" : "Missatge d'absència llarga", "Save" : "Desa", + "Disable absence" : "Inhabilita l'absència", + "Failed to save your absence settings" : "No s'han pogut desar els paràmetres de l'absència", + "Failed to clear your absence settings" : "No s'han pogut esborrar els paràmetres de l'absència", "Time zone:" : "Fus horari:", "to" : "a", "Delete slot" : "Suprimeix la franja", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "Divendres", "Saturday" : "Dissabte", "Sunday" : "Diumenge", + "Pick a start time for {dayName}" : "Trieu una hora d'inici per a {dayName}", + "Pick a end time for {dayName}" : "Trieu una hora de finalització per a {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estableix automàticament l'estat de l'usuari com a «No molesteu» fora de la disponibilitat per a silenciar totes les notificacions", "Failed to load availability" : "No s'ha pogut carregar la disponibilitat", "Saved availability" : "S'ha desat la disponibilitat", "Failed to save availability" : "No s'ha pogut desar la disponibilitat", "Availability" : "Disponibilitat", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta d'usuaris veuran quan sou fora de l'oficina quan planifiquin una reunió.", + "Absence" : "Absència", + "Configure your next absence period." : "Configureu el pròxim període d'absència.", "Calendar server" : "Servidor de calendari", "Send invitations to attendees" : "Envia invitacions als assistents", "Automatically generate a birthday calendar" : "Genera automàticament un calendari d’aniversaris", diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json index 98f96f59c55..6d7778bac1d 100644 --- a/apps/dav/l10n/ca.json +++ b/apps/dav/l10n/ca.json @@ -91,6 +91,7 @@ "Decline" : "Rebutja", "More options …" : "Més opcions…", "More options at %s" : "Més opcions a %s", + "In a meeting" : "En una reunió", "Contacts" : "Contactes", "{actor} created address book {addressbook}" : "{actor} ha creat la llibreta d'adreces {addressbook}", "You created address book {addressbook}" : "Heu creat la llibreta d'adreces {addressbook}", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "Extrem WebDAV", "First day" : "Primer dia", + "Last day (inclusive)" : "Darrer dia (inclòs)", + "Short absence status" : "Estat d'absència breu", + "Long absence Message" : "Missatge d'absència llarga", "Save" : "Desa", + "Disable absence" : "Inhabilita l'absència", + "Failed to save your absence settings" : "No s'han pogut desar els paràmetres de l'absència", + "Failed to clear your absence settings" : "No s'han pogut esborrar els paràmetres de l'absència", "Time zone:" : "Fus horari:", "to" : "a", "Delete slot" : "Suprimeix la franja", @@ -168,12 +175,16 @@ "Friday" : "Divendres", "Saturday" : "Dissabte", "Sunday" : "Diumenge", + "Pick a start time for {dayName}" : "Trieu una hora d'inici per a {dayName}", + "Pick a end time for {dayName}" : "Trieu una hora de finalització per a {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estableix automàticament l'estat de l'usuari com a «No molesteu» fora de la disponibilitat per a silenciar totes les notificacions", "Failed to load availability" : "No s'ha pogut carregar la disponibilitat", "Saved availability" : "S'ha desat la disponibilitat", "Failed to save availability" : "No s'ha pogut desar la disponibilitat", "Availability" : "Disponibilitat", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta d'usuaris veuran quan sou fora de l'oficina quan planifiquin una reunió.", + "Absence" : "Absència", + "Configure your next absence period." : "Configureu el pròxim període d'absència.", "Calendar server" : "Servidor de calendari", "Send invitations to attendees" : "Envia invitacions als assistents", "Automatically generate a birthday calendar" : "Genera automàticament un calendari d’aniversaris", diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js index 84ec5947406..6a397ae0c49 100644 --- a/apps/dav/l10n/cs.js +++ b/apps/dav/l10n/cs.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Odmítnout", "More options …" : "Další volby…", "More options at %s" : "Další volby viz %s", + "In a meeting" : "Na poradě", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} vytvořil(a) adresář kontaktů {addressbook}", "You created address book {addressbook}" : "Vytvořili jste adresář kontaktů {addressbook}", @@ -148,6 +149,7 @@ OC.L10N.register( "Completed on %s" : "Dokončeno %s", "Due on %s by %s" : "Termín do %s od %s", "Due on %s" : "Termín do %s", + "DAV system address book" : "Systémový DAV adresář kontaktů", "No outstanding DAV system address book sync." : "Žádná zbývající synchronizace systémového DAV adresáře kontaktů.", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "Systémová DAV synchronizace adresářů kontaktů ještě nebyla spuštěná protože vámi využívaná instance má více než 1 000 uživatelů nebo protože došlo k chybě\\\\ DAV spusťte ji ručně příkazem occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Přesunut kalendář (%1$s)", @@ -156,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV endpoint", "First day" : "První den", + "Last day (inclusive)" : "Poslední den (včetně)", + "Short absence status" : "Stav krátké nepřítomnosti", + "Long absence Message" : "Zpráva pro dlouhou nepřítomnost", "Save" : "Uložit", + "Disable absence" : "Vypnout nepřítomnost", + "Failed to save your absence settings" : "Nepodařilo se uložit nastavení vaší nepřítomnosti", + "Failed to clear your absence settings" : "Nepodařilo se vymazat nastavení vaší nepřítomnosti", "Time zone:" : "Časové pásmo:", "to" : "do", "Delete slot" : "Smazat slot", @@ -169,12 +177,16 @@ OC.L10N.register( "Friday" : "pátek", "Saturday" : "sobota", "Sunday" : "neděle", + "Pick a start time for {dayName}" : "Vyberte začátek pro {dayName}", + "Pick a end time for {dayName}" : "Vyberte konec pro {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "V době, kdy není k dispozici, automaticky nastavit stav uživatele jako „Nerušit“ a ztlumit tak veškerá upozornění pro něho.", "Failed to load availability" : "Nepodařilo se načíst dostupnost", "Saved availability" : "Uložena dostupnost", "Failed to save availability" : "Nepodařilo se uložit dostupnost", "Availability" : "Dostupnost", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní uživatelé při rezervování schůzky uvidí, kdy jste mimo kancelář.", + "Absence" : "Nepřítomnost", + "Configure your next absence period." : "Nastavte období své nepřítomnosti.", "Calendar server" : "Kalendářový server", "Send invitations to attendees" : "Poslat účastníkům pozvánky", "Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami", diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json index 410c15a4807..6db10445393 100644 --- a/apps/dav/l10n/cs.json +++ b/apps/dav/l10n/cs.json @@ -91,6 +91,7 @@ "Decline" : "Odmítnout", "More options …" : "Další volby…", "More options at %s" : "Další volby viz %s", + "In a meeting" : "Na poradě", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} vytvořil(a) adresář kontaktů {addressbook}", "You created address book {addressbook}" : "Vytvořili jste adresář kontaktů {addressbook}", @@ -146,6 +147,7 @@ "Completed on %s" : "Dokončeno %s", "Due on %s by %s" : "Termín do %s od %s", "Due on %s" : "Termín do %s", + "DAV system address book" : "Systémový DAV adresář kontaktů", "No outstanding DAV system address book sync." : "Žádná zbývající synchronizace systémového DAV adresáře kontaktů.", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "Systémová DAV synchronizace adresářů kontaktů ještě nebyla spuštěná protože vámi využívaná instance má více než 1 000 uživatelů nebo protože došlo k chybě\\\\ DAV spusťte ji ručně příkazem occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Přesunut kalendář (%1$s)", @@ -154,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV endpoint", "First day" : "První den", + "Last day (inclusive)" : "Poslední den (včetně)", + "Short absence status" : "Stav krátké nepřítomnosti", + "Long absence Message" : "Zpráva pro dlouhou nepřítomnost", "Save" : "Uložit", + "Disable absence" : "Vypnout nepřítomnost", + "Failed to save your absence settings" : "Nepodařilo se uložit nastavení vaší nepřítomnosti", + "Failed to clear your absence settings" : "Nepodařilo se vymazat nastavení vaší nepřítomnosti", "Time zone:" : "Časové pásmo:", "to" : "do", "Delete slot" : "Smazat slot", @@ -167,12 +175,16 @@ "Friday" : "pátek", "Saturday" : "sobota", "Sunday" : "neděle", + "Pick a start time for {dayName}" : "Vyberte začátek pro {dayName}", + "Pick a end time for {dayName}" : "Vyberte konec pro {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "V době, kdy není k dispozici, automaticky nastavit stav uživatele jako „Nerušit“ a ztlumit tak veškerá upozornění pro něho.", "Failed to load availability" : "Nepodařilo se načíst dostupnost", "Saved availability" : "Uložena dostupnost", "Failed to save availability" : "Nepodařilo se uložit dostupnost", "Availability" : "Dostupnost", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní uživatelé při rezervování schůzky uvidí, kdy jste mimo kancelář.", + "Absence" : "Nepřítomnost", + "Configure your next absence period." : "Nastavte období své nepřítomnosti.", "Calendar server" : "Kalendářový server", "Send invitations to attendees" : "Poslat účastníkům pozvánky", "Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami", diff --git a/apps/dav/l10n/da.js b/apps/dav/l10n/da.js index ddfd2e028ec..0fc766ac9fd 100644 --- a/apps/dav/l10n/da.js +++ b/apps/dav/l10n/da.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Afvis", "More options …" : "Flere indstillinger…", "More options at %s" : "Flere muligheder på %s", + "In a meeting" : "I møde", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} oprettede adressebog {addressbook}", "You created address book {addressbook}" : "Du oprettede adressebog {addressbook}", diff --git a/apps/dav/l10n/da.json b/apps/dav/l10n/da.json index eb24753735d..8989c5120d5 100644 --- a/apps/dav/l10n/da.json +++ b/apps/dav/l10n/da.json @@ -91,6 +91,7 @@ "Decline" : "Afvis", "More options …" : "Flere indstillinger…", "More options at %s" : "Flere muligheder på %s", + "In a meeting" : "I møde", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} oprettede adressebog {addressbook}", "You created address book {addressbook}" : "Du oprettede adressebog {addressbook}", diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index 9d4dfae6af8..9f64c7f12e1 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Ablehnen", "More options …" : "Weitere Optionen …", "More options at %s" : "Weitere Optionen unter %s", + "In a meeting" : "In einer Besprechung", "Contacts" : "Kontakte", "{actor} created address book {addressbook}" : "{actor} hat das Adressbuch {addressbook} erstellt", "You created address book {addressbook}" : "Du hast das Adressbuch {addressbook} erstellt", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV-Endpunkt", "First day" : "Erster Tag", + "Last day (inclusive)" : "Letzter Tag (Inklusive)", + "Short absence status" : "Kurze Abwesenheits Meldung", + "Long absence Message" : "Lange Abwesenheits Meldung", "Save" : "Speichern", + "Disable absence" : "Abwesenheitmeldungen deaktivieren", + "Failed to save your absence settings" : "Deine Abwesenheitseinstellungen konnten nicht gespeichert werden.", + "Failed to clear your absence settings" : "Deine Abwesenheitseinstellungen konnten nicht gelöscht werden.", "Time zone:" : "Zeitzone:", "to" : "an", "Delete slot" : "Slot löschen", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "Freitag", "Saturday" : "Samstag", "Sunday" : "Sonntag", + "Pick a start time for {dayName}" : "Eine Startzeit für {name} wählen", + "Pick a end time for {dayName}" : "Eine Endezeit für {name} wählen", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setze den Benutzerstatus automatisch auf „Nicht stören“, wenn du nicht erreichbar bist, um alle Benachrichtigungen stumm zu schalten.", "Failed to load availability" : "Fehler beim Laden der Verfügbarkeit", "Saved availability" : "Verfügbarkeit gespeichert", "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Availability" : "Verfügbarkeit", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten konfigurierst, können andere Benutzer sehen, wann du nicht im Büro bist, wenn sie eine Besprechung buchen.", + "Absence" : "Abwesenheit", + "Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer senden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index 10812141664..e68f08bd2cf 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -91,6 +91,7 @@ "Decline" : "Ablehnen", "More options …" : "Weitere Optionen …", "More options at %s" : "Weitere Optionen unter %s", + "In a meeting" : "In einer Besprechung", "Contacts" : "Kontakte", "{actor} created address book {addressbook}" : "{actor} hat das Adressbuch {addressbook} erstellt", "You created address book {addressbook}" : "Du hast das Adressbuch {addressbook} erstellt", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV-Endpunkt", "First day" : "Erster Tag", + "Last day (inclusive)" : "Letzter Tag (Inklusive)", + "Short absence status" : "Kurze Abwesenheits Meldung", + "Long absence Message" : "Lange Abwesenheits Meldung", "Save" : "Speichern", + "Disable absence" : "Abwesenheitmeldungen deaktivieren", + "Failed to save your absence settings" : "Deine Abwesenheitseinstellungen konnten nicht gespeichert werden.", + "Failed to clear your absence settings" : "Deine Abwesenheitseinstellungen konnten nicht gelöscht werden.", "Time zone:" : "Zeitzone:", "to" : "an", "Delete slot" : "Slot löschen", @@ -168,12 +175,16 @@ "Friday" : "Freitag", "Saturday" : "Samstag", "Sunday" : "Sonntag", + "Pick a start time for {dayName}" : "Eine Startzeit für {name} wählen", + "Pick a end time for {dayName}" : "Eine Endezeit für {name} wählen", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setze den Benutzerstatus automatisch auf „Nicht stören“, wenn du nicht erreichbar bist, um alle Benachrichtigungen stumm zu schalten.", "Failed to load availability" : "Fehler beim Laden der Verfügbarkeit", "Saved availability" : "Verfügbarkeit gespeichert", "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Availability" : "Verfügbarkeit", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten konfigurierst, können andere Benutzer sehen, wann du nicht im Büro bist, wenn sie eine Besprechung buchen.", + "Absence" : "Abwesenheit", + "Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer senden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js index 7611a8f149d..37adb8f2f54 100644 --- a/apps/dav/l10n/de_DE.js +++ b/apps/dav/l10n/de_DE.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Ablehnen", "More options …" : "Weitere Optionen …", "More options at %s" : "Weitere Optionen unter %s", + "In a meeting" : "In einer Besprechung", "Contacts" : "Kontakte", "{actor} created address book {addressbook}" : "{actor} hat das Adressbuch {addressbook} erstellt", "You created address book {addressbook}" : "Sie haben das Adressbuch {addressbook} erstellt", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV-Endpunkt", "First day" : "Erster Tag", + "Last day (inclusive)" : "Letzter Tag (Inklusiv)", + "Short absence status" : "Kurzer Abwesenheitsstaus", + "Long absence Message" : "Lange Abwesenheitsstatus", "Save" : "Speichern", + "Disable absence" : "Abwesenheit deaktivieren", + "Failed to save your absence settings" : "Ihre Abwesenheitseinstellungen konnten nicht gespeichert werden", + "Failed to clear your absence settings" : "Ihre Abwesenheitseinstellungen konnten nicht gelöscht werden", "Time zone:" : "Zeitzone:", "to" : "an", "Delete slot" : "Zeitfenster löschen", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "Freitag", "Saturday" : "Samstag", "Sunday" : "Sonntag", + "Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen", + "Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setzen Sie den Benutzerstatus wenn Sie nicht erreichbar sind automatisch auf „Nicht stören“, um alle Benachrichtigungen stumm zu schalten.", "Failed to load availability" : "Laden der Verfügbarkeit fehlgeschlagen", "Saved availability" : "Verfügbarkeit gespeichert", "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Availability" : "Verfügbarkeit", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten konfigurieren, können andere Benutzer sehen, wann Sie nicht im Büro sind, wenn sie eine Besprechung buchen.", + "Absence" : "Abwesenheit", + "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json index a3e936c404f..417526a3b7c 100644 --- a/apps/dav/l10n/de_DE.json +++ b/apps/dav/l10n/de_DE.json @@ -91,6 +91,7 @@ "Decline" : "Ablehnen", "More options …" : "Weitere Optionen …", "More options at %s" : "Weitere Optionen unter %s", + "In a meeting" : "In einer Besprechung", "Contacts" : "Kontakte", "{actor} created address book {addressbook}" : "{actor} hat das Adressbuch {addressbook} erstellt", "You created address book {addressbook}" : "Sie haben das Adressbuch {addressbook} erstellt", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV-Endpunkt", "First day" : "Erster Tag", + "Last day (inclusive)" : "Letzter Tag (Inklusiv)", + "Short absence status" : "Kurzer Abwesenheitsstaus", + "Long absence Message" : "Lange Abwesenheitsstatus", "Save" : "Speichern", + "Disable absence" : "Abwesenheit deaktivieren", + "Failed to save your absence settings" : "Ihre Abwesenheitseinstellungen konnten nicht gespeichert werden", + "Failed to clear your absence settings" : "Ihre Abwesenheitseinstellungen konnten nicht gelöscht werden", "Time zone:" : "Zeitzone:", "to" : "an", "Delete slot" : "Zeitfenster löschen", @@ -168,12 +175,16 @@ "Friday" : "Freitag", "Saturday" : "Samstag", "Sunday" : "Sonntag", + "Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen", + "Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setzen Sie den Benutzerstatus wenn Sie nicht erreichbar sind automatisch auf „Nicht stören“, um alle Benachrichtigungen stumm zu schalten.", "Failed to load availability" : "Laden der Verfügbarkeit fehlgeschlagen", "Saved availability" : "Verfügbarkeit gespeichert", "Failed to save availability" : "Fehler beim Speichern der Verfügbarkeit", "Availability" : "Verfügbarkeit", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten konfigurieren, können andere Benutzer sehen, wann Sie nicht im Büro sind, wenn sie eine Besprechung buchen.", + "Absence" : "Abwesenheit", + "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein", "Calendar server" : "Kalender-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", "Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen", diff --git a/apps/dav/l10n/el.js b/apps/dav/l10n/el.js index 1c42ba3fd48..d750f56e81c 100644 --- a/apps/dav/l10n/el.js +++ b/apps/dav/l10n/el.js @@ -64,6 +64,7 @@ OC.L10N.register( "Decline" : "Απόρριψη", "More options …" : "Περισσότερες επιλογές...", "More options at %s" : "Περισσότερες επιλογές στο %s", + "In a meeting" : "Σε συνάντηση", "Contacts" : "Επαφές", "You created contact {card} in address book {addressbook}" : "Δημιουργήσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}", "You deleted contact {card} from address book {addressbook}" : "Διαγράψατε την επαφή {card} από το βιβλίο διευθύνσεων {addressbook}", diff --git a/apps/dav/l10n/el.json b/apps/dav/l10n/el.json index 82db5d09a69..0848556a0b6 100644 --- a/apps/dav/l10n/el.json +++ b/apps/dav/l10n/el.json @@ -62,6 +62,7 @@ "Decline" : "Απόρριψη", "More options …" : "Περισσότερες επιλογές...", "More options at %s" : "Περισσότερες επιλογές στο %s", + "In a meeting" : "Σε συνάντηση", "Contacts" : "Επαφές", "You created contact {card} in address book {addressbook}" : "Δημιουργήσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}", "You deleted contact {card} from address book {addressbook}" : "Διαγράψατε την επαφή {card} από το βιβλίο διευθύνσεων {addressbook}", diff --git a/apps/dav/l10n/en_GB.js b/apps/dav/l10n/en_GB.js index ac6d32df403..2556b191ead 100644 --- a/apps/dav/l10n/en_GB.js +++ b/apps/dav/l10n/en_GB.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Decline", "More options …" : "More options …", "More options at %s" : "More options at %s", + "In a meeting" : "In a meeting", "Contacts" : "Contacts", "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}", "You created address book {addressbook}" : "You created address book {addressbook}", diff --git a/apps/dav/l10n/en_GB.json b/apps/dav/l10n/en_GB.json index 5c6923f8586..7a386ae0f78 100644 --- a/apps/dav/l10n/en_GB.json +++ b/apps/dav/l10n/en_GB.json @@ -91,6 +91,7 @@ "Decline" : "Decline", "More options …" : "More options …", "More options at %s" : "More options at %s", + "In a meeting" : "In a meeting", "Contacts" : "Contacts", "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}", "You created address book {addressbook}" : "You created address book {addressbook}", diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js index 60fe152cfa9..454bfc3a126 100644 --- a/apps/dav/l10n/es.js +++ b/apps/dav/l10n/es.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Rechazar", "More options …" : "Más opciones...", "More options at %s" : "Más opciones en %s", + "In a meeting" : "En una reunión", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} ha creado la libreta de direcciones {addressbook}", "You created address book {addressbook}" : "Has creado la libreta de direcciones {adressbook}", diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json index d531a6849d6..28769ab0e67 100644 --- a/apps/dav/l10n/es.json +++ b/apps/dav/l10n/es.json @@ -91,6 +91,7 @@ "Decline" : "Rechazar", "More options …" : "Más opciones...", "More options at %s" : "Más opciones en %s", + "In a meeting" : "En una reunión", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} ha creado la libreta de direcciones {addressbook}", "You created address book {addressbook}" : "Has creado la libreta de direcciones {adressbook}", diff --git a/apps/dav/l10n/es_EC.js b/apps/dav/l10n/es_EC.js index 23191174abb..be04c27b007 100644 --- a/apps/dav/l10n/es_EC.js +++ b/apps/dav/l10n/es_EC.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Declinar", "More options …" : "Más opciones...", "More options at %s" : "Más opciones en %s", + "In a meeting" : "En una reunión", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} creó la libreta de direcciones {addressbook}", "You created address book {addressbook}" : "Creaste la libreta de direcciones {addressbook}", diff --git a/apps/dav/l10n/es_EC.json b/apps/dav/l10n/es_EC.json index 9a54c5f3a10..27b2cd38811 100644 --- a/apps/dav/l10n/es_EC.json +++ b/apps/dav/l10n/es_EC.json @@ -91,6 +91,7 @@ "Decline" : "Declinar", "More options …" : "Más opciones...", "More options at %s" : "Más opciones en %s", + "In a meeting" : "En una reunión", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} creó la libreta de direcciones {addressbook}", "You created address book {addressbook}" : "Creaste la libreta de direcciones {addressbook}", diff --git a/apps/dav/l10n/eu.js b/apps/dav/l10n/eu.js index cc4bec66465..3c62ebf6db5 100644 --- a/apps/dav/l10n/eu.js +++ b/apps/dav/l10n/eu.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Uko egin", "More options …" : "Aukera gehiago …", "More options at %s" : "Aukera gehiago hemen %s ", + "In a meeting" : "Bilera batean", "Contacts" : "Kontaktuak", "{actor} created address book {addressbook}" : "{actor}-(e)k {addressbook} helbide-liburua sortu du ", "You created address book {addressbook}" : "{addressbook} helbide-liburua sortu duzu", diff --git a/apps/dav/l10n/eu.json b/apps/dav/l10n/eu.json index dc8cbbb3f00..0310036cc75 100644 --- a/apps/dav/l10n/eu.json +++ b/apps/dav/l10n/eu.json @@ -91,6 +91,7 @@ "Decline" : "Uko egin", "More options …" : "Aukera gehiago …", "More options at %s" : "Aukera gehiago hemen %s ", + "In a meeting" : "Bilera batean", "Contacts" : "Kontaktuak", "{actor} created address book {addressbook}" : "{actor}-(e)k {addressbook} helbide-liburua sortu du ", "You created address book {addressbook}" : "{addressbook} helbide-liburua sortu duzu", diff --git a/apps/dav/l10n/fa.js b/apps/dav/l10n/fa.js index d06612a9679..f636faf7092 100644 --- a/apps/dav/l10n/fa.js +++ b/apps/dav/l10n/fa.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "کاهش می یابد", "More options …" : "More options …", "More options at %s" : "More options at %s", + "In a meeting" : "در جلسه", "Contacts" : "مخاطبین", "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}", "You created address book {addressbook}" : "You created address book {addressbook}", diff --git a/apps/dav/l10n/fa.json b/apps/dav/l10n/fa.json index f3f389e0099..8371ce6c9b6 100644 --- a/apps/dav/l10n/fa.json +++ b/apps/dav/l10n/fa.json @@ -91,6 +91,7 @@ "Decline" : "کاهش می یابد", "More options …" : "More options …", "More options at %s" : "More options at %s", + "In a meeting" : "در جلسه", "Contacts" : "مخاطبین", "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}", "You created address book {addressbook}" : "You created address book {addressbook}", diff --git a/apps/dav/l10n/fi.js b/apps/dav/l10n/fi.js index aaae8934ecc..ed7b4235c0b 100644 --- a/apps/dav/l10n/fi.js +++ b/apps/dav/l10n/fi.js @@ -72,6 +72,7 @@ OC.L10N.register( "Decline" : "Kieltäydy", "More options …" : "Lisää valintoja…", "More options at %s" : "Lisää valintoja kohteessa %s", + "In a meeting" : "Tapaamisessa", "Contacts" : "Yhteystiedot", "{actor} created address book {addressbook}" : "{actor} loi osoitekirjan {addressbook}", "You created address book {addressbook}" : "Loit osoitekirjan {addressbook}", diff --git a/apps/dav/l10n/fi.json b/apps/dav/l10n/fi.json index c9f48513b0c..186479c3563 100644 --- a/apps/dav/l10n/fi.json +++ b/apps/dav/l10n/fi.json @@ -70,6 +70,7 @@ "Decline" : "Kieltäydy", "More options …" : "Lisää valintoja…", "More options at %s" : "Lisää valintoja kohteessa %s", + "In a meeting" : "Tapaamisessa", "Contacts" : "Yhteystiedot", "{actor} created address book {addressbook}" : "{actor} loi osoitekirjan {addressbook}", "You created address book {addressbook}" : "Loit osoitekirjan {addressbook}", diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js index 1f61c2365d2..432633872ff 100644 --- a/apps/dav/l10n/fr.js +++ b/apps/dav/l10n/fr.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Refuser", "More options …" : "Plus d'options…", "More options at %s" : "Plus d'options à %s", + "In a meeting" : "En réunion", "Contacts" : "Contacts", "{actor} created address book {addressbook}" : "{actor} a créé le carnet d'adresses {addressbook}", "You created address book {addressbook}" : "Vous avez créé le carnet d'adresses {addressbook}", diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json index 1a119b969e0..f8a4f8e3be4 100644 --- a/apps/dav/l10n/fr.json +++ b/apps/dav/l10n/fr.json @@ -91,6 +91,7 @@ "Decline" : "Refuser", "More options …" : "Plus d'options…", "More options at %s" : "Plus d'options à %s", + "In a meeting" : "En réunion", "Contacts" : "Contacts", "{actor} created address book {addressbook}" : "{actor} a créé le carnet d'adresses {addressbook}", "You created address book {addressbook}" : "Vous avez créé le carnet d'adresses {addressbook}", diff --git a/apps/dav/l10n/gl.js b/apps/dav/l10n/gl.js index f33c7304049..40728fb2298 100644 --- a/apps/dav/l10n/gl.js +++ b/apps/dav/l10n/gl.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Declinar", "More options …" : "Máis opcións…", "More options at %s" : "Máis opcións en %s", + "In a meeting" : "Nunha xuntanza", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} creou o caderno de enderezos {addressbook}", "You created address book {addressbook}" : "Vde. creou o caderno de enderezos {addressbook}", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "Terminación WebDAV", "First day" : "Primeiro día", + "Last day (inclusive)" : "Último día (inclusive)", + "Short absence status" : "Estado de ausencia breve", + "Long absence Message" : "Mensaxe de ausencia longa", "Save" : "Gardar", + "Disable absence" : "Desactivar a ausencia", + "Failed to save your absence settings" : "Produciuse un fallo ao gardar os axustes de ausencia", + "Failed to clear your absence settings" : "Produciuse un fallo ao limpar os axustes de ausencia", "Time zone:" : "Fuso horario:", "to" : "para", "Delete slot" : "Eliminar franxa horaria", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "venres", "Saturday" : "sábado", "Sunday" : "domingo", + "Pick a start time for {dayName}" : "Escolla unha hora de inicio para {dayName}", + "Pick a end time for {dayName}" : "Escolla unha hora de finalización para {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estabelecer automaticamente o estado do usuario en «Non molestar» fóra de dispoñibilidade para silenciar todas as notificacións.", "Failed to load availability" : "Produciuse un erro ao cargar a dispoñibilidade", "Saved availability" : "Dispoñibilidade gardada", "Failed to save availability" : "Produciuse un erro ao gardar a dispoñibilidade", "Availability" : "Dispoñibilidade", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outros usuarios verán cando está fóra da oficina cando reserven unha xuntanza.", + "Absence" : "Ausencia", + "Configure your next absence period." : "Configurar o próximo período de ausencia.", "Calendar server" : "Servidor do calendario", "Send invitations to attendees" : "Enviar convites aos asistentes", "Automatically generate a birthday calendar" : "Xerar automaticamente o calendario de aniversarios", diff --git a/apps/dav/l10n/gl.json b/apps/dav/l10n/gl.json index cdc4e61c29c..434a270daf8 100644 --- a/apps/dav/l10n/gl.json +++ b/apps/dav/l10n/gl.json @@ -91,6 +91,7 @@ "Decline" : "Declinar", "More options …" : "Máis opcións…", "More options at %s" : "Máis opcións en %s", + "In a meeting" : "Nunha xuntanza", "Contacts" : "Contactos", "{actor} created address book {addressbook}" : "{actor} creou o caderno de enderezos {addressbook}", "You created address book {addressbook}" : "Vde. creou o caderno de enderezos {addressbook}", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "Terminación WebDAV", "First day" : "Primeiro día", + "Last day (inclusive)" : "Último día (inclusive)", + "Short absence status" : "Estado de ausencia breve", + "Long absence Message" : "Mensaxe de ausencia longa", "Save" : "Gardar", + "Disable absence" : "Desactivar a ausencia", + "Failed to save your absence settings" : "Produciuse un fallo ao gardar os axustes de ausencia", + "Failed to clear your absence settings" : "Produciuse un fallo ao limpar os axustes de ausencia", "Time zone:" : "Fuso horario:", "to" : "para", "Delete slot" : "Eliminar franxa horaria", @@ -168,12 +175,16 @@ "Friday" : "venres", "Saturday" : "sábado", "Sunday" : "domingo", + "Pick a start time for {dayName}" : "Escolla unha hora de inicio para {dayName}", + "Pick a end time for {dayName}" : "Escolla unha hora de finalización para {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estabelecer automaticamente o estado do usuario en «Non molestar» fóra de dispoñibilidade para silenciar todas as notificacións.", "Failed to load availability" : "Produciuse un erro ao cargar a dispoñibilidade", "Saved availability" : "Dispoñibilidade gardada", "Failed to save availability" : "Produciuse un erro ao gardar a dispoñibilidade", "Availability" : "Dispoñibilidade", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outros usuarios verán cando está fóra da oficina cando reserven unha xuntanza.", + "Absence" : "Ausencia", + "Configure your next absence period." : "Configurar o próximo período de ausencia.", "Calendar server" : "Servidor do calendario", "Send invitations to attendees" : "Enviar convites aos asistentes", "Automatically generate a birthday calendar" : "Xerar automaticamente o calendario de aniversarios", diff --git a/apps/dav/l10n/hr.js b/apps/dav/l10n/hr.js index cab2ebdacf1..24366c5c893 100644 --- a/apps/dav/l10n/hr.js +++ b/apps/dav/l10n/hr.js @@ -69,6 +69,7 @@ OC.L10N.register( "Decline" : "Odbij", "More options …" : "Više mogućnosti…", "More options at %s" : "Više mogućnosti na %s", + "In a meeting" : "Na sastanku", "Contacts" : "Kontakti", "{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}", "You created address book {addressbook}" : "Stvorili ste adresar {addressbook}", diff --git a/apps/dav/l10n/hr.json b/apps/dav/l10n/hr.json index de8d5d82370..13d61e58501 100644 --- a/apps/dav/l10n/hr.json +++ b/apps/dav/l10n/hr.json @@ -67,6 +67,7 @@ "Decline" : "Odbij", "More options …" : "Više mogućnosti…", "More options at %s" : "Više mogućnosti na %s", + "In a meeting" : "Na sastanku", "Contacts" : "Kontakti", "{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}", "You created address book {addressbook}" : "Stvorili ste adresar {addressbook}", diff --git a/apps/dav/l10n/hu.js b/apps/dav/l10n/hu.js index 46e6ccd9156..2b5b9d466af 100644 --- a/apps/dav/l10n/hu.js +++ b/apps/dav/l10n/hu.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Elutasítás", "More options …" : "További lehetőségek…", "More options at %s" : "További lehetőségek itt: %s", + "In a meeting" : "Találkozón", "Contacts" : "Névjegyek", "{actor} created address book {addressbook}" : "{actor} létrehozta a következő címjegyzéket: {addressbook}", "You created address book {addressbook}" : "Létrehozta a következő címjegyzéket: {addressbook}", diff --git a/apps/dav/l10n/hu.json b/apps/dav/l10n/hu.json index f7f0f9fd278..96e6053d86f 100644 --- a/apps/dav/l10n/hu.json +++ b/apps/dav/l10n/hu.json @@ -91,6 +91,7 @@ "Decline" : "Elutasítás", "More options …" : "További lehetőségek…", "More options at %s" : "További lehetőségek itt: %s", + "In a meeting" : "Találkozón", "Contacts" : "Névjegyek", "{actor} created address book {addressbook}" : "{actor} létrehozta a következő címjegyzéket: {addressbook}", "You created address book {addressbook}" : "Létrehozta a következő címjegyzéket: {addressbook}", diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js index bed4061c517..089b8a38cc7 100644 --- a/apps/dav/l10n/it.js +++ b/apps/dav/l10n/it.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Rifiuta", "More options …" : "Altre opzioni...", "More options at %s" : "Altre opzioni alle %s", + "In a meeting" : "In una riunione", "Contacts" : "Contatti", "{actor} created address book {addressbook}" : "{actor} ha creato la rubrica {addressbook}", "You created address book {addressbook}" : "Hai creato la rubrica {addressbook}", diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json index 22f1fa6e520..98608bf41dd 100644 --- a/apps/dav/l10n/it.json +++ b/apps/dav/l10n/it.json @@ -91,6 +91,7 @@ "Decline" : "Rifiuta", "More options …" : "Altre opzioni...", "More options at %s" : "Altre opzioni alle %s", + "In a meeting" : "In una riunione", "Contacts" : "Contatti", "{actor} created address book {addressbook}" : "{actor} ha creato la rubrica {addressbook}", "You created address book {addressbook}" : "Hai creato la rubrica {addressbook}", diff --git a/apps/dav/l10n/ja.js b/apps/dav/l10n/ja.js index 8489f58cd77..1dcd3457e77 100644 --- a/apps/dav/l10n/ja.js +++ b/apps/dav/l10n/ja.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "拒否", "More options …" : "他のオプション …", "More options at %s" : "%s のその他のオプション", + "In a meeting" : "会議中", "Contacts" : "連絡先", "{actor} created address book {addressbook}" : "{actor}がアドレス帳 {addressbook}を作成しました", "You created address book {addressbook}" : "アドレス帳 {addressbook}を作成しました", @@ -148,6 +149,7 @@ OC.L10N.register( "Completed on %s" : "%sに完了", "Due on %s by %s" : "期限日%s が%sにより設定", "Due on %s" : "期限日:%s", + "DAV system address book" : "DAVシステムアドレス帳", "No outstanding DAV system address book sync." : "DAVシステムアドレス帳の同期が完了していません。", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "あなたのインスタンスのユーザー数が1000人以上であるか、エラーが発生したため、DAVシステムアドレス帳の同期がまだ実行されていません。occ dav:sync-system-addressbook を呼び出して手動で実行してください。", "Migrated calendar (%1$s)" : "カレンダーを移行しました (%1$s)", @@ -155,7 +157,14 @@ OC.L10N.register( "Contacts and groups" : "連絡先とグループ", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAVエンドポイント", + "First day" : "初日", + "Last day (inclusive)" : "最終日(含む)", + "Short absence status" : "短い不在のステータス", + "Long absence Message" : "長期不在のメッセージ", "Save" : "保存", + "Disable absence" : "不在を無効にする", + "Failed to save your absence settings" : "不在設定の保存に失敗しました", + "Failed to clear your absence settings" : "不在設定の解除に失敗しました", "Time zone:" : "時間帯:", "to" : "宛先", "Delete slot" : "スロットを削除", @@ -168,12 +177,16 @@ OC.L10N.register( "Friday" : "金曜日", "Saturday" : "土曜日", "Sunday" : "日曜日", + "Pick a start time for {dayName}" : "{dayName} 開始時間を指定してください", + "Pick a end time for {dayName}" : "{dayName} の終了時間を指定してください", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "利用時間外は自動的にユーザーステータスを\"非通知\" に設定し、すべての通知をミュートします。", "Failed to load availability" : "可用性の読み込みに失敗", "Saved availability" : "可用性を保存しました", "Failed to save availability" : "可用性を保存しました", "Availability" : "応対可能日時", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。", + "Absence" : "不在", + "Configure your next absence period." : "次の不在期間を設定します。", "Calendar server" : "カレンダーサーバー", "Send invitations to attendees" : "参加者に招待状を送信する", "Automatically generate a birthday calendar" : "自動的に誕生日カレンダーを生成する", diff --git a/apps/dav/l10n/ja.json b/apps/dav/l10n/ja.json index c95cc47cb5c..4be012d3246 100644 --- a/apps/dav/l10n/ja.json +++ b/apps/dav/l10n/ja.json @@ -91,6 +91,7 @@ "Decline" : "拒否", "More options …" : "他のオプション …", "More options at %s" : "%s のその他のオプション", + "In a meeting" : "会議中", "Contacts" : "連絡先", "{actor} created address book {addressbook}" : "{actor}がアドレス帳 {addressbook}を作成しました", "You created address book {addressbook}" : "アドレス帳 {addressbook}を作成しました", @@ -146,6 +147,7 @@ "Completed on %s" : "%sに完了", "Due on %s by %s" : "期限日%s が%sにより設定", "Due on %s" : "期限日:%s", + "DAV system address book" : "DAVシステムアドレス帳", "No outstanding DAV system address book sync." : "DAVシステムアドレス帳の同期が完了していません。", "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "あなたのインスタンスのユーザー数が1000人以上であるか、エラーが発生したため、DAVシステムアドレス帳の同期がまだ実行されていません。occ dav:sync-system-addressbook を呼び出して手動で実行してください。", "Migrated calendar (%1$s)" : "カレンダーを移行しました (%1$s)", @@ -153,7 +155,14 @@ "Contacts and groups" : "連絡先とグループ", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAVエンドポイント", + "First day" : "初日", + "Last day (inclusive)" : "最終日(含む)", + "Short absence status" : "短い不在のステータス", + "Long absence Message" : "長期不在のメッセージ", "Save" : "保存", + "Disable absence" : "不在を無効にする", + "Failed to save your absence settings" : "不在設定の保存に失敗しました", + "Failed to clear your absence settings" : "不在設定の解除に失敗しました", "Time zone:" : "時間帯:", "to" : "宛先", "Delete slot" : "スロットを削除", @@ -166,12 +175,16 @@ "Friday" : "金曜日", "Saturday" : "土曜日", "Sunday" : "日曜日", + "Pick a start time for {dayName}" : "{dayName} 開始時間を指定してください", + "Pick a end time for {dayName}" : "{dayName} の終了時間を指定してください", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "利用時間外は自動的にユーザーステータスを\"非通知\" に設定し、すべての通知をミュートします。", "Failed to load availability" : "可用性の読み込みに失敗", "Saved availability" : "可用性を保存しました", "Failed to save availability" : "可用性を保存しました", "Availability" : "応対可能日時", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。", + "Absence" : "不在", + "Configure your next absence period." : "次の不在期間を設定します。", "Calendar server" : "カレンダーサーバー", "Send invitations to attendees" : "参加者に招待状を送信する", "Automatically generate a birthday calendar" : "自動的に誕生日カレンダーを生成する", diff --git a/apps/dav/l10n/ko.js b/apps/dav/l10n/ko.js index 8cc29f84514..85187824c7d 100644 --- a/apps/dav/l10n/ko.js +++ b/apps/dav/l10n/ko.js @@ -85,6 +85,7 @@ OC.L10N.register( "Decline" : "거절", "More options …" : "더 많은 옵션 …", "More options at %s" : "%s에 더 많은 옵션 있음", + "In a meeting" : "회의 중", "Contacts" : "연락처", "{actor} created address book {addressbook}" : "{actor}님이 주소록 {addressbook}을(를) 생성함", "You created address book {addressbook}" : "주소록 {addressbook}을(를) 생성함", diff --git a/apps/dav/l10n/ko.json b/apps/dav/l10n/ko.json index 6062c3d0787..4b3b3fee224 100644 --- a/apps/dav/l10n/ko.json +++ b/apps/dav/l10n/ko.json @@ -83,6 +83,7 @@ "Decline" : "거절", "More options …" : "더 많은 옵션 …", "More options at %s" : "%s에 더 많은 옵션 있음", + "In a meeting" : "회의 중", "Contacts" : "연락처", "{actor} created address book {addressbook}" : "{actor}님이 주소록 {addressbook}을(를) 생성함", "You created address book {addressbook}" : "주소록 {addressbook}을(를) 생성함", diff --git a/apps/dav/l10n/lt_LT.js b/apps/dav/l10n/lt_LT.js index 035a72ad522..b18c7f7445a 100644 --- a/apps/dav/l10n/lt_LT.js +++ b/apps/dav/l10n/lt_LT.js @@ -65,6 +65,7 @@ OC.L10N.register( "Accept" : "Priimti", "Decline" : "Atmesti", "More options …" : "Daugiau parinkčių…", + "In a meeting" : "Susitikime", "Contacts" : "Adresatai", "{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}", "You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}", diff --git a/apps/dav/l10n/lt_LT.json b/apps/dav/l10n/lt_LT.json index af9888b9b14..78c2a9a8c08 100644 --- a/apps/dav/l10n/lt_LT.json +++ b/apps/dav/l10n/lt_LT.json @@ -63,6 +63,7 @@ "Accept" : "Priimti", "Decline" : "Atmesti", "More options …" : "Daugiau parinkčių…", + "In a meeting" : "Susitikime", "Contacts" : "Adresatai", "{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}", "You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}", diff --git a/apps/dav/l10n/mk.js b/apps/dav/l10n/mk.js index 86b8abecbc6..86457cb1ad3 100644 --- a/apps/dav/l10n/mk.js +++ b/apps/dav/l10n/mk.js @@ -92,6 +92,7 @@ OC.L10N.register( "Decline" : "Одбиј", "More options …" : "Повеќе опции ...", "More options at %s" : "Повеќе опции на %s", + "In a meeting" : "На состанок", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} креираше адресар {addressbook}", "You created address book {addressbook}" : "Креиравте адресар {addressbook}", diff --git a/apps/dav/l10n/mk.json b/apps/dav/l10n/mk.json index 69dfd4c77a7..6a663104325 100644 --- a/apps/dav/l10n/mk.json +++ b/apps/dav/l10n/mk.json @@ -90,6 +90,7 @@ "Decline" : "Одбиј", "More options …" : "Повеќе опции ...", "More options at %s" : "Повеќе опции на %s", + "In a meeting" : "На состанок", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} креираше адресар {addressbook}", "You created address book {addressbook}" : "Креиравте адресар {addressbook}", diff --git a/apps/dav/l10n/nb.js b/apps/dav/l10n/nb.js index 1b11bc00c75..3bce93afb29 100644 --- a/apps/dav/l10n/nb.js +++ b/apps/dav/l10n/nb.js @@ -88,6 +88,7 @@ OC.L10N.register( "Decline" : "Avslå", "More options …" : "Flere alternativer ...", "More options at %s" : "Flere alternativer ved %s", + "In a meeting" : "I et møte", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} opprettet adresseboken {addressbook}", "You created address book {addressbook}" : "Du opprettet adresseboken {addressbook}", diff --git a/apps/dav/l10n/nb.json b/apps/dav/l10n/nb.json index fa3291da07d..be5a23aed43 100644 --- a/apps/dav/l10n/nb.json +++ b/apps/dav/l10n/nb.json @@ -86,6 +86,7 @@ "Decline" : "Avslå", "More options …" : "Flere alternativer ...", "More options at %s" : "Flere alternativer ved %s", + "In a meeting" : "I et møte", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} opprettet adresseboken {addressbook}", "You created address book {addressbook}" : "Du opprettet adresseboken {addressbook}", diff --git a/apps/dav/l10n/nl.js b/apps/dav/l10n/nl.js index 7aca4eb9dfc..287c32756dd 100644 --- a/apps/dav/l10n/nl.js +++ b/apps/dav/l10n/nl.js @@ -78,6 +78,7 @@ OC.L10N.register( "Decline" : "Afwijzen", "More options …" : "Meer opties …", "More options at %s" : "Meer opties op %s", + "In a meeting" : "In een vergadering", "Contacts" : "Contactpersonen", "{actor} created address book {addressbook}" : "{actor} creëerde adresboek {addressbook}", "You created address book {addressbook}" : "Je creëerde adresboek {addressbook}", diff --git a/apps/dav/l10n/nl.json b/apps/dav/l10n/nl.json index 9517d5edba1..dddae21bd5c 100644 --- a/apps/dav/l10n/nl.json +++ b/apps/dav/l10n/nl.json @@ -76,6 +76,7 @@ "Decline" : "Afwijzen", "More options …" : "Meer opties …", "More options at %s" : "Meer opties op %s", + "In a meeting" : "In een vergadering", "Contacts" : "Contactpersonen", "{actor} created address book {addressbook}" : "{actor} creëerde adresboek {addressbook}", "You created address book {addressbook}" : "Je creëerde adresboek {addressbook}", diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js index acdc2d6b9ae..0b79f943581 100644 --- a/apps/dav/l10n/pl.js +++ b/apps/dav/l10n/pl.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Odrzuć", "More options …" : "Więcej opcji…", "More options at %s" : "Więcej opcji na %s", + "In a meeting" : "Na spotkaniu", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} utworzył książkę adresową {addressbook}", "You created address book {addressbook}" : "Utworzyłeś książkę adresową {addressbook}", diff --git a/apps/dav/l10n/pl.json b/apps/dav/l10n/pl.json index 1c2a47e0788..b7089388347 100644 --- a/apps/dav/l10n/pl.json +++ b/apps/dav/l10n/pl.json @@ -91,6 +91,7 @@ "Decline" : "Odrzuć", "More options …" : "Więcej opcji…", "More options at %s" : "Więcej opcji na %s", + "In a meeting" : "Na spotkaniu", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} utworzył książkę adresową {addressbook}", "You created address book {addressbook}" : "Utworzyłeś książkę adresową {addressbook}", diff --git a/apps/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js index 5579810bab3..8f1c6ed864b 100644 --- a/apps/dav/l10n/pt_BR.js +++ b/apps/dav/l10n/pt_BR.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Rejeitar", "More options …" : "Mais opções...", "More options at %s" : "Mais opções em %s", + "In a meeting" : "Em reunião", "Contacts" : "Contatos", "{actor} created address book {addressbook}" : "{actor} criou o livro de endereço {addressbook}", "You created address book {addressbook}" : "Você criou o catálogo de endereços {addressbook}", diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json index 29eda1da992..0abf4e7eed1 100644 --- a/apps/dav/l10n/pt_BR.json +++ b/apps/dav/l10n/pt_BR.json @@ -91,6 +91,7 @@ "Decline" : "Rejeitar", "More options …" : "Mais opções...", "More options at %s" : "Mais opções em %s", + "In a meeting" : "Em reunião", "Contacts" : "Contatos", "{actor} created address book {addressbook}" : "{actor} criou o livro de endereço {addressbook}", "You created address book {addressbook}" : "Você criou o catálogo de endereços {addressbook}", diff --git a/apps/dav/l10n/ru.js b/apps/dav/l10n/ru.js index b03ac0aeb46..8df5c3e7c6b 100644 --- a/apps/dav/l10n/ru.js +++ b/apps/dav/l10n/ru.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Отклонить", "More options …" : "Дополнительные параметры…", "More options at %s" : "Дополнительные параметры на %s", + "In a meeting" : "На встрече", "Contacts" : "Контакты", "{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»", "You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»", diff --git a/apps/dav/l10n/ru.json b/apps/dav/l10n/ru.json index 75d5e2e9e21..7220a7792bb 100644 --- a/apps/dav/l10n/ru.json +++ b/apps/dav/l10n/ru.json @@ -91,6 +91,7 @@ "Decline" : "Отклонить", "More options …" : "Дополнительные параметры…", "More options at %s" : "Дополнительные параметры на %s", + "In a meeting" : "На встрече", "Contacts" : "Контакты", "{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»", "You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»", diff --git a/apps/dav/l10n/sc.js b/apps/dav/l10n/sc.js index c9c750db267..f7ef2162962 100644 --- a/apps/dav/l10n/sc.js +++ b/apps/dav/l10n/sc.js @@ -69,6 +69,7 @@ OC.L10N.register( "Decline" : "Refuda", "More options …" : "Àteras optziones ...", "More options at %s" : "Àteras optziones a is %s", + "In a meeting" : "In riunione", "Contacts" : "Cuntatos", "{actor} created address book {addressbook}" : "{actor} at creadu sa rubrica {addressbook}", "You created address book {addressbook}" : "As creadu sa rubrica {addressbook}", diff --git a/apps/dav/l10n/sc.json b/apps/dav/l10n/sc.json index 911e4654033..3340dc6e825 100644 --- a/apps/dav/l10n/sc.json +++ b/apps/dav/l10n/sc.json @@ -67,6 +67,7 @@ "Decline" : "Refuda", "More options …" : "Àteras optziones ...", "More options at %s" : "Àteras optziones a is %s", + "In a meeting" : "In riunione", "Contacts" : "Cuntatos", "{actor} created address book {addressbook}" : "{actor} at creadu sa rubrica {addressbook}", "You created address book {addressbook}" : "As creadu sa rubrica {addressbook}", diff --git a/apps/dav/l10n/sk.js b/apps/dav/l10n/sk.js index e3cc2a143dd..e06afa21561 100644 --- a/apps/dav/l10n/sk.js +++ b/apps/dav/l10n/sk.js @@ -86,6 +86,7 @@ OC.L10N.register( "Decline" : "Odmietnuť", "More options …" : "Ďalšie nastavenia ...", "More options at %s" : "Ďalšie nastavenia %s", + "In a meeting" : "Na schôdzke", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} vytvoril adresár {addressbook}", "You created address book {addressbook}" : "Vytvorili ste adresár {addressbook}", diff --git a/apps/dav/l10n/sk.json b/apps/dav/l10n/sk.json index 46ce51b6393..e27e093187f 100644 --- a/apps/dav/l10n/sk.json +++ b/apps/dav/l10n/sk.json @@ -84,6 +84,7 @@ "Decline" : "Odmietnuť", "More options …" : "Ďalšie nastavenia ...", "More options at %s" : "Ďalšie nastavenia %s", + "In a meeting" : "Na schôdzke", "Contacts" : "Kontakty", "{actor} created address book {addressbook}" : "{actor} vytvoril adresár {addressbook}", "You created address book {addressbook}" : "Vytvorili ste adresár {addressbook}", diff --git a/apps/dav/l10n/sl.js b/apps/dav/l10n/sl.js index 92f48a797c2..e09e354f782 100644 --- a/apps/dav/l10n/sl.js +++ b/apps/dav/l10n/sl.js @@ -92,6 +92,7 @@ OC.L10N.register( "Decline" : "Zavrni", "More options …" : "Več možnosti ...", "More options at %s" : "Več možnosti je na %s", + "In a meeting" : "Na sestanku", "Contacts" : "Stiki", "{actor} created address book {addressbook}" : "{actor} ustvari imenik {addressbook}", "You created address book {addressbook}" : "Ustvarite imenik {addressbook}", diff --git a/apps/dav/l10n/sl.json b/apps/dav/l10n/sl.json index 21395dd0aa2..b7585acc029 100644 --- a/apps/dav/l10n/sl.json +++ b/apps/dav/l10n/sl.json @@ -90,6 +90,7 @@ "Decline" : "Zavrni", "More options …" : "Več možnosti ...", "More options at %s" : "Več možnosti je na %s", + "In a meeting" : "Na sestanku", "Contacts" : "Stiki", "{actor} created address book {addressbook}" : "{actor} ustvari imenik {addressbook}", "You created address book {addressbook}" : "Ustvarite imenik {addressbook}", diff --git a/apps/dav/l10n/sr.js b/apps/dav/l10n/sr.js index 20a752319dd..c4e403271a3 100644 --- a/apps/dav/l10n/sr.js +++ b/apps/dav/l10n/sr.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Одбиј", "More options …" : "Још опција…", "More options at %s" : "Још опција на %s", + "In a meeting" : "На састанку", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} је креирао адресар {addressbook}", "You created address book {addressbook}" : "Креирали сте адресар {addressbook}", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV крајња тачка", "First day" : "Први дан", + "Last day (inclusive)" : "Последњи дан (укључујући и њега)", + "Short absence status" : "Кратак статус одсуства", + "Long absence Message" : "Дугачак статус одсуства", "Save" : "Сачувај", + "Disable absence" : "Искључи одсутност", + "Failed to save your absence settings" : "Није успело чување ваших поставки одсутности", + "Failed to clear your absence settings" : "Није успело брисање ваших поставки одсутности", "Time zone:" : "Временска зона:", "to" : "за", "Delete slot" : "Обриши прорез", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "Петак", "Saturday" : "Субота", "Sunday" : "Недеља", + "Pick a start time for {dayName}" : "Изаберите време почетка за {dayName}", + "Pick a end time for {dayName}" : "Изаберите време завршетка за {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Аутоматски поставља статус кориниска на „Не узнемиравај” како би се ван доступности пригушила сва обавештења.", "Failed to load availability" : "Доступност није могла да се учита", "Saved availability" : "Доступност је сачувана", "Failed to save availability" : "Није успело снимање доступности ", "Availability" : "Доступност", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Ако подесите своје радне сате, када буду заказивали састанак, остали корисници ће видети када сте ван канцеларије.", + "Absence" : "Одсутност", + "Configure your next absence period." : "Конфигуришите свој наредни период одсутности.", "Calendar server" : "Календар сервера", "Send invitations to attendees" : "Пошаљи позивницу учесницима", "Automatically generate a birthday calendar" : "Аутоматски изгенериши календар рођендана", diff --git a/apps/dav/l10n/sr.json b/apps/dav/l10n/sr.json index a4d653494ae..6a8399586b2 100644 --- a/apps/dav/l10n/sr.json +++ b/apps/dav/l10n/sr.json @@ -91,6 +91,7 @@ "Decline" : "Одбиј", "More options …" : "Још опција…", "More options at %s" : "Још опција на %s", + "In a meeting" : "На састанку", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} је креирао адресар {addressbook}", "You created address book {addressbook}" : "Креирали сте адресар {addressbook}", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV крајња тачка", "First day" : "Први дан", + "Last day (inclusive)" : "Последњи дан (укључујући и њега)", + "Short absence status" : "Кратак статус одсуства", + "Long absence Message" : "Дугачак статус одсуства", "Save" : "Сачувај", + "Disable absence" : "Искључи одсутност", + "Failed to save your absence settings" : "Није успело чување ваших поставки одсутности", + "Failed to clear your absence settings" : "Није успело брисање ваших поставки одсутности", "Time zone:" : "Временска зона:", "to" : "за", "Delete slot" : "Обриши прорез", @@ -168,12 +175,16 @@ "Friday" : "Петак", "Saturday" : "Субота", "Sunday" : "Недеља", + "Pick a start time for {dayName}" : "Изаберите време почетка за {dayName}", + "Pick a end time for {dayName}" : "Изаберите време завршетка за {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Аутоматски поставља статус кориниска на „Не узнемиравај” како би се ван доступности пригушила сва обавештења.", "Failed to load availability" : "Доступност није могла да се учита", "Saved availability" : "Доступност је сачувана", "Failed to save availability" : "Није успело снимање доступности ", "Availability" : "Доступност", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Ако подесите своје радне сате, када буду заказивали састанак, остали корисници ће видети када сте ван канцеларије.", + "Absence" : "Одсутност", + "Configure your next absence period." : "Конфигуришите свој наредни период одсутности.", "Calendar server" : "Календар сервера", "Send invitations to attendees" : "Пошаљи позивницу учесницима", "Automatically generate a birthday calendar" : "Аутоматски изгенериши календар рођендана", diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js index 47417f9ddf3..8c30b296dc0 100644 --- a/apps/dav/l10n/sv.js +++ b/apps/dav/l10n/sv.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Avböj", "More options …" : "Fler alternativ ...", "More options at %s" : "Fler alternativ på %s", + "In a meeting" : "På ett möte", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} skapade adressboken {addressbook}", "You created address book {addressbook}" : "Du skapade adressboken {addressbook}", @@ -148,12 +149,22 @@ OC.L10N.register( "Completed on %s" : "Slutförd %s", "Due on %s by %s" : "Slutar den %s vid %s", "Due on %s" : "Slutar den %s", + "DAV system address book" : "DAV-systemets adressbok", + "No outstanding DAV system address book sync." : "Ingen utestående synkronisering för DAV-systemets adressbok.", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "DAV-systemets adressbokssynkronisering har inte körts ännu eftersom din instans har fler än 1000 användare eller för att ett fel uppstod. Kör det manuellt genom att anropa occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Migrerade kalender (%1$s)", "Calendars including events, details and attendees" : "Kalendrar inklusive händelser, detaljer och deltagare", "Contacts and groups" : "Kontakter och grupper", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV endpoint", + "First day" : "Första dagen", + "Last day (inclusive)" : "Sista dagen (inklusive)", + "Short absence status" : "Kort frånvarostatus", + "Long absence Message" : "Långt frånvaromeddelande", "Save" : "Spara", + "Disable absence" : "Inaktivera frånvaro", + "Failed to save your absence settings" : "Kunde inte spara dina frånvaroinställningar", + "Failed to clear your absence settings" : "Kunde inte rensa dina frånvaroinställningar", "Time zone:" : "Tidszon:", "to" : "till", "Delete slot" : "Radera lucka", @@ -166,12 +177,16 @@ OC.L10N.register( "Friday" : "Fredag", "Saturday" : "Lördag", "Sunday" : "Söndag", + "Pick a start time for {dayName}" : "Välj en starttid för {dayName}", + "Pick a end time for {dayName}" : "Välj en sluttid för {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sätt automatiskt användarstatus till \"Stör ej\" utanför tillgängliga tider för att tysta alla notifikationer.", "Failed to load availability" : "Misslyckades med att ladda tidsluckor", "Saved availability" : "Sparade tidslucka", "Failed to save availability" : "Misslyckades med att spara tidslucka", "Availability" : "Tillgänglighet", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstimmar kan andra användare se när du inte är på jobbet när de bokar ett möte.", + "Absence" : "Frånvaro", + "Configure your next absence period." : "Konfigurera din nästa frånvaroperiod.", "Calendar server" : "Kalenderserver", "Send invitations to attendees" : "Skicka inbjudan till deltagare", "Automatically generate a birthday calendar" : "Generera en födelsedagskalender automatiskt", diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json index 5fa86c6ac3b..e64f12806ad 100644 --- a/apps/dav/l10n/sv.json +++ b/apps/dav/l10n/sv.json @@ -91,6 +91,7 @@ "Decline" : "Avböj", "More options …" : "Fler alternativ ...", "More options at %s" : "Fler alternativ på %s", + "In a meeting" : "På ett möte", "Contacts" : "Kontakter", "{actor} created address book {addressbook}" : "{actor} skapade adressboken {addressbook}", "You created address book {addressbook}" : "Du skapade adressboken {addressbook}", @@ -146,12 +147,22 @@ "Completed on %s" : "Slutförd %s", "Due on %s by %s" : "Slutar den %s vid %s", "Due on %s" : "Slutar den %s", + "DAV system address book" : "DAV-systemets adressbok", + "No outstanding DAV system address book sync." : "Ingen utestående synkronisering för DAV-systemets adressbok.", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "DAV-systemets adressbokssynkronisering har inte körts ännu eftersom din instans har fler än 1000 användare eller för att ett fel uppstod. Kör det manuellt genom att anropa occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Migrerade kalender (%1$s)", "Calendars including events, details and attendees" : "Kalendrar inklusive händelser, detaljer och deltagare", "Contacts and groups" : "Kontakter och grupper", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV endpoint", + "First day" : "Första dagen", + "Last day (inclusive)" : "Sista dagen (inklusive)", + "Short absence status" : "Kort frånvarostatus", + "Long absence Message" : "Långt frånvaromeddelande", "Save" : "Spara", + "Disable absence" : "Inaktivera frånvaro", + "Failed to save your absence settings" : "Kunde inte spara dina frånvaroinställningar", + "Failed to clear your absence settings" : "Kunde inte rensa dina frånvaroinställningar", "Time zone:" : "Tidszon:", "to" : "till", "Delete slot" : "Radera lucka", @@ -164,12 +175,16 @@ "Friday" : "Fredag", "Saturday" : "Lördag", "Sunday" : "Söndag", + "Pick a start time for {dayName}" : "Välj en starttid för {dayName}", + "Pick a end time for {dayName}" : "Välj en sluttid för {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sätt automatiskt användarstatus till \"Stör ej\" utanför tillgängliga tider för att tysta alla notifikationer.", "Failed to load availability" : "Misslyckades med att ladda tidsluckor", "Saved availability" : "Sparade tidslucka", "Failed to save availability" : "Misslyckades med att spara tidslucka", "Availability" : "Tillgänglighet", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstimmar kan andra användare se när du inte är på jobbet när de bokar ett möte.", + "Absence" : "Frånvaro", + "Configure your next absence period." : "Konfigurera din nästa frånvaroperiod.", "Calendar server" : "Kalenderserver", "Send invitations to attendees" : "Skicka inbjudan till deltagare", "Automatically generate a birthday calendar" : "Generera en födelsedagskalender automatiskt", diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index 25294d9e5d6..092ec527c56 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Reddet", "More options …" : "Diğer seçenekler …", "More options at %s" : "%s üzerindeki diğer seçenekler", + "In a meeting" : "Toplantıda", "Contacts" : "Kişiler", "{actor} created address book {addressbook}" : "{actor}, {addressbook} adres defterini ekledi", "You created address book {addressbook}" : "{addressbook} adres defterini eklediniz", @@ -156,8 +157,14 @@ OC.L10N.register( "Contacts and groups" : "Kişiler ve gruplar", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV bağlantı noktası", - "First day" : "Başlangıç", + "First day" : "İlk gün", + "Last day (inclusive)" : "Son gün (dahil)", + "Short absence status" : "Kısa işe gelmeme durumu", + "Long absence Message" : "Uzun işe gelmeme iletisi", "Save" : "Kaydet", + "Disable absence" : "İşe gelmemeyi kapat", + "Failed to save your absence settings" : "İşe gelmeme ayarlarınız kaydedilemedi", + "Failed to clear your absence settings" : "İşe gelmeme ayarlarınız temizlenemedi", "Time zone:" : "Saat dilimi:", "to" : "ile", "Delete slot" : "Aralığı sil", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "Cuma", "Saturday" : "Cumartesi", "Sunday" : "Pazar", + "Pick a start time for {dayName}" : "{dayName} için başlangıç zamanını seçin", + "Pick a end time for {dayName}" : "{dayName} için bitiş zamanını seçin", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Tüm bildirimleri sessize almak için, uygunluk durumu dışında kullanıcı durumu otomatik olarak \"Rahatsız etmeyin\" olarak ayarlanır.", "Failed to load availability" : "Uygunluk yüklenemedi", "Saved availability" : "Uygunluk kaydedildi", "Failed to save availability" : "Uygunluk kaydedilemedi", "Availability" : "Uygunluk", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Çalışma saatlerinizi ayarlarsanız, diğer kullanıcılar bir toplantı ayarladıklarında ofis dışında olduğunuzu görürler.", + "Absence" : "İşe gelmeme", + "Configure your next absence period." : "Sonraki işe gelmeme aralığınızı yapılandırın.", "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara çağrılar gönderilsin", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", @@ -185,7 +196,7 @@ OC.L10N.register( "Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.", "Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin", "Reminders are always sent to organizers and attendees." : "Bu seçenek etkinleştirildiğinde, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", - "Enable notifications for events via push" : "Anında etkinlik bildirimleri kullanılsın", + "Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç", "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Ayrıca {calendarappstoreopen}Takvim Uygulamasını{linkclose} kurun ya da {calendardocopen}bilgisayarınızı ya da taşınabilir aygıtınızı eşitlemek üzere bağlayın ↗{linkclose}.", "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Lütfen {emailopen}e-posta sunucusunu{linkclose} doğru ayarladığınızdan emin olun.", "There was an error updating your attendance status." : "Katılım durumunuz güncellenirken bir sorun çıktı.", diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index 72d2aeaa2f4..3e72b0ec36a 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -91,6 +91,7 @@ "Decline" : "Reddet", "More options …" : "Diğer seçenekler …", "More options at %s" : "%s üzerindeki diğer seçenekler", + "In a meeting" : "Toplantıda", "Contacts" : "Kişiler", "{actor} created address book {addressbook}" : "{actor}, {addressbook} adres defterini ekledi", "You created address book {addressbook}" : "{addressbook} adres defterini eklediniz", @@ -154,8 +155,14 @@ "Contacts and groups" : "Kişiler ve gruplar", "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV bağlantı noktası", - "First day" : "Başlangıç", + "First day" : "İlk gün", + "Last day (inclusive)" : "Son gün (dahil)", + "Short absence status" : "Kısa işe gelmeme durumu", + "Long absence Message" : "Uzun işe gelmeme iletisi", "Save" : "Kaydet", + "Disable absence" : "İşe gelmemeyi kapat", + "Failed to save your absence settings" : "İşe gelmeme ayarlarınız kaydedilemedi", + "Failed to clear your absence settings" : "İşe gelmeme ayarlarınız temizlenemedi", "Time zone:" : "Saat dilimi:", "to" : "ile", "Delete slot" : "Aralığı sil", @@ -168,12 +175,16 @@ "Friday" : "Cuma", "Saturday" : "Cumartesi", "Sunday" : "Pazar", + "Pick a start time for {dayName}" : "{dayName} için başlangıç zamanını seçin", + "Pick a end time for {dayName}" : "{dayName} için bitiş zamanını seçin", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Tüm bildirimleri sessize almak için, uygunluk durumu dışında kullanıcı durumu otomatik olarak \"Rahatsız etmeyin\" olarak ayarlanır.", "Failed to load availability" : "Uygunluk yüklenemedi", "Saved availability" : "Uygunluk kaydedildi", "Failed to save availability" : "Uygunluk kaydedilemedi", "Availability" : "Uygunluk", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Çalışma saatlerinizi ayarlarsanız, diğer kullanıcılar bir toplantı ayarladıklarında ofis dışında olduğunuzu görürler.", + "Absence" : "İşe gelmeme", + "Configure your next absence period." : "Sonraki işe gelmeme aralığınızı yapılandırın.", "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara çağrılar gönderilsin", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", @@ -183,7 +194,7 @@ "Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.", "Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin", "Reminders are always sent to organizers and attendees." : "Bu seçenek etkinleştirildiğinde, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", - "Enable notifications for events via push" : "Anında etkinlik bildirimleri kullanılsın", + "Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç", "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Ayrıca {calendarappstoreopen}Takvim Uygulamasını{linkclose} kurun ya da {calendardocopen}bilgisayarınızı ya da taşınabilir aygıtınızı eşitlemek üzere bağlayın ↗{linkclose}.", "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Lütfen {emailopen}e-posta sunucusunu{linkclose} doğru ayarladığınızdan emin olun.", "There was an error updating your attendance status." : "Katılım durumunuz güncellenirken bir sorun çıktı.", diff --git a/apps/dav/l10n/uk.js b/apps/dav/l10n/uk.js index bfbcfb53c6a..7d83e5505a0 100644 --- a/apps/dav/l10n/uk.js +++ b/apps/dav/l10n/uk.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "Відхилити", "More options …" : "Більше варіантів …", "More options at %s" : "Більше варіантів на %s", + "In a meeting" : "На зустрічі", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} створив(-ла) адресну книгу {addressbook}", "You created address book {addressbook}" : "Ви створили адресну книгу {addressbook}", @@ -148,13 +149,21 @@ OC.L10N.register( "Completed on %s" : "Завершено %s", "Due on %s by %s" : "До %s з боку %s", "Due on %s" : "До %s", + "DAV system address book" : "Системна адресна книга DAV", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "Ще не відбувалася синхронізація системної книги DAV, оскільки ваш примірник налічує понад 1000 користувачів або через іншу помилку. Запустіть синхронізацію вручну командою occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Перенесений календар (%1$s)", "Calendars including events, details and attendees" : "Календарі, включаючи події, деталі та відвідувачів", "Contacts and groups" : "Контакти та групи", "WebDAV" : "WebDAV", "WebDAV endpoint" : "Точка доступу WebDAV", "First day" : "Перший день", + "Last day (inclusive)" : "Останній день (включно)", + "Short absence status" : "Короткий статус відсутности", + "Long absence Message" : "Довге повідомлення про відсутність", "Save" : "Зберегти", + "Disable absence" : "Вимкнути відсутність", + "Failed to save your absence settings" : "Не вдалося зберегти налаштуванння про відсутність", + "Failed to clear your absence settings" : "Не вдалося скинути ваші налаштування про відсутність", "Time zone:" : "Часовий пояс:", "to" : "до", "Delete slot" : "Вилучити діапазон", @@ -173,6 +182,8 @@ OC.L10N.register( "Failed to save availability" : "Не вдалося зберегти наявність", "Availability" : "Доступність", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Будь ласка, налаштуйте ваш робочий час, щоби інші користувачі могли бачити, коли ви відсутні під час бронювання зустрічей.", + "Absence" : "Відсутність", + "Configure your next absence period." : "Налаштувати проміжки вашої відсутности", "Calendar server" : "Календар", "Send invitations to attendees" : "Надсилати запрошення учасникам", "Automatically generate a birthday calendar" : "Автоматично створити календар днів народження", diff --git a/apps/dav/l10n/uk.json b/apps/dav/l10n/uk.json index af490a94791..09f3345a425 100644 --- a/apps/dav/l10n/uk.json +++ b/apps/dav/l10n/uk.json @@ -91,6 +91,7 @@ "Decline" : "Відхилити", "More options …" : "Більше варіантів …", "More options at %s" : "Більше варіантів на %s", + "In a meeting" : "На зустрічі", "Contacts" : "Контакти", "{actor} created address book {addressbook}" : "{actor} створив(-ла) адресну книгу {addressbook}", "You created address book {addressbook}" : "Ви створили адресну книгу {addressbook}", @@ -146,13 +147,21 @@ "Completed on %s" : "Завершено %s", "Due on %s by %s" : "До %s з боку %s", "Due on %s" : "До %s", + "DAV system address book" : "Системна адресна книга DAV", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling occ dav:sync-system-addressbook." : "Ще не відбувалася синхронізація системної книги DAV, оскільки ваш примірник налічує понад 1000 користувачів або через іншу помилку. Запустіть синхронізацію вручну командою occ dav:sync-system-addressbook.", "Migrated calendar (%1$s)" : "Перенесений календар (%1$s)", "Calendars including events, details and attendees" : "Календарі, включаючи події, деталі та відвідувачів", "Contacts and groups" : "Контакти та групи", "WebDAV" : "WebDAV", "WebDAV endpoint" : "Точка доступу WebDAV", "First day" : "Перший день", + "Last day (inclusive)" : "Останній день (включно)", + "Short absence status" : "Короткий статус відсутности", + "Long absence Message" : "Довге повідомлення про відсутність", "Save" : "Зберегти", + "Disable absence" : "Вимкнути відсутність", + "Failed to save your absence settings" : "Не вдалося зберегти налаштуванння про відсутність", + "Failed to clear your absence settings" : "Не вдалося скинути ваші налаштування про відсутність", "Time zone:" : "Часовий пояс:", "to" : "до", "Delete slot" : "Вилучити діапазон", @@ -171,6 +180,8 @@ "Failed to save availability" : "Не вдалося зберегти наявність", "Availability" : "Доступність", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Будь ласка, налаштуйте ваш робочий час, щоби інші користувачі могли бачити, коли ви відсутні під час бронювання зустрічей.", + "Absence" : "Відсутність", + "Configure your next absence period." : "Налаштувати проміжки вашої відсутности", "Calendar server" : "Календар", "Send invitations to attendees" : "Надсилати запрошення учасникам", "Automatically generate a birthday calendar" : "Автоматично створити календар днів народження", diff --git a/apps/dav/l10n/zh_CN.js b/apps/dav/l10n/zh_CN.js index 915554ed303..b8ad01dd0d2 100644 --- a/apps/dav/l10n/zh_CN.js +++ b/apps/dav/l10n/zh_CN.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "拒绝", "More options …" : "更多选项", "More options at %s" : "在%s的更多选项", + "In a meeting" : "开会中", "Contacts" : "联系人", "{actor} created address book {addressbook}" : "{actor} 创建了通讯录 {addressbook}", "You created address book {addressbook}" : "你创建了通讯录 {addressbook}", diff --git a/apps/dav/l10n/zh_CN.json b/apps/dav/l10n/zh_CN.json index f498fe3eba2..10b9eb1dfeb 100644 --- a/apps/dav/l10n/zh_CN.json +++ b/apps/dav/l10n/zh_CN.json @@ -91,6 +91,7 @@ "Decline" : "拒绝", "More options …" : "更多选项", "More options at %s" : "在%s的更多选项", + "In a meeting" : "开会中", "Contacts" : "联系人", "{actor} created address book {addressbook}" : "{actor} 创建了通讯录 {addressbook}", "You created address book {addressbook}" : "你创建了通讯录 {addressbook}", diff --git a/apps/dav/l10n/zh_HK.js b/apps/dav/l10n/zh_HK.js index 1ecd11df8fd..3101af5c20b 100644 --- a/apps/dav/l10n/zh_HK.js +++ b/apps/dav/l10n/zh_HK.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "拒絕", "More options …" : "更多選項 ...", "More options at %s" : "%s有更多選項", + "In a meeting" : "會議中", "Contacts" : "聯絡人", "{actor} created address book {addressbook}" : "{actor} 創建了通訊錄 {addressbook} ", "You created address book {addressbook}" : "您創建了通訊錄 {addressbook} ", diff --git a/apps/dav/l10n/zh_HK.json b/apps/dav/l10n/zh_HK.json index 17e94b40004..a697790d96f 100644 --- a/apps/dav/l10n/zh_HK.json +++ b/apps/dav/l10n/zh_HK.json @@ -91,6 +91,7 @@ "Decline" : "拒絕", "More options …" : "更多選項 ...", "More options at %s" : "%s有更多選項", + "In a meeting" : "會議中", "Contacts" : "聯絡人", "{actor} created address book {addressbook}" : "{actor} 創建了通訊錄 {addressbook} ", "You created address book {addressbook}" : "您創建了通訊錄 {addressbook} ", diff --git a/apps/dav/l10n/zh_TW.js b/apps/dav/l10n/zh_TW.js index 0b06e0c18a5..a88b09e1ed8 100644 --- a/apps/dav/l10n/zh_TW.js +++ b/apps/dav/l10n/zh_TW.js @@ -93,6 +93,7 @@ OC.L10N.register( "Decline" : "拒絕", "More options …" : "更多選項……", "More options at %s" : "%s 有更多選項", + "In a meeting" : "會議中", "Contacts" : "聯絡人", "{actor} created address book {addressbook}" : "{actor} 建立了通訊錄 {addressbook}", "You created address book {addressbook}" : "您建立了通訊錄 {addressbook}", @@ -157,7 +158,13 @@ OC.L10N.register( "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV 端點", "First day" : "第一天", + "Last day (inclusive)" : "最後一天(含)", + "Short absence status" : "短暫缺席狀態", + "Long absence Message" : "長期缺席訊息", "Save" : "儲存", + "Disable absence" : "停用缺席", + "Failed to save your absence settings" : "儲存您的缺席設定失敗", + "Failed to clear your absence settings" : "清除您的缺席設定失敗", "Time zone:" : "時區:", "to" : "到", "Delete slot" : "刪除欄位", @@ -170,12 +177,16 @@ OC.L10N.register( "Friday" : "週五", "Saturday" : "週六", "Sunday" : "週日", + "Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間", + "Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在忙碌時,自動將使用者狀態設定為「請勿打擾」以靜音所有通知。", "Failed to load availability" : "載入可用性失敗", "Saved availability" : "已儲存可用性", "Failed to save availability" : "儲存可用性失敗", "Availability" : "可用性", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他使用者在預約會議時就會知道您何時不在辦公室。", + "Absence" : "缺席", + "Configure your next absence period." : "設定您的下一個缺席時段。", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動生成生日日曆", diff --git a/apps/dav/l10n/zh_TW.json b/apps/dav/l10n/zh_TW.json index 3ca6e71906e..d5b282b2099 100644 --- a/apps/dav/l10n/zh_TW.json +++ b/apps/dav/l10n/zh_TW.json @@ -91,6 +91,7 @@ "Decline" : "拒絕", "More options …" : "更多選項……", "More options at %s" : "%s 有更多選項", + "In a meeting" : "會議中", "Contacts" : "聯絡人", "{actor} created address book {addressbook}" : "{actor} 建立了通訊錄 {addressbook}", "You created address book {addressbook}" : "您建立了通訊錄 {addressbook}", @@ -155,7 +156,13 @@ "WebDAV" : "WebDAV", "WebDAV endpoint" : "WebDAV 端點", "First day" : "第一天", + "Last day (inclusive)" : "最後一天(含)", + "Short absence status" : "短暫缺席狀態", + "Long absence Message" : "長期缺席訊息", "Save" : "儲存", + "Disable absence" : "停用缺席", + "Failed to save your absence settings" : "儲存您的缺席設定失敗", + "Failed to clear your absence settings" : "清除您的缺席設定失敗", "Time zone:" : "時區:", "to" : "到", "Delete slot" : "刪除欄位", @@ -168,12 +175,16 @@ "Friday" : "週五", "Saturday" : "週六", "Sunday" : "週日", + "Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間", + "Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在忙碌時,自動將使用者狀態設定為「請勿打擾」以靜音所有通知。", "Failed to load availability" : "載入可用性失敗", "Saved availability" : "已儲存可用性", "Failed to save availability" : "儲存可用性失敗", "Availability" : "可用性", "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他使用者在預約會議時就會知道您何時不在辦公室。", + "Absence" : "缺席", + "Configure your next absence period." : "設定您的下一個缺席時段。", "Calendar server" : "日曆伺服器", "Send invitations to attendees" : "發送邀請函給參加者", "Automatically generate a birthday calendar" : "自動生成生日日曆", diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 672543460c3..a580e620166 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -281,14 +281,15 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription ->where($qb->expr()->isNotNull('deleted_at')) ->andWhere($qb->expr()->lt('deleted_at', $qb->createNamedParameter($deletedBefore))); $result = $qb->executeQuery(); - $raw = $result->fetchAll(); - $result->closeCursor(); - return array_map(function ($row) { - return [ + $calendars = []; + while (($row = $result->fetch()) !== false) { + $calendars[] = [ 'id' => (int) $row['id'], 'deleted_at' => (int) $row['deleted_at'], ]; - }, $raw); + } + $result->closeCursor(); + return $calendars; } /** @@ -1011,7 +1012,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $stmt = $query->executeQuery(); $result = []; - foreach ($stmt->fetchAll() as $row) { + while (($row = $stmt->fetch()) !== false) { $result[] = [ 'id' => $row['id'], 'uri' => $row['uri'], @@ -1038,7 +1039,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $stmt = $query->executeQuery(); $result = []; - foreach ($stmt->fetchAll() as $row) { + while (($row = $stmt->fetch()) !== false) { $result[] = [ 'id' => $row['id'], 'uri' => $row['uri'], @@ -1925,13 +1926,15 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } $result = $outerQuery->executeQuery(); - $calendarObjects = array_filter($result->fetchAll(), function (array $row) use ($options) { + $calendarObjects = []; + while (($row = $result->fetch()) !== false) { $start = $options['timerange']['start'] ?? null; $end = $options['timerange']['end'] ?? null; if ($start === null || !($start instanceof DateTimeInterface) || $end === null || !($end instanceof DateTimeInterface)) { // No filter required - return true; + $calendarObjects[] = $row; + continue; } $isValid = $this->validateFilterForObject($row, [ @@ -1956,8 +1959,10 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription // Put the stream back to the beginning so it can be read another time rewind($row['calendardata']); } - return $isValid; - }); + if ($isValid) { + $calendarObjects[] = $row; + } + } $result->closeCursor(); return array_map(function ($o) use ($options) { @@ -2157,11 +2162,11 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } $result = $calendarObjectIdQuery->executeQuery(); - $matches = $result->fetchAll(); + $matches = []; + while (($row = $result->fetch()) !== false) { + $matches[] = (int) $row['objectid']; + } $result->closeCursor(); - $matches = array_map(static function (array $match):int { - return (int) $match['objectid']; - }, $matches); $query = $this->db->getQueryBuilder(); $query->select('calendardata', 'uri', 'calendarid', 'calendartype') @@ -2169,16 +2174,16 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription ->where($query->expr()->in('id', $query->createNamedParameter($matches, IQueryBuilder::PARAM_INT_ARRAY))); $result = $query->executeQuery(); - $calendarObjects = $result->fetchAll(); - $result->closeCursor(); - - return array_map(function (array $array): array { + $calendarObjects = []; + while (($array = $result->fetch()) !== false) { $array['calendarid'] = (int)$array['calendarid']; $array['calendartype'] = (int)$array['calendartype']; $array['calendardata'] = $this->readBlob($array['calendardata']); - return $array; - }, $calendarObjects); + $calendarObjects[] = $array; + } + $result->closeCursor(); + return $calendarObjects; }, $this->db); } @@ -2656,9 +2661,9 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription ->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri))) ->executeQuery(); - $result = []; - foreach ($stmt->fetchAll() as $row) { - $result[] = [ + $results = []; + while (($row = $stmt->fetch()) !== false) { + $results[] = [ 'calendardata' => $row['calendardata'], 'uri' => $row['uri'], 'lastmodified' => $row['lastmodified'], @@ -2668,7 +2673,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } $stmt->closeCursor(); - return $result; + return $results; } /** @@ -3046,14 +3051,13 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription ->where($query->expr()->eq('uri', $query->createNamedParameter(BirthdayService::BIRTHDAY_CALENDAR_URI))) ->executeQuery(); - $ids = $result->fetchAll(); - $result->closeCursor(); - foreach ($ids as $id) { + while (($row = $result->fetch()) !== false) { $this->deleteCalendar( - $id['id'], + $row['id'], true // No data to keep in the trashbin, if the user re-enables then we regenerate ); } + $result->closeCursor(); }, $this->db); } @@ -3070,7 +3074,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $stmt = $query->executeQuery(); $uris = []; - foreach ($stmt->fetchAll() as $row) { + while (($row = $stmt->fetch()) !== false) { $uris[] = $row['uri']; } $stmt->closeCursor(); diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php index c5d200d578e..58f61c13232 100644 --- a/apps/dav/lib/SystemTag/SystemTagPlugin.php +++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php @@ -303,9 +303,11 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin { $fileIds = [$node->getId()]; // note: pre-fetching only supported for depth <= 1 - $folderContent = $node->getNode()->getDirectoryListing(); + $folderContent = $node->getChildren(); foreach ($folderContent as $info) { - $fileIds[] = $info->getId(); + if ($info instanceof Node) { + $fileIds[] = $info->getId(); + } } $tags = $this->tagMapper->getTagIdsForObjects($fileIds, 'files'); diff --git a/apps/dav/lib/Upload/ChunkingV2Plugin.php b/apps/dav/lib/Upload/ChunkingV2Plugin.php index 97ae51fbe38..29017155d45 100644 --- a/apps/dav/lib/Upload/ChunkingV2Plugin.php +++ b/apps/dav/lib/Upload/ChunkingV2Plugin.php @@ -30,6 +30,8 @@ use InvalidArgumentException; use OC\Files\Filesystem; use OC\Files\ObjectStore\ObjectStoreStorage; use OC\Files\View; +use OC\Memcache\Memcached; +use OC\Memcache\Redis; use OC_Hook; use OCA\DAV\Connector\Sabre\Directory; use OCA\DAV\Connector\Sabre\File; @@ -40,6 +42,7 @@ use OCP\Files\Storage\IChunkedFileWrite; use OCP\Files\StorageInvalidException; use OCP\ICache; use OCP\ICacheFactory; +use OCP\IConfig; use OCP\Lock\ILockingProvider; use Sabre\DAV\Exception\BadRequest; use Sabre\DAV\Exception\InsufficientStorage; @@ -272,6 +275,11 @@ class ChunkingV2Plugin extends ServerPlugin { * @throws StorageInvalidException */ private function checkPrerequisites(bool $checkUploadMetadata = true): void { + $distributedCacheConfig = \OCP\Server::get(IConfig::class)->getSystemValue('memcache.distributed', null); + + if ($distributedCacheConfig === null || (!$this->cache instanceof Redis && !$this->cache instanceof Memcached)) { + throw new BadRequest('Skipping chunking v2 since no proper distributed cache is available'); + } if (!$this->uploadFolder instanceof UploadFolder || empty($this->server->httpRequest->getHeader(self::DESTINATION_HEADER))) { throw new BadRequest('Skipping chunked file writing as the destination header was not passed'); } @@ -284,7 +292,7 @@ class ChunkingV2Plugin extends ServerPlugin { if ($checkUploadMetadata) { if ($this->uploadId === null || $this->uploadPath === null) { - throw new PreconditionFailed('Missing metadata for chunked upload'); + throw new PreconditionFailed('Missing metadata for chunked upload. The distributed cache does not hold the information of previous requests.'); } } } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index e3fe7608299..95b650417ec 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1228,6 +1228,10 @@ if (this.$table.hasClass('multiselect')) { return; } + + // Ensure the url does not change + e.preventDefault(); + var $target = $(e.target); var sort; if (!$target.is('a')) { diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index a674b6b9c74..0b99d1cae94 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -186,7 +186,7 @@ OC.L10N.register( "\"{char}\" is not allowed inside a file name." : "„{char}“ није дозвољен каракетер у имену фајла.", "Name cannot be empty" : "Назив не може бити празан", "Another entry with the same name already exists" : "Већ постоји ставка са истим именом.", - "Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је променњено на „{newName}”", + "Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”", "Could not rename \"{oldName}\", it does not exist any more" : "Не може да се промени име фајла „{fileName}” јер фајл више не постоји", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Назив „{targetName}” се већ користи у директоријуму „{dir}”. Молимо вас да изаберете неко друго име.", "Could not rename \"{oldName}\"" : "Не може да се промени име фајла „{fileName}”", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index 8f671ae71d5..efa0956db20 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -184,7 +184,7 @@ "\"{char}\" is not allowed inside a file name." : "„{char}“ није дозвољен каракетер у имену фајла.", "Name cannot be empty" : "Назив не може бити празан", "Another entry with the same name already exists" : "Већ постоји ставка са истим именом.", - "Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је променњено на „{newName}”", + "Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”", "Could not rename \"{oldName}\", it does not exist any more" : "Не може да се промени име фајла „{fileName}” јер фајл више не постоји", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Назив „{targetName}” се већ користи у директоријуму „{dir}”. Молимо вас да изаберете неко друго име.", "Could not rename \"{oldName}\"" : "Не може да се промени име фајла „{fileName}”", diff --git a/apps/files/src/actions/deleteAction.ts b/apps/files/src/actions/deleteAction.ts index a633e477b1f..d4cf607d0fc 100644 --- a/apps/files/src/actions/deleteAction.ts +++ b/apps/files/src/actions/deleteAction.ts @@ -28,6 +28,7 @@ import TrashCan from '@mdi/svg/svg/trash-can.svg?raw' import { registerFileAction, FileAction } from '../services/FileAction.ts' import logger from '../logger.js' import type { Navigation } from '../services/Navigation.ts' +import { encodePath } from '@nextcloud/paths'; registerFileAction(new FileAction({ id: 'delete', @@ -45,8 +46,11 @@ registerFileAction(new FileAction({ }, async exec(node: Node) { + const { origin } = new URL(node.source) + const encodedSource = origin + encodePath(node.source.slice(origin.length)) + try { - await axios.delete(node.source) + await axios.delete(encodedSource) // Let's delete even if it's moved to the trashbin // since it has been removed from the current view diff --git a/apps/files_external/l10n/cs.js b/apps/files_external/l10n/cs.js index 45b85ef78d6..bcbcd551413 100644 --- a/apps/files_external/l10n/cs.js +++ b/apps/files_external/l10n/cs.js @@ -28,7 +28,7 @@ OC.L10N.register( "Not permitted to use backend \"%s\"" : "Nebylo povoleno použití služby „%s“", "Not permitted to use authentication mechanism \"%s\"" : "Nebylo povoleno použití ověřovacího mechanismu „%s“", "Unsatisfied backend parameters" : "Nesplněné parametry pro podpůrnou vrstvu", - "Unsatisfied authentication mechanism parameters" : "Neuspokojivé parametry ověřovacího mechanismu", + "Unsatisfied authentication mechanism parameters" : "Nesplněny parametry ověřovacího mechanismu", "Insufficient data: %s" : "Nedostatečná data: %s", "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Úložiště s identifikátorem „%d“ není uživatelsky upravitelné", @@ -46,7 +46,7 @@ OC.L10N.register( "Username" : "Uživatelské jméno", "Password" : "Heslo", "Tenant name" : "Jméno nájemníka", - "Identity endpoint URL" : "Identifikační koncový bod URL", + "Identity endpoint URL" : "URL koncového bodu identity", "OpenStack v3" : "OpenStack v3", "Domain" : "Doména", "Rackspace" : "Rackspace", @@ -146,7 +146,7 @@ OC.L10N.register( "Empty response from the server" : "Prázdná odpověď ze serveru", "Couldn't access. Please log out and in again to activate this mount point" : "Nelze připojit. Pro aktivaci tohoto přípojného bodu se odhlaste a znovu přihlaste", "Couldn't get the information from the remote server: {code} {type}" : "Nedaří se obdržet informaci ze vzdáleného serveru: {code} {type}", - "Couldn't get the list of external mount points: {type}" : "Nelze obdržet seznam vzdálených přípojných bodů: {type}", + "Couldn't get the list of external mount points: {type}" : "Nepodařilo se získat seznam vzdálených přípojných bodů: {type}", "There was an error with message: " : "Došlo k chybě s tímto hlášením:", "external-storage" : "external-storage", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Nepodařilo se obdržet seznam síťových úložišť systému Windows: prázdná odpověď serveru", diff --git a/apps/files_external/l10n/cs.json b/apps/files_external/l10n/cs.json index 148f6f9e1d8..4a90937313d 100644 --- a/apps/files_external/l10n/cs.json +++ b/apps/files_external/l10n/cs.json @@ -26,7 +26,7 @@ "Not permitted to use backend \"%s\"" : "Nebylo povoleno použití služby „%s“", "Not permitted to use authentication mechanism \"%s\"" : "Nebylo povoleno použití ověřovacího mechanismu „%s“", "Unsatisfied backend parameters" : "Nesplněné parametry pro podpůrnou vrstvu", - "Unsatisfied authentication mechanism parameters" : "Neuspokojivé parametry ověřovacího mechanismu", + "Unsatisfied authentication mechanism parameters" : "Nesplněny parametry ověřovacího mechanismu", "Insufficient data: %s" : "Nedostatečná data: %s", "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Úložiště s identifikátorem „%d“ není uživatelsky upravitelné", @@ -44,7 +44,7 @@ "Username" : "Uživatelské jméno", "Password" : "Heslo", "Tenant name" : "Jméno nájemníka", - "Identity endpoint URL" : "Identifikační koncový bod URL", + "Identity endpoint URL" : "URL koncového bodu identity", "OpenStack v3" : "OpenStack v3", "Domain" : "Doména", "Rackspace" : "Rackspace", @@ -144,7 +144,7 @@ "Empty response from the server" : "Prázdná odpověď ze serveru", "Couldn't access. Please log out and in again to activate this mount point" : "Nelze připojit. Pro aktivaci tohoto přípojného bodu se odhlaste a znovu přihlaste", "Couldn't get the information from the remote server: {code} {type}" : "Nedaří se obdržet informaci ze vzdáleného serveru: {code} {type}", - "Couldn't get the list of external mount points: {type}" : "Nelze obdržet seznam vzdálených přípojných bodů: {type}", + "Couldn't get the list of external mount points: {type}" : "Nepodařilo se získat seznam vzdálených přípojných bodů: {type}", "There was an error with message: " : "Došlo k chybě s tímto hlášením:", "external-storage" : "external-storage", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Nepodařilo se obdržet seznam síťových úložišť systému Windows: prázdná odpověď serveru", diff --git a/apps/files_reminders/l10n/ar.js b/apps/files_reminders/l10n/ar.js index 8845829b3e8..c94aedb8ed3 100644 --- a/apps/files_reminders/l10n/ar.js +++ b/apps/files_reminders/l10n/ar.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "أعرُض المجلد", "Set file reminders" : "تعيين تذكيرات للملفات", "**📣 File reminders**\n\nSet file reminders." : "**📣 تذكيرات الملفات File reminders**\n\nتعيين تذكيرات الملفات.", + "We will remind you of this file" : "سوف يتم تذكيرك بهذا الملف", "Please choose a valid date & time" : "من فضلك، إختَر وقتاً و تاريخاً صحيحين", "Cancel" : "إلغاء", "Set reminder" : "ضبط التذكير", + "Set reminder for \"{fileName}\"" : "تعيين تنبيه للملف \"{fileName}\"", "Set reminder at custom date & time" : "حدّد التذكير في وقت و تاريخ مخصص", "Clear reminder" : "إمحُ التذكير", "Reminder set for \"{fileName}\"" : "تمّ تعيين تذكير لـ \"{fileName}\"", diff --git a/apps/files_reminders/l10n/ar.json b/apps/files_reminders/l10n/ar.json index 6a7dadf1e73..7cbcf043cfc 100644 --- a/apps/files_reminders/l10n/ar.json +++ b/apps/files_reminders/l10n/ar.json @@ -5,9 +5,11 @@ "View folder" : "أعرُض المجلد", "Set file reminders" : "تعيين تذكيرات للملفات", "**📣 File reminders**\n\nSet file reminders." : "**📣 تذكيرات الملفات File reminders**\n\nتعيين تذكيرات الملفات.", + "We will remind you of this file" : "سوف يتم تذكيرك بهذا الملف", "Please choose a valid date & time" : "من فضلك، إختَر وقتاً و تاريخاً صحيحين", "Cancel" : "إلغاء", "Set reminder" : "ضبط التذكير", + "Set reminder for \"{fileName}\"" : "تعيين تنبيه للملف \"{fileName}\"", "Set reminder at custom date & time" : "حدّد التذكير في وقت و تاريخ مخصص", "Clear reminder" : "إمحُ التذكير", "Reminder set for \"{fileName}\"" : "تمّ تعيين تذكير لـ \"{fileName}\"", diff --git a/apps/files_reminders/l10n/cs.js b/apps/files_reminders/l10n/cs.js index 4892c85a846..5cc70d2ccba 100644 --- a/apps/files_reminders/l10n/cs.js +++ b/apps/files_reminders/l10n/cs.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Zobrazit složku", "Set file reminders" : "Nastavit připomínky souborů", "**📣 File reminders**\n\nSet file reminders." : "**📣 Připomínky souborů**\n\nNastavte připomínky souborů.", + "We will remind you of this file" : "Připomeneme vám tento soubor", "Please choose a valid date & time" : "Zvolte platný datum a čas", "Cancel" : "Storno", "Set reminder" : "Nastavit připomínku", + "Set reminder for \"{fileName}\"" : "Nastavit připomínku pro „{fileName}", "Set reminder at custom date & time" : "Nastavit připomínku na uživatelsky určené datum a čas", "Clear reminder" : "Vyčistit připomínku", "Reminder set for \"{fileName}\"" : "Nastavena připomínka ohledně „{fileName}“", diff --git a/apps/files_reminders/l10n/cs.json b/apps/files_reminders/l10n/cs.json index cc20bf60e98..f22e355daff 100644 --- a/apps/files_reminders/l10n/cs.json +++ b/apps/files_reminders/l10n/cs.json @@ -5,9 +5,11 @@ "View folder" : "Zobrazit složku", "Set file reminders" : "Nastavit připomínky souborů", "**📣 File reminders**\n\nSet file reminders." : "**📣 Připomínky souborů**\n\nNastavte připomínky souborů.", + "We will remind you of this file" : "Připomeneme vám tento soubor", "Please choose a valid date & time" : "Zvolte platný datum a čas", "Cancel" : "Storno", "Set reminder" : "Nastavit připomínku", + "Set reminder for \"{fileName}\"" : "Nastavit připomínku pro „{fileName}", "Set reminder at custom date & time" : "Nastavit připomínku na uživatelsky určené datum a čas", "Clear reminder" : "Vyčistit připomínku", "Reminder set for \"{fileName}\"" : "Nastavena připomínka ohledně „{fileName}“", diff --git a/apps/files_reminders/l10n/de_DE.js b/apps/files_reminders/l10n/de_DE.js index a2cda69c431..cfc30d7b783 100644 --- a/apps/files_reminders/l10n/de_DE.js +++ b/apps/files_reminders/l10n/de_DE.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Ordner anzeigen", "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders." : "**📣 Dateierinnerungen**\n\nSetze Dateierinnerungen.", + "We will remind you of this file" : "Sie werden an diese Datei erinnert werden", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", + "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", "Set reminder at custom date & time" : "Erinnerung für benutzerdefinierten Zeitpunkt und Tag erstellen", "Clear reminder" : "Erinnerung löschen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{filename}\" gesetzt", diff --git a/apps/files_reminders/l10n/de_DE.json b/apps/files_reminders/l10n/de_DE.json index bb9a35e7d84..817d36b2cbb 100644 --- a/apps/files_reminders/l10n/de_DE.json +++ b/apps/files_reminders/l10n/de_DE.json @@ -5,9 +5,11 @@ "View folder" : "Ordner anzeigen", "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders." : "**📣 Dateierinnerungen**\n\nSetze Dateierinnerungen.", + "We will remind you of this file" : "Sie werden an diese Datei erinnert werden", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", + "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", "Set reminder at custom date & time" : "Erinnerung für benutzerdefinierten Zeitpunkt und Tag erstellen", "Clear reminder" : "Erinnerung löschen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{filename}\" gesetzt", diff --git a/apps/files_reminders/l10n/gl.js b/apps/files_reminders/l10n/gl.js index fb9e42ac374..f798ddb67f7 100644 --- a/apps/files_reminders/l10n/gl.js +++ b/apps/files_reminders/l10n/gl.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Ver cartafol", "Set file reminders" : "Definir lembretes de ficheiros", "**📣 File reminders**\n\nSet file reminders." : "**📣 Lembretes de ficheiros**\n\nDefinir lembretes de ficheiros.", + "We will remind you of this file" : "Lembrarémoslle este ficheiro", "Please choose a valid date & time" : "Escolla unha data e hora válidas", "Cancel" : "Cancelar", "Set reminder" : "Definir un lembrete", + "Set reminder for \"{fileName}\"" : "Definir un lembrete para «{fileName}»", "Set reminder at custom date & time" : "Definir lembrete na data e hora personalizadas", "Clear reminder" : "Limpar o lembrete", "Reminder set for \"{fileName}\"" : "Lembrete definido para «{fileName}»", diff --git a/apps/files_reminders/l10n/gl.json b/apps/files_reminders/l10n/gl.json index bce1a19a5b8..b2579bcbb6c 100644 --- a/apps/files_reminders/l10n/gl.json +++ b/apps/files_reminders/l10n/gl.json @@ -5,9 +5,11 @@ "View folder" : "Ver cartafol", "Set file reminders" : "Definir lembretes de ficheiros", "**📣 File reminders**\n\nSet file reminders." : "**📣 Lembretes de ficheiros**\n\nDefinir lembretes de ficheiros.", + "We will remind you of this file" : "Lembrarémoslle este ficheiro", "Please choose a valid date & time" : "Escolla unha data e hora válidas", "Cancel" : "Cancelar", "Set reminder" : "Definir un lembrete", + "Set reminder for \"{fileName}\"" : "Definir un lembrete para «{fileName}»", "Set reminder at custom date & time" : "Definir lembrete na data e hora personalizadas", "Clear reminder" : "Limpar o lembrete", "Reminder set for \"{fileName}\"" : "Lembrete definido para «{fileName}»", diff --git a/apps/files_reminders/l10n/sr.js b/apps/files_reminders/l10n/sr.js index 5fa1e1b2af1..2c95cf2bbee 100644 --- a/apps/files_reminders/l10n/sr.js +++ b/apps/files_reminders/l10n/sr.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Погледај фолдер", "Set file reminders" : "Постави подсетнике о фајлу", "**📣 File reminders**\n\nSet file reminders." : "**📣 Подсетници о фајлу**\n\nПостављање подсетника о фајлу.", + "We will remind you of this file" : "Подсетићемо вас на овај фајл", "Please choose a valid date & time" : "Молимо вас да изаберете исправни датум и време", "Cancel" : "Откажи", "Set reminder" : "Постави подсетник", + "Set reminder for \"{fileName}\"" : "Постави подсетник за „{fileName}”", "Set reminder at custom date & time" : "Постави подсетник за произвољни датум и време", "Clear reminder" : "Обриши подсетник", "Reminder set for \"{fileName}\"" : "Подсетник је постављен за „{fileName}”", diff --git a/apps/files_reminders/l10n/sr.json b/apps/files_reminders/l10n/sr.json index e3f45c67284..97a03023b58 100644 --- a/apps/files_reminders/l10n/sr.json +++ b/apps/files_reminders/l10n/sr.json @@ -5,9 +5,11 @@ "View folder" : "Погледај фолдер", "Set file reminders" : "Постави подсетнике о фајлу", "**📣 File reminders**\n\nSet file reminders." : "**📣 Подсетници о фајлу**\n\nПостављање подсетника о фајлу.", + "We will remind you of this file" : "Подсетићемо вас на овај фајл", "Please choose a valid date & time" : "Молимо вас да изаберете исправни датум и време", "Cancel" : "Откажи", "Set reminder" : "Постави подсетник", + "Set reminder for \"{fileName}\"" : "Постави подсетник за „{fileName}”", "Set reminder at custom date & time" : "Постави подсетник за произвољни датум и време", "Clear reminder" : "Обриши подсетник", "Reminder set for \"{fileName}\"" : "Подсетник је постављен за „{fileName}”", diff --git a/apps/files_reminders/l10n/sv.js b/apps/files_reminders/l10n/sv.js index 57725b4b4cb..34218202353 100644 --- a/apps/files_reminders/l10n/sv.js +++ b/apps/files_reminders/l10n/sv.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Visa mapp", "Set file reminders" : "Ställ in filpåminnelser", "**📣 File reminders**\n\nSet file reminders." : "**📣 Filpåminnelser**\n\nStäll in filpåminnelser.", + "We will remind you of this file" : "Vi kommer att påminna dig om denna fil", "Please choose a valid date & time" : "Välj ett giltigt datum och tid", "Cancel" : "Avbryt", "Set reminder" : "Ställ in påminnelse", + "Set reminder for \"{fileName}\"" : "Ställ in påminnelse för \"{fileName}\"", "Set reminder at custom date & time" : "Ställ in påminnelse vid anpassat datum och tid", "Clear reminder" : "Rensa påminnelse", "Reminder set for \"{fileName}\"" : "Påminnelse inställd för \"{fileName}\"", diff --git a/apps/files_reminders/l10n/sv.json b/apps/files_reminders/l10n/sv.json index 19bc79b6ffa..8f00e51d917 100644 --- a/apps/files_reminders/l10n/sv.json +++ b/apps/files_reminders/l10n/sv.json @@ -5,9 +5,11 @@ "View folder" : "Visa mapp", "Set file reminders" : "Ställ in filpåminnelser", "**📣 File reminders**\n\nSet file reminders." : "**📣 Filpåminnelser**\n\nStäll in filpåminnelser.", + "We will remind you of this file" : "Vi kommer att påminna dig om denna fil", "Please choose a valid date & time" : "Välj ett giltigt datum och tid", "Cancel" : "Avbryt", "Set reminder" : "Ställ in påminnelse", + "Set reminder for \"{fileName}\"" : "Ställ in påminnelse för \"{fileName}\"", "Set reminder at custom date & time" : "Ställ in påminnelse vid anpassat datum och tid", "Clear reminder" : "Rensa påminnelse", "Reminder set for \"{fileName}\"" : "Påminnelse inställd för \"{fileName}\"", diff --git a/apps/files_reminders/l10n/tr.js b/apps/files_reminders/l10n/tr.js index c5c021cfaf7..76b7108a4a0 100644 --- a/apps/files_reminders/l10n/tr.js +++ b/apps/files_reminders/l10n/tr.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Klasörü görüntüle", "Set file reminders" : "Dosya anımsatıcıları ayarla", "**📣 File reminders**\n\nSet file reminders." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarla.", + "We will remind you of this file" : "Size bu dosyayı anımsatacağız", "Please choose a valid date & time" : "Lütfen geçerli bir tarih ve saat seçin", "Cancel" : "İptal", "Set reminder" : "Anımsatıcı ayarla", + "Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla", "Set reminder at custom date & time" : "Özel bir tarih ve saat için anımsatıcı ayarla", "Clear reminder" : "Anımsatıcıyı temizle", "Reminder set for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarlandı", diff --git a/apps/files_reminders/l10n/tr.json b/apps/files_reminders/l10n/tr.json index e2f9af0457f..2e7990f78fe 100644 --- a/apps/files_reminders/l10n/tr.json +++ b/apps/files_reminders/l10n/tr.json @@ -5,9 +5,11 @@ "View folder" : "Klasörü görüntüle", "Set file reminders" : "Dosya anımsatıcıları ayarla", "**📣 File reminders**\n\nSet file reminders." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarla.", + "We will remind you of this file" : "Size bu dosyayı anımsatacağız", "Please choose a valid date & time" : "Lütfen geçerli bir tarih ve saat seçin", "Cancel" : "İptal", "Set reminder" : "Anımsatıcı ayarla", + "Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla", "Set reminder at custom date & time" : "Özel bir tarih ve saat için anımsatıcı ayarla", "Clear reminder" : "Anımsatıcıyı temizle", "Reminder set for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarlandı", diff --git a/apps/files_reminders/l10n/uk.js b/apps/files_reminders/l10n/uk.js index c3351de57dd..8b1b055cdc8 100644 --- a/apps/files_reminders/l10n/uk.js +++ b/apps/files_reminders/l10n/uk.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "Переглянути каталог", "Set file reminders" : "Встановити нагадування для файлу", "**📣 File reminders**\n\nSet file reminders." : "**📣 Нагадування для файлів**\n\nВстановити нагадування для файлу.", + "We will remind you of this file" : "Ми нагадаємо вам про цей файл.", "Please choose a valid date & time" : "Виберіть дійсні дату та час", "Cancel" : "Відміна", "Set reminder" : "Встановити нагадування", + "Set reminder for \"{fileName}\"" : "Встановити нагадування для \"{fileName}\"", "Set reminder at custom date & time" : "Встановити нагадування на власну дату та час", "Clear reminder" : "Зняти нагадування", "Reminder set for \"{fileName}\"" : "Встановлено нагадування для \"{fileName}\"", diff --git a/apps/files_reminders/l10n/uk.json b/apps/files_reminders/l10n/uk.json index 8a4238739cc..061b6cffb5d 100644 --- a/apps/files_reminders/l10n/uk.json +++ b/apps/files_reminders/l10n/uk.json @@ -5,9 +5,11 @@ "View folder" : "Переглянути каталог", "Set file reminders" : "Встановити нагадування для файлу", "**📣 File reminders**\n\nSet file reminders." : "**📣 Нагадування для файлів**\n\nВстановити нагадування для файлу.", + "We will remind you of this file" : "Ми нагадаємо вам про цей файл.", "Please choose a valid date & time" : "Виберіть дійсні дату та час", "Cancel" : "Відміна", "Set reminder" : "Встановити нагадування", + "Set reminder for \"{fileName}\"" : "Встановити нагадування для \"{fileName}\"", "Set reminder at custom date & time" : "Встановити нагадування на власну дату та час", "Clear reminder" : "Зняти нагадування", "Reminder set for \"{fileName}\"" : "Встановлено нагадування для \"{fileName}\"", diff --git a/apps/files_reminders/l10n/zh_TW.js b/apps/files_reminders/l10n/zh_TW.js index 347855a6c54..bbd2c8c2ab7 100644 --- a/apps/files_reminders/l10n/zh_TW.js +++ b/apps/files_reminders/l10n/zh_TW.js @@ -7,9 +7,11 @@ OC.L10N.register( "View folder" : "檢視資料夾", "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders." : "**📣 檔案提醒**\n\n設定檔案提醒。", + "We will remind you of this file" : "我們會提醒您該檔案", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Cancel" : "取消", "Set reminder" : "設定提醒", + "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", "Set reminder at custom date & time" : "設定自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", diff --git a/apps/files_reminders/l10n/zh_TW.json b/apps/files_reminders/l10n/zh_TW.json index 9752a3b26d8..306ee3b112a 100644 --- a/apps/files_reminders/l10n/zh_TW.json +++ b/apps/files_reminders/l10n/zh_TW.json @@ -5,9 +5,11 @@ "View folder" : "檢視資料夾", "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders." : "**📣 檔案提醒**\n\n設定檔案提醒。", + "We will remind you of this file" : "我們會提醒您該檔案", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Cancel" : "取消", "Set reminder" : "設定提醒", + "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", "Set reminder at custom date & time" : "設定自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index 5d404040a26..ea8c0346564 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -16,7 +16,7 @@ OC.L10N.register( "Invalid server URL" : "Neplatná URL serveru", "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud", "File shares" : "Sdílení souborů", - "Downloaded via public link" : "Staženo pomocí veřejného odkazu", + "Downloaded via public link" : "Staženo prostřednictvím veřejného odkazu", "Downloaded by {email}" : "Stáhnul(a) si {email}", "{file} downloaded via public link" : "{file} stažen pomocí veřejného odkazu", "{email} downloaded {file}" : "{email} stáhnul(a) {file}", @@ -31,7 +31,7 @@ OC.L10N.register( "{actor} removed group {group} from {file}" : "{actor} odstranil(a) skupinu {group} z {file}", "Share for file {file} with group {group} expired" : "Platnost sdílení pro soubor {file} se skupinu {group} skončila", "Shared as public link" : "Sdíleno jako veřejný odkaz", - "Removed public link" : "Odstranil(a) veřejný odkaz", + "Removed public link" : "Odebrán veřejný odkaz", "Public link expired" : "Platnost veřejného odkazu skončila", "{actor} shared as public link" : "{actor} nasdílel(a) jako veřejný odkaz", "{actor} removed public link" : "{actor} odstranil(a) veřejný odkaz", @@ -77,7 +77,7 @@ OC.L10N.register( "Could not delete share" : "Sdílení se nedaří smazat", "Please specify a file or folder path" : "Zadejte popis umístění souboru či složky", "Wrong path, file/folder does not exist" : "Nesprávný popis umístění – soubor/složka neexistuje", - "Could not create share" : "Nelze vytvořit sdílení", + "Could not create share" : "Sdílení se nepodařilo vytvořit", "Invalid permissions" : "Neplatná oprávnění", "Please specify a valid user" : "Zadejte platného uživatele", "Group sharing is disabled by the administrator" : "Skupinové sdílení bylo zakázáno správcem", @@ -98,7 +98,7 @@ OC.L10N.register( "Not a directory" : "Není adresář", "Could not lock node" : "Uzel se nedaří uzamknout", "Could not lock path" : "Nepodařilo se uzamknout popis umístění", - "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", + "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr", "Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET", "Share must have READ permission if UPDATE or DELETE permission is set" : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.", @@ -228,6 +228,7 @@ OC.L10N.register( "_Restore share_::_Restore shares_" : ["Obnovit sdílení","Obnovit sdílení","Obnovit sdílení","Obnovit sdílení"], "Shared" : "Sdíleno", "Shared by {ownerDisplayName}" : "Nasdílel(a) {ownerDisplayName}", + "Show sharing options" : "Zobrazit předvolby pro sdílení", "Link to a file" : "Odkaz na soubor", "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}", "Error creating the share" : "Chyba při vytváření sdílení", diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index d53d4a333f7..35465328548 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -14,7 +14,7 @@ "Invalid server URL" : "Neplatná URL serveru", "Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud", "File shares" : "Sdílení souborů", - "Downloaded via public link" : "Staženo pomocí veřejného odkazu", + "Downloaded via public link" : "Staženo prostřednictvím veřejného odkazu", "Downloaded by {email}" : "Stáhnul(a) si {email}", "{file} downloaded via public link" : "{file} stažen pomocí veřejného odkazu", "{email} downloaded {file}" : "{email} stáhnul(a) {file}", @@ -29,7 +29,7 @@ "{actor} removed group {group} from {file}" : "{actor} odstranil(a) skupinu {group} z {file}", "Share for file {file} with group {group} expired" : "Platnost sdílení pro soubor {file} se skupinu {group} skončila", "Shared as public link" : "Sdíleno jako veřejný odkaz", - "Removed public link" : "Odstranil(a) veřejný odkaz", + "Removed public link" : "Odebrán veřejný odkaz", "Public link expired" : "Platnost veřejného odkazu skončila", "{actor} shared as public link" : "{actor} nasdílel(a) jako veřejný odkaz", "{actor} removed public link" : "{actor} odstranil(a) veřejný odkaz", @@ -75,7 +75,7 @@ "Could not delete share" : "Sdílení se nedaří smazat", "Please specify a file or folder path" : "Zadejte popis umístění souboru či složky", "Wrong path, file/folder does not exist" : "Nesprávný popis umístění – soubor/složka neexistuje", - "Could not create share" : "Nelze vytvořit sdílení", + "Could not create share" : "Sdílení se nepodařilo vytvořit", "Invalid permissions" : "Neplatná oprávnění", "Please specify a valid user" : "Zadejte platného uživatele", "Group sharing is disabled by the administrator" : "Skupinové sdílení bylo zakázáno správcem", @@ -96,7 +96,7 @@ "Not a directory" : "Není adresář", "Could not lock node" : "Uzel se nedaří uzamknout", "Could not lock path" : "Nepodařilo se uzamknout popis umístění", - "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", + "Wrong or no update parameter given" : "Zadán nesprávný nebo stejný jako původní parametr", "Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET", "Share must have READ permission if UPDATE or DELETE permission is set" : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.", @@ -226,6 +226,7 @@ "_Restore share_::_Restore shares_" : ["Obnovit sdílení","Obnovit sdílení","Obnovit sdílení","Obnovit sdílení"], "Shared" : "Sdíleno", "Shared by {ownerDisplayName}" : "Nasdílel(a) {ownerDisplayName}", + "Show sharing options" : "Zobrazit předvolby pro sdílení", "Link to a file" : "Odkaz na soubor", "Error creating the share: {errorMessage}" : "Chyba při vytváření sdílení: {errorMessage}", "Error creating the share" : "Chyba při vytváření sdílení", diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js index a24f7bf4a0e..8219234377a 100644 --- a/apps/files_sharing/l10n/hu.js +++ b/apps/files_sharing/l10n/hu.js @@ -228,6 +228,7 @@ OC.L10N.register( "_Restore share_::_Restore shares_" : ["Megosztás visszaállítása","Megosztások visszaállítása"], "Shared" : "Megosztva", "Shared by {ownerDisplayName}" : "Megosztotta: {ownerDisplayName}", + "Show sharing options" : "Megosztási beállítások mutatása", "Link to a file" : "Hivatkozás egy fájlhoz", "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}", "Error creating the share" : "Megosztás létrehozása sikertelen", diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json index 90a3f2b96f8..70490f74491 100644 --- a/apps/files_sharing/l10n/hu.json +++ b/apps/files_sharing/l10n/hu.json @@ -226,6 +226,7 @@ "_Restore share_::_Restore shares_" : ["Megosztás visszaállítása","Megosztások visszaállítása"], "Shared" : "Megosztva", "Shared by {ownerDisplayName}" : "Megosztotta: {ownerDisplayName}", + "Show sharing options" : "Megosztási beállítások mutatása", "Link to a file" : "Hivatkozás egy fájlhoz", "Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}", "Error creating the share" : "Megosztás létrehozása sikertelen", diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index f666fb5d5dd..2d3632f4189 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -228,6 +228,7 @@ OC.L10N.register( "_Restore share_::_Restore shares_" : ["共有を復元する"], "Shared" : "共有中", "Shared by {ownerDisplayName}" : "{ownerDisplayName} が共有済み", + "Show sharing options" : "共有オプションを表示", "Link to a file" : "ファイルへリンク", "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}", "Error creating the share" : "共有の作成中にエラーが発生しました", diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index 1bca7e6a7b9..1951662c63b 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -226,6 +226,7 @@ "_Restore share_::_Restore shares_" : ["共有を復元する"], "Shared" : "共有中", "Shared by {ownerDisplayName}" : "{ownerDisplayName} が共有済み", + "Show sharing options" : "共有オプションを表示", "Link to a file" : "ファイルへリンク", "Error creating the share: {errorMessage}" : "共有の作成中にエラーが発生しました: {errorMessage}", "Error creating the share" : "共有の作成中にエラーが発生しました", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 52aa9d56a35..3700cd2b14d 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -228,6 +228,7 @@ OC.L10N.register( "_Restore share_::_Restore shares_" : ["Återställ delning","Återställ delningar"], "Shared" : "Delad", "Shared by {ownerDisplayName}" : "Delad av {ownerDisplayName}", + "Show sharing options" : "Visa delningsalternativ", "Link to a file" : "Länka till en fil", "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}", "Error creating the share" : "Kunde inte skapa delning", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 1ab4978f7fe..1681d2ad954 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -226,6 +226,7 @@ "_Restore share_::_Restore shares_" : ["Återställ delning","Återställ delningar"], "Shared" : "Delad", "Shared by {ownerDisplayName}" : "Delad av {ownerDisplayName}", + "Show sharing options" : "Visa delningsalternativ", "Link to a file" : "Länka till en fil", "Error creating the share: {errorMessage}" : "Kunde inte skapa delningen: {errorMessage}", "Error creating the share" : "Kunde inte skapa delning", diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index 8dbc75ba512..82ba6c6c06e 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -228,6 +228,7 @@ OC.L10N.register( "_Restore share_::_Restore shares_" : ["Відновити спільний ресурс","Відновити спільні ресурси","Відновити спільні ресурси","Відновити спільні ресурси"], "Shared" : "Спільні", "Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ", + "Show sharing options" : "Показати налаштування спільного доступу", "Link to a file" : "Посилання на файл", "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}", "Error creating the share" : "Помилка під час створення спільного ресурсу", diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index bd1906a4998..96772382a06 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -226,6 +226,7 @@ "_Restore share_::_Restore shares_" : ["Відновити спільний ресурс","Відновити спільні ресурси","Відновити спільні ресурси","Відновити спільні ресурси"], "Shared" : "Спільні", "Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ", + "Show sharing options" : "Показати налаштування спільного доступу", "Link to a file" : "Посилання на файл", "Error creating the share: {errorMessage}" : "Помилка під час створення спільного ресурсу: {errorMessage}", "Error creating the share" : "Помилка під час створення спільного ресурсу", diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 594660661ca..af8e722c609 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -162,6 +162,10 @@ class Cache extends CacheJail { } else { $entry['permissions'] = $this->storage->getPermissions($entry['path']); } + + if ($this->share->getNodeId() === $entry['fileid']) { + $entry['name'] = basename($this->share->getTarget()); + } } catch (StorageNotAvailableException $e) { // thrown by FailedStorage e.g. when the sharer does not exist anymore // (IDE may say the exception is never thrown – false negative) diff --git a/apps/files_sharing/tests/CacheTest.php b/apps/files_sharing/tests/CacheTest.php index f4f64bc6a32..50e5433d10f 100644 --- a/apps/files_sharing/tests/CacheTest.php +++ b/apps/files_sharing/tests/CacheTest.php @@ -88,6 +88,7 @@ class CacheTest extends TestCase { $this->view->file_put_contents('container/shareddir/subdir/another.txt', $textData); $this->view->file_put_contents('container/shareddir/subdir/another too.txt', $textData); $this->view->file_put_contents('container/shareddir/subdir/not a text file.xml', '<xml></xml>'); + $this->view->file_put_contents('simplefile.txt', $textData); [$this->ownerStorage,] = $this->view->resolvePath(''); $this->ownerCache = $this->ownerStorage->getCache(); @@ -302,6 +303,42 @@ class CacheTest extends TestCase { ); } + /** + * This covers a bug where the share owners name was propagated + * to the recipient in the recent files API response where the + * share recipient has a different target set + * + * https://github.com/nextcloud/server/issues/39879 + */ + public function testShareRenameOriginalFileInRecentResults() { + self::loginHelper(self::TEST_FILES_SHARING_API_USER1); + + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + $node = $rootFolder->get('simplefile.txt'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(IShare::TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER3) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_READ); + $share = $this->shareManager->createShare($share); + $share->setStatus(IShare::STATUS_ACCEPTED); + $this->shareManager->updateShare($share); + + self::loginHelper(self::TEST_FILES_SHARING_API_USER1); + $node->move(self::TEST_FILES_SHARING_API_USER1 . '/files/simplefile2.txt'); + + self::loginHelper(self::TEST_FILES_SHARING_API_USER3); + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER3); + $recents = $rootFolder->getRecent(10); + self::assertEquals([ + 'welcome.txt', + 'simplefile.txt' + ], array_map(function($node) { + return $node->getFileInfo()['name']; + }, $recents)); + } + public function testGetFolderContentsWhenSubSubdirShared() { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); diff --git a/apps/oauth2/l10n/ru.js b/apps/oauth2/l10n/ru.js index 08a48dc958e..0f55fc9e073 100644 --- a/apps/oauth2/l10n/ru.js +++ b/apps/oauth2/l10n/ru.js @@ -12,7 +12,8 @@ OC.L10N.register( "Redirection URI" : "URI перенаправления", "Client Identifier" : "Идентификатор клиента", "Secret key" : "Секретный ключ", - "Add client" : "Добавить клиента", + "Delete client" : "Удалить клиент", + "Add client" : "Добавить клиент", "Add" : "Добавить", "Show client secret" : "Показать секретный ключ клиента", "Delete" : "Удалить", diff --git a/apps/oauth2/l10n/ru.json b/apps/oauth2/l10n/ru.json index 74f1acab1fa..bd827f22f90 100644 --- a/apps/oauth2/l10n/ru.json +++ b/apps/oauth2/l10n/ru.json @@ -10,7 +10,8 @@ "Redirection URI" : "URI перенаправления", "Client Identifier" : "Идентификатор клиента", "Secret key" : "Секретный ключ", - "Add client" : "Добавить клиента", + "Delete client" : "Удалить клиент", + "Add client" : "Добавить клиент", "Add" : "Добавить", "Show client secret" : "Показать секретный ключ клиента", "Delete" : "Удалить", diff --git a/apps/settings/l10n/ar.js b/apps/settings/l10n/ar.js index 94eb8479a29..a3aefac88eb 100644 --- a/apps/settings/l10n/ar.js +++ b/apps/settings/l10n/ar.js @@ -167,6 +167,8 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "لا يحتوي PHP على دعم FreeType ، مما يؤدي إلى كسر صور الملف الشخصي وواجهة الإعدادات.", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "يبدو أن PHP لم يتم إعدادها بشكل صحيح للاستعلام عن متغيرات بيئة النظام. يقوم الاختبار باستخدام getenv (\"PATH\") بإرجاع استجابة فارغة فقط.", + "PHP memory limit" : "PHP memory limit", + "The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.", "PHP modules" : "وحدات الـ PHP", "This instance is missing some required PHP modules. It is required to install them: %s." : "يفتقد هذا الخادوم إلى بعض الأجزاء modules من PHP و التي يتوجب تثبيتها: %s.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "هذا الخادوم يفتقد إلى بعض الأجزاء modules من PHP المُوصى بها. لتحسين الأداء و التوافقية يُنصح بشدة بتثبيتها: %s.", @@ -389,7 +391,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "الإعداد الأكثر تقييدًا للرؤية أو النطاق في ملف تعريفك الشخصي هو الذي سيتم تطبيقه. على سبيل المثال، إذا تم تعيين الرؤية على \"إظهار للجميع\" و تم تعيين النطاق على \"خاص\"، فسيتم تطبيق \"خاص\".", "Unable to update visibility of {displayId}" : "تعذر تحديث رؤية {displayId}", "Your role" : "وظيفتك your role", - "Your Twitter handle" : "مَمْسَكُكَ your handle في تويتر ", + "Your X (formerly Twitter) handle" : "مِقبَض handle منصة X (تويتر سابقاً)", "Your website" : "صفحتك على الوب", "No {property} set" : "لم يتم تعيين أي {property} ", "Unable to update {property}" : "تعذّر تحديث {property}", @@ -512,7 +514,7 @@ OC.L10N.register( "Organisation" : "المؤسسة", "Phone number" : "رقم الهاتف", "Role" : "الوظيفة", - "Twitter" : "الحساب على تويتر Twitter", + "X (formerly Twitter)" : "منصة X (تويتر سابقاً)", "Fediverse (e.g. Mastodon)" : "الحساب على شبكات التواصل الاجتماعي \"فيدي فيرس\" Fedivers (مثل Mastodon)", "Website" : "صفحة الويب", "Profile visibility" : "رؤية الملف الشخصي", @@ -619,6 +621,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "صيغة png أو jpg، و حجم أقصاه 20 ميغا بايت", "Your email address" : "إيميلك", "Your location" : "موقعك", + "Your Twitter handle" : "مَمْسَكُكَ your handle في تويتر ", "Add new password" : "إضافة كلمة مرور جديدة", "Add new email address" : "إضافة عنوان بريد إلكتروني جديد", "Edit User" : "تعديل المستخدم", @@ -630,6 +633,7 @@ OC.L10N.register( "Default quota:" : "الحصة الافتراضية:", "Show Languages" : "إعرِض اللغات", "Send email to new user" : "إرسال بريد إلكتروني إلى المستخدم الجديد", + "Twitter" : "الحساب على تويتر Twitter", "Enable untested app" : "تفعيل التطبيق غير المُجرّب", "Plain" : "جَلِيُّ plain", "NT LAN Manager" : "مدير الشبكة المحلية LAN NT", diff --git a/apps/settings/l10n/ar.json b/apps/settings/l10n/ar.json index 416f11f8ff9..de69f6e804d 100644 --- a/apps/settings/l10n/ar.json +++ b/apps/settings/l10n/ar.json @@ -165,6 +165,8 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "لا يحتوي PHP على دعم FreeType ، مما يؤدي إلى كسر صور الملف الشخصي وواجهة الإعدادات.", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "يبدو أن PHP لم يتم إعدادها بشكل صحيح للاستعلام عن متغيرات بيئة النظام. يقوم الاختبار باستخدام getenv (\"PATH\") بإرجاع استجابة فارغة فقط.", + "PHP memory limit" : "PHP memory limit", + "The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.", "PHP modules" : "وحدات الـ PHP", "This instance is missing some required PHP modules. It is required to install them: %s." : "يفتقد هذا الخادوم إلى بعض الأجزاء modules من PHP و التي يتوجب تثبيتها: %s.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "هذا الخادوم يفتقد إلى بعض الأجزاء modules من PHP المُوصى بها. لتحسين الأداء و التوافقية يُنصح بشدة بتثبيتها: %s.", @@ -387,7 +389,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "الإعداد الأكثر تقييدًا للرؤية أو النطاق في ملف تعريفك الشخصي هو الذي سيتم تطبيقه. على سبيل المثال، إذا تم تعيين الرؤية على \"إظهار للجميع\" و تم تعيين النطاق على \"خاص\"، فسيتم تطبيق \"خاص\".", "Unable to update visibility of {displayId}" : "تعذر تحديث رؤية {displayId}", "Your role" : "وظيفتك your role", - "Your Twitter handle" : "مَمْسَكُكَ your handle في تويتر ", + "Your X (formerly Twitter) handle" : "مِقبَض handle منصة X (تويتر سابقاً)", "Your website" : "صفحتك على الوب", "No {property} set" : "لم يتم تعيين أي {property} ", "Unable to update {property}" : "تعذّر تحديث {property}", @@ -510,7 +512,7 @@ "Organisation" : "المؤسسة", "Phone number" : "رقم الهاتف", "Role" : "الوظيفة", - "Twitter" : "الحساب على تويتر Twitter", + "X (formerly Twitter)" : "منصة X (تويتر سابقاً)", "Fediverse (e.g. Mastodon)" : "الحساب على شبكات التواصل الاجتماعي \"فيدي فيرس\" Fedivers (مثل Mastodon)", "Website" : "صفحة الويب", "Profile visibility" : "رؤية الملف الشخصي", @@ -617,6 +619,7 @@ "png or jpg, max. 20 MB" : "صيغة png أو jpg، و حجم أقصاه 20 ميغا بايت", "Your email address" : "إيميلك", "Your location" : "موقعك", + "Your Twitter handle" : "مَمْسَكُكَ your handle في تويتر ", "Add new password" : "إضافة كلمة مرور جديدة", "Add new email address" : "إضافة عنوان بريد إلكتروني جديد", "Edit User" : "تعديل المستخدم", @@ -628,6 +631,7 @@ "Default quota:" : "الحصة الافتراضية:", "Show Languages" : "إعرِض اللغات", "Send email to new user" : "إرسال بريد إلكتروني إلى المستخدم الجديد", + "Twitter" : "الحساب على تويتر Twitter", "Enable untested app" : "تفعيل التطبيق غير المُجرّب", "Plain" : "جَلِيُّ plain", "NT LAN Manager" : "مدير الشبكة المحلية LAN NT", diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js index 2a8b9fec74f..a04d712c3cb 100644 --- a/apps/settings/l10n/bg.js +++ b/apps/settings/l10n/bg.js @@ -330,7 +330,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.", "Unable to update visibility of {displayId}" : "Не може да се актуализира видимостта на {displayId}", "Your role" : "Вашата роля", - "Your Twitter handle" : "Вашият Twitter манипулатор", "Your website" : "Вашата уеб страница", "No {property} set" : "Не е зададено {property}", "Unable to update {property}" : "Не може да се актуализира {property}", @@ -413,7 +412,6 @@ OC.L10N.register( "Organisation" : "Организация", "Phone number" : "Тел. номер", "Role" : "Роля", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)", "Website" : "Уеб страница", "Profile visibility" : "Видимост на профил", @@ -511,6 +509,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png или jpg, макс. 20 MB", "Your email address" : "Вашият имейл адрес", "Your location" : "Вашето местоположение", + "Your Twitter handle" : "Вашият Twitter манипулатор", "Add new password" : "Въведете новата парола", "Add new email address" : "Смени адреса на елетронната поща", "Edit User" : "Редактиране на потребител", @@ -522,6 +521,7 @@ OC.L10N.register( "Default quota:" : "Стандартна квота:", "Show Languages" : "Показвай ползвания език", "Send email to new user" : "Изпращай писмо към нов потребител", + "Twitter" : "Twitter", "Enable untested app" : "Включване (нетествано приложение)", "Plain" : "Обикновен", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json index 45badce30ed..d3afd9a56dd 100644 --- a/apps/settings/l10n/bg.json +++ b/apps/settings/l10n/bg.json @@ -328,7 +328,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.", "Unable to update visibility of {displayId}" : "Не може да се актуализира видимостта на {displayId}", "Your role" : "Вашата роля", - "Your Twitter handle" : "Вашият Twitter манипулатор", "Your website" : "Вашата уеб страница", "No {property} set" : "Не е зададено {property}", "Unable to update {property}" : "Не може да се актуализира {property}", @@ -411,7 +410,6 @@ "Organisation" : "Организация", "Phone number" : "Тел. номер", "Role" : "Роля", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)", "Website" : "Уеб страница", "Profile visibility" : "Видимост на профил", @@ -509,6 +507,7 @@ "png or jpg, max. 20 MB" : "png или jpg, макс. 20 MB", "Your email address" : "Вашият имейл адрес", "Your location" : "Вашето местоположение", + "Your Twitter handle" : "Вашият Twitter манипулатор", "Add new password" : "Въведете новата парола", "Add new email address" : "Смени адреса на елетронната поща", "Edit User" : "Редактиране на потребител", @@ -520,6 +519,7 @@ "Default quota:" : "Стандартна квота:", "Show Languages" : "Показвай ползвания език", "Send email to new user" : "Изпращай писмо към нов потребител", + "Twitter" : "Twitter", "Enable untested app" : "Включване (нетествано приложение)", "Plain" : "Обикновен", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/br.js b/apps/settings/l10n/br.js index 2501cb1c391..6794874b2d3 100644 --- a/apps/settings/l10n/br.js +++ b/apps/settings/l10n/br.js @@ -285,7 +285,6 @@ OC.L10N.register( "Full name" : "Tout an anv", "Phone number" : "Niverenn pellgomzer", "Role" : "Roll", - "Twitter" : "Twitter", "Website" : "Lec'hien web", "Locale" : "Diabarzh", "Active apps" : "Meziantoù lakaet en dro", @@ -362,6 +361,7 @@ OC.L10N.register( "Default quota:" : "Quota dre ziouer :", "Show Languages" : "Diskouez Yezhoù", "Send email to new user" : "Kes postel d'an implijer nevez", + "Twitter" : "Twitter", "Enable untested app" : "Aotreañ ar meziant disamprouet", "Plain" : "Sklaer", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/br.json b/apps/settings/l10n/br.json index 38723d90ab8..07c47c35da2 100644 --- a/apps/settings/l10n/br.json +++ b/apps/settings/l10n/br.json @@ -283,7 +283,6 @@ "Full name" : "Tout an anv", "Phone number" : "Niverenn pellgomzer", "Role" : "Roll", - "Twitter" : "Twitter", "Website" : "Lec'hien web", "Locale" : "Diabarzh", "Active apps" : "Meziantoù lakaet en dro", @@ -360,6 +359,7 @@ "Default quota:" : "Quota dre ziouer :", "Show Languages" : "Diskouez Yezhoù", "Send email to new user" : "Kes postel d'an implijer nevez", + "Twitter" : "Twitter", "Enable untested app" : "Aotreañ ar meziant disamprouet", "Plain" : "Sklaer", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/ca.js b/apps/settings/l10n/ca.js index 02647d1a9f9..4f551dc3564 100644 --- a/apps/settings/l10n/ca.js +++ b/apps/settings/l10n/ca.js @@ -342,7 +342,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "El paràmetre més restrictiu de visibilitat o abast es respecta al vostre perfil. Per exemple, si la visibilitat s'estableix a \"Mostra a tothom\" i l'abast s'estableix a \"Privat\", es respectarà \"Privat\".", "Unable to update visibility of {displayId}" : "No es pot actualitzar la visibilitat de {displayId}", "Your role" : "El teu rol", - "Your Twitter handle" : "El teu identificador de Twitter", "Your website" : "El teu lloc web", "No {property} set" : "No hi ha {property} establert", "Unable to update {property}" : "No es pot actualitzar {property}", @@ -458,7 +457,6 @@ OC.L10N.register( "Organisation" : "Organització", "Phone number" : "Número de telèfon", "Role" : "Càrrec", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (p. ex. Mastodon)", "Website" : "Lloc web", "Profile visibility" : "Visibilitat del perfil", @@ -560,6 +558,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png o jpg, màx. 20 MB", "Your email address" : "El vostre correu electrònic", "Your location" : "La vostra localització", + "Your Twitter handle" : "El teu identificador de Twitter", "Add new password" : "Afegeix una nova contrasenya", "Add new email address" : "Afegeix una nova adreça de correu electrònic", "Edit User" : "Edita Usuari", @@ -571,6 +570,7 @@ OC.L10N.register( "Default quota:" : "Quota per defecte:", "Show Languages" : "Mostra els idiomes", "Send email to new user" : "Enviar correu electrònic al nou usuari", + "Twitter" : "Twitter", "Enable untested app" : "Habilita aplicacions no provades", "Plain" : "Net", "NT LAN Manager" : "Gestor NT LAN", diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json index 1241f152688..72a49e4b56e 100644 --- a/apps/settings/l10n/ca.json +++ b/apps/settings/l10n/ca.json @@ -340,7 +340,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "El paràmetre més restrictiu de visibilitat o abast es respecta al vostre perfil. Per exemple, si la visibilitat s'estableix a \"Mostra a tothom\" i l'abast s'estableix a \"Privat\", es respectarà \"Privat\".", "Unable to update visibility of {displayId}" : "No es pot actualitzar la visibilitat de {displayId}", "Your role" : "El teu rol", - "Your Twitter handle" : "El teu identificador de Twitter", "Your website" : "El teu lloc web", "No {property} set" : "No hi ha {property} establert", "Unable to update {property}" : "No es pot actualitzar {property}", @@ -456,7 +455,6 @@ "Organisation" : "Organització", "Phone number" : "Número de telèfon", "Role" : "Càrrec", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (p. ex. Mastodon)", "Website" : "Lloc web", "Profile visibility" : "Visibilitat del perfil", @@ -558,6 +556,7 @@ "png or jpg, max. 20 MB" : "png o jpg, màx. 20 MB", "Your email address" : "El vostre correu electrònic", "Your location" : "La vostra localització", + "Your Twitter handle" : "El teu identificador de Twitter", "Add new password" : "Afegeix una nova contrasenya", "Add new email address" : "Afegeix una nova adreça de correu electrònic", "Edit User" : "Edita Usuari", @@ -569,6 +568,7 @@ "Default quota:" : "Quota per defecte:", "Show Languages" : "Mostra els idiomes", "Send email to new user" : "Enviar correu electrònic al nou usuari", + "Twitter" : "Twitter", "Enable untested app" : "Habilita aplicacions no provades", "Plain" : "Net", "NT LAN Manager" : "Gestor NT LAN", diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js index 0022b250991..5753bd6b971 100644 --- a/apps/settings/l10n/cs.js +++ b/apps/settings/l10n/cs.js @@ -140,29 +140,60 @@ OC.L10N.register( "Reshare" : "Sdílet dál dalším", "Unlimited" : "Neomezeně", "Verifying" : "Ověřuje se", + "Old user imported certificates" : "Staré uživatelem importované certifikáty", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Úloha na pozadí čeká na kontrolu uživatelských importovaných SSL certifikátů. Zkuste to prosím později.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Nacházejí se zde některé SSL certifikáty, importované uživatelem, které se už s Nextcloud 21 nepoužívají. Lze je naimportovat v příkazovém řádku pomocí příkazu „occ security:certificates:import“. Popisy jejich umístění v adresáři s daty jsou uvedeny níže.", + "Default phone region" : "Výchozí mezinárodní předčíslí", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Vaše instalace nemá nastavenou žádnou výchozí oblast telefonu. To je nutné k ověření telefonních čísel v nastavení profilu bez kódu země. Chcete-li povolit čísla bez kódu země, přidejte do svého souboru s nastaveními řetězec „default_phone_region“ s příslušným kódem ISO 3166-1 regionu.", + "Email test" : "Zkouška e-mailu", + "Email test was successfully sent" : "Testovací e-mail byl úspěšně odeslán", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Doposud jste nenastavili či neověřili jste nastavení pro e-mailový server. Přejděte do „Základních nastavení“ a nastavte je. Poté použijte tlačítko „Odeslat e-mail“ níže ve formuláři a svá nastavení ověřte.", + "File locking" : "Zamykání souborů", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakční zamykání souborů je vypnuto, což může vést k problémům při souběžném přístupu. Abyste se jim vyhnuli, zapněte v config.php volbu „filelocking.enabled“.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Databáze je používaná pro transakční zamykání souborů. Pokud chcete vylepšit výkon, nastavte memcache (pokud je k dispozici).", "Internet connectivity" : "Připojení k internetu", "Internet connectivity is disabled in configuration file." : "Připojení k Internetu je vypnuté v souboru s nastaveními.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Tento server nemá funkční připojení k Internetu: Nedaří se připojit k vícero koncovým bodům. Některé moduly jako např. externí úložiště, upozorňování na dostupnost aktualizací, nebo instalace aplikací třetích stran kvůli tomu nebudou fungovat. Přístup k souborům z jiných míst a odesílání e-mailů s upozorněními také nemusí fungovat. Pokud chcete využívat všechny možnosti tohoto serveru, doporučujeme zprovoznit připojení k Internetu.", + "Old server-side-encryption" : "Původní šifrování na straně serveru", "Disabled" : "Vypnuto", "The old server-side-encryption format is enabled. We recommend disabling this." : "Je zapnutý starý formát šifrování na straně serveru. Je doporučeno toto vypnout.", + "Memcache" : "Memcache", + "Configured" : "Nastaveno", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nebylo nastaveno žádné ukládání do mezipaměti. Pokud chcete vylepšit výkon, nastavte memcache (pokud je k dispozici).", + "PHP default charset" : "Výchozí znaková sada pro PHP", "PHP configuration option default_charset should be UTF-8" : "Volba nastavení PHP default_charset by měla být UTF-8", + "Freetype" : "Freetype", "Supported" : "Podporováno", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vámi využívaná verze PHP nepodporuje FreeType, což bude mít za následky vizuální nedostatky u obrázků profilů a v rozhraní pro nastavování.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá se, že PHP není správně nastaveno pro dotazování proměnných prostředí systému. Test s příkazem getenv(\"PATH\") vrátí pouze prázdnou odpověď.", + "PHP memory limit" : "PHP limit paměti", + "The PHP memory limit is below the recommended value of %s." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu %s.", "PHP modules" : "PHP moduly", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Tato instance postrádá některé potřebné PHP moduly. Je třeba je nainstalovat: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Této instanci chybí některé doporučené moduly pro PHP. V zájmu lepšího výkonu a kompatibility, je důrazně doporučeno je nainstalovat: %s.", + "PHP version" : "Verze PHP", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Nyní provozujete na PHP %s. Od Nextcloud 27 je PHP 8.0 už označeno jako zastaralé. Nextcloud 28 pak už může vyžadovat alespoň PHP 8.1. Co možná nejdříve přejděte na některou z oficiálně podporovaných verzí PHP, poskytovaných PHP Group.", "You are currently running PHP %s." : "Nyní provozujete na PHP %s.", + "PHP output_buffering option" : "Volba PHP output_buffering", "PHP configuration option output_buffering must be disabled" : "Je třeba aby volba nastavení PHP output_buffering byla vypnutá", + "Random generator" : "Generátor náhodnosti", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP nenalezlo žádný použitelný zdroj náhodnosti a to je velmi nedoporučováno z bezpečnostních důvodů.", + "Secure" : "Zabezpečené", + "Configuration file access rights" : "Přístupová práva na soubor s nastaveními", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Nastavení bylo přepnuto do režimu pouze pro čtení. To brání změnám prostřednictvím webového rozhraní. Dále při každé aktualizaci, je třeba soubor ručně zpřístupnit pro zápis.", "Nextcloud configuration file is writable" : "Do souboru s nastaveními pro Nextcloud lze zapisovat", + "Database version" : "Verze databáze", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Je používána verze MariaDB „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MariaDB 10.2 nebo novější.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Je používána verze MySQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MySQL 8.0 nebo MariaDB 10.2 a novější.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Je používána verze PostgreSQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje PostgreSQL 9.6 nebo novější.", + "Unknown database plaform" : "Neznámá databázová platforma", "Architecture" : "Architektura", + "64-bit" : "64bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP!", + "Database transaction isolation level" : "Stupeň izolace databázových transakcí", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze není spuštěná s úrovní izolace transakcí „READ COMMITTED“. Toto může způsobit problémy při paralelním spouštění více akcí současně.", + "Was not able to get transaction isolation level: %s" : "Nebylo možné získat stupeň izolace databázových transakcí: %s", "Profile information" : "Informace o profilu", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilový obrázek, celé jméno, e-mailová adresa, telefonní číslo, adresa, webové stránky, Twitter, organizace, role, úvod, životopis a to, zda je profil zapnutý", "Nextcloud settings" : "Nastavení Nextcloud", @@ -217,7 +248,7 @@ OC.L10N.register( "Level" : "Stupeň podrobnosti/závažnosti", "Actions" : "Akce", "Results from other categories" : "Výsledky z ostatních kategorií", - "No apps found for your version" : "Nebyly nalezeny aplikace pro vaši verzi", + "No apps found for your version" : "Nenalezeny žádné aplikace pro vámi využívanou verzi", "Disable all" : "Zakázat vše", "Download and enable all" : "Stáhnout si a zapnout vše", "_%n app has an update available_::_%n apps have an update available_" : ["pro %n aplikaci je k dispozici aktualizace","pro %n aplikace jsou k dispozici aktualizace","pro %n aplikací jsou k dispozici aktualizace","pro %n aplikace jsou k dispozici aktualizace"], @@ -290,7 +321,7 @@ OC.L10N.register( "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Poté co je zapnuto šifrování, jsou od toho bodu všechny nahrávané soubory šifrovány serverem. Vypnout šifrování bude možné pouze později, až bude šifrovací modul tuto možnost podporovat a po splnění všech nutných podmínek (tzn. nastavení klíčů pro obnovení).", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Šifrování samotné ještě nezaručuje bezpečnost systému. Pokud se chcete dozvědět víc o tom, jak aplikace pro šifrování funguje a jaké jsou podporované případy použití, naleznete to v dokumentaci.", "Be aware that encryption always increases the file size." : "Mějte na paměti, že šifrování vždy navýší velikost souboru.", - "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat, v případě zapnutého šifrování také zajistěte zálohu šifrovacích klíčů společně se zálohou dat.", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.", "This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?", "No encryption module loaded, please enable an encryption module in the app menu." : "Nenačten žádný šifrovací modul – zapněte ho v nabídce aplikace.", "Select default encryption module:" : "Vyberte výchozí šifrovací modul:", @@ -360,7 +391,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Ohledně vašeho profilu bude respektována to více omezující nastavení – například, pokud je viditelnost nastavená na „Zobrazit všem“ a rozsah je nastavený na „Soukromé“, je respektováno „Soukromé.", "Unable to update visibility of {displayId}" : "Nedaří se aktualizovat viditelnost {displayId}", "Your role" : "Vaše úloha", - "Your Twitter handle" : "Twitter účet", + "Your X (formerly Twitter) handle" : "Vaše přezdívka na X (dříve Twitter)", "Your website" : "Vlastní webová stránka", "No {property} set" : "Nenastaveno žádné {property}", "Unable to update {property}" : "Nedaří se aktualizovat {property}", @@ -483,7 +514,7 @@ OC.L10N.register( "Organisation" : "Organizace", "Phone number" : "Telefonní číslo", "Role" : "Role", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (dříve Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (např. Mastodon)", "Website" : "Webová stránka", "Profile visibility" : "Viditelnost profilu", @@ -590,6 +621,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png nebo jpg, nejvýše 20 MB", "Your email address" : "Vaše e-mailová adresa", "Your location" : "Kde se nacházíte", + "Your Twitter handle" : "Twitter účet", "Add new password" : "Přidat nové heslo", "Add new email address" : "Přidat novou e-mailovou adresu", "Edit User" : "Upravit uživatele", @@ -601,6 +633,7 @@ OC.L10N.register( "Default quota:" : "Výchozí kvóta:", "Show Languages" : "Zobrazit jazyky", "Send email to new user" : "Poslat novému uživateli e-mail", + "Twitter" : "Twitter", "Enable untested app" : "Zapnout nevyzkoušenou aplikaci", "Plain" : "V čitelné podobě", "NT LAN Manager" : "Správce NT LAN", diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json index 35fd7110faa..54b3a53b924 100644 --- a/apps/settings/l10n/cs.json +++ b/apps/settings/l10n/cs.json @@ -138,29 +138,60 @@ "Reshare" : "Sdílet dál dalším", "Unlimited" : "Neomezeně", "Verifying" : "Ověřuje se", + "Old user imported certificates" : "Staré uživatelem importované certifikáty", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Úloha na pozadí čeká na kontrolu uživatelských importovaných SSL certifikátů. Zkuste to prosím později.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Nacházejí se zde některé SSL certifikáty, importované uživatelem, které se už s Nextcloud 21 nepoužívají. Lze je naimportovat v příkazovém řádku pomocí příkazu „occ security:certificates:import“. Popisy jejich umístění v adresáři s daty jsou uvedeny níže.", + "Default phone region" : "Výchozí mezinárodní předčíslí", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Vaše instalace nemá nastavenou žádnou výchozí oblast telefonu. To je nutné k ověření telefonních čísel v nastavení profilu bez kódu země. Chcete-li povolit čísla bez kódu země, přidejte do svého souboru s nastaveními řetězec „default_phone_region“ s příslušným kódem ISO 3166-1 regionu.", + "Email test" : "Zkouška e-mailu", + "Email test was successfully sent" : "Testovací e-mail byl úspěšně odeslán", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Doposud jste nenastavili či neověřili jste nastavení pro e-mailový server. Přejděte do „Základních nastavení“ a nastavte je. Poté použijte tlačítko „Odeslat e-mail“ níže ve formuláři a svá nastavení ověřte.", + "File locking" : "Zamykání souborů", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakční zamykání souborů je vypnuto, což může vést k problémům při souběžném přístupu. Abyste se jim vyhnuli, zapněte v config.php volbu „filelocking.enabled“.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Databáze je používaná pro transakční zamykání souborů. Pokud chcete vylepšit výkon, nastavte memcache (pokud je k dispozici).", "Internet connectivity" : "Připojení k internetu", "Internet connectivity is disabled in configuration file." : "Připojení k Internetu je vypnuté v souboru s nastaveními.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Tento server nemá funkční připojení k Internetu: Nedaří se připojit k vícero koncovým bodům. Některé moduly jako např. externí úložiště, upozorňování na dostupnost aktualizací, nebo instalace aplikací třetích stran kvůli tomu nebudou fungovat. Přístup k souborům z jiných míst a odesílání e-mailů s upozorněními také nemusí fungovat. Pokud chcete využívat všechny možnosti tohoto serveru, doporučujeme zprovoznit připojení k Internetu.", + "Old server-side-encryption" : "Původní šifrování na straně serveru", "Disabled" : "Vypnuto", "The old server-side-encryption format is enabled. We recommend disabling this." : "Je zapnutý starý formát šifrování na straně serveru. Je doporučeno toto vypnout.", + "Memcache" : "Memcache", + "Configured" : "Nastaveno", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nebylo nastaveno žádné ukládání do mezipaměti. Pokud chcete vylepšit výkon, nastavte memcache (pokud je k dispozici).", + "PHP default charset" : "Výchozí znaková sada pro PHP", "PHP configuration option default_charset should be UTF-8" : "Volba nastavení PHP default_charset by měla být UTF-8", + "Freetype" : "Freetype", "Supported" : "Podporováno", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vámi využívaná verze PHP nepodporuje FreeType, což bude mít za následky vizuální nedostatky u obrázků profilů a v rozhraní pro nastavování.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá se, že PHP není správně nastaveno pro dotazování proměnných prostředí systému. Test s příkazem getenv(\"PATH\") vrátí pouze prázdnou odpověď.", + "PHP memory limit" : "PHP limit paměti", + "The PHP memory limit is below the recommended value of %s." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu %s.", "PHP modules" : "PHP moduly", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Tato instance postrádá některé potřebné PHP moduly. Je třeba je nainstalovat: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Této instanci chybí některé doporučené moduly pro PHP. V zájmu lepšího výkonu a kompatibility, je důrazně doporučeno je nainstalovat: %s.", + "PHP version" : "Verze PHP", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Nyní provozujete na PHP %s. Od Nextcloud 27 je PHP 8.0 už označeno jako zastaralé. Nextcloud 28 pak už může vyžadovat alespoň PHP 8.1. Co možná nejdříve přejděte na některou z oficiálně podporovaných verzí PHP, poskytovaných PHP Group.", "You are currently running PHP %s." : "Nyní provozujete na PHP %s.", + "PHP output_buffering option" : "Volba PHP output_buffering", "PHP configuration option output_buffering must be disabled" : "Je třeba aby volba nastavení PHP output_buffering byla vypnutá", + "Random generator" : "Generátor náhodnosti", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP nenalezlo žádný použitelný zdroj náhodnosti a to je velmi nedoporučováno z bezpečnostních důvodů.", + "Secure" : "Zabezpečené", + "Configuration file access rights" : "Přístupová práva na soubor s nastaveními", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Nastavení bylo přepnuto do režimu pouze pro čtení. To brání změnám prostřednictvím webového rozhraní. Dále při každé aktualizaci, je třeba soubor ručně zpřístupnit pro zápis.", "Nextcloud configuration file is writable" : "Do souboru s nastaveními pro Nextcloud lze zapisovat", + "Database version" : "Verze databáze", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Je používána verze MariaDB „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MariaDB 10.2 nebo novější.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Je používána verze MySQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MySQL 8.0 nebo MariaDB 10.2 a novější.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Je používána verze PostgreSQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje PostgreSQL 9.6 nebo novější.", + "Unknown database plaform" : "Neznámá databázová platforma", "Architecture" : "Architektura", + "64-bit" : "64bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP!", + "Database transaction isolation level" : "Stupeň izolace databázových transakcí", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze není spuštěná s úrovní izolace transakcí „READ COMMITTED“. Toto může způsobit problémy při paralelním spouštění více akcí současně.", + "Was not able to get transaction isolation level: %s" : "Nebylo možné získat stupeň izolace databázových transakcí: %s", "Profile information" : "Informace o profilu", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilový obrázek, celé jméno, e-mailová adresa, telefonní číslo, adresa, webové stránky, Twitter, organizace, role, úvod, životopis a to, zda je profil zapnutý", "Nextcloud settings" : "Nastavení Nextcloud", @@ -215,7 +246,7 @@ "Level" : "Stupeň podrobnosti/závažnosti", "Actions" : "Akce", "Results from other categories" : "Výsledky z ostatních kategorií", - "No apps found for your version" : "Nebyly nalezeny aplikace pro vaši verzi", + "No apps found for your version" : "Nenalezeny žádné aplikace pro vámi využívanou verzi", "Disable all" : "Zakázat vše", "Download and enable all" : "Stáhnout si a zapnout vše", "_%n app has an update available_::_%n apps have an update available_" : ["pro %n aplikaci je k dispozici aktualizace","pro %n aplikace jsou k dispozici aktualizace","pro %n aplikací jsou k dispozici aktualizace","pro %n aplikace jsou k dispozici aktualizace"], @@ -288,7 +319,7 @@ "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Poté co je zapnuto šifrování, jsou od toho bodu všechny nahrávané soubory šifrovány serverem. Vypnout šifrování bude možné pouze později, až bude šifrovací modul tuto možnost podporovat a po splnění všech nutných podmínek (tzn. nastavení klíčů pro obnovení).", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Šifrování samotné ještě nezaručuje bezpečnost systému. Pokud se chcete dozvědět víc o tom, jak aplikace pro šifrování funguje a jaké jsou podporované případy použití, naleznete to v dokumentaci.", "Be aware that encryption always increases the file size." : "Mějte na paměti, že šifrování vždy navýší velikost souboru.", - "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat, v případě zapnutého šifrování také zajistěte zálohu šifrovacích klíčů společně se zálohou dat.", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.", "This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?", "No encryption module loaded, please enable an encryption module in the app menu." : "Nenačten žádný šifrovací modul – zapněte ho v nabídce aplikace.", "Select default encryption module:" : "Vyberte výchozí šifrovací modul:", @@ -358,7 +389,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Ohledně vašeho profilu bude respektována to více omezující nastavení – například, pokud je viditelnost nastavená na „Zobrazit všem“ a rozsah je nastavený na „Soukromé“, je respektováno „Soukromé.", "Unable to update visibility of {displayId}" : "Nedaří se aktualizovat viditelnost {displayId}", "Your role" : "Vaše úloha", - "Your Twitter handle" : "Twitter účet", + "Your X (formerly Twitter) handle" : "Vaše přezdívka na X (dříve Twitter)", "Your website" : "Vlastní webová stránka", "No {property} set" : "Nenastaveno žádné {property}", "Unable to update {property}" : "Nedaří se aktualizovat {property}", @@ -481,7 +512,7 @@ "Organisation" : "Organizace", "Phone number" : "Telefonní číslo", "Role" : "Role", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (dříve Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (např. Mastodon)", "Website" : "Webová stránka", "Profile visibility" : "Viditelnost profilu", @@ -588,6 +619,7 @@ "png or jpg, max. 20 MB" : "png nebo jpg, nejvýše 20 MB", "Your email address" : "Vaše e-mailová adresa", "Your location" : "Kde se nacházíte", + "Your Twitter handle" : "Twitter účet", "Add new password" : "Přidat nové heslo", "Add new email address" : "Přidat novou e-mailovou adresu", "Edit User" : "Upravit uživatele", @@ -599,6 +631,7 @@ "Default quota:" : "Výchozí kvóta:", "Show Languages" : "Zobrazit jazyky", "Send email to new user" : "Poslat novému uživateli e-mail", + "Twitter" : "Twitter", "Enable untested app" : "Zapnout nevyzkoušenou aplikaci", "Plain" : "V čitelné podobě", "NT LAN Manager" : "Správce NT LAN", diff --git a/apps/settings/l10n/da.js b/apps/settings/l10n/da.js index 4de69491fce..923cf50441e 100644 --- a/apps/settings/l10n/da.js +++ b/apps/settings/l10n/da.js @@ -316,7 +316,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mere restriktive indstilling af enten synlighed eller omfang respekteres på din profil. For eksempel, hvis synlighed er indstillet til \"Vis til alle\", og omfanget er indstillet til \"Privat\", respekteres \"Privat\".", "Unable to update visibility of {displayId}" : "Kan ikke opdatere synligheden af {displayId}", "Your role" : "Din rolle", - "Your Twitter handle" : "Dit Twitter handle @…", "Your website" : "Vores hjemmeside", "No {property} set" : "Ingen {property} indstillet", "Unable to update {property}" : "Kunne ikke opdaterer {property}", @@ -434,7 +433,6 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Telefon nummer", "Role" : "Rolle", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (fx Mastodon)", "Website" : "Hjemmeside", "Profile visibility" : "Profil synlighed", @@ -535,6 +533,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png eller jpg, max. 20 MB", "Your email address" : "Din e-mailadresse", "Your location" : "Din placering", + "Your Twitter handle" : "Dit Twitter handle @…", "Add new password" : "Tilføj ny adgangskode", "Add new email address" : "Tilføj ny e-mailadresse", "Edit User" : "Rediger bruger", @@ -546,6 +545,7 @@ OC.L10N.register( "Default quota:" : "Standardkvote:", "Show Languages" : "Vis sprog", "Send email to new user" : "Send e-mail til ny bruger", + "Twitter" : "Twitter", "Enable untested app" : "Aktiver ikke-testet app", "Plain" : "Klartekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json index ea4cbfb0866..93f889bea52 100644 --- a/apps/settings/l10n/da.json +++ b/apps/settings/l10n/da.json @@ -314,7 +314,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mere restriktive indstilling af enten synlighed eller omfang respekteres på din profil. For eksempel, hvis synlighed er indstillet til \"Vis til alle\", og omfanget er indstillet til \"Privat\", respekteres \"Privat\".", "Unable to update visibility of {displayId}" : "Kan ikke opdatere synligheden af {displayId}", "Your role" : "Din rolle", - "Your Twitter handle" : "Dit Twitter handle @…", "Your website" : "Vores hjemmeside", "No {property} set" : "Ingen {property} indstillet", "Unable to update {property}" : "Kunne ikke opdaterer {property}", @@ -432,7 +431,6 @@ "Organisation" : "Organisation", "Phone number" : "Telefon nummer", "Role" : "Rolle", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (fx Mastodon)", "Website" : "Hjemmeside", "Profile visibility" : "Profil synlighed", @@ -533,6 +531,7 @@ "png or jpg, max. 20 MB" : "png eller jpg, max. 20 MB", "Your email address" : "Din e-mailadresse", "Your location" : "Din placering", + "Your Twitter handle" : "Dit Twitter handle @…", "Add new password" : "Tilføj ny adgangskode", "Add new email address" : "Tilføj ny e-mailadresse", "Edit User" : "Rediger bruger", @@ -544,6 +543,7 @@ "Default quota:" : "Standardkvote:", "Show Languages" : "Vis sprog", "Send email to new user" : "Send e-mail til ny bruger", + "Twitter" : "Twitter", "Enable untested app" : "Aktiver ikke-testet app", "Plain" : "Klartekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index dce46763d09..8308f794228 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -121,7 +121,7 @@ OC.L10N.register( "Personal" : "Persönlich", "Administration" : "Verwaltung", "Additional settings" : "Zusätzliche Einstellungen", - "Artificial Intelligence" : "Künstiche Intelligenz", + "Artificial Intelligence" : "Künstliche Intelligenz", "Administration privileges" : "Administratorrechte", "Groupware" : "Groupware", "Overview" : "Übersicht", @@ -147,7 +147,7 @@ OC.L10N.register( "Internet connectivity is disabled in configuration file." : "Die Internetverbindung ist in der Konfigurationsdatei deaktiviert.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle bitte eine Internet-Verbindung für diesen Server her.", "Disabled" : "Deaktiviert", - "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren.", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Es wird empfohlen, es zu deaktivieren.", "PHP configuration option default_charset should be UTF-8" : "Die PHP-Konfigurationsoption default_charset sollte UTF-8 sein.", "Supported" : "Unterstützt", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Dein PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", @@ -354,7 +354,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in deinem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für jeden sichtbar\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.", "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden", "Your role" : "Deine Funktion", - "Your Twitter handle" : "Dein Twitter-Handle", "Your website" : "Deine Internetseite", "No {property} set" : "Keine {property} eingestellt", "Unable to update {property}" : "{property} konnte nicht aktualisiert werden.", @@ -470,7 +469,6 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Funktion", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)", "Website" : "Webseite", "Profile visibility" : "Sichtbarkeit deines Profils", @@ -516,7 +514,7 @@ OC.L10N.register( "SMTP Password" : "SMTP-Passwort", "Save" : "Speichern", "Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen", - "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, führen wir einige automatische Prüfungen durch. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.", "All checks passed." : "Alle Überprüfungen bestanden.", "There are some errors regarding your setup." : "Es gibt einige Fehler bei deiner Systemkonfiguration.", "There are some warnings regarding your setup." : "Es gibt einige Warnungen bei deiner Systemkonfiguration.", @@ -573,6 +571,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png oder jpg, max. 20 MB", "Your email address" : "Deine E-Mail-Adresse", "Your location" : "Dein Ort", + "Your Twitter handle" : "Dein Twitter-Handle", "Add new password" : "Neues Passwort hinzufügen", "Add new email address" : "Neue E-Mail-Adresse hinzufügen", "Edit User" : "Benutzer bearbeiten", @@ -584,6 +583,7 @@ OC.L10N.register( "Default quota:" : "Standardkontingent:", "Show Languages" : "Sprachen anzeigen", "Send email to new user" : "E-Mail an neuen Benutzer senden", + "Twitter" : "Twitter", "Enable untested app" : "Ungetestete App aktivieren", "Plain" : "Klartext", "NT LAN Manager" : "NT-LAN-Manager", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index 88acd0147e2..2967b288ddd 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -119,7 +119,7 @@ "Personal" : "Persönlich", "Administration" : "Verwaltung", "Additional settings" : "Zusätzliche Einstellungen", - "Artificial Intelligence" : "Künstiche Intelligenz", + "Artificial Intelligence" : "Künstliche Intelligenz", "Administration privileges" : "Administratorrechte", "Groupware" : "Groupware", "Overview" : "Übersicht", @@ -145,7 +145,7 @@ "Internet connectivity is disabled in configuration file." : "Die Internetverbindung ist in der Konfigurationsdatei deaktiviert.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle bitte eine Internet-Verbindung für diesen Server her.", "Disabled" : "Deaktiviert", - "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren.", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Es wird empfohlen, es zu deaktivieren.", "PHP configuration option default_charset should be UTF-8" : "Die PHP-Konfigurationsoption default_charset sollte UTF-8 sein.", "Supported" : "Unterstützt", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Dein PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", @@ -352,7 +352,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in deinem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für jeden sichtbar\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.", "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden", "Your role" : "Deine Funktion", - "Your Twitter handle" : "Dein Twitter-Handle", "Your website" : "Deine Internetseite", "No {property} set" : "Keine {property} eingestellt", "Unable to update {property}" : "{property} konnte nicht aktualisiert werden.", @@ -468,7 +467,6 @@ "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Funktion", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)", "Website" : "Webseite", "Profile visibility" : "Sichtbarkeit deines Profils", @@ -514,7 +512,7 @@ "SMTP Password" : "SMTP-Passwort", "Save" : "Speichern", "Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen", - "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, führen wir einige automatische Prüfungen durch. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.", "All checks passed." : "Alle Überprüfungen bestanden.", "There are some errors regarding your setup." : "Es gibt einige Fehler bei deiner Systemkonfiguration.", "There are some warnings regarding your setup." : "Es gibt einige Warnungen bei deiner Systemkonfiguration.", @@ -571,6 +569,7 @@ "png or jpg, max. 20 MB" : "png oder jpg, max. 20 MB", "Your email address" : "Deine E-Mail-Adresse", "Your location" : "Dein Ort", + "Your Twitter handle" : "Dein Twitter-Handle", "Add new password" : "Neues Passwort hinzufügen", "Add new email address" : "Neue E-Mail-Adresse hinzufügen", "Edit User" : "Benutzer bearbeiten", @@ -582,6 +581,7 @@ "Default quota:" : "Standardkontingent:", "Show Languages" : "Sprachen anzeigen", "Send email to new user" : "E-Mail an neuen Benutzer senden", + "Twitter" : "Twitter", "Enable untested app" : "Ungetestete App aktivieren", "Plain" : "Klartext", "NT LAN Manager" : "NT-LAN-Manager", diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js index e7fcf5a941a..343ba225dcc 100644 --- a/apps/settings/l10n/de_DE.js +++ b/apps/settings/l10n/de_DE.js @@ -145,12 +145,12 @@ OC.L10N.register( "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige vom Benutzer importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.", "Default phone region" : "Standard Telefonregion", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte „default_phone_region“ mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.", - "Email test" : "E-Mail-TestTest-E-Mail", + "Email test" : "E-Mail-Test", "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", - "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.\n \n \n ", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den „Grundeinstellungen“, um diese festzulegen. Benutzen Sie anschließend den Button „E-Mail senden“ unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.", "File locking" : "Dateisperre", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Das Sperren von Transaktionsdateien ist deaktiviert. Dies kann zu Problemen mit den Rennbedingungen führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.", - "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, falls verfügbar.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Das Sperren von Transaktionsdateien ist deaktiviert. Dies kann zu Problemen mit den Ausführungsbedingungen führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, sofern möglich.", "Internet connectivity" : "Internetverbindung", "Internet connectivity is disabled in configuration file." : "Die Internetverbindung ist in der Konfigurationsdatei deaktiviert.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stellen Sie bitte eine Internet-Verbindung für diesen Server her.", @@ -158,8 +158,8 @@ OC.L10N.register( "Disabled" : "Deaktiviert", "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren.", "Memcache" : "Memcache", - "Configured" : "Konfiguriert", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfigurieren Sie bitte einen Memcache, falls verfügbar.", + "Configured" : "Eingerichtet", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, sofern verfügbar.", "PHP default charset" : "PHP-Standardzeichensatz", "PHP configuration option default_charset should be UTF-8" : "Die PHP-Konfigurationsoption default_charset sollte UTF-8 sein", "Freetype" : "Freetype", @@ -168,7 +168,7 @@ OC.L10N.register( "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP scheint zur Abfrage von Systemumgebungsvariablen nicht richtig eingerichtet zu sein. Der Test mit getenv(\"PATH\") liefert nur eine leere Antwort zurück.", "PHP modules" : "PHP-Module", - "This instance is missing some required PHP modules. It is required to install them: %s." : "Dieser Instanz fehlen einige erforderliche PHP-Module. Zur Installation ist Folgendes erforderlich:%s .", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Dieser Instanz fehlen einige erforderliche PHP-Module. Folgende Module müssen installiert sein:%s .", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "In dieser Instanz fehlen einige empfohlene PHP-Module. Für eine verbesserte Leistung und bessere Kompatibilität wird dringend empfohlen, sie zu installieren: %s.", "PHP version" : "PHP-Version", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sie verwenden derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert möglicherweise mindestens PHP 8.1. Bitte aktualisieren Sie so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.", @@ -389,7 +389,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in Ihrem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für alle anzeigen\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.", "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden", "Your role" : "Ihre Funktion", - "Your Twitter handle" : "Ihr Twitter-Handle", + "Your X (formerly Twitter) handle" : "Ihre X (früher Twitter) Handle", "Your website" : "Ihre Webseite", "No {property} set" : "Keine {property} gesetzt", "Unable to update {property}" : "{property} konnte nicht aktualisiert werden", @@ -512,7 +512,7 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Funktion", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (früher Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)", "Website" : "Webseite", "Profile visibility" : "Sichtbarkeit des Profils", @@ -619,6 +619,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png oder jpg, max. 20 MB", "Your email address" : "Ihre E-Mail-Adresse", "Your location" : "Ihr Ort", + "Your Twitter handle" : "Ihr Twitter-Handle", "Add new password" : "Neues Passwort hinzufügen", "Add new email address" : "Neue E-Mail-Adresse hinzufügen", "Edit User" : "Benutzer bearbeiten", @@ -630,6 +631,7 @@ OC.L10N.register( "Default quota:" : "Standardkontingent:", "Show Languages" : "Sprachen anzeigen", "Send email to new user" : "E-Mail an neuen Benutzer senden", + "Twitter" : "Twitter", "Enable untested app" : "Ungetestete App aktivieren", "Plain" : "Klartext", "NT LAN Manager" : "NT-LAN-Manager", diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json index 0a9948c61fa..5a870d820aa 100644 --- a/apps/settings/l10n/de_DE.json +++ b/apps/settings/l10n/de_DE.json @@ -143,12 +143,12 @@ "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige vom Benutzer importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.", "Default phone region" : "Standard Telefonregion", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte „default_phone_region“ mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.", - "Email test" : "E-Mail-TestTest-E-Mail", + "Email test" : "E-Mail-Test", "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt", - "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.\n \n \n ", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den „Grundeinstellungen“, um diese festzulegen. Benutzen Sie anschließend den Button „E-Mail senden“ unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.", "File locking" : "Dateisperre", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Das Sperren von Transaktionsdateien ist deaktiviert. Dies kann zu Problemen mit den Rennbedingungen führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.", - "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, falls verfügbar.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Das Sperren von Transaktionsdateien ist deaktiviert. Dies kann zu Problemen mit den Ausführungsbedingungen führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, sofern möglich.", "Internet connectivity" : "Internetverbindung", "Internet connectivity is disabled in configuration file." : "Die Internetverbindung ist in der Konfigurationsdatei deaktiviert.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stellen Sie bitte eine Internet-Verbindung für diesen Server her.", @@ -156,8 +156,8 @@ "Disabled" : "Deaktiviert", "The old server-side-encryption format is enabled. We recommend disabling this." : "Das alte serverseitige Verschlüsselungsformat ist aktiviert. Wir empfehlen, es zu deaktivieren.", "Memcache" : "Memcache", - "Configured" : "Konfiguriert", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfigurieren Sie bitte einen Memcache, falls verfügbar.", + "Configured" : "Eingerichtet", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, sofern verfügbar.", "PHP default charset" : "PHP-Standardzeichensatz", "PHP configuration option default_charset should be UTF-8" : "Die PHP-Konfigurationsoption default_charset sollte UTF-8 sein", "Freetype" : "Freetype", @@ -166,7 +166,7 @@ "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP scheint zur Abfrage von Systemumgebungsvariablen nicht richtig eingerichtet zu sein. Der Test mit getenv(\"PATH\") liefert nur eine leere Antwort zurück.", "PHP modules" : "PHP-Module", - "This instance is missing some required PHP modules. It is required to install them: %s." : "Dieser Instanz fehlen einige erforderliche PHP-Module. Zur Installation ist Folgendes erforderlich:%s .", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Dieser Instanz fehlen einige erforderliche PHP-Module. Folgende Module müssen installiert sein:%s .", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "In dieser Instanz fehlen einige empfohlene PHP-Module. Für eine verbesserte Leistung und bessere Kompatibilität wird dringend empfohlen, sie zu installieren: %s.", "PHP version" : "PHP-Version", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sie verwenden derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert möglicherweise mindestens PHP 8.1. Bitte aktualisieren Sie so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.", @@ -387,7 +387,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in Ihrem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für alle anzeigen\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.", "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden", "Your role" : "Ihre Funktion", - "Your Twitter handle" : "Ihr Twitter-Handle", + "Your X (formerly Twitter) handle" : "Ihre X (früher Twitter) Handle", "Your website" : "Ihre Webseite", "No {property} set" : "Keine {property} gesetzt", "Unable to update {property}" : "{property} konnte nicht aktualisiert werden", @@ -510,7 +510,7 @@ "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Funktion", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (früher Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)", "Website" : "Webseite", "Profile visibility" : "Sichtbarkeit des Profils", @@ -617,6 +617,7 @@ "png or jpg, max. 20 MB" : "png oder jpg, max. 20 MB", "Your email address" : "Ihre E-Mail-Adresse", "Your location" : "Ihr Ort", + "Your Twitter handle" : "Ihr Twitter-Handle", "Add new password" : "Neues Passwort hinzufügen", "Add new email address" : "Neue E-Mail-Adresse hinzufügen", "Edit User" : "Benutzer bearbeiten", @@ -628,6 +629,7 @@ "Default quota:" : "Standardkontingent:", "Show Languages" : "Sprachen anzeigen", "Send email to new user" : "E-Mail an neuen Benutzer senden", + "Twitter" : "Twitter", "Enable untested app" : "Ungetestete App aktivieren", "Plain" : "Klartext", "NT LAN Manager" : "NT-LAN-Manager", diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js index 1283d8feff1..f05dcd82a8e 100644 --- a/apps/settings/l10n/el.js +++ b/apps/settings/l10n/el.js @@ -300,7 +300,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Η πιο περιοριστική ρύθμιση ορατότητας ή εύρους τηρείται στο Προφίλ σας. Για παράδειγμα, εάν η ορατότητα έχει οριστεί σε \"Εμφάνιση σε όλους\" και το εύρος έχει οριστεί σε \"Ιδιωτικό\", το \"Ιδιωτικό\" τηρείται.", "Unable to update visibility of {displayId}" : "Δεν είναι δυνατή η ενημέρωση της ορατότητας του {displayId}", "Your role" : "Ο ρόλος σας", - "Your Twitter handle" : "Το Twitter σας", "Your website" : "Η ιστοσελίδα σας", "Add additional email" : "Προσθέστε επιπλέον email", "Add" : "Προσθήκη", @@ -378,7 +377,6 @@ OC.L10N.register( "Organisation" : "Οργανισμός", "Phone number" : "Αριθμός τηλεφώνου", "Role" : "Ρόλος", - "Twitter" : "Twitter", "Website" : "Ιστοσελίδα", "Profile visibility" : "Ορατότητα προφίλ", "Locale" : "Ρυθμίσεις τοποθεσίας", @@ -470,6 +468,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ή jpg, μεγ. 20 MB", "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας", "Your location" : "Η τοποθεσία σας", + "Your Twitter handle" : "Το Twitter σας", "Add new password" : "Προσθήκη νέου κωδικού πρόσβασης", "Add new email address" : "Προσθήκη νέας διεύθυνσης ηλ. αλληλογραφίας", "Edit User" : "Επεξεργασία Χρήστη", @@ -481,6 +480,7 @@ OC.L10N.register( "Default quota:" : "Προεπιλεγμένο όριο χωρητικότητας:", "Show Languages" : "Εμφάνιση γλωσσών", "Send email to new user" : "Αποστολή μηνύματος στο νέο χρήστη", + "Twitter" : "Twitter", "Enable untested app" : "Ενεργοποίηση δοκιμαστικής εφαρμογής", "Plain" : "Απλό", "NT LAN Manager" : "Διαχειριστης NT LAN", diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json index 1b49ce0e334..791583804a7 100644 --- a/apps/settings/l10n/el.json +++ b/apps/settings/l10n/el.json @@ -298,7 +298,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Η πιο περιοριστική ρύθμιση ορατότητας ή εύρους τηρείται στο Προφίλ σας. Για παράδειγμα, εάν η ορατότητα έχει οριστεί σε \"Εμφάνιση σε όλους\" και το εύρος έχει οριστεί σε \"Ιδιωτικό\", το \"Ιδιωτικό\" τηρείται.", "Unable to update visibility of {displayId}" : "Δεν είναι δυνατή η ενημέρωση της ορατότητας του {displayId}", "Your role" : "Ο ρόλος σας", - "Your Twitter handle" : "Το Twitter σας", "Your website" : "Η ιστοσελίδα σας", "Add additional email" : "Προσθέστε επιπλέον email", "Add" : "Προσθήκη", @@ -376,7 +375,6 @@ "Organisation" : "Οργανισμός", "Phone number" : "Αριθμός τηλεφώνου", "Role" : "Ρόλος", - "Twitter" : "Twitter", "Website" : "Ιστοσελίδα", "Profile visibility" : "Ορατότητα προφίλ", "Locale" : "Ρυθμίσεις τοποθεσίας", @@ -468,6 +466,7 @@ "png or jpg, max. 20 MB" : "png ή jpg, μεγ. 20 MB", "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας", "Your location" : "Η τοποθεσία σας", + "Your Twitter handle" : "Το Twitter σας", "Add new password" : "Προσθήκη νέου κωδικού πρόσβασης", "Add new email address" : "Προσθήκη νέας διεύθυνσης ηλ. αλληλογραφίας", "Edit User" : "Επεξεργασία Χρήστη", @@ -479,6 +478,7 @@ "Default quota:" : "Προεπιλεγμένο όριο χωρητικότητας:", "Show Languages" : "Εμφάνιση γλωσσών", "Send email to new user" : "Αποστολή μηνύματος στο νέο χρήστη", + "Twitter" : "Twitter", "Enable untested app" : "Ενεργοποίηση δοκιμαστικής εφαρμογής", "Plain" : "Απλό", "NT LAN Manager" : "Διαχειριστης NT LAN", diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js index e95be641687..ef48278e730 100644 --- a/apps/settings/l10n/en_GB.js +++ b/apps/settings/l10n/en_GB.js @@ -360,7 +360,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.", "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}", "Your role" : "Your role", - "Your Twitter handle" : "Your Twitter handle", "Your website" : "Your website", "No {property} set" : "No {property} set", "Unable to update {property}" : "Unable to update {property}", @@ -483,7 +482,6 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Phone number", "Role" : "Role", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)", "Website" : "Website", "Profile visibility" : "Profile visibility", @@ -590,6 +588,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", "Your email address" : "Your email address", "Your location" : "Your location", + "Your Twitter handle" : "Your Twitter handle", "Add new password" : "Add new password", "Add new email address" : "Add new email address", "Edit User" : "Edit User", @@ -601,6 +600,7 @@ OC.L10N.register( "Default quota:" : "Default quota:", "Show Languages" : "Show Languages", "Send email to new user" : "Send email to new user", + "Twitter" : "Twitter", "Enable untested app" : "Enable untested app", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json index eb59d8baf5b..742438c8e97 100644 --- a/apps/settings/l10n/en_GB.json +++ b/apps/settings/l10n/en_GB.json @@ -358,7 +358,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.", "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}", "Your role" : "Your role", - "Your Twitter handle" : "Your Twitter handle", "Your website" : "Your website", "No {property} set" : "No {property} set", "Unable to update {property}" : "Unable to update {property}", @@ -481,7 +480,6 @@ "Organisation" : "Organisation", "Phone number" : "Phone number", "Role" : "Role", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)", "Website" : "Website", "Profile visibility" : "Profile visibility", @@ -588,6 +586,7 @@ "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", "Your email address" : "Your email address", "Your location" : "Your location", + "Your Twitter handle" : "Your Twitter handle", "Add new password" : "Add new password", "Add new email address" : "Add new email address", "Edit User" : "Edit User", @@ -599,6 +598,7 @@ "Default quota:" : "Default quota:", "Show Languages" : "Show Languages", "Send email to new user" : "Send email to new user", + "Twitter" : "Twitter", "Enable untested app" : "Enable untested app", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/eo.js b/apps/settings/l10n/eo.js index d2e34e8f51f..c96bdcc2ebc 100644 --- a/apps/settings/l10n/eo.js +++ b/apps/settings/l10n/eo.js @@ -264,7 +264,6 @@ OC.L10N.register( "About" : "Pri", "Full name" : "Plena nomo", "Phone number" : "Telefonnumero", - "Twitter" : "Twitter", "Website" : "Retejo", "Locale" : "Lokaĵaro", "Active apps" : "Aktivaj aplikaĵoj", @@ -337,6 +336,7 @@ OC.L10N.register( "Default quota:" : "Defaŭlta kvoto:", "Show Languages" : "Montri lingvojn", "Send email to new user" : "Sendi retmesaĝon al nova uzanto", + "Twitter" : "Twitter", "Enable untested app" : "Ŝalti netestitan aplikaĵon", "Plain" : "Plena", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/eo.json b/apps/settings/l10n/eo.json index e0089f5f7b2..520f61e666a 100644 --- a/apps/settings/l10n/eo.json +++ b/apps/settings/l10n/eo.json @@ -262,7 +262,6 @@ "About" : "Pri", "Full name" : "Plena nomo", "Phone number" : "Telefonnumero", - "Twitter" : "Twitter", "Website" : "Retejo", "Locale" : "Lokaĵaro", "Active apps" : "Aktivaj aplikaĵoj", @@ -335,6 +334,7 @@ "Default quota:" : "Defaŭlta kvoto:", "Show Languages" : "Montri lingvojn", "Send email to new user" : "Sendi retmesaĝon al nova uzanto", + "Twitter" : "Twitter", "Enable untested app" : "Ŝalti netestitan aplikaĵon", "Plain" : "Plena", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js index 37b3d0c61b5..28fb1926d6d 100644 --- a/apps/settings/l10n/es.js +++ b/apps/settings/l10n/es.js @@ -349,7 +349,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.", "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}", "Your role" : "Tu rol", - "Your Twitter handle" : "Su usuario de Twitter", "Your website" : "La dirección de su sitio web", "No {property} set" : "No se ha establecido {property}", "Unable to update {property}" : "Imposible actualizar {property}", @@ -472,7 +471,6 @@ OC.L10N.register( "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Cargo", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverso (p.e. Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidad del perfil", @@ -579,6 +577,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png o jpg, max. 20 MB", "Your email address" : "Su dirección de correo", "Your location" : "Su ubicación", + "Your Twitter handle" : "Su usuario de Twitter", "Add new password" : " Añadir nueva contraseña", "Add new email address" : "Añadir nueva dirección de correo electrónico", "Edit User" : "Editar usuario", @@ -590,6 +589,7 @@ OC.L10N.register( "Default quota:" : "Espacio por defecto:", "Show Languages" : "Mostrar idiomas", "Send email to new user" : "Enviar correo al usuario nuevo", + "Twitter" : "Twitter", "Enable untested app" : "Activar app no probada", "Plain" : "Plano", "NT LAN Manager" : "Gestor de NT LAN", diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json index e4c2be4f609..8440064a6ed 100644 --- a/apps/settings/l10n/es.json +++ b/apps/settings/l10n/es.json @@ -347,7 +347,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.", "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}", "Your role" : "Tu rol", - "Your Twitter handle" : "Su usuario de Twitter", "Your website" : "La dirección de su sitio web", "No {property} set" : "No se ha establecido {property}", "Unable to update {property}" : "Imposible actualizar {property}", @@ -470,7 +469,6 @@ "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Cargo", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverso (p.e. Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidad del perfil", @@ -577,6 +575,7 @@ "png or jpg, max. 20 MB" : "png o jpg, max. 20 MB", "Your email address" : "Su dirección de correo", "Your location" : "Su ubicación", + "Your Twitter handle" : "Su usuario de Twitter", "Add new password" : " Añadir nueva contraseña", "Add new email address" : "Añadir nueva dirección de correo electrónico", "Edit User" : "Editar usuario", @@ -588,6 +587,7 @@ "Default quota:" : "Espacio por defecto:", "Show Languages" : "Mostrar idiomas", "Send email to new user" : "Enviar correo al usuario nuevo", + "Twitter" : "Twitter", "Enable untested app" : "Activar app no probada", "Plain" : "Plano", "NT LAN Manager" : "Gestor de NT LAN", diff --git a/apps/settings/l10n/es_419.js b/apps/settings/l10n/es_419.js index 2a3f45ae961..5a6c1d98b57 100644 --- a/apps/settings/l10n/es_419.js +++ b/apps/settings/l10n/es_419.js @@ -159,7 +159,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Locale" : "Región", "Disabled apps" : "Aplicaciones deshabilitadas", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_419.json b/apps/settings/l10n/es_419.json index 3a12b38489d..d5a2194f8d3 100644 --- a/apps/settings/l10n/es_419.json +++ b/apps/settings/l10n/es_419.json @@ -157,7 +157,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -189,7 +188,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Locale" : "Región", "Disabled apps" : "Aplicaciones deshabilitadas", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_AR.js b/apps/settings/l10n/es_AR.js index dec9d52a46a..1f1f1087f85 100644 --- a/apps/settings/l10n/es_AR.js +++ b/apps/settings/l10n/es_AR.js @@ -154,7 +154,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayude a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Su cuenta de Twitter", "Your website" : "Su sitio web", "Add" : "Añadir", "Display name" : "Nombre para mostrar", @@ -185,7 +184,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -232,8 +230,10 @@ OC.L10N.register( "Enable all" : "Habilitar todo", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Su dirección de correo electrónico", + "Your Twitter handle" : "Su cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_AR.json b/apps/settings/l10n/es_AR.json index cba4cafa1d6..dbbc5d16653 100644 --- a/apps/settings/l10n/es_AR.json +++ b/apps/settings/l10n/es_AR.json @@ -152,7 +152,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayude a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Su cuenta de Twitter", "Your website" : "Su sitio web", "Add" : "Añadir", "Display name" : "Nombre para mostrar", @@ -183,7 +182,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -230,8 +228,10 @@ "Enable all" : "Habilitar todo", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Su dirección de correo electrónico", + "Your Twitter handle" : "Su cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CL.js b/apps/settings/l10n/es_CL.js index 163689a5705..c612306c684 100644 --- a/apps/settings/l10n/es_CL.js +++ b/apps/settings/l10n/es_CL.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CL.json b/apps/settings/l10n/es_CL.json index 3f87c391053..75feccec8cf 100644 --- a/apps/settings/l10n/es_CL.json +++ b/apps/settings/l10n/es_CL.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CO.js b/apps/settings/l10n/es_CO.js index 2a15536ec7d..55120f60b95 100644 --- a/apps/settings/l10n/es_CO.js +++ b/apps/settings/l10n/es_CO.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CO.json b/apps/settings/l10n/es_CO.json index ba95d924e52..c44ecb1e231 100644 --- a/apps/settings/l10n/es_CO.json +++ b/apps/settings/l10n/es_CO.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CR.js b/apps/settings/l10n/es_CR.js index 2a15536ec7d..55120f60b95 100644 --- a/apps/settings/l10n/es_CR.js +++ b/apps/settings/l10n/es_CR.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_CR.json b/apps/settings/l10n/es_CR.json index ba95d924e52..c44ecb1e231 100644 --- a/apps/settings/l10n/es_CR.json +++ b/apps/settings/l10n/es_CR.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_DO.js b/apps/settings/l10n/es_DO.js index 2a15536ec7d..55120f60b95 100644 --- a/apps/settings/l10n/es_DO.js +++ b/apps/settings/l10n/es_DO.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_DO.json b/apps/settings/l10n/es_DO.json index ba95d924e52..c44ecb1e231 100644 --- a/apps/settings/l10n/es_DO.json +++ b/apps/settings/l10n/es_DO.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_EC.js b/apps/settings/l10n/es_EC.js index 7a510c12494..4339b05de88 100644 --- a/apps/settings/l10n/es_EC.js +++ b/apps/settings/l10n/es_EC.js @@ -331,7 +331,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respeta la configuración más restrictiva de visibilidad o alcance en tu perfil. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance está configurado en \"Privado\", se respeta \"Privado\".", "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}", "Your role" : "Tu cargo", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "No {property} set" : "Ningún {property} establecido", "Unable to update {property}" : "No se pudo actualizar {property}", @@ -443,7 +442,6 @@ OC.L10N.register( "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Rol", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidad del perfil", @@ -544,6 +542,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", "Your location" : "Tu ubicación", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add new password" : "Agregar nueva contraseña", "Add new email address" : "Agregar nueva dirección de correo electrónico", "Edit User" : "Editar usuario", @@ -555,6 +554,7 @@ OC.L10N.register( "Default quota:" : "Cuota predeterminada:", "Show Languages" : "Mostrar idiomas", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Enable untested app" : "Habilitar aplicación no probada", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", diff --git a/apps/settings/l10n/es_EC.json b/apps/settings/l10n/es_EC.json index c7b7addcd95..bb5511ec045 100644 --- a/apps/settings/l10n/es_EC.json +++ b/apps/settings/l10n/es_EC.json @@ -329,7 +329,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respeta la configuración más restrictiva de visibilidad o alcance en tu perfil. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance está configurado en \"Privado\", se respeta \"Privado\".", "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}", "Your role" : "Tu cargo", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "No {property} set" : "Ningún {property} establecido", "Unable to update {property}" : "No se pudo actualizar {property}", @@ -441,7 +440,6 @@ "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Rol", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidad del perfil", @@ -542,6 +540,7 @@ "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", "Your location" : "Tu ubicación", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add new password" : "Agregar nueva contraseña", "Add new email address" : "Agregar nueva dirección de correo electrónico", "Edit User" : "Editar usuario", @@ -553,6 +552,7 @@ "Default quota:" : "Cuota predeterminada:", "Show Languages" : "Mostrar idiomas", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Enable untested app" : "Habilitar aplicación no probada", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", diff --git a/apps/settings/l10n/es_GT.js b/apps/settings/l10n/es_GT.js index 2a15536ec7d..55120f60b95 100644 --- a/apps/settings/l10n/es_GT.js +++ b/apps/settings/l10n/es_GT.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_GT.json b/apps/settings/l10n/es_GT.json index ba95d924e52..c44ecb1e231 100644 --- a/apps/settings/l10n/es_GT.json +++ b/apps/settings/l10n/es_GT.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_HN.js b/apps/settings/l10n/es_HN.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_HN.js +++ b/apps/settings/l10n/es_HN.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_HN.json b/apps/settings/l10n/es_HN.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_HN.json +++ b/apps/settings/l10n/es_HN.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_MX.js b/apps/settings/l10n/es_MX.js index cd9300fcc98..b844247156c 100644 --- a/apps/settings/l10n/es_MX.js +++ b/apps/settings/l10n/es_MX.js @@ -174,7 +174,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Default language" : "Idioma predeterminado", @@ -215,7 +214,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -267,8 +265,10 @@ OC.L10N.register( "Please confirm the group removal " : "Por favor confirma la eliminación del grupo", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_MX.json b/apps/settings/l10n/es_MX.json index 26be8f8177a..c3f007c0799 100644 --- a/apps/settings/l10n/es_MX.json +++ b/apps/settings/l10n/es_MX.json @@ -172,7 +172,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Default language" : "Idioma predeterminado", @@ -213,7 +212,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -265,8 +263,10 @@ "Please confirm the group removal " : "Por favor confirma la eliminación del grupo", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_NI.js b/apps/settings/l10n/es_NI.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_NI.js +++ b/apps/settings/l10n/es_NI.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_NI.json b/apps/settings/l10n/es_NI.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_NI.json +++ b/apps/settings/l10n/es_NI.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PA.js b/apps/settings/l10n/es_PA.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_PA.js +++ b/apps/settings/l10n/es_PA.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PA.json b/apps/settings/l10n/es_PA.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_PA.json +++ b/apps/settings/l10n/es_PA.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PE.js b/apps/settings/l10n/es_PE.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_PE.js +++ b/apps/settings/l10n/es_PE.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PE.json b/apps/settings/l10n/es_PE.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_PE.json +++ b/apps/settings/l10n/es_PE.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PR.js b/apps/settings/l10n/es_PR.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_PR.js +++ b/apps/settings/l10n/es_PR.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PR.json b/apps/settings/l10n/es_PR.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_PR.json +++ b/apps/settings/l10n/es_PR.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PY.js b/apps/settings/l10n/es_PY.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_PY.js +++ b/apps/settings/l10n/es_PY.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_PY.json b/apps/settings/l10n/es_PY.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_PY.json +++ b/apps/settings/l10n/es_PY.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_SV.js b/apps/settings/l10n/es_SV.js index 2a15536ec7d..55120f60b95 100644 --- a/apps/settings/l10n/es_SV.js +++ b/apps/settings/l10n/es_SV.js @@ -161,7 +161,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -193,7 +192,6 @@ OC.L10N.register( "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -242,8 +240,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_SV.json b/apps/settings/l10n/es_SV.json index ba95d924e52..c44ecb1e231 100644 --- a/apps/settings/l10n/es_SV.json +++ b/apps/settings/l10n/es_SV.json @@ -159,7 +159,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -191,7 +190,6 @@ "About" : "Acerca de", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -240,8 +238,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_UY.js b/apps/settings/l10n/es_UY.js index 22c07366a2e..b915a9c2355 100644 --- a/apps/settings/l10n/es_UY.js +++ b/apps/settings/l10n/es_UY.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -187,7 +186,6 @@ OC.L10N.register( "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -235,8 +233,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/es_UY.json b/apps/settings/l10n/es_UY.json index f28e7861199..3eb71cfe0ff 100644 --- a/apps/settings/l10n/es_UY.json +++ b/apps/settings/l10n/es_UY.json @@ -153,7 +153,6 @@ "No email address set" : "No se ha establecido la dirección de correo electrónico", "Help translate" : "Ayuda a traducir", "Your phone number" : "Su número telefónico", - "Your Twitter handle" : "Tu cuenta de Twitter", "Your website" : "Tu sitio web", "Add" : "Agregar", "Display name" : "Nombre a desplegar", @@ -185,7 +184,6 @@ "About" : "Acerca", "Full name" : "Nombre completo", "Phone number" : "Número de teléfono", - "Twitter" : "Twitter", "Website" : "Sitio web", "Disabled apps" : "Aplicaciones deshabilitadas", "Updates" : "Actualizaciones", @@ -233,8 +231,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", "Your email address" : "Tu dirección de correo electrónico", + "Your Twitter handle" : "Tu cuenta de Twitter", "Add group" : "Agregar grupo", "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Administrador de LAN NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/et_EE.js b/apps/settings/l10n/et_EE.js index fc2ab7246a9..4a8fa971c25 100644 --- a/apps/settings/l10n/et_EE.js +++ b/apps/settings/l10n/et_EE.js @@ -213,7 +213,6 @@ OC.L10N.register( "Organisation" : "Organisatsioon", "Phone number" : "Telefoninumber", "Role" : "Roll", - "Twitter" : "Twitter", "Website" : "Veebileht", "Locale" : "Kasutuskoht", "Disabled apps" : "Keelatud rakendused", @@ -263,6 +262,7 @@ OC.L10N.register( "Add group" : "Lisa grupp", "Default quota:" : "Vaikekvoot:", "Send email to new user" : "Saada uuele kasutajale e-kiri", + "Twitter" : "Twitter", "Plain" : "Tavatekst", "NT LAN Manager" : "NT LAN Manager", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json index 5b07722a2b4..ba6a62e6124 100644 --- a/apps/settings/l10n/et_EE.json +++ b/apps/settings/l10n/et_EE.json @@ -211,7 +211,6 @@ "Organisation" : "Organisatsioon", "Phone number" : "Telefoninumber", "Role" : "Roll", - "Twitter" : "Twitter", "Website" : "Veebileht", "Locale" : "Kasutuskoht", "Disabled apps" : "Keelatud rakendused", @@ -261,6 +260,7 @@ "Add group" : "Lisa grupp", "Default quota:" : "Vaikekvoot:", "Send email to new user" : "Saada uuele kasutajale e-kiri", + "Twitter" : "Twitter", "Plain" : "Tavatekst", "NT LAN Manager" : "NT LAN Manager", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js index efc1b828e6e..30302d51187 100644 --- a/apps/settings/l10n/eu.js +++ b/apps/settings/l10n/eu.js @@ -345,7 +345,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Ikusgarritasunaren edo esparruaren ezarpen murriztaileena zure profilean errespetatzen da. Esaterako, ikusgarritasuna \"Erakutsi guztiei\" eta esparrua \"Pribatua\" gisa ezarrita badago, \"Pribatua\" errespetatzen da.", "Unable to update visibility of {displayId}" : "Ezin izan da {displayId}(r)en ikusgarritasuna eguneratu", "Your role" : "Zure rola", - "Your Twitter handle" : "Zure Twitter erabiltzailea", "Your website" : "Zure web orria", "No {property} set" : "Ez da {property} ezarri", "Unable to update {property}" : "Ezin izan da {property} eguneratu", @@ -464,7 +463,6 @@ OC.L10N.register( "Organisation" : "Erakundea", "Phone number" : "Telefono zenbakia", "Role" : "Zeregina", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fedibertsoa (adibidez, Mastodon)", "Website" : "Webgunea", "Profile visibility" : "Profilaren ikusgarritasuna", @@ -571,6 +569,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png edo jpg, gehienez 20MB", "Your email address" : "Zure e-posta", "Your location" : "Zure kokapena", + "Your Twitter handle" : "Zure Twitter erabiltzailea", "Add new password" : "Gehitu pasahitz berria", "Add new email address" : "Gehitu e-mail helbide berria", "Edit User" : "Erabiltzailea editatu", @@ -582,6 +581,7 @@ OC.L10N.register( "Default quota:" : "Lehenetsitako kuota:", "Show Languages" : "Erakutsi Hizkuntzak", "Send email to new user" : "Bidali eposta erabiltzaile berriari", + "Twitter" : "Twitter", "Enable untested app" : "Gaitu probatu gabeko aplikazioa", "Plain" : "Arrunta", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json index f74ff946370..1f8a62b5362 100644 --- a/apps/settings/l10n/eu.json +++ b/apps/settings/l10n/eu.json @@ -343,7 +343,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Ikusgarritasunaren edo esparruaren ezarpen murriztaileena zure profilean errespetatzen da. Esaterako, ikusgarritasuna \"Erakutsi guztiei\" eta esparrua \"Pribatua\" gisa ezarrita badago, \"Pribatua\" errespetatzen da.", "Unable to update visibility of {displayId}" : "Ezin izan da {displayId}(r)en ikusgarritasuna eguneratu", "Your role" : "Zure rola", - "Your Twitter handle" : "Zure Twitter erabiltzailea", "Your website" : "Zure web orria", "No {property} set" : "Ez da {property} ezarri", "Unable to update {property}" : "Ezin izan da {property} eguneratu", @@ -462,7 +461,6 @@ "Organisation" : "Erakundea", "Phone number" : "Telefono zenbakia", "Role" : "Zeregina", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fedibertsoa (adibidez, Mastodon)", "Website" : "Webgunea", "Profile visibility" : "Profilaren ikusgarritasuna", @@ -569,6 +567,7 @@ "png or jpg, max. 20 MB" : "png edo jpg, gehienez 20MB", "Your email address" : "Zure e-posta", "Your location" : "Zure kokapena", + "Your Twitter handle" : "Zure Twitter erabiltzailea", "Add new password" : "Gehitu pasahitz berria", "Add new email address" : "Gehitu e-mail helbide berria", "Edit User" : "Erabiltzailea editatu", @@ -580,6 +579,7 @@ "Default quota:" : "Lehenetsitako kuota:", "Show Languages" : "Erakutsi Hizkuntzak", "Send email to new user" : "Bidali eposta erabiltzaile berriari", + "Twitter" : "Twitter", "Enable untested app" : "Gaitu probatu gabeko aplikazioa", "Plain" : "Arrunta", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js index 249614635a8..1164a72a51d 100644 --- a/apps/settings/l10n/fa.js +++ b/apps/settings/l10n/fa.js @@ -343,7 +343,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.", "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}", "Your role" : "Your role", - "Your Twitter handle" : "Your Twitter handle", "Your website" : "Your website", "No {property} set" : "No {property} set", "Unable to update {property}" : "Unable to update {property}", @@ -459,7 +458,6 @@ OC.L10N.register( "Organisation" : "سازمان", "Phone number" : "شماره تلفن", "Role" : "نقش", - "Twitter" : "توییتر", "Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)", "Website" : "وب سایت", "Profile visibility" : "Profile visibility", @@ -562,6 +560,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png یا jpg. بیشینه ۲۰ مب", "Your email address" : "پست الکترونیکی شما", "Your location" : "Your location", + "Your Twitter handle" : "Your Twitter handle", "Add new password" : "رمزعبور جدید اضافه کنید", "Add new email address" : "آدرس ایمیل جدید اضافه کنید", "Edit User" : "ویرایش کاربر", @@ -573,6 +572,7 @@ OC.L10N.register( "Default quota:" : "سهمیه پیش فرض:", "Show Languages" : "نمایش زبانها", "Send email to new user" : "ارسال ایمیل به کاربر جدید", + "Twitter" : "توییتر", "Enable untested app" : "برنامه آزمایش نشده را فعال کنید", "Plain" : "ساده", "NT LAN Manager" : "مدیر NT LAN", diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json index 7cc8e8c7bac..c4919d4839d 100644 --- a/apps/settings/l10n/fa.json +++ b/apps/settings/l10n/fa.json @@ -341,7 +341,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.", "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}", "Your role" : "Your role", - "Your Twitter handle" : "Your Twitter handle", "Your website" : "Your website", "No {property} set" : "No {property} set", "Unable to update {property}" : "Unable to update {property}", @@ -457,7 +456,6 @@ "Organisation" : "سازمان", "Phone number" : "شماره تلفن", "Role" : "نقش", - "Twitter" : "توییتر", "Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)", "Website" : "وب سایت", "Profile visibility" : "Profile visibility", @@ -560,6 +558,7 @@ "png or jpg, max. 20 MB" : "png یا jpg. بیشینه ۲۰ مب", "Your email address" : "پست الکترونیکی شما", "Your location" : "Your location", + "Your Twitter handle" : "Your Twitter handle", "Add new password" : "رمزعبور جدید اضافه کنید", "Add new email address" : "آدرس ایمیل جدید اضافه کنید", "Edit User" : "ویرایش کاربر", @@ -571,6 +570,7 @@ "Default quota:" : "سهمیه پیش فرض:", "Show Languages" : "نمایش زبانها", "Send email to new user" : "ارسال ایمیل به کاربر جدید", + "Twitter" : "توییتر", "Enable untested app" : "برنامه آزمایش نشده را فعال کنید", "Plain" : "ساده", "NT LAN Manager" : "مدیر NT LAN", diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js index 3317e88bef2..2e9aa4af033 100644 --- a/apps/settings/l10n/fi.js +++ b/apps/settings/l10n/fi.js @@ -299,7 +299,6 @@ OC.L10N.register( "Edit your Profile visibility" : "Muokkaa profiilisi näkyvyyttä", "Enable Profile" : "Käytä profiilia", "Your role" : "Roolisi", - "Your Twitter handle" : "Twitter-tunnuksesi", "Your website" : "Verkkosivustosi", "Add additional email" : "Lisää toissijainen sähköpostiosoite", "Add" : "Lisää", @@ -408,7 +407,6 @@ OC.L10N.register( "Organisation" : "Organisaatio", "Phone number" : "Puhelinnumero", "Role" : "Rooli", - "Twitter" : "Twitter", "Website" : "Verkkosivusto", "Profile visibility" : "Profiilin näkyvyys", "Locale" : "Aluekohtainen asetus", @@ -500,6 +498,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png tai jpg, korkeintaan 20 Mt", "Your email address" : "Sähköpostiosoitteesi", "Your location" : "Sijaintisi", + "Your Twitter handle" : "Twitter-tunnuksesi", "Add new password" : "Lisää uusi salasana", "Add new email address" : "Lisää uusi sähköpostiosoite", "Edit User" : "Muokkaa käyttäjää", @@ -511,6 +510,7 @@ OC.L10N.register( "Default quota:" : "Oletuskiintiö:", "Show Languages" : "Näytä kielet", "Send email to new user" : "Lähetä sähköpostia uudelle käyttäjälle", + "Twitter" : "Twitter", "Enable untested app" : "Ota käyttöön testaamaton sovellus", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json index e7bcec0763e..177d4402e58 100644 --- a/apps/settings/l10n/fi.json +++ b/apps/settings/l10n/fi.json @@ -297,7 +297,6 @@ "Edit your Profile visibility" : "Muokkaa profiilisi näkyvyyttä", "Enable Profile" : "Käytä profiilia", "Your role" : "Roolisi", - "Your Twitter handle" : "Twitter-tunnuksesi", "Your website" : "Verkkosivustosi", "Add additional email" : "Lisää toissijainen sähköpostiosoite", "Add" : "Lisää", @@ -406,7 +405,6 @@ "Organisation" : "Organisaatio", "Phone number" : "Puhelinnumero", "Role" : "Rooli", - "Twitter" : "Twitter", "Website" : "Verkkosivusto", "Profile visibility" : "Profiilin näkyvyys", "Locale" : "Aluekohtainen asetus", @@ -498,6 +496,7 @@ "png or jpg, max. 20 MB" : "png tai jpg, korkeintaan 20 Mt", "Your email address" : "Sähköpostiosoitteesi", "Your location" : "Sijaintisi", + "Your Twitter handle" : "Twitter-tunnuksesi", "Add new password" : "Lisää uusi salasana", "Add new email address" : "Lisää uusi sähköpostiosoite", "Edit User" : "Muokkaa käyttäjää", @@ -509,6 +508,7 @@ "Default quota:" : "Oletuskiintiö:", "Show Languages" : "Näytä kielet", "Send email to new user" : "Lähetä sähköpostia uudelle käyttäjälle", + "Twitter" : "Twitter", "Enable untested app" : "Ota käyttöön testaamaton sovellus", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index 52ff18db47d..63e3e7640da 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -163,6 +163,8 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", + "PHP memory limit" : "Limite de mémoire PHP", + "The PHP memory limit is below the recommended value of %s." : "La limite de mémoire PHP est sous la valeur recommandée de %s.", "PHP modules" : "Modules PHP", "This instance is missing some required PHP modules. It is required to install them: %s." : "Cette instance ne dispose pas de plusieurs modules nécessaires sur cette instance. Il est obligatoire de les installer : %s.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité : %s.", @@ -382,7 +384,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Le paramètre le plus restrictif entre la visibilité et la confidentialité est respecté. Par exemple, si la visibilité est définie à \"Montrer à tout le monde\" et que la confidentialité est \"Privée\", \"Privée\" est respecté.", "Unable to update visibility of {displayId}" : "Impossible de mettre à jour la visibilité de {displayId}", "Your role" : "Votre fonction", - "Your Twitter handle" : "Votre pseudo Twitter", + "Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)", "Your website" : "Votre site web", "No {property} set" : "{property} n'est pas défini", "Unable to update {property}" : "Impossible de mettre à jour {property}", @@ -505,7 +507,7 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Numéro de téléphone", "Role" : "Fonction", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (anciennement Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (ex. Mastodon)", "Website" : "Site web", "Profile visibility" : "Visibilité du profil", @@ -612,6 +614,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ou jpg, max. 20 Mo", "Your email address" : "Votre adresse e-mail", "Your location" : "Votre localisation", + "Your Twitter handle" : "Votre pseudo Twitter", "Add new password" : "Ajouter un nouveau mot de passe", "Add new email address" : "Ajouter une nouvelle adresse e-mail", "Edit User" : "Modifier l'utilisateur", @@ -623,6 +626,7 @@ OC.L10N.register( "Default quota:" : "Quota par défaut :", "Show Languages" : "Afficher la langue", "Send email to new user" : "Envoyer un e-mail aux nouveaux utilisateurs", + "Twitter" : "Twitter", "Enable untested app" : "Activer l'application non testée", "Plain" : "En clair", "NT LAN Manager" : "Gestionnaire du réseau NT", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index c9f62f3219c..893b39068ad 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -161,6 +161,8 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", + "PHP memory limit" : "Limite de mémoire PHP", + "The PHP memory limit is below the recommended value of %s." : "La limite de mémoire PHP est sous la valeur recommandée de %s.", "PHP modules" : "Modules PHP", "This instance is missing some required PHP modules. It is required to install them: %s." : "Cette instance ne dispose pas de plusieurs modules nécessaires sur cette instance. Il est obligatoire de les installer : %s.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité : %s.", @@ -380,7 +382,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Le paramètre le plus restrictif entre la visibilité et la confidentialité est respecté. Par exemple, si la visibilité est définie à \"Montrer à tout le monde\" et que la confidentialité est \"Privée\", \"Privée\" est respecté.", "Unable to update visibility of {displayId}" : "Impossible de mettre à jour la visibilité de {displayId}", "Your role" : "Votre fonction", - "Your Twitter handle" : "Votre pseudo Twitter", + "Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)", "Your website" : "Votre site web", "No {property} set" : "{property} n'est pas défini", "Unable to update {property}" : "Impossible de mettre à jour {property}", @@ -503,7 +505,7 @@ "Organisation" : "Organisation", "Phone number" : "Numéro de téléphone", "Role" : "Fonction", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (anciennement Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (ex. Mastodon)", "Website" : "Site web", "Profile visibility" : "Visibilité du profil", @@ -610,6 +612,7 @@ "png or jpg, max. 20 MB" : "png ou jpg, max. 20 Mo", "Your email address" : "Votre adresse e-mail", "Your location" : "Votre localisation", + "Your Twitter handle" : "Votre pseudo Twitter", "Add new password" : "Ajouter un nouveau mot de passe", "Add new email address" : "Ajouter une nouvelle adresse e-mail", "Edit User" : "Modifier l'utilisateur", @@ -621,6 +624,7 @@ "Default quota:" : "Quota par défaut :", "Show Languages" : "Afficher la langue", "Send email to new user" : "Envoyer un e-mail aux nouveaux utilisateurs", + "Twitter" : "Twitter", "Enable untested app" : "Activer l'application non testée", "Plain" : "En clair", "NT LAN Manager" : "Gestionnaire du réseau NT", diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js index a3125a332fa..e49eb6d174d 100644 --- a/apps/settings/l10n/gl.js +++ b/apps/settings/l10n/gl.js @@ -140,20 +140,58 @@ OC.L10N.register( "Reshare" : "Volver compartir", "Unlimited" : "Sen límites", "Verifying" : "Verificando", + "Old user imported certificates" : "Certificados antigos importados polo usuario", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Está pendente un traballo en segundo plano que comprobe os certificados SSL importados polo usuario. Volva comprobar máis adiante.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Hai algúns certificados SSL importados polo usuario, que xa non se usan con Nextcloud 21. Pódense importar coa liña de ordes mediante a orde «occ security:certificates:import». As súas rutas dentro do directorio de datos amosanse deseguido.", + "Default phone region" : "Rexión telefónica predeterminada", + "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "A súa instalación non ten estabelecida a rexión telefónica predeterminada. Isto é preciso para validar os números de teléfono nos axustes do perfil sen un código de país. Para permitir números sen código de país, engada «default_phone_region» co respectivo código ISO 3166-1 da rexión ao seu ficheiro de configuración.", + "Email test" : "Correo de proba", + "Email test was successfully sent" : "O correo de proba foi enviado satisfactoriamente", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Aínda non estabeleceu ou verificou a configuración do seu servidor de correo. Diríxase á «Axustes básicos» para configurala. Após, use o botón «Enviar o correo»» baixo o formulario para verificar os seus axustes.", + "File locking" : "Bloqueo de ficheiros", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueo de ficheiros transaccionais está desactivado, isto podería levar a problemas baixo certas condicións. Active «filelocking.enabled» en «config.php» para evitar eses problemas", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "A base de datos úsase para o bloqueo de ficheiros transaccionais. Para mellorar o rendemento, configure Memcache, se está dispoñíbel.", + "Internet connectivity" : "Conectividade a Internet", + "Internet connectivity is disabled in configuration file." : "A conectividade a Internet está desactivada no ficheiro de configuración.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Este servidor non ten unha conexión a Internet que funcione: non foi posíbel acceder a varios puntos finais. Isto significa que algunhas das funcións como a instalación de almacenamento externo, as notificacións sobre actualizacións ou a instalación de aplicacións de terceiros non funcionarán. O acceso aos ficheiros de forma remota e o envío de correos de notificación pode que tampouco funcionen. Estabeleza unha conexión a Internet dende este servidor para gozar de todas as funcións.", + "Old server-side-encryption" : "Antigo cifrado no lado do servidor", "Disabled" : "Desactivado", "The old server-side-encryption format is enabled. We recommend disabling this." : "O antigo formato de cifrado do lado do servidor está activado. Recomendámoslle desactivalo.", + "Memcache" : "Memcache", + "Configured" : "Configurado", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Non se configurou ningunha caché de memoria. Para mellorar o rendemento, configure Memcache, se está dispoñíbel.", + "PHP default charset" : "Conxunto de caracteres predeterminado de PHP", + "PHP configuration option default_charset should be UTF-8" : "A opción de configuración de PHP default_charset debería ser UTF-8", + "Freetype" : "FreeType", "Supported" : "Compatíbel", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP non é compatíbel con FreeType, o que supón a quebra das imaxes do perfil e a interface dos axustes.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Semella que PHP non está configurado correctamente para consultar as variábeis de contorno do sistema. A proba con getenv(\"PATH\") só devolve unha resposta baleira. ", + "PHP modules" : "PHP modules", + "This instance is missing some required PHP modules. It is required to install them: %s." : "A esta instancia fáltanlle algúns módulos PHP necesarios. Precísase da súa instalación: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "A esta instancia fáltanlle algúns módulos PHP recomendados. Para mellorar o rendemento e unha mellor compatibilidade é moi recomendábel instalalos: %s.", + "PHP version" : "PHP version", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualmente está a executar PHP %s. PHP 8.0 é obsoleto en Nextcloud 27. Nextcloud 28 pode precisar polo menos PHP 8.1. Actualice a unha das versións de PHP oficialmente compatíbeis fornecidas polo Grupo PHP o antes posíbel.", + "You are currently running PHP %s." : "Actualmente está a executar PHP %s.", + "PHP output_buffering option" : "Opción de PHP output_buffering", + "PHP configuration option output_buffering must be disabled" : "A opción de configuración de PHP output_buffering debe estar desactivada", + "Random generator" : "Xerador ao chou", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP non atopou ningunha fonte axeitada para a aleatoriedade, o que é moi desaconsellábel por razóns de seguridade.", + "Secure" : "Seguro", + "Configuration file access rights" : "Dereitos de acceso ao ficheiro de configuración", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Foi activada a restrición da configuración a só lectura. Isto impide o axuste dalgunhas configuracións a través da interface web. Ademais, ten que facer escribíbel manualmente o ficheiro para cada actualización.", + "Nextcloud configuration file is writable" : "O ficheiro de configuración de Nextcloud pódese escribir", + "Database version" : "Versión da base de datos", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MariaDB. Nextcloud 21 ou superior non admite esta versión e precisa MariaDB 10.2 ou superior.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MySQL. Nextcloud 21 e superior non admite esta versión e precisan MySQL 8.0 ou MariaDB 10.2 ou superior.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Utilízase a versión «%s» de PostgreSQL. Nextcloud 21 ou superior non admite esta versión e precisa PostgreSQL 9.6 ou superior.", + "Unknown database plaform" : "Plataforma de base de datos descoñecida", "Architecture" : "Arquitectura", + "64-bit" : "64 bits", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Semella que está a executar unha versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar ben. Actualice o seu sistema operativo e PHP a 64 bits.", + "Database transaction isolation level" : "Nivel de illamento da transacción da base de datos", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "A súa base de datos non se executa co nivel de illamento de transacción «READ COMMITTED» . Isto pode causar problemas cando se executan múltiples accións en paralelo.", + "Was not able to get transaction isolation level: %s" : "Non foi posíbel obter o nivel de illamento da transacción: %s", "Profile information" : "Información do perfil", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Imaxe de perfil, nome completo, correo-e, número de teléfono, enderezo, sitio web, Twitter, organización, función, título, biografía e se o seu perfil está activado", "Nextcloud settings" : "Axustes de Nextcloud", @@ -163,6 +201,8 @@ OC.L10N.register( "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text pódese realizar mediante diferentes aplicacións. Aquí pode definir que aplicación debe usar.", "None of your currently installed apps provide Speech-To-Text functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de conversión de voz a texto", "Image generation" : "Xeración de imaxes", + "Image generation can be implemented by different apps. Here you can set which app should be used." : "A xeración de imaxes pódese realizar mediante diferentes aplicacións. Aquí pode definir que aplicación debe usar.", + "None of your currently installed apps provide image generation functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de xeración de imaxes", "Text processing" : "Procesamento de texto", "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "As tarefas de procesamento de texto poden ser realizadas por diferentes aplicacións. Aquí pode definir que aplicación debe usarse para que tarefa.", "Task:" : "Tarefa:", @@ -266,7 +306,7 @@ OC.L10N.register( "Cron (Recommended)" : "Cron (Recomendado)", "Use system cron service to call the cron.php file every 5 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 5 minutos.", "The cron.php needs to be executed by the system user \"{user}\"." : "O cron.php debe ser executado polo usuario do sistema «{user}».", - "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Precisase a extensión POSIX de PHP. Vexa a {linkstart}documentación de PHP{linkend} para obter máis detalles. ", + "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Precísase da extensión POSIX de PHP. Vexa a {linkstart}documentación de PHP{linkend} para obter máis detalles. ", "Unable to update background job mode" : "Non é posíbel actualizar o modo de traballo en segundo plano", "Profile" : "Perfil", "Enable or disable profile by default for new users." : "Activar ou desactivar o perfil predeterminado para os novos usuarios.", @@ -349,7 +389,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "No seu perfil respectase a configuración máis restritiva de visibilidade ou ambito. Por exemplo, se a visibilidade está estabelecida como«Amosar a todos» e o ámbito está configurado como «Privado», respéctase «Privado».", "Unable to update visibility of {displayId}" : "Non é posíbel actualizar a visibilidade de {displayId}", "Your role" : "O seu cargo", - "Your Twitter handle" : "O seu usuario do Twitter", + "Your X (formerly Twitter) handle" : "O seu identificador en X (anteriormente Twitter).", "Your website" : "O seu sitio web", "No {property} set" : "Non estabeleceu {property}", "Unable to update {property}" : "Non é posíbel actualizar a {property}", @@ -367,7 +407,7 @@ OC.L10N.register( "Password change is disabled because the master key is disabled" : "O cambio de contrasinal está desactivado porque a chave principal está desactivada", "New user" : "Novo usuario", "Display name" : "Nome para amosar", - "Either password or email is required" : "Precisase un contrasinal ou un correo-e", + "Either password or email is required" : "Precísase dun contrasinal ou un correo-e", "Password (required)" : "Contrasinal (necesario)", "Email (required)" : "Correo-e (necesario)", "Email" : "Correo", @@ -458,6 +498,8 @@ OC.L10N.register( "Creating group …" : "Creando un grupo…", "Create group" : "Creando o grupo", "Group name" : "Nome do grupo", + "Please enter a valid group name" : "Introduza un nome de grupo válido", + "Failed to create group" : "Produciuse un fallo ao crear o grupo", "Not saved" : "Sen gardar", "Sending…" : "Enviando…", "Email sent" : "Correo enviado", @@ -470,7 +512,7 @@ OC.L10N.register( "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Cargo", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (anteriormente Twitter).", "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidade do perfil", @@ -498,6 +540,10 @@ OC.L10N.register( "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto coa administración desta instancia. se se trata dun erro.", "Documentation" : "Documentación", "Forum" : "Foro", + "Nextcloud help resources" : "Recursos de axuda de Nextcloud", + "Account documentation" : "Documentación da conta", + "Administration documentation" : "Documentación da administración da instancia", + "General documentation" : "Documentación xeral", "Login" : "Acceso", "None/STARTTLS" : "Ningún/STARTTLS", "SSL" : "SSL", @@ -510,7 +556,7 @@ OC.L10N.register( "Server address" : "Enderezo do servidor", "Port" : "Porto", "Authentication" : "Autenticación", - "Authentication required" : "Precisase autenticación", + "Authentication required" : "Precísase da autenticación", "Credentials" : "Credenciais", "SMTP Username" : "Nome de usuario SMTP", "SMTP Password" : "Contrasinal SMTP", @@ -573,6 +619,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ou jpg, max. 20 MB", "Your email address" : "O seu enderezo de correo", "Your location" : "A súa localización", + "Your Twitter handle" : "O seu usuario do Twitter", "Add new password" : "Engadir un novo contrasinal", "Add new email address" : "Engadir un novo enderezo de correo", "Edit User" : "Editar usuario", @@ -584,6 +631,7 @@ OC.L10N.register( "Default quota:" : "Cota predeterminada:", "Show Languages" : "Amosar os idiomas", "Send email to new user" : "Enviar correo ao novo usuario", + "Twitter" : "Twitter", "Enable untested app" : "Activar a aplicación sen probar", "Plain" : "Simple", "NT LAN Manager" : "Xestor NT LAN", diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json index dd83ac9f615..b052b2144d8 100644 --- a/apps/settings/l10n/gl.json +++ b/apps/settings/l10n/gl.json @@ -138,20 +138,58 @@ "Reshare" : "Volver compartir", "Unlimited" : "Sen límites", "Verifying" : "Verificando", + "Old user imported certificates" : "Certificados antigos importados polo usuario", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Está pendente un traballo en segundo plano que comprobe os certificados SSL importados polo usuario. Volva comprobar máis adiante.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Hai algúns certificados SSL importados polo usuario, que xa non se usan con Nextcloud 21. Pódense importar coa liña de ordes mediante a orde «occ security:certificates:import». As súas rutas dentro do directorio de datos amosanse deseguido.", + "Default phone region" : "Rexión telefónica predeterminada", + "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "A súa instalación non ten estabelecida a rexión telefónica predeterminada. Isto é preciso para validar os números de teléfono nos axustes do perfil sen un código de país. Para permitir números sen código de país, engada «default_phone_region» co respectivo código ISO 3166-1 da rexión ao seu ficheiro de configuración.", + "Email test" : "Correo de proba", + "Email test was successfully sent" : "O correo de proba foi enviado satisfactoriamente", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Aínda non estabeleceu ou verificou a configuración do seu servidor de correo. Diríxase á «Axustes básicos» para configurala. Após, use o botón «Enviar o correo»» baixo o formulario para verificar os seus axustes.", + "File locking" : "Bloqueo de ficheiros", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueo de ficheiros transaccionais está desactivado, isto podería levar a problemas baixo certas condicións. Active «filelocking.enabled» en «config.php» para evitar eses problemas", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "A base de datos úsase para o bloqueo de ficheiros transaccionais. Para mellorar o rendemento, configure Memcache, se está dispoñíbel.", + "Internet connectivity" : "Conectividade a Internet", + "Internet connectivity is disabled in configuration file." : "A conectividade a Internet está desactivada no ficheiro de configuración.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Este servidor non ten unha conexión a Internet que funcione: non foi posíbel acceder a varios puntos finais. Isto significa que algunhas das funcións como a instalación de almacenamento externo, as notificacións sobre actualizacións ou a instalación de aplicacións de terceiros non funcionarán. O acceso aos ficheiros de forma remota e o envío de correos de notificación pode que tampouco funcionen. Estabeleza unha conexión a Internet dende este servidor para gozar de todas as funcións.", + "Old server-side-encryption" : "Antigo cifrado no lado do servidor", "Disabled" : "Desactivado", "The old server-side-encryption format is enabled. We recommend disabling this." : "O antigo formato de cifrado do lado do servidor está activado. Recomendámoslle desactivalo.", + "Memcache" : "Memcache", + "Configured" : "Configurado", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Non se configurou ningunha caché de memoria. Para mellorar o rendemento, configure Memcache, se está dispoñíbel.", + "PHP default charset" : "Conxunto de caracteres predeterminado de PHP", + "PHP configuration option default_charset should be UTF-8" : "A opción de configuración de PHP default_charset debería ser UTF-8", + "Freetype" : "FreeType", "Supported" : "Compatíbel", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP non é compatíbel con FreeType, o que supón a quebra das imaxes do perfil e a interface dos axustes.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Semella que PHP non está configurado correctamente para consultar as variábeis de contorno do sistema. A proba con getenv(\"PATH\") só devolve unha resposta baleira. ", + "PHP modules" : "PHP modules", + "This instance is missing some required PHP modules. It is required to install them: %s." : "A esta instancia fáltanlle algúns módulos PHP necesarios. Precísase da súa instalación: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "A esta instancia fáltanlle algúns módulos PHP recomendados. Para mellorar o rendemento e unha mellor compatibilidade é moi recomendábel instalalos: %s.", + "PHP version" : "PHP version", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualmente está a executar PHP %s. PHP 8.0 é obsoleto en Nextcloud 27. Nextcloud 28 pode precisar polo menos PHP 8.1. Actualice a unha das versións de PHP oficialmente compatíbeis fornecidas polo Grupo PHP o antes posíbel.", + "You are currently running PHP %s." : "Actualmente está a executar PHP %s.", + "PHP output_buffering option" : "Opción de PHP output_buffering", + "PHP configuration option output_buffering must be disabled" : "A opción de configuración de PHP output_buffering debe estar desactivada", + "Random generator" : "Xerador ao chou", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP non atopou ningunha fonte axeitada para a aleatoriedade, o que é moi desaconsellábel por razóns de seguridade.", + "Secure" : "Seguro", + "Configuration file access rights" : "Dereitos de acceso ao ficheiro de configuración", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Foi activada a restrición da configuración a só lectura. Isto impide o axuste dalgunhas configuracións a través da interface web. Ademais, ten que facer escribíbel manualmente o ficheiro para cada actualización.", + "Nextcloud configuration file is writable" : "O ficheiro de configuración de Nextcloud pódese escribir", + "Database version" : "Versión da base de datos", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MariaDB. Nextcloud 21 ou superior non admite esta versión e precisa MariaDB 10.2 ou superior.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MySQL. Nextcloud 21 e superior non admite esta versión e precisan MySQL 8.0 ou MariaDB 10.2 ou superior.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Utilízase a versión «%s» de PostgreSQL. Nextcloud 21 ou superior non admite esta versión e precisa PostgreSQL 9.6 ou superior.", + "Unknown database plaform" : "Plataforma de base de datos descoñecida", "Architecture" : "Arquitectura", + "64-bit" : "64 bits", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Semella que está a executar unha versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar ben. Actualice o seu sistema operativo e PHP a 64 bits.", + "Database transaction isolation level" : "Nivel de illamento da transacción da base de datos", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "A súa base de datos non se executa co nivel de illamento de transacción «READ COMMITTED» . Isto pode causar problemas cando se executan múltiples accións en paralelo.", + "Was not able to get transaction isolation level: %s" : "Non foi posíbel obter o nivel de illamento da transacción: %s", "Profile information" : "Información do perfil", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Imaxe de perfil, nome completo, correo-e, número de teléfono, enderezo, sitio web, Twitter, organización, función, título, biografía e se o seu perfil está activado", "Nextcloud settings" : "Axustes de Nextcloud", @@ -161,6 +199,8 @@ "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text pódese realizar mediante diferentes aplicacións. Aquí pode definir que aplicación debe usar.", "None of your currently installed apps provide Speech-To-Text functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de conversión de voz a texto", "Image generation" : "Xeración de imaxes", + "Image generation can be implemented by different apps. Here you can set which app should be used." : "A xeración de imaxes pódese realizar mediante diferentes aplicacións. Aquí pode definir que aplicación debe usar.", + "None of your currently installed apps provide image generation functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de xeración de imaxes", "Text processing" : "Procesamento de texto", "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "As tarefas de procesamento de texto poden ser realizadas por diferentes aplicacións. Aquí pode definir que aplicación debe usarse para que tarefa.", "Task:" : "Tarefa:", @@ -264,7 +304,7 @@ "Cron (Recommended)" : "Cron (Recomendado)", "Use system cron service to call the cron.php file every 5 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 5 minutos.", "The cron.php needs to be executed by the system user \"{user}\"." : "O cron.php debe ser executado polo usuario do sistema «{user}».", - "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Precisase a extensión POSIX de PHP. Vexa a {linkstart}documentación de PHP{linkend} para obter máis detalles. ", + "The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Precísase da extensión POSIX de PHP. Vexa a {linkstart}documentación de PHP{linkend} para obter máis detalles. ", "Unable to update background job mode" : "Non é posíbel actualizar o modo de traballo en segundo plano", "Profile" : "Perfil", "Enable or disable profile by default for new users." : "Activar ou desactivar o perfil predeterminado para os novos usuarios.", @@ -347,7 +387,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "No seu perfil respectase a configuración máis restritiva de visibilidade ou ambito. Por exemplo, se a visibilidade está estabelecida como«Amosar a todos» e o ámbito está configurado como «Privado», respéctase «Privado».", "Unable to update visibility of {displayId}" : "Non é posíbel actualizar a visibilidade de {displayId}", "Your role" : "O seu cargo", - "Your Twitter handle" : "O seu usuario do Twitter", + "Your X (formerly Twitter) handle" : "O seu identificador en X (anteriormente Twitter).", "Your website" : "O seu sitio web", "No {property} set" : "Non estabeleceu {property}", "Unable to update {property}" : "Non é posíbel actualizar a {property}", @@ -365,7 +405,7 @@ "Password change is disabled because the master key is disabled" : "O cambio de contrasinal está desactivado porque a chave principal está desactivada", "New user" : "Novo usuario", "Display name" : "Nome para amosar", - "Either password or email is required" : "Precisase un contrasinal ou un correo-e", + "Either password or email is required" : "Precísase dun contrasinal ou un correo-e", "Password (required)" : "Contrasinal (necesario)", "Email (required)" : "Correo-e (necesario)", "Email" : "Correo", @@ -456,6 +496,8 @@ "Creating group …" : "Creando un grupo…", "Create group" : "Creando o grupo", "Group name" : "Nome do grupo", + "Please enter a valid group name" : "Introduza un nome de grupo válido", + "Failed to create group" : "Produciuse un fallo ao crear o grupo", "Not saved" : "Sen gardar", "Sending…" : "Enviando…", "Email sent" : "Correo enviado", @@ -468,7 +510,7 @@ "Organisation" : "Organización", "Phone number" : "Número de teléfono", "Role" : "Cargo", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (anteriormente Twitter).", "Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)", "Website" : "Sitio web", "Profile visibility" : "Visibilidade do perfil", @@ -496,6 +538,10 @@ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto coa administración desta instancia. se se trata dun erro.", "Documentation" : "Documentación", "Forum" : "Foro", + "Nextcloud help resources" : "Recursos de axuda de Nextcloud", + "Account documentation" : "Documentación da conta", + "Administration documentation" : "Documentación da administración da instancia", + "General documentation" : "Documentación xeral", "Login" : "Acceso", "None/STARTTLS" : "Ningún/STARTTLS", "SSL" : "SSL", @@ -508,7 +554,7 @@ "Server address" : "Enderezo do servidor", "Port" : "Porto", "Authentication" : "Autenticación", - "Authentication required" : "Precisase autenticación", + "Authentication required" : "Precísase da autenticación", "Credentials" : "Credenciais", "SMTP Username" : "Nome de usuario SMTP", "SMTP Password" : "Contrasinal SMTP", @@ -571,6 +617,7 @@ "png or jpg, max. 20 MB" : "png ou jpg, max. 20 MB", "Your email address" : "O seu enderezo de correo", "Your location" : "A súa localización", + "Your Twitter handle" : "O seu usuario do Twitter", "Add new password" : "Engadir un novo contrasinal", "Add new email address" : "Engadir un novo enderezo de correo", "Edit User" : "Editar usuario", @@ -582,6 +629,7 @@ "Default quota:" : "Cota predeterminada:", "Show Languages" : "Amosar os idiomas", "Send email to new user" : "Enviar correo ao novo usuario", + "Twitter" : "Twitter", "Enable untested app" : "Activar a aplicación sen probar", "Plain" : "Simple", "NT LAN Manager" : "Xestor NT LAN", diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js index 26dc6f27503..bcdf01d76c1 100644 --- a/apps/settings/l10n/he.js +++ b/apps/settings/l10n/he.js @@ -294,7 +294,6 @@ OC.L10N.register( "About" : "על אודות", "Full name" : "שם מלא", "Phone number" : "מספר טלפון", - "Twitter" : "טוויטר", "Website" : "אתר", "Locale" : "הגדרות אזוריות", "Active apps" : "יישומונים פעילים", @@ -377,6 +376,7 @@ OC.L10N.register( "Default quota:" : "מכסת בררת מחדל:", "Show Languages" : "הצגת שפות", "Send email to new user" : "שליחת דואר אלקטרוני למשתמש חדש", + "Twitter" : "טוויטר", "Enable untested app" : "לאפשר יישומון שלא נבדק", "Plain" : "רגיל", "NT LAN Manager" : "מנהל רשת NT", diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json index 64cb2041214..4fbc1240873 100644 --- a/apps/settings/l10n/he.json +++ b/apps/settings/l10n/he.json @@ -292,7 +292,6 @@ "About" : "על אודות", "Full name" : "שם מלא", "Phone number" : "מספר טלפון", - "Twitter" : "טוויטר", "Website" : "אתר", "Locale" : "הגדרות אזוריות", "Active apps" : "יישומונים פעילים", @@ -375,6 +374,7 @@ "Default quota:" : "מכסת בררת מחדל:", "Show Languages" : "הצגת שפות", "Send email to new user" : "שליחת דואר אלקטרוני למשתמש חדש", + "Twitter" : "טוויטר", "Enable untested app" : "לאפשר יישומון שלא נבדק", "Plain" : "רגיל", "NT LAN Manager" : "מנהל רשת NT", diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js index 3edea46fde9..20cd034bad8 100644 --- a/apps/settings/l10n/hr.js +++ b/apps/settings/l10n/hr.js @@ -338,7 +338,6 @@ OC.L10N.register( "Organisation" : "Organizacija", "Phone number" : "Broj telefona", "Role" : "Uloga", - "Twitter" : "Twitter", "Website" : "Web-mjesto", "Profile visibility" : "Vidljivost profila", "Locale" : "Lokacija", @@ -436,6 +435,7 @@ OC.L10N.register( "Default quota:" : "Zadana kvota:", "Show Languages" : "Prikaži jezike", "Send email to new user" : "Pošalji poruku e-pošte novom korisniku", + "Twitter" : "Twitter", "Enable untested app" : "Omogući neprovjerenu aplikaciju", "Plain" : "Čisti tekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/hr.json b/apps/settings/l10n/hr.json index da87a19d76a..63584c48807 100644 --- a/apps/settings/l10n/hr.json +++ b/apps/settings/l10n/hr.json @@ -336,7 +336,6 @@ "Organisation" : "Organizacija", "Phone number" : "Broj telefona", "Role" : "Uloga", - "Twitter" : "Twitter", "Website" : "Web-mjesto", "Profile visibility" : "Vidljivost profila", "Locale" : "Lokacija", @@ -434,6 +433,7 @@ "Default quota:" : "Zadana kvota:", "Show Languages" : "Prikaži jezike", "Send email to new user" : "Pošalji poruku e-pošte novom korisniku", + "Twitter" : "Twitter", "Enable untested app" : "Omogući neprovjerenu aplikaciju", "Plain" : "Čisti tekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js index f22f8652f47..9c7e4f0af37 100644 --- a/apps/settings/l10n/hu.js +++ b/apps/settings/l10n/hu.js @@ -140,28 +140,45 @@ OC.L10N.register( "Reshare" : "Megosztás újra", "Unlimited" : "Korlátlan", "Verifying" : "Ellenőrzés", + "Old user imported certificates" : "Régi felhasználói importált tanúsítvány", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Függőben van egy háttérfolyamat, amely ellenőrzi a felhasználó által importált SSL-tanúsítványokat. Kérjük, nézzen vissza később. ", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Vannak olyan felhasználók által importált SSL-tanúsítványok, melyeket a Nextcloud 21 már nem használ. Importálhatók parancssorból az „occ security: certificate: import” paranccsal. Az adatkönyvtárban található elérési utak az alábbiakban láthatók.", + "Default phone region" : "Alapértelmezett telefon körzet", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "A telepítéshez nincs megadva alapértelmezett telefonrégió. Erre a telefonszámok országkód nélküli hitelesítéséhez van szükség a profilbeállításokban. Ha országkód nélküli számokat szeretne engedélyezni, vegye fel a konfigurációs fájlba az „default_phone_region” szót a régió megfelelő ISO 3166-1 kódjával.", + "Email test" : "E-mail teszt", + "Email test was successfully sent" : "A teszt e-mail sikeresen elküldve", + "File locking" : "Fáljzárolás", "Internet connectivity" : "Internetkapcsolat", "Internet connectivity is disabled in configuration file." : "Az internetkapcsolat le van tiltva a konfigurációs fájlban.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Ennek a kiszolgálónak nincs működő internetkapcsolata: több végpont nem érhető el. Ez azt jelenti, hogy néhány funkció, mint például a külső tárolók csatolása, a frissítési értesítések, vagy a harmadik féltől származó alkalmazások telepítése nem fog működni. Lehet, hogy a fájlok távoli elérése és az e-mail értesítések sem működnek. Létesítsen internetkapcsolatot a kiszolgálón, ha minden funkciót használni szeretne.", + "Old server-side-encryption" : "Régi kiszolgálóoldali titkosítás", "Disabled" : "Letiltva", "The old server-side-encryption format is enabled. We recommend disabling this." : "A régi kiszolgálóoldali titkosítási formátum engedélyezett. Javasoljuk ennek letiltását.", + "Memcache" : "Memcache", + "Configured" : "Beállítva", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nincs memória-gyorsítótár konfigurálva. A teljesítmény fokozása érdekében konfiguráljon egy memória-gyorsítótárat, ha elérhető.", "PHP configuration option default_charset should be UTF-8" : "A PHP konfigurációs beállítása default_charset UTF-8 legyen", "Supported" : "Támogatott", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Úgy tűnik a PHP nincs rendesen beállítva a rendszer környezeti változóinak lekéréséhez. A getenv(\"PATH\") teszt csak üres értéket ad vissza.", "PHP modules" : "PHP modulok", + "PHP version" : "PHP verzió", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "A jelenlegi PHP verzió PHP %s. A PHP 8.0 már elavult a Nextcloud 27-ben. A Nextcloud 28-hoz legalább PHP 8.1 szükséges. Frissítsen az egyik hivatalosan támogatott PHP verzióra, melyet a PHP Group biztosít.", "You are currently running PHP %s." : "A jelenlegi PHP verzió: %s.", + "PHP output_buffering option" : "PHP output_buffering opció", "PHP configuration option output_buffering must be disabled" : "A PHP konfigurációs opciójának output_buffering letiltása kötelező", + "Random generator" : "Random generátor", + "Secure" : "Biztonságos", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Csak olvasható beállítófájl engedélyezve. Ez meggátolja a beállítások módosítását a webes felületről. Továbbá, a fájlt kézzel kell írhatóvá tenni minden módosításhoz.", "Nextcloud configuration file is writable" : "A Nextcloud konfigurációs fájl írható", + "Database version" : "Adatbázis verzió", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A MariaDB következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MariaDB 10.2-es verziója szükséges.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A MySQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MySQL 8.0-s vagy a MariaDB 10.2-es verziója szükséges.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A PostgreSQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a PostgreSQL 9.6-os verziója szükséges.", + "Unknown database plaform" : "Ismeretlen adatbázis platform", "Architecture" : "Építészet", + "64-bit" : "64-bit", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázis nem „READ COMMITTED” tranzakció izolációs szinttel fut. Ez problémákat okozhat több egyidejű esemény végrehajtásakor.", "Profile information" : "Profilinformációk", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilkép, teljes név, e-mail-cím, telefonszám, cím, weboldal, Twitter-fiók, szervezet, szerepkör, címsor, életrajz és hogy engedélyezett-e", @@ -358,7 +375,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "A profiljában a láthatóság vagy hatókör közül a szigorúbb beállítás lesz figyelembe véve. Például ha a láthatóság „Mindenki számára látható” és a hatókör „Privát”, akkor a „Privát” lesz figyelembe véve.", "Unable to update visibility of {displayId}" : "A(z) {displayId} láthatósága nem frissíthető", "Your role" : "Az Ön szerepköre", - "Your Twitter handle" : "A Twitter-azonosítója", "Your website" : "A saját weboldala", "No {property} set" : "Nincs {property} beállítva", "Unable to update {property}" : "A(z) {property} nem frissíthető", @@ -481,7 +497,6 @@ OC.L10N.register( "Organisation" : "Szervezet", "Phone number" : "Telefonszám", "Role" : "Szerepkör", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Födiverzum (például Mastodon)", "Website" : "Weboldal", "Profile visibility" : "Profil láthatósága", @@ -588,6 +603,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB", "Your email address" : "Az Ön e-mail-címe", "Your location" : "A saját helye", + "Your Twitter handle" : "A Twitter-azonosítója", "Add new password" : "Új jelszó hozzáadása", "Add new email address" : "Új e-mail-cím hozzáadása", "Edit User" : "Felhasználó szerkesztése", @@ -599,6 +615,7 @@ OC.L10N.register( "Default quota:" : "Alapértelmezett kvóta:", "Show Languages" : "Nyelvek megjelenítése", "Send email to new user" : "E-mail küldése az új felhasználónak", + "Twitter" : "Twitter", "Enable untested app" : "Teszteletlen alkalmazás engedélyezése", "Plain" : "Egyszerű", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json index cc94b19ea2c..90b6976d997 100644 --- a/apps/settings/l10n/hu.json +++ b/apps/settings/l10n/hu.json @@ -138,28 +138,45 @@ "Reshare" : "Megosztás újra", "Unlimited" : "Korlátlan", "Verifying" : "Ellenőrzés", + "Old user imported certificates" : "Régi felhasználói importált tanúsítvány", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Függőben van egy háttérfolyamat, amely ellenőrzi a felhasználó által importált SSL-tanúsítványokat. Kérjük, nézzen vissza később. ", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Vannak olyan felhasználók által importált SSL-tanúsítványok, melyeket a Nextcloud 21 már nem használ. Importálhatók parancssorból az „occ security: certificate: import” paranccsal. Az adatkönyvtárban található elérési utak az alábbiakban láthatók.", + "Default phone region" : "Alapértelmezett telefon körzet", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "A telepítéshez nincs megadva alapértelmezett telefonrégió. Erre a telefonszámok országkód nélküli hitelesítéséhez van szükség a profilbeállításokban. Ha országkód nélküli számokat szeretne engedélyezni, vegye fel a konfigurációs fájlba az „default_phone_region” szót a régió megfelelő ISO 3166-1 kódjával.", + "Email test" : "E-mail teszt", + "Email test was successfully sent" : "A teszt e-mail sikeresen elküldve", + "File locking" : "Fáljzárolás", "Internet connectivity" : "Internetkapcsolat", "Internet connectivity is disabled in configuration file." : "Az internetkapcsolat le van tiltva a konfigurációs fájlban.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Ennek a kiszolgálónak nincs működő internetkapcsolata: több végpont nem érhető el. Ez azt jelenti, hogy néhány funkció, mint például a külső tárolók csatolása, a frissítési értesítések, vagy a harmadik féltől származó alkalmazások telepítése nem fog működni. Lehet, hogy a fájlok távoli elérése és az e-mail értesítések sem működnek. Létesítsen internetkapcsolatot a kiszolgálón, ha minden funkciót használni szeretne.", + "Old server-side-encryption" : "Régi kiszolgálóoldali titkosítás", "Disabled" : "Letiltva", "The old server-side-encryption format is enabled. We recommend disabling this." : "A régi kiszolgálóoldali titkosítási formátum engedélyezett. Javasoljuk ennek letiltását.", + "Memcache" : "Memcache", + "Configured" : "Beállítva", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Nincs memória-gyorsítótár konfigurálva. A teljesítmény fokozása érdekében konfiguráljon egy memória-gyorsítótárat, ha elérhető.", "PHP configuration option default_charset should be UTF-8" : "A PHP konfigurációs beállítása default_charset UTF-8 legyen", "Supported" : "Támogatott", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Úgy tűnik a PHP nincs rendesen beállítva a rendszer környezeti változóinak lekéréséhez. A getenv(\"PATH\") teszt csak üres értéket ad vissza.", "PHP modules" : "PHP modulok", + "PHP version" : "PHP verzió", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "A jelenlegi PHP verzió PHP %s. A PHP 8.0 már elavult a Nextcloud 27-ben. A Nextcloud 28-hoz legalább PHP 8.1 szükséges. Frissítsen az egyik hivatalosan támogatott PHP verzióra, melyet a PHP Group biztosít.", "You are currently running PHP %s." : "A jelenlegi PHP verzió: %s.", + "PHP output_buffering option" : "PHP output_buffering opció", "PHP configuration option output_buffering must be disabled" : "A PHP konfigurációs opciójának output_buffering letiltása kötelező", + "Random generator" : "Random generátor", + "Secure" : "Biztonságos", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Csak olvasható beállítófájl engedélyezve. Ez meggátolja a beállítások módosítását a webes felületről. Továbbá, a fájlt kézzel kell írhatóvá tenni minden módosításhoz.", "Nextcloud configuration file is writable" : "A Nextcloud konfigurációs fájl írható", + "Database version" : "Adatbázis verzió", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A MariaDB következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MariaDB 10.2-es verziója szükséges.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A MySQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MySQL 8.0-s vagy a MariaDB 10.2-es verziója szükséges.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A PostgreSQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a PostgreSQL 9.6-os verziója szükséges.", + "Unknown database plaform" : "Ismeretlen adatbázis platform", "Architecture" : "Építészet", + "64-bit" : "64-bit", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázis nem „READ COMMITTED” tranzakció izolációs szinttel fut. Ez problémákat okozhat több egyidejű esemény végrehajtásakor.", "Profile information" : "Profilinformációk", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilkép, teljes név, e-mail-cím, telefonszám, cím, weboldal, Twitter-fiók, szervezet, szerepkör, címsor, életrajz és hogy engedélyezett-e", @@ -356,7 +373,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "A profiljában a láthatóság vagy hatókör közül a szigorúbb beállítás lesz figyelembe véve. Például ha a láthatóság „Mindenki számára látható” és a hatókör „Privát”, akkor a „Privát” lesz figyelembe véve.", "Unable to update visibility of {displayId}" : "A(z) {displayId} láthatósága nem frissíthető", "Your role" : "Az Ön szerepköre", - "Your Twitter handle" : "A Twitter-azonosítója", "Your website" : "A saját weboldala", "No {property} set" : "Nincs {property} beállítva", "Unable to update {property}" : "A(z) {property} nem frissíthető", @@ -479,7 +495,6 @@ "Organisation" : "Szervezet", "Phone number" : "Telefonszám", "Role" : "Szerepkör", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Födiverzum (például Mastodon)", "Website" : "Weboldal", "Profile visibility" : "Profil láthatósága", @@ -586,6 +601,7 @@ "png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB", "Your email address" : "Az Ön e-mail-címe", "Your location" : "A saját helye", + "Your Twitter handle" : "A Twitter-azonosítója", "Add new password" : "Új jelszó hozzáadása", "Add new email address" : "Új e-mail-cím hozzáadása", "Edit User" : "Felhasználó szerkesztése", @@ -597,6 +613,7 @@ "Default quota:" : "Alapértelmezett kvóta:", "Show Languages" : "Nyelvek megjelenítése", "Send email to new user" : "E-mail küldése az új felhasználónak", + "Twitter" : "Twitter", "Enable untested app" : "Teszteletlen alkalmazás engedélyezése", "Plain" : "Egyszerű", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/ia.js b/apps/settings/l10n/ia.js index 9c704e3ecce..11823ca9be9 100644 --- a/apps/settings/l10n/ia.js +++ b/apps/settings/l10n/ia.js @@ -101,7 +101,6 @@ OC.L10N.register( "About" : "A proposito", "Full name" : "Nomine complete", "Phone number" : "Numero de telephono", - "Twitter" : "Twitter", "Website" : "Sito web", "Never" : "Nunquam", "Documentation" : "Documentation", @@ -127,6 +126,7 @@ OC.L10N.register( "Your email address" : "Tu adresse de e-posta", "Add group" : "Adder gruppo", "Send email to new user" : "Inviar message de e-posta a nove usator", + "Twitter" : "Twitter", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", "Authentication method" : "Methodo de authentication" diff --git a/apps/settings/l10n/ia.json b/apps/settings/l10n/ia.json index 31dae0fc946..ecdb33d15c9 100644 --- a/apps/settings/l10n/ia.json +++ b/apps/settings/l10n/ia.json @@ -99,7 +99,6 @@ "About" : "A proposito", "Full name" : "Nomine complete", "Phone number" : "Numero de telephono", - "Twitter" : "Twitter", "Website" : "Sito web", "Never" : "Nunquam", "Documentation" : "Documentation", @@ -125,6 +124,7 @@ "Your email address" : "Tu adresse de e-posta", "Add group" : "Adder gruppo", "Send email to new user" : "Inviar message de e-posta a nove usator", + "Twitter" : "Twitter", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", "Authentication method" : "Methodo de authentication" diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js index 899ad3f661c..9952b517755 100644 --- a/apps/settings/l10n/id.js +++ b/apps/settings/l10n/id.js @@ -291,7 +291,6 @@ OC.L10N.register( "About" : "Tentang.", "Full name" : "Nama lengkap", "Phone number" : "Nomor telefon", - "Twitter" : "Twitter", "Website" : "Situs", "Profile visibility" : "Visibilitas profil", "Active apps" : "Aplikasi aktif", @@ -361,6 +360,7 @@ OC.L10N.register( "Default quota:" : "Kuota bawaan:", "Show Languages" : "Tampilkan bahasa", "Send email to new user" : "Kirim surel kepada pengguna baru", + "Twitter" : "Twitter", "Enable untested app" : "Hidupkan aplikasi yang belum dites", "Plain" : "Biasa", "NT LAN Manager" : "Manajer NT LAN", diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json index fbb87502d22..0efe198d340 100644 --- a/apps/settings/l10n/id.json +++ b/apps/settings/l10n/id.json @@ -289,7 +289,6 @@ "About" : "Tentang.", "Full name" : "Nama lengkap", "Phone number" : "Nomor telefon", - "Twitter" : "Twitter", "Website" : "Situs", "Profile visibility" : "Visibilitas profil", "Active apps" : "Aplikasi aktif", @@ -359,6 +358,7 @@ "Default quota:" : "Kuota bawaan:", "Show Languages" : "Tampilkan bahasa", "Send email to new user" : "Kirim surel kepada pengguna baru", + "Twitter" : "Twitter", "Enable untested app" : "Hidupkan aplikasi yang belum dites", "Plain" : "Biasa", "NT LAN Manager" : "Manajer NT LAN", diff --git a/apps/settings/l10n/is.js b/apps/settings/l10n/is.js index a29bbad6a55..010b986a237 100644 --- a/apps/settings/l10n/is.js +++ b/apps/settings/l10n/is.js @@ -213,7 +213,6 @@ OC.L10N.register( "Help translate" : "Hjálpa við þýðingu", "No language set" : "Ekkert tungumál skilgreint", "Your phone number" : "Símanúmerið þitt", - "Your Twitter handle" : "Twitter notandanafnið þitt", "Your website" : "Vefsvæðið þitt", "Add" : "Bæta við", "Default language" : "Sjálfgefið tungumál", @@ -279,7 +278,6 @@ OC.L10N.register( "Headline" : "Fyrirsögn", "Phone number" : "Símanúmer", "Role" : "Role", - "Twitter" : "Twitter", "Website" : "Vefsvæði", "Locale" : "Staðfærsla", "Active apps" : "Virk forrit", @@ -347,6 +345,7 @@ OC.L10N.register( "Please confirm the group removal " : "Staðfestu fjarlægingu hópsins", "png or jpg, max. 20 MB" : "png eða jpg, hám. 20 MB", "Your email address" : "Netfangið þitt", + "Your Twitter handle" : "Twitter notandanafnið þitt", "Will be autogenerated" : "Verður útbúið sjálfvirkt", "Add a new user" : "Bæta við nýjum notanda", "No users in here" : "Engir notendur hér", @@ -354,6 +353,7 @@ OC.L10N.register( "Default quota:" : "Sjálfgefinn kvóti:", "Show Languages" : "Birta tungumál", "Send email to new user" : "Senda tölvupóst til nýs notanda", + "Twitter" : "Twitter", "Enable untested app" : "Virkja óprófað forrit", "Plain" : "Einfalt", "NT LAN Manager" : "NT LAN stjórnun", diff --git a/apps/settings/l10n/is.json b/apps/settings/l10n/is.json index 799470de00b..8380f8884f5 100644 --- a/apps/settings/l10n/is.json +++ b/apps/settings/l10n/is.json @@ -211,7 +211,6 @@ "Help translate" : "Hjálpa við þýðingu", "No language set" : "Ekkert tungumál skilgreint", "Your phone number" : "Símanúmerið þitt", - "Your Twitter handle" : "Twitter notandanafnið þitt", "Your website" : "Vefsvæðið þitt", "Add" : "Bæta við", "Default language" : "Sjálfgefið tungumál", @@ -277,7 +276,6 @@ "Headline" : "Fyrirsögn", "Phone number" : "Símanúmer", "Role" : "Role", - "Twitter" : "Twitter", "Website" : "Vefsvæði", "Locale" : "Staðfærsla", "Active apps" : "Virk forrit", @@ -345,6 +343,7 @@ "Please confirm the group removal " : "Staðfestu fjarlægingu hópsins", "png or jpg, max. 20 MB" : "png eða jpg, hám. 20 MB", "Your email address" : "Netfangið þitt", + "Your Twitter handle" : "Twitter notandanafnið þitt", "Will be autogenerated" : "Verður útbúið sjálfvirkt", "Add a new user" : "Bæta við nýjum notanda", "No users in here" : "Engir notendur hér", @@ -352,6 +351,7 @@ "Default quota:" : "Sjálfgefinn kvóti:", "Show Languages" : "Birta tungumál", "Send email to new user" : "Senda tölvupóst til nýs notanda", + "Twitter" : "Twitter", "Enable untested app" : "Virkja óprófað forrit", "Plain" : "Einfalt", "NT LAN Manager" : "NT LAN stjórnun", diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js index 33111f5d0f7..a9d24fcd8cd 100644 --- a/apps/settings/l10n/it.js +++ b/apps/settings/l10n/it.js @@ -351,7 +351,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "L'impostazione più restrittiva di visibilità o ambito è rispettata sul tuo profilo. Ad esempio, quando la visibilità è su \"Mostra a tutti\" e l'ambito è su \"Privato\", verrà rispettato \"Privato\".", "Unable to update visibility of {displayId}" : "Impossibile aggiornare la visibilità di {displayId}", "Your role" : "Il tuo ruolo", - "Your Twitter handle" : "Il tuo nome utente su Twitter", "Your website" : "Il tuo sito web", "No {property} set" : "Nessun {property} impostato", "Unable to update {property}" : "Impossibile aggiornare {property}", @@ -474,7 +473,6 @@ OC.L10N.register( "Organisation" : "Organizzazione", "Phone number" : "Numero di telefono", "Role" : "Ruolo", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverso (es. Mastodon)", "Website" : "Sito web", "Profile visibility" : "Visibilità del profilo", @@ -581,6 +579,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png o jpg, max. 20 MB", "Your email address" : "Il tuo indirizzo email", "Your location" : "La tua posizione", + "Your Twitter handle" : "Il tuo nome utente su Twitter", "Add new password" : "Aggiungi nuova password", "Add new email address" : "Aggiungi nuovo indirizzo email", "Edit User" : "Modifica utente", @@ -592,6 +591,7 @@ OC.L10N.register( "Default quota:" : "Quota predefinita:", "Show Languages" : "Mostra lingue", "Send email to new user" : "Invia email al nuovo utente", + "Twitter" : "Twitter", "Enable untested app" : "Abilita applicazione non verificata", "Plain" : "Semplice", "NT LAN Manager" : "Gestore NT LAN", diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json index ad7c495360e..879a433bdcd 100644 --- a/apps/settings/l10n/it.json +++ b/apps/settings/l10n/it.json @@ -349,7 +349,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "L'impostazione più restrittiva di visibilità o ambito è rispettata sul tuo profilo. Ad esempio, quando la visibilità è su \"Mostra a tutti\" e l'ambito è su \"Privato\", verrà rispettato \"Privato\".", "Unable to update visibility of {displayId}" : "Impossibile aggiornare la visibilità di {displayId}", "Your role" : "Il tuo ruolo", - "Your Twitter handle" : "Il tuo nome utente su Twitter", "Your website" : "Il tuo sito web", "No {property} set" : "Nessun {property} impostato", "Unable to update {property}" : "Impossibile aggiornare {property}", @@ -472,7 +471,6 @@ "Organisation" : "Organizzazione", "Phone number" : "Numero di telefono", "Role" : "Ruolo", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverso (es. Mastodon)", "Website" : "Sito web", "Profile visibility" : "Visibilità del profilo", @@ -579,6 +577,7 @@ "png or jpg, max. 20 MB" : "png o jpg, max. 20 MB", "Your email address" : "Il tuo indirizzo email", "Your location" : "La tua posizione", + "Your Twitter handle" : "Il tuo nome utente su Twitter", "Add new password" : "Aggiungi nuova password", "Add new email address" : "Aggiungi nuovo indirizzo email", "Edit User" : "Modifica utente", @@ -590,6 +589,7 @@ "Default quota:" : "Quota predefinita:", "Show Languages" : "Mostra lingue", "Send email to new user" : "Invia email al nuovo utente", + "Twitter" : "Twitter", "Enable untested app" : "Abilita applicazione non verificata", "Plain" : "Semplice", "NT LAN Manager" : "Gestore NT LAN", diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js index 8ce817f00f9..29ff27dd80e 100644 --- a/apps/settings/l10n/ja.js +++ b/apps/settings/l10n/ja.js @@ -140,28 +140,58 @@ OC.L10N.register( "Reshare" : "再共有", "Unlimited" : "無制限", "Verifying" : "検証中", + "Old user imported certificates" : "旧ユーザがインポートした証明書", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "ユーザーがインポートしたSSL証明書をチェックするバックグラウンドジョブが保留になっています。しばらくして再度確認してください。", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "ユーザーがインポートしたSSL証明書がいくつか存在しますが、Nextcloud 21ではもう使用されていません。これらの証明書は、\"occ security:certificates:import\" コマンドにより、コマンドラインでインポートすることができます。これらの証明書のデータディレクトリ内のパスは以下のとおりです。", + "Default phone region" : "デフォルトの電話地域", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、\"default_phone_region\" を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。", + "Email test" : "Eメールテスト", + "Email test was successfully sent" : "Eメールテストは正常に送信されました", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。", + "File locking" : "ファイルロック", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "トランザクションファイルロックが無効になっているため、競合状態の問題が発生する可能性があります。これらの問題を回避するには、config.phpで \"filelocking.enabled\" を有効にします。", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "データベースはトランザクション・ファイル・ロックに使用されます。パフォーマンスを向上させるには、メモリキャッシュが利用可能であれば設定してください。", "Internet connectivity" : "インターネット接続", "Internet connectivity is disabled in configuration file." : "設定ファイルでインターネット接続が無効になっている。", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "このサーバーにはインターネット接続がありません。複数のエンドポイントに到達できませんでした。 つまり、外部ストレージのマウント、アップデートに関する通知、サードパーティ製アプリのインストールなどの機能の一部は機能しません。 リモートからファイルにアクセスしたり、通知メールを送信したりすることもできません。インターネットへの接続を確立できれば、すべての機能を利用することができます。", + "Old server-side-encryption" : "古いサーバーサイド暗号化", "Disabled" : "無効", "The old server-side-encryption format is enabled. We recommend disabling this." : "古い方式のサーバーサイド暗号化が有効になっています。無効にすることをお勧めします。", + "Memcache" : "Memcache", + "Configured" : "設定済み", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "メモリキャッシュが設定されていません。パフォーマンスを向上させるため、利用可能であればメモリキャッシュを設定してください。", + "PHP default charset" : "PHP default charset", "PHP configuration option default_charset should be UTF-8" : "PHPの設定オプション default_charset はUTF-8でなければならない", + "Freetype" : "Freetype", "Supported" : "対応しています", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "プロフィール写真と設定インターフェースが壊れているため、PHPはFreeTypeをサポートしていません。", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHPのシステム環境変数が正しく設定されていないようです。getenv(\"PATH\") コマンドでテストして何も値を返さないことを確認してください。", "PHP modules" : "PHPのモジュール", + "This instance is missing some required PHP modules. It is required to install them: %s." : "このインスタンスには必要な PHP モジュールがありません。それらをインストールする必要があります: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "このインスタンスには、いくつかの推奨 PHP モジュールがありません。パフォーマンスと互換性を向上させるために、これらをインストールすることを強くお勧めします: %s.", + "PHP version" : "PHPバージョン", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s を実行しています。PHP 8.0 は Nextcloud 27 では非推奨です。Nextcloud 28 では、少なくとも PHP 8.1 が必要になる可能性があります。PHP グループが公式にサポートする PHP のいずれかのバージョンにできるだけ早くアップグレードしてください。", "You are currently running PHP %s." : " 現在 PHP %s を実行しています。", + "PHP output_buffering option" : "PHP output_buffering オプション", "PHP configuration option output_buffering must be disabled" : "PHP の設定オプション output_buffering を無効にする必要があります", + "Random generator" : "ランダムジェネレーター", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHPがセキュリティ上の理由から強く推奨している乱数の適切なソースを見つけることができませんでした。", + "Secure" : "安全な", + "Configuration file access rights" : "設定ファイルのアクセス権", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要", "Nextcloud configuration file is writable" : "Nextcloud の設定ファイルは書き込み可能", + "Database version" : "データベースバージョン", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB のバージョン\"%s\" が使われています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MariaDB 10.2 以降のバージョンが必要になります。", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQLのバージョン \"%s\" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQLのバージョン \"%s\" を使用しています。Nextcloud 21以降ではこのバージョンのサポートは終了し、PostgreSQL 9.6以降が必要となります。", + "Unknown database plaform" : "不明なデータベース・プラフォーム", + "Architecture" : "アーキテクチャ", + "64-bit" : "64ビット", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!", + "Database transaction isolation level" : "データベースのトランザクション分離レベル", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "あなたのデータベースは \"READ COMMITED\" トランザクション分離レベルで動作していません。このことにより複数のアクションが平行して実行される場合に問題が起こる可能性があります。", + "Was not able to get transaction isolation level: %s" : "トランザクション分離レベルを取得できませんでした: %s", "Profile information" : "プロフィール情報", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "プロフィール写真、氏名、メールアドレス、電話番号、住所、Webサイト、Twitter、組織、役職、ヘッドライン、自己紹介が有効かどうか", "Nextcloud settings" : "Nextcloud の設定", @@ -359,7 +389,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "プロフィール公開ページは、可視性またはスコープのより制限的な設定が優先されます。たとえば、可視性が「全員に表示」に設定され、スコープが「プライベート」に設定されている場合、「プライベート」が尊重されます。", "Unable to update visibility of {displayId}" : "{displayId}の表示範囲を更新できませんでした", "Your role" : "あなたの役", - "Your Twitter handle" : "あなたのTwitterのID", + "Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム", "Your website" : "あなたの個人ウェブサイト", "No {property} set" : "{property} は未設定", "Unable to update {property}" : "{property}を更新できませんでした", @@ -482,7 +512,7 @@ OC.L10N.register( "Organisation" : "組織", "Phone number" : "電話番号", "Role" : "役職", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (旧 Twitter)", "Fediverse (e.g. Mastodon)" : "フェディバース (例: Mastdon)", "Website" : "ウェブサイト", "Profile visibility" : "プロフィールの公開範囲", @@ -589,6 +619,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "pngまたはjpg。最大20MB", "Your email address" : "あなたのメールアドレス", "Your location" : "位置情報", + "Your Twitter handle" : "あなたのTwitterのID", "Add new password" : "新しいパスワードを追加する", "Add new email address" : "新しいメールアドレスを追加する", "Edit User" : "ユーザーを編集する", @@ -600,6 +631,7 @@ OC.L10N.register( "Default quota:" : "デフォルトのクオータ:", "Show Languages" : "言語を表示", "Send email to new user" : "新規ユーザーにメールを送信", + "Twitter" : "Twitter", "Enable untested app" : "未テストのアプリを有効にする", "Plain" : "平文", "NT LAN Manager" : "NT LAN マネージャー", diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json index 4448e9c127a..40bb22b5f5f 100644 --- a/apps/settings/l10n/ja.json +++ b/apps/settings/l10n/ja.json @@ -138,28 +138,58 @@ "Reshare" : "再共有", "Unlimited" : "無制限", "Verifying" : "検証中", + "Old user imported certificates" : "旧ユーザがインポートした証明書", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "ユーザーがインポートしたSSL証明書をチェックするバックグラウンドジョブが保留になっています。しばらくして再度確認してください。", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "ユーザーがインポートしたSSL証明書がいくつか存在しますが、Nextcloud 21ではもう使用されていません。これらの証明書は、\"occ security:certificates:import\" コマンドにより、コマンドラインでインポートすることができます。これらの証明書のデータディレクトリ内のパスは以下のとおりです。", + "Default phone region" : "デフォルトの電話地域", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、\"default_phone_region\" を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。", + "Email test" : "Eメールテスト", + "Email test was successfully sent" : "Eメールテストは正常に送信されました", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。", + "File locking" : "ファイルロック", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "トランザクションファイルロックが無効になっているため、競合状態の問題が発生する可能性があります。これらの問題を回避するには、config.phpで \"filelocking.enabled\" を有効にします。", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "データベースはトランザクション・ファイル・ロックに使用されます。パフォーマンスを向上させるには、メモリキャッシュが利用可能であれば設定してください。", "Internet connectivity" : "インターネット接続", "Internet connectivity is disabled in configuration file." : "設定ファイルでインターネット接続が無効になっている。", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "このサーバーにはインターネット接続がありません。複数のエンドポイントに到達できませんでした。 つまり、外部ストレージのマウント、アップデートに関する通知、サードパーティ製アプリのインストールなどの機能の一部は機能しません。 リモートからファイルにアクセスしたり、通知メールを送信したりすることもできません。インターネットへの接続を確立できれば、すべての機能を利用することができます。", + "Old server-side-encryption" : "古いサーバーサイド暗号化", "Disabled" : "無効", "The old server-side-encryption format is enabled. We recommend disabling this." : "古い方式のサーバーサイド暗号化が有効になっています。無効にすることをお勧めします。", + "Memcache" : "Memcache", + "Configured" : "設定済み", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "メモリキャッシュが設定されていません。パフォーマンスを向上させるため、利用可能であればメモリキャッシュを設定してください。", + "PHP default charset" : "PHP default charset", "PHP configuration option default_charset should be UTF-8" : "PHPの設定オプション default_charset はUTF-8でなければならない", + "Freetype" : "Freetype", "Supported" : "対応しています", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "プロフィール写真と設定インターフェースが壊れているため、PHPはFreeTypeをサポートしていません。", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHPのシステム環境変数が正しく設定されていないようです。getenv(\"PATH\") コマンドでテストして何も値を返さないことを確認してください。", "PHP modules" : "PHPのモジュール", + "This instance is missing some required PHP modules. It is required to install them: %s." : "このインスタンスには必要な PHP モジュールがありません。それらをインストールする必要があります: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "このインスタンスには、いくつかの推奨 PHP モジュールがありません。パフォーマンスと互換性を向上させるために、これらをインストールすることを強くお勧めします: %s.", + "PHP version" : "PHPバージョン", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s を実行しています。PHP 8.0 は Nextcloud 27 では非推奨です。Nextcloud 28 では、少なくとも PHP 8.1 が必要になる可能性があります。PHP グループが公式にサポートする PHP のいずれかのバージョンにできるだけ早くアップグレードしてください。", "You are currently running PHP %s." : " 現在 PHP %s を実行しています。", + "PHP output_buffering option" : "PHP output_buffering オプション", "PHP configuration option output_buffering must be disabled" : "PHP の設定オプション output_buffering を無効にする必要があります", + "Random generator" : "ランダムジェネレーター", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHPがセキュリティ上の理由から強く推奨している乱数の適切なソースを見つけることができませんでした。", + "Secure" : "安全な", + "Configuration file access rights" : "設定ファイルのアクセス権", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要", "Nextcloud configuration file is writable" : "Nextcloud の設定ファイルは書き込み可能", + "Database version" : "データベースバージョン", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB のバージョン\"%s\" が使われています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MariaDB 10.2 以降のバージョンが必要になります。", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQLのバージョン \"%s\" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQLのバージョン \"%s\" を使用しています。Nextcloud 21以降ではこのバージョンのサポートは終了し、PostgreSQL 9.6以降が必要となります。", + "Unknown database plaform" : "不明なデータベース・プラフォーム", + "Architecture" : "アーキテクチャ", + "64-bit" : "64ビット", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!", + "Database transaction isolation level" : "データベースのトランザクション分離レベル", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "あなたのデータベースは \"READ COMMITED\" トランザクション分離レベルで動作していません。このことにより複数のアクションが平行して実行される場合に問題が起こる可能性があります。", + "Was not able to get transaction isolation level: %s" : "トランザクション分離レベルを取得できませんでした: %s", "Profile information" : "プロフィール情報", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "プロフィール写真、氏名、メールアドレス、電話番号、住所、Webサイト、Twitter、組織、役職、ヘッドライン、自己紹介が有効かどうか", "Nextcloud settings" : "Nextcloud の設定", @@ -357,7 +387,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "プロフィール公開ページは、可視性またはスコープのより制限的な設定が優先されます。たとえば、可視性が「全員に表示」に設定され、スコープが「プライベート」に設定されている場合、「プライベート」が尊重されます。", "Unable to update visibility of {displayId}" : "{displayId}の表示範囲を更新できませんでした", "Your role" : "あなたの役", - "Your Twitter handle" : "あなたのTwitterのID", + "Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム", "Your website" : "あなたの個人ウェブサイト", "No {property} set" : "{property} は未設定", "Unable to update {property}" : "{property}を更新できませんでした", @@ -480,7 +510,7 @@ "Organisation" : "組織", "Phone number" : "電話番号", "Role" : "役職", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (旧 Twitter)", "Fediverse (e.g. Mastodon)" : "フェディバース (例: Mastdon)", "Website" : "ウェブサイト", "Profile visibility" : "プロフィールの公開範囲", @@ -587,6 +617,7 @@ "png or jpg, max. 20 MB" : "pngまたはjpg。最大20MB", "Your email address" : "あなたのメールアドレス", "Your location" : "位置情報", + "Your Twitter handle" : "あなたのTwitterのID", "Add new password" : "新しいパスワードを追加する", "Add new email address" : "新しいメールアドレスを追加する", "Edit User" : "ユーザーを編集する", @@ -598,6 +629,7 @@ "Default quota:" : "デフォルトのクオータ:", "Show Languages" : "言語を表示", "Send email to new user" : "新規ユーザーにメールを送信", + "Twitter" : "Twitter", "Enable untested app" : "未テストのアプリを有効にする", "Plain" : "平文", "NT LAN Manager" : "NT LAN マネージャー", diff --git a/apps/settings/l10n/ka_GE.js b/apps/settings/l10n/ka_GE.js index 984c31f8607..068d8603953 100644 --- a/apps/settings/l10n/ka_GE.js +++ b/apps/settings/l10n/ka_GE.js @@ -160,7 +160,6 @@ OC.L10N.register( "No email address set" : "ელ-ფოსტის მისამართი არაა დაყენებული", "Help translate" : "თარგმნის დახმარება", "Your phone number" : "თქვენი ტელეფონის ნომერი", - "Your Twitter handle" : "თქვენი Twitter-is @…", "Your website" : "თქვენი ვებ-საიტი", "Add" : "დამატება", "Display name" : "დისპლეი სახელი", @@ -192,7 +191,6 @@ OC.L10N.register( "About" : "შესახებ", "Full name" : "სრული სახელი", "Phone number" : "ტელეფონის ნომერი", - "Twitter" : "Twitter-ი", "Website" : "ვებ-საიტი", "Disabled apps" : "არამოქმედი აპლიკაციები", "Updates" : "განახლებები", @@ -241,8 +239,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "ამის გასაშვებად საჭიროა გქონდეთ PHP POSIX გაფართოება. მეტი დეტალებისთვის იხილეთ {linkstart}PHP დოკუმენტაცია{linkend}. ", "png or jpg, max. 20 MB" : "png ან jpg, მაქს. 20 მბ", "Your email address" : "თქვენი ელ-ფოსტის მისამართი", + "Your Twitter handle" : "თქვენი Twitter-is @…", "Add group" : "ჯგუფის დამატება", "Send email to new user" : "გაუგზავნეთ ელ-წერილი ახალ მომხმარებელს", + "Twitter" : "Twitter-ი", "Plain" : "ჩვეულებრივი", "NT LAN Manager" : "NT LAN მენეჯერი", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/ka_GE.json b/apps/settings/l10n/ka_GE.json index 4e29b8d3174..9df8d1d05e1 100644 --- a/apps/settings/l10n/ka_GE.json +++ b/apps/settings/l10n/ka_GE.json @@ -158,7 +158,6 @@ "No email address set" : "ელ-ფოსტის მისამართი არაა დაყენებული", "Help translate" : "თარგმნის დახმარება", "Your phone number" : "თქვენი ტელეფონის ნომერი", - "Your Twitter handle" : "თქვენი Twitter-is @…", "Your website" : "თქვენი ვებ-საიტი", "Add" : "დამატება", "Display name" : "დისპლეი სახელი", @@ -190,7 +189,6 @@ "About" : "შესახებ", "Full name" : "სრული სახელი", "Phone number" : "ტელეფონის ნომერი", - "Twitter" : "Twitter-ი", "Website" : "ვებ-საიტი", "Disabled apps" : "არამოქმედი აპლიკაციები", "Updates" : "განახლებები", @@ -239,8 +237,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "ამის გასაშვებად საჭიროა გქონდეთ PHP POSIX გაფართოება. მეტი დეტალებისთვის იხილეთ {linkstart}PHP დოკუმენტაცია{linkend}. ", "png or jpg, max. 20 MB" : "png ან jpg, მაქს. 20 მბ", "Your email address" : "თქვენი ელ-ფოსტის მისამართი", + "Your Twitter handle" : "თქვენი Twitter-is @…", "Add group" : "ჯგუფის დამატება", "Send email to new user" : "გაუგზავნეთ ელ-წერილი ახალ მომხმარებელს", + "Twitter" : "Twitter-ი", "Plain" : "ჩვეულებრივი", "NT LAN Manager" : "NT LAN მენეჯერი", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/ko.js b/apps/settings/l10n/ko.js index fb50cd93a7d..c204d1a2e74 100644 --- a/apps/settings/l10n/ko.js +++ b/apps/settings/l10n/ko.js @@ -300,7 +300,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "표시 여부나 표시 범위 설정은 더 좁은 쪽이 우선 적용됩니다. 예를 들어, 표시 여부는 \"전체 공개\", 표시 범위는 \"개인\"으로 설정되어 있다면, 해당 항목은 \"개인\"에게만 보여집니다.", "Unable to update visibility of {displayId}" : "{displayId}의 표시 여부를 갱신할 수 없음", "Your role" : "내 직책", - "Your Twitter handle" : "내 트위터", "Your website" : "내 웹 사이트", "Add additional email" : "추가 이메일 추가", "Add" : "추가", @@ -375,7 +374,6 @@ OC.L10N.register( "Organisation" : "조직", "Phone number" : "휴대폰 번호", "Role" : "직책", - "Twitter" : "트위터", "Website" : "웹사이트", "Profile visibility" : "프로필 표시 여부", "Locale" : "지역", @@ -461,6 +459,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "PNG, JPG, 최대 20MB", "Your email address" : "이메일 주소", "Your location" : "내 위치", + "Your Twitter handle" : "내 트위터", "Add new password" : "새로운 암호 입력", "Add new email address" : "새로운 이메일 추가하기", "Edit User" : "사용자 편집", @@ -472,6 +471,7 @@ OC.L10N.register( "Default quota:" : "기본 할당량:", "Show Languages" : "언어 보이기", "Send email to new user" : "새 사용자에게 이메일 보내기", + "Twitter" : "트위터", "Enable untested app" : "미시험 앱 활성화", "Plain" : "일반", "NT LAN Manager" : "NT LAN 관리자", diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json index 103c36a0b64..faaf12d46cb 100644 --- a/apps/settings/l10n/ko.json +++ b/apps/settings/l10n/ko.json @@ -298,7 +298,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "표시 여부나 표시 범위 설정은 더 좁은 쪽이 우선 적용됩니다. 예를 들어, 표시 여부는 \"전체 공개\", 표시 범위는 \"개인\"으로 설정되어 있다면, 해당 항목은 \"개인\"에게만 보여집니다.", "Unable to update visibility of {displayId}" : "{displayId}의 표시 여부를 갱신할 수 없음", "Your role" : "내 직책", - "Your Twitter handle" : "내 트위터", "Your website" : "내 웹 사이트", "Add additional email" : "추가 이메일 추가", "Add" : "추가", @@ -373,7 +372,6 @@ "Organisation" : "조직", "Phone number" : "휴대폰 번호", "Role" : "직책", - "Twitter" : "트위터", "Website" : "웹사이트", "Profile visibility" : "프로필 표시 여부", "Locale" : "지역", @@ -459,6 +457,7 @@ "png or jpg, max. 20 MB" : "PNG, JPG, 최대 20MB", "Your email address" : "이메일 주소", "Your location" : "내 위치", + "Your Twitter handle" : "내 트위터", "Add new password" : "새로운 암호 입력", "Add new email address" : "새로운 이메일 추가하기", "Edit User" : "사용자 편집", @@ -470,6 +469,7 @@ "Default quota:" : "기본 할당량:", "Show Languages" : "언어 보이기", "Send email to new user" : "새 사용자에게 이메일 보내기", + "Twitter" : "트위터", "Enable untested app" : "미시험 앱 활성화", "Plain" : "일반", "NT LAN Manager" : "NT LAN 관리자", diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js index 3fa8a556c71..8280b2965e7 100644 --- a/apps/settings/l10n/lt_LT.js +++ b/apps/settings/l10n/lt_LT.js @@ -289,7 +289,6 @@ OC.L10N.register( "Unable to update profile enabled state" : "Nepavyko atnaujinti profilio įjungimo būsenos", "Unable to update visibility of {displayId}" : "Nepavyko atnaujinti {displayId} matomumo", "Your role" : "Jūsų vaidmuo", - "Your Twitter handle" : "Jūsų „Twitter“ rankenėlė", "Your website" : "Jūsų svetainė", "Unable to update {property}" : "Nepavyko atnaujinti {property}", "Add additional email" : "Pridėti papildomą el. paštą", @@ -367,7 +366,6 @@ OC.L10N.register( "Organisation" : "Organizacija", "Phone number" : "Telefono numeris", "Role" : "Vaidmuo", - "Twitter" : "Twitter", "Website" : "Svetainė", "Profile visibility" : "Profilio matomumas", "Locale" : "Lokalė", @@ -447,6 +445,7 @@ OC.L10N.register( "Please confirm the group removal " : "Patvirtinkite grupės pašalinimą", "png or jpg, max. 20 MB" : "png arba jpg, daugiausiai 20 MB", "Your email address" : "Jūsų el. pašto adresas", + "Your Twitter handle" : "Jūsų „Twitter“ rankenėlė", "Add new password" : "Pridėti naują slaptažodį", "Add new email address" : "Pridėti naują el. pašto adresą", "Edit User" : "Taisyti naudotoją", @@ -458,6 +457,7 @@ OC.L10N.register( "Default quota:" : "Numatytasis leidžiamas duomenų kiekis:", "Show Languages" : "Rodyti kalbas", "Send email to new user" : "Siųsti naujam naudotojui el. laišką", + "Twitter" : "Twitter", "Enable untested app" : "Įjungti netestuotą programą", "Plain" : "Paprastas", "NT LAN Manager" : "NT LAN tvarkytuvė", diff --git a/apps/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json index f2cae5ff405..0b3569cbb87 100644 --- a/apps/settings/l10n/lt_LT.json +++ b/apps/settings/l10n/lt_LT.json @@ -287,7 +287,6 @@ "Unable to update profile enabled state" : "Nepavyko atnaujinti profilio įjungimo būsenos", "Unable to update visibility of {displayId}" : "Nepavyko atnaujinti {displayId} matomumo", "Your role" : "Jūsų vaidmuo", - "Your Twitter handle" : "Jūsų „Twitter“ rankenėlė", "Your website" : "Jūsų svetainė", "Unable to update {property}" : "Nepavyko atnaujinti {property}", "Add additional email" : "Pridėti papildomą el. paštą", @@ -365,7 +364,6 @@ "Organisation" : "Organizacija", "Phone number" : "Telefono numeris", "Role" : "Vaidmuo", - "Twitter" : "Twitter", "Website" : "Svetainė", "Profile visibility" : "Profilio matomumas", "Locale" : "Lokalė", @@ -445,6 +443,7 @@ "Please confirm the group removal " : "Patvirtinkite grupės pašalinimą", "png or jpg, max. 20 MB" : "png arba jpg, daugiausiai 20 MB", "Your email address" : "Jūsų el. pašto adresas", + "Your Twitter handle" : "Jūsų „Twitter“ rankenėlė", "Add new password" : "Pridėti naują slaptažodį", "Add new email address" : "Pridėti naują el. pašto adresą", "Edit User" : "Taisyti naudotoją", @@ -456,6 +455,7 @@ "Default quota:" : "Numatytasis leidžiamas duomenų kiekis:", "Show Languages" : "Rodyti kalbas", "Send email to new user" : "Siųsti naujam naudotojui el. laišką", + "Twitter" : "Twitter", "Enable untested app" : "Įjungti netestuotą programą", "Plain" : "Paprastas", "NT LAN Manager" : "NT LAN tvarkytuvė", diff --git a/apps/settings/l10n/lv.js b/apps/settings/l10n/lv.js index 6a16fe3f482..76b1c93557b 100644 --- a/apps/settings/l10n/lv.js +++ b/apps/settings/l10n/lv.js @@ -139,7 +139,6 @@ OC.L10N.register( "About" : "Par", "Full name" : "Pilns vārds", "Phone number" : "Tālruņa numurs", - "Twitter" : "Twitter", "Website" : "Mājaslapa", "Updates" : "Atjauninājumi", "Hide" : "Slēpt", @@ -175,6 +174,7 @@ OC.L10N.register( "Your email address" : "Jūsu e-pasta adrese", "Add group" : "Pievienot grupu", "Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam", + "Twitter" : "Twitter", "Plain" : "vienkāršs teksts", "NT LAN Manager" : "NT LAN Pārvaldnieks", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/lv.json b/apps/settings/l10n/lv.json index bcb8aa122f7..8db71527cdb 100644 --- a/apps/settings/l10n/lv.json +++ b/apps/settings/l10n/lv.json @@ -137,7 +137,6 @@ "About" : "Par", "Full name" : "Pilns vārds", "Phone number" : "Tālruņa numurs", - "Twitter" : "Twitter", "Website" : "Mājaslapa", "Updates" : "Atjauninājumi", "Hide" : "Slēpt", @@ -173,6 +172,7 @@ "Your email address" : "Jūsu e-pasta adrese", "Add group" : "Pievienot grupu", "Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam", + "Twitter" : "Twitter", "Plain" : "vienkāršs teksts", "NT LAN Manager" : "NT LAN Pārvaldnieks", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js index 2c59297a6ec..5b0efad2b1a 100644 --- a/apps/settings/l10n/mk.js +++ b/apps/settings/l10n/mk.js @@ -445,7 +445,6 @@ OC.L10N.register( "Organisation" : "Организација", "Phone number" : "Телефонски број", "Role" : "Улога", - "Twitter" : "Twitter", "Website" : "ВЕБ страна", "Profile visibility" : "Видливост на профилот", "Locale" : "Локација", @@ -553,6 +552,7 @@ OC.L10N.register( "Default quota:" : "Стандардна квота:", "Show Languages" : "Прикажи јазици", "Send email to new user" : "Испрати е-пошта до новите корисници", + "Twitter" : "Twitter", "Enable untested app" : "Овозможи не тестирана апликација", "Plain" : "Чиста", "NT LAN Manager" : "NT LAN Менаџер", diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json index d382ed091a2..3695138ae78 100644 --- a/apps/settings/l10n/mk.json +++ b/apps/settings/l10n/mk.json @@ -443,7 +443,6 @@ "Organisation" : "Организација", "Phone number" : "Телефонски број", "Role" : "Улога", - "Twitter" : "Twitter", "Website" : "ВЕБ страна", "Profile visibility" : "Видливост на профилот", "Locale" : "Локација", @@ -551,6 +550,7 @@ "Default quota:" : "Стандардна квота:", "Show Languages" : "Прикажи јазици", "Send email to new user" : "Испрати е-пошта до новите корисници", + "Twitter" : "Twitter", "Enable untested app" : "Овозможи не тестирана апликација", "Plain" : "Чиста", "NT LAN Manager" : "NT LAN Менаџер", diff --git a/apps/settings/l10n/nb.js b/apps/settings/l10n/nb.js index f2814a35475..737c4533678 100644 --- a/apps/settings/l10n/nb.js +++ b/apps/settings/l10n/nb.js @@ -299,7 +299,6 @@ OC.L10N.register( "Enable Profile" : "Aktiver profil", "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mest restriktive innstillingen synlighet eller omfang respekteres på profilen din. For eksempel, hvis synlighet er satt til \"Vis til alle\" og omfanget er satt til \"Privat\", respekteres \"Privat\".", "Your role" : "Din rolle", - "Your Twitter handle" : "Din Twitter-konto", "Your website" : "Din nettside", "No {property} set" : "Ingen {property} satt", "Unable to update {property}" : "Kan ikke oppdatere {property}", @@ -367,7 +366,6 @@ OC.L10N.register( "Organisation" : "Organisasjon", "Phone number" : "Telefonnummer", "Role" : "Rolle", - "Twitter" : "Twitter", "Website" : "Nettsted", "Profile visibility" : "Profil-synlighet", "Locale" : "Nasjonal innstilling", @@ -452,6 +450,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png eller jpg, maks. 20 MB", "Your email address" : "Din e-postadresse", "Your location" : "Lokasjonen din", + "Your Twitter handle" : "Din Twitter-konto", "Add new password" : "Legg til nytt passord", "Add new email address" : "Legg til ny e-postadresse", "Edit User" : "Rediger bruker", @@ -463,6 +462,7 @@ OC.L10N.register( "Default quota:" : "Standard kvote:", "Show Languages" : "Vis språk", "Send email to new user" : "Send e-post til ny bruker", + "Twitter" : "Twitter", "Enable untested app" : "Aktiver utestet app", "Plain" : "Enkel", "NT LAN Manager" : "NT LAN-behandler", diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json index 863fafcde6e..601685eda40 100644 --- a/apps/settings/l10n/nb.json +++ b/apps/settings/l10n/nb.json @@ -297,7 +297,6 @@ "Enable Profile" : "Aktiver profil", "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mest restriktive innstillingen synlighet eller omfang respekteres på profilen din. For eksempel, hvis synlighet er satt til \"Vis til alle\" og omfanget er satt til \"Privat\", respekteres \"Privat\".", "Your role" : "Din rolle", - "Your Twitter handle" : "Din Twitter-konto", "Your website" : "Din nettside", "No {property} set" : "Ingen {property} satt", "Unable to update {property}" : "Kan ikke oppdatere {property}", @@ -365,7 +364,6 @@ "Organisation" : "Organisasjon", "Phone number" : "Telefonnummer", "Role" : "Rolle", - "Twitter" : "Twitter", "Website" : "Nettsted", "Profile visibility" : "Profil-synlighet", "Locale" : "Nasjonal innstilling", @@ -450,6 +448,7 @@ "png or jpg, max. 20 MB" : "png eller jpg, maks. 20 MB", "Your email address" : "Din e-postadresse", "Your location" : "Lokasjonen din", + "Your Twitter handle" : "Din Twitter-konto", "Add new password" : "Legg til nytt passord", "Add new email address" : "Legg til ny e-postadresse", "Edit User" : "Rediger bruker", @@ -461,6 +460,7 @@ "Default quota:" : "Standard kvote:", "Show Languages" : "Vis språk", "Send email to new user" : "Send e-post til ny bruker", + "Twitter" : "Twitter", "Enable untested app" : "Aktiver utestet app", "Plain" : "Enkel", "NT LAN Manager" : "NT LAN-behandler", diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js index 6ed22b0570b..4acf6cb8367 100644 --- a/apps/settings/l10n/nl.js +++ b/apps/settings/l10n/nl.js @@ -287,7 +287,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "De meer restrictieve de instelling van de zichtbaarheidsscope wordt gerespecteerd in je Profiel. Bijvoorbeeld als je zichtbaarheid is ingesteld op \"Zichtbaar voor iedereen\" en de scope is ingesteld op \"Privé\" wordt \"Privé\" gerespecteerd.", "Unable to update visibility of {displayId}" : "Kan zichtbaarheid van {displayId} niet updaten", "Your role" : "Jouw rol", - "Your Twitter handle" : "Je Twitter naam", "Your website" : "Je website", "Add additional email" : "Toevoegen extra e-mailadres", "Add" : "Toevoegen", @@ -365,7 +364,6 @@ OC.L10N.register( "Organisation" : "Organisatie", "Phone number" : "Telefoonnummer", "Role" : "Rol", - "Twitter" : "Twitter", "Website" : "Website", "Profile visibility" : "Profiel zichtbaarheid", "Locale" : "Regionale instellingen", @@ -457,6 +455,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png of jpg, max. 20 MB", "Your email address" : "Je e-mailadres", "Your location" : "Je locatie", + "Your Twitter handle" : "Je Twitter naam", "Add new password" : "Nieuw wachtwoord toevoegen", "Add new email address" : "Toevoegen nieuw e-mailadres", "Edit User" : "Bewerk gebruiker", @@ -468,6 +467,7 @@ OC.L10N.register( "Default quota:" : "Standaardquota:", "Show Languages" : "Toon talen", "Send email to new user" : "Verstuur e-mail aan nieuwe gebruiker", + "Twitter" : "Twitter", "Enable untested app" : "Inschakelen niet-geteste apps", "Plain" : "Gewoon", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json index ee8d7934424..cdc5498f0b5 100644 --- a/apps/settings/l10n/nl.json +++ b/apps/settings/l10n/nl.json @@ -285,7 +285,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "De meer restrictieve de instelling van de zichtbaarheidsscope wordt gerespecteerd in je Profiel. Bijvoorbeeld als je zichtbaarheid is ingesteld op \"Zichtbaar voor iedereen\" en de scope is ingesteld op \"Privé\" wordt \"Privé\" gerespecteerd.", "Unable to update visibility of {displayId}" : "Kan zichtbaarheid van {displayId} niet updaten", "Your role" : "Jouw rol", - "Your Twitter handle" : "Je Twitter naam", "Your website" : "Je website", "Add additional email" : "Toevoegen extra e-mailadres", "Add" : "Toevoegen", @@ -363,7 +362,6 @@ "Organisation" : "Organisatie", "Phone number" : "Telefoonnummer", "Role" : "Rol", - "Twitter" : "Twitter", "Website" : "Website", "Profile visibility" : "Profiel zichtbaarheid", "Locale" : "Regionale instellingen", @@ -455,6 +453,7 @@ "png or jpg, max. 20 MB" : "png of jpg, max. 20 MB", "Your email address" : "Je e-mailadres", "Your location" : "Je locatie", + "Your Twitter handle" : "Je Twitter naam", "Add new password" : "Nieuw wachtwoord toevoegen", "Add new email address" : "Toevoegen nieuw e-mailadres", "Edit User" : "Bewerk gebruiker", @@ -466,6 +465,7 @@ "Default quota:" : "Standaardquota:", "Show Languages" : "Toon talen", "Send email to new user" : "Verstuur e-mail aan nieuwe gebruiker", + "Twitter" : "Twitter", "Enable untested app" : "Inschakelen niet-geteste apps", "Plain" : "Gewoon", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/oc.js b/apps/settings/l10n/oc.js index dd0c1975273..81c6f38c1a6 100644 --- a/apps/settings/l10n/oc.js +++ b/apps/settings/l10n/oc.js @@ -211,7 +211,6 @@ OC.L10N.register( "Organisation" : "Organizacion", "Phone number" : "Numèro de telefòn", "Role" : "Ròtle", - "Twitter" : "Twitter", "Website" : "Site web", "Profile visibility" : "Visibilitat perfil", "Locale" : "Varianta lingüistica", @@ -257,6 +256,7 @@ OC.L10N.register( "Enter group name" : "Picatz un nom de grop", "Add group" : "Apondre grop", "Show Languages" : "Veire las lengas", + "Twitter" : "Twitter", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS" }, diff --git a/apps/settings/l10n/oc.json b/apps/settings/l10n/oc.json index 06016a5bb48..4b203072a7d 100644 --- a/apps/settings/l10n/oc.json +++ b/apps/settings/l10n/oc.json @@ -209,7 +209,6 @@ "Organisation" : "Organizacion", "Phone number" : "Numèro de telefòn", "Role" : "Ròtle", - "Twitter" : "Twitter", "Website" : "Site web", "Profile visibility" : "Visibilitat perfil", "Locale" : "Varianta lingüistica", @@ -255,6 +254,7 @@ "Enter group name" : "Picatz un nom de grop", "Add group" : "Apondre grop", "Show Languages" : "Veire las lengas", + "Twitter" : "Twitter", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS" },"pluralForm" :"nplurals=2; plural=(n > 1);" diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index 8c3c2c27f38..a8943fbb0da 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -341,7 +341,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Bardziej restrykcyjne ustawienie widoczności lub zakresu jest przestrzegane w Twoim profilu. Na przykład, jeśli widoczność jest ustawiona na \"Pokaż wszystkim\", a zakres jest ustawiony na \"Prywatny\", to przestrzegany jest \"Prywatny\".", "Unable to update visibility of {displayId}" : "Nie można zaktualizować widoczności {displayId}", "Your role" : "Twoja rola społeczna", - "Your Twitter handle" : "Twój Twitter:", "Your website" : "Twoja strona WWW", "No {property} set" : "Nie ustawiono {property}", "Unable to update {property}" : "Nie można zaktualizować {property}", @@ -434,7 +433,6 @@ OC.L10N.register( "Organisation" : "Organizacja", "Phone number" : "Numer telefonu", "Role" : "Rola społeczna", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (np. Mastodon)", "Website" : "Strona internetowa", "Profile visibility" : "Widoczność profilu", @@ -533,6 +531,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png lub jpg, maks. 20 MB", "Your email address" : "Twój adres e-mail", "Your location" : "Twoja lokalizacja", + "Your Twitter handle" : "Twój Twitter:", "Add new password" : "Dodaj nowe hasło", "Add new email address" : "Dodaj nowy adres e-mail", "Edit User" : "Edytuj użytkownika", @@ -544,6 +543,7 @@ OC.L10N.register( "Default quota:" : "Domyślny limit:", "Show Languages" : "Pokaż języki", "Send email to new user" : "Wyślij e-mail do nowego użytkownika", + "Twitter" : "Twitter", "Enable untested app" : "Włącz nietestowaną aplikację", "Plain" : "Czysty tekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index 561e4b6723e..b842e18c59d 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -339,7 +339,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Bardziej restrykcyjne ustawienie widoczności lub zakresu jest przestrzegane w Twoim profilu. Na przykład, jeśli widoczność jest ustawiona na \"Pokaż wszystkim\", a zakres jest ustawiony na \"Prywatny\", to przestrzegany jest \"Prywatny\".", "Unable to update visibility of {displayId}" : "Nie można zaktualizować widoczności {displayId}", "Your role" : "Twoja rola społeczna", - "Your Twitter handle" : "Twój Twitter:", "Your website" : "Twoja strona WWW", "No {property} set" : "Nie ustawiono {property}", "Unable to update {property}" : "Nie można zaktualizować {property}", @@ -432,7 +431,6 @@ "Organisation" : "Organizacja", "Phone number" : "Numer telefonu", "Role" : "Rola społeczna", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (np. Mastodon)", "Website" : "Strona internetowa", "Profile visibility" : "Widoczność profilu", @@ -531,6 +529,7 @@ "png or jpg, max. 20 MB" : "png lub jpg, maks. 20 MB", "Your email address" : "Twój adres e-mail", "Your location" : "Twoja lokalizacja", + "Your Twitter handle" : "Twój Twitter:", "Add new password" : "Dodaj nowe hasło", "Add new email address" : "Dodaj nowy adres e-mail", "Edit User" : "Edytuj użytkownika", @@ -542,6 +541,7 @@ "Default quota:" : "Domyślny limit:", "Show Languages" : "Pokaż języki", "Send email to new user" : "Wyślij e-mail do nowego użytkownika", + "Twitter" : "Twitter", "Enable untested app" : "Włącz nietestowaną aplikację", "Plain" : "Czysty tekst", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js index f6a50953f76..f557c8cffac 100644 --- a/apps/settings/l10n/pt_BR.js +++ b/apps/settings/l10n/pt_BR.js @@ -350,7 +350,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "A configuração mais restritiva de visibilidade ou escopo é respeitada em seu perfil. Por exemplo, se a visibilidade for definida como \"Mostrar para todos\" e o escopo for definido como \"Privado\", \"Privado\" será respeitado.", "Unable to update visibility of {displayId}" : "Não foi possível atualizar a visibilidade de {displayId}", "Your role" : "Seu papel", - "Your Twitter handle" : "Seu Twitter", "Your website" : "Seu website", "No {property} set" : "Nenhum conjunto de {property}", "Unable to update {property}" : "Não foi possível atualizar {property}", @@ -468,7 +467,6 @@ OC.L10N.register( "Organisation" : "Organização", "Phone number" : "Número de telefone", "Role" : "Função", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (e.x. Mastodon)", "Website" : "Website", "Profile visibility" : "Visibilidade do perfil", @@ -571,6 +569,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ou jpg, max. 20 MB", "Your email address" : "Seu endereço de e-mail", "Your location" : "Sua localização", + "Your Twitter handle" : "Seu Twitter", "Add new password" : "Adicionar nova senha", "Add new email address" : "Adicionar novo endereço de e-mail", "Edit User" : "Editar Usuário", @@ -582,6 +581,7 @@ OC.L10N.register( "Default quota:" : "Cota padrão:", "Show Languages" : "Exibir idiomas", "Send email to new user" : "Enviar um e-mail para o novo usuário", + "Twitter" : "Twitter", "Enable untested app" : "Ativar aplicativo não testado", "Plain" : "Plano", "NT LAN Manager" : "Gerenciador NT LAN", diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json index c6b19749471..463b6380db5 100644 --- a/apps/settings/l10n/pt_BR.json +++ b/apps/settings/l10n/pt_BR.json @@ -348,7 +348,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "A configuração mais restritiva de visibilidade ou escopo é respeitada em seu perfil. Por exemplo, se a visibilidade for definida como \"Mostrar para todos\" e o escopo for definido como \"Privado\", \"Privado\" será respeitado.", "Unable to update visibility of {displayId}" : "Não foi possível atualizar a visibilidade de {displayId}", "Your role" : "Seu papel", - "Your Twitter handle" : "Seu Twitter", "Your website" : "Seu website", "No {property} set" : "Nenhum conjunto de {property}", "Unable to update {property}" : "Não foi possível atualizar {property}", @@ -466,7 +465,6 @@ "Organisation" : "Organização", "Phone number" : "Número de telefone", "Role" : "Função", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (e.x. Mastodon)", "Website" : "Website", "Profile visibility" : "Visibilidade do perfil", @@ -569,6 +567,7 @@ "png or jpg, max. 20 MB" : "png ou jpg, max. 20 MB", "Your email address" : "Seu endereço de e-mail", "Your location" : "Sua localização", + "Your Twitter handle" : "Seu Twitter", "Add new password" : "Adicionar nova senha", "Add new email address" : "Adicionar novo endereço de e-mail", "Edit User" : "Editar Usuário", @@ -580,6 +579,7 @@ "Default quota:" : "Cota padrão:", "Show Languages" : "Exibir idiomas", "Send email to new user" : "Enviar um e-mail para o novo usuário", + "Twitter" : "Twitter", "Enable untested app" : "Ativar aplicativo não testado", "Plain" : "Plano", "NT LAN Manager" : "Gerenciador NT LAN", diff --git a/apps/settings/l10n/pt_PT.js b/apps/settings/l10n/pt_PT.js index 96875fedaa4..27f1305967f 100644 --- a/apps/settings/l10n/pt_PT.js +++ b/apps/settings/l10n/pt_PT.js @@ -242,7 +242,6 @@ OC.L10N.register( "Organisation" : "Organização", "Phone number" : "Número de telefone", "Role" : "Função", - "Twitter" : "Twitter", "Website" : "Website", "Disabled apps" : "Apps desativadas", "Updates" : "Actualizações", @@ -295,6 +294,7 @@ OC.L10N.register( "Your email address" : "O seu endereço de email", "Add group" : "Adicionar grupo", "Send email to new user" : "Enviar email ao novo utilizador", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Gestor de REDE NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/pt_PT.json b/apps/settings/l10n/pt_PT.json index 4c7e84d8fe0..ce7ec8f8520 100644 --- a/apps/settings/l10n/pt_PT.json +++ b/apps/settings/l10n/pt_PT.json @@ -240,7 +240,6 @@ "Organisation" : "Organização", "Phone number" : "Número de telefone", "Role" : "Função", - "Twitter" : "Twitter", "Website" : "Website", "Disabled apps" : "Apps desativadas", "Updates" : "Actualizações", @@ -293,6 +292,7 @@ "Your email address" : "O seu endereço de email", "Add group" : "Adicionar grupo", "Send email to new user" : "Enviar email ao novo utilizador", + "Twitter" : "Twitter", "Plain" : "Plano", "NT LAN Manager" : "Gestor de REDE NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/ro.js b/apps/settings/l10n/ro.js index 16534f81f9d..7b0d2613400 100644 --- a/apps/settings/l10n/ro.js +++ b/apps/settings/l10n/ro.js @@ -234,7 +234,6 @@ OC.L10N.register( "Full name" : "Nume complet", "Phone number" : "Număr telefon", "Role" : "Rol", - "Twitter" : "Twitter", "Website" : "Site web", "Disabled apps" : "Aplicații inactive", "Updates" : "Actualizări", @@ -274,6 +273,7 @@ OC.L10N.register( "Your email address" : "Adresa ta de email", "Add group" : "Adaugă grup", "Send email to new user" : "Trimite email către noul utilizator", + "Twitter" : "Twitter", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/ro.json b/apps/settings/l10n/ro.json index c3977107f48..2b4cf0df8ce 100644 --- a/apps/settings/l10n/ro.json +++ b/apps/settings/l10n/ro.json @@ -232,7 +232,6 @@ "Full name" : "Nume complet", "Phone number" : "Număr telefon", "Role" : "Rol", - "Twitter" : "Twitter", "Website" : "Site web", "Disabled apps" : "Aplicații inactive", "Updates" : "Actualizări", @@ -272,6 +271,7 @@ "Your email address" : "Adresa ta de email", "Add group" : "Adaugă grup", "Send email to new user" : "Trimite email către noul utilizator", + "Twitter" : "Twitter", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js index 819e9e526d7..a0764b5aa69 100644 --- a/apps/settings/l10n/ru.js +++ b/apps/settings/l10n/ru.js @@ -142,16 +142,32 @@ OC.L10N.register( "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Запланировано фоновое задание проверки пользовательских SSL сертификатов. Пожалуйста, проверьте позже.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Обнаружены пользовательские сертификаты SSL, которые более не используются с Nextcloud 21. Их можно импортировать командой \"occ security:certificates:import\". Их расположение в папке с данными показаны ниже.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Этот сервер не подключён к интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуется разрешить серверу доступ в Интернет.", + "Old server-side-encryption" : "Устаревший режим шифрования на стороне сервера", "Disabled" : "Отключено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Задействован устаревший режим шифрования файлов на стороне сервера. Рекомендуется отключить такое шифрование.", + "PHP default charset" : "Кодировка PHP по умолчанию", + "PHP configuration option default_charset should be UTF-8" : "Параметр конфигурации PHP default_charset должен быть UTF-8.", "Supported" : "Поддерживается", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не настроен правильно для получения переменных системного окружения. Запрос getenv(\"PATH\") возвращает пустые результаты.", + "PHP modules" : "Модули PHP", + "This instance is missing some required PHP modules. It is required to install them: %s." : "В этом экземпляре отсутствуют некоторые рекомендуемые модули PHP. Рекомендуется установить: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "В этом экземпляре отсутствуют некоторые рекомендуемые модули PHP. Для повышения производительности и лучшей совместимости настоятельно рекомендуется установить: %s.", + "PHP version" : "Версия PHP", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "В настоящее время вы используете PHP %s. PHP 8.0 больше не поддерживается в Nextcloud 27. Для Nextcloud 28 может потребоваться как минимум PHP 8.1. Пожалуйста, как можно скорее обновитесь до одной из официально поддерживаемых версий PHP, предоставленных PHP Group.", + "You are currently running PHP %s." : "В настоящее время вы используете PHP %s.", + "PHP output_buffering option" : "Параметр конфигурации PHP output_buffering", + "PHP configuration option output_buffering must be disabled" : "Параметр конфигурации PHP output_buffering должен быть отключён", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Файл конфигурации доступен только для чтения, что не позволяет изменять некоторые настройки из веб-интерфейса. Обратите внимание, что для установки обновлений потребуется разрешить запись в файл конфигурации.", + "Nextcloud configuration file is writable" : "Файл конфигурации Nextcloud доступен для записи", + "Database version" : "Версия базы данных", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Используется MariaDB версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MariaDB версии 10.2 или старше.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Используется mySQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MySQL версии 8 или MariaDB 10.2 или старше.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Используется PostgreSQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется PostgreSQL версии 9.6 или старше.", + "Unknown database plaform" : "Неизвестная платформа базы данных", "Architecture" : "Архитектура", + "64-bit" : "64-бита", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Похоже, вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста, обновите свою ОС и PHP до 64-битной версии!", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База данных не использует режиме изоляции транзакций «READ COMMITED». Такое поведение может вызвать проблемы при одновременном выполнении нескольких операций.", "Profile information" : "Сведения о профиле", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Изображение профиля, полное имя, адрес электронной почты, номер телефона, адрес, веб-сайт, Twitter, организация, роль, заголовок, биография и сведения том, активен ли профиль", @@ -283,11 +299,14 @@ OC.L10N.register( "Select default encryption module:" : "Выберите модуль шифрования по умолчанию:", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Необходимо выполнить перенос ключей из старого механизма шифрования (ownCloud <= 8.0) в новый. Для выполнения переноса активируйте приложение «Модуль шифрования по умолчанию» и запустите команду «{command}»", "Unable to update server side encryption config" : "Не удалось обновить параметры шифрования на стороне сервера", + "Please confirm the group removal" : "Подтвердите удаление группы", + "You are about to remove the group \"{group}\". The users will NOT be deleted." : "Группа \"{group}\" будет удалена. Пользователи НЕ будут удалены.", "Cancel" : "Отмена", "Confirm" : "Подтвердить", "Submit" : "Отправить ответ", "Rename group" : "Переименовать группу", "Remove group" : "Удалить группу", + "Failed to remove group \"{group}\"" : "Не удалось удалить группу \"{group}\"", "Current password" : "Текущий пароль", "New password" : "Новый пароль", "Change password" : "Сменить пароль", @@ -344,7 +363,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "В профиле устанавливаются более строгие настройки видимости или области действия. Например, если для видимости установлено значение «Видно всем», а для области действия установлено значение «Скрыто», будет использоваться значение «Скрыто».", "Unable to update visibility of {displayId}" : "Не удалось изменить видимость {displayId}", "Your role" : "Ваша роль", - "Your Twitter handle" : "Ваше имя в Twiter", "Your website" : "Ваш сайт", "No {property} set" : "Свойство «{property}» не задано", "Unable to update {property}" : "Не удалось обновить свойство «{property}»", @@ -450,7 +468,11 @@ OC.L10N.register( "Active users" : "Активные пользователи", "Admins" : "Администраторы", "Disabled users" : "Отключённые пользователи", + "Creating group …" : "Создание группы…", + "Create group" : "Создать группу", "Group name" : "Название группы", + "Please enter a valid group name" : "Пожалуйста, введите допустимое название группы", + "Failed to create group" : "Не удалось создать группу", "Not saved" : "Не сохранено", "Sending…" : "Отправка…", "Email sent" : "Письмо отправлено", @@ -463,7 +485,6 @@ OC.L10N.register( "Organisation" : "Организация", "Phone number" : "Номер телефона", "Role" : "Роль", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Федерации (например, Mastodon)", "Website" : "Адрес сайта", "Profile visibility" : "Видимость профиля", @@ -566,6 +587,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png или jpg, макс. 20 МБ", "Your email address" : "Ваш адрес электронной почты", "Your location" : "Местоположение", + "Your Twitter handle" : "Ваше имя в Twiter", "Add new password" : "Добавить пароль", "Add new email address" : "Добавить адрес электронной почты", "Edit User" : "Редактировать уч. запись", @@ -577,6 +599,7 @@ OC.L10N.register( "Default quota:" : "Квота по умолчанию: ", "Show Languages" : "Показывать язык", "Send email to new user" : "Отправлять письмо новому пользователю", + "Twitter" : "Twitter", "Enable untested app" : "Включить непроверенное приложение", "Plain" : "Простой", "NT LAN Manager" : "Менеджер NT LAN", diff --git a/apps/settings/l10n/ru.json b/apps/settings/l10n/ru.json index 5718a54beb4..ad58df3da55 100644 --- a/apps/settings/l10n/ru.json +++ b/apps/settings/l10n/ru.json @@ -140,16 +140,32 @@ "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Запланировано фоновое задание проверки пользовательских SSL сертификатов. Пожалуйста, проверьте позже.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Обнаружены пользовательские сертификаты SSL, которые более не используются с Nextcloud 21. Их можно импортировать командой \"occ security:certificates:import\". Их расположение в папке с данными показаны ниже.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Этот сервер не подключён к интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуется разрешить серверу доступ в Интернет.", + "Old server-side-encryption" : "Устаревший режим шифрования на стороне сервера", "Disabled" : "Отключено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Задействован устаревший режим шифрования файлов на стороне сервера. Рекомендуется отключить такое шифрование.", + "PHP default charset" : "Кодировка PHP по умолчанию", + "PHP configuration option default_charset should be UTF-8" : "Параметр конфигурации PHP default_charset должен быть UTF-8.", "Supported" : "Поддерживается", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не настроен правильно для получения переменных системного окружения. Запрос getenv(\"PATH\") возвращает пустые результаты.", + "PHP modules" : "Модули PHP", + "This instance is missing some required PHP modules. It is required to install them: %s." : "В этом экземпляре отсутствуют некоторые рекомендуемые модули PHP. Рекомендуется установить: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "В этом экземпляре отсутствуют некоторые рекомендуемые модули PHP. Для повышения производительности и лучшей совместимости настоятельно рекомендуется установить: %s.", + "PHP version" : "Версия PHP", + "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "В настоящее время вы используете PHP %s. PHP 8.0 больше не поддерживается в Nextcloud 27. Для Nextcloud 28 может потребоваться как минимум PHP 8.1. Пожалуйста, как можно скорее обновитесь до одной из официально поддерживаемых версий PHP, предоставленных PHP Group.", + "You are currently running PHP %s." : "В настоящее время вы используете PHP %s.", + "PHP output_buffering option" : "Параметр конфигурации PHP output_buffering", + "PHP configuration option output_buffering must be disabled" : "Параметр конфигурации PHP output_buffering должен быть отключён", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Файл конфигурации доступен только для чтения, что не позволяет изменять некоторые настройки из веб-интерфейса. Обратите внимание, что для установки обновлений потребуется разрешить запись в файл конфигурации.", + "Nextcloud configuration file is writable" : "Файл конфигурации Nextcloud доступен для записи", + "Database version" : "Версия базы данных", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Используется MariaDB версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MariaDB версии 10.2 или старше.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Используется mySQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MySQL версии 8 или MariaDB 10.2 или старше.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Используется PostgreSQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется PostgreSQL версии 9.6 или старше.", + "Unknown database plaform" : "Неизвестная платформа базы данных", "Architecture" : "Архитектура", + "64-bit" : "64-бита", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Похоже, вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста, обновите свою ОС и PHP до 64-битной версии!", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База данных не использует режиме изоляции транзакций «READ COMMITED». Такое поведение может вызвать проблемы при одновременном выполнении нескольких операций.", "Profile information" : "Сведения о профиле", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Изображение профиля, полное имя, адрес электронной почты, номер телефона, адрес, веб-сайт, Twitter, организация, роль, заголовок, биография и сведения том, активен ли профиль", @@ -281,11 +297,14 @@ "Select default encryption module:" : "Выберите модуль шифрования по умолчанию:", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Необходимо выполнить перенос ключей из старого механизма шифрования (ownCloud <= 8.0) в новый. Для выполнения переноса активируйте приложение «Модуль шифрования по умолчанию» и запустите команду «{command}»", "Unable to update server side encryption config" : "Не удалось обновить параметры шифрования на стороне сервера", + "Please confirm the group removal" : "Подтвердите удаление группы", + "You are about to remove the group \"{group}\". The users will NOT be deleted." : "Группа \"{group}\" будет удалена. Пользователи НЕ будут удалены.", "Cancel" : "Отмена", "Confirm" : "Подтвердить", "Submit" : "Отправить ответ", "Rename group" : "Переименовать группу", "Remove group" : "Удалить группу", + "Failed to remove group \"{group}\"" : "Не удалось удалить группу \"{group}\"", "Current password" : "Текущий пароль", "New password" : "Новый пароль", "Change password" : "Сменить пароль", @@ -342,7 +361,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "В профиле устанавливаются более строгие настройки видимости или области действия. Например, если для видимости установлено значение «Видно всем», а для области действия установлено значение «Скрыто», будет использоваться значение «Скрыто».", "Unable to update visibility of {displayId}" : "Не удалось изменить видимость {displayId}", "Your role" : "Ваша роль", - "Your Twitter handle" : "Ваше имя в Twiter", "Your website" : "Ваш сайт", "No {property} set" : "Свойство «{property}» не задано", "Unable to update {property}" : "Не удалось обновить свойство «{property}»", @@ -448,7 +466,11 @@ "Active users" : "Активные пользователи", "Admins" : "Администраторы", "Disabled users" : "Отключённые пользователи", + "Creating group …" : "Создание группы…", + "Create group" : "Создать группу", "Group name" : "Название группы", + "Please enter a valid group name" : "Пожалуйста, введите допустимое название группы", + "Failed to create group" : "Не удалось создать группу", "Not saved" : "Не сохранено", "Sending…" : "Отправка…", "Email sent" : "Письмо отправлено", @@ -461,7 +483,6 @@ "Organisation" : "Организация", "Phone number" : "Номер телефона", "Role" : "Роль", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Федерации (например, Mastodon)", "Website" : "Адрес сайта", "Profile visibility" : "Видимость профиля", @@ -564,6 +585,7 @@ "png or jpg, max. 20 MB" : "png или jpg, макс. 20 МБ", "Your email address" : "Ваш адрес электронной почты", "Your location" : "Местоположение", + "Your Twitter handle" : "Ваше имя в Twiter", "Add new password" : "Добавить пароль", "Add new email address" : "Добавить адрес электронной почты", "Edit User" : "Редактировать уч. запись", @@ -575,6 +597,7 @@ "Default quota:" : "Квота по умолчанию: ", "Show Languages" : "Показывать язык", "Send email to new user" : "Отправлять письмо новому пользователю", + "Twitter" : "Twitter", "Enable untested app" : "Включить непроверенное приложение", "Plain" : "Простой", "NT LAN Manager" : "Менеджер NT LAN", diff --git a/apps/settings/l10n/sc.js b/apps/settings/l10n/sc.js index bfb9c799bc4..1947e75c4a4 100644 --- a/apps/settings/l10n/sc.js +++ b/apps/settings/l10n/sc.js @@ -310,7 +310,6 @@ OC.L10N.register( "Headline" : "Tìtulos", "Phone number" : "Nùmeru de telèfonu", "Role" : "Faina", - "Twitter" : "Twitter", "Website" : "Situ ìnternet", "Locale" : "Localizatzione", "Active apps" : "Aplicatziones ativas", @@ -400,6 +399,7 @@ OC.L10N.register( "Default quota:" : "Cuota predefinida:", "Show Languages" : "Mustra limbas", "Send email to new user" : "Imbia messàgiu de posta a utèntzia noa", + "Twitter" : "Twitter", "Enable untested app" : "Ativa aplicatzione non verificada", "Plain" : "Simpre", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json index 3ed2d6c5784..2e5123e253b 100644 --- a/apps/settings/l10n/sc.json +++ b/apps/settings/l10n/sc.json @@ -308,7 +308,6 @@ "Headline" : "Tìtulos", "Phone number" : "Nùmeru de telèfonu", "Role" : "Faina", - "Twitter" : "Twitter", "Website" : "Situ ìnternet", "Locale" : "Localizatzione", "Active apps" : "Aplicatziones ativas", @@ -398,6 +397,7 @@ "Default quota:" : "Cuota predefinida:", "Show Languages" : "Mustra limbas", "Send email to new user" : "Imbia messàgiu de posta a utèntzia noa", + "Twitter" : "Twitter", "Enable untested app" : "Ativa aplicatzione non verificada", "Plain" : "Simpre", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js index d7e3d0efbcf..83e0c9ab169 100644 --- a/apps/settings/l10n/sk.js +++ b/apps/settings/l10n/sk.js @@ -331,7 +331,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Vo vašom profile sa rešpektuje prísnejšie nastavenie viditeľnosti alebo rozsahu. Ak je napríklad viditeľnosť nastavená na „Zobraziť všetkým“ a rozsah je nastavený na „Súkromné“, „Súkromné“ bude rešpektované.", "Unable to update visibility of {displayId}" : "Nie je možné aktualizovať viditeľnosť {displayId}", "Your role" : "Vaša rola", - "Your Twitter handle" : "Vaša stránka na Twitteri", "Your website" : "Vaša webstránka", "No {property} set" : "Nie je nastavená žiadna {property}", "Unable to update {property}" : "Nie je možné aktualizovať {property}", @@ -422,7 +421,6 @@ OC.L10N.register( "Organisation" : "Organizácia", "Phone number" : "Telefónne číslo", "Role" : "Rola", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (napr. Mastodon)", "Website" : "Webstránka", "Profile visibility" : "Viditeľnosť profilu", @@ -521,6 +519,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png alebo jpg, max. 20 MB", "Your email address" : "Vaša emailová adresa", "Your location" : "Vaša poloha", + "Your Twitter handle" : "Vaša stránka na Twitteri", "Add new password" : "Pridať nové heslo", "Add new email address" : "Pridať novú emailovú adresu", "Edit User" : "Upraviť používateľa", @@ -532,6 +531,7 @@ OC.L10N.register( "Default quota:" : "Predvolená kvóta:", "Show Languages" : "Zobraziť jazyky", "Send email to new user" : "Odoslať email novému používateľovi", + "Twitter" : "Twitter", "Enable untested app" : "Zapnúť netestovanú aplikáciu", "Plain" : "Neformátovaný", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json index c46fd5ce5bb..23f753f3615 100644 --- a/apps/settings/l10n/sk.json +++ b/apps/settings/l10n/sk.json @@ -329,7 +329,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Vo vašom profile sa rešpektuje prísnejšie nastavenie viditeľnosti alebo rozsahu. Ak je napríklad viditeľnosť nastavená na „Zobraziť všetkým“ a rozsah je nastavený na „Súkromné“, „Súkromné“ bude rešpektované.", "Unable to update visibility of {displayId}" : "Nie je možné aktualizovať viditeľnosť {displayId}", "Your role" : "Vaša rola", - "Your Twitter handle" : "Vaša stránka na Twitteri", "Your website" : "Vaša webstránka", "No {property} set" : "Nie je nastavená žiadna {property}", "Unable to update {property}" : "Nie je možné aktualizovať {property}", @@ -420,7 +419,6 @@ "Organisation" : "Organizácia", "Phone number" : "Telefónne číslo", "Role" : "Rola", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (napr. Mastodon)", "Website" : "Webstránka", "Profile visibility" : "Viditeľnosť profilu", @@ -519,6 +517,7 @@ "png or jpg, max. 20 MB" : "png alebo jpg, max. 20 MB", "Your email address" : "Vaša emailová adresa", "Your location" : "Vaša poloha", + "Your Twitter handle" : "Vaša stránka na Twitteri", "Add new password" : "Pridať nové heslo", "Add new email address" : "Pridať novú emailovú adresu", "Edit User" : "Upraviť používateľa", @@ -530,6 +529,7 @@ "Default quota:" : "Predvolená kvóta:", "Show Languages" : "Zobraziť jazyky", "Send email to new user" : "Odoslať email novému používateľovi", + "Twitter" : "Twitter", "Enable untested app" : "Zapnúť netestovanú aplikáciu", "Plain" : "Neformátovaný", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/sl.js b/apps/settings/l10n/sl.js index fa192d6074e..44cf42c9c2a 100644 --- a/apps/settings/l10n/sl.js +++ b/apps/settings/l10n/sl.js @@ -336,7 +336,6 @@ OC.L10N.register( "Unable to update profile enabled state" : "Ni mogoče posodobiti omogočenega stanja profila", "Unable to update visibility of {displayId}" : "Ni mogoče posodobiti vidnosti {displayId}", "Your role" : "Vloga", - "Your Twitter handle" : "Ročnik računa Twitter", "Your website" : "Osebna spletna stran", "No {property} set" : "Lastnost {property} ni nastavljena", "Unable to update {property}" : "Lastnosti {property} ni mogoče posodobiti", @@ -453,7 +452,6 @@ OC.L10N.register( "Organisation" : "Ustanova", "Phone number" : "Telefonska številka", "Role" : "Vloga", - "Twitter" : "Račun Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (na primer Mastodon)", "Website" : "Spletna stran", "Profile visibility" : "Vidnost profila", @@ -554,6 +552,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ali jpg, največ. 20 MB", "Your email address" : "Osebni elektronski naslov", "Your location" : "Vaše trenutno mesto", + "Your Twitter handle" : "Ročnik računa Twitter", "Add new password" : "Vpis gesla", "Add new email address" : "Vpis elektronskega naslova", "Edit User" : "Uredi podatke uporabnika", @@ -565,6 +564,7 @@ OC.L10N.register( "Default quota:" : "Privzeta količinska omejitev :", "Show Languages" : "Pokaži jezike", "Send email to new user" : "Pošlji sporočilo novemu uporabniku", + "Twitter" : "Račun Twitter", "Enable untested app" : "Omogoči nepreizkušen program", "Plain" : "Besedilno", "NT LAN Manager" : "Upravljalnik NT LAN", diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json index cb2a590dc74..e9643eff14c 100644 --- a/apps/settings/l10n/sl.json +++ b/apps/settings/l10n/sl.json @@ -334,7 +334,6 @@ "Unable to update profile enabled state" : "Ni mogoče posodobiti omogočenega stanja profila", "Unable to update visibility of {displayId}" : "Ni mogoče posodobiti vidnosti {displayId}", "Your role" : "Vloga", - "Your Twitter handle" : "Ročnik računa Twitter", "Your website" : "Osebna spletna stran", "No {property} set" : "Lastnost {property} ni nastavljena", "Unable to update {property}" : "Lastnosti {property} ni mogoče posodobiti", @@ -451,7 +450,6 @@ "Organisation" : "Ustanova", "Phone number" : "Telefonska številka", "Role" : "Vloga", - "Twitter" : "Račun Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (na primer Mastodon)", "Website" : "Spletna stran", "Profile visibility" : "Vidnost profila", @@ -552,6 +550,7 @@ "png or jpg, max. 20 MB" : "png ali jpg, največ. 20 MB", "Your email address" : "Osebni elektronski naslov", "Your location" : "Vaše trenutno mesto", + "Your Twitter handle" : "Ročnik računa Twitter", "Add new password" : "Vpis gesla", "Add new email address" : "Vpis elektronskega naslova", "Edit User" : "Uredi podatke uporabnika", @@ -563,6 +562,7 @@ "Default quota:" : "Privzeta količinska omejitev :", "Show Languages" : "Pokaži jezike", "Send email to new user" : "Pošlji sporočilo novemu uporabniku", + "Twitter" : "Račun Twitter", "Enable untested app" : "Omogoči nepreizkušen program", "Plain" : "Besedilno", "NT LAN Manager" : "Upravljalnik NT LAN", diff --git a/apps/settings/l10n/sq.js b/apps/settings/l10n/sq.js index 586b54efb28..0fe742777cd 100644 --- a/apps/settings/l10n/sq.js +++ b/apps/settings/l10n/sq.js @@ -155,7 +155,6 @@ OC.L10N.register( "No email address set" : "S’është caktuar adresë email", "Help translate" : "Ndihmoni në përkthim", "Your phone number" : "Numri juaj i telefonit", - "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "Your website" : "Website-i juaj", "Add" : "Shto", "New user" : "Përdorues i ri", @@ -191,7 +190,6 @@ OC.L10N.register( "About" : "Rreth ", "Full name" : "Emër i plotë", "Phone number" : "Numri i telefonit", - "Twitter" : "Twitter", "Website" : "Faqe web-i", "Active apps" : "Aplikacionet aktive", "Disabled apps" : "Aplikacionet pa aftësi ", @@ -240,8 +238,10 @@ OC.L10N.register( "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Për të bërë këtë ekzekutim ju duhet shtesa PHP POSIX. Shikoni {linkstart} dokumentacionin e PHP {linkend} pë më shumë detaje.", "png or jpg, max. 20 MB" : "png ose jpg, maks. 20 MB", "Your email address" : "Adresa juaj email", + "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "Add group" : "Shto grup", "Send email to new user" : "Dërgo email përdoruesi të ri", + "Twitter" : "Twitter", "Plain" : "E thjeshtë", "NT LAN Manager" : "Përgjegjës Rrjeti NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/sq.json b/apps/settings/l10n/sq.json index 99bf03b653a..8296161938a 100644 --- a/apps/settings/l10n/sq.json +++ b/apps/settings/l10n/sq.json @@ -153,7 +153,6 @@ "No email address set" : "S’është caktuar adresë email", "Help translate" : "Ndihmoni në përkthim", "Your phone number" : "Numri juaj i telefonit", - "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "Your website" : "Website-i juaj", "Add" : "Shto", "New user" : "Përdorues i ri", @@ -189,7 +188,6 @@ "About" : "Rreth ", "Full name" : "Emër i plotë", "Phone number" : "Numri i telefonit", - "Twitter" : "Twitter", "Website" : "Faqe web-i", "Active apps" : "Aplikacionet aktive", "Disabled apps" : "Aplikacionet pa aftësi ", @@ -238,8 +236,10 @@ "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Për të bërë këtë ekzekutim ju duhet shtesa PHP POSIX. Shikoni {linkstart} dokumentacionin e PHP {linkend} pë më shumë detaje.", "png or jpg, max. 20 MB" : "png ose jpg, maks. 20 MB", "Your email address" : "Adresa juaj email", + "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "Add group" : "Shto grup", "Send email to new user" : "Dërgo email përdoruesi të ri", + "Twitter" : "Twitter", "Plain" : "E thjeshtë", "NT LAN Manager" : "Përgjegjës Rrjeti NT", "SSL/TLS" : "SSL/TLS", diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js index d501d62aa5a..a1018ffe96c 100644 --- a/apps/settings/l10n/sr.js +++ b/apps/settings/l10n/sr.js @@ -140,29 +140,58 @@ OC.L10N.register( "Reshare" : "Дели даље", "Unlimited" : "Неограничено", "Verifying" : "Проверавам", + "Old user imported certificates" : "Стари сертификати које је увезао корисник", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Позадински посао који проверава увезене корисничке SSL сертификате је на чекању. Молимо вас да проверите касније.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Присутни су неки увезени кориснички SSL сертификати који се више не користе у Nextcloud 21. Могу да се увезу из командне линије извршавањем команде „occ security:certificates:import”. Њихове путање унутар директоријума са подацима су приказане испод.", + "Default phone region" : "Подразумевани телефонски позивни број", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Ваша инсталација нема постављен подразумевани телефонски позивни број. Ово је неопходно за проверу бројева телефона у подешавањима профила без кода земље. Ако желите да дозволите бројеве без кода земље, молимо вас да у свој конфигурациони фајл додате „default_phone_region” са одговарајућим ISO 3166-1 кодом региона.", + "Email test" : "Тест и-мејла", + "Email test was successfully sent" : "Успешно је послат тест и-мејл ", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Још увек нисте поставили или потврдили своју конфигурацију е-поште. Молимо вас пређите на „Основна подешавања” да је поставите. Након тога, употребите дугме „Пошаљи имејл” испод форме и потврдите своја подешавања.", + "File locking" : "Закључавање фајла", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Закључавање фајла по трансакцијама је искључено, то може да доведе до проблема са стањима утркивања. Укључите „filelocking.enabled” у config.php да спречите ове проблеме.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "База података се користи за трансакционо закључавање фајлова. Да бисте побољшали перформансе, молимо вас да конфигуришете memcache, ако је то могуће.", "Internet connectivity" : "Веза са интернетом", "Internet connectivity is disabled in configuration file." : "Веза са интернетом је искључена у конфигурационом фајлу.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Овај сервер нема функционалну интернет конекцију: више крајњих тачака није доступно. Ово значи да неће радити неке могућности као што су качење спољних складишта, обавештења о ажурирањима или инсталација апликација треће стране. Приступање фајловима споља и слање обавештења е-поштом исто тако може да не ради. Ако желите да уживате у свим могућностима, обезбедите везу овог сервера са интернетом.", + "Old server-side-encryption" : "Старо шифровање на серверској страни", "Disabled" : "Искључено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Укључен је стари формат шифровања на серверској страни. Препоручујемо да га искључите.", + "Memcache" : "Memcache", + "Configured" : "подешено", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Није подешено никакво кеширање у меморији. Да бисте побољшали перформансе, молимо вас да конфигуришете memcache, ако је то могуће.", + "PHP default charset" : "Подразумевани PHP скуп знакова", "PHP configuration option default_charset should be UTF-8" : "PHP кофигурациона опција option default_charset би требало да има вредност UTF-8", + "Freetype" : "Freetype", "Supported" : "Подржана", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваша PHP инсталација нема подршку за FreeType. Ово ће довести до неисправних профилних слика и неисправног интерфејса за подешавања.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP изгледа није исправно подешен да дохвата променљиве окружења. Тест са getenv(\"PATH\") враћа празну листу као одговор.", "PHP modules" : "PHP модули", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Овој инстанци недостају неки неопходни PHP модули. Потребно је да се инсталирају: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Овој инстанци недостају неки препоручени PHP модули. Препоручује се да их инсталирате због побољшања перформанси и за бољу компатибилност: %s.", + "PHP version" : "PHP верзија", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Тренутно изврешавате %s. PHP 8.0 је сада застарео у Nextcloud 27. Nextcloud 28 може да захтева барем PHP 8.1. Молимо вас да што је пре могуће извршите ажурирање на једну од званично подржаних PHP верзија које обезбеђује PHP Група.", "You are currently running PHP %s." : "Тренутно се извршава PHP %s.", + "PHP output_buffering option" : "output_buffering PHP опција", "PHP configuration option output_buffering must be disabled" : "PHP конфигурациона опција output_buffering мора бити искључена", + "Random generator" : "Генератор случајних бројева", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP није пронашао погодни извор случајности, а из разлога безбедности то никако није пожељно.", + "Secure" : "Безбедно", + "Configuration file access rights" : "Права приступа конфигурационом фајлу", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Омогућена је конфигурација само за читање. То спречава постављање неке конфигурације преко веб-интерфејса. Осим тога, фајлу мора бити ручно омогућено уписивање код сваког освежавања.", "Nextcloud configuration file is writable" : "Могућ је упис у Nextcloud конфигурациони фајл", + "Database version" : "Верзија базе података", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Користи се MariaDB верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MariaDB 10.2 или новију.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Користи се MySQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MySQL 8.0 или MariaDB 10.2 или новију.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Користи се PostgreSQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају PostgreSQL 9.6 или новији.", + "Unknown database plaform" : "Непозната платформа базе података", "Architecture" : "Архитектура", + "64-bit" : "64-бита", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита!", + "Database transaction isolation level" : "Ниво изолације трансакција у бази података", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База података није покренута са „READ COMMITTED“ нивоом изолације трансакција. Ово може изазвати проблеме ако се више различитих акција изврши у паралели.", + "Was not able to get transaction isolation level: %s" : "Није успело преузимање нивоа изолације: %s", "Profile information" : "Информације о профилу", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Слика профила, пуно име, и-мејл, број телефона, адреса, веб сајт, Tweeter, организација, улога, насловна линија, биографија и то да ли је ваш профил укључен", "Nextcloud settings" : "Некстклауд поставке", @@ -360,7 +389,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "На вашем провилу се поштује рестриктивније подешавање било видљивости, било опсега важења. На пример, ако је видљивост постављена на „Прикажи свима”, а опсег важења на „Приватан”, поштује се „Приватан”.", "Unable to update visibility of {displayId}" : "Није успело ажурирање видљивости {displayId}", "Your role" : "Ваша улога", - "Your Twitter handle" : "Ваш Твитер надимак", + "Your X (formerly Twitter) handle" : "Ваша X (бивши Twitter) ручка", "Your website" : "Ваш веб сајт", "No {property} set" : "{property} није постављено", "Unable to update {property}" : "Није успело ажурирање {property}", @@ -483,7 +512,7 @@ OC.L10N.register( "Organisation" : "Организација", "Phone number" : "Број телефона", "Role" : "Улога", - "Twitter" : "Твитер", + "X (formerly Twitter)" : "X (бивши Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (нпр. Mastodon)", "Website" : "Веб сајт", "Profile visibility" : "Видљивост профила", @@ -590,6 +619,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "„png“ или „jpg“, макс. 20 МБ", "Your email address" : "Адреса Ваше е-поште", "Your location" : "Ваша локација", + "Your Twitter handle" : "Ваш Твитер надимак", "Add new password" : "Додај нову лозинку", "Add new email address" : "Додај нову адресу е-поште", "Edit User" : "Измени корисника", @@ -601,6 +631,7 @@ OC.L10N.register( "Default quota:" : "Подразумевана квота:", "Show Languages" : "Прикажи језике", "Send email to new user" : "Пошаљи е-пошту новом кориснику", + "Twitter" : "Твитер", "Enable untested app" : "Омогући нетестиране апликације", "Plain" : "Обичан", "NT LAN Manager" : "НТ ЛАН менаџер", diff --git a/apps/settings/l10n/sr.json b/apps/settings/l10n/sr.json index d37e18fe121..799735940ee 100644 --- a/apps/settings/l10n/sr.json +++ b/apps/settings/l10n/sr.json @@ -138,29 +138,58 @@ "Reshare" : "Дели даље", "Unlimited" : "Неограничено", "Verifying" : "Проверавам", + "Old user imported certificates" : "Стари сертификати које је увезао корисник", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Позадински посао који проверава увезене корисничке SSL сертификате је на чекању. Молимо вас да проверите касније.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Присутни су неки увезени кориснички SSL сертификати који се више не користе у Nextcloud 21. Могу да се увезу из командне линије извршавањем команде „occ security:certificates:import”. Њихове путање унутар директоријума са подацима су приказане испод.", + "Default phone region" : "Подразумевани телефонски позивни број", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Ваша инсталација нема постављен подразумевани телефонски позивни број. Ово је неопходно за проверу бројева телефона у подешавањима профила без кода земље. Ако желите да дозволите бројеве без кода земље, молимо вас да у свој конфигурациони фајл додате „default_phone_region” са одговарајућим ISO 3166-1 кодом региона.", + "Email test" : "Тест и-мејла", + "Email test was successfully sent" : "Успешно је послат тест и-мејл ", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Још увек нисте поставили или потврдили своју конфигурацију е-поште. Молимо вас пређите на „Основна подешавања” да је поставите. Након тога, употребите дугме „Пошаљи имејл” испод форме и потврдите своја подешавања.", + "File locking" : "Закључавање фајла", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Закључавање фајла по трансакцијама је искључено, то може да доведе до проблема са стањима утркивања. Укључите „filelocking.enabled” у config.php да спречите ове проблеме.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "База података се користи за трансакционо закључавање фајлова. Да бисте побољшали перформансе, молимо вас да конфигуришете memcache, ако је то могуће.", "Internet connectivity" : "Веза са интернетом", "Internet connectivity is disabled in configuration file." : "Веза са интернетом је искључена у конфигурационом фајлу.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Овај сервер нема функционалну интернет конекцију: више крајњих тачака није доступно. Ово значи да неће радити неке могућности као што су качење спољних складишта, обавештења о ажурирањима или инсталација апликација треће стране. Приступање фајловима споља и слање обавештења е-поштом исто тако може да не ради. Ако желите да уживате у свим могућностима, обезбедите везу овог сервера са интернетом.", + "Old server-side-encryption" : "Старо шифровање на серверској страни", "Disabled" : "Искључено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Укључен је стари формат шифровања на серверској страни. Препоручујемо да га искључите.", + "Memcache" : "Memcache", + "Configured" : "подешено", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Није подешено никакво кеширање у меморији. Да бисте побољшали перформансе, молимо вас да конфигуришете memcache, ако је то могуће.", + "PHP default charset" : "Подразумевани PHP скуп знакова", "PHP configuration option default_charset should be UTF-8" : "PHP кофигурациона опција option default_charset би требало да има вредност UTF-8", + "Freetype" : "Freetype", "Supported" : "Подржана", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваша PHP инсталација нема подршку за FreeType. Ово ће довести до неисправних профилних слика и неисправног интерфејса за подешавања.", + "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP изгледа није исправно подешен да дохвата променљиве окружења. Тест са getenv(\"PATH\") враћа празну листу као одговор.", "PHP modules" : "PHP модули", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Овој инстанци недостају неки неопходни PHP модули. Потребно је да се инсталирају: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Овој инстанци недостају неки препоручени PHP модули. Препоручује се да их инсталирате због побољшања перформанси и за бољу компатибилност: %s.", + "PHP version" : "PHP верзија", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Тренутно изврешавате %s. PHP 8.0 је сада застарео у Nextcloud 27. Nextcloud 28 може да захтева барем PHP 8.1. Молимо вас да што је пре могуће извршите ажурирање на једну од званично подржаних PHP верзија које обезбеђује PHP Група.", "You are currently running PHP %s." : "Тренутно се извршава PHP %s.", + "PHP output_buffering option" : "output_buffering PHP опција", "PHP configuration option output_buffering must be disabled" : "PHP конфигурациона опција output_buffering мора бити искључена", + "Random generator" : "Генератор случајних бројева", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP није пронашао погодни извор случајности, а из разлога безбедности то никако није пожељно.", + "Secure" : "Безбедно", + "Configuration file access rights" : "Права приступа конфигурационом фајлу", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Омогућена је конфигурација само за читање. То спречава постављање неке конфигурације преко веб-интерфејса. Осим тога, фајлу мора бити ручно омогућено уписивање код сваког освежавања.", "Nextcloud configuration file is writable" : "Могућ је упис у Nextcloud конфигурациони фајл", + "Database version" : "Верзија базе података", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Користи се MariaDB верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MariaDB 10.2 или новију.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Користи се MySQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MySQL 8.0 или MariaDB 10.2 или новију.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Користи се PostgreSQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају PostgreSQL 9.6 или новији.", + "Unknown database plaform" : "Непозната платформа базе података", "Architecture" : "Архитектура", + "64-bit" : "64-бита", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита!", + "Database transaction isolation level" : "Ниво изолације трансакција у бази података", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База података није покренута са „READ COMMITTED“ нивоом изолације трансакција. Ово може изазвати проблеме ако се више различитих акција изврши у паралели.", + "Was not able to get transaction isolation level: %s" : "Није успело преузимање нивоа изолације: %s", "Profile information" : "Информације о профилу", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Слика профила, пуно име, и-мејл, број телефона, адреса, веб сајт, Tweeter, организација, улога, насловна линија, биографија и то да ли је ваш профил укључен", "Nextcloud settings" : "Некстклауд поставке", @@ -358,7 +387,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "На вашем провилу се поштује рестриктивније подешавање било видљивости, било опсега важења. На пример, ако је видљивост постављена на „Прикажи свима”, а опсег важења на „Приватан”, поштује се „Приватан”.", "Unable to update visibility of {displayId}" : "Није успело ажурирање видљивости {displayId}", "Your role" : "Ваша улога", - "Your Twitter handle" : "Ваш Твитер надимак", + "Your X (formerly Twitter) handle" : "Ваша X (бивши Twitter) ручка", "Your website" : "Ваш веб сајт", "No {property} set" : "{property} није постављено", "Unable to update {property}" : "Није успело ажурирање {property}", @@ -481,7 +510,7 @@ "Organisation" : "Организација", "Phone number" : "Број телефона", "Role" : "Улога", - "Twitter" : "Твитер", + "X (formerly Twitter)" : "X (бивши Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (нпр. Mastodon)", "Website" : "Веб сајт", "Profile visibility" : "Видљивост профила", @@ -588,6 +617,7 @@ "png or jpg, max. 20 MB" : "„png“ или „jpg“, макс. 20 МБ", "Your email address" : "Адреса Ваше е-поште", "Your location" : "Ваша локација", + "Your Twitter handle" : "Ваш Твитер надимак", "Add new password" : "Додај нову лозинку", "Add new email address" : "Додај нову адресу е-поште", "Edit User" : "Измени корисника", @@ -599,6 +629,7 @@ "Default quota:" : "Подразумевана квота:", "Show Languages" : "Прикажи језике", "Send email to new user" : "Пошаљи е-пошту новом кориснику", + "Twitter" : "Твитер", "Enable untested app" : "Омогући нетестиране апликације", "Plain" : "Обичан", "NT LAN Manager" : "НТ ЛАН менаџер", diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js index 8c179e0ced7..4c5ae12f80f 100644 --- a/apps/settings/l10n/sv.js +++ b/apps/settings/l10n/sv.js @@ -140,27 +140,53 @@ OC.L10N.register( "Reshare" : "Dela vidare", "Unlimited" : "Obegränsat", "Verifying" : "Verifiera", + "Old user imported certificates" : "Gamla användarimporterade certifikat", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Ett bakgrundsjobb väntar som söker efter användarimporterade SSL-certifikat. Vänligen kontrollera igen senare.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Det finns några användarimporterade SSL-certifikat närvarande som inte längre används med Nextcloud 21. De kan importeras i kommandoraden via \"occ security:certificates:import\". Deras sökvägar inuti data-mappen visas nedanför.", + "Default phone region" : "Standardregion för telefon", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Din installation har ingen standardregion för telefon inställd. Detta krävs för att validera telefonnummer i profilinställningarna utan landskod. För att tillåta nummer utan landskod, lägg till \"default_phone_region\" med respektive ISO 3166-1-kod för regionen i din konfigurationsfil.", + "Email test" : "E-posttest", + "Email test was successfully sent" : "E-posttestet har skickats", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Du har inte ställt in eller verifierat din e-postserverkonfiguration ännu. Gå över till \"Generella inställningar\" för att ställa in dem. Använd sedan knappen \"Skicka e-post\" under formuläret för att verifiera dina inställningar.", + "File locking" : "Fillåsning", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionsbaserad fillåsning är inaktiverad, detta kan leda till problem med konflikter. Aktivera \"filelocking.enabled\" i config.php för att undvika dessa problem.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Databasen används till transaktionsbaserad fillåsning. För att förbättra prestandan, konfigurera memcache om det finns tillgängligt.", "Internet connectivity" : "Internetanslutning", "Internet connectivity is disabled in configuration file." : "Internetanslutning är inaktiverad i konfigurationsfilen.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Den här servern har ingen fungerande internetanslutning: Flera slutpunkter kunde inte nås. Det betyder att vissa av funktionerna som montering av extern lagring, aviseringar om uppdateringar eller installation av tredjepartsappar inte kommer att fungera. Att komma åt filer på distans och skicka e-postmeddelanden kanske inte heller fungerar. Upprätta en anslutning från denna server till internet för att kunna nyttja alla funktioner.", + "Old server-side-encryption" : "Gammal serverkryptering", "Disabled" : "Inaktiverad", "The old server-side-encryption format is enabled. We recommend disabling this." : "Det gamla krypteringsformatet på servern är aktiverat. Vi rekommenderar att du inaktiverar detta.", + "Memcache" : "Memcache", + "Configured" : "Konfigurerad", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Inget minnescache har konfigurerats. För att förbättra prestanda, vänligen konfigurera en memcache, om tillgänglig.", + "PHP default charset" : "PHP standardteckenuppsättning", "PHP configuration option default_charset should be UTF-8" : "PHP-konfigurationsalternativ default_charset ska vara UTF-8", "Supported" : "Stöds", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP har inte FreeType-stöd, vilket resulterar i brott i profilbilder och inställningsgränssnittet.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP verkar inte vara korrekt inställd för att fråga efter systemmiljövariabler. Testet med getenv(\"PATH\") ger bara ett tomt svar.", + "PHP memory limit" : "PHP minnesgräns", + "The PHP memory limit is below the recommended value of %s." : "Minnesgränsen för PHP är under det rekommenderade värdet på %s.", "PHP modules" : "PHP-moduler", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Den här instansen saknar några nödvändiga PHP-moduler. Det är nödvändigt att installera dem: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Den här instansen saknar några rekommenderade PHP-moduler. För förbättrad prestanda och bättre kompatibilitet rekommenderas starkt att du installerar dem: %s.", + "PHP version" : "PHP-version", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kör för närvarande PHP %s. PHP 8.0 är nu föråldrat i Nextcloud 27. Nextcloud 28 kan kräva minst PHP 8.1. Vänligen uppgradera till en av de officiellt stödda PHP-versionerna som tillhandahålls av PHP Group så snart som möjligt.", "You are currently running PHP %s." : "Du kör för närvarande PHP %s.", "PHP configuration option output_buffering must be disabled" : "PHP-konfigurationsalternativ output_buffering måste vara inaktiverat", + "Random generator" : "Slumpgenerator", + "Secure" : "Säkra", + "Configuration file access rights" : "Behörighet för konfigurationsfil", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivskyddade konfigurationen har aktiverats. Detta förhindrar att vissa konfigurationer ställs in via webbgränssnittet. Dessutom måste filen göras skrivbar manuellt för varje uppdatering.", "Nextcloud configuration file is writable" : "Nextcloud-konfigurationsfilen är skrivbar", + "Database version" : "Databasversion", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MariaDB 10.2 eller högre.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MySQL 8.0 eller MariaDB 10.2 eller högre.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver PostgreSQL 9.6 eller högre.", + "Unknown database plaform" : "Okänd databasplattform", + "Architecture" : "Arkitektur", + "64-bit" : "64-bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Det verkar som att du kör en 32-bitars PHP-version. Nextcloud behöver 64-bitars för att fungera bra. Vänligen uppgradera ditt OS och PHP till 64-bitars!", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Databasen körs inte med transaktionsisoleringsnivån \"READ COMMITTED\". Det kan orsaka problem när flera aktiviteter körs parallellt.", "Profile information" : "Profilinformation", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilbild, fullständigt namn, e-post, telefonnummer, adress, webbplats, Twitter, organisation, roll, rubrik, biografi och om din profil är aktiverad", @@ -359,7 +385,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mer restriktiva inställningen av antingen synlighet eller omfattning respekteras på din profil. Till exempel, om synlighet är inställd på \"Visa för alla\" och omfattningen är inställd på \"Privat\", respekteras \"Privat\".", "Unable to update visibility of {displayId}" : "Kunde inte uppdatera synlighet för {displayId}", "Your role" : "Din roll", - "Your Twitter handle" : "Ditt Twitterkonto", "Your website" : "Din webbsida", "No {property} set" : "Ingen {property} inställd", "Unable to update {property}" : "Det gick inte att uppdatera {property}", @@ -482,7 +507,7 @@ OC.L10N.register( "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Roll", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (tidigare Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (t.ex. Mastodon)", "Website" : "Webbplats", "Profile visibility" : "Profilsynlighet", @@ -589,6 +614,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png eller jpg, max 20 MB", "Your email address" : "Din e-postadress", "Your location" : "Din plats", + "Your Twitter handle" : "Ditt Twitterkonto", "Add new password" : "Lägg till nytt lösenord", "Add new email address" : "Lägg till ny e-postadress", "Edit User" : "Redigera användare", @@ -600,6 +626,7 @@ OC.L10N.register( "Default quota:" : "Standardkvot:", "Show Languages" : "Visa språk", "Send email to new user" : "Skicka e-post till ny användare", + "Twitter" : "Twitter", "Enable untested app" : "Aktivera otestad app", "Plain" : "Enkel", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json index 906909ad483..839cabbf9f6 100644 --- a/apps/settings/l10n/sv.json +++ b/apps/settings/l10n/sv.json @@ -138,27 +138,53 @@ "Reshare" : "Dela vidare", "Unlimited" : "Obegränsat", "Verifying" : "Verifiera", + "Old user imported certificates" : "Gamla användarimporterade certifikat", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Ett bakgrundsjobb väntar som söker efter användarimporterade SSL-certifikat. Vänligen kontrollera igen senare.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Det finns några användarimporterade SSL-certifikat närvarande som inte längre används med Nextcloud 21. De kan importeras i kommandoraden via \"occ security:certificates:import\". Deras sökvägar inuti data-mappen visas nedanför.", + "Default phone region" : "Standardregion för telefon", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Din installation har ingen standardregion för telefon inställd. Detta krävs för att validera telefonnummer i profilinställningarna utan landskod. För att tillåta nummer utan landskod, lägg till \"default_phone_region\" med respektive ISO 3166-1-kod för regionen i din konfigurationsfil.", + "Email test" : "E-posttest", + "Email test was successfully sent" : "E-posttestet har skickats", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Du har inte ställt in eller verifierat din e-postserverkonfiguration ännu. Gå över till \"Generella inställningar\" för att ställa in dem. Använd sedan knappen \"Skicka e-post\" under formuläret för att verifiera dina inställningar.", + "File locking" : "Fillåsning", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionsbaserad fillåsning är inaktiverad, detta kan leda till problem med konflikter. Aktivera \"filelocking.enabled\" i config.php för att undvika dessa problem.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Databasen används till transaktionsbaserad fillåsning. För att förbättra prestandan, konfigurera memcache om det finns tillgängligt.", "Internet connectivity" : "Internetanslutning", "Internet connectivity is disabled in configuration file." : "Internetanslutning är inaktiverad i konfigurationsfilen.", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Den här servern har ingen fungerande internetanslutning: Flera slutpunkter kunde inte nås. Det betyder att vissa av funktionerna som montering av extern lagring, aviseringar om uppdateringar eller installation av tredjepartsappar inte kommer att fungera. Att komma åt filer på distans och skicka e-postmeddelanden kanske inte heller fungerar. Upprätta en anslutning från denna server till internet för att kunna nyttja alla funktioner.", + "Old server-side-encryption" : "Gammal serverkryptering", "Disabled" : "Inaktiverad", "The old server-side-encryption format is enabled. We recommend disabling this." : "Det gamla krypteringsformatet på servern är aktiverat. Vi rekommenderar att du inaktiverar detta.", + "Memcache" : "Memcache", + "Configured" : "Konfigurerad", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Inget minnescache har konfigurerats. För att förbättra prestanda, vänligen konfigurera en memcache, om tillgänglig.", + "PHP default charset" : "PHP standardteckenuppsättning", "PHP configuration option default_charset should be UTF-8" : "PHP-konfigurationsalternativ default_charset ska vara UTF-8", "Supported" : "Stöds", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP har inte FreeType-stöd, vilket resulterar i brott i profilbilder och inställningsgränssnittet.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP verkar inte vara korrekt inställd för att fråga efter systemmiljövariabler. Testet med getenv(\"PATH\") ger bara ett tomt svar.", + "PHP memory limit" : "PHP minnesgräns", + "The PHP memory limit is below the recommended value of %s." : "Minnesgränsen för PHP är under det rekommenderade värdet på %s.", "PHP modules" : "PHP-moduler", + "This instance is missing some required PHP modules. It is required to install them: %s." : "Den här instansen saknar några nödvändiga PHP-moduler. Det är nödvändigt att installera dem: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "Den här instansen saknar några rekommenderade PHP-moduler. För förbättrad prestanda och bättre kompatibilitet rekommenderas starkt att du installerar dem: %s.", + "PHP version" : "PHP-version", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kör för närvarande PHP %s. PHP 8.0 är nu föråldrat i Nextcloud 27. Nextcloud 28 kan kräva minst PHP 8.1. Vänligen uppgradera till en av de officiellt stödda PHP-versionerna som tillhandahålls av PHP Group så snart som möjligt.", "You are currently running PHP %s." : "Du kör för närvarande PHP %s.", "PHP configuration option output_buffering must be disabled" : "PHP-konfigurationsalternativ output_buffering måste vara inaktiverat", + "Random generator" : "Slumpgenerator", + "Secure" : "Säkra", + "Configuration file access rights" : "Behörighet för konfigurationsfil", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivskyddade konfigurationen har aktiverats. Detta förhindrar att vissa konfigurationer ställs in via webbgränssnittet. Dessutom måste filen göras skrivbar manuellt för varje uppdatering.", "Nextcloud configuration file is writable" : "Nextcloud-konfigurationsfilen är skrivbar", + "Database version" : "Databasversion", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MariaDB 10.2 eller högre.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MySQL 8.0 eller MariaDB 10.2 eller högre.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver PostgreSQL 9.6 eller högre.", + "Unknown database plaform" : "Okänd databasplattform", + "Architecture" : "Arkitektur", + "64-bit" : "64-bit", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Det verkar som att du kör en 32-bitars PHP-version. Nextcloud behöver 64-bitars för att fungera bra. Vänligen uppgradera ditt OS och PHP till 64-bitars!", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Databasen körs inte med transaktionsisoleringsnivån \"READ COMMITTED\". Det kan orsaka problem när flera aktiviteter körs parallellt.", "Profile information" : "Profilinformation", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profilbild, fullständigt namn, e-post, telefonnummer, adress, webbplats, Twitter, organisation, roll, rubrik, biografi och om din profil är aktiverad", @@ -357,7 +383,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Den mer restriktiva inställningen av antingen synlighet eller omfattning respekteras på din profil. Till exempel, om synlighet är inställd på \"Visa för alla\" och omfattningen är inställd på \"Privat\", respekteras \"Privat\".", "Unable to update visibility of {displayId}" : "Kunde inte uppdatera synlighet för {displayId}", "Your role" : "Din roll", - "Your Twitter handle" : "Ditt Twitterkonto", "Your website" : "Din webbsida", "No {property} set" : "Ingen {property} inställd", "Unable to update {property}" : "Det gick inte att uppdatera {property}", @@ -480,7 +505,7 @@ "Organisation" : "Organisation", "Phone number" : "Telefonnummer", "Role" : "Roll", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (tidigare Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (t.ex. Mastodon)", "Website" : "Webbplats", "Profile visibility" : "Profilsynlighet", @@ -587,6 +612,7 @@ "png or jpg, max. 20 MB" : "png eller jpg, max 20 MB", "Your email address" : "Din e-postadress", "Your location" : "Din plats", + "Your Twitter handle" : "Ditt Twitterkonto", "Add new password" : "Lägg till nytt lösenord", "Add new email address" : "Lägg till ny e-postadress", "Edit User" : "Redigera användare", @@ -598,6 +624,7 @@ "Default quota:" : "Standardkvot:", "Show Languages" : "Visa språk", "Send email to new user" : "Skicka e-post till ny användare", + "Twitter" : "Twitter", "Enable untested app" : "Aktivera otestad app", "Plain" : "Enkel", "NT LAN Manager" : "NT LAN Manager", diff --git a/apps/settings/l10n/th.js b/apps/settings/l10n/th.js index 1fb7d1bd9b4..5520507ebeb 100644 --- a/apps/settings/l10n/th.js +++ b/apps/settings/l10n/th.js @@ -246,7 +246,6 @@ OC.L10N.register( "About" : "เกี่ยวกับ", "Full name" : "ชื่อเต็ม", "Phone number" : "หมายเลขโทรศัพท์", - "Twitter" : "ทวิตเตอร์", "Website" : "เว็บไซต์", "Locale" : "ตำแหน่งที่ตั้ง", "Active apps" : "แอปที่เปิดใช้งานอยู่", @@ -323,6 +322,7 @@ OC.L10N.register( "Default quota:" : "ค่าโควต้าเริ่มต้น:", "Show Languages" : "แสดงภาษา", "Send email to new user" : "ส่งอีเมลไปยังผู้ใช้ใหม่", + "Twitter" : "ทวิตเตอร์", "Enable untested app" : "เปิดใช้งานแอปที่ไม่ได้ทดสอบ", "Plain" : "ธรรมดา", "NT LAN Manager" : "ตัวจัดการ NT LAN", diff --git a/apps/settings/l10n/th.json b/apps/settings/l10n/th.json index efefaabaf22..23e285d2b84 100644 --- a/apps/settings/l10n/th.json +++ b/apps/settings/l10n/th.json @@ -244,7 +244,6 @@ "About" : "เกี่ยวกับ", "Full name" : "ชื่อเต็ม", "Phone number" : "หมายเลขโทรศัพท์", - "Twitter" : "ทวิตเตอร์", "Website" : "เว็บไซต์", "Locale" : "ตำแหน่งที่ตั้ง", "Active apps" : "แอปที่เปิดใช้งานอยู่", @@ -321,6 +320,7 @@ "Default quota:" : "ค่าโควต้าเริ่มต้น:", "Show Languages" : "แสดงภาษา", "Send email to new user" : "ส่งอีเมลไปยังผู้ใช้ใหม่", + "Twitter" : "ทวิตเตอร์", "Enable untested app" : "เปิดใช้งานแอปที่ไม่ได้ทดสอบ", "Plain" : "ธรรมดา", "NT LAN Manager" : "ตัวจัดการ NT LAN", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index b3b934a4dfd..6f31bac0f03 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -389,7 +389,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.", "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi", "Your role" : "Pozisyonunuz", - "Your Twitter handle" : "Twitter adresiniz", + "Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız", "Your website" : "Sitenizin adresi", "No {property} set" : "Herhangi bir {property} ayarlanmamış", "Unable to update {property}" : "{property} güncellenemedi", @@ -512,7 +512,7 @@ OC.L10N.register( "Organisation" : "Kuruluş", "Phone number" : "Telefon numarası", "Role" : "Pozisyon", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (eski Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (Mastodon gibi)", "Website" : "Site", "Profile visibility" : "Profil görünürlüğü", @@ -611,7 +611,7 @@ OC.L10N.register( "An administrator created app password \"{token}\"" : "Bir yönetici \"{token}\" uygulama parolasını oluşturdu", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "LDAP kullanıcıları ya da grupları için geçersiz UUID değerleri bulundu. Lütfen LDAP yapılandırmasının Uzman bölümündeki \"UUID algılaması değiştirilsin\" seçeneğini gözden geçirin ve bunları güncellemek için \"occ ldap:update-uuid\" komutunu kullanın.", "Enable all" : "Tümünü etkinleştir", - "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Bunu çalıştıraiblmek için PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Bunu çalıştırabilmek için PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.", "Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances." : "5 dakikada bir cron.php dosyasının çağrılması için sistem cron hizmeti kullanılır. Tüm kopyalar için önerilir.", "You are about to remove the group {group}. The users will NOT be deleted." : "{group} grubunu silmek üzeresiniz. Kullanıcılar SİLİNMEYECEK.", "Please confirm the group removal " : "Grubu silme işlemini onaylayın", @@ -619,6 +619,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png ya da jpg, en fazla 20 MB", "Your email address" : "E-posta adresiniz", "Your location" : "Konumunuz", + "Your Twitter handle" : "Twitter adresiniz", "Add new password" : "Yeni parola ekle", "Add new email address" : "Yeni e-posta adresi ekle", "Edit User" : "Kullanıcıyı düzenle", @@ -630,6 +631,7 @@ OC.L10N.register( "Default quota:" : "Varsayılan kota:", "Show Languages" : "Dilleri görüntüle", "Send email to new user" : "Yeni kullanıcıya e-posta gönderilsin", + "Twitter" : "Twitter", "Enable untested app" : "Denenmemiş uygulamalar kullanılabilsin", "Plain" : "Düz", "NT LAN Manager" : "NT ağ yöneticisi", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index a6335d7acad..82617a544ea 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -387,7 +387,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.", "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi", "Your role" : "Pozisyonunuz", - "Your Twitter handle" : "Twitter adresiniz", + "Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız", "Your website" : "Sitenizin adresi", "No {property} set" : "Herhangi bir {property} ayarlanmamış", "Unable to update {property}" : "{property} güncellenemedi", @@ -510,7 +510,7 @@ "Organisation" : "Kuruluş", "Phone number" : "Telefon numarası", "Role" : "Pozisyon", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X (eski Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse (Mastodon gibi)", "Website" : "Site", "Profile visibility" : "Profil görünürlüğü", @@ -609,7 +609,7 @@ "An administrator created app password \"{token}\"" : "Bir yönetici \"{token}\" uygulama parolasını oluşturdu", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "LDAP kullanıcıları ya da grupları için geçersiz UUID değerleri bulundu. Lütfen LDAP yapılandırmasının Uzman bölümündeki \"UUID algılaması değiştirilsin\" seçeneğini gözden geçirin ve bunları güncellemek için \"occ ldap:update-uuid\" komutunu kullanın.", "Enable all" : "Tümünü etkinleştir", - "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Bunu çalıştıraiblmek için PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Bunu çalıştırabilmek için PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.", "Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances." : "5 dakikada bir cron.php dosyasının çağrılması için sistem cron hizmeti kullanılır. Tüm kopyalar için önerilir.", "You are about to remove the group {group}. The users will NOT be deleted." : "{group} grubunu silmek üzeresiniz. Kullanıcılar SİLİNMEYECEK.", "Please confirm the group removal " : "Grubu silme işlemini onaylayın", @@ -617,6 +617,7 @@ "png or jpg, max. 20 MB" : "png ya da jpg, en fazla 20 MB", "Your email address" : "E-posta adresiniz", "Your location" : "Konumunuz", + "Your Twitter handle" : "Twitter adresiniz", "Add new password" : "Yeni parola ekle", "Add new email address" : "Yeni e-posta adresi ekle", "Edit User" : "Kullanıcıyı düzenle", @@ -628,6 +629,7 @@ "Default quota:" : "Varsayılan kota:", "Show Languages" : "Dilleri görüntüle", "Send email to new user" : "Yeni kullanıcıya e-posta gönderilsin", + "Twitter" : "Twitter", "Enable untested app" : "Denenmemiş uygulamalar kullanılabilsin", "Plain" : "Düz", "NT LAN Manager" : "NT ağ yöneticisi", diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js index bb47b4ada4d..0425f789e13 100644 --- a/apps/settings/l10n/uk.js +++ b/apps/settings/l10n/uk.js @@ -140,28 +140,54 @@ OC.L10N.register( "Reshare" : "Передати у спільний доступ", "Unlimited" : "Необмежено", "Verifying" : "Перевірка", + "Old user imported certificates" : "Старі сертифікати, які було імпортовано користувачами", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Очікується фонове завдання, яке перевіряє імпортовані користувачем сертифікати SSL. Перевірте пізніше.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Є деякі сертифікати SSL, імпортовані користувачем, які більше не використовуються з Nextcloud 21. Їх можна імпортувати в командному рядку за допомогою команди «occ security:certificates:import». Їхні шляхи всередині каталогу даних показано нижче.", + "Default phone region" : "Типовий телефонний код регіону", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "У вашому примірнику не налаштовано типовий телефонний регіон. Цей параметр потрібний для підтвердження телефонних номерів у профілі користувача без зазначення коду країни. Щоби дозволити використання телефонних номерів без зазначення коду країни, додайте параметр \"default_phone_region\" із кодом регіону згідно з ISO 3166-1 у вашому файлі конфігурації config.php.", + "Email test" : "Тест ел.пошти", + "Email test was successfully sent" : "Ел.лист було успішно надіслано", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Ви ще не налаштувати або не перевірили налаштування поштового сервера. Перейдіть до \"Основних налаштувань. Після цього перевірте коректність поштових налаштувань, для цього клацніть на кнопку \"Надіслати ел.пошту\" під формою.", + "File locking" : "Блокування файлів", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакційне блокування файлів вимкнено. Це може призвести до потенційних помилок під час одночасної роботи з файлами. Увімкніть параметр \"filelocking.enabled\" у конфігураційному файлі config.php, щоби уникнути цих помилок. ", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "База даних використовується для транзакційного блкування файлів. Для кращої продуктивности рекомендується налаштувати memcache, якщо доступний.", "Internet connectivity" : "З'єднання з мережею Інтернет", "Internet connectivity is disabled in configuration file." : "З'єднання з мережею Інтернет вимкнено у файлі конфігурації", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "На цьому сервері не працює з’єднання з Інтернетом: неможливо отримати доступ до кількох кінцевих точок. Це означає, що деякі функції, як-от підключення зовнішньої пам’яті, сповіщення про оновлення або встановлення програм сторонніх розробників, не працюватимуть. Віддалений доступ до файлів і надсилання сповіщень електронною поштою також можуть не працювати. Встановіть з’єднання цього сервера з Інтернетом, щоб користуватися всіма функціями.", + "Old server-side-encryption" : "Застаріле шифрування на рівні сервера", "Disabled" : "Вимкнено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Старий формат шифрування на стороні сервера ввімкнено. Рекомендуємо вимкнути це.", + "Configured" : "Налаштовано", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Відсутні налаштування кешування пам'яти. Для кращої продуктивности рекомендуємо налаштувати memcache, якщо доступний.", + "PHP default charset" : "Типове кодування сторінки PHP", "PHP configuration option default_charset should be UTF-8" : "Параметр конфігурації PHP default_charset має мати значення UTF-8", "Supported" : "Підтримано", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваш PHP не підтримує FreeType, що призводить до поломки зображень профілю та інтерфейсу налаштувань.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не налаштований правильно для отримання змінних системного оточення. Запит getenv(\"PATH\") повертає пусті результати.", "PHP modules" : "Модулі PHP", + "This instance is missing some required PHP modules. It is required to install them: %s." : "На цьому примірнику бракує окремі обов'язкові модулі PHP, зокрема, необхідно встановити такі: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "На цьому примірнику бракує окремих рекомендованих модулів PHP. Для кращої продуктивности та сумісности наполегливо рекомендуємо встановити такі модулі: %s.", + "PHP version" : "Версія PHP", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "У вас встановлено PHP версії %s. Починаючи з версії Nextcloud 27, PHP 8.0 вже вважається застарілим. Версія Nextcloud 28 може вимагати версію PHP 8.1 та вище. Просимо якнайшвидше оновити версію PHP від PHP Group до офіційно підтримуваної.", "You are currently running PHP %s." : "У вас встановлено PHP %s.", "PHP configuration option output_buffering must be disabled" : "Параметр PHP output_buffering потрібно вимкнути", + "Random generator" : "Ґенератор випадкових чисел", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "Відсутній функціонал ґенерування випадкових чисел, сумісний з PHP. Цей функціонал потрібний для належної безпеки примірника. ", + "Secure" : "Безпека", + "Configuration file access rights" : "Дозволи доступу до конфігураційного файлу", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Увімкнена конфігурація тільки для читання. Це запобігає встановленню деяких опцій через вебінтерфейс. Крім того, для кожного оновлення файл повинен бути зроблений з доступом на запис.", "Nextcloud configuration file is writable" : "Файл конфігурації Nextcloud доступний для запису", + "Database version" : "Версія бази даних", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Використовується версія MariaDB \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MariaDB 10.2 або вище.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Використовується версія MySQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MySQL 8.0 або MariaDB 10.2 або вище.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Використовується версія PostgreSQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують PostgreSQL 9.6 або вище.", + "Unknown database plaform" : "Невідома платформа бази даних", + "Architecture" : "Архітектура", + "64-bit" : "64 біти", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Схоже, що у вас встановлено 32-бітну версію PHP. Правильна робота Nextcloud вимагає 64-бітної версії. Оновіть вашу операційну систему та рушій PHP до 64-бітної версії!", + "Database transaction isolation level" : "Рівень ізолювання транзакцій бази даних", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Ваша база даних не працює з рівнем ізоляції транзакцій \"READ COMMITTED\". Це може спричинити проблеми, коли кілька дій виконуються паралельно.", + "Was not able to get transaction isolation level: %s" : "Не вдалося отримати рівень ізолюування тразакцій: %s", "Profile information" : "Інформація профілю", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Зображення профілю, повне ім’я, електронна адреса, номер телефону, адреса, веб-сайт, Twitter, організація, роль, заголовок, біографія та чи активовано ваш профіль", "Nextcloud settings" : "Налаштування Nextcloud", @@ -359,7 +385,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Для вашого профілю можна встановити певні обмеження з показу інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.", "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}", "Your role" : "Ваша роль", - "Your Twitter handle" : "Ваш профіль у Twitter", "Your website" : "Ваш сайт", "No {property} set" : "{property} не встановлено", "Unable to update {property}" : "Не вдалося оновити {property}", @@ -482,7 +507,6 @@ OC.L10N.register( "Organisation" : "Організація", "Phone number" : "Номер телефону", "Role" : "Роль", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (напр., Mastodon)", "Website" : "Вебсайт", "Profile visibility" : "Видимість профілю", @@ -589,6 +613,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png або jpg, макс. 20 МБ", "Your email address" : "Ваша адреса електронної пошти", "Your location" : "Ваше місце розташування", + "Your Twitter handle" : "Ваш профіль у Twitter", "Add new password" : "Встановити новий пароль", "Add new email address" : "Додати нову адресу електронної пошти", "Edit User" : "Редагувати користувача", @@ -600,6 +625,7 @@ OC.L10N.register( "Default quota:" : "Квота за замовчуванням:", "Show Languages" : "Показати мови", "Send email to new user" : "Надсилати новим користувачам ел.листи", + "Twitter" : "Twitter", "Enable untested app" : "Увімкнути непротестований застосунок", "Plain" : "Звичайний", "NT LAN Manager" : "Менеджер NT LAN", diff --git a/apps/settings/l10n/uk.json b/apps/settings/l10n/uk.json index b31c2c0489e..4a738ff47d9 100644 --- a/apps/settings/l10n/uk.json +++ b/apps/settings/l10n/uk.json @@ -138,28 +138,54 @@ "Reshare" : "Передати у спільний доступ", "Unlimited" : "Необмежено", "Verifying" : "Перевірка", + "Old user imported certificates" : "Старі сертифікати, які було імпортовано користувачами", "A background job is pending that checks for user imported SSL certificates. Please check back later." : "Очікується фонове завдання, яке перевіряє імпортовані користувачем сертифікати SSL. Перевірте пізніше.", "There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Є деякі сертифікати SSL, імпортовані користувачем, які більше не використовуються з Nextcloud 21. Їх можна імпортувати в командному рядку за допомогою команди «occ security:certificates:import». Їхні шляхи всередині каталогу даних показано нижче.", + "Default phone region" : "Типовий телефонний код регіону", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "У вашому примірнику не налаштовано типовий телефонний регіон. Цей параметр потрібний для підтвердження телефонних номерів у профілі користувача без зазначення коду країни. Щоби дозволити використання телефонних номерів без зазначення коду країни, додайте параметр \"default_phone_region\" із кодом регіону згідно з ISO 3166-1 у вашому файлі конфігурації config.php.", + "Email test" : "Тест ел.пошти", + "Email test was successfully sent" : "Ел.лист було успішно надіслано", + "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Ви ще не налаштувати або не перевірили налаштування поштового сервера. Перейдіть до \"Основних налаштувань. Після цього перевірте коректність поштових налаштувань, для цього клацніть на кнопку \"Надіслати ел.пошту\" під формою.", + "File locking" : "Блокування файлів", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакційне блокування файлів вимкнено. Це може призвести до потенційних помилок під час одночасної роботи з файлами. Увімкніть параметр \"filelocking.enabled\" у конфігураційному файлі config.php, щоби уникнути цих помилок. ", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "База даних використовується для транзакційного блкування файлів. Для кращої продуктивности рекомендується налаштувати memcache, якщо доступний.", "Internet connectivity" : "З'єднання з мережею Інтернет", "Internet connectivity is disabled in configuration file." : "З'єднання з мережею Інтернет вимкнено у файлі конфігурації", "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "На цьому сервері не працює з’єднання з Інтернетом: неможливо отримати доступ до кількох кінцевих точок. Це означає, що деякі функції, як-от підключення зовнішньої пам’яті, сповіщення про оновлення або встановлення програм сторонніх розробників, не працюватимуть. Віддалений доступ до файлів і надсилання сповіщень електронною поштою також можуть не працювати. Встановіть з’єднання цього сервера з Інтернетом, щоб користуватися всіма функціями.", + "Old server-side-encryption" : "Застаріле шифрування на рівні сервера", "Disabled" : "Вимкнено", "The old server-side-encryption format is enabled. We recommend disabling this." : "Старий формат шифрування на стороні сервера ввімкнено. Рекомендуємо вимкнути це.", + "Configured" : "Налаштовано", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available." : "Відсутні налаштування кешування пам'яти. Для кращої продуктивности рекомендуємо налаштувати memcache, якщо доступний.", + "PHP default charset" : "Типове кодування сторінки PHP", "PHP configuration option default_charset should be UTF-8" : "Параметр конфігурації PHP default_charset має мати значення UTF-8", "Supported" : "Підтримано", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваш PHP не підтримує FreeType, що призводить до поломки зображень профілю та інтерфейсу налаштувань.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP не налаштований правильно для отримання змінних системного оточення. Запит getenv(\"PATH\") повертає пусті результати.", "PHP modules" : "Модулі PHP", + "This instance is missing some required PHP modules. It is required to install them: %s." : "На цьому примірнику бракує окремі обов'язкові модулі PHP, зокрема, необхідно встановити такі: %s.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "На цьому примірнику бракує окремих рекомендованих модулів PHP. Для кращої продуктивности та сумісности наполегливо рекомендуємо встановити такі модулі: %s.", + "PHP version" : "Версія PHP", "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "У вас встановлено PHP версії %s. Починаючи з версії Nextcloud 27, PHP 8.0 вже вважається застарілим. Версія Nextcloud 28 може вимагати версію PHP 8.1 та вище. Просимо якнайшвидше оновити версію PHP від PHP Group до офіційно підтримуваної.", "You are currently running PHP %s." : "У вас встановлено PHP %s.", "PHP configuration option output_buffering must be disabled" : "Параметр PHP output_buffering потрібно вимкнути", + "Random generator" : "Ґенератор випадкових чисел", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "Відсутній функціонал ґенерування випадкових чисел, сумісний з PHP. Цей функціонал потрібний для належної безпеки примірника. ", + "Secure" : "Безпека", + "Configuration file access rights" : "Дозволи доступу до конфігураційного файлу", "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Увімкнена конфігурація тільки для читання. Це запобігає встановленню деяких опцій через вебінтерфейс. Крім того, для кожного оновлення файл повинен бути зроблений з доступом на запис.", "Nextcloud configuration file is writable" : "Файл конфігурації Nextcloud доступний для запису", + "Database version" : "Версія бази даних", "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Використовується версія MariaDB \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MariaDB 10.2 або вище.", "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Використовується версія MySQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MySQL 8.0 або MariaDB 10.2 або вище.", "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Використовується версія PostgreSQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують PostgreSQL 9.6 або вище.", + "Unknown database plaform" : "Невідома платформа бази даних", + "Architecture" : "Архітектура", + "64-bit" : "64 біти", + "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Схоже, що у вас встановлено 32-бітну версію PHP. Правильна робота Nextcloud вимагає 64-бітної версії. Оновіть вашу операційну систему та рушій PHP до 64-бітної версії!", + "Database transaction isolation level" : "Рівень ізолювання транзакцій бази даних", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Ваша база даних не працює з рівнем ізоляції транзакцій \"READ COMMITTED\". Це може спричинити проблеми, коли кілька дій виконуються паралельно.", + "Was not able to get transaction isolation level: %s" : "Не вдалося отримати рівень ізолюування тразакцій: %s", "Profile information" : "Інформація профілю", "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Зображення профілю, повне ім’я, електронна адреса, номер телефону, адреса, веб-сайт, Twitter, організація, роль, заголовок, біографія та чи активовано ваш профіль", "Nextcloud settings" : "Налаштування Nextcloud", @@ -357,7 +383,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Для вашого профілю можна встановити певні обмеження з показу інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.", "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}", "Your role" : "Ваша роль", - "Your Twitter handle" : "Ваш профіль у Twitter", "Your website" : "Ваш сайт", "No {property} set" : "{property} не встановлено", "Unable to update {property}" : "Не вдалося оновити {property}", @@ -480,7 +505,6 @@ "Organisation" : "Організація", "Phone number" : "Номер телефону", "Role" : "Роль", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse (напр., Mastodon)", "Website" : "Вебсайт", "Profile visibility" : "Видимість профілю", @@ -587,6 +611,7 @@ "png or jpg, max. 20 MB" : "png або jpg, макс. 20 МБ", "Your email address" : "Ваша адреса електронної пошти", "Your location" : "Ваше місце розташування", + "Your Twitter handle" : "Ваш профіль у Twitter", "Add new password" : "Встановити новий пароль", "Add new email address" : "Додати нову адресу електронної пошти", "Edit User" : "Редагувати користувача", @@ -598,6 +623,7 @@ "Default quota:" : "Квота за замовчуванням:", "Show Languages" : "Показати мови", "Send email to new user" : "Надсилати новим користувачам ел.листи", + "Twitter" : "Twitter", "Enable untested app" : "Увімкнути непротестований застосунок", "Plain" : "Звичайний", "NT LAN Manager" : "Менеджер NT LAN", diff --git a/apps/settings/l10n/vi.js b/apps/settings/l10n/vi.js index 5985d7a4adb..148fd9e05a9 100644 --- a/apps/settings/l10n/vi.js +++ b/apps/settings/l10n/vi.js @@ -474,7 +474,6 @@ OC.L10N.register( "Organisation" : "Tổ chức", "Phone number" : "Số điện thoại", "Role" : "Vai trò", - "Twitter" : "Twitter", "Website" : "Website", "Profile visibility" : "Tấm nhìn hồ sơ", "Locale" : "Ngôn ngữ", @@ -577,6 +576,7 @@ OC.L10N.register( "Default quota:" : "Hạn ngạch mặc định:", "Show Languages" : "Hiển thị ngôn ngữ", "Send email to new user" : "Gửi email cho người dùng mới", + "Twitter" : "Twitter", "Enable untested app" : "Bật ứng dụng chưa được kiểm tra", "Plain" : "Đơn giản", "Authentication method" : "Phương thức xác thực", diff --git a/apps/settings/l10n/vi.json b/apps/settings/l10n/vi.json index 6e328a863b6..fd302e04f2c 100644 --- a/apps/settings/l10n/vi.json +++ b/apps/settings/l10n/vi.json @@ -472,7 +472,6 @@ "Organisation" : "Tổ chức", "Phone number" : "Số điện thoại", "Role" : "Vai trò", - "Twitter" : "Twitter", "Website" : "Website", "Profile visibility" : "Tấm nhìn hồ sơ", "Locale" : "Ngôn ngữ", @@ -575,6 +574,7 @@ "Default quota:" : "Hạn ngạch mặc định:", "Show Languages" : "Hiển thị ngôn ngữ", "Send email to new user" : "Gửi email cho người dùng mới", + "Twitter" : "Twitter", "Enable untested app" : "Bật ứng dụng chưa được kiểm tra", "Plain" : "Đơn giản", "Authentication method" : "Phương thức xác thực", diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js index bee6235e416..4d28e6a9e6e 100644 --- a/apps/settings/l10n/zh_CN.js +++ b/apps/settings/l10n/zh_CN.js @@ -357,7 +357,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "系统将遵循个人资料的 “可见性” 和 “范围” 设置中限制更严格那个。例如,当 “可见性” 设置为 “显示给所有人”,而 “范围” 设置为 “私密” 时,系统将按照 “私密” 来设置您个人资料", "Unable to update visibility of {displayId}" : "无法更新 {displayId} 的可见性", "Your role" : "您的角色", - "Your Twitter handle" : "您的 Twitter 账号", "Your website" : "您的网站", "No {property} set" : "没有设置 {property}", "Unable to update {property}" : "无法更新 {property}", @@ -480,7 +479,6 @@ OC.L10N.register( "Organisation" : "组织", "Phone number" : "电话号码", "Role" : "角色", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "联邦宇宙(例如 Mastodon)", "Website" : "网站", "Profile visibility" : "个人资料可见性", @@ -587,6 +585,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png 或 jpg 格式,最大 20MB", "Your email address" : "您的电子邮件", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 账号", "Add new password" : "添加新的密码", "Add new email address" : "添加新的电子邮件地址", "Edit User" : "编辑用户", @@ -598,6 +597,7 @@ OC.L10N.register( "Default quota:" : "默认配额:", "Show Languages" : "显示语言", "Send email to new user" : "发送电子邮件给新用户", + "Twitter" : "Twitter", "Enable untested app" : "启用未经测试的应用", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理器", diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json index e87b2957ce4..7fc39fd825b 100644 --- a/apps/settings/l10n/zh_CN.json +++ b/apps/settings/l10n/zh_CN.json @@ -355,7 +355,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "系统将遵循个人资料的 “可见性” 和 “范围” 设置中限制更严格那个。例如,当 “可见性” 设置为 “显示给所有人”,而 “范围” 设置为 “私密” 时,系统将按照 “私密” 来设置您个人资料", "Unable to update visibility of {displayId}" : "无法更新 {displayId} 的可见性", "Your role" : "您的角色", - "Your Twitter handle" : "您的 Twitter 账号", "Your website" : "您的网站", "No {property} set" : "没有设置 {property}", "Unable to update {property}" : "无法更新 {property}", @@ -478,7 +477,6 @@ "Organisation" : "组织", "Phone number" : "电话号码", "Role" : "角色", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "联邦宇宙(例如 Mastodon)", "Website" : "网站", "Profile visibility" : "个人资料可见性", @@ -585,6 +583,7 @@ "png or jpg, max. 20 MB" : "png 或 jpg 格式,最大 20MB", "Your email address" : "您的电子邮件", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 账号", "Add new password" : "添加新的密码", "Add new email address" : "添加新的电子邮件地址", "Edit User" : "编辑用户", @@ -596,6 +595,7 @@ "Default quota:" : "默认配额:", "Show Languages" : "显示语言", "Send email to new user" : "发送电子邮件给新用户", + "Twitter" : "Twitter", "Enable untested app" : "启用未经测试的应用", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理器", diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js index ca25026277a..1409e02ec13 100644 --- a/apps/settings/l10n/zh_HK.js +++ b/apps/settings/l10n/zh_HK.js @@ -360,7 +360,6 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。", "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的可見性", "Your role" : "你的角色", - "Your Twitter handle" : "您的 Twitter 帳號", "Your website" : "您的網站", "No {property} set" : "沒有設置 {property} ", "Unable to update {property}" : "無法更新 (property)", @@ -483,7 +482,6 @@ OC.L10N.register( "Organisation" : "機構", "Phone number" : "電話號碼", "Role" : "角色", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse(如 Mastodon)", "Website" : "網站", "Profile visibility" : "個人檔案能見度", @@ -590,6 +588,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png 或 jpg,最大 20 MB", "Your email address" : "您的電郵地址", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 帳號", "Add new password" : "新增密碼", "Add new email address" : "新增電郵地址", "Edit User" : "編輯用戶", @@ -601,6 +600,7 @@ OC.L10N.register( "Default quota:" : "預設容量限制:", "Show Languages" : "顯示語言", "Send email to new user" : "傳送電子郵件給新用戶", + "Twitter" : "Twitter", "Enable untested app" : "啟用未經測試的應用程式", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理程式", diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json index e9185919017..a8b7c5f9f59 100644 --- a/apps/settings/l10n/zh_HK.json +++ b/apps/settings/l10n/zh_HK.json @@ -358,7 +358,6 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。", "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的可見性", "Your role" : "你的角色", - "Your Twitter handle" : "您的 Twitter 帳號", "Your website" : "您的網站", "No {property} set" : "沒有設置 {property} ", "Unable to update {property}" : "無法更新 (property)", @@ -481,7 +480,6 @@ "Organisation" : "機構", "Phone number" : "電話號碼", "Role" : "角色", - "Twitter" : "Twitter", "Fediverse (e.g. Mastodon)" : "Fediverse(如 Mastodon)", "Website" : "網站", "Profile visibility" : "個人檔案能見度", @@ -588,6 +586,7 @@ "png or jpg, max. 20 MB" : "png 或 jpg,最大 20 MB", "Your email address" : "您的電郵地址", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 帳號", "Add new password" : "新增密碼", "Add new email address" : "新增電郵地址", "Edit User" : "編輯用戶", @@ -599,6 +598,7 @@ "Default quota:" : "預設容量限制:", "Show Languages" : "顯示語言", "Send email to new user" : "傳送電子郵件給新用戶", + "Twitter" : "Twitter", "Enable untested app" : "啟用未經測試的應用程式", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理程式", diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js index 0b58a8f5ecf..8574b203d8c 100644 --- a/apps/settings/l10n/zh_TW.js +++ b/apps/settings/l10n/zh_TW.js @@ -167,6 +167,8 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 設定似乎不完整,導致無法正確取得系統環境變數,因為偵測到 getenv(\"PATH\") 回傳資料為空值", + "PHP memory limit" : "PHP 記憶體限制", + "The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。", "PHP modules" : "PHP 模組", "This instance is missing some required PHP modules. It is required to install them: %s." : "此站台缺少一些必要的 PHP 模組。必須安裝這些模組:%s。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "此站台缺少一些建議的 PHP 模組。為了改善效能與相容性,強烈建立您安裝這些模組:%s。", @@ -389,7 +391,7 @@ OC.L10N.register( "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。", "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的能見度", "Your role" : "您的角色", - "Your Twitter handle" : "您的 Twitter 帳號", + "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號", "Your website" : "您的網站", "No {property} set" : "未設定 {property}", "Unable to update {property}" : "無法更新 {property}", @@ -512,7 +514,7 @@ OC.L10N.register( "Organisation" : "組織", "Phone number" : "電話號碼", "Role" : "角色", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X(前身為 Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse(例如 Mastodon)", "Website" : "網站", "Profile visibility" : "個人資料能見度", @@ -619,6 +621,7 @@ OC.L10N.register( "png or jpg, max. 20 MB" : "png 或 jpg,最大 20 MB", "Your email address" : "您的電子郵件信箱", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 帳號", "Add new password" : "新增密碼", "Add new email address" : "新增電子郵件", "Edit User" : "編輯使用者", @@ -630,6 +633,7 @@ OC.L10N.register( "Default quota:" : "預設容量限制:", "Show Languages" : "顯示語言", "Send email to new user" : "傳送電子郵件給新使用者", + "Twitter" : "Twitter", "Enable untested app" : "啟用未經測試的應用程式", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理程式", diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json index 0024857b712..731d0f6302a 100644 --- a/apps/settings/l10n/zh_TW.json +++ b/apps/settings/l10n/zh_TW.json @@ -165,6 +165,8 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "PHP getenv" : "PHP getenv", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 設定似乎不完整,導致無法正確取得系統環境變數,因為偵測到 getenv(\"PATH\") 回傳資料為空值", + "PHP memory limit" : "PHP 記憶體限制", + "The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。", "PHP modules" : "PHP 模組", "This instance is missing some required PHP modules. It is required to install them: %s." : "此站台缺少一些必要的 PHP 模組。必須安裝這些模組:%s。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: %s." : "此站台缺少一些建議的 PHP 模組。為了改善效能與相容性,強烈建立您安裝這些模組:%s。", @@ -387,7 +389,7 @@ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。", "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的能見度", "Your role" : "您的角色", - "Your Twitter handle" : "您的 Twitter 帳號", + "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號", "Your website" : "您的網站", "No {property} set" : "未設定 {property}", "Unable to update {property}" : "無法更新 {property}", @@ -510,7 +512,7 @@ "Organisation" : "組織", "Phone number" : "電話號碼", "Role" : "角色", - "Twitter" : "Twitter", + "X (formerly Twitter)" : "X(前身為 Twitter)", "Fediverse (e.g. Mastodon)" : "Fediverse(例如 Mastodon)", "Website" : "網站", "Profile visibility" : "個人資料能見度", @@ -617,6 +619,7 @@ "png or jpg, max. 20 MB" : "png 或 jpg,最大 20 MB", "Your email address" : "您的電子郵件信箱", "Your location" : "您的位置", + "Your Twitter handle" : "您的 Twitter 帳號", "Add new password" : "新增密碼", "Add new email address" : "新增電子郵件", "Edit User" : "編輯使用者", @@ -628,6 +631,7 @@ "Default quota:" : "預設容量限制:", "Show Languages" : "顯示語言", "Send email to new user" : "傳送電子郵件給新使用者", + "Twitter" : "Twitter", "Enable untested app" : "啟用未經測試的應用程式", "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理程式", diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js index 045ac15083e..223a5e3ed24 100644 --- a/apps/theming/l10n/de.js +++ b/apps/theming/l10n/de.js @@ -12,6 +12,9 @@ OC.L10N.register( "The given color is invalid" : "Die gewählte Farbe ist ungültig", "Disable-user-theming should be true or false" : "Benutzer-Design deaktivieren sollte wahr oder falsch sein", "Saved" : "Gespeichert", + "Invalid app given" : "Ungültige App angegeben", + "Invalid type for setting \"defaultApp\" given" : "Ungültiger Typ für die Einstellung \"Standard-App“ angegeben", + "Invalid setting key" : "Falscher Konfigurationsschlüssel", "The file was uploaded" : "Die Datei wurde hochgeladen", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", @@ -76,6 +79,7 @@ OC.L10N.register( "Disable all keyboard shortcuts" : "Alle Tastenkombinationen deaktivieren", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Der unbeschränkte Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Wenn du Fehler findest, melde sie bitte im {issuetracker}Problemverfolgungssystem{linkend}. Und wenn du mithelfen willst, tritt dem {designteam}Designteam{linkend} bei!", + "Current selected app: {app}, position {position} of {total}" : "Aktuell ausgewählte App: {app}, Position {position} von {total}", "Move up" : "Nach oben verschieben", "Move down" : "Nach unten verschieben", "Custom background" : "Benutzerdefinierter Hintergrund", @@ -83,7 +87,24 @@ OC.L10N.register( "Change color" : "Farbe ändern", "No background" : "Kein Hintergrund", "Select a background from your files" : "Wähle einen Hintergrund aus deinen Dateien", + "Select background" : "Hintergrund wählen", + "No background has been selected" : "Es wurde kein Hintergrund ausgewählt.", "Theme selection is enforced" : "Designauswahl wird erzwungen", + "Navigation bar settings" : "Einstellungen der Navigationsleiste", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Du kannst die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.", + "The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie vom Administrator konfiguriert wurde.", + "The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, musst du die Seite neu laden.", + "Reset default app order" : "Standard App-Reihenfolge zurücksetzen", + "Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden.", + "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden.", + "Default app" : "Standard-App", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "Die Standard-App ist die App, die z. B. nach der Anmeldung oder nach Klicken auf das Logo im Menü geöffnet wird.", + "Use custom default app" : "Benutzerdefinierte Standard-App verwenden", + "Global default app" : "Globale Standard-App", + "Global default apps" : "Globale Standard-Apps", + "Default app priority" : "Standard-App-Priorität", + "If an app is not enabled for a user, the next app with lower priority is used." : "Wenn eine App für einen Benutzer nicht aktiviert ist, wird die nächste App mit niedrigerer Priorität verwendet.", + "Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden.", "Select a custom color" : "Eine benutzerdefinierte Farbe auswählen", "Reset to default" : " Auf Standard zurücksetzen ", "Upload" : "Hochladen", diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json index 4fd0b58d0cd..c2204000fbc 100644 --- a/apps/theming/l10n/de.json +++ b/apps/theming/l10n/de.json @@ -10,6 +10,9 @@ "The given color is invalid" : "Die gewählte Farbe ist ungültig", "Disable-user-theming should be true or false" : "Benutzer-Design deaktivieren sollte wahr oder falsch sein", "Saved" : "Gespeichert", + "Invalid app given" : "Ungültige App angegeben", + "Invalid type for setting \"defaultApp\" given" : "Ungültiger Typ für die Einstellung \"Standard-App“ angegeben", + "Invalid setting key" : "Falscher Konfigurationsschlüssel", "The file was uploaded" : "Die Datei wurde hochgeladen", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", @@ -74,6 +77,7 @@ "Disable all keyboard shortcuts" : "Alle Tastenkombinationen deaktivieren", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Der unbeschränkte Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Wenn du Fehler findest, melde sie bitte im {issuetracker}Problemverfolgungssystem{linkend}. Und wenn du mithelfen willst, tritt dem {designteam}Designteam{linkend} bei!", + "Current selected app: {app}, position {position} of {total}" : "Aktuell ausgewählte App: {app}, Position {position} von {total}", "Move up" : "Nach oben verschieben", "Move down" : "Nach unten verschieben", "Custom background" : "Benutzerdefinierter Hintergrund", @@ -81,7 +85,24 @@ "Change color" : "Farbe ändern", "No background" : "Kein Hintergrund", "Select a background from your files" : "Wähle einen Hintergrund aus deinen Dateien", + "Select background" : "Hintergrund wählen", + "No background has been selected" : "Es wurde kein Hintergrund ausgewählt.", "Theme selection is enforced" : "Designauswahl wird erzwungen", + "Navigation bar settings" : "Einstellungen der Navigationsleiste", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Du kannst die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.", + "The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie vom Administrator konfiguriert wurde.", + "The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, musst du die Seite neu laden.", + "Reset default app order" : "Standard App-Reihenfolge zurücksetzen", + "Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden.", + "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden.", + "Default app" : "Standard-App", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "Die Standard-App ist die App, die z. B. nach der Anmeldung oder nach Klicken auf das Logo im Menü geöffnet wird.", + "Use custom default app" : "Benutzerdefinierte Standard-App verwenden", + "Global default app" : "Globale Standard-App", + "Global default apps" : "Globale Standard-Apps", + "Default app priority" : "Standard-App-Priorität", + "If an app is not enabled for a user, the next app with lower priority is used." : "Wenn eine App für einen Benutzer nicht aktiviert ist, wird die nächste App mit niedrigerer Priorität verwendet.", + "Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden.", "Select a custom color" : "Eine benutzerdefinierte Farbe auswählen", "Reset to default" : " Auf Standard zurücksetzen ", "Upload" : "Hochladen", diff --git a/apps/theming/l10n/gl.js b/apps/theming/l10n/gl.js index 6369b631d7a..62b197db562 100644 --- a/apps/theming/l10n/gl.js +++ b/apps/theming/l10n/gl.js @@ -12,6 +12,9 @@ OC.L10N.register( "The given color is invalid" : "A cor indicada é incorrecta", "Disable-user-theming should be true or false" : "Disable-user-theming (desactivar o tema do usuario) debe ser verdadeiro ou falso", "Saved" : "Gardado", + "Invalid app given" : "A aplicación non é válida", + "Invalid type for setting \"defaultApp\" given" : "O tipo non é válido para o axuste «defaultApp».", + "Invalid setting key" : "Chave de axuste incorrecta", "The file was uploaded" : "O ficheiro foi enviado", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", @@ -76,6 +79,7 @@ OC.L10N.register( "Disable all keyboard shortcuts" : "Desactivar todos os atallos de teclado", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Para nós o acceso universal é moi importante. Seguimos os estándares web e comprobamos que todo poida ser utilizado sen rato e software de axuda como os lectores de pantalla. O noso obxectivo é ter cumprir ás {guidelines}Directrices de accesibilidade ao contido web{linkend} 2.1 a nivel AA, co tema de alto contraste incluso a nivel AAA.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se atopa algúnha incidencia, non dubide en informalo no {issuetracker}noso seguidor de incidencias{linkend} E se quere involucrarse, únase ao {designteam}noso equipo de deseño {linkend}!", + "Current selected app: {app}, position {position} of {total}" : "Aplicación seleccionada actual: {app}, posición {position} de {total}", "Move up" : "Mover cara arriba", "Move down" : "Mover cara abaixo", "Custom background" : "Fondo personalizado", @@ -86,7 +90,21 @@ OC.L10N.register( "Select background" : "Seleccione o fondo", "No background has been selected" : "Non foi seleccionado ningún fondo", "Theme selection is enforced" : "Imponse a selección de temas", + "Navigation bar settings" : "Axustes da barra de navegación", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Pode configurar a orde das aplicacións utilizadas na barra de navegación. A primeira entrada será a aplicación predeterminada, abriráse tras de acceder ou ao premer no logotipo.", + "The default app can not be changed because it was configured by the administrator." : "A aplicación predeterminada non se pode cambiar porque foi configurada pola administración.", + "The app order was changed, to see it in action you have to reload the page." : "Cambiouse a orde das aplicacións, para vela en acción ten que cargar de novo a páxina.", + "Reset default app order" : "Restablecer a orde predeterminada das aplicacións", + "Could not set the app order" : "Non foi posíbel estabelecer a orde das aplicacións", + "Could not reset the app order" : "Non foi posíbel restabelecer a orde das aplicacións", "Default app" : "Aplicación predeterminada", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "A aplicación predeterminada é a aplicación que se abre p. ex. após acceder ou cando se preme no logotipo do menú.", + "Use custom default app" : "Usar a aplicación predeterminada personalizada", + "Global default app" : "Aplicación predeterminada global", + "Global default apps" : "Aplicacións predeterminadas globais", + "Default app priority" : "Prioridade predeterminada da aplicación", + "If an app is not enabled for a user, the next app with lower priority is used." : "Se unha aplicación non está activada para un usuario, utilízase a seguinte aplicación con menor prioridade.", + "Could not set global default apps" : "Non foi posíbel estabelecer as aplicacións predeterminadas globais", "Select a custom color" : "Seleccione unha cor personalizada", "Reset to default" : "Restabelecer os valores predeterminados", "Upload" : "Enviar", diff --git a/apps/theming/l10n/gl.json b/apps/theming/l10n/gl.json index f7e1533e9e1..b8abd197b2c 100644 --- a/apps/theming/l10n/gl.json +++ b/apps/theming/l10n/gl.json @@ -10,6 +10,9 @@ "The given color is invalid" : "A cor indicada é incorrecta", "Disable-user-theming should be true or false" : "Disable-user-theming (desactivar o tema do usuario) debe ser verdadeiro ou falso", "Saved" : "Gardado", + "Invalid app given" : "A aplicación non é válida", + "Invalid type for setting \"defaultApp\" given" : "O tipo non é válido para o axuste «defaultApp».", + "Invalid setting key" : "Chave de axuste incorrecta", "The file was uploaded" : "O ficheiro foi enviado", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", @@ -74,6 +77,7 @@ "Disable all keyboard shortcuts" : "Desactivar todos os atallos de teclado", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Para nós o acceso universal é moi importante. Seguimos os estándares web e comprobamos que todo poida ser utilizado sen rato e software de axuda como os lectores de pantalla. O noso obxectivo é ter cumprir ás {guidelines}Directrices de accesibilidade ao contido web{linkend} 2.1 a nivel AA, co tema de alto contraste incluso a nivel AAA.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se atopa algúnha incidencia, non dubide en informalo no {issuetracker}noso seguidor de incidencias{linkend} E se quere involucrarse, únase ao {designteam}noso equipo de deseño {linkend}!", + "Current selected app: {app}, position {position} of {total}" : "Aplicación seleccionada actual: {app}, posición {position} de {total}", "Move up" : "Mover cara arriba", "Move down" : "Mover cara abaixo", "Custom background" : "Fondo personalizado", @@ -84,7 +88,21 @@ "Select background" : "Seleccione o fondo", "No background has been selected" : "Non foi seleccionado ningún fondo", "Theme selection is enforced" : "Imponse a selección de temas", + "Navigation bar settings" : "Axustes da barra de navegación", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Pode configurar a orde das aplicacións utilizadas na barra de navegación. A primeira entrada será a aplicación predeterminada, abriráse tras de acceder ou ao premer no logotipo.", + "The default app can not be changed because it was configured by the administrator." : "A aplicación predeterminada non se pode cambiar porque foi configurada pola administración.", + "The app order was changed, to see it in action you have to reload the page." : "Cambiouse a orde das aplicacións, para vela en acción ten que cargar de novo a páxina.", + "Reset default app order" : "Restablecer a orde predeterminada das aplicacións", + "Could not set the app order" : "Non foi posíbel estabelecer a orde das aplicacións", + "Could not reset the app order" : "Non foi posíbel restabelecer a orde das aplicacións", "Default app" : "Aplicación predeterminada", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "A aplicación predeterminada é a aplicación que se abre p. ex. após acceder ou cando se preme no logotipo do menú.", + "Use custom default app" : "Usar a aplicación predeterminada personalizada", + "Global default app" : "Aplicación predeterminada global", + "Global default apps" : "Aplicacións predeterminadas globais", + "Default app priority" : "Prioridade predeterminada da aplicación", + "If an app is not enabled for a user, the next app with lower priority is used." : "Se unha aplicación non está activada para un usuario, utilízase a seguinte aplicación con menor prioridade.", + "Could not set global default apps" : "Non foi posíbel estabelecer as aplicacións predeterminadas globais", "Select a custom color" : "Seleccione unha cor personalizada", "Reset to default" : "Restabelecer os valores predeterminados", "Upload" : "Enviar", diff --git a/apps/theming/l10n/uk.js b/apps/theming/l10n/uk.js index c4261285eb8..4db723245bb 100644 --- a/apps/theming/l10n/uk.js +++ b/apps/theming/l10n/uk.js @@ -79,6 +79,7 @@ OC.L10N.register( "Disable all keyboard shortcuts" : "Вимкнути всі комбінації клавіш", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Для нас дуже важливо забезпечити доступ для всіх. Ми дотримуємось сучасних стандартів розробки у вебі, намагаємося забезпечити зручність користування без комп'ютерної миші, а також за допомогую допоміжного програмного забезпечення, наприклад, програми зчитування з екрана. Ми прагнемо відповідати {guidelines} Правилам доступу до вмісту у мережі {linkend} 2.1 на рівні AA, а з темою високої контрастності навіть на рівні AAA.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Якщо ви виявите будь-які проблеми, не соромтеся повідомити про них на {issuetracker}нашій системі відстеження проблем{linkend}. І якщо ви хочете взяти участь, приєднуйтесь до {designteam}нашої команди дизайнерів{linkend}!", + "Current selected app: {app}, position {position} of {total}" : "Вибрано застосунок: {app}, позиція {position} із {total}.", "Move up" : "Пересунуту догори", "Move down" : "Пересунути вниз", "Custom background" : "Користувацьке тло", diff --git a/apps/theming/l10n/uk.json b/apps/theming/l10n/uk.json index ff8f4ebe883..7e26afa91ec 100644 --- a/apps/theming/l10n/uk.json +++ b/apps/theming/l10n/uk.json @@ -77,6 +77,7 @@ "Disable all keyboard shortcuts" : "Вимкнути всі комбінації клавіш", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Для нас дуже важливо забезпечити доступ для всіх. Ми дотримуємось сучасних стандартів розробки у вебі, намагаємося забезпечити зручність користування без комп'ютерної миші, а також за допомогую допоміжного програмного забезпечення, наприклад, програми зчитування з екрана. Ми прагнемо відповідати {guidelines} Правилам доступу до вмісту у мережі {linkend} 2.1 на рівні AA, а з темою високої контрастності навіть на рівні AAA.", "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Якщо ви виявите будь-які проблеми, не соромтеся повідомити про них на {issuetracker}нашій системі відстеження проблем{linkend}. І якщо ви хочете взяти участь, приєднуйтесь до {designteam}нашої команди дизайнерів{linkend}!", + "Current selected app: {app}, position {position} of {total}" : "Вибрано застосунок: {app}, позиція {position} із {total}.", "Move up" : "Пересунуту догори", "Move down" : "Пересунути вниз", "Custom background" : "Користувацьке тло", diff --git a/apps/updatenotification/l10n/ja.js b/apps/updatenotification/l10n/ja.js index 48279476ad7..ee06f570102 100644 --- a/apps/updatenotification/l10n/ja.js +++ b/apps/updatenotification/l10n/ja.js @@ -8,6 +8,7 @@ OC.L10N.register( "The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。", "Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。", "Update to %1$s is available." : "%1$s への更新が利用可能です。", + "Update to {serverAndVersion} is available." : "{serverAndVersion} へのアップデートが利用可能です。", "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。", "Update notification" : "アップデート通知", "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloudの更新通知を表示し、アップデータのSSOを提供します。", @@ -25,8 +26,12 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "アップデートチェックが完了していません。ページを更新してください。", "Your version is up to date." : "最新版です。", "A non-default update server is in use to be checked for updates:" : "更新のチェックにデフォルト以外の更新サーバーが利用されています:", + "Update channel" : "アップデートチャネル", + "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "アップデートチャネルを変更すると、アプリの管理ページにも影響が及びます。例えば、ベータチャネルに切り替えると、アプリ管理ページでベータ版のアップデートが提供されるようになります。", + "Current update channel:" : "現在のアップデートチャネル:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "いつでも新しいバージョンにアップデートすることができます。 ただし、下位の安定したバージョンにダウングレードすることはできません", "Notify members of the following groups about available updates:" : "次のグループのメンバーに利用可能なアップデートを通知する:", + "No groups" : "グループなし", "Only notifications for app updates are available." : "アプリのアップデートの通知のみが可能です。", "The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。", "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。", diff --git a/apps/updatenotification/l10n/ja.json b/apps/updatenotification/l10n/ja.json index 3dca6356558..f6cf5530061 100644 --- a/apps/updatenotification/l10n/ja.json +++ b/apps/updatenotification/l10n/ja.json @@ -6,6 +6,7 @@ "The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。", "Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。", "Update to %1$s is available." : "%1$s への更新が利用可能です。", + "Update to {serverAndVersion} is available." : "{serverAndVersion} へのアップデートが利用可能です。", "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。", "Update notification" : "アップデート通知", "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloudの更新通知を表示し、アップデータのSSOを提供します。", @@ -23,8 +24,12 @@ "The update check is not yet finished. Please refresh the page." : "アップデートチェックが完了していません。ページを更新してください。", "Your version is up to date." : "最新版です。", "A non-default update server is in use to be checked for updates:" : "更新のチェックにデフォルト以外の更新サーバーが利用されています:", + "Update channel" : "アップデートチャネル", + "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "アップデートチャネルを変更すると、アプリの管理ページにも影響が及びます。例えば、ベータチャネルに切り替えると、アプリ管理ページでベータ版のアップデートが提供されるようになります。", + "Current update channel:" : "現在のアップデートチャネル:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "いつでも新しいバージョンにアップデートすることができます。 ただし、下位の安定したバージョンにダウングレードすることはできません", "Notify members of the following groups about available updates:" : "次のグループのメンバーに利用可能なアップデートを通知する:", + "No groups" : "グループなし", "Only notifications for app updates are available." : "アプリのアップデートの通知のみが可能です。", "The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。", "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。", diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js index 7d803df0495..b289956342c 100644 --- a/apps/user_ldap/l10n/cs.js +++ b/apps/user_ldap/l10n/cs.js @@ -25,22 +25,22 @@ OC.L10N.register( "Configuration incomplete" : "Nastavení není dokončené", "Configuration OK" : "Nastavení v pořádku", "Select groups" : "Vyberte skupiny", - "Select object classes" : "Vyberte objektové třídy", + "Select object classes" : "Vyberte třídy objektů", "Please check the credentials, they seem to be wrong." : "Ověřte své přihlašovací údaje, zdají se být neplatné.", "Please specify the port, it could not be auto-detected." : "Zadejte port, nepodařilo se ho zjistit automaticky.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nelze automaticky detekovat, ověřte prosím přihlašovací údaje, host a port.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Základ DN se nepodařilo automaticky zjistit – ověřte zadání přihlašovacích údajů, hostitele a portu.", "Could not detect Base DN, please enter it manually." : "Nedaří se automaticky zjistit Base DN – zadejte ho ručně.", "{nthServer}. Server" : "{nthServer}. Server", - "No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.", + "No object found in the given Base DN. Please revise." : "V zadaném základu DN nebyl objekt nalezen. Ověřte to.", "More than 1,000 directory entries available." : "Je dostupných více než 1000 položek adresáře kontaktů.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} položka k dispozici v rámci poskytnuté Base DN","{objectsFound} položky k dispozici v rámci poskytnuté Base DN","{objectsFound} položek k dispozici v rámci poskytnuté Base DN","{objectsFound} položky k dispozici v rámci poskytnuté Base DN"], - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověřte základ DN, stejně tak nastavení připojení a přihlašovací údaje.", "Do you really want to delete the current Server Configuration?" : "Opravdu chcete stávající nastavení pro server smazat?", "Confirm Deletion" : "Potvrdit smazání", "Mappings cleared successfully!" : "Mapování úspěšně vyčištěna!", "Error while clearing the mappings." : "Chyba při čištění mapování.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymní bind není povolen. Zadejte User DN a Heslo.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní bind nejspíše není povolen.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní navázání (bind) nejspíše není povoleno.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání se nezdařilo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Přepnutí režimu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?", "Mode switch" : "Přepnutí režimu", @@ -49,7 +49,7 @@ OC.L10N.register( "User found and settings verified." : "Uživatel nalezen a nastavení ověřena.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Zvažte zúžení vyhledávání, protože to stávající zahrnuje mnoho uživatelů, ze kterých se bude schopen přihlásit pouze první.", "An unspecified error occurred. Please check log and settings." : "Došlo k nespecifikované chybě. Zkontrolujte nastavení a soubor se záznamem událostí.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání není platný, pravděpodobně z důvodu chybné syntaxe, jako třeba neuzavřené závorky. Ověřte to.", "A connection error to LDAP/AD occurred. Please check host, port and credentials." : "Došlo k chybě připojení k LDAP/AD, zkontrolujte prosím host, port a přihlašovací údaje.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Zástupný symbol „%uid“ chybí. Při dotatzu na LDAP/AD bude nahrazen přihlašovacím jménem.", "Please provide a login name to test against" : "Zadejte přihlašovací jméno, vůči kterému vyzkoušet", @@ -61,13 +61,15 @@ OC.L10N.register( "Your password will expire today." : "Platnost hesla dnes končí.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Platnost hesla skončí za %n den.","Platnost hesla skončí za %n dny.","Platnost hesla skončí za %n dnů.","Platnost hesla skončí za %n dny."], "LDAP/AD integration" : "Napojení na LDAP/AD", + "Invalid LDAP UUIDs" : "Neplatné LDAP UUID identif.", + "None found" : "Žádné nenalezeno", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Nalezeny neplatné UUID identifikátory uživatelů nebo skupin. Zkontrolujte svá nastavení „Přebít zjišťování UUID identifikátorů“ v části pro odborníky nastavení pro LDAP a identifikátory pak zaktualizujte příkazem „ldap:update-uuid“.", "_%n group found_::_%n groups found_" : ["nalezena %n skupina","nalezeny %n skupiny","nalezeno %n skupin","nalezeny %n skupiny"], "> 1000 groups found" : "nalezeno více než 1 000 skupin", "> 1000 users found" : "nalezeno více než 1 000 uživatelů", "_%n user found_::_%n users found_" : ["nalezen %n uživatel","nalezeni %n uživatelé","nalezeno %n uživatelů","nalezeni %n uživatelé"], "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nedaří se zjistit atribut pro zobrazení jména uživatele. Upřesněte ho sami v rozšířeném nastavení LDAP.", - "Could not find the desired feature" : "Nelze nalézt požadovanou vlastnost", + "Could not find the desired feature" : "Požadovanou vlastnost se nepodařilo nalézt", "Invalid Host" : "Neplatný hostitel", "LDAP user and group backend" : "Podpůrná vrstva pro uživatele a skupiny z LDAP", "This application enables administrators to connect Nextcloud to an LDAP-based user directory." : "Tato aplikace umožňuje správcům připojit Nextcloud na adresář uživatelů založený na LDAP.", @@ -84,7 +86,7 @@ OC.L10N.register( "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", - "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", + "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, bude %s hledat uživatele na základě následujících atributů:", "LDAP/AD Username:" : "LDAP/AD uživatelské jméno:", "Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Umožňuje přihlašování pomocí LDAP/AD uživatelského jména, což je buď „uid“ nebo „sAMAccountName“ a bude zjištěno.", "LDAP/AD Email Address:" : "E-mailová adresa z LDAP/AD:", @@ -103,19 +105,19 @@ OC.L10N.register( "Port" : "Port", "Detect Port" : "Zjistit port", "User DN" : "Uživatelské DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému má být vytvořena vazba, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.", "Password" : "Heslo", "For anonymous access, leave DN and Password empty." : "Pro anonymní přístup ponechte údaje DN and heslo prázdné.", "Save Credentials" : "Uložit přihlašovací údaje", "One Base DN per line" : "Každé základní DN na samostatném řádku", - "You can specify Base DN for users and groups in the Advanced tab" : "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny", + "You can specify Base DN for users and groups in the Advanced tab" : "Základ DN pro uživatele a skupiny je možné zadat v panelu Pokročilé", "Detect Base DN" : "Zjistitit Base DN", - "Test Base DN" : "Test Base DN", + "Test Base DN" : "Vyzkoušet základ DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zabraňuje automatickým LDAP požadavkům. Výhodné pro velká nasazení, ale vyžaduje znalosti o LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Ručně vložit LDAP filtry (doporučeno pro obsáhlé adresáře kontaktů)", "Listing and searching for users is constrained by these criteria:" : "Získávání a vyhledávání uživatelů je omezeno následujícími kritérii:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Nejčastější třídy objektů pro uživatele jsou organizationalPerson, person, user a inetOrgPerson. Pokud si nejste jisti které třídy objektů zvolit, obraťte se na správce svého adresáře kontaktů.", - "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", + "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé z LDAP mají mít přístup k instanci %s.", "Verify settings and count users" : "Ověřit nastavení a spočítat uživatele", "Saving" : "Ukládá se", "Back" : "Zpět", @@ -134,7 +136,7 @@ OC.L10N.register( "Groups" : "Skupiny", "Expert" : "Expertní", "Advanced" : "Pokročilé", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte prosím správce systému, aby jej nainstaloval.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte správce systému, aby ho nainstaloval.", "Connection Settings" : "Nastavení spojení", "Configuration Active" : "Nastavení aktivní", "When unchecked, this configuration will be skipped." : "Pokud není zaškrtnuto, bude toto nastavení přeskočeno.", @@ -144,8 +146,8 @@ OC.L10N.register( "Disable Main Server" : "Zakázat hlavní server", "Only connect to the replica server." : "Připojit jen k záložnímu serveru.", "Turn off SSL certificate validation." : "Vypnout ověřování SSL certifikátu.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nedoporučuje se, určeno pouze k testovacímu použití. Pokud spojení funguje jen s touto volbou, importujte SSL certifikát vašeho LDAP serveru na server %s.", - "Cache Time-To-Live" : "TTL vyrovnávací paměti", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nedoporučuje se, určeno pouze k použití pro testy! Pokud spojení funguje pouze s touto volbou, naimportujte SSL certifikát vašeho LDAP serveru na %s server.", + "Cache Time-To-Live" : "Doba platnosti mezipaměti", "in seconds. A change empties the cache." : "v sekundách. Změna vyprázdní mezipaměť.", "Directory Settings" : "Nastavení adresáře", "User Display Name Field" : "Kolonka zobrazovaného jména uživatele", @@ -159,7 +161,7 @@ OC.L10N.register( "Disable users missing from LDAP" : "Znepřístupnit uživatelské účty, které se nenachází v LDAP", "When switched on, users imported from LDAP which are then missing will be disabled" : "Pokud zapnuto, uživatelské účty naimportovaní z LDAP, kteří pak budou chybět, budou znepřístupněny.", "Group Display Name Field" : "Kolonka zobrazovaného názvu skupiny", - "The LDAP attribute to use to generate the groups's display name." : "LDAP atribut použitý k vytvoření zobrazovaného jména skupiny.", + "The LDAP attribute to use to generate the groups's display name." : "LDAP atribut, který použít k vytvoření zobrazovaného názvu skupiny.", "Base Group Tree" : "Základ stromu skupin", "One Group Base DN per line" : "Jedna skupinová základní DN na řádku", "Group Search Attributes" : "Atributy vyhledávání skupin", @@ -167,9 +169,9 @@ OC.L10N.register( "Dynamic Group Member URL" : "URL člena dynamické skupiny", "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atribut, který obsahuje pro skupinu objektů vyhledávací LDAP URL, která určuje které objekty patří do skupiny. (Prázdné nastavení vypne funkci člena dynamické skupiny.)", "Nested Groups" : "Vnořené skupiny", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Pokud zapnuto, je možno používat skupiny, které obsahují jiné skupiny. (Funguje pouze pokud atribut člena skupiny obsahuje DN.)", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Pokud zapnuto, je možno používat skupiny, které samy obsahují další skupiny. (Funguje pouze pokud atribut člena skupiny obsahuje DN názvy.)", "Paging chunksize" : "Velikost bloku stránkování", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Velikost bloku použitá pro stránkování vyhledávání v LDAP, které může vracet objemné výsledky jako třeba výčet uživatelů či skupin. (Nastavení na 0 zakáže stránkovaná vyhledávání pro tyto situace.)", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Velikost bloku použitá pro stránkování vyhledávání v LDAP, která mohou vracet objemné výsledky jako třeba výčet uživatelů či skupin. (Nastavení na 0 zakáže stránkovaná vyhledávání pro tyto situace.)", "Enable LDAP password changes per user" : "Povolit změny LDAP hesla pro jednotlivé uživatele", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Povolit LDAP uživatelům změnu jejich hesla a povolit Super správcům a správcům skupin měnit hesla jejich LDAP uživatelům. Funguje pouze, pokud jsou na LDAP serveru příslušně nastaveny zásady řízení přístupu. Protože hesla jsou LDAP serveru zasílána v čitelné podobě, je třeba pro pro transport použít šifrování a na LDAP serveru by mělo být nastaveno ukládání hesel v podobě jejich otisků (hash).", "(New password is sent as plain text to LDAP)" : "(Nové heslo je do LDAP zasláno jako čitelný text)", @@ -208,13 +210,13 @@ OC.L10N.register( "Internal Username" : "Interní uživatelské jméno", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. ", "Internal Username Attribute:" : "Atribut interního uživatelského jména:", - "Override UUID detection" : "Nastavit ručně UUID atribut", + "Override UUID detection" : "Nastavit UUID atribut ručně", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut, který sami zvolíte. Musíte se ale ujistit, že atribut, který vyberete, bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.", "UUID Attribute for Users:" : "UUID atribut pro uživatele:", "UUID Attribute for Groups:" : "UUID atribut pro skupiny:", "Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAP", "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména slouží k ukládání a přiřazování metadat. Pro přesnou identifikaci a rozpoznávání uživatelů, každý LDAP uživatel má vnitřní uživatelské jméno. Toto vyžaduje mapování uživatelského jména na LDAP uživatele. Krom toho je uložen do mezipaměti rozlišený název aby se omezila interakce s LDAP, ale není používáno pro identifikaci. Pokud se DN změní, změny budou nalezeny. Vnitřní uživatelské jméno bude použito nade všechno. Čištění mapování bude mít pozůstatky všude. Čištění mapování není citlivé na nastavení, postihuje všechny LDAP nastavení. Nikdy nečistěte mapování v produkčním prostředí, pouze v testovací nebo experimentální fázi.", - "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu", - "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu" + "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen v LDAP", + "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin na LDAP" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json index cd23ab5d172..ea952473a15 100644 --- a/apps/user_ldap/l10n/cs.json +++ b/apps/user_ldap/l10n/cs.json @@ -23,22 +23,22 @@ "Configuration incomplete" : "Nastavení není dokončené", "Configuration OK" : "Nastavení v pořádku", "Select groups" : "Vyberte skupiny", - "Select object classes" : "Vyberte objektové třídy", + "Select object classes" : "Vyberte třídy objektů", "Please check the credentials, they seem to be wrong." : "Ověřte své přihlašovací údaje, zdají se být neplatné.", "Please specify the port, it could not be auto-detected." : "Zadejte port, nepodařilo se ho zjistit automaticky.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nelze automaticky detekovat, ověřte prosím přihlašovací údaje, host a port.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Základ DN se nepodařilo automaticky zjistit – ověřte zadání přihlašovacích údajů, hostitele a portu.", "Could not detect Base DN, please enter it manually." : "Nedaří se automaticky zjistit Base DN – zadejte ho ručně.", "{nthServer}. Server" : "{nthServer}. Server", - "No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.", + "No object found in the given Base DN. Please revise." : "V zadaném základu DN nebyl objekt nalezen. Ověřte to.", "More than 1,000 directory entries available." : "Je dostupných více než 1000 položek adresáře kontaktů.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} položka k dispozici v rámci poskytnuté Base DN","{objectsFound} položky k dispozici v rámci poskytnuté Base DN","{objectsFound} položek k dispozici v rámci poskytnuté Base DN","{objectsFound} položky k dispozici v rámci poskytnuté Base DN"], - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověřte základ DN, stejně tak nastavení připojení a přihlašovací údaje.", "Do you really want to delete the current Server Configuration?" : "Opravdu chcete stávající nastavení pro server smazat?", "Confirm Deletion" : "Potvrdit smazání", "Mappings cleared successfully!" : "Mapování úspěšně vyčištěna!", "Error while clearing the mappings." : "Chyba při čištění mapování.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymní bind není povolen. Zadejte User DN a Heslo.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní bind nejspíše není povolen.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní navázání (bind) nejspíše není povoleno.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání se nezdařilo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Přepnutí režimu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?", "Mode switch" : "Přepnutí režimu", @@ -47,7 +47,7 @@ "User found and settings verified." : "Uživatel nalezen a nastavení ověřena.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Zvažte zúžení vyhledávání, protože to stávající zahrnuje mnoho uživatelů, ze kterých se bude schopen přihlásit pouze první.", "An unspecified error occurred. Please check log and settings." : "Došlo k nespecifikované chybě. Zkontrolujte nastavení a soubor se záznamem událostí.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání není platný, pravděpodobně z důvodu chybné syntaxe, jako třeba neuzavřené závorky. Ověřte to.", "A connection error to LDAP/AD occurred. Please check host, port and credentials." : "Došlo k chybě připojení k LDAP/AD, zkontrolujte prosím host, port a přihlašovací údaje.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Zástupný symbol „%uid“ chybí. Při dotatzu na LDAP/AD bude nahrazen přihlašovacím jménem.", "Please provide a login name to test against" : "Zadejte přihlašovací jméno, vůči kterému vyzkoušet", @@ -59,13 +59,15 @@ "Your password will expire today." : "Platnost hesla dnes končí.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Platnost hesla skončí za %n den.","Platnost hesla skončí za %n dny.","Platnost hesla skončí za %n dnů.","Platnost hesla skončí za %n dny."], "LDAP/AD integration" : "Napojení na LDAP/AD", + "Invalid LDAP UUIDs" : "Neplatné LDAP UUID identif.", + "None found" : "Žádné nenalezeno", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Nalezeny neplatné UUID identifikátory uživatelů nebo skupin. Zkontrolujte svá nastavení „Přebít zjišťování UUID identifikátorů“ v části pro odborníky nastavení pro LDAP a identifikátory pak zaktualizujte příkazem „ldap:update-uuid“.", "_%n group found_::_%n groups found_" : ["nalezena %n skupina","nalezeny %n skupiny","nalezeno %n skupin","nalezeny %n skupiny"], "> 1000 groups found" : "nalezeno více než 1 000 skupin", "> 1000 users found" : "nalezeno více než 1 000 uživatelů", "_%n user found_::_%n users found_" : ["nalezen %n uživatel","nalezeni %n uživatelé","nalezeno %n uživatelů","nalezeni %n uživatelé"], "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nedaří se zjistit atribut pro zobrazení jména uživatele. Upřesněte ho sami v rozšířeném nastavení LDAP.", - "Could not find the desired feature" : "Nelze nalézt požadovanou vlastnost", + "Could not find the desired feature" : "Požadovanou vlastnost se nepodařilo nalézt", "Invalid Host" : "Neplatný hostitel", "LDAP user and group backend" : "Podpůrná vrstva pro uživatele a skupiny z LDAP", "This application enables administrators to connect Nextcloud to an LDAP-based user directory." : "Tato aplikace umožňuje správcům připojit Nextcloud na adresář uživatelů založený na LDAP.", @@ -82,7 +84,7 @@ "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", - "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", + "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, bude %s hledat uživatele na základě následujících atributů:", "LDAP/AD Username:" : "LDAP/AD uživatelské jméno:", "Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Umožňuje přihlašování pomocí LDAP/AD uživatelského jména, což je buď „uid“ nebo „sAMAccountName“ a bude zjištěno.", "LDAP/AD Email Address:" : "E-mailová adresa z LDAP/AD:", @@ -101,19 +103,19 @@ "Port" : "Port", "Detect Port" : "Zjistit port", "User DN" : "Uživatelské DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému má být vytvořena vazba, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.", "Password" : "Heslo", "For anonymous access, leave DN and Password empty." : "Pro anonymní přístup ponechte údaje DN and heslo prázdné.", "Save Credentials" : "Uložit přihlašovací údaje", "One Base DN per line" : "Každé základní DN na samostatném řádku", - "You can specify Base DN for users and groups in the Advanced tab" : "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny", + "You can specify Base DN for users and groups in the Advanced tab" : "Základ DN pro uživatele a skupiny je možné zadat v panelu Pokročilé", "Detect Base DN" : "Zjistitit Base DN", - "Test Base DN" : "Test Base DN", + "Test Base DN" : "Vyzkoušet základ DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zabraňuje automatickým LDAP požadavkům. Výhodné pro velká nasazení, ale vyžaduje znalosti o LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Ručně vložit LDAP filtry (doporučeno pro obsáhlé adresáře kontaktů)", "Listing and searching for users is constrained by these criteria:" : "Získávání a vyhledávání uživatelů je omezeno následujícími kritérii:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Nejčastější třídy objektů pro uživatele jsou organizationalPerson, person, user a inetOrgPerson. Pokud si nejste jisti které třídy objektů zvolit, obraťte se na správce svého adresáře kontaktů.", - "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", + "The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé z LDAP mají mít přístup k instanci %s.", "Verify settings and count users" : "Ověřit nastavení a spočítat uživatele", "Saving" : "Ukládá se", "Back" : "Zpět", @@ -132,7 +134,7 @@ "Groups" : "Skupiny", "Expert" : "Expertní", "Advanced" : "Pokročilé", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte prosím správce systému, aby jej nainstaloval.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte správce systému, aby ho nainstaloval.", "Connection Settings" : "Nastavení spojení", "Configuration Active" : "Nastavení aktivní", "When unchecked, this configuration will be skipped." : "Pokud není zaškrtnuto, bude toto nastavení přeskočeno.", @@ -142,8 +144,8 @@ "Disable Main Server" : "Zakázat hlavní server", "Only connect to the replica server." : "Připojit jen k záložnímu serveru.", "Turn off SSL certificate validation." : "Vypnout ověřování SSL certifikátu.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nedoporučuje se, určeno pouze k testovacímu použití. Pokud spojení funguje jen s touto volbou, importujte SSL certifikát vašeho LDAP serveru na server %s.", - "Cache Time-To-Live" : "TTL vyrovnávací paměti", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nedoporučuje se, určeno pouze k použití pro testy! Pokud spojení funguje pouze s touto volbou, naimportujte SSL certifikát vašeho LDAP serveru na %s server.", + "Cache Time-To-Live" : "Doba platnosti mezipaměti", "in seconds. A change empties the cache." : "v sekundách. Změna vyprázdní mezipaměť.", "Directory Settings" : "Nastavení adresáře", "User Display Name Field" : "Kolonka zobrazovaného jména uživatele", @@ -157,7 +159,7 @@ "Disable users missing from LDAP" : "Znepřístupnit uživatelské účty, které se nenachází v LDAP", "When switched on, users imported from LDAP which are then missing will be disabled" : "Pokud zapnuto, uživatelské účty naimportovaní z LDAP, kteří pak budou chybět, budou znepřístupněny.", "Group Display Name Field" : "Kolonka zobrazovaného názvu skupiny", - "The LDAP attribute to use to generate the groups's display name." : "LDAP atribut použitý k vytvoření zobrazovaného jména skupiny.", + "The LDAP attribute to use to generate the groups's display name." : "LDAP atribut, který použít k vytvoření zobrazovaného názvu skupiny.", "Base Group Tree" : "Základ stromu skupin", "One Group Base DN per line" : "Jedna skupinová základní DN na řádku", "Group Search Attributes" : "Atributy vyhledávání skupin", @@ -165,9 +167,9 @@ "Dynamic Group Member URL" : "URL člena dynamické skupiny", "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atribut, který obsahuje pro skupinu objektů vyhledávací LDAP URL, která určuje které objekty patří do skupiny. (Prázdné nastavení vypne funkci člena dynamické skupiny.)", "Nested Groups" : "Vnořené skupiny", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Pokud zapnuto, je možno používat skupiny, které obsahují jiné skupiny. (Funguje pouze pokud atribut člena skupiny obsahuje DN.)", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Pokud zapnuto, je možno používat skupiny, které samy obsahují další skupiny. (Funguje pouze pokud atribut člena skupiny obsahuje DN názvy.)", "Paging chunksize" : "Velikost bloku stránkování", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Velikost bloku použitá pro stránkování vyhledávání v LDAP, které může vracet objemné výsledky jako třeba výčet uživatelů či skupin. (Nastavení na 0 zakáže stránkovaná vyhledávání pro tyto situace.)", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Velikost bloku použitá pro stránkování vyhledávání v LDAP, která mohou vracet objemné výsledky jako třeba výčet uživatelů či skupin. (Nastavení na 0 zakáže stránkovaná vyhledávání pro tyto situace.)", "Enable LDAP password changes per user" : "Povolit změny LDAP hesla pro jednotlivé uživatele", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Povolit LDAP uživatelům změnu jejich hesla a povolit Super správcům a správcům skupin měnit hesla jejich LDAP uživatelům. Funguje pouze, pokud jsou na LDAP serveru příslušně nastaveny zásady řízení přístupu. Protože hesla jsou LDAP serveru zasílána v čitelné podobě, je třeba pro pro transport použít šifrování a na LDAP serveru by mělo být nastaveno ukládání hesel v podobě jejich otisků (hash).", "(New password is sent as plain text to LDAP)" : "(Nové heslo je do LDAP zasláno jako čitelný text)", @@ -206,13 +208,13 @@ "Internal Username" : "Interní uživatelské jméno", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. ", "Internal Username Attribute:" : "Atribut interního uživatelského jména:", - "Override UUID detection" : "Nastavit ručně UUID atribut", + "Override UUID detection" : "Nastavit UUID atribut ručně", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut, který sami zvolíte. Musíte se ale ujistit, že atribut, který vyberete, bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.", "UUID Attribute for Users:" : "UUID atribut pro uživatele:", "UUID Attribute for Groups:" : "UUID atribut pro skupiny:", "Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAP", "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména slouží k ukládání a přiřazování metadat. Pro přesnou identifikaci a rozpoznávání uživatelů, každý LDAP uživatel má vnitřní uživatelské jméno. Toto vyžaduje mapování uživatelského jména na LDAP uživatele. Krom toho je uložen do mezipaměti rozlišený název aby se omezila interakce s LDAP, ale není používáno pro identifikaci. Pokud se DN změní, změny budou nalezeny. Vnitřní uživatelské jméno bude použito nade všechno. Čištění mapování bude mít pozůstatky všude. Čištění mapování není citlivé na nastavení, postihuje všechny LDAP nastavení. Nikdy nečistěte mapování v produkčním prostředí, pouze v testovací nebo experimentální fázi.", - "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu", - "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu" + "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen v LDAP", + "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin na LDAP" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 4e94b9c1f84..44d5e60a638 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -61,7 +61,7 @@ OC.L10N.register( "Your password will expire today." : "Ihr Passwort läuft heute ab.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ihr Passwort läuft in %n Tag ab.","Ihr Passwort läuft in %n Tagen ab."], "LDAP/AD integration" : "LDAP/AD-Integration", - "Invalid LDAP UUIDs" : "Ungültiges LDAP-UUIDs", + "Invalid LDAP UUIDs" : "Ungültige LDAP-UUIDs", "None found" : "Keine gefunden", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Es wurden ungültige UUIDs von LDAP-Benutzern oder -Gruppen gefunden. Bitte überprüfen Sie Ihre „UUID-Erkennung überschreiben“-Einstellungen im Expertenteil der LDAP-Konfiguration und verwenden Sie „occ ldap:update-uuid“, um sie zu aktualisieren.", "_%n group found_::_%n groups found_" : ["%n Gruppe gefunden","%n Gruppen gefunden"], diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 449c27c495c..d8889afa570 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -59,7 +59,7 @@ "Your password will expire today." : "Ihr Passwort läuft heute ab.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ihr Passwort läuft in %n Tag ab.","Ihr Passwort läuft in %n Tagen ab."], "LDAP/AD integration" : "LDAP/AD-Integration", - "Invalid LDAP UUIDs" : "Ungültiges LDAP-UUIDs", + "Invalid LDAP UUIDs" : "Ungültige LDAP-UUIDs", "None found" : "Keine gefunden", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Es wurden ungültige UUIDs von LDAP-Benutzern oder -Gruppen gefunden. Bitte überprüfen Sie Ihre „UUID-Erkennung überschreiben“-Einstellungen im Expertenteil der LDAP-Konfiguration und verwenden Sie „occ ldap:update-uuid“, um sie zu aktualisieren.", "_%n group found_::_%n groups found_" : ["%n Gruppe gefunden","%n Gruppen gefunden"], diff --git a/apps/user_ldap/l10n/hu.js b/apps/user_ldap/l10n/hu.js index fe86a620bd8..3fcea4920cc 100644 --- a/apps/user_ldap/l10n/hu.js +++ b/apps/user_ldap/l10n/hu.js @@ -61,6 +61,8 @@ OC.L10N.register( "Your password will expire today." : "A jelszava ma lejár.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["A jelszava %n nap múlva lejár.","A jelszava %n nap múlva lejár."], "LDAP/AD integration" : "LDAP/AD integráció", + "Invalid LDAP UUIDs" : "Érvénytelen LADS UUID-k", + "None found" : "Nincs találat", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Felhasználók vagy csoportok érvénytelen UUID azonosítói találhatók. Nézze át a „UUID észlelés felülbírálása” beállítást az LDAP beállítások Szakértő részében, majd a frissítésükhöz használja az „occ ldap:update-uuid” parancsot.", "_%n group found_::_%n groups found_" : ["%n csoport található","%n csoport található"], "> 1000 groups found" : "> 1000 csoport található", diff --git a/apps/user_ldap/l10n/hu.json b/apps/user_ldap/l10n/hu.json index e213c5923f5..c30a1b213c7 100644 --- a/apps/user_ldap/l10n/hu.json +++ b/apps/user_ldap/l10n/hu.json @@ -59,6 +59,8 @@ "Your password will expire today." : "A jelszava ma lejár.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["A jelszava %n nap múlva lejár.","A jelszava %n nap múlva lejár."], "LDAP/AD integration" : "LDAP/AD integráció", + "Invalid LDAP UUIDs" : "Érvénytelen LADS UUID-k", + "None found" : "Nincs találat", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Felhasználók vagy csoportok érvénytelen UUID azonosítói találhatók. Nézze át a „UUID észlelés felülbírálása” beállítást az LDAP beállítások Szakértő részében, majd a frissítésükhöz használja az „occ ldap:update-uuid” parancsot.", "_%n group found_::_%n groups found_" : ["%n csoport található","%n csoport található"], "> 1000 groups found" : "> 1000 csoport található", diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js index 7e0bcc9c510..07440cd75bc 100644 --- a/apps/user_ldap/l10n/ja.js +++ b/apps/user_ldap/l10n/ja.js @@ -61,6 +61,8 @@ OC.L10N.register( "Your password will expire today." : "パスワードが今日期限切れになります。", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["パスワードがあと %n日で期限切れになります。"], "LDAP/AD integration" : "LDAP/AD統合", + "Invalid LDAP UUIDs" : "無効な LDAP UUID", + "None found" : "該当なし", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "無効なLDAPユーザーまたはグループのUUIDが見つかりました。LDAP設定の詳細設定に存在する\"UUID検出の上書き\"設定を再度ご確認いただき、更新するには\"occ ldap:update-uuid\"をご使用ください。", "_%n group found_::_%n groups found_" : ["グループ%nが見つかりました "], "> 1000 groups found" : "1000 以上のグループが見つかりました", diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json index 2d0420617b1..59f7c7cf96f 100644 --- a/apps/user_ldap/l10n/ja.json +++ b/apps/user_ldap/l10n/ja.json @@ -59,6 +59,8 @@ "Your password will expire today." : "パスワードが今日期限切れになります。", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["パスワードがあと %n日で期限切れになります。"], "LDAP/AD integration" : "LDAP/AD統合", + "Invalid LDAP UUIDs" : "無効な LDAP UUID", + "None found" : "該当なし", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "無効なLDAPユーザーまたはグループのUUIDが見つかりました。LDAP設定の詳細設定に存在する\"UUID検出の上書き\"設定を再度ご確認いただき、更新するには\"occ ldap:update-uuid\"をご使用ください。", "_%n group found_::_%n groups found_" : ["グループ%nが見つかりました "], "> 1000 groups found" : "1000 以上のグループが見つかりました", diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js index 87268b4a894..4aa1c84b4ae 100644 --- a/apps/user_ldap/l10n/ru.js +++ b/apps/user_ldap/l10n/ru.js @@ -61,6 +61,8 @@ OC.L10N.register( "Your password will expire today." : "Сегодня истекает срок действия пароля.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP/AD integration" : "LDAP/AD интеграция", + "Invalid LDAP UUIDs" : "Недопустимые UUID LDAP", + "None found" : "Ничего не найдено", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены некорректные идентификаторы UUID пользователей или групп LDAP. Для их обновления обратите внимание на параметр «Переопределять определение UUID» в разделе экспертных настроек протокола LDAP и запустите в консоли команду «occ ldap:update-uuid».", "_%n group found_::_%n groups found_" : ["Найдена %n группа","Найдено %n группы","Найдено %n групп","Найдено %n группы"], "> 1000 groups found" : "Найдено более 1000 групп", @@ -209,7 +211,7 @@ OC.L10N.register( "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано на основе атрибута UUID. Это гарантирует, что имя пользователя будет уникальным и символы не нужно будет преобразовывать. Внутреннее имя пользователя имеет ограничение – разрешены только эти символы: [a-zA-Z0-9_.@-]. Другие символы заменяются их ASCII-кодами или просто опускаются. При совпадениях число будет добавлено/увеличено. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Оно также является именем по умолчанию для домашней папки пользователя. Оно также является частью удалённых URL-адресов, например, для всех служб DAV. С помощью этого параметра можно переопределить поведение по умолчанию. Изменения будут иметь силу только для новых сопоставленных (добавленных) пользователей LDAP. Оставьте этот параметр пустым для поведения по умолчанию.", "Internal Username Attribute:" : "Атрибут для внутреннего имени:", "Override UUID detection" : "Переопределить нахождение UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию атрибут UUID определяется автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", "UUID Attribute for Users:" : "UUID-атрибуты для пользователей:", "UUID Attribute for Groups:" : "UUID-атрибуты для групп:", "Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP", diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json index 5a7a744a7ee..2d149701e72 100644 --- a/apps/user_ldap/l10n/ru.json +++ b/apps/user_ldap/l10n/ru.json @@ -59,6 +59,8 @@ "Your password will expire today." : "Сегодня истекает срок действия пароля.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP/AD integration" : "LDAP/AD интеграция", + "Invalid LDAP UUIDs" : "Недопустимые UUID LDAP", + "None found" : "Ничего не найдено", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены некорректные идентификаторы UUID пользователей или групп LDAP. Для их обновления обратите внимание на параметр «Переопределять определение UUID» в разделе экспертных настроек протокола LDAP и запустите в консоли команду «occ ldap:update-uuid».", "_%n group found_::_%n groups found_" : ["Найдена %n группа","Найдено %n группы","Найдено %n групп","Найдено %n группы"], "> 1000 groups found" : "Найдено более 1000 групп", @@ -207,7 +209,7 @@ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано на основе атрибута UUID. Это гарантирует, что имя пользователя будет уникальным и символы не нужно будет преобразовывать. Внутреннее имя пользователя имеет ограничение – разрешены только эти символы: [a-zA-Z0-9_.@-]. Другие символы заменяются их ASCII-кодами или просто опускаются. При совпадениях число будет добавлено/увеличено. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Оно также является именем по умолчанию для домашней папки пользователя. Оно также является частью удалённых URL-адресов, например, для всех служб DAV. С помощью этого параметра можно переопределить поведение по умолчанию. Изменения будут иметь силу только для новых сопоставленных (добавленных) пользователей LDAP. Оставьте этот параметр пустым для поведения по умолчанию.", "Internal Username Attribute:" : "Атрибут для внутреннего имени:", "Override UUID detection" : "Переопределить нахождение UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию атрибут UUID определяется автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", "UUID Attribute for Users:" : "UUID-атрибуты для пользователей:", "UUID Attribute for Groups:" : "UUID-атрибуты для групп:", "Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP", diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js index c7fb2c81d01..168160e6341 100644 --- a/apps/user_ldap/l10n/sv.js +++ b/apps/user_ldap/l10n/sv.js @@ -61,6 +61,8 @@ OC.L10N.register( "Your password will expire today." : "Ditt lösenord kommer att gå ut idag.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ditt lösenord kommer gå ut inom %n dag.","Ditt lösenord kommer gå ut inom %n dagar."], "LDAP/AD integration" : "LDAP/AD-integration", + "Invalid LDAP UUIDs" : "Ogiltiga LDAP UUIDs", + "None found" : "Ingen hittades", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Ogiltiga UUID för LDAP-användare eller -grupper har hittats. Granska dina \"Åsidosätt UUID-detektering\"-inställningar i expertdelen av LDAP-konfigurationen och använd \"occ ldap:update-uuid\" för att uppdatera dem.", "_%n group found_::_%n groups found_" : ["%n grupp hittades","%n grupper hittades"], "> 1000 groups found" : "> 1000 grupper hittades", diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json index 8b56561920c..7f6236f62e6 100644 --- a/apps/user_ldap/l10n/sv.json +++ b/apps/user_ldap/l10n/sv.json @@ -59,6 +59,8 @@ "Your password will expire today." : "Ditt lösenord kommer att gå ut idag.", "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ditt lösenord kommer gå ut inom %n dag.","Ditt lösenord kommer gå ut inom %n dagar."], "LDAP/AD integration" : "LDAP/AD-integration", + "Invalid LDAP UUIDs" : "Ogiltiga LDAP UUIDs", + "None found" : "Ingen hittades", "Invalid UUIDs of LDAP users or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Ogiltiga UUID för LDAP-användare eller -grupper har hittats. Granska dina \"Åsidosätt UUID-detektering\"-inställningar i expertdelen av LDAP-konfigurationen och använd \"occ ldap:update-uuid\" för att uppdatera dem.", "_%n group found_::_%n groups found_" : ["%n grupp hittades","%n grupper hittades"], "> 1000 groups found" : "> 1000 grupper hittades", diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index 2f7b2c24ab3..70dca6a40ca 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -494,7 +494,7 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I $filter = $this->prepareFilterForUsersHasGidNumber($groupDN, $search); $users = $this->access->fetchListOfUsers( $filter, - [$this->access->connection->ldapUserDisplayName, 'dn'], + $this->access->userManager->getAttributes(true), $limit, $offset ); @@ -618,7 +618,7 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I $filter = $this->prepareFilterForUsersInPrimaryGroup($groupDN, $search); $users = $this->access->fetchListOfUsers( $filter, - [$this->access->connection->ldapUserDisplayName, 'dn'], + $this->access->userManager->getAttributes(true), $limit, $offset ); diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php index da6cae39034..78a244dc0a6 100644 --- a/apps/user_ldap/lib/User/User.php +++ b/apps/user_ldap/lib/User/User.php @@ -748,8 +748,8 @@ class User { } - //make sure it is a square and not bigger than 128x128 - $size = min([$this->image->width(), $this->image->height(), 128]); + //make sure it is a square and not bigger than 512x512 + $size = min([$this->image->width(), $this->image->height(), 512]); if (!$this->image->centerCrop($size)) { $this->logger->error('croping image for avatar failed for '.$this->dn, ['app' => 'user_ldap']); return false; diff --git a/apps/workflowengine/l10n/uk.js b/apps/workflowengine/l10n/uk.js index c162b602e2e..6e561713e11 100644 --- a/apps/workflowengine/l10n/uk.js +++ b/apps/workflowengine/l10n/uk.js @@ -80,12 +80,15 @@ OC.L10N.register( "Save" : "Зберегти", "Available flows" : "Процеси", "For details on how to write your own flow, check out the development documentation." : "Перегляньте документацію для розробника, щоби дізнатися, як додати власні процеси.", + "No flows installed" : "Відсутні процеси", + "Ask your administrator to install new flows." : "Зверніться до адміністратора щодо встановлення нових процесів.", "More flows" : "Більше процесів", "Browse the App Store" : "Перейти до App Store", "Show less" : "Показувати менше", "Show more" : "Показати більше", "Configured flows" : "Налаштовані процеси", "Your flows" : "Ваші процеси", + "No flows configured" : "Процеси не налаштовано", "matches" : "містить", "does not match" : "не містить", "is" : "є", diff --git a/apps/workflowengine/l10n/uk.json b/apps/workflowengine/l10n/uk.json index 5d5783e651c..a24a3785deb 100644 --- a/apps/workflowengine/l10n/uk.json +++ b/apps/workflowengine/l10n/uk.json @@ -78,12 +78,15 @@ "Save" : "Зберегти", "Available flows" : "Процеси", "For details on how to write your own flow, check out the development documentation." : "Перегляньте документацію для розробника, щоби дізнатися, як додати власні процеси.", + "No flows installed" : "Відсутні процеси", + "Ask your administrator to install new flows." : "Зверніться до адміністратора щодо встановлення нових процесів.", "More flows" : "Більше процесів", "Browse the App Store" : "Перейти до App Store", "Show less" : "Показувати менше", "Show more" : "Показати більше", "Configured flows" : "Налаштовані процеси", "Your flows" : "Ваші процеси", + "No flows configured" : "Процеси не налаштовано", "matches" : "містить", "does not match" : "не містить", "is" : "є", diff --git a/apps/workflowengine/lib/Controller/AWorkflowController.php b/apps/workflowengine/lib/Controller/AWorkflowController.php index 77e50526092..2c3655743ff 100644 --- a/apps/workflowengine/lib/Controller/AWorkflowController.php +++ b/apps/workflowengine/lib/Controller/AWorkflowController.php @@ -30,6 +30,7 @@ namespace OCA\WorkflowEngine\Controller; use Doctrine\DBAL\Exception; use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Manager; +use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSException; @@ -103,6 +104,7 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function create( string $class, string $name, @@ -131,6 +133,7 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function update( int $id, string $name, @@ -159,6 +162,7 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function destroy(int $id): DataResponse { try { $deleted = $this->manager->deleteOperation($id, $this->getScopeContext()); diff --git a/apps/workflowengine/lib/Controller/UserWorkflowsController.php b/apps/workflowengine/lib/Controller/UserWorkflowsController.php index dd2457dd9e8..02c52deb9c7 100644 --- a/apps/workflowengine/lib/Controller/UserWorkflowsController.php +++ b/apps/workflowengine/lib/Controller/UserWorkflowsController.php @@ -29,6 +29,7 @@ namespace OCA\WorkflowEngine\Controller; use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Manager; +use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSForbiddenException; @@ -84,6 +85,7 @@ class UserWorkflowsController extends AWorkflowController { * @throws OCSBadRequestException * @throws OCSForbiddenException */ + #[PasswordConfirmationRequired] public function create(string $class, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::create($class, $name, $checks, $operation, $entity, $events); } @@ -93,6 +95,7 @@ class UserWorkflowsController extends AWorkflowController { * @throws OCSBadRequestException * @throws OCSForbiddenException */ + #[PasswordConfirmationRequired] public function update(int $id, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::update($id, $name, $checks, $operation, $entity, $events); } @@ -101,6 +104,7 @@ class UserWorkflowsController extends AWorkflowController { * @NoAdminRequired * @throws OCSForbiddenException */ + #[PasswordConfirmationRequired] public function destroy(int $id): DataResponse { return parent::destroy($id); } diff --git a/apps/workflowengine/lib/Entity/File.php b/apps/workflowengine/lib/Entity/File.php index 7caaaf0e225..5b9c4892f92 100644 --- a/apps/workflowengine/lib/Entity/File.php +++ b/apps/workflowengine/lib/Entity/File.php @@ -140,10 +140,10 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation { } } - public function isLegitimatedForUserId(string $uid): bool { + public function isLegitimatedForUserId(string $userId): bool { try { $node = $this->getNode(); - if ($node->getOwner()->getUID() === $uid) { + if ($node->getOwner()?->getUID() === $userId) { return true; } @@ -154,7 +154,7 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation { $fileId = $node->getId(); } - $mountInfos = $this->userMountCache->getMountsForFileId($fileId, $uid); + $mountInfos = $this->userMountCache->getMountsForFileId($fileId, $userId); foreach ($mountInfos as $mountInfo) { $mount = $this->mountManager->getMountFromMountInfo($mountInfo); if ($mount && $mount->getStorage() && !empty($mount->getStorage()->getCache()->get($fileId))) { diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php index 674cfc65313..24e3c216e48 100644 --- a/apps/workflowengine/lib/Manager.php +++ b/apps/workflowengine/lib/Manager.php @@ -380,7 +380,7 @@ class Manager implements IManager { ->where($qb->expr()->eq('s.type', $qb->createParameter('scope'))); if ($scopeContext->getScope() !== IManager::SCOPE_ADMIN) { - $qb->where($qb->expr()->eq('s.value', $qb->createParameter('scopeId'))); + $qb->andWhere($qb->expr()->eq('s.value', $qb->createParameter('scopeId'))); } $qb->setParameters(['scope' => $scopeContext->getScope(), 'scopeId' => $scopeContext->getScopeId()]); diff --git a/apps/workflowengine/src/store.js b/apps/workflowengine/src/store.js index 49c881e67b6..6f8905687cf 100644 --- a/apps/workflowengine/src/store.js +++ b/apps/workflowengine/src/store.js @@ -89,7 +89,8 @@ const store = new Store({ context.commit('addRule', rule) }) }, - createNewRule(context, rule) { + async createNewRule(context, rule) { + await confirmPassword() let entity = null let events = [] if (rule.isComplex === false && rule.fixedEntity === '') { @@ -120,9 +121,7 @@ const store = new Store({ context.commit('removeRule', rule) }, async pushUpdateRule(context, rule) { - if (context.state.scope === 0) { - await confirmPassword() - } + await confirmPassword() let result if (rule.id < 0) { result = await axios.post(getApiUrl(''), rule) diff --git a/core/l10n/ar.js b/core/l10n/ar.js index 076017f97a8..fa881bbcdd0 100644 --- a/core/l10n/ar.js +++ b/core/l10n/ar.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "يتم استخدام SQLite حاليًا كقاعدة بيانات خلفية. بالنسبة لعمليات التثبيت الأكبر ، نوصي بالتبديل إلى خلفية قاعدة بيانات مختلفة.", "This is particularly recommended when using the desktop client for file synchronisation." : "يوصى بهذا بشكل خاص عند استخدام تطبيق سطح المكتب لمزامنة الملفات.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "لنقل البيانات إلى قاعدة بيانات أخرى، استخدم أداة سطر الأوامر \"occ db:convert-type\" أو أنظر {linkstart}التوثيق ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي 512 ميجا بايت.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "بعض مجلدات التطبيق مملوكة لمستخدم مختلف عن مستخدم خادم الويب. قد يكون هذا هو الحال إذا تم تثبيت التطبيقات يدويًا. تحقق من صلاحيات مجلدات التطبيق التالية:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "تُستخدم MySQL كقاعدة بيانات ولكنها لا تدعم الأحرف المكونة من 4 بايت. لتكون قادرًا على التعامل مع أحرف 4 بايت (مثل emojis) دون مشاكل في أسماء الملفات أو التعليقات ، على سبيل المثال ، يوصى بتمكين دعم 4 بايت في MySQL. لمزيد من التفاصيل اقرأ {linkstart} صفحة التعليمات حول هذا الموضوع ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "يستخدم هذا الخادم مخزن عناصر يستند إلى S3 كتخزين أساسي. يتم تخزين الملفات التي تم تحميلها مؤقتًا على الخادم ، وبالتالي يوصى بتوفير مساحة خالية تبلغ 50 جيجابايت في المجلد المؤقت لـ PHP. تحقق من السجلات للحصول على تفاصيل كاملة حول المسار والمساحة المتاحة. لتحسين هذا الرجاء تغيير المجلد المؤقت في ملف php.ini أو توفير مساحة أكبر في هذا المسار.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "المزيد من التطبيقات", "Currently open" : "مفتوح حاليّاً ", "_{count} notification_::_{count} notifications_" : ["{count} إخطارات","{count} إخطار","{count} إخطارات","{count} إخطارات","{count} إخطارات","{count} إخطارات"], + "Date range filter" : "فلتر النطاق الزمني", + "Pick start date" : "إختَر تاريخ البدء", + "Pick end date" : "إختَر تاريخ الانتهاء", + "Apply range" : "طبّق النطاق", "Log in" : "تسجيل الدخول", "Logging in …" : "تسجيل الدخول …", "Server side authentication failed!" : "رفض الخادم المصادقة!", "Please contact your administrator." : "يرجى التواصل مع مسؤول النظام.", + "Temporary error" : "خطأٌ مؤقّتٌ", + "Please try again." : "حاول مرة أخرى، رجاءً.", "An internal error occurred." : "حدث خطأ داخلي.", "Please try again or contact your administrator." : "حاول مجددا أو تواصل مع مسؤول النظام.", "Account name or email" : "اسم الحساب أو البريد الالكتروني", @@ -189,6 +194,24 @@ OC.L10N.register( "Install the Contacts app" : "تثبيت تطبيق جهات الإتصال", "Loading your contacts …" : "تحميل جهات الإتصال", "Looking for {term} …" : "جاري البحث عن {term}", + "Global search" : "بحث شامل", + "Search apps, files, tags, messages" : "البحث في التطبيقات و الملفات و السِّمات و الرسائل", + "Apps and Settings" : "التطبيقات و الإعدادات", + "Modified" : "آخر تعديل", + "Today" : "اليوم", + "Last 7 days" : "آخر 7 أيام", + "Last 30 days" : "آخر 30 يوماً", + "This year" : "هذه السنة", + "Last year" : "العام الماضي", + "Custom date range" : "نطاق زمني مُخصَّص", + "Search people" : "البحث عن أشخاص", + "Not found" : "غير موجود", + "People" : "ناس", + "Load more results" : " عرض المزيد من النتائج", + "Search in" : "Search in", + "Start typing in search" : "إبدأ كتابة نص البحث", + "No matching results" : "No matching results", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "بين ${this.dateFilter.startFrom.toLocaleDateString()} و ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "هل نسيت كلمة السر ؟", "Back to login form" : "عودة إلى نموذج الدخول", "Back" : "العودة", @@ -204,7 +227,6 @@ OC.L10N.register( "Search for {name} only" : "البحث عن {name} فقط", "Start typing to search" : "اكتب هنا للبحث", "Loading more results …" : "جاري عرض المزيد من النتائج…", - "Load more results" : " عرض المزيد من النتائج", "Search" : "البحث", "No results for {query}" : "لا يوجد ناتج لـ {query}", "Press Enter to start searching" : "رجاءً اضغط Enter لبدء البحث", @@ -402,6 +424,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "لا يحتوي PHP على دعم FreeType ، مما يؤدي إلى كسر صور الملف الشخصي وواجهة الإعدادات.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "يفتقد هذا المثال إلى بعض وحدات PHP الموصى بها. للحصول على أداء أفضل وتوافق أفضل ، يوصى بشدة بتثبيتها.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "يبدو أنك تُشغّل إصدار 32 بت من PHP. تحتاج نكست كلاود إلى 64 بت لتعمل. رجاءً قم بترقية نظام تشغيله و نسختك من PHP إلى 64 بت. لمزيد المعلومات حول هذا، أنظر {linkstart} صفحة التوثيق ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي 512 ميجا بايت.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "تم إرسال رسالة إعادة تعيين كلمة المرور إلى عنوان البريد الإلكتروني لهذا الحساب. إذا لم تستلمها ، فتحقق من مجلدات البريد الغير هام / غير المرغوب فيه أو اطلب المساعدة من المسؤول المحلي.", "If it is not there ask your local administrator." : "إذا لم يكن هناك اسأل المسؤول التقني المحلي.", "Press enter to start searching" : "اضغط على Enter لبدء البحث", @@ -414,7 +437,6 @@ OC.L10N.register( "No more subfolders in here" : "لا يوجد هنا ملفات فرعية", "Name" : "الاسم", "Size" : "الحجم", - "Modified" : "آخر تعديل", "\"{name}\" is an invalid file name." : "\"{name}\" اسم ملف غير صالح للاستخدام .", "File name cannot be empty." : "اسم الملف لا يجوز أن يكون فارغا", "\"/\" is not allowed inside a file name." : "\"/\" غير مسموح في تسمية الملف", diff --git a/core/l10n/ar.json b/core/l10n/ar.json index 33fc55e80b9..644691ea84b 100644 --- a/core/l10n/ar.json +++ b/core/l10n/ar.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "يتم استخدام SQLite حاليًا كقاعدة بيانات خلفية. بالنسبة لعمليات التثبيت الأكبر ، نوصي بالتبديل إلى خلفية قاعدة بيانات مختلفة.", "This is particularly recommended when using the desktop client for file synchronisation." : "يوصى بهذا بشكل خاص عند استخدام تطبيق سطح المكتب لمزامنة الملفات.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "لنقل البيانات إلى قاعدة بيانات أخرى، استخدم أداة سطر الأوامر \"occ db:convert-type\" أو أنظر {linkstart}التوثيق ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي 512 ميجا بايت.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "بعض مجلدات التطبيق مملوكة لمستخدم مختلف عن مستخدم خادم الويب. قد يكون هذا هو الحال إذا تم تثبيت التطبيقات يدويًا. تحقق من صلاحيات مجلدات التطبيق التالية:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "تُستخدم MySQL كقاعدة بيانات ولكنها لا تدعم الأحرف المكونة من 4 بايت. لتكون قادرًا على التعامل مع أحرف 4 بايت (مثل emojis) دون مشاكل في أسماء الملفات أو التعليقات ، على سبيل المثال ، يوصى بتمكين دعم 4 بايت في MySQL. لمزيد من التفاصيل اقرأ {linkstart} صفحة التعليمات حول هذا الموضوع ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "يستخدم هذا الخادم مخزن عناصر يستند إلى S3 كتخزين أساسي. يتم تخزين الملفات التي تم تحميلها مؤقتًا على الخادم ، وبالتالي يوصى بتوفير مساحة خالية تبلغ 50 جيجابايت في المجلد المؤقت لـ PHP. تحقق من السجلات للحصول على تفاصيل كاملة حول المسار والمساحة المتاحة. لتحسين هذا الرجاء تغيير المجلد المؤقت في ملف php.ini أو توفير مساحة أكبر في هذا المسار.", @@ -136,10 +135,16 @@ "More apps" : "المزيد من التطبيقات", "Currently open" : "مفتوح حاليّاً ", "_{count} notification_::_{count} notifications_" : ["{count} إخطارات","{count} إخطار","{count} إخطارات","{count} إخطارات","{count} إخطارات","{count} إخطارات"], + "Date range filter" : "فلتر النطاق الزمني", + "Pick start date" : "إختَر تاريخ البدء", + "Pick end date" : "إختَر تاريخ الانتهاء", + "Apply range" : "طبّق النطاق", "Log in" : "تسجيل الدخول", "Logging in …" : "تسجيل الدخول …", "Server side authentication failed!" : "رفض الخادم المصادقة!", "Please contact your administrator." : "يرجى التواصل مع مسؤول النظام.", + "Temporary error" : "خطأٌ مؤقّتٌ", + "Please try again." : "حاول مرة أخرى، رجاءً.", "An internal error occurred." : "حدث خطأ داخلي.", "Please try again or contact your administrator." : "حاول مجددا أو تواصل مع مسؤول النظام.", "Account name or email" : "اسم الحساب أو البريد الالكتروني", @@ -187,6 +192,24 @@ "Install the Contacts app" : "تثبيت تطبيق جهات الإتصال", "Loading your contacts …" : "تحميل جهات الإتصال", "Looking for {term} …" : "جاري البحث عن {term}", + "Global search" : "بحث شامل", + "Search apps, files, tags, messages" : "البحث في التطبيقات و الملفات و السِّمات و الرسائل", + "Apps and Settings" : "التطبيقات و الإعدادات", + "Modified" : "آخر تعديل", + "Today" : "اليوم", + "Last 7 days" : "آخر 7 أيام", + "Last 30 days" : "آخر 30 يوماً", + "This year" : "هذه السنة", + "Last year" : "العام الماضي", + "Custom date range" : "نطاق زمني مُخصَّص", + "Search people" : "البحث عن أشخاص", + "Not found" : "غير موجود", + "People" : "ناس", + "Load more results" : " عرض المزيد من النتائج", + "Search in" : "Search in", + "Start typing in search" : "إبدأ كتابة نص البحث", + "No matching results" : "No matching results", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "بين ${this.dateFilter.startFrom.toLocaleDateString()} و ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "هل نسيت كلمة السر ؟", "Back to login form" : "عودة إلى نموذج الدخول", "Back" : "العودة", @@ -202,7 +225,6 @@ "Search for {name} only" : "البحث عن {name} فقط", "Start typing to search" : "اكتب هنا للبحث", "Loading more results …" : "جاري عرض المزيد من النتائج…", - "Load more results" : " عرض المزيد من النتائج", "Search" : "البحث", "No results for {query}" : "لا يوجد ناتج لـ {query}", "Press Enter to start searching" : "رجاءً اضغط Enter لبدء البحث", @@ -400,6 +422,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "لا يحتوي PHP على دعم FreeType ، مما يؤدي إلى كسر صور الملف الشخصي وواجهة الإعدادات.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "يفتقد هذا المثال إلى بعض وحدات PHP الموصى بها. للحصول على أداء أفضل وتوافق أفضل ، يوصى بشدة بتثبيتها.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "يبدو أنك تُشغّل إصدار 32 بت من PHP. تحتاج نكست كلاود إلى 64 بت لتعمل. رجاءً قم بترقية نظام تشغيله و نسختك من PHP إلى 64 بت. لمزيد المعلومات حول هذا، أنظر {linkstart} صفحة التوثيق ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي 512 ميجا بايت.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "تم إرسال رسالة إعادة تعيين كلمة المرور إلى عنوان البريد الإلكتروني لهذا الحساب. إذا لم تستلمها ، فتحقق من مجلدات البريد الغير هام / غير المرغوب فيه أو اطلب المساعدة من المسؤول المحلي.", "If it is not there ask your local administrator." : "إذا لم يكن هناك اسأل المسؤول التقني المحلي.", "Press enter to start searching" : "اضغط على Enter لبدء البحث", @@ -412,7 +435,6 @@ "No more subfolders in here" : "لا يوجد هنا ملفات فرعية", "Name" : "الاسم", "Size" : "الحجم", - "Modified" : "آخر تعديل", "\"{name}\" is an invalid file name." : "\"{name}\" اسم ملف غير صالح للاستخدام .", "File name cannot be empty." : "اسم الملف لا يجوز أن يكون فارغا", "\"/\" is not allowed inside a file name." : "\"/\" غير مسموح في تسمية الملف", diff --git a/core/l10n/bg.js b/core/l10n/bg.js index 749c4244d8b..aad4743fe03 100644 --- a/core/l10n/bg.js +++ b/core/l10n/bg.js @@ -96,7 +96,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Понастоящем SQLite се използва като вътрешна база данни. За по-големи инсталации ви препоръчваме да превключите към друг сървър на базата данни.", "This is particularly recommended when using the desktop client for file synchronisation." : "Препоръчително, особено ако ползвате клиента за настолен компютър.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За да мигрирате към друга база данни, използвайте инструмент на командния ред: \"occ db:convert-type\" или вижте {linkstart}документацията ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Ограничението на PHP паметта е под препоръчителната стойност от 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Някои директории на приложения се притежават от потребител, различен от този на уеб сървъра. Това може да се случи, ако приложенията са инсталирани ръчно. Проверете правата на следните директории на приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL се използва като база данни, но не поддържа 4-байтови символи. За да можете да обработвате 4-байтови символи (като емотикони) без проблеми в имената на файлове или коментари, например се препоръчва да активирате 4-байтовата поддръжка в MySQL. За повече подробности прочетете {linkend}страницата с документация за това↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Този екземпляр използва базирано на S3 хранилище на обекти като основно съхранение. Качените файлове се съхраняват временно на сървъра и затова се препоръчва да имате 50 GB свободно място във временната директория на PHP. Проверете дневниците за пълни подробности за пътя и наличното пространство. За да подобрите това, моля, променете временната директория в php.ini или направете повече място в този път.", @@ -180,6 +179,12 @@ OC.L10N.register( "Install the Contacts app" : "Инсталиране на приложението за Контакти ", "Loading your contacts …" : "Зареждане на контактите ...", "Looking for {term} …" : "Търси се {term} …", + "Modified" : "Промяна", + "Today" : "Днес", + "Last year" : "Миналата година", + "Not found" : "Не е намерен", + "People" : "Хора", + "Load more results" : "Зареждане на още резултати", "Forgot password?" : "Забравена парола?", "Back" : "Назад", "Login form is disabled." : "Формулярът за вход е деактивиран", @@ -194,7 +199,6 @@ OC.L10N.register( "Search for {name} only" : "Търсене само за {name}", "Start typing to search" : "Започнете да пишете, за търсене", "Loading more results …" : "Зарежда още резултати…", - "Load more results" : "Зареждане на още резултати", "Search" : "Търсене", "No results for {query}" : "Няма резултати за {query}", "Press Enter to start searching" : "Натиснете Enter, за стартиране на търсенето", @@ -388,6 +392,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Вашият PHP не поддържа FreeType, в резулта това ще доведе до неправилното показване на профилните снимки и настройките на интерфейса", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В този екземпляр липсват някои препоръчани PHP модули. За подобрена производителност и по-добра съвместимост е силно препоръчително да ги инсталирате.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Изглежда, че използвате 32-битова PHP версия. Приложението Nextcloud се нуждае от 64 бита, за да работи добре. Моля, надстройте вашата операционна система и PHP до 64 бита! За повече подробности прочетете {linkstart}страницата с документация за това ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Ограничението на PHP паметта е под препоръчителната стойност от 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "На имейл адреса на този профил е изпратено съобщение за нулиране на парола. Ако не го получите, проверете папките си за нежелана поща / отпадъци или попитайте вашият местен администратор за помощ.", "If it is not there ask your local administrator." : "Ако не е там, попитайте местния администратор.", "Press enter to start searching" : "Натиснете въведи, за начало на търсенето", @@ -400,7 +405,6 @@ OC.L10N.register( "No more subfolders in here" : "Няма подпапки", "Name" : "Име", "Size" : "Размер", - "Modified" : "Промяна", "\"{name}\" is an invalid file name." : "\"{name}\" е непозволено име за файл.", "File name cannot be empty." : "Името на файла не може да бъде празно.", "\"/\" is not allowed inside a file name." : "\"/\" е непозволен знак в името на файла.", diff --git a/core/l10n/bg.json b/core/l10n/bg.json index 82916b3e692..d2180a8ff81 100644 --- a/core/l10n/bg.json +++ b/core/l10n/bg.json @@ -94,7 +94,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Понастоящем SQLite се използва като вътрешна база данни. За по-големи инсталации ви препоръчваме да превключите към друг сървър на базата данни.", "This is particularly recommended when using the desktop client for file synchronisation." : "Препоръчително, особено ако ползвате клиента за настолен компютър.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За да мигрирате към друга база данни, използвайте инструмент на командния ред: \"occ db:convert-type\" или вижте {linkstart}документацията ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Ограничението на PHP паметта е под препоръчителната стойност от 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Някои директории на приложения се притежават от потребител, различен от този на уеб сървъра. Това може да се случи, ако приложенията са инсталирани ръчно. Проверете правата на следните директории на приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL се използва като база данни, но не поддържа 4-байтови символи. За да можете да обработвате 4-байтови символи (като емотикони) без проблеми в имената на файлове или коментари, например се препоръчва да активирате 4-байтовата поддръжка в MySQL. За повече подробности прочетете {linkend}страницата с документация за това↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Този екземпляр използва базирано на S3 хранилище на обекти като основно съхранение. Качените файлове се съхраняват временно на сървъра и затова се препоръчва да имате 50 GB свободно място във временната директория на PHP. Проверете дневниците за пълни подробности за пътя и наличното пространство. За да подобрите това, моля, променете временната директория в php.ini или направете повече място в този път.", @@ -178,6 +177,12 @@ "Install the Contacts app" : "Инсталиране на приложението за Контакти ", "Loading your contacts …" : "Зареждане на контактите ...", "Looking for {term} …" : "Търси се {term} …", + "Modified" : "Промяна", + "Today" : "Днес", + "Last year" : "Миналата година", + "Not found" : "Не е намерен", + "People" : "Хора", + "Load more results" : "Зареждане на още резултати", "Forgot password?" : "Забравена парола?", "Back" : "Назад", "Login form is disabled." : "Формулярът за вход е деактивиран", @@ -192,7 +197,6 @@ "Search for {name} only" : "Търсене само за {name}", "Start typing to search" : "Започнете да пишете, за търсене", "Loading more results …" : "Зарежда още резултати…", - "Load more results" : "Зареждане на още резултати", "Search" : "Търсене", "No results for {query}" : "Няма резултати за {query}", "Press Enter to start searching" : "Натиснете Enter, за стартиране на търсенето", @@ -386,6 +390,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Вашият PHP не поддържа FreeType, в резулта това ще доведе до неправилното показване на профилните снимки и настройките на интерфейса", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В този екземпляр липсват някои препоръчани PHP модули. За подобрена производителност и по-добра съвместимост е силно препоръчително да ги инсталирате.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Изглежда, че използвате 32-битова PHP версия. Приложението Nextcloud се нуждае от 64 бита, за да работи добре. Моля, надстройте вашата операционна система и PHP до 64 бита! За повече подробности прочетете {linkstart}страницата с документация за това ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Ограничението на PHP паметта е под препоръчителната стойност от 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "На имейл адреса на този профил е изпратено съобщение за нулиране на парола. Ако не го получите, проверете папките си за нежелана поща / отпадъци или попитайте вашият местен администратор за помощ.", "If it is not there ask your local administrator." : "Ако не е там, попитайте местния администратор.", "Press enter to start searching" : "Натиснете въведи, за начало на търсенето", @@ -398,7 +403,6 @@ "No more subfolders in here" : "Няма подпапки", "Name" : "Име", "Size" : "Размер", - "Modified" : "Промяна", "\"{name}\" is an invalid file name." : "\"{name}\" е непозволено име за файл.", "File name cannot be empty." : "Името на файла не може да бъде празно.", "\"/\" is not allowed inside a file name." : "\"/\" е непозволен знак в името на файла.", diff --git a/core/l10n/br.js b/core/l10n/br.js index a3bae60ad0e..06797874851 100644 --- a/core/l10n/br.js +++ b/core/l10n/br.js @@ -57,7 +57,6 @@ OC.L10N.register( "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Mankout a ra kolonennoù er roadennoù-diaz dibabapl. Abalamour e kemer amzer ouzhpennañ kolonennoù e taolennoù bras, n'int ket bet lakaet en un doare otomatek. En ul lakaat da dreiñ \"occ db:add-missing-columns\" eo posupl ouzhpennañ ar c'holonennoù a vank gant an dorn pa vo an azgoulenn o treiñ. Ur wech ouzhpennet ar c'holonennoù, goulennoù savet d'an taolennoù a vo buanaet.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite a vez implijet evel ur backend ar roadenoù-diaz. Evit staliadurioù brasoc'h e vez aliet cheñch d'ur backend roadennoù-diaz all.", "This is particularly recommended when using the desktop client for file synchronisation." : "Kinniget kennañ pa vez implijet ar c'hliant burev evit kempredañ ar restroù.", - "The PHP memory limit is below the recommended value of 512MB." : "Bevenn memor PHP a zo dindan an hini kinniget eus 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Touliadoù meziant zo a zo dalc'het gant un implijour diseñvel eus ar servijour web. M'az eo bet stalied ar meziant gant an dorn eo normal. Gwiriit an aotreoù an teuliadoù meziant mañ:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "An azgoulenn a implij un dra diazezed war S3 evel e bern pennañ. Ar restroù pellkaset a vez bernied ebit point war ar servijour, setut perak eo kinniget kaout 50 GB plass dieub e teuliad PHP temp. Gwiriit ar gazetenn evit munudoù an hent hag ar plass dieub. Evit gwellat ar blass, cheñchit an teuliad amzeriel e-barzh php.ini pa roit muioc'h a blass en hent.", "Error occurred while checking server setup" : "Ur vazi a zo bet pa omp o gwiriañ staliadur ar servijour", @@ -116,12 +115,14 @@ OC.L10N.register( "Install the Contacts app" : "Stalliaén ar meziant darempredoù", "Loading your contacts …" : "O kargañ o darempredoù", "Looking for {term} …" : "O klask {term} ...", + "Modified" : "Cheñchet", + "Today" : "Hiziv", + "Load more results" : "Kagañ muioc'h a disoc'hoù", "Forgot password?" : "Ger-tremen ankouaet?", "Back" : "Distro", "Reset search" : "Adkregiñ an enklask", "Start typing to search" : "Krogit da skrivañ evit klask", "Loading more results …" : "O kargañ muioc'h a zisoc'hoù ...", - "Load more results" : "Kagañ muioc'h a disoc'hoù", "Search" : "Klask", "No results for {query}" : "Disoc'h ebet evit {query}", "_Please enter {minSearchLength} character or more to search_::_Please enter {minSearchLength} characters or more to search_" : ["Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask"], @@ -281,6 +282,7 @@ OC.L10N.register( "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "N'eus ket eus ar modul PHP \"fileinfo\". Gwelloc'h eo aotreañ ar modul-mañ evit kaout an disoc'hoù gwellañ evit dizoloeiñ ar stumm MIME.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ho PHP ne zoug ket FreeType, terriñ ar skeudennoù trolinenn ha stummoù an etrefas.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "An etrefas a vank dezhañ moduloù PHP aliet. Evit gwellaat ar mont en dro hag ar c'heverlec’hded ez eo kinniget kenañ o staliañ.", + "The PHP memory limit is below the recommended value of 512MB." : "Bevenn memor PHP a zo dindan an hini kinniget eus 512MB.", "If it is not there ask your local administrator." : "M'a n'eo ket amañ, goulennit o merour lec'h.", "Settings" : "Arventennoù", "Show all contacts …" : "Diskwel tout an darempredoù ...", @@ -289,7 +291,6 @@ OC.L10N.register( "No more subfolders in here" : "N'ez eus ket isteuliadoù all amañ", "Name" : "Anv", "Size" : "Ment", - "Modified" : "Cheñchet", "\"{name}\" is an invalid file name." : "N'eo ket \"{name}\" un anv restr aotreet.", "File name cannot be empty." : "N'hall ket anv ur restr bezañ goullo.", "\"/\" is not allowed inside a file name." : "N'eo ket aotreet \"/\" e anv ur restr.", diff --git a/core/l10n/br.json b/core/l10n/br.json index 457a585d40d..431b89e910a 100644 --- a/core/l10n/br.json +++ b/core/l10n/br.json @@ -55,7 +55,6 @@ "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Mankout a ra kolonennoù er roadennoù-diaz dibabapl. Abalamour e kemer amzer ouzhpennañ kolonennoù e taolennoù bras, n'int ket bet lakaet en un doare otomatek. En ul lakaat da dreiñ \"occ db:add-missing-columns\" eo posupl ouzhpennañ ar c'holonennoù a vank gant an dorn pa vo an azgoulenn o treiñ. Ur wech ouzhpennet ar c'holonennoù, goulennoù savet d'an taolennoù a vo buanaet.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite a vez implijet evel ur backend ar roadenoù-diaz. Evit staliadurioù brasoc'h e vez aliet cheñch d'ur backend roadennoù-diaz all.", "This is particularly recommended when using the desktop client for file synchronisation." : "Kinniget kennañ pa vez implijet ar c'hliant burev evit kempredañ ar restroù.", - "The PHP memory limit is below the recommended value of 512MB." : "Bevenn memor PHP a zo dindan an hini kinniget eus 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Touliadoù meziant zo a zo dalc'het gant un implijour diseñvel eus ar servijour web. M'az eo bet stalied ar meziant gant an dorn eo normal. Gwiriit an aotreoù an teuliadoù meziant mañ:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "An azgoulenn a implij un dra diazezed war S3 evel e bern pennañ. Ar restroù pellkaset a vez bernied ebit point war ar servijour, setut perak eo kinniget kaout 50 GB plass dieub e teuliad PHP temp. Gwiriit ar gazetenn evit munudoù an hent hag ar plass dieub. Evit gwellat ar blass, cheñchit an teuliad amzeriel e-barzh php.ini pa roit muioc'h a blass en hent.", "Error occurred while checking server setup" : "Ur vazi a zo bet pa omp o gwiriañ staliadur ar servijour", @@ -114,12 +113,14 @@ "Install the Contacts app" : "Stalliaén ar meziant darempredoù", "Loading your contacts …" : "O kargañ o darempredoù", "Looking for {term} …" : "O klask {term} ...", + "Modified" : "Cheñchet", + "Today" : "Hiziv", + "Load more results" : "Kagañ muioc'h a disoc'hoù", "Forgot password?" : "Ger-tremen ankouaet?", "Back" : "Distro", "Reset search" : "Adkregiñ an enklask", "Start typing to search" : "Krogit da skrivañ evit klask", "Loading more results …" : "O kargañ muioc'h a zisoc'hoù ...", - "Load more results" : "Kagañ muioc'h a disoc'hoù", "Search" : "Klask", "No results for {query}" : "Disoc'h ebet evit {query}", "_Please enter {minSearchLength} character or more to search_::_Please enter {minSearchLength} characters or more to search_" : ["Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask","Lakait {minSearchLength} arouez pe muioc'h evit klask"], @@ -279,6 +280,7 @@ "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "N'eus ket eus ar modul PHP \"fileinfo\". Gwelloc'h eo aotreañ ar modul-mañ evit kaout an disoc'hoù gwellañ evit dizoloeiñ ar stumm MIME.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ho PHP ne zoug ket FreeType, terriñ ar skeudennoù trolinenn ha stummoù an etrefas.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "An etrefas a vank dezhañ moduloù PHP aliet. Evit gwellaat ar mont en dro hag ar c'heverlec’hded ez eo kinniget kenañ o staliañ.", + "The PHP memory limit is below the recommended value of 512MB." : "Bevenn memor PHP a zo dindan an hini kinniget eus 512MB.", "If it is not there ask your local administrator." : "M'a n'eo ket amañ, goulennit o merour lec'h.", "Settings" : "Arventennoù", "Show all contacts …" : "Diskwel tout an darempredoù ...", @@ -287,7 +289,6 @@ "No more subfolders in here" : "N'ez eus ket isteuliadoù all amañ", "Name" : "Anv", "Size" : "Ment", - "Modified" : "Cheñchet", "\"{name}\" is an invalid file name." : "N'eo ket \"{name}\" un anv restr aotreet.", "File name cannot be empty." : "N'hall ket anv ur restr bezañ goullo.", "\"/\" is not allowed inside a file name." : "N'eo ket aotreet \"/\" e anv ur restr.", diff --git a/core/l10n/ca.js b/core/l10n/ca.js index bc19c23699f..5e97358c08b 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -99,7 +99,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualment, s'utilitza l'SQLite com a rerefons de base de dades. Per a instal·lacions grans, es recomana canviar a un altre rerefons de base de dades.", "This is particularly recommended when using the desktop client for file synchronisation." : "Això és recomanable especialment quan utilitzeu el client d'escriptori per a la sincronització de fitxers.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Per a migrar a una altra base de dades, utilitzeu l'eina de la línia d'ordres «occ db:convert-type» o consulteu la {linkstart}documentació ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límit de memòria del PHP està per sota del valor recomanat de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunes carpetes d'aplicació són propietat d'un altre usuari i no de l'usuari del servidor web. Això pot passar si algunes aplicacions s'han instal·lat manualment. Comproveu els permisos de les carpetes d'aplicació següents:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "S'utilitza el MySQL com a base de dades, però no admet els caràcters de 4 bytes. Per a tractar caràcters de 4 bytes (com els emojis) sense problemes en els noms de fitxer o en els comentaris, per exemple, es recomana habilitar la compatibilitat amb 4 bytes en el MySQL. Per a conèixer més detalls, llegiu la {linkstart}pàgina de documentació sobre això ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Aquesta instància utilitza un magatzem d'objectes d'S3 com a emmagatzematge principal. Els fitxers pujats s'emmagatzemen temporalment en el servidor i, per tant, es recomana disposar de 50 GB d'espai lliure en la carpeta temporal del PHP. Consulteu els registres per a veure els detalls complets del camí i l'espai disponible. Per a millorar-ho, canvieu la carpeta temporal en el fitxer php.ini o allibereu-ne espai.", @@ -185,6 +184,12 @@ OC.L10N.register( "Install the Contacts app" : "Instal·la l'aplicació Contactes", "Loading your contacts …" : "S'estan carregant els contactes…", "Looking for {term} …" : "S'està cercant {term}…", + "Modified" : "Darrera modificació", + "Today" : "Avui", + "Last year" : "Últim any", + "Not found" : "No s'ha trobat", + "People" : "Persones", + "Load more results" : "Carrega més resultats", "Forgot password?" : "Heu oblidat la contrasenya?", "Back to login form" : "Torna al formulari d'inici de sessió", "Back" : "Torna", @@ -200,7 +205,6 @@ OC.L10N.register( "Search for {name} only" : "Cerca només de {name}", "Start typing to search" : "Escriviu per a cercar", "Loading more results …" : "S'estan carregant més resultats…", - "Load more results" : "Carrega més resultats", "Search" : "Cerca", "No results for {query}" : "No hi ha cap resultat per a {query}", "Press Enter to start searching" : "Premeu Retorn per a iniciar la cerca", @@ -396,6 +400,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "La vostra versió de PHP no és compatible amb FreeType, per la qual cosa és possible que les imatges de perfil i la interfície de paràmetres no funcionin correctament.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A aquesta instància li falten alguns mòduls de PHP recomanats. Es recomana instal·lar-los per a millorar el rendiment i la compatibilitat.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sembla que esteu executant una versió del PHP de 32 bits. El Nextcloud necessita 64 bits per a funcionar correctament. Actualitzeu el sistema operatiu i el PHP a 64 bits! Per a conèixer més detalls, llegiu la {linkstart}pàgina de documentació sobre això ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límit de memòria del PHP està per sota del valor recomanat de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "S'ha enviat un missatge de reinicialització de la contrasenya a l'adreça electrònica d'aquest compte. Si no el rebeu, comproveu les carpetes de correu brossa o demaneu ajuda a l'equip d'administració local.", "If it is not there ask your local administrator." : "Si no el trobeu, pregunteu a l'equip d'administració local.", "Press enter to start searching" : "Premeu Retorn per a iniciar la cerca", @@ -408,7 +413,6 @@ OC.L10N.register( "No more subfolders in here" : "No hi ha més subcarpetes aquí", "Name" : "Nom", "Size" : "Mida", - "Modified" : "Darrera modificació", "\"{name}\" is an invalid file name." : "«{name}» no és un nom fitxer vàlid.", "File name cannot be empty." : "El nom del fitxer no pot estar buit.", "\"/\" is not allowed inside a file name." : "El caràcter «/» no es pot utilitzar en el nom dels fitxers.", diff --git a/core/l10n/ca.json b/core/l10n/ca.json index 12262067d4e..c6321b5f986 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -97,7 +97,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualment, s'utilitza l'SQLite com a rerefons de base de dades. Per a instal·lacions grans, es recomana canviar a un altre rerefons de base de dades.", "This is particularly recommended when using the desktop client for file synchronisation." : "Això és recomanable especialment quan utilitzeu el client d'escriptori per a la sincronització de fitxers.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Per a migrar a una altra base de dades, utilitzeu l'eina de la línia d'ordres «occ db:convert-type» o consulteu la {linkstart}documentació ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límit de memòria del PHP està per sota del valor recomanat de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunes carpetes d'aplicació són propietat d'un altre usuari i no de l'usuari del servidor web. Això pot passar si algunes aplicacions s'han instal·lat manualment. Comproveu els permisos de les carpetes d'aplicació següents:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "S'utilitza el MySQL com a base de dades, però no admet els caràcters de 4 bytes. Per a tractar caràcters de 4 bytes (com els emojis) sense problemes en els noms de fitxer o en els comentaris, per exemple, es recomana habilitar la compatibilitat amb 4 bytes en el MySQL. Per a conèixer més detalls, llegiu la {linkstart}pàgina de documentació sobre això ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Aquesta instància utilitza un magatzem d'objectes d'S3 com a emmagatzematge principal. Els fitxers pujats s'emmagatzemen temporalment en el servidor i, per tant, es recomana disposar de 50 GB d'espai lliure en la carpeta temporal del PHP. Consulteu els registres per a veure els detalls complets del camí i l'espai disponible. Per a millorar-ho, canvieu la carpeta temporal en el fitxer php.ini o allibereu-ne espai.", @@ -183,6 +182,12 @@ "Install the Contacts app" : "Instal·la l'aplicació Contactes", "Loading your contacts …" : "S'estan carregant els contactes…", "Looking for {term} …" : "S'està cercant {term}…", + "Modified" : "Darrera modificació", + "Today" : "Avui", + "Last year" : "Últim any", + "Not found" : "No s'ha trobat", + "People" : "Persones", + "Load more results" : "Carrega més resultats", "Forgot password?" : "Heu oblidat la contrasenya?", "Back to login form" : "Torna al formulari d'inici de sessió", "Back" : "Torna", @@ -198,7 +203,6 @@ "Search for {name} only" : "Cerca només de {name}", "Start typing to search" : "Escriviu per a cercar", "Loading more results …" : "S'estan carregant més resultats…", - "Load more results" : "Carrega més resultats", "Search" : "Cerca", "No results for {query}" : "No hi ha cap resultat per a {query}", "Press Enter to start searching" : "Premeu Retorn per a iniciar la cerca", @@ -394,6 +398,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "La vostra versió de PHP no és compatible amb FreeType, per la qual cosa és possible que les imatges de perfil i la interfície de paràmetres no funcionin correctament.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A aquesta instància li falten alguns mòduls de PHP recomanats. Es recomana instal·lar-los per a millorar el rendiment i la compatibilitat.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sembla que esteu executant una versió del PHP de 32 bits. El Nextcloud necessita 64 bits per a funcionar correctament. Actualitzeu el sistema operatiu i el PHP a 64 bits! Per a conèixer més detalls, llegiu la {linkstart}pàgina de documentació sobre això ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límit de memòria del PHP està per sota del valor recomanat de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "S'ha enviat un missatge de reinicialització de la contrasenya a l'adreça electrònica d'aquest compte. Si no el rebeu, comproveu les carpetes de correu brossa o demaneu ajuda a l'equip d'administració local.", "If it is not there ask your local administrator." : "Si no el trobeu, pregunteu a l'equip d'administració local.", "Press enter to start searching" : "Premeu Retorn per a iniciar la cerca", @@ -406,7 +411,6 @@ "No more subfolders in here" : "No hi ha més subcarpetes aquí", "Name" : "Nom", "Size" : "Mida", - "Modified" : "Darrera modificació", "\"{name}\" is an invalid file name." : "«{name}» no és un nom fitxer vàlid.", "File name cannot be empty." : "El nom del fitxer no pot estar buit.", "\"/\" is not allowed inside a file name." : "El caràcter «/» no es pot utilitzar en el nom dels fitxers.", diff --git a/core/l10n/cs.js b/core/l10n/cs.js index 976016a1ec5..e12442d12f8 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -20,7 +20,7 @@ OC.L10N.register( "Invalid image" : "Neplatný obrázek", "No temporary profile picture available, try again" : "Není k dispozici žádný dočasný profilový obrázek – zkuste to znovu", "No crop data provided" : "Nezadáno, jak má být obrázek oříznut", - "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku", + "No valid crop data provided" : "Neposkytnuta platná data pro oříznutí obrázku", "Crop is not square" : "Ořez není čtvercový", "State token does not match" : "Stavový token se neshoduje", "Invalid app password" : "Neplatné heslo pro aplikaci", @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jako podpůrná databázová vrstva je nyní používáno SQLite. Pro větší instalace doporučujeme přejít na jinou databázi.", "This is particularly recommended when using the desktop client for file synchronisation." : "Toto je doporučeno zejména když používáte pro synchronizaci souborů desktop klienta.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Pokud chcete-li převést do jiné databáze, použijte nástroj pro příkazový řádek: „occ db:convert-type“, nebo si projděte {linkstart}dokumentaci ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Složky některých aplikací jsou vlastněny jiným uživatelem, než je ten webového serveru. To může být případ pokud aplikace byly nainstalované ručně. Zkontrolujte oprávnění následujících složek aplikací:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Jako databáze je používána MySQL, ale nepodporuje 4 bajtové znaky. Aby bylo možné takové znaky (jako například emotikony) v názvech souborů nebo komentářích zobrazit, je doporučeno zapnout podporu 4 bajtových znaků v MySQL. Bližší podrobnosti naleznete v {linkstart}dokumentaci na toto téma ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Tato instance používá jako hlavní úložiště objektové úložiště, založené na protokolu S3. Nahrané soubory jsou dočasně ukládány na server a proto je doporučeno mít 50 GB volného prostoru v adresáři temp pro PHP. Podrobnosti o umístění a prostoru, který je k dispozici naleznete v záznamu událostí. Pro navýšení kapacit nasměrujte v php.ini na jiný adresář nebo zvyšte kapacitu stávajícího umístění.", @@ -126,7 +125,7 @@ OC.L10N.register( "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto výsledky pro vaše hledání<script>alert(1)</script></strong>", "new" : "nový", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů","stáhnout %n souborů"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace, opuštění této stránky může v některých prostředích přerušit proces.", + "The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace – opuštění této stránky může v některých prostředích proces přerušit.", "Update to {version}" : "Aktualizovat na {version}", "An error occurred." : "Došlo k chybě.", "Please reload the page." : "Načtěte stránku znovu.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Více aplikací", "Currently open" : "Nyní otevřeno", "_{count} notification_::_{count} notifications_" : ["{count} upozornění","{count} upozornění","{count} upozornění","{count} upozornění"], + "Date range filter" : "Filtr datumového rozmezí", + "Pick start date" : "Vybrat datum začátku", + "Pick end date" : "Vybrat datum konce", + "Apply range" : "Uplatnit rozmezí", "Log in" : "Přihlásit", "Logging in …" : "Přihlašování…", "Server side authentication failed!" : "Ověření se na straně serveru se nezdařilo!", "Please contact your administrator." : "Obraťte se na svého správce.", + "Temporary error" : "Chvilková chyba", + "Please try again." : "Zkuste to znovu.", "An internal error occurred." : "Došlo k vnitřní chybě.", "Please try again or contact your administrator." : "Zkuste to znovu nebo se obraťte na správce.", "Account name or email" : "Název účtu nebo e-mail", @@ -189,6 +194,24 @@ OC.L10N.register( "Install the Contacts app" : "Nainstalovat aplikaci Kontakty", "Loading your contacts …" : "Načítání vašich kontaktů…", "Looking for {term} …" : "Hledání {term}…", + "Global search" : "Globální hledání", + "Search apps, files, tags, messages" : "Prohledat aplikace, soubory, štítky a zprávy", + "Apps and Settings" : "Aplikace a natavení", + "Modified" : "Upraveno", + "Today" : "Dnes", + "Last 7 days" : "Uplynulých 7 dnů", + "Last 30 days" : "Uplynulých 30 dnů", + "This year" : "Tento rok", + "Last year" : "Uplynulý rok", + "Custom date range" : "Uživatelsky určené datumové rozmezí", + "Search people" : "Hledat osoby", + "Not found" : "Nenalezeno", + "People" : "Lidé", + "Load more results" : "Načíst další výsledky", + "Search in" : "Hledat v", + "Start typing in search" : "Hledejte psaním ve vyhledávání", + "No matching results" : "Žádné odpovídající výsledky", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Mezi ${this.dateFilter.startFrom.toLocaleDateString()} a ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Zapomněli jste heslo?", "Back to login form" : "Zpět na formulář pro přihlášení", "Back" : "Zpět", @@ -204,7 +227,6 @@ OC.L10N.register( "Search for {name} only" : "Hledat pouze {name}", "Start typing to search" : "Hledejte psaním", "Loading more results …" : "Načítání dalších výsledků…", - "Load more results" : "Načíst další výsledky", "Search" : "Hledat", "No results for {query}" : "Pro {query} nic nenalezeno", "Press Enter to start searching" : "Vyhledávání zahájíte stisknutím klávesy Enter", @@ -402,6 +424,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vámi využívaná verze PHP nepodporuje FreeType, což bude mít za následky vizuální nedostatky u obrázků profilů a v rozhraní pro nastavování.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Této instanci chybí některé doporučené moduly pro PHP. V zájmu lepšího výkonu a kompatibility, je důrazně doporučeno je nainstalovat.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP! Bližší podrobnosti naleznete {linkstart}na stránce v dokumentaci ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Na e-mailovou adresu, vedenou k tomuto účtu, byla odeslána zpráva s pokyny pro znovunastavení hesla. Pokud jste ji neobdrželi, podívejte se také do složek s nevyžádanou poštou (spam) a/nebo požádejte svého místního správce o pomoc.", "If it is not there ask your local administrator." : "Pokud se tam nenachází, zeptejte se svého místního správce.", "Press enter to start searching" : "Vyhledávání zahájíte stisknutím klávesy Enter", @@ -414,7 +437,6 @@ OC.L10N.register( "No more subfolders in here" : "Nejsou zde žádné další podsložky", "Name" : "Název", "Size" : "Velikost", - "Modified" : "Upraveno", "\"{name}\" is an invalid file name." : "„{name}“ není platným názvem souboru.", "File name cannot be empty." : "Je třeba vyplnit název souboru.", "\"/\" is not allowed inside a file name." : "„/“ není povolený znak v názvu souboru.", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index 3c208fe268d..95d916ded8e 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -18,7 +18,7 @@ "Invalid image" : "Neplatný obrázek", "No temporary profile picture available, try again" : "Není k dispozici žádný dočasný profilový obrázek – zkuste to znovu", "No crop data provided" : "Nezadáno, jak má být obrázek oříznut", - "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku", + "No valid crop data provided" : "Neposkytnuta platná data pro oříznutí obrázku", "Crop is not square" : "Ořez není čtvercový", "State token does not match" : "Stavový token se neshoduje", "Invalid app password" : "Neplatné heslo pro aplikaci", @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jako podpůrná databázová vrstva je nyní používáno SQLite. Pro větší instalace doporučujeme přejít na jinou databázi.", "This is particularly recommended when using the desktop client for file synchronisation." : "Toto je doporučeno zejména když používáte pro synchronizaci souborů desktop klienta.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Pokud chcete-li převést do jiné databáze, použijte nástroj pro příkazový řádek: „occ db:convert-type“, nebo si projděte {linkstart}dokumentaci ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Složky některých aplikací jsou vlastněny jiným uživatelem, než je ten webového serveru. To může být případ pokud aplikace byly nainstalované ručně. Zkontrolujte oprávnění následujících složek aplikací:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Jako databáze je používána MySQL, ale nepodporuje 4 bajtové znaky. Aby bylo možné takové znaky (jako například emotikony) v názvech souborů nebo komentářích zobrazit, je doporučeno zapnout podporu 4 bajtových znaků v MySQL. Bližší podrobnosti naleznete v {linkstart}dokumentaci na toto téma ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Tato instance používá jako hlavní úložiště objektové úložiště, založené na protokolu S3. Nahrané soubory jsou dočasně ukládány na server a proto je doporučeno mít 50 GB volného prostoru v adresáři temp pro PHP. Podrobnosti o umístění a prostoru, který je k dispozici naleznete v záznamu událostí. Pro navýšení kapacit nasměrujte v php.ini na jiný adresář nebo zvyšte kapacitu stávajícího umístění.", @@ -124,7 +123,7 @@ "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto výsledky pro vaše hledání<script>alert(1)</script></strong>", "new" : "nový", "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů","stáhnout %n souborů"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace, opuštění této stránky může v některých prostředích přerušit proces.", + "The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace – opuštění této stránky může v některých prostředích proces přerušit.", "Update to {version}" : "Aktualizovat na {version}", "An error occurred." : "Došlo k chybě.", "Please reload the page." : "Načtěte stránku znovu.", @@ -136,10 +135,16 @@ "More apps" : "Více aplikací", "Currently open" : "Nyní otevřeno", "_{count} notification_::_{count} notifications_" : ["{count} upozornění","{count} upozornění","{count} upozornění","{count} upozornění"], + "Date range filter" : "Filtr datumového rozmezí", + "Pick start date" : "Vybrat datum začátku", + "Pick end date" : "Vybrat datum konce", + "Apply range" : "Uplatnit rozmezí", "Log in" : "Přihlásit", "Logging in …" : "Přihlašování…", "Server side authentication failed!" : "Ověření se na straně serveru se nezdařilo!", "Please contact your administrator." : "Obraťte se na svého správce.", + "Temporary error" : "Chvilková chyba", + "Please try again." : "Zkuste to znovu.", "An internal error occurred." : "Došlo k vnitřní chybě.", "Please try again or contact your administrator." : "Zkuste to znovu nebo se obraťte na správce.", "Account name or email" : "Název účtu nebo e-mail", @@ -187,6 +192,24 @@ "Install the Contacts app" : "Nainstalovat aplikaci Kontakty", "Loading your contacts …" : "Načítání vašich kontaktů…", "Looking for {term} …" : "Hledání {term}…", + "Global search" : "Globální hledání", + "Search apps, files, tags, messages" : "Prohledat aplikace, soubory, štítky a zprávy", + "Apps and Settings" : "Aplikace a natavení", + "Modified" : "Upraveno", + "Today" : "Dnes", + "Last 7 days" : "Uplynulých 7 dnů", + "Last 30 days" : "Uplynulých 30 dnů", + "This year" : "Tento rok", + "Last year" : "Uplynulý rok", + "Custom date range" : "Uživatelsky určené datumové rozmezí", + "Search people" : "Hledat osoby", + "Not found" : "Nenalezeno", + "People" : "Lidé", + "Load more results" : "Načíst další výsledky", + "Search in" : "Hledat v", + "Start typing in search" : "Hledejte psaním ve vyhledávání", + "No matching results" : "Žádné odpovídající výsledky", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Mezi ${this.dateFilter.startFrom.toLocaleDateString()} a ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Zapomněli jste heslo?", "Back to login form" : "Zpět na formulář pro přihlášení", "Back" : "Zpět", @@ -202,7 +225,6 @@ "Search for {name} only" : "Hledat pouze {name}", "Start typing to search" : "Hledejte psaním", "Loading more results …" : "Načítání dalších výsledků…", - "Load more results" : "Načíst další výsledky", "Search" : "Hledat", "No results for {query}" : "Pro {query} nic nenalezeno", "Press Enter to start searching" : "Vyhledávání zahájíte stisknutím klávesy Enter", @@ -400,6 +422,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vámi využívaná verze PHP nepodporuje FreeType, což bude mít za následky vizuální nedostatky u obrázků profilů a v rozhraní pro nastavování.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Této instanci chybí některé doporučené moduly pro PHP. V zájmu lepšího výkonu a kompatibility, je důrazně doporučeno je nainstalovat.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP! Bližší podrobnosti naleznete {linkstart}na stránce v dokumentaci ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Na e-mailovou adresu, vedenou k tomuto účtu, byla odeslána zpráva s pokyny pro znovunastavení hesla. Pokud jste ji neobdrželi, podívejte se také do složek s nevyžádanou poštou (spam) a/nebo požádejte svého místního správce o pomoc.", "If it is not there ask your local administrator." : "Pokud se tam nenachází, zeptejte se svého místního správce.", "Press enter to start searching" : "Vyhledávání zahájíte stisknutím klávesy Enter", @@ -412,7 +435,6 @@ "No more subfolders in here" : "Nejsou zde žádné další podsložky", "Name" : "Název", "Size" : "Velikost", - "Modified" : "Upraveno", "\"{name}\" is an invalid file name." : "„{name}“ není platným názvem souboru.", "File name cannot be empty." : "Je třeba vyplnit název souboru.", "\"/\" is not allowed inside a file name." : "„/“ není povolený znak v názvu souboru.", diff --git a/core/l10n/da.js b/core/l10n/da.js index 8ad3b4acfcb..e5f207d6669 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite bruges i øjeblikket som database. Til større installationer anbefaler vi at skifte til en anden database.", "This is particularly recommended when using the desktop client for file synchronisation." : "Det er specielt anbefalet når arbejdstationsklienten anvendes til filsynkronisering.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "For at migrere til en anden database skal du bruge kommandolinjeværktøjet: 'occ db:convert-type', eller se {linkstart}dokumentationen ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP grænsen for hukommelse er indstillet under den anbefalede grænse på 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Nogle app mapper er ejet af en anden bruger end web server brugeren. Dette kan ske hvis apps er blevet installeret manuelt. Tjek rettigheder på de følgende app mapper:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL bruges som database, men understøtter ikke 4-byte tegn. For at kunne håndtere 4-byte-tegn (som emojis) uden problemer i f.eks. filnavne eller kommentarer, anbefales det at aktivere 4-byte-understøttelsen i MySQL. For yderligere detaljer læs {linkstart}dokumentationssiden om dette ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Denne server bruger en S3-baseret objekt butik som primærlager. De uploadede filer gemmes midlertidigt på serveren, og det anbefales derfor at have 50 GB ledig plads tilgængelig i PHP-biblioteket. Kontroller logfilerne for at få flere detaljer om stien og den ledige plads. For at forbedre dette ændrer du den midlertidige mappe i php.ini eller giver mere plads på den pågældende sti.", @@ -189,6 +188,11 @@ OC.L10N.register( "Install the Contacts app" : "Installer Kontakter-appen", "Loading your contacts …" : "Henter dine kontakter …", "Looking for {term} …" : "Leder efter {term} …", + "Modified" : "Ændret", + "Today" : "I dag", + "Not found" : "Ikke fundet", + "People" : "Personer", + "Load more results" : "Hent flere resultater", "Forgot password?" : "Glemt adgangskode?", "Back to login form" : "Tilbage til login-formularen", "Back" : "Tilbage", @@ -204,7 +208,6 @@ OC.L10N.register( "Search for {name} only" : "Søg kun efter {name}", "Start typing to search" : "Start med at skrive for at søge", "Loading more results …" : "Henter flere resultater...", - "Load more results" : "Hent flere resultater", "Search" : "Søg", "No results for {query}" : "Ingen søgeresultater for {query}", "Press Enter to start searching" : "Tast Enter for at starte søgning", @@ -402,6 +405,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP version har ikke FreeType-support, hvilket resulterer i brud på profilbilleder og indstillingerne.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Denne forekomst mangler nogle anbefalede PHP moduler. For bedre performance og bedre kompatibilitet, anbefales det højt at installere dem.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Det ser ud til, at du kører en 32-bit PHP-version. Nextcloud har brug for 64-bit for at køre godt. Opgrader venligst dit OS og PHP til 64-bit! For yderligere detaljer læs {linkstart}dokumentationssiden om dette ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP grænsen for hukommelse er indstillet under den anbefalede grænse på 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "En besked om nulstilling af adgangskode er blevet sendt til e-mailadressen på denne konto. Hvis du ikke modtager det, så tjek dine spam-/junk-mapper eller spørg din lokale administrator om hjælp.", "If it is not there ask your local administrator." : "Hvis den ikke er der så spørg din lokale administrator.", "Press enter to start searching" : "Tast retur for at starte søgning", @@ -414,7 +418,6 @@ OC.L10N.register( "No more subfolders in here" : "Her er ikke flere undermapper", "Name" : "Navn", "Size" : "Størrelse", - "Modified" : "Ændret", "\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.", "File name cannot be empty." : "Filnavnet kan ikke stå tomt.", "\"/\" is not allowed inside a file name." : "\"/\" er ikke tilladt i et filnavn.", diff --git a/core/l10n/da.json b/core/l10n/da.json index b77e50ec096..af1ed4580a0 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite bruges i øjeblikket som database. Til større installationer anbefaler vi at skifte til en anden database.", "This is particularly recommended when using the desktop client for file synchronisation." : "Det er specielt anbefalet når arbejdstationsklienten anvendes til filsynkronisering.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "For at migrere til en anden database skal du bruge kommandolinjeværktøjet: 'occ db:convert-type', eller se {linkstart}dokumentationen ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP grænsen for hukommelse er indstillet under den anbefalede grænse på 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Nogle app mapper er ejet af en anden bruger end web server brugeren. Dette kan ske hvis apps er blevet installeret manuelt. Tjek rettigheder på de følgende app mapper:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL bruges som database, men understøtter ikke 4-byte tegn. For at kunne håndtere 4-byte-tegn (som emojis) uden problemer i f.eks. filnavne eller kommentarer, anbefales det at aktivere 4-byte-understøttelsen i MySQL. For yderligere detaljer læs {linkstart}dokumentationssiden om dette ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Denne server bruger en S3-baseret objekt butik som primærlager. De uploadede filer gemmes midlertidigt på serveren, og det anbefales derfor at have 50 GB ledig plads tilgængelig i PHP-biblioteket. Kontroller logfilerne for at få flere detaljer om stien og den ledige plads. For at forbedre dette ændrer du den midlertidige mappe i php.ini eller giver mere plads på den pågældende sti.", @@ -187,6 +186,11 @@ "Install the Contacts app" : "Installer Kontakter-appen", "Loading your contacts …" : "Henter dine kontakter …", "Looking for {term} …" : "Leder efter {term} …", + "Modified" : "Ændret", + "Today" : "I dag", + "Not found" : "Ikke fundet", + "People" : "Personer", + "Load more results" : "Hent flere resultater", "Forgot password?" : "Glemt adgangskode?", "Back to login form" : "Tilbage til login-formularen", "Back" : "Tilbage", @@ -202,7 +206,6 @@ "Search for {name} only" : "Søg kun efter {name}", "Start typing to search" : "Start med at skrive for at søge", "Loading more results …" : "Henter flere resultater...", - "Load more results" : "Hent flere resultater", "Search" : "Søg", "No results for {query}" : "Ingen søgeresultater for {query}", "Press Enter to start searching" : "Tast Enter for at starte søgning", @@ -400,6 +403,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP version har ikke FreeType-support, hvilket resulterer i brud på profilbilleder og indstillingerne.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Denne forekomst mangler nogle anbefalede PHP moduler. For bedre performance og bedre kompatibilitet, anbefales det højt at installere dem.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Det ser ud til, at du kører en 32-bit PHP-version. Nextcloud har brug for 64-bit for at køre godt. Opgrader venligst dit OS og PHP til 64-bit! For yderligere detaljer læs {linkstart}dokumentationssiden om dette ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP grænsen for hukommelse er indstillet under den anbefalede grænse på 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "En besked om nulstilling af adgangskode er blevet sendt til e-mailadressen på denne konto. Hvis du ikke modtager det, så tjek dine spam-/junk-mapper eller spørg din lokale administrator om hjælp.", "If it is not there ask your local administrator." : "Hvis den ikke er der så spørg din lokale administrator.", "Press enter to start searching" : "Tast retur for at starte søgning", @@ -412,7 +416,6 @@ "No more subfolders in here" : "Her er ikke flere undermapper", "Name" : "Navn", "Size" : "Størrelse", - "Modified" : "Ændret", "\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.", "File name cannot be empty." : "Filnavnet kan ikke stå tomt.", "\"/\" is not allowed inside a file name." : "\"/\" er ikke tilladt i et filnavn.", diff --git a/core/l10n/de.js b/core/l10n/de.js index 17937e7f9c3..5648872b5c8 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -99,7 +99,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Derzeit wird als Datenbank SQLite verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dies wird insbesondere bei der Benutzung des Desktop-Clients zur Synchronisierung empfohlen.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Befehlszeile: 'occ db:convert-type' oder schaue in der {linkstart}Dokumentation ↗{linkend} nach.", - "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Einige App-Ordner haben einen anderen Besitzer als der Benutzer des Webservers. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Prüfe die Berechtigungen der folgenden App-Ordner:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lese bitte {linkstart}die Dokumentationsseite hierzu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher. Die hochgeladenen Dateien werden temporär auf dem Server gespeichert und es wird daher empfohlen, 50 GB freien Speicherplatz im temp-Verzeichnis von PHP zur Verfügung zu haben. Überprüfe die Protokolle, um alle Details über den Pfad und den verfügbaren Platz zu erhalten. Um dies zu verbessern, kann das temporäre Verzeichnis in der php.ini geändert oder mehr Platz in diesem Pfad zur Verfügung gestellt werden.", @@ -184,6 +183,12 @@ OC.L10N.register( "Install the Contacts app" : "Kontakte-App installieren", "Loading your contacts …" : "Lade deine Kontakte …", "Looking for {term} …" : "Suche nach {term} …", + "Modified" : "Geändert", + "Today" : "Heute", + "Last year" : "Letztes Jahr", + "Not found" : "Nicht gefunden", + "People" : "Personen", + "Load more results" : "Weitere Ergebnisse laden", "Forgot password?" : "Passwort vergessen?", "Back" : "Zurück", "Login form is disabled." : "Das Anmeldeformular ist deaktiviert.", @@ -198,7 +203,6 @@ OC.L10N.register( "Search for {name} only" : "Nur nach {name} suchen", "Start typing to search" : "Beginne mit der Eingabe, um zu suchen", "Loading more results …" : "Lade weitere Ergebnisse …", - "Load more results" : "Weitere Ergebnisse laden", "Search" : "Suche", "No results for {query}" : "Keine Suchergebnisse zu {query}", "Press Enter to start searching" : "Zum Suchen EIngabetaste drücken", @@ -309,7 +313,7 @@ OC.L10N.register( "Please specify the port number along with the host name (e.g., localhost:5432)." : "Bitte die Portnummer mit der Hostadresse zusammen angeben (z. B. localhost:5432)", "Performance warning" : "Leistungswarnung", "You chose SQLite as database." : "Du hast SQLite als Datenbanktyp ausgewählt.", - "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite sollte nur für Minimal- und Entwicklungsinstanzen gewählt werden. Für die Produktion empfehlen wir ein anderes Datenbank-Backend.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite sollte nur für Minimal- und Entwicklungsinstanzen gewählt werden. Für die Produktion wird ein anderes Datenbank-Backend empfohlen.", "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Wenn Clients für die Dateisynchronisierung verwenden werden, so wird von der Verwendung von SQLite dringend abgeraten.", "Install" : "Installieren", "Installing …" : "Installiere …", @@ -388,10 +392,11 @@ OC.L10N.register( "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle bitte eine Internet-Verbindung für diesen Server her.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen findest du in unserer {linkstart}Dokumentation ↗{linkend}.", "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Von PHP wurde keine geeignete Quelle für Zufälligkeit gefunden, aus Sicht der Sicherheit ist dies bedenklich. Weitere Informationen sind in der {linkstart}Dokumentation ↗{linkend} zu finden.", - "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du verwendest im Moment PHP {version}. Wir empfehlen ein Upgrade deiner PHP Version, um die {linkstart}Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP Gruppe bereitgestellt werden↗{linkend}, sobald Deine Distribution diese unterstützt.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du verwendest im Moment PHP {version}. Es wird ein Upgrade deiner PHP Version empfohlen, um die {linkstart}Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP Gruppe bereitgestellt werden↗{linkend}, sobald deine Distribution diese unterstützt.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Dein PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Anscheinend führst du eine 32-Bit-PHP-Version aus. Nextcloud benötigt 64bit, um gut zu laufen. Bitte aktualisiere dein Betriebssystem und PHP auf 64bit! Für weitere Details lese bitte die {linkstart}diesbezügliche Dokumentationsseite ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Eine Nachricht zum Zurücksetzen des Passworts wurde an die in diesem Konto hinterlegte E-Mail-Adresse gesendet. Wenn du diese nicht erhalten hast, prüfen bitte die Ordner Spam/Junk oder kontaktiere deinen lokalen Administrator für weitere Hilfe.", "If it is not there ask your local administrator." : "Wenn du keine E-Mail bekommen hast, wende dich bitte an deinen lokalen Administrator.", "Press enter to start searching" : "Zum Suchen Enter drücken", @@ -404,7 +409,6 @@ OC.L10N.register( "No more subfolders in here" : "Keine weiteren Unterordner vorhanden", "Name" : "Name", "Size" : "Größe", - "Modified" : "Geändert", "\"{name}\" is an invalid file name." : "\"{name}“ ist kein gültiger Dateiname.", "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", "\"/\" is not allowed inside a file name." : "\"/\" ist innerhalb eines Dateinamens nicht erlaubt.", diff --git a/core/l10n/de.json b/core/l10n/de.json index 0d82d7aa000..55edb69920a 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -97,7 +97,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Derzeit wird als Datenbank SQLite verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dies wird insbesondere bei der Benutzung des Desktop-Clients zur Synchronisierung empfohlen.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Befehlszeile: 'occ db:convert-type' oder schaue in der {linkstart}Dokumentation ↗{linkend} nach.", - "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Einige App-Ordner haben einen anderen Besitzer als der Benutzer des Webservers. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Prüfe die Berechtigungen der folgenden App-Ordner:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lese bitte {linkstart}die Dokumentationsseite hierzu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher. Die hochgeladenen Dateien werden temporär auf dem Server gespeichert und es wird daher empfohlen, 50 GB freien Speicherplatz im temp-Verzeichnis von PHP zur Verfügung zu haben. Überprüfe die Protokolle, um alle Details über den Pfad und den verfügbaren Platz zu erhalten. Um dies zu verbessern, kann das temporäre Verzeichnis in der php.ini geändert oder mehr Platz in diesem Pfad zur Verfügung gestellt werden.", @@ -182,6 +181,12 @@ "Install the Contacts app" : "Kontakte-App installieren", "Loading your contacts …" : "Lade deine Kontakte …", "Looking for {term} …" : "Suche nach {term} …", + "Modified" : "Geändert", + "Today" : "Heute", + "Last year" : "Letztes Jahr", + "Not found" : "Nicht gefunden", + "People" : "Personen", + "Load more results" : "Weitere Ergebnisse laden", "Forgot password?" : "Passwort vergessen?", "Back" : "Zurück", "Login form is disabled." : "Das Anmeldeformular ist deaktiviert.", @@ -196,7 +201,6 @@ "Search for {name} only" : "Nur nach {name} suchen", "Start typing to search" : "Beginne mit der Eingabe, um zu suchen", "Loading more results …" : "Lade weitere Ergebnisse …", - "Load more results" : "Weitere Ergebnisse laden", "Search" : "Suche", "No results for {query}" : "Keine Suchergebnisse zu {query}", "Press Enter to start searching" : "Zum Suchen EIngabetaste drücken", @@ -307,7 +311,7 @@ "Please specify the port number along with the host name (e.g., localhost:5432)." : "Bitte die Portnummer mit der Hostadresse zusammen angeben (z. B. localhost:5432)", "Performance warning" : "Leistungswarnung", "You chose SQLite as database." : "Du hast SQLite als Datenbanktyp ausgewählt.", - "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite sollte nur für Minimal- und Entwicklungsinstanzen gewählt werden. Für die Produktion empfehlen wir ein anderes Datenbank-Backend.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite sollte nur für Minimal- und Entwicklungsinstanzen gewählt werden. Für die Produktion wird ein anderes Datenbank-Backend empfohlen.", "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Wenn Clients für die Dateisynchronisierung verwenden werden, so wird von der Verwendung von SQLite dringend abgeraten.", "Install" : "Installieren", "Installing …" : "Installiere …", @@ -386,10 +390,11 @@ "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen externer Speicher, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle bitte eine Internet-Verbindung für diesen Server her.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen findest du in unserer {linkstart}Dokumentation ↗{linkend}.", "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Von PHP wurde keine geeignete Quelle für Zufälligkeit gefunden, aus Sicht der Sicherheit ist dies bedenklich. Weitere Informationen sind in der {linkstart}Dokumentation ↗{linkend} zu finden.", - "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du verwendest im Moment PHP {version}. Wir empfehlen ein Upgrade deiner PHP Version, um die {linkstart}Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP Gruppe bereitgestellt werden↗{linkend}, sobald Deine Distribution diese unterstützt.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du verwendest im Moment PHP {version}. Es wird ein Upgrade deiner PHP Version empfohlen, um die {linkstart}Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP Gruppe bereitgestellt werden↗{linkend}, sobald deine Distribution diese unterstützt.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Dein PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Anscheinend führst du eine 32-Bit-PHP-Version aus. Nextcloud benötigt 64bit, um gut zu laufen. Bitte aktualisiere dein Betriebssystem und PHP auf 64bit! Für weitere Details lese bitte die {linkstart}diesbezügliche Dokumentationsseite ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Eine Nachricht zum Zurücksetzen des Passworts wurde an die in diesem Konto hinterlegte E-Mail-Adresse gesendet. Wenn du diese nicht erhalten hast, prüfen bitte die Ordner Spam/Junk oder kontaktiere deinen lokalen Administrator für weitere Hilfe.", "If it is not there ask your local administrator." : "Wenn du keine E-Mail bekommen hast, wende dich bitte an deinen lokalen Administrator.", "Press enter to start searching" : "Zum Suchen Enter drücken", @@ -402,7 +407,6 @@ "No more subfolders in here" : "Keine weiteren Unterordner vorhanden", "Name" : "Name", "Size" : "Größe", - "Modified" : "Geändert", "\"{name}\" is an invalid file name." : "\"{name}“ ist kein gültiger Dateiname.", "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", "\"/\" is not allowed inside a file name." : "\"/\" ist innerhalb eines Dateinamens nicht erlaubt.", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 3908ce9869f..8f8d6c0a7fc 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wird als Datenbank verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dies wird insbesondere bei der Benutzung des Desktop-Clients zur Synchronisierung empfohlen.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Um zu einer anderen Datenbank zu migrieren, benutzen Sie bitte die Befehlszeile: \"occ db:convert-type\", oder in die {linkstart}Dokumentation ↗{linkend} schauen.", - "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Einige App-Ordner haben einen anderen Besitzer als der Benutzer des Webservers. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Prüfen Sie die Berechtigungen der folgenden App-Ordner:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lesen Sie bitte {linkstart}die Dokumentationsseite hierzu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher. Die hochgeladenen Dateien werden temporär auf dem Server gespeichert und es wird daher empfohlen, 50 GB freien Speicherplatz im temp-Verzeichnis von PHP zur Verfügung zu haben. Überprüfen Sie die Protokolle, um alle Details über den Pfad und den verfügbaren Platz zu erhalten. Um dies zu verbessern, kann das temporäre Verzeichnis in der php.ini geändert oder mehr Platz in diesem Pfad zur Verfügung gestellt werden.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Weitere Apps", "Currently open" : "Derzeit geöffnet", "_{count} notification_::_{count} notifications_" : ["{count} Benachrichtigung","{count} Benachrichtigungen"], + "Date range filter" : "Datumbereichsfilter", + "Pick start date" : "Startdatum wählen", + "Pick end date" : "Enddatum wählen", + "Apply range" : "Bereich anwenden", "Log in" : "Anmelden", "Logging in …" : "Melde an…", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktieren Sie Ihre Administration.", + "Temporary error" : "Vorübergehender Fehler", + "Please try again." : "Bitte erneut versuchen.", "An internal error occurred." : "Es ist ein interner Fehler aufgetreten.", "Please try again or contact your administrator." : "Bitte erneut versuchen oder kontaktieren Sie Ihre Administration.", "Account name or email" : "Kontoname oder E-Mail", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "Kontakte-App installieren", "Loading your contacts …" : "Lade Ihre Kontakte…", "Looking for {term} …" : "Suche nach {term}…", + "Global search" : "Globale Suche", + "Search apps, files, tags, messages" : "Nach Apps, Dateien, Schalgworten und Nachrichten suchen", + "Apps and Settings" : "Apps und Einstellungen", + "Modified" : "Geändert", + "Today" : "Heute", + "Last 7 days" : "Die letzten 7 Tage", + "Last 30 days" : "Die letzten 30 Tqage", + "This year" : "Dieses Jahr", + "Last year" : "Letztes Jahr", + "Custom date range" : "Benutzerdefinierter Zeitbereich", + "Search people" : "Personen suchen", + "Not found" : "Nicht gefunden", + "People" : "Personen", + "Load more results" : "Weitere Ergebnisse laden", + "Start typing in search" : "Mit der Sucheingabe beginnen", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Zwischen ${this.dateFilter.startFrom.toLocaleDateString()} und ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Passwort vergessen?", "Back to login form" : "Zurück zum Anmeldeformular", "Back" : "Zurück", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "Nur nach {name} suchen", "Start typing to search" : "Beginnen Sie mit der Eingabe, um zu suchen", "Loading more results …" : "Lade weitere Ergebnisse…", - "Load more results" : "Weitere Ergebnisse laden", "Search" : "Suche", "No results for {query}" : "Keine Suchergebnisse zu {query}", "Press Enter to start searching" : "Zum Suchen Eingabetaste drücken", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ihr PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sie scheinen eine 32-Bit PHP-Version auszuführen. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit! Für weitere Details lesen Sie die {linkstart}diesbezügliche Dokumentationsseite ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Eine Nachricht zum Zurücksetzen des Passworts wurde an die in diesem Konto hinterlegte E-Mail-Adresse gesendet. Wenn Sie diese nicht erhalten haben, prüfen Sie bitte den Spam/Junk-Ordner oder kontaktieren Sie Ihren lokalen Administrator für weitere Hilfe.", "If it is not there ask your local administrator." : "Wenn Sie keine E-Mail bekommen haben, wenden Sie sich bitte an Ihren lokalen Administrator.", "Press enter to start searching" : "Eingabetaste zum Starten der Suche drücken", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "Keine weiteren Unterordner vorhanden", "Name" : "Name", "Size" : "Größe", - "Modified" : "Geändert", "\"{name}\" is an invalid file name." : "\"{name}“ ist kein gültiger Dateiname.", "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", "\"/\" is not allowed inside a file name." : "\"/\" ist innerhalb eines Dateinamens nicht erlaubt.", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index ccd9e6c5aa7..fb8299c1bf6 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wird als Datenbank verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dies wird insbesondere bei der Benutzung des Desktop-Clients zur Synchronisierung empfohlen.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Um zu einer anderen Datenbank zu migrieren, benutzen Sie bitte die Befehlszeile: \"occ db:convert-type\", oder in die {linkstart}Dokumentation ↗{linkend} schauen.", - "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Einige App-Ordner haben einen anderen Besitzer als der Benutzer des Webservers. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Prüfen Sie die Berechtigungen der folgenden App-Ordner:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lesen Sie bitte {linkstart}die Dokumentationsseite hierzu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Diese Instanz verwendet einen S3-basierten Objektspeicher als Primärspeicher. Die hochgeladenen Dateien werden temporär auf dem Server gespeichert und es wird daher empfohlen, 50 GB freien Speicherplatz im temp-Verzeichnis von PHP zur Verfügung zu haben. Überprüfen Sie die Protokolle, um alle Details über den Pfad und den verfügbaren Platz zu erhalten. Um dies zu verbessern, kann das temporäre Verzeichnis in der php.ini geändert oder mehr Platz in diesem Pfad zur Verfügung gestellt werden.", @@ -136,10 +135,16 @@ "More apps" : "Weitere Apps", "Currently open" : "Derzeit geöffnet", "_{count} notification_::_{count} notifications_" : ["{count} Benachrichtigung","{count} Benachrichtigungen"], + "Date range filter" : "Datumbereichsfilter", + "Pick start date" : "Startdatum wählen", + "Pick end date" : "Enddatum wählen", + "Apply range" : "Bereich anwenden", "Log in" : "Anmelden", "Logging in …" : "Melde an…", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktieren Sie Ihre Administration.", + "Temporary error" : "Vorübergehender Fehler", + "Please try again." : "Bitte erneut versuchen.", "An internal error occurred." : "Es ist ein interner Fehler aufgetreten.", "Please try again or contact your administrator." : "Bitte erneut versuchen oder kontaktieren Sie Ihre Administration.", "Account name or email" : "Kontoname oder E-Mail", @@ -187,6 +192,22 @@ "Install the Contacts app" : "Kontakte-App installieren", "Loading your contacts …" : "Lade Ihre Kontakte…", "Looking for {term} …" : "Suche nach {term}…", + "Global search" : "Globale Suche", + "Search apps, files, tags, messages" : "Nach Apps, Dateien, Schalgworten und Nachrichten suchen", + "Apps and Settings" : "Apps und Einstellungen", + "Modified" : "Geändert", + "Today" : "Heute", + "Last 7 days" : "Die letzten 7 Tage", + "Last 30 days" : "Die letzten 30 Tqage", + "This year" : "Dieses Jahr", + "Last year" : "Letztes Jahr", + "Custom date range" : "Benutzerdefinierter Zeitbereich", + "Search people" : "Personen suchen", + "Not found" : "Nicht gefunden", + "People" : "Personen", + "Load more results" : "Weitere Ergebnisse laden", + "Start typing in search" : "Mit der Sucheingabe beginnen", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Zwischen ${this.dateFilter.startFrom.toLocaleDateString()} und ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Passwort vergessen?", "Back to login form" : "Zurück zum Anmeldeformular", "Back" : "Zurück", @@ -202,7 +223,6 @@ "Search for {name} only" : "Nur nach {name} suchen", "Start typing to search" : "Beginnen Sie mit der Eingabe, um zu suchen", "Loading more results …" : "Lade weitere Ergebnisse…", - "Load more results" : "Weitere Ergebnisse laden", "Search" : "Suche", "No results for {query}" : "Keine Suchergebnisse zu {query}", "Press Enter to start searching" : "Zum Suchen Eingabetaste drücken", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ihr PHP unterstützt Freetype nicht. Dies wird defekte Profilbilder und eine defekte Anzeige der Einstellungen verursachen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sie scheinen eine 32-Bit PHP-Version auszuführen. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit! Für weitere Details lesen Sie die {linkstart}diesbezügliche Dokumentationsseite ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Eine Nachricht zum Zurücksetzen des Passworts wurde an die in diesem Konto hinterlegte E-Mail-Adresse gesendet. Wenn Sie diese nicht erhalten haben, prüfen Sie bitte den Spam/Junk-Ordner oder kontaktieren Sie Ihren lokalen Administrator für weitere Hilfe.", "If it is not there ask your local administrator." : "Wenn Sie keine E-Mail bekommen haben, wenden Sie sich bitte an Ihren lokalen Administrator.", "Press enter to start searching" : "Eingabetaste zum Starten der Suche drücken", @@ -412,7 +433,6 @@ "No more subfolders in here" : "Keine weiteren Unterordner vorhanden", "Name" : "Name", "Size" : "Größe", - "Modified" : "Geändert", "\"{name}\" is an invalid file name." : "\"{name}“ ist kein gültiger Dateiname.", "File name cannot be empty." : "Der Dateiname darf nicht leer sein.", "\"/\" is not allowed inside a file name." : "\"/\" ist innerhalb eines Dateinamens nicht erlaubt.", diff --git a/core/l10n/el.js b/core/l10n/el.js index 4264f311321..66729bef378 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -101,7 +101,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Η SQLLite χρησιμοποιείται ως βάση δεδομένων για το backend. Για μεγαλύτερες εγκαταστάσεις προτείνουμε την αλλαγή σε διαφορετική βάση δεδομένων.", "This is particularly recommended when using the desktop client for file synchronisation." : "Συνιστάται ιδιαίτερα όταν χρησιμοποιείται για συγχρονισμό ο desktop client.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Για τη μετάβαση σε άλλη βάση δεδομένων χρησιμοποιήστε το εργαλείο γραμμής εντολών: \"occ db:convert-type\", ή ανατρέξτε στην {linkstart}τεκμηρίωση ↗ {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Το όριο μνήμης της PHP είναι κάτω της προτεινόμενης 512 ΜΒ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Ορισμένοι κατάλογοι εφαρμογών ανήκουν σε διαφορετικό χρήστη από αυτόν του διακομιστή ιστού. Αυτό μπορεί να συμβεί αν οι εφαρμογές έχουν εγκατασταθεί με μη αυτόματο τρόπο. Ελέγξτε τα δικαιώματα των ακόλουθων καταλόγων εφαρμογών:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Η MySQL χρησιμοποιείται ως βάση δεδομένων, αλλά δεν υποστηρίζει χαρακτήρες 4 byte. Για να μπορείτε να χειρίζεστε χαρακτήρες 4 byte (όπως emojis) χωρίς προβλήματα σε ονόματα αρχείων ή σχόλια για παράδειγμα, συνιστάται να ενεργοποιήσετε την υποστήριξη 4 byte στη MySQL. Για περισσότερες λεπτομέρειες διαβάστε {linkstart}τη σελίδα τεκμηρίωσης σχετικά με αυτό ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Η υπηρεσία χρησιμοποιεί ως κύριο τρόπο αποθήκευσης την S3 κατάσταση. Τα μεταφορτωμένα αρχεία αποθηκεύονται προσωρινά στον διακομιστή και επομένως συνιστάται να διατίθενται 50 GB ελεύθερου χώρου στον κατάλογο Temp της PHP. Ελέγξτε τα αρχεία καταγραφής για πλήρεις λεπτομέρειες σχετικά με τη διαδρομή και τον διαθέσιμο χώρο. Για να το βελτιώσετε, παρακαλούμε αλλάξτε τον προσωρινό κατάλογο στο php.ini ή διαθέστε περισσότερο χώρο σε αυτή τη διαδρομή.", @@ -188,6 +187,11 @@ OC.L10N.register( "Install the Contacts app" : "Εγκατάσταση εφαρμογής Επαφών", "Loading your contacts …" : "Φόρτωση των επαφών σας …", "Looking for {term} …" : "Αναζήτηση για {term} …", + "Modified" : "Τροποποιήθηκε", + "Last year" : "Προηγούμενος χρόνος", + "Not found" : "Δεν βρέθηκε", + "People" : "Άτομα", + "Load more results" : "Φόρτωση περισσοτέρων αποτελεσμάτων", "Forgot password?" : "Ξεχάσατε το συνθηματικό;", "Back to login form" : "Επιστροφή στη φόρμα σύνδεσης", "Back" : "Πίσω", @@ -203,7 +207,6 @@ OC.L10N.register( "Search for {name} only" : "Αναζήτηση για {name} μόνο", "Start typing to search" : "Ξεκινήστε την πληκτρολόγηση για αναζήτηση", "Loading more results …" : "Γίνεται φόρτωση περισσότερων αποτελεσμάτων …", - "Load more results" : "Φόρτωση περισσοτέρων αποτελεσμάτων", "Search" : "Αναζήτηση", "No results for {query}" : "Κανένα αποτέλεσμα για {query}", "Press Enter to start searching" : "Πατήστε Enter για να ξεκινήσετε την αναζήτηση", @@ -400,6 +403,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Η PHP δεν έχει υποστήριξη FreεType, με αποτέλεσμα τα σφάλματα στην εικόνα προφίλ και στις ρυθμίσεις διεπαφής χρήστη.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Σε αυτή την εγκατάσταση απουσιάζουν προτεινόμενα PHP πρόσθετα. Για καλύτερες επιδόσεις και συμβατότητα προτείνεται η εγκατάστασή τους.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Φαίνεται ότι εκτελείτε μια έκδοση PHP 32-bit. Το Nextcloud χρειάζεται 64-bit για να λειτουργεί καλά. Αναβαθμίστε το λειτουργικό σύστημα και την PHP σας σε 64-bit! Για περισσότερες λεπτομέρειες, διαβάστε {linkstart}τη σελίδα τεκμηρίωσης σχετικά με αυτό το ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Το όριο μνήμης της PHP είναι κάτω της προτεινόμενης 512 ΜΒ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ένα μήνυμα επαναφοράς κωδικού πρόσβασης έχει σταλεί στη διεύθυνση email αυτού του λογαριασμού. Εάν δεν το λάβετε, ελέγξτε τους φακέλους ανεπιθύμητης αλληλογραφίας/άχρηστων αρχείων ή ζητήστε βοήθεια από τον τοπικό σας διαχειριστή.", "If it is not there ask your local administrator." : "Εάν δεν είναι εκεί ρωτήστε τον τοπικό διαχειριστή σας.", "Press enter to start searching" : "Πατήστε enter για να ξεκινήσει η αναζήτηση", @@ -412,7 +416,6 @@ OC.L10N.register( "No more subfolders in here" : "Δεν υπάρχουν υποφάκελοι", "Name" : "Όνομα", "Size" : "Μέγεθος", - "Modified" : "Τροποποιήθηκε", "\"{name}\" is an invalid file name." : "Το \"{name}\" δεν είναι έγκυρο όνομα αρχείου.", "File name cannot be empty." : "Το όνομα αρχείου δεν μπορεί να είναι κενό.", "\"/\" is not allowed inside a file name." : "Το \"/\" δεν είναι επιτρεπτό εντός του ονόματος αρχείου.", diff --git a/core/l10n/el.json b/core/l10n/el.json index 602479d4d70..1b4fa26b963 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -99,7 +99,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Η SQLLite χρησιμοποιείται ως βάση δεδομένων για το backend. Για μεγαλύτερες εγκαταστάσεις προτείνουμε την αλλαγή σε διαφορετική βάση δεδομένων.", "This is particularly recommended when using the desktop client for file synchronisation." : "Συνιστάται ιδιαίτερα όταν χρησιμοποιείται για συγχρονισμό ο desktop client.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Για τη μετάβαση σε άλλη βάση δεδομένων χρησιμοποιήστε το εργαλείο γραμμής εντολών: \"occ db:convert-type\", ή ανατρέξτε στην {linkstart}τεκμηρίωση ↗ {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Το όριο μνήμης της PHP είναι κάτω της προτεινόμενης 512 ΜΒ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Ορισμένοι κατάλογοι εφαρμογών ανήκουν σε διαφορετικό χρήστη από αυτόν του διακομιστή ιστού. Αυτό μπορεί να συμβεί αν οι εφαρμογές έχουν εγκατασταθεί με μη αυτόματο τρόπο. Ελέγξτε τα δικαιώματα των ακόλουθων καταλόγων εφαρμογών:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Η MySQL χρησιμοποιείται ως βάση δεδομένων, αλλά δεν υποστηρίζει χαρακτήρες 4 byte. Για να μπορείτε να χειρίζεστε χαρακτήρες 4 byte (όπως emojis) χωρίς προβλήματα σε ονόματα αρχείων ή σχόλια για παράδειγμα, συνιστάται να ενεργοποιήσετε την υποστήριξη 4 byte στη MySQL. Για περισσότερες λεπτομέρειες διαβάστε {linkstart}τη σελίδα τεκμηρίωσης σχετικά με αυτό ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Η υπηρεσία χρησιμοποιεί ως κύριο τρόπο αποθήκευσης την S3 κατάσταση. Τα μεταφορτωμένα αρχεία αποθηκεύονται προσωρινά στον διακομιστή και επομένως συνιστάται να διατίθενται 50 GB ελεύθερου χώρου στον κατάλογο Temp της PHP. Ελέγξτε τα αρχεία καταγραφής για πλήρεις λεπτομέρειες σχετικά με τη διαδρομή και τον διαθέσιμο χώρο. Για να το βελτιώσετε, παρακαλούμε αλλάξτε τον προσωρινό κατάλογο στο php.ini ή διαθέστε περισσότερο χώρο σε αυτή τη διαδρομή.", @@ -186,6 +185,11 @@ "Install the Contacts app" : "Εγκατάσταση εφαρμογής Επαφών", "Loading your contacts …" : "Φόρτωση των επαφών σας …", "Looking for {term} …" : "Αναζήτηση για {term} …", + "Modified" : "Τροποποιήθηκε", + "Last year" : "Προηγούμενος χρόνος", + "Not found" : "Δεν βρέθηκε", + "People" : "Άτομα", + "Load more results" : "Φόρτωση περισσοτέρων αποτελεσμάτων", "Forgot password?" : "Ξεχάσατε το συνθηματικό;", "Back to login form" : "Επιστροφή στη φόρμα σύνδεσης", "Back" : "Πίσω", @@ -201,7 +205,6 @@ "Search for {name} only" : "Αναζήτηση για {name} μόνο", "Start typing to search" : "Ξεκινήστε την πληκτρολόγηση για αναζήτηση", "Loading more results …" : "Γίνεται φόρτωση περισσότερων αποτελεσμάτων …", - "Load more results" : "Φόρτωση περισσοτέρων αποτελεσμάτων", "Search" : "Αναζήτηση", "No results for {query}" : "Κανένα αποτέλεσμα για {query}", "Press Enter to start searching" : "Πατήστε Enter για να ξεκινήσετε την αναζήτηση", @@ -398,6 +401,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Η PHP δεν έχει υποστήριξη FreεType, με αποτέλεσμα τα σφάλματα στην εικόνα προφίλ και στις ρυθμίσεις διεπαφής χρήστη.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Σε αυτή την εγκατάσταση απουσιάζουν προτεινόμενα PHP πρόσθετα. Για καλύτερες επιδόσεις και συμβατότητα προτείνεται η εγκατάστασή τους.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Φαίνεται ότι εκτελείτε μια έκδοση PHP 32-bit. Το Nextcloud χρειάζεται 64-bit για να λειτουργεί καλά. Αναβαθμίστε το λειτουργικό σύστημα και την PHP σας σε 64-bit! Για περισσότερες λεπτομέρειες, διαβάστε {linkstart}τη σελίδα τεκμηρίωσης σχετικά με αυτό το ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Το όριο μνήμης της PHP είναι κάτω της προτεινόμενης 512 ΜΒ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ένα μήνυμα επαναφοράς κωδικού πρόσβασης έχει σταλεί στη διεύθυνση email αυτού του λογαριασμού. Εάν δεν το λάβετε, ελέγξτε τους φακέλους ανεπιθύμητης αλληλογραφίας/άχρηστων αρχείων ή ζητήστε βοήθεια από τον τοπικό σας διαχειριστή.", "If it is not there ask your local administrator." : "Εάν δεν είναι εκεί ρωτήστε τον τοπικό διαχειριστή σας.", "Press enter to start searching" : "Πατήστε enter για να ξεκινήσει η αναζήτηση", @@ -410,7 +414,6 @@ "No more subfolders in here" : "Δεν υπάρχουν υποφάκελοι", "Name" : "Όνομα", "Size" : "Μέγεθος", - "Modified" : "Τροποποιήθηκε", "\"{name}\" is an invalid file name." : "Το \"{name}\" δεν είναι έγκυρο όνομα αρχείου.", "File name cannot be empty." : "Το όνομα αρχείου δεν μπορεί να είναι κενό.", "\"/\" is not allowed inside a file name." : "Το \"/\" δεν είναι επιτρεπτό εντός του ονόματος αρχείου.", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index cc8ec8d5bab..223a0f0471c 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "This is particularly recommended when using the desktop client for file synchronisation.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.", @@ -189,6 +188,12 @@ OC.L10N.register( "Install the Contacts app" : "Install the Contacts app", "Loading your contacts …" : "Loading your contacts …", "Looking for {term} …" : "Looking for {term} …", + "Modified" : "Modified", + "Today" : "Today", + "Last year" : "Last year", + "Not found" : "Not found", + "People" : "People", + "Load more results" : "Load more results", "Forgot password?" : "Forgot password?", "Back to login form" : "Back to login form", "Back" : "Back", @@ -204,7 +209,6 @@ OC.L10N.register( "Search for {name} only" : "Search for {name} only", "Start typing to search" : "Start typing to search", "Loading more results …" : "Loading more results …", - "Load more results" : "Load more results", "Search" : "Search", "No results for {query}" : "No results for {query}", "Press Enter to start searching" : "Press Enter to start searching", @@ -402,6 +406,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help.", "If it is not there ask your local administrator." : "If it is not there ask your local administrator.", "Press enter to start searching" : "Press enter to start searching", @@ -414,7 +419,6 @@ OC.L10N.register( "No more subfolders in here" : "No more subfolders in here", "Name" : "Name", "Size" : "Size", - "Modified" : "Modified", "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", "File name cannot be empty." : "File name cannot be empty.", "\"/\" is not allowed inside a file name." : "\"/\" is not allowed inside a file name.", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 8621b976a7e..749f85fd0d4 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "This is particularly recommended when using the desktop client for file synchronisation.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.", @@ -187,6 +186,12 @@ "Install the Contacts app" : "Install the Contacts app", "Loading your contacts …" : "Loading your contacts …", "Looking for {term} …" : "Looking for {term} …", + "Modified" : "Modified", + "Today" : "Today", + "Last year" : "Last year", + "Not found" : "Not found", + "People" : "People", + "Load more results" : "Load more results", "Forgot password?" : "Forgot password?", "Back to login form" : "Back to login form", "Back" : "Back", @@ -202,7 +207,6 @@ "Search for {name} only" : "Search for {name} only", "Start typing to search" : "Start typing to search", "Loading more results …" : "Loading more results …", - "Load more results" : "Load more results", "Search" : "Search", "No results for {query}" : "No results for {query}", "Press Enter to start searching" : "Press Enter to start searching", @@ -400,6 +404,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help.", "If it is not there ask your local administrator." : "If it is not there ask your local administrator.", "Press enter to start searching" : "Press enter to start searching", @@ -412,7 +417,6 @@ "No more subfolders in here" : "No more subfolders in here", "Name" : "Name", "Size" : "Size", - "Modified" : "Modified", "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", "File name cannot be empty." : "File name cannot be empty.", "\"/\" is not allowed inside a file name." : "\"/\" is not allowed inside a file name.", diff --git a/core/l10n/eo.js b/core/l10n/eo.js index a7106e65d4b..d9dd78acb71 100644 --- a/core/l10n/eo.js +++ b/core/l10n/eo.js @@ -78,7 +78,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "En tiu servilo, la PHP-modulo „php-imagick“ ne subtenas SVG. Por pli bona kongrueco, instalu ĝin.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite estas la nuna datumbazo uzita de la servilo. Por grandaj instalaĵoj, ni rekomendas uzi alian tipon de datumbazo.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tio estas precipe rekomendinda, kiam oni uzas la surtablan programon por sinkronigi la dosierojn.", - "The PHP memory limit is below the recommended value of 512MB." : "La PHP-memorlimo estas sub la rekomendita valoro de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Kelkaj aplikaĵ-dosierujoj apartenas al malsama uzanto ol tiu de la retservilo. Tio povas okazi, kiam aplikaĵoj estis instalita mane. Kontrolu la permesojn de la jenaj dosierujoj:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Tiu Nextcloud-servilo uzas objektokonservejon bazitan sur S3 kiel ĉefkonservejo. La alŝutitaj dosieroj provizore konserviĝas en la servilo, kaj pro tio oni rekomendas havi liberan spacon je 50 GB en la PHP-a provizora dosierujo. Kontrolu la protokolojn por ĉiuj detaloj pri la dosiervojo kaj la libera spaco. Do, aŭ ŝanĝu la provizoran dosierujon en „php.ini“, aŭ liberigu spacon en tiu loko.", "Error occurred while checking server setup" : "Eraro dum kontrolo de servila agordo", @@ -138,6 +137,9 @@ OC.L10N.register( "Install the Contacts app" : "Instali la Kontakto-aplikaĵon", "Loading your contacts …" : "Ŝargo de viaj kontaktoj...", "Looking for {term} …" : "Serĉo de {term}…", + "Modified" : "Modifita", + "Today" : "Hodiaŭ", + "Not found" : "Ne trovita", "Forgot password?" : "Ĉu vi forgesis vian pasvorton?", "Back" : "Antaŭen", "Edit Profile" : "Modifi profilon", @@ -311,6 +313,7 @@ OC.L10N.register( "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Via instalaĵo ne difinas defaŭltan telefon-regionon. Tio necesas por validigi telefonnumerojn en la profil-agordoj sen landkodo. Por ebligi la uzon de numeroj sen lankodo, aldonu „default_phone_region“ kun la {linkstart}ISO-3166-1-kodo ↗{linkend} de via regiono en la agordodosiero.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Via PHP ne subtenas la bibliotekon FreeType, kio provokos misfunkcion de profilbildo kaj de la agorda fasado.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "En tiu servilo mankas rekomenditaj PHP-moduloj. Por pli da rapideco kaj pli bona kongrueco, bv. instali ilin.", + "The PHP memory limit is below the recommended value of 512MB." : "La PHP-memorlimo estas sub la rekomendita valoro de 512 MB.", "If it is not there ask your local administrator." : "Se tio ne estas tie, kontaktu vian lokan administranton.", "Settings" : "Agordo", "Show all contacts …" : "Montri ĉiujn kontaktojn", @@ -319,7 +322,6 @@ OC.L10N.register( "No more subfolders in here" : "Ne plu estas subdosierujo ĉi tie.", "Name" : "Nomo", "Size" : "Grando", - "Modified" : "Modifita", "\"{name}\" is an invalid file name." : "„{name}“ estas nevalida dosiernomo.", "File name cannot be empty." : "Dosiernomo devas ne malpleni.", "\"/\" is not allowed inside a file name." : "Ne eblas uziĝi „/“ en dosiernomo.", diff --git a/core/l10n/eo.json b/core/l10n/eo.json index 6a63ee4e7bc..1078a093877 100644 --- a/core/l10n/eo.json +++ b/core/l10n/eo.json @@ -76,7 +76,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "En tiu servilo, la PHP-modulo „php-imagick“ ne subtenas SVG. Por pli bona kongrueco, instalu ĝin.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite estas la nuna datumbazo uzita de la servilo. Por grandaj instalaĵoj, ni rekomendas uzi alian tipon de datumbazo.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tio estas precipe rekomendinda, kiam oni uzas la surtablan programon por sinkronigi la dosierojn.", - "The PHP memory limit is below the recommended value of 512MB." : "La PHP-memorlimo estas sub la rekomendita valoro de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Kelkaj aplikaĵ-dosierujoj apartenas al malsama uzanto ol tiu de la retservilo. Tio povas okazi, kiam aplikaĵoj estis instalita mane. Kontrolu la permesojn de la jenaj dosierujoj:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Tiu Nextcloud-servilo uzas objektokonservejon bazitan sur S3 kiel ĉefkonservejo. La alŝutitaj dosieroj provizore konserviĝas en la servilo, kaj pro tio oni rekomendas havi liberan spacon je 50 GB en la PHP-a provizora dosierujo. Kontrolu la protokolojn por ĉiuj detaloj pri la dosiervojo kaj la libera spaco. Do, aŭ ŝanĝu la provizoran dosierujon en „php.ini“, aŭ liberigu spacon en tiu loko.", "Error occurred while checking server setup" : "Eraro dum kontrolo de servila agordo", @@ -136,6 +135,9 @@ "Install the Contacts app" : "Instali la Kontakto-aplikaĵon", "Loading your contacts …" : "Ŝargo de viaj kontaktoj...", "Looking for {term} …" : "Serĉo de {term}…", + "Modified" : "Modifita", + "Today" : "Hodiaŭ", + "Not found" : "Ne trovita", "Forgot password?" : "Ĉu vi forgesis vian pasvorton?", "Back" : "Antaŭen", "Edit Profile" : "Modifi profilon", @@ -309,6 +311,7 @@ "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Via instalaĵo ne difinas defaŭltan telefon-regionon. Tio necesas por validigi telefonnumerojn en la profil-agordoj sen landkodo. Por ebligi la uzon de numeroj sen lankodo, aldonu „default_phone_region“ kun la {linkstart}ISO-3166-1-kodo ↗{linkend} de via regiono en la agordodosiero.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Via PHP ne subtenas la bibliotekon FreeType, kio provokos misfunkcion de profilbildo kaj de la agorda fasado.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "En tiu servilo mankas rekomenditaj PHP-moduloj. Por pli da rapideco kaj pli bona kongrueco, bv. instali ilin.", + "The PHP memory limit is below the recommended value of 512MB." : "La PHP-memorlimo estas sub la rekomendita valoro de 512 MB.", "If it is not there ask your local administrator." : "Se tio ne estas tie, kontaktu vian lokan administranton.", "Settings" : "Agordo", "Show all contacts …" : "Montri ĉiujn kontaktojn", @@ -317,7 +320,6 @@ "No more subfolders in here" : "Ne plu estas subdosierujo ĉi tie.", "Name" : "Nomo", "Size" : "Grando", - "Modified" : "Modifita", "\"{name}\" is an invalid file name." : "„{name}“ estas nevalida dosiernomo.", "File name cannot be empty." : "Dosiernomo devas ne malpleni.", "\"/\" is not allowed inside a file name." : "Ne eblas uziĝi „/“ en dosiernomo.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 1868ea9930e..cd73492ddde 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente se está usando SQLite como base de datos. Para instalaciones más largas recomendamos cambiar a un motor de bases de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto está particularmente indicado si se usa el cliente de escritorio para la sincronización.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a otra base de datos use la herramienta por línea de comandos (CLI): \"occ db:convert-type\", o revise la {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria de PHP está por debajo del valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunos directorios de apps son propiedad de un usuario diferente del usuario del servidor web. Este puede ser el caso si se han instalado apps manualmente. Comprueba los permisos de los siguientes directorios de apps:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Se utiliza MySQL como base de datos pero no soporta caracteres de 4 bytes. Para poder manejar caracteres de 4 bytes (como los emojis) sin problemas en los nombres de archivos o comentarios, se recomienda activar el soporte de 4 bytes en MySQL. Para más detalles consulta {linkstart}la página de documentación sobre esto ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia usa un almacenamiento de objetos basado en S3 como almacenamiento primario. Los archivos subidos se almacena temporalmente en el servidor y por eso se recomienda tener 50 GB de espacio libre en el directorio temporal de PHP. Comprueba los registros para detalles completos sobre la ruta y el espacio disponible. Para mejora esto, por favor, cambia el directorio temporal en el php.ini o aumenta el espacio disponible en esa ruta.", @@ -189,6 +188,11 @@ OC.L10N.register( "Install the Contacts app" : "Instala la aplicación Contactos", "Loading your contacts …" : "Cargando tus contactos...", "Looking for {term} …" : "Buscando {term}...", + "Modified" : "Modificado", + "Last year" : "Último año", + "Not found" : "No encontrado", + "People" : "Personas", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Contraseña olvidada?", "Back to login form" : "Volver al formulario de inicio de sesión", "Back" : "Atrás", @@ -204,7 +208,6 @@ OC.L10N.register( "Search for {name} only" : "Buscar solo por {name}", "Start typing to search" : "Empieza a escribir para buscar", "Loading more results …" : "Cargando más resultados …", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "No results for {query}" : "Sin resultados para {query}", "Press Enter to start searching" : "Pulse Enter para iniciar la búsqueda", @@ -402,6 +405,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no tiene soporte FreeType, lo que provoca una rotura en las imágenes de perfil y en la interfaz de los ajustes.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia le faltan algunos módulos PHP recomendados. Para mejorar el rendimiento y aumentar la compatibilidad, se recomienda encarecidamente instalarlos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que está ejecutando una versión de PHP de 32 bits. Nextcloud necesita 64 bits para su correcto funcionamiento. ¡Por favor, actualice su sistema operativo y PHP a 64 bits! Puede leer más detalles en {linkstart}la página de documentación correspondiente ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria de PHP está por debajo del valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Se ha enviado a tu dirección de correo un mensaje para reiniciar la contraseña. Si no lo recibes, comprueba si está en el buzón de Correo No Deseado (Spam) o pide ayuda a tu administrador local.", "If it is not there ask your local administrator." : "Si no está ahí ponte en contacto con el administrador local", "Press enter to start searching" : "Pulse Intro para iniciar la búsqueda", @@ -414,7 +418,6 @@ OC.L10N.register( "No more subfolders in here" : "No hay más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "\"/\" no se permite en un nombre de archivo.", diff --git a/core/l10n/es.json b/core/l10n/es.json index e46d349550b..52a374040d7 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente se está usando SQLite como base de datos. Para instalaciones más largas recomendamos cambiar a un motor de bases de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto está particularmente indicado si se usa el cliente de escritorio para la sincronización.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a otra base de datos use la herramienta por línea de comandos (CLI): \"occ db:convert-type\", o revise la {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria de PHP está por debajo del valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunos directorios de apps son propiedad de un usuario diferente del usuario del servidor web. Este puede ser el caso si se han instalado apps manualmente. Comprueba los permisos de los siguientes directorios de apps:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Se utiliza MySQL como base de datos pero no soporta caracteres de 4 bytes. Para poder manejar caracteres de 4 bytes (como los emojis) sin problemas en los nombres de archivos o comentarios, se recomienda activar el soporte de 4 bytes en MySQL. Para más detalles consulta {linkstart}la página de documentación sobre esto ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia usa un almacenamiento de objetos basado en S3 como almacenamiento primario. Los archivos subidos se almacena temporalmente en el servidor y por eso se recomienda tener 50 GB de espacio libre en el directorio temporal de PHP. Comprueba los registros para detalles completos sobre la ruta y el espacio disponible. Para mejora esto, por favor, cambia el directorio temporal en el php.ini o aumenta el espacio disponible en esa ruta.", @@ -187,6 +186,11 @@ "Install the Contacts app" : "Instala la aplicación Contactos", "Loading your contacts …" : "Cargando tus contactos...", "Looking for {term} …" : "Buscando {term}...", + "Modified" : "Modificado", + "Last year" : "Último año", + "Not found" : "No encontrado", + "People" : "Personas", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Contraseña olvidada?", "Back to login form" : "Volver al formulario de inicio de sesión", "Back" : "Atrás", @@ -202,7 +206,6 @@ "Search for {name} only" : "Buscar solo por {name}", "Start typing to search" : "Empieza a escribir para buscar", "Loading more results …" : "Cargando más resultados …", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "No results for {query}" : "Sin resultados para {query}", "Press Enter to start searching" : "Pulse Enter para iniciar la búsqueda", @@ -400,6 +403,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no tiene soporte FreeType, lo que provoca una rotura en las imágenes de perfil y en la interfaz de los ajustes.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia le faltan algunos módulos PHP recomendados. Para mejorar el rendimiento y aumentar la compatibilidad, se recomienda encarecidamente instalarlos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que está ejecutando una versión de PHP de 32 bits. Nextcloud necesita 64 bits para su correcto funcionamiento. ¡Por favor, actualice su sistema operativo y PHP a 64 bits! Puede leer más detalles en {linkstart}la página de documentación correspondiente ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria de PHP está por debajo del valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Se ha enviado a tu dirección de correo un mensaje para reiniciar la contraseña. Si no lo recibes, comprueba si está en el buzón de Correo No Deseado (Spam) o pide ayuda a tu administrador local.", "If it is not there ask your local administrator." : "Si no está ahí ponte en contacto con el administrador local", "Press enter to start searching" : "Pulse Intro para iniciar la búsqueda", @@ -412,7 +416,6 @@ "No more subfolders in here" : "No hay más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "\"/\" no se permite en un nombre de archivo.", diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js index 770124a6afd..c0cdfc96bd6 100644 --- a/core/l10n/es_AR.js +++ b/core/l10n/es_AR.js @@ -86,10 +86,12 @@ OC.L10N.register( "Install the Contacts app" : "Instalar app de Contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Contraseña olvidada?", "Back" : "Atrás", "Reset search" : "Restablecer búsqueda", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "Settings menu" : "Menú de configuración", "No" : "No", @@ -217,7 +219,6 @@ OC.L10N.register( "No more subfolders in here" : "No más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json index 987a5db0b13..d78800c1943 100644 --- a/core/l10n/es_AR.json +++ b/core/l10n/es_AR.json @@ -84,10 +84,12 @@ "Install the Contacts app" : "Instalar app de Contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Contraseña olvidada?", "Back" : "Atrás", "Reset search" : "Restablecer búsqueda", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "Settings menu" : "Menú de configuración", "No" : "No", @@ -215,7 +217,6 @@ "No more subfolders in here" : "No más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", diff --git a/core/l10n/es_CL.js b/core/l10n/es_CL.js deleted file mode 100644 index dae76b94ce5..00000000000 --- a/core/l10n/es_CL.js +++ /dev/null @@ -1,232 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/core/l10n/es_CL.json b/core/l10n/es_CL.json deleted file mode 100644 index fb2c907afca..00000000000 --- a/core/l10n/es_CL.json +++ /dev/null @@ -1,230 +0,0 @@ -{ "translations": { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/core/l10n/es_CO.js b/core/l10n/es_CO.js deleted file mode 100644 index dae76b94ce5..00000000000 --- a/core/l10n/es_CO.js +++ /dev/null @@ -1,232 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/core/l10n/es_CO.json b/core/l10n/es_CO.json deleted file mode 100644 index fb2c907afca..00000000000 --- a/core/l10n/es_CO.json +++ /dev/null @@ -1,230 +0,0 @@ -{ "translations": { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/core/l10n/es_CR.js b/core/l10n/es_CR.js deleted file mode 100644 index dae76b94ce5..00000000000 --- a/core/l10n/es_CR.js +++ /dev/null @@ -1,232 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/core/l10n/es_CR.json b/core/l10n/es_CR.json deleted file mode 100644 index fb2c907afca..00000000000 --- a/core/l10n/es_CR.json +++ /dev/null @@ -1,230 +0,0 @@ -{ "translations": { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/core/l10n/es_DO.js b/core/l10n/es_DO.js deleted file mode 100644 index dae76b94ce5..00000000000 --- a/core/l10n/es_DO.js +++ /dev/null @@ -1,232 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/core/l10n/es_DO.json b/core/l10n/es_DO.json deleted file mode 100644 index fb2c907afca..00000000000 --- a/core/l10n/es_DO.json +++ /dev/null @@ -1,230 +0,0 @@ -{ "translations": { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/core/l10n/es_EC.js b/core/l10n/es_EC.js index 852bc130900..6688331061b 100644 --- a/core/l10n/es_EC.js +++ b/core/l10n/es_EC.js @@ -96,7 +96,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a otra base de datos, utilice la herramienta de línea de comandos: \"occ db:convert-type\" o consulte la {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria PHP está por debajo del valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunos directorios de aplicaciones son propiedad de un usuario diferente al del servidor web. Esto puede ocurrir si las aplicaciones se han instalado manualmente. Compruebe los permisos de los siguientes directorios de aplicaciones:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Se utiliza MySQL como base de datos, pero no admite caracteres de 4 bytes. Para poder manejar caracteres de 4 bytes (como emojis) sin problemas en nombres de archivos o comentarios, por ejemplo, se recomienda habilitar el soporte de 4 bytes en MySQL. Para obtener más detalles, lea {linkstart}la página de documentación sobre este tema ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia utiliza un almacenamiento principal basado en S3. Los archivos cargados se almacenan temporalmente en el servidor, por lo que se recomienda disponer de 50 GB de espacio libre en el directorio temporal de PHP. Consulte los registros para obtener detalles completos sobre la ruta y el espacio disponible. Para mejorar esto, cambie el directorio temporal en el php.ini o aumente el espacio disponible en esa ruta.", @@ -182,6 +181,12 @@ OC.L10N.register( "Install the Contacts app" : "Instalar la aplicación Contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Last year" : "Último año", + "Not found" : "No encontrado", + "People" : "Personas", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back to login form" : "Volver al formulario de inicio de sesión", "Back" : "Atrás", @@ -197,7 +202,6 @@ OC.L10N.register( "Search for {name} only" : "Buscar solo {name}", "Start typing to search" : "Empieza a escribir para buscar", "Loading more results …" : "Cargando más resultados ...", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "No results for {query}" : "Sin resultados para {query}", "Press Enter to start searching" : "Pulse Enter para comenzar a buscar", @@ -391,6 +395,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia le faltan algunos módulos PHP recomendados. Para mejorar el rendimiento y la compatibilidad, se recomienda instalarlos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que estás ejecutando una versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar correctamente. ¡Actualiza tu sistema operativo y PHP a 64 bits! Para obtener más detalles, lee {linkstart}la página de documentación sobre esto ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria PHP está por debajo del valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Se ha enviado un mensaje de restablecimiento de contraseña a la dirección de correo electrónico de esta cuenta. Si no lo recibes, revisa tus carpetas de spam o contacta a tu administrador local para obtener ayuda.", "If it is not there ask your local administrator." : "Si no está allí, pregunta a tu administrador local.", "Press enter to start searching" : "Pulsa Enter para comenzar a buscar", @@ -403,7 +408,6 @@ OC.L10N.register( "No more subfolders in here" : "No hay más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_EC.json b/core/l10n/es_EC.json index 4b0b010a070..adc5cfb64eb 100644 --- a/core/l10n/es_EC.json +++ b/core/l10n/es_EC.json @@ -94,7 +94,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a otra base de datos, utilice la herramienta de línea de comandos: \"occ db:convert-type\" o consulte la {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria PHP está por debajo del valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algunos directorios de aplicaciones son propiedad de un usuario diferente al del servidor web. Esto puede ocurrir si las aplicaciones se han instalado manualmente. Compruebe los permisos de los siguientes directorios de aplicaciones:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Se utiliza MySQL como base de datos, pero no admite caracteres de 4 bytes. Para poder manejar caracteres de 4 bytes (como emojis) sin problemas en nombres de archivos o comentarios, por ejemplo, se recomienda habilitar el soporte de 4 bytes en MySQL. Para obtener más detalles, lea {linkstart}la página de documentación sobre este tema ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia utiliza un almacenamiento principal basado en S3. Los archivos cargados se almacenan temporalmente en el servidor, por lo que se recomienda disponer de 50 GB de espacio libre en el directorio temporal de PHP. Consulte los registros para obtener detalles completos sobre la ruta y el espacio disponible. Para mejorar esto, cambie el directorio temporal en el php.ini o aumente el espacio disponible en esa ruta.", @@ -180,6 +179,12 @@ "Install the Contacts app" : "Instalar la aplicación Contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Last year" : "Último año", + "Not found" : "No encontrado", + "People" : "Personas", + "Load more results" : "Cargar más resultados", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back to login form" : "Volver al formulario de inicio de sesión", "Back" : "Atrás", @@ -195,7 +200,6 @@ "Search for {name} only" : "Buscar solo {name}", "Start typing to search" : "Empieza a escribir para buscar", "Loading more results …" : "Cargando más resultados ...", - "Load more results" : "Cargar más resultados", "Search" : "Buscar", "No results for {query}" : "Sin resultados para {query}", "Press Enter to start searching" : "Pulse Enter para comenzar a buscar", @@ -389,6 +393,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia le faltan algunos módulos PHP recomendados. Para mejorar el rendimiento y la compatibilidad, se recomienda instalarlos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que estás ejecutando una versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar correctamente. ¡Actualiza tu sistema operativo y PHP a 64 bits! Para obtener más detalles, lee {linkstart}la página de documentación sobre esto ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "El límite de memoria PHP está por debajo del valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Se ha enviado un mensaje de restablecimiento de contraseña a la dirección de correo electrónico de esta cuenta. Si no lo recibes, revisa tus carpetas de spam o contacta a tu administrador local para obtener ayuda.", "If it is not there ask your local administrator." : "Si no está allí, pregunta a tu administrador local.", "Press enter to start searching" : "Pulsa Enter para comenzar a buscar", @@ -401,7 +406,6 @@ "No more subfolders in here" : "No hay más subcarpetas aquí", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_GT.js b/core/l10n/es_GT.js index 8318bd62162..2079097a833 100644 --- a/core/l10n/es_GT.js +++ b/core/l10n/es_GT.js @@ -90,6 +90,8 @@ OC.L10N.register( "No contacts found" : "No se encontraron contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back" : "Atrás", "Reset search" : "Reestablecer búsqueda", @@ -214,7 +216,6 @@ OC.L10N.register( "New folder" : "Carpeta nueva", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_GT.json b/core/l10n/es_GT.json index 7fa9ab07bb4..7483d46eeec 100644 --- a/core/l10n/es_GT.json +++ b/core/l10n/es_GT.json @@ -88,6 +88,8 @@ "No contacts found" : "No se encontraron contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back" : "Atrás", "Reset search" : "Reestablecer búsqueda", @@ -212,7 +214,6 @@ "New folder" : "Carpeta nueva", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index 943e2f767fa..062a1ccc7fe 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -127,6 +127,9 @@ OC.L10N.register( "No contacts found" : "No se encontraron contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Last year" : "Año pasado", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back" : "Atrás", "Login form is disabled." : "La página de inicio de sesión está deshabilitada.", @@ -263,7 +266,6 @@ OC.L10N.register( "New folder" : "Carpeta nueva ", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index 233a4e97e44..80c7dbb7776 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -125,6 +125,9 @@ "No contacts found" : "No se encontraron contactos", "Loading your contacts …" : "Cargando sus contactos ... ", "Looking for {term} …" : "Buscando {term} ...", + "Modified" : "Modificado", + "Today" : "Hoy", + "Last year" : "Año pasado", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back" : "Atrás", "Login form is disabled." : "La página de inicio de sesión está deshabilitada.", @@ -261,7 +264,6 @@ "New folder" : "Carpeta nueva ", "Name" : "Nombre", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", diff --git a/core/l10n/es_SV.js b/core/l10n/es_SV.js deleted file mode 100644 index dae76b94ce5..00000000000 --- a/core/l10n/es_SV.js +++ /dev/null @@ -1,232 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/core/l10n/es_SV.json b/core/l10n/es_SV.json deleted file mode 100644 index fb2c907afca..00000000000 --- a/core/l10n/es_SV.json +++ /dev/null @@ -1,230 +0,0 @@ -{ "translations": { - "Please select a file." : "Por favor selecciona un archivo.", - "File is too big" : "El archivo es demasiado grande.", - "The selected file is not an image." : "El archivo seleccionado no es una imagen.", - "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", - "The file was uploaded" : "El archivo fue cargado", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", - "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente", - "No file was uploaded" : "No se cargó el archivo", - "Missing a temporary folder" : "Falta una carpeta temporal", - "Could not write file to disk" : "No fue posible escribir a disco", - "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", - "Invalid file provided" : "Archivo proporcionado inválido", - "No image or file provided" : "No se especificó un archivo o imagen", - "Unknown filetype" : "Tipo de archivo desconocido", - "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", - "Invalid image" : "Imagen inválida", - "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", - "No crop data provided" : "No se han proporcionado datos del recorte", - "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", - "Crop is not square" : "El recorte no es cuadrado", - "State token does not match" : "La ficha de estado no corresponde", - "Login" : "Iniciar sesión", - "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", - "%s password reset" : "%s restablecer la contraseña", - "Password reset" : "Restablecer contraseña", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", - "Reset your password" : "Restablecer tu contraseña", - "Internal error" : "Error interno", - "Preparing update" : "Preparando actualización", - "[%d / %d]: %s" : "[%d / %d]: %s ", - "Turned on maintenance mode" : "Modo mantenimiento activado", - "Turned off maintenance mode" : "Modo mantenimiento desactivado", - "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", - "Updating database schema" : "Actualizando esquema de base de datos", - "Updated database" : "Base de datos actualizada", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", - "Set log level to debug" : "Establecer nivel de bitacora a depurar", - "Reset log level" : "Restablecer nivel de bitácora", - "Starting code integrity check" : "Comenzando verificación de integridad del código", - "Finished code integrity check" : "Terminó la verificación de integridad del código ", - "%s (incompatible)" : "%s (incompatible)", - "Already up to date" : "Ya está actualizado", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", - "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", - "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", - "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", - "sunny" : "soleado", - "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", - "Hello {name}" : "Hola {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", - "new" : "nuevo", - "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos","Descargar %n archivos"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", - "Update to {version}" : "Actualizar a {version}", - "An error occurred." : "Se presentó un error.", - "Please reload the page." : "Por favor vuelve a cargar la página.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", - "More apps" : "Más aplicaciones", - "Log in" : "Ingresar", - "Logging in …" : "Iniciando sesión ...", - "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", - "Please contact your administrator." : "Por favor contacta al administrador.", - "An internal error occurred." : "Se presentó un error interno.", - "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", - "Password" : "Contraseña", - "Wrong username or password." : "Usuario o contraseña equivocado. ", - "User disabled" : "Usuario deshabilitado", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Username or email" : "Usuario o correo electrónico", - "Reset password" : "Restablecer contraseña", - "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", - "Back to login" : "Regresar al inicio de sesión", - "New password" : "Nueva contraseña", - "I know what I'm doing" : "Sé lo que estoy haciendo", - "Skip" : "Omitir", - "Search contacts …" : "Buscar contactos ...", - "Could not load your contacts" : "No fue posible cargar tus contactos", - "No contacts found" : "No se encontraron contactos", - "Loading your contacts …" : "Cargando sus contactos ... ", - "Looking for {term} …" : "Buscando {term} ...", - "Forgot password?" : "¿Olvidaste tu contraseña?", - "Back" : "Atrás", - "Reset search" : "Reestablecer búsqueda", - "Search" : "Buscar", - "Settings menu" : "Menú de Configuraciones", - "No" : "No", - "Yes" : "Sí", - "Choose" : "Seleccionar", - "Copy" : "Copiar", - "Move" : "Mover", - "OK" : "OK", - "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", - "read-only" : "sólo-lectura", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo","{count} conflictos en el archivo"], - "One file conflict" : "Un conflicto en el archivo", - "New Files" : "Archivos Nuevos", - "Already existing files" : "Archivos ya existentes", - "Which files do you want to keep?" : "¿Cuáles archivos deseas mantener?", - "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", - "Cancel" : "Cancelar", - "Continue" : "Continuar", - "(all selected)" : "(todos seleccionados)", - "({count} selected)" : "({count} seleccionados)", - "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", - "seconds ago" : "hace segundos", - "Connection to server lost" : "Se ha perdido la conexión con el servidor", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un error al cargar la página, recargando en %n segundo","Se presentó un error al cargar la página, recargando en %n segundos","Se presentó un error al cargar la página, recargando en %n segundos"], - "Hide details" : "Ocultar detalles", - "Very weak password" : "Contraseña muy débil", - "Weak password" : "Contraseña débil", - "So-so password" : "Contraseña aceptable", - "Good password" : "Buena contraseña", - "Strong password" : "Contraseña fuerte", - "No action available" : "No hay acciones disponibles", - "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", - "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", - "Restricted" : "Restringido", - "Invisible" : "Invisible", - "Delete" : "Borrar", - "Rename" : "Renombrar", - "Collaborative tags" : "Etiquetas colaborativas", - "No tags found" : "No se encontraron etiquetas", - "Personal" : "Personal", - "Users" : "Usuarios", - "Apps" : "Aplicaciones", - "Admin" : "Administración", - "Help" : "Ayuda", - "Access forbidden" : "Acceso prohibido", - "Page not found" : "Página no encontrada", - "Error" : "Error", - "Previous" : "Previo", - "Internal Server Error" : "Error interno del servidor", - "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", - "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", - "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", - "Technical details" : "Detalles técnicos", - "Remote Address: %s" : "Dirección Remota: %s", - "Request ID: %s" : "ID de solicitud: %s", - "Type: %s" : "Tipo: %s", - "Code: %s" : "Código: %s", - "Message: %s" : "Mensaje: %s", - "File: %s" : "Archivo: %s", - "Line: %s" : "Línea: %s", - "Trace" : "Rastrear", - "Security warning" : "Advertencia de seguridad", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>.", - "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", - "Username" : "Usuario", - "Storage & database" : "Almacenamiento & base de datos", - "Data folder" : "Carpeta de datos", - "Configure the database" : "Configurar la base de datos", - "Only %s is available." : "Sólo %s está disponible.", - "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", - "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", - "Database user" : "Usuario de la base de datos", - "Database password" : "Contraseña de la base de datos", - "Database name" : "Nombre de la base de datos", - "Database tablespace" : "Espacio de tablas en la base de datos", - "Database host" : "Servidor de base de datos", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", - "Performance warning" : "Advertencia de desempeño", - "Need help?" : "¿Necesitas ayuda?", - "See the documentation" : "Ver la documentación", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", - "Go to %s" : "Ir a %s", - "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", - "Confirm your password" : "Confirma tu contraseña", - "Confirm" : "Confirmar", - "Connect to your account" : "Conectate a tu cuenta", - "App token" : "Ficha de la aplicación", - "Grant access" : "Conceder acceso", - "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación", - "Account access" : "Acceo de cuenta", - "This share is password-protected" : "Este elemento compartido está protegido con una contraseña", - "Two-factor authentication" : "Autenticación de dos-factores", - "Use backup code" : "Usar código de respaldo", - "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", - "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", - "App update required" : "Se requiere una actualización de la aplicación", - "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", - "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", - "Start update" : "Iniciar actualización", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", - "Detailed logs" : "Bitácoras detalladas", - "Update needed" : "Se requiere de una actualización", - "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Para más ayuda, por favor consulta la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentación</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", - "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", - "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ", - "Settings" : "Configuraciones ", - "Show all contacts …" : "Mostrar todos los contactos ...", - "No files in here" : "No hay archivos aquí", - "New folder" : "Carpeta nueva", - "Name" : "Nombre", - "Size" : "Tamaño", - "Modified" : "Modificado", - "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", - "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", - "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" no es in tipo de archivo permitido", - "{newName} already exists" : "{newName} ya existe", - "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", - "Pending" : "Pendiente", - "Home" : "Inicio", - "Copy to {folder}" : "Copiar a {folder}", - "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Se requiere autenticación", - "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", - "File not found" : "Archivo no encontrado", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php." -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 07fdf396c59..1a9f1133bcf 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -116,6 +116,9 @@ OC.L10N.register( "Install the Contacts app" : "Paigalda Kontaktide rakendus", "Loading your contacts …" : "Sinu kontaktide laadimine ...", "Looking for {term} …" : "Otsin {term} …", + "Modified" : "Muudetud", + "Today" : "Täna", + "People" : "Inimesed", "Forgot password?" : "Unustasid parooli?", "Back to login form" : "Tagasi sisselogimise lehele", "Back" : "Tagasi", @@ -283,7 +286,6 @@ OC.L10N.register( "No more subfolders in here" : "Siin pole rohkem alamkaustu", "Name" : "Nimi", "Size" : "Suurus", - "Modified" : "Muudetud", "\"{name}\" is an invalid file name." : "\"{name}\" on vigane failinimi.", "File name cannot be empty." : "Failinimi ei saa olla tühi.", "\"/\" is not allowed inside a file name." : "\"/\" pole failinimedes lubatud.", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index 6920b0dbe1d..b896d523e62 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -114,6 +114,9 @@ "Install the Contacts app" : "Paigalda Kontaktide rakendus", "Loading your contacts …" : "Sinu kontaktide laadimine ...", "Looking for {term} …" : "Otsin {term} …", + "Modified" : "Muudetud", + "Today" : "Täna", + "People" : "Inimesed", "Forgot password?" : "Unustasid parooli?", "Back to login form" : "Tagasi sisselogimise lehele", "Back" : "Tagasi", @@ -281,7 +284,6 @@ "No more subfolders in here" : "Siin pole rohkem alamkaustu", "Name" : "Nimi", "Size" : "Suurus", - "Modified" : "Muudetud", "\"{name}\" is an invalid file name." : "\"{name}\" on vigane failinimi.", "File name cannot be empty." : "Failinimi ei saa olla tühi.", "\"/\" is not allowed inside a file name." : "\"/\" pole failinimedes lubatud.", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index 0dbbb6732be..04e7748e1cc 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -100,7 +100,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite datu-basea erabiltzen ari zara. Instalazio handiagoetarako beste datu-base sistema bat erabiltzea gomendatzen da.", "This is particularly recommended when using the desktop client for file synchronisation." : "Bereziki gomendagarria da mahaigaineko bezeroa fitxategien sinkronizaziorako erabiltzean.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Beste datu-base batera migratzeko, erabili komando lerroko tresna: \"occ db:convert-type\", edo ikusi {linkstart}dokumentazioa ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHPren memoria muga aholkatutako 512MB balioaren azpitik dago.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Zenbait aplikazio direktorioren jabea ez dator bat web zerbitzariaren erabiltzailearekin. Aplikazio horiek eskuz instalatzean gerta daiteke hori. Egiaztatu baimenak ondorengo aplikazio direktorioetan:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL datu-base gisa erabiltzen da baina ez ditu 4 byteko karaktereak onartzen. 4 byteko karaktereak (emojiak kasu) arazorik gabe erabiltzeko, adibidez, fitxategien izenetan edo iruzkinetan, MySQL-n 4 byteko euskarria gaitzea gomendatzen da. Xehetasun gehiagorako, irakurri {linkstart}honi buruzko dokumentazio orria ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Instantzia honek S3n oinarritutako objektuen biltegia erabiltzen du biltegiratze nagusi bezala. Igotako fitxategiak behin-behinean zerbitzarian gordetzen direnez, PHPren aldi baterako direktorioan 50 GB libre edukitzea gomendatzen da. Egiaztatu egunkariak bideari eta erabilgarri dagoen espazioari buruzko xehetasunak izateko. Hau hobetzeko aldatu aldi baterako direktorioa php.ini fitxategian edo egin leku gehiago bide horretan.", @@ -186,6 +185,11 @@ OC.L10N.register( "Install the Contacts app" : "Instalatu kontaktuen aplikazioa", "Loading your contacts …" : "Zure kontaktuak kargatzen...", "Looking for {term} …" : "{term} bilatzen...", + "Modified" : "Aldatua", + "Last year" : "Azken urtea", + "Not found" : "Ez da aurkitu", + "People" : "Jendea", + "Load more results" : "Kargatu emaitza gehiago ", "Forgot password?" : "Pasahitza ahaztu duzu?", "Back to login form" : "Itzuli saio hasierara", "Back" : "Atzera", @@ -201,7 +205,6 @@ OC.L10N.register( "Search for {name} only" : "Biatu {name} bakarrik", "Start typing to search" : "Hasi idazten bilatzeko", "Loading more results …" : "Emaitza gehiago kargatzen ...", - "Load more results" : "Kargatu emaitza gehiago ", "Search" : "Bilatu", "No results for {query}" : " {query}-(r)entzako emaitzarik ez", "Press Enter to start searching" : "Sakatu enter bilaketa hasteko", @@ -398,6 +401,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Zure PHPak ez dauka FreeType euskarririk. Ondorioz, profileko irudiak eta ezarpenen interfazea hondatuta daude.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instantzia honek gomendatutako PHP modulu batzuk falta ditu. Biziki gomendatzen da horiek instalatzea, errendimendua eta bateragarritasuna hobetzeko.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Badirudi 32-bit-eko PHP bertsioa exekutatzen ari zarela. Nextcloudek 64-bit behar ditu ondo funtzionatzeko. Eguneratu zure SE eta PHP 64-bit-etara! Xehetasun gehiagorako irakurri {linkstart}honi buruzko dokumentazioa ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHPren memoria muga aholkatutako 512MB balioaren azpitik dago.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Pasahitza berrezartzeko mezu bat bidali da kontu honen helbide elektronikora. Jasotzen ez baduzu, egiaztatu spam/zabor karpetak edo eskatu laguntza zure administratzaile lokalari.", "If it is not there ask your local administrator." : "Han ez badago, galdetu zure administratzaile lokalari.", "Press enter to start searching" : "Sakatu enter bilaketa hasteko", @@ -410,7 +414,6 @@ OC.L10N.register( "No more subfolders in here" : "Ez dago azpikarpeta gehiagorik hemen", "Name" : "Izena", "Size" : "Tamaina", - "Modified" : "Aldatua", "\"{name}\" is an invalid file name." : "\"{name}\" fitxategi-izen baliogabea da.", "File name cannot be empty." : "Fitxategi-izena ezin da hutsa izan.", "\"/\" is not allowed inside a file name." : "\"/\" ez da onartzen fitxategi-izenen barnean.", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index b7f419c82b8..ee7f6d00e95 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -98,7 +98,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite datu-basea erabiltzen ari zara. Instalazio handiagoetarako beste datu-base sistema bat erabiltzea gomendatzen da.", "This is particularly recommended when using the desktop client for file synchronisation." : "Bereziki gomendagarria da mahaigaineko bezeroa fitxategien sinkronizaziorako erabiltzean.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Beste datu-base batera migratzeko, erabili komando lerroko tresna: \"occ db:convert-type\", edo ikusi {linkstart}dokumentazioa ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHPren memoria muga aholkatutako 512MB balioaren azpitik dago.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Zenbait aplikazio direktorioren jabea ez dator bat web zerbitzariaren erabiltzailearekin. Aplikazio horiek eskuz instalatzean gerta daiteke hori. Egiaztatu baimenak ondorengo aplikazio direktorioetan:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL datu-base gisa erabiltzen da baina ez ditu 4 byteko karaktereak onartzen. 4 byteko karaktereak (emojiak kasu) arazorik gabe erabiltzeko, adibidez, fitxategien izenetan edo iruzkinetan, MySQL-n 4 byteko euskarria gaitzea gomendatzen da. Xehetasun gehiagorako, irakurri {linkstart}honi buruzko dokumentazio orria ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Instantzia honek S3n oinarritutako objektuen biltegia erabiltzen du biltegiratze nagusi bezala. Igotako fitxategiak behin-behinean zerbitzarian gordetzen direnez, PHPren aldi baterako direktorioan 50 GB libre edukitzea gomendatzen da. Egiaztatu egunkariak bideari eta erabilgarri dagoen espazioari buruzko xehetasunak izateko. Hau hobetzeko aldatu aldi baterako direktorioa php.ini fitxategian edo egin leku gehiago bide horretan.", @@ -184,6 +183,11 @@ "Install the Contacts app" : "Instalatu kontaktuen aplikazioa", "Loading your contacts …" : "Zure kontaktuak kargatzen...", "Looking for {term} …" : "{term} bilatzen...", + "Modified" : "Aldatua", + "Last year" : "Azken urtea", + "Not found" : "Ez da aurkitu", + "People" : "Jendea", + "Load more results" : "Kargatu emaitza gehiago ", "Forgot password?" : "Pasahitza ahaztu duzu?", "Back to login form" : "Itzuli saio hasierara", "Back" : "Atzera", @@ -199,7 +203,6 @@ "Search for {name} only" : "Biatu {name} bakarrik", "Start typing to search" : "Hasi idazten bilatzeko", "Loading more results …" : "Emaitza gehiago kargatzen ...", - "Load more results" : "Kargatu emaitza gehiago ", "Search" : "Bilatu", "No results for {query}" : " {query}-(r)entzako emaitzarik ez", "Press Enter to start searching" : "Sakatu enter bilaketa hasteko", @@ -396,6 +399,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Zure PHPak ez dauka FreeType euskarririk. Ondorioz, profileko irudiak eta ezarpenen interfazea hondatuta daude.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instantzia honek gomendatutako PHP modulu batzuk falta ditu. Biziki gomendatzen da horiek instalatzea, errendimendua eta bateragarritasuna hobetzeko.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Badirudi 32-bit-eko PHP bertsioa exekutatzen ari zarela. Nextcloudek 64-bit behar ditu ondo funtzionatzeko. Eguneratu zure SE eta PHP 64-bit-etara! Xehetasun gehiagorako irakurri {linkstart}honi buruzko dokumentazioa ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHPren memoria muga aholkatutako 512MB balioaren azpitik dago.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Pasahitza berrezartzeko mezu bat bidali da kontu honen helbide elektronikora. Jasotzen ez baduzu, egiaztatu spam/zabor karpetak edo eskatu laguntza zure administratzaile lokalari.", "If it is not there ask your local administrator." : "Han ez badago, galdetu zure administratzaile lokalari.", "Press enter to start searching" : "Sakatu enter bilaketa hasteko", @@ -408,7 +412,6 @@ "No more subfolders in here" : "Ez dago azpikarpeta gehiagorik hemen", "Name" : "Izena", "Size" : "Tamaina", - "Modified" : "Aldatua", "\"{name}\" is an invalid file name." : "\"{name}\" fitxategi-izen baliogabea da.", "File name cannot be empty." : "Fitxategi-izena ezin da hutsa izan.", "\"/\" is not allowed inside a file name." : "\"/\" ez da onartzen fitxategi-izenen barnean.", diff --git a/core/l10n/fa.js b/core/l10n/fa.js index 06c04075115..7e977ff04d2 100644 --- a/core/l10n/fa.js +++ b/core/l10n/fa.js @@ -101,7 +101,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "This is particularly recommended when using the desktop client for file synchronisation.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.", @@ -188,6 +187,12 @@ OC.L10N.register( "Install the Contacts app" : "Install the Contacts app", "Loading your contacts …" : "بارگیری مخاطبین شما ...", "Looking for {term} …" : "به دنبال {term} …", + "Modified" : "تغییر یافته", + "Today" : "امروز", + "Last year" : "Last year", + "Not found" : "پیدا نشد", + "People" : "مردم", + "Load more results" : "بار کردن نتیحههای بیشتر", "Forgot password?" : "رمز فراموش شده؟", "Back to login form" : "Back to login form", "Back" : "بازگشت", @@ -203,7 +208,6 @@ OC.L10N.register( "Search for {name} only" : "Search for {name} only", "Start typing to search" : "Start typing to search", "Loading more results …" : "Loading more results …", - "Load more results" : "بار کردن نتیحههای بیشتر", "Search" : "جستوجو", "No results for {query}" : "No results for {query}", "Press Enter to start searching" : "Press Enter to start searching", @@ -401,6 +405,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help.", "If it is not there ask your local administrator." : "If it is not there ask your local administrator.", "Press enter to start searching" : "Press enter to start searching", @@ -413,7 +418,6 @@ OC.L10N.register( "No more subfolders in here" : "No more subfolders in here", "Name" : "نام", "Size" : "اندازه", - "Modified" : "تغییر یافته", "\"{name}\" is an invalid file name." : "\"{name}\" نامی نامعتبر برای فایل است.", "File name cannot be empty." : "نام پرونده نمی تواند خالی باشد.", "\"/\" is not allowed inside a file name." : "\"/\" در داخل نام فایل مجاز نیست.", diff --git a/core/l10n/fa.json b/core/l10n/fa.json index b630182a1f1..472abbe3812 100644 --- a/core/l10n/fa.json +++ b/core/l10n/fa.json @@ -99,7 +99,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "This is particularly recommended when using the desktop client for file synchronisation.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.", @@ -186,6 +185,12 @@ "Install the Contacts app" : "Install the Contacts app", "Loading your contacts …" : "بارگیری مخاطبین شما ...", "Looking for {term} …" : "به دنبال {term} …", + "Modified" : "تغییر یافته", + "Today" : "امروز", + "Last year" : "Last year", + "Not found" : "پیدا نشد", + "People" : "مردم", + "Load more results" : "بار کردن نتیحههای بیشتر", "Forgot password?" : "رمز فراموش شده؟", "Back to login form" : "Back to login form", "Back" : "بازگشت", @@ -201,7 +206,6 @@ "Search for {name} only" : "Search for {name} only", "Start typing to search" : "Start typing to search", "Loading more results …" : "Loading more results …", - "Load more results" : "بار کردن نتیحههای بیشتر", "Search" : "جستوجو", "No results for {query}" : "No results for {query}", "Press Enter to start searching" : "Press Enter to start searching", @@ -399,6 +403,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "The PHP memory limit is below the recommended value of 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help.", "If it is not there ask your local administrator." : "If it is not there ask your local administrator.", "Press enter to start searching" : "Press enter to start searching", @@ -411,7 +416,6 @@ "No more subfolders in here" : "No more subfolders in here", "Name" : "نام", "Size" : "اندازه", - "Modified" : "تغییر یافته", "\"{name}\" is an invalid file name." : "\"{name}\" نامی نامعتبر برای فایل است.", "File name cannot be empty." : "نام پرونده نمی تواند خالی باشد.", "\"/\" is not allowed inside a file name." : "\"/\" در داخل نام فایل مجاز نیست.", diff --git a/core/l10n/fi.js b/core/l10n/fi.js index c1c78a3d75d..0d76fe58b1e 100644 --- a/core/l10n/fi.js +++ b/core/l10n/fi.js @@ -85,7 +85,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite on parhaillaan käytössä tietokantaratkaisuna. Suuria asennuksia varten suosittelemme vaihtamaan toiseen tietokantaratkaisuun.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tämä on suositeltavaa erityisesti silloin, kun työpöytäsovellusta käytetään tiedostojen synkronointiin.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Tee migraatio toiseen tietokantaan komentorivityökalulla: \"occ db:convert-type\", tai lue {linkstart}dokumentaatio ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP:n muistiraja on asetettu alle suositellun 512 megatavun arvon.", "The temporary directory of this instance points to an either non-existing or non-writable directory." : "Palvelimen väliaikaistiedostojen hakemiston polku viittaa olemattomaan tai kirjoitussuojattuun hakemistoon.", "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Tämä instanssi toimii vianjäljitystilassa. Käytä vianjäljitystilaa vain paikalliseen kehitykseen, älä koskaan käytä sitä tuotantoympäristössä.", "Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa", @@ -161,6 +160,11 @@ OC.L10N.register( "Install the Contacts app" : "Asenna Yhteystiedot-sovellus", "Loading your contacts …" : "Ladataan yhteystietojasi…", "Looking for {term} …" : "Etsii {term}…", + "Modified" : "Muokattu", + "Last year" : "Viime vuosi", + "Not found" : "Ei löytynyt", + "People" : "Ihmiset", + "Load more results" : "Lataa lisää tuloksia", "Forgot password?" : "Unohditko salasanasi?", "Back to login form" : "Takaisin kirjautumisnäkymään", "Back" : "Takaisin", @@ -175,7 +179,6 @@ OC.L10N.register( "Search for {name} only" : "Etsi vain {name}", "Start typing to search" : "Aloita kirjoittaminen hakeaksesi", "Loading more results …" : "Ladataan lisää tuloksia…", - "Load more results" : "Lataa lisää tuloksia", "Search" : "Etsi", "No results for {query}" : "Ei tuloksia haulle {query}", "Press Enter to start searching" : "Paina Enter aloittaaksesi haun", @@ -357,6 +360,7 @@ OC.L10N.register( "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP \"fileinfo\" moduuli puuttuu. Moduulin käyttöönottaminen on vahvasti suositeltua paremman MIME tyyppien tunnistuksen saavuttamiseksi.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-asennuksessasi ei ole FreeType-tukea, ja siitä aiheutuu profiilikuvien sekä asetuskäyttöliittymän rikkoutuminen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Tästä instanssista puuttuu joitain suositeltuja PHP-moduuleja. Nykyistä paremman suorituskyvyn ja yhteensopivuuden vuoksi kyseisten moduulien asentaminen on erittäin suositeltavaa.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP:n muistiraja on asetettu alle suositellun 512 megatavun arvon.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Salasanan nollausviesti on lähetetty käyttäjätilin sähköpostiin. Jos et vastaanota sähköpostia, tarkista roskapostikansio tai pyydä apua järjestelmävalvojaltasi.", "If it is not there ask your local administrator." : "Jos se ei ole siellä, niin pyydä järjestelmänvalvojaltasi.", "Press enter to start searching" : "Paina enter aloittaaksesi haun", @@ -369,7 +373,6 @@ OC.L10N.register( "No more subfolders in here" : "Täällä ei ole enempää alikansioita", "Name" : "Nimi", "Size" : "Koko", - "Modified" : "Muokattu", "\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.", "File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.", "\"/\" is not allowed inside a file name." : "\"/\" ei ole sallittu merkki tiedostonimessä.", diff --git a/core/l10n/fi.json b/core/l10n/fi.json index 4ed4dae11ba..42597c721c6 100644 --- a/core/l10n/fi.json +++ b/core/l10n/fi.json @@ -83,7 +83,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite on parhaillaan käytössä tietokantaratkaisuna. Suuria asennuksia varten suosittelemme vaihtamaan toiseen tietokantaratkaisuun.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tämä on suositeltavaa erityisesti silloin, kun työpöytäsovellusta käytetään tiedostojen synkronointiin.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Tee migraatio toiseen tietokantaan komentorivityökalulla: \"occ db:convert-type\", tai lue {linkstart}dokumentaatio ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP:n muistiraja on asetettu alle suositellun 512 megatavun arvon.", "The temporary directory of this instance points to an either non-existing or non-writable directory." : "Palvelimen väliaikaistiedostojen hakemiston polku viittaa olemattomaan tai kirjoitussuojattuun hakemistoon.", "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Tämä instanssi toimii vianjäljitystilassa. Käytä vianjäljitystilaa vain paikalliseen kehitykseen, älä koskaan käytä sitä tuotantoympäristössä.", "Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa", @@ -159,6 +158,11 @@ "Install the Contacts app" : "Asenna Yhteystiedot-sovellus", "Loading your contacts …" : "Ladataan yhteystietojasi…", "Looking for {term} …" : "Etsii {term}…", + "Modified" : "Muokattu", + "Last year" : "Viime vuosi", + "Not found" : "Ei löytynyt", + "People" : "Ihmiset", + "Load more results" : "Lataa lisää tuloksia", "Forgot password?" : "Unohditko salasanasi?", "Back to login form" : "Takaisin kirjautumisnäkymään", "Back" : "Takaisin", @@ -173,7 +177,6 @@ "Search for {name} only" : "Etsi vain {name}", "Start typing to search" : "Aloita kirjoittaminen hakeaksesi", "Loading more results …" : "Ladataan lisää tuloksia…", - "Load more results" : "Lataa lisää tuloksia", "Search" : "Etsi", "No results for {query}" : "Ei tuloksia haulle {query}", "Press Enter to start searching" : "Paina Enter aloittaaksesi haun", @@ -355,6 +358,7 @@ "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP \"fileinfo\" moduuli puuttuu. Moduulin käyttöönottaminen on vahvasti suositeltua paremman MIME tyyppien tunnistuksen saavuttamiseksi.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-asennuksessasi ei ole FreeType-tukea, ja siitä aiheutuu profiilikuvien sekä asetuskäyttöliittymän rikkoutuminen.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Tästä instanssista puuttuu joitain suositeltuja PHP-moduuleja. Nykyistä paremman suorituskyvyn ja yhteensopivuuden vuoksi kyseisten moduulien asentaminen on erittäin suositeltavaa.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP:n muistiraja on asetettu alle suositellun 512 megatavun arvon.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Salasanan nollausviesti on lähetetty käyttäjätilin sähköpostiin. Jos et vastaanota sähköpostia, tarkista roskapostikansio tai pyydä apua järjestelmävalvojaltasi.", "If it is not there ask your local administrator." : "Jos se ei ole siellä, niin pyydä järjestelmänvalvojaltasi.", "Press enter to start searching" : "Paina enter aloittaaksesi haun", @@ -367,7 +371,6 @@ "No more subfolders in here" : "Täällä ei ole enempää alikansioita", "Name" : "Nimi", "Size" : "Koko", - "Modified" : "Muokattu", "\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.", "File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.", "\"/\" is not allowed inside a file name." : "\"/\" ei ole sallittu merkki tiedostonimessä.", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index e501b21245f..dc6abc27872 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Pour migrer vers une autre base de données, utiliser la ligne de commande : 'occ db:convert-type', ou se reporter à la {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pourr plus de détails, se reporter à la {linkstart}page de documentation à ce sujet ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 Go dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Plus d'applications", "Currently open" : "Actuellement ouvert", "_{count} notification_::_{count} notifications_" : ["{count} notification","{count} notifications","{count} notifications"], + "Date range filter" : "Filtre de plage de dates", + "Pick start date" : "Sélectionner une date de début", + "Pick end date" : "Sélectionner une date de fin", + "Apply range" : "Appliquer la plage", "Log in" : "Se connecter", "Logging in …" : "Connexion…", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", "Please contact your administrator." : "Veuillez contacter votre administrateur.", + "Temporary error" : "Erreur temporaire", + "Please try again." : "Veuillez réessayer.", "An internal error occurred." : "Une erreur interne est survenue.", "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", "Account name or email" : "Nom d'utilisateur ou adresse e-mail", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "Installer l'appli Contacts", "Loading your contacts …" : "Chargement de vos contacts...", "Looking for {term} …" : "Recherche de {term} ...", + "Global search" : "Recherche globale", + "Search apps, files, tags, messages" : "Rechercher des apps, fichiers, étiquettes, messages", + "Apps and Settings" : "Applications et Paramètres", + "Modified" : "Modifié", + "Today" : "Auj.", + "Last 7 days" : "7 derniers jours", + "Last 30 days" : "30 derniers jours", + "This year" : "Cette année", + "Last year" : "Année dernière", + "Custom date range" : "Plage de dates personnalisée", + "Search people" : "Rechercher des personnes", + "Not found" : "Non trouvé", + "People" : "Personnes", + "Load more results" : "Charger plus de résultats", + "Start typing in search" : "Commencez à saisir dans la recherche", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Du ${this.dateFilter.startFrom.toLocaleDateString()} au ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Mot de passe oublié ?", "Back to login form" : "Retour au formulaire de connexion", "Back" : "Retour", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "Rechercher pour {name} uniquement", "Start typing to search" : "Commencez à taper pour lancer la rechercher", "Loading more results …" : "Chargement de plus de résultats …", - "Load more results" : "Charger plus de résultats", "Search" : "Rechercher", "No results for {query}" : "Aucun résultat pour {query}", "Press Enter to start searching" : "Appuyer sur Entrée pour démarrer la recherche", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Il semble que vous utilisez une version 32-bits de PHP. Nextcloud nécessite une version 64-bits pour bien fonctionner. Merci de mettre à niveau votre système d'exploitation et PHP en 64-bits. Pour plus de détails consultez {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Un message de réinitialisation de votre mot de passe a été envoyé à l'adresse e-mail renseignée pour ce compte. Si vous ne le recevez pas, veuillez vérifier dans votre dossier spam ou demander de l'aide à l'administrateur de cette instance.", "If it is not there ask your local administrator." : "Si ce n'est pas le cas, veuillez contacter votre administrateur.", "Press enter to start searching" : "Appuyez sur Entrée pour démarrer la recherche", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "Plus aucun sous-dossier ici", "Name" : "Nom", "Size" : "Taille", - "Modified" : "Modifié", "\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.", "File name cannot be empty." : "Le nom de fichier ne peut pas être vide.", "\"/\" is not allowed inside a file name." : "\"/\" n'est pas autorisé dans un nom de fichier.", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 1ae74f401e9..8134672ab18 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Pour migrer vers une autre base de données, utiliser la ligne de commande : 'occ db:convert-type', ou se reporter à la {linkstart}documentation ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pourr plus de détails, se reporter à la {linkstart}page de documentation à ce sujet ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 Go dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", @@ -136,10 +135,16 @@ "More apps" : "Plus d'applications", "Currently open" : "Actuellement ouvert", "_{count} notification_::_{count} notifications_" : ["{count} notification","{count} notifications","{count} notifications"], + "Date range filter" : "Filtre de plage de dates", + "Pick start date" : "Sélectionner une date de début", + "Pick end date" : "Sélectionner une date de fin", + "Apply range" : "Appliquer la plage", "Log in" : "Se connecter", "Logging in …" : "Connexion…", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", "Please contact your administrator." : "Veuillez contacter votre administrateur.", + "Temporary error" : "Erreur temporaire", + "Please try again." : "Veuillez réessayer.", "An internal error occurred." : "Une erreur interne est survenue.", "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", "Account name or email" : "Nom d'utilisateur ou adresse e-mail", @@ -187,6 +192,22 @@ "Install the Contacts app" : "Installer l'appli Contacts", "Loading your contacts …" : "Chargement de vos contacts...", "Looking for {term} …" : "Recherche de {term} ...", + "Global search" : "Recherche globale", + "Search apps, files, tags, messages" : "Rechercher des apps, fichiers, étiquettes, messages", + "Apps and Settings" : "Applications et Paramètres", + "Modified" : "Modifié", + "Today" : "Auj.", + "Last 7 days" : "7 derniers jours", + "Last 30 days" : "30 derniers jours", + "This year" : "Cette année", + "Last year" : "Année dernière", + "Custom date range" : "Plage de dates personnalisée", + "Search people" : "Rechercher des personnes", + "Not found" : "Non trouvé", + "People" : "Personnes", + "Load more results" : "Charger plus de résultats", + "Start typing in search" : "Commencez à saisir dans la recherche", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Du ${this.dateFilter.startFrom.toLocaleDateString()} au ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Mot de passe oublié ?", "Back to login form" : "Retour au formulaire de connexion", "Back" : "Retour", @@ -202,7 +223,6 @@ "Search for {name} only" : "Rechercher pour {name} uniquement", "Start typing to search" : "Commencez à taper pour lancer la rechercher", "Loading more results …" : "Chargement de plus de résultats …", - "Load more results" : "Charger plus de résultats", "Search" : "Rechercher", "No results for {query}" : "Aucun résultat pour {query}", "Press Enter to start searching" : "Appuyer sur Entrée pour démarrer la recherche", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Il semble que vous utilisez une version 32-bits de PHP. Nextcloud nécessite une version 64-bits pour bien fonctionner. Merci de mettre à niveau votre système d'exploitation et PHP en 64-bits. Pour plus de détails consultez {linkstart}the documentation page about this ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Un message de réinitialisation de votre mot de passe a été envoyé à l'adresse e-mail renseignée pour ce compte. Si vous ne le recevez pas, veuillez vérifier dans votre dossier spam ou demander de l'aide à l'administrateur de cette instance.", "If it is not there ask your local administrator." : "Si ce n'est pas le cas, veuillez contacter votre administrateur.", "Press enter to start searching" : "Appuyez sur Entrée pour démarrer la recherche", @@ -412,7 +433,6 @@ "No more subfolders in here" : "Plus aucun sous-dossier ici", "Name" : "Nom", "Size" : "Taille", - "Modified" : "Modifié", "\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.", "File name cannot be empty." : "Le nom de fichier ne peut pas être vide.", "\"/\" is not allowed inside a file name." : "\"/\" n'est pas autorisé dans un nom de fichier.", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 595534069fc..be044e7a040 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente empregase SQLite como infraestrutura da base de datos. Para instalacións máis grandes recomendámoslle que cambie a unha infraestrutura de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isto está especialmente recomendado cando se utiliza o cliente de escritorio para a sincronización de ficheiros.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a outra base de datos, use a ferramenta de liña de ordes: «occ db:convert-type», ou consulte a {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "O límite de memoria de PHP está por baixo do valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algúns directorios de aplicacións son propiedade dun usuario diferente do usuario do servidor web. Este pode ser o caso se se instalaron aplicacións manualmente. Comprobe os permisos dos seguintes directorios de aplicacións:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Empregase MySQL como base de datos mais non admite caracteres de 4 bytes. Para poder manexar caracteres de 4 bytes (coma «emojis») sen problemas nos nomes de ficheiro ou comentarios por exemplo, recoméndase activar a compatibilidade de 4 bytes en MySQL. Para obter máis información, lea {linkstart}a páxina de documentación sobre isto ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia emprega un almacén de obxectos baseada en S3 como almacenamento primario. Os ficheiros enviados almacénanse temporalmente no servidor e, polo tanto, recoméndase dispor de 50 GB de espazo libre no directorio temporal de PHP. Comprobe os rexistros para obter máis detalles sobre a ruta e o espazo dispoñíbel. Para mellorar isto, cambie o directorio temporal no php.ini ou habilite máis espazo dispoñíbel nesta ruta.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Máis aplicacións", "Currently open" : "Aberto actualmente", "_{count} notification_::_{count} notifications_" : ["{count} notificación","{count} notificacións"], + "Date range filter" : "Filtro de intervalo de datas", + "Pick start date" : "Escolla a data de inicio", + "Pick end date" : "Escolla a data de finalización", + "Apply range" : "Aplicar o intervalo", "Log in" : "Acceder", "Logging in …" : "Acceder…", "Server side authentication failed!" : "A autenticación fracasou do lado do servidor!", "Please contact your administrator." : "Contacte coa administración desta instancia.", + "Temporary error" : "produciuse un erro temporal", + "Please try again." : "Ténteo de novo", "An internal error occurred." : "Produciuse un erro interno", "Please try again or contact your administrator." : "Ténteo de novo ou póñase en contacto coa administración desta instancia.", "Account name or email" : "Nome da conta ou correo-e", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "Instalar a aplicación de Contactos", "Loading your contacts …" : "Cargando os seus contactos…", "Looking for {term} …" : "Buscando {term}…", + "Global search" : "Busca global", + "Search apps, files, tags, messages" : "Buscar aplicacións, ficheiros, etiquetas, mensaxes", + "Apps and Settings" : "Aplicacións e axustes", + "Modified" : "Modificado", + "Today" : "Hoxe", + "Last 7 days" : "Últimos 7 días", + "Last 30 days" : "Últimos 30 días", + "This year" : "Este ano", + "Last year" : "Último ano", + "Custom date range" : "Intervalo de datas personalizado", + "Search people" : "Buscar persoas", + "Not found" : "Non atopado", + "People" : "Persoas", + "Load more results" : "Cargando máis resultados", + "Start typing in search" : "Comece a escribir na busca", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Entre ${this.dateFilter.startFrom.toLocaleDateString()} e ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Esqueceu o contrasinal?", "Back to login form" : "Volver ao formulario de acceso", "Back" : "Atrás", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "Buscar só por {name}", "Start typing to search" : "Comece a escribir para buscar", "Loading more results …" : "Cargando máis resultados…", - "Load more results" : "Cargando máis resultados", "Search" : "Buscar", "No results for {query}" : "Non hai resultados para {query}", "Press Enter to start searching" : "Prema Intro para comezar a busca", @@ -367,7 +387,7 @@ OC.L10N.register( "Access through untrusted domain" : "Acceso a través dun dominio non fiábel", "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Contacte coa administración do sistema. Se Vde. é un administrador, edite o axuste de «trusted_domains» en config/config.php coma no exemplo en config.sample.php. ", "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Pode atopar máis información sobre cómo configurar isto na %1$sdocumentación%2$s.", - "App update required" : "Precisase actualizar a aplicación", + "App update required" : "Precísase de actualizar a aplicación", "%1$s will be updated to version %2$s" : "%1$s actualizarase á versión %2$s", "The following apps will be updated:" : "As seguintes aplicacións foron actualizadas:", "These incompatible apps will be disabled:" : "Desactivaranse estas aplicacións incompatíbeis:", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP non é compatíbel con FreeType, o que supón a quebra das imaxes do perfil e a interface dos axustes.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia fáltanlle algúns módulos PHP recomendados. Para mellorar o rendemento e aumentar a compatibilidade, recomendase encarecidamente instalalos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que está a executar unha versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar ben. Actualice o seu sistema operativo e PHP a 64 bits. Para obter máis detalles, lea {linkstart}a páxina de documentación sobre isto ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "O límite de memoria de PHP está por baixo do valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Enviouse unha mensaxe de restabelecemento do contrasinal ao enderezo de correo desta conta. Se non o recibe, consulte os seus cartafoles de correo lixo ou non desexado ou pídalle axuda á administración desta instancia.", "If it is not there ask your local administrator." : "Se non existe, pregúntelle a administración desta instancia", "Press enter to start searching" : "Prema Intro para comezar a buscar", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "Aquí non hai máis subcartafoles", "Name" : "Nome", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.", "File name cannot be empty." : "O nome de ficheiro non pode estar baleiro", "\"/\" is not allowed inside a file name." : "«/» non está permitido nun nome de ficheiro.", @@ -427,7 +447,7 @@ OC.L10N.register( "Home" : "Inicio", "Copy to {folder}" : "Copiar en {folder}", "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Precisase autenticación", + "Authentication required" : "Precísase da autenticación", "Failed to authenticate, try again" : "Fallou a autenticación, ténteo de novo", "File not found" : "Non se atopou o ficheiro", "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Non foi posíbel atopar o documento no servidor. É posíbel que a ligazón for eliminada ou que xa teña caducado.", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index 67b34b0622a..1d18aff2260 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente empregase SQLite como infraestrutura da base de datos. Para instalacións máis grandes recomendámoslle que cambie a unha infraestrutura de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isto está especialmente recomendado cando se utiliza o cliente de escritorio para a sincronización de ficheiros.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar a outra base de datos, use a ferramenta de liña de ordes: «occ db:convert-type», ou consulte a {linkstart}documentación ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "O límite de memoria de PHP está por baixo do valor recomendado de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algúns directorios de aplicacións son propiedade dun usuario diferente do usuario do servidor web. Este pode ser o caso se se instalaron aplicacións manualmente. Comprobe os permisos dos seguintes directorios de aplicacións:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Empregase MySQL como base de datos mais non admite caracteres de 4 bytes. Para poder manexar caracteres de 4 bytes (coma «emojis») sen problemas nos nomes de ficheiro ou comentarios por exemplo, recoméndase activar a compatibilidade de 4 bytes en MySQL. Para obter máis información, lea {linkstart}a páxina de documentación sobre isto ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Esta instancia emprega un almacén de obxectos baseada en S3 como almacenamento primario. Os ficheiros enviados almacénanse temporalmente no servidor e, polo tanto, recoméndase dispor de 50 GB de espazo libre no directorio temporal de PHP. Comprobe os rexistros para obter máis detalles sobre a ruta e o espazo dispoñíbel. Para mellorar isto, cambie o directorio temporal no php.ini ou habilite máis espazo dispoñíbel nesta ruta.", @@ -136,10 +135,16 @@ "More apps" : "Máis aplicacións", "Currently open" : "Aberto actualmente", "_{count} notification_::_{count} notifications_" : ["{count} notificación","{count} notificacións"], + "Date range filter" : "Filtro de intervalo de datas", + "Pick start date" : "Escolla a data de inicio", + "Pick end date" : "Escolla a data de finalización", + "Apply range" : "Aplicar o intervalo", "Log in" : "Acceder", "Logging in …" : "Acceder…", "Server side authentication failed!" : "A autenticación fracasou do lado do servidor!", "Please contact your administrator." : "Contacte coa administración desta instancia.", + "Temporary error" : "produciuse un erro temporal", + "Please try again." : "Ténteo de novo", "An internal error occurred." : "Produciuse un erro interno", "Please try again or contact your administrator." : "Ténteo de novo ou póñase en contacto coa administración desta instancia.", "Account name or email" : "Nome da conta ou correo-e", @@ -187,6 +192,22 @@ "Install the Contacts app" : "Instalar a aplicación de Contactos", "Loading your contacts …" : "Cargando os seus contactos…", "Looking for {term} …" : "Buscando {term}…", + "Global search" : "Busca global", + "Search apps, files, tags, messages" : "Buscar aplicacións, ficheiros, etiquetas, mensaxes", + "Apps and Settings" : "Aplicacións e axustes", + "Modified" : "Modificado", + "Today" : "Hoxe", + "Last 7 days" : "Últimos 7 días", + "Last 30 days" : "Últimos 30 días", + "This year" : "Este ano", + "Last year" : "Último ano", + "Custom date range" : "Intervalo de datas personalizado", + "Search people" : "Buscar persoas", + "Not found" : "Non atopado", + "People" : "Persoas", + "Load more results" : "Cargando máis resultados", + "Start typing in search" : "Comece a escribir na busca", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Entre ${this.dateFilter.startFrom.toLocaleDateString()} e ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Esqueceu o contrasinal?", "Back to login form" : "Volver ao formulario de acceso", "Back" : "Atrás", @@ -202,7 +223,6 @@ "Search for {name} only" : "Buscar só por {name}", "Start typing to search" : "Comece a escribir para buscar", "Loading more results …" : "Cargando máis resultados…", - "Load more results" : "Cargando máis resultados", "Search" : "Buscar", "No results for {query}" : "Non hai resultados para {query}", "Press Enter to start searching" : "Prema Intro para comezar a busca", @@ -365,7 +385,7 @@ "Access through untrusted domain" : "Acceso a través dun dominio non fiábel", "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Contacte coa administración do sistema. Se Vde. é un administrador, edite o axuste de «trusted_domains» en config/config.php coma no exemplo en config.sample.php. ", "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Pode atopar máis información sobre cómo configurar isto na %1$sdocumentación%2$s.", - "App update required" : "Precisase actualizar a aplicación", + "App update required" : "Precísase de actualizar a aplicación", "%1$s will be updated to version %2$s" : "%1$s actualizarase á versión %2$s", "The following apps will be updated:" : "As seguintes aplicacións foron actualizadas:", "These incompatible apps will be disabled:" : "Desactivaranse estas aplicacións incompatíbeis:", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP non é compatíbel con FreeType, o que supón a quebra das imaxes do perfil e a interface dos axustes.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "A esta instancia fáltanlle algúns módulos PHP recomendados. Para mellorar o rendemento e aumentar a compatibilidade, recomendase encarecidamente instalalos.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que está a executar unha versión de PHP de 32 bits. Nextcloud necesita 64 bits para funcionar ben. Actualice o seu sistema operativo e PHP a 64 bits. Para obter máis detalles, lea {linkstart}a páxina de documentación sobre isto ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "O límite de memoria de PHP está por baixo do valor recomendado de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Enviouse unha mensaxe de restabelecemento do contrasinal ao enderezo de correo desta conta. Se non o recibe, consulte os seus cartafoles de correo lixo ou non desexado ou pídalle axuda á administración desta instancia.", "If it is not there ask your local administrator." : "Se non existe, pregúntelle a administración desta instancia", "Press enter to start searching" : "Prema Intro para comezar a buscar", @@ -412,7 +433,6 @@ "No more subfolders in here" : "Aquí non hai máis subcartafoles", "Name" : "Nome", "Size" : "Tamaño", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.", "File name cannot be empty." : "O nome de ficheiro non pode estar baleiro", "\"/\" is not allowed inside a file name." : "«/» non está permitido nun nome de ficheiro.", @@ -425,7 +445,7 @@ "Home" : "Inicio", "Copy to {folder}" : "Copiar en {folder}", "Move to {folder}" : "Mover a {folder}", - "Authentication required" : "Precisase autenticación", + "Authentication required" : "Precísase da autenticación", "Failed to authenticate, try again" : "Fallou a autenticación, ténteo de novo", "File not found" : "Non se atopou o ficheiro", "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Non foi posíbel atopar o documento no servidor. É posíbel que a ligazón for eliminada ou que xa teña caducado.", diff --git a/core/l10n/he.js b/core/l10n/he.js index 131b20cafcb..c782200f1b2 100644 --- a/core/l10n/he.js +++ b/core/l10n/he.js @@ -71,7 +71,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "למודול php-imagick במקרה הזה אין תמיכה ב- SVG. לקבלת תאימות טובה יותר, מומלץ להתקין אותו.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite הוא מנגנון מסד הנתונים נכון לעכשיו. במערכות גדולות מוטב להחליף למנגנון מסד נתונים אחר.", "This is particularly recommended when using the desktop client for file synchronisation." : "מצב זה מומלץ במיוחד כאשר מריצים את לקוח שולחן העבודה לסנכרון קבצים.", - "The PHP memory limit is below the recommended value of 512MB." : "מגבלת הזיכרון של ה־PHP היא מתחת לערך המומלץ על סך 512 מ״ב.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "ספריות אפליקציות מסוימות הן בבעלות משתמש אחר מזה של שרת האינטרנט. זה יכול להיות במקרה שאפליקציות הותקנו באופן ידני. בדוק את ההרשאות של ספריות האפליקציות הבאות:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "מופע זה משתמש באיחסון אובייקטים מבוססת S3 כאחסון ראשי. הקבצים שהועלו מאוחסנים באופן זמני בשרת, ולכן מומלץ שיהיה שטח פנוי של 50 GB בספריית ה- temp של PHP. בדוק ביומנים לקבלת יותר פרטים על הנתיב והשטח הזמין. כדי לשפר זאת, אנא שנה את הספריה הזמנית ב- php.ini, או תפנה יותר מקום בנתיב זה.", "Error occurred while checking server setup" : "שגיאה אירעה בזמן בדיקת התקנת השרת", @@ -131,13 +130,17 @@ OC.L10N.register( "Install the Contacts app" : "התקנת יישומון אנשי הקשר", "Loading your contacts …" : "אנשי הקשר שלך נטענים…", "Looking for {term} …" : "מתבצע חיפוש אחר {term}…", + "Modified" : "מועד שינוי", + "Today" : "היום", + "Last year" : "שנה שעברה", + "Not found" : "לא נמצא", + "Load more results" : "לטעון עוד תוצאות", "Forgot password?" : "שכחת ססמה?", "Back" : "חזרה", "Reset search" : "איפוס החיפוש", "Search for {name} only" : "חפש ל-{name} בלבד", "Start typing to search" : "להתחלת החיפוש יש להקליד", "Loading more results …" : "נטענות תוצאות נוספות…", - "Load more results" : "לטעון עוד תוצאות", "Search" : "חיפוש", "No results for {query}" : "אין תוצאות עבור {query}", "An error occurred while searching for {type}" : "אירעה שגיאה בחיפוש אחר {type}", @@ -303,6 +306,7 @@ OC.L10N.register( "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "מודול ה־PHP בשם „fileinfo” חסר. מומלץ בחום להפעיל את המודול הזה כדי לקבל את התוצאות הטובות ביותר בזיהוי סוג MIME.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "ל־PHP שלך אין תמיכה ב־FreeType. מצב כזה יגרום לתמונות פרופיל משובשות לצד מנשק הגדרות משובש.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "במופע זה חסרים כמה מודולי PHP מומלצים. לשיפור ביצועים ותאימות טובה יותר, מומלץ להתקין אותם.", + "The PHP memory limit is below the recommended value of 512MB." : "מגבלת הזיכרון של ה־PHP היא מתחת לערך המומלץ על סך 512 מ״ב.", "If it is not there ask your local administrator." : "אם זה לא נמצא, שאל את המנהל המקומי שלך.", "Settings" : "הגדרות", "Show all contacts …" : "הצגת כל אנשי הקשר…", @@ -311,7 +315,6 @@ OC.L10N.register( "No more subfolders in here" : "אין כאן עוד תת־תיקיות", "Name" : "שם", "Size" : "גודל", - "Modified" : "מועד שינוי", "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.", "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.", diff --git a/core/l10n/he.json b/core/l10n/he.json index fd01a83d910..3258a52217b 100644 --- a/core/l10n/he.json +++ b/core/l10n/he.json @@ -69,7 +69,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "למודול php-imagick במקרה הזה אין תמיכה ב- SVG. לקבלת תאימות טובה יותר, מומלץ להתקין אותו.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite הוא מנגנון מסד הנתונים נכון לעכשיו. במערכות גדולות מוטב להחליף למנגנון מסד נתונים אחר.", "This is particularly recommended when using the desktop client for file synchronisation." : "מצב זה מומלץ במיוחד כאשר מריצים את לקוח שולחן העבודה לסנכרון קבצים.", - "The PHP memory limit is below the recommended value of 512MB." : "מגבלת הזיכרון של ה־PHP היא מתחת לערך המומלץ על סך 512 מ״ב.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "ספריות אפליקציות מסוימות הן בבעלות משתמש אחר מזה של שרת האינטרנט. זה יכול להיות במקרה שאפליקציות הותקנו באופן ידני. בדוק את ההרשאות של ספריות האפליקציות הבאות:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "מופע זה משתמש באיחסון אובייקטים מבוססת S3 כאחסון ראשי. הקבצים שהועלו מאוחסנים באופן זמני בשרת, ולכן מומלץ שיהיה שטח פנוי של 50 GB בספריית ה- temp של PHP. בדוק ביומנים לקבלת יותר פרטים על הנתיב והשטח הזמין. כדי לשפר זאת, אנא שנה את הספריה הזמנית ב- php.ini, או תפנה יותר מקום בנתיב זה.", "Error occurred while checking server setup" : "שגיאה אירעה בזמן בדיקת התקנת השרת", @@ -129,13 +128,17 @@ "Install the Contacts app" : "התקנת יישומון אנשי הקשר", "Loading your contacts …" : "אנשי הקשר שלך נטענים…", "Looking for {term} …" : "מתבצע חיפוש אחר {term}…", + "Modified" : "מועד שינוי", + "Today" : "היום", + "Last year" : "שנה שעברה", + "Not found" : "לא נמצא", + "Load more results" : "לטעון עוד תוצאות", "Forgot password?" : "שכחת ססמה?", "Back" : "חזרה", "Reset search" : "איפוס החיפוש", "Search for {name} only" : "חפש ל-{name} בלבד", "Start typing to search" : "להתחלת החיפוש יש להקליד", "Loading more results …" : "נטענות תוצאות נוספות…", - "Load more results" : "לטעון עוד תוצאות", "Search" : "חיפוש", "No results for {query}" : "אין תוצאות עבור {query}", "An error occurred while searching for {type}" : "אירעה שגיאה בחיפוש אחר {type}", @@ -301,6 +304,7 @@ "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "מודול ה־PHP בשם „fileinfo” חסר. מומלץ בחום להפעיל את המודול הזה כדי לקבל את התוצאות הטובות ביותר בזיהוי סוג MIME.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "ל־PHP שלך אין תמיכה ב־FreeType. מצב כזה יגרום לתמונות פרופיל משובשות לצד מנשק הגדרות משובש.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "במופע זה חסרים כמה מודולי PHP מומלצים. לשיפור ביצועים ותאימות טובה יותר, מומלץ להתקין אותם.", + "The PHP memory limit is below the recommended value of 512MB." : "מגבלת הזיכרון של ה־PHP היא מתחת לערך המומלץ על סך 512 מ״ב.", "If it is not there ask your local administrator." : "אם זה לא נמצא, שאל את המנהל המקומי שלך.", "Settings" : "הגדרות", "Show all contacts …" : "הצגת כל אנשי הקשר…", @@ -309,7 +313,6 @@ "No more subfolders in here" : "אין כאן עוד תת־תיקיות", "Name" : "שם", "Size" : "גודל", - "Modified" : "מועד שינוי", "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.", "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.", diff --git a/core/l10n/hr.js b/core/l10n/hr.js index ea37f4cbad6..56146306a1e 100644 --- a/core/l10n/hr.js +++ b/core/l10n/hr.js @@ -79,7 +79,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Modul php-imagick nema podršku za SVG u ovoj instanci. Preporučuje se da ga instalirate kako biste osigurali bolju kompatibilnost.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite se trenutno upotrebljava kao pozadinska baza podataka. Za veće instalacije preporučujemo da se prebacite na neku drugu pozadinsku bazu podataka.", "This is particularly recommended when using the desktop client for file synchronisation." : "To se osobito preporučuje ako upotrebljavate klijent za sinkronizaciju datoteka.", - "The PHP memory limit is below the recommended value of 512MB." : "Ograničenje memorije PHP-a ispod je preporučene vrijednosti od 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Određeni direktoriji aplikacija vlasništvo su korisnika koji nije vlasnik web poslužitelja. To se može dogoditi ako su aplikacije ručno instalirane. Provjerite dopuštenja za sljedeće direktorije aplikacija:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL se koristi kao aktivna baza podataka, ali ne podržava 4-bajtne znakove. Kako biste se mogli koristiti 4-bajtnim znakovima (primjerice, smajlići) bez problema u nazivima datoteka ili komentarima, preporučuje se da omogućite 4-bajtnu podršku u MySQL-u. Za više pojedinosti pročitajte {linkstart}odgovarajuće poglavlje u dokumentaciji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ova instanca upotrebljava pohranu objekta temeljenu na S3 kao primarnu pohranu. Otpremljene datoteke privremeno se pohranjuju na poslužitelju i stoga je preporučljivo osigurati 50 GB slobodnog prostora u privremenom direktoriju PHP-a. Više informacija o putovima i dostupnom prostoru potražite u zapisima poslužitelja. Ako želite osloboditi više prostora, promijenite privremeni direktorij u datoteci php.ini ili oslobodite prostor na tom putu.", @@ -152,6 +151,11 @@ OC.L10N.register( "Install the Contacts app" : "Instalirajte aplikaciju Kontakti", "Loading your contacts …" : "Učitavanje vaših kontakata...", "Looking for {term} …" : "Tražim {term}…", + "Modified" : "Promijenjeno", + "Last year" : "Prošle godine", + "Not found" : "Nije pronađeno", + "People" : "Ljudi", + "Load more results" : "Učitaj više rezultata", "Forgot password?" : "Zaboravili ste zaporku?", "Back" : "Natrag", "Login form is disabled." : "Obrazac za prijavu je onemogućen.", @@ -159,7 +163,6 @@ OC.L10N.register( "Search for {name} only" : "Traži samo {name}", "Start typing to search" : "Počnite unositi tekst za pretraživanje", "Loading more results …" : "Učitavanje više rezultata…", - "Load more results" : "Učitaj više rezultata", "Search" : "Traži", "No results for {query}" : "Nema rezultata za {query}", "An error occurred while searching for {type}" : "Došlo je do pogreške pri traženju {type}", @@ -332,6 +335,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Trenutno upotrebljavate PHP {version}. Nadogradite inačicu PHP-a kako biste iskoristili {linkstart}ažuriranja performansi i sigurnosti koje isporučuje PHP Grupa ↗{linkend} čim vam vaša distribucija to omogući.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vaš PHP nema podršku za FreeType što može uzrokovati neispravan prikaz profilnih slika i sučelja postavki.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "U ovoj instanci nedostaju neki preporučeni moduli PHP-a. Preporučujemo da ih instalirate kako biste poboljšali performanse i ostvarili bolju kompatibilnost.", + "The PHP memory limit is below the recommended value of 512MB." : "Ograničenje memorije PHP-a ispod je preporučene vrijednosti od 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Poslana Vam je poruka za resetiranje zaporke na adresu e-pošte za ovaj račun. Ako je niste primili, provjerite Vaše mape smeća i neželjene pošte, ili se obratite svom lokalnom administratoru.", "If it is not there ask your local administrator." : "Ako i tamo nema poruke, obratite se lokalnom administratoru.", "Settings" : "Postavke", @@ -341,7 +345,6 @@ OC.L10N.register( "No more subfolders in here" : "Ovdje više nema podmapa", "Name" : "Naziv", "Size" : "Veličina", - "Modified" : "Promijenjeno", "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.", "File name cannot be empty." : "Naziv datoteke ne može biti prazan.", "\"/\" is not allowed inside a file name." : "„/” nije dopušteno unutar naziva datoteke.", diff --git a/core/l10n/hr.json b/core/l10n/hr.json index 5354cc960bd..52b9c4fb549 100644 --- a/core/l10n/hr.json +++ b/core/l10n/hr.json @@ -77,7 +77,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Modul php-imagick nema podršku za SVG u ovoj instanci. Preporučuje se da ga instalirate kako biste osigurali bolju kompatibilnost.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite se trenutno upotrebljava kao pozadinska baza podataka. Za veće instalacije preporučujemo da se prebacite na neku drugu pozadinsku bazu podataka.", "This is particularly recommended when using the desktop client for file synchronisation." : "To se osobito preporučuje ako upotrebljavate klijent za sinkronizaciju datoteka.", - "The PHP memory limit is below the recommended value of 512MB." : "Ograničenje memorije PHP-a ispod je preporučene vrijednosti od 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Određeni direktoriji aplikacija vlasništvo su korisnika koji nije vlasnik web poslužitelja. To se može dogoditi ako su aplikacije ručno instalirane. Provjerite dopuštenja za sljedeće direktorije aplikacija:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL se koristi kao aktivna baza podataka, ali ne podržava 4-bajtne znakove. Kako biste se mogli koristiti 4-bajtnim znakovima (primjerice, smajlići) bez problema u nazivima datoteka ili komentarima, preporučuje se da omogućite 4-bajtnu podršku u MySQL-u. Za više pojedinosti pročitajte {linkstart}odgovarajuće poglavlje u dokumentaciji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ova instanca upotrebljava pohranu objekta temeljenu na S3 kao primarnu pohranu. Otpremljene datoteke privremeno se pohranjuju na poslužitelju i stoga je preporučljivo osigurati 50 GB slobodnog prostora u privremenom direktoriju PHP-a. Više informacija o putovima i dostupnom prostoru potražite u zapisima poslužitelja. Ako želite osloboditi više prostora, promijenite privremeni direktorij u datoteci php.ini ili oslobodite prostor na tom putu.", @@ -150,6 +149,11 @@ "Install the Contacts app" : "Instalirajte aplikaciju Kontakti", "Loading your contacts …" : "Učitavanje vaših kontakata...", "Looking for {term} …" : "Tražim {term}…", + "Modified" : "Promijenjeno", + "Last year" : "Prošle godine", + "Not found" : "Nije pronađeno", + "People" : "Ljudi", + "Load more results" : "Učitaj više rezultata", "Forgot password?" : "Zaboravili ste zaporku?", "Back" : "Natrag", "Login form is disabled." : "Obrazac za prijavu je onemogućen.", @@ -157,7 +161,6 @@ "Search for {name} only" : "Traži samo {name}", "Start typing to search" : "Počnite unositi tekst za pretraživanje", "Loading more results …" : "Učitavanje više rezultata…", - "Load more results" : "Učitaj više rezultata", "Search" : "Traži", "No results for {query}" : "Nema rezultata za {query}", "An error occurred while searching for {type}" : "Došlo je do pogreške pri traženju {type}", @@ -330,6 +333,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Trenutno upotrebljavate PHP {version}. Nadogradite inačicu PHP-a kako biste iskoristili {linkstart}ažuriranja performansi i sigurnosti koje isporučuje PHP Grupa ↗{linkend} čim vam vaša distribucija to omogući.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vaš PHP nema podršku za FreeType što može uzrokovati neispravan prikaz profilnih slika i sučelja postavki.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "U ovoj instanci nedostaju neki preporučeni moduli PHP-a. Preporučujemo da ih instalirate kako biste poboljšali performanse i ostvarili bolju kompatibilnost.", + "The PHP memory limit is below the recommended value of 512MB." : "Ograničenje memorije PHP-a ispod je preporučene vrijednosti od 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Poslana Vam je poruka za resetiranje zaporke na adresu e-pošte za ovaj račun. Ako je niste primili, provjerite Vaše mape smeća i neželjene pošte, ili se obratite svom lokalnom administratoru.", "If it is not there ask your local administrator." : "Ako i tamo nema poruke, obratite se lokalnom administratoru.", "Settings" : "Postavke", @@ -339,7 +343,6 @@ "No more subfolders in here" : "Ovdje više nema podmapa", "Name" : "Naziv", "Size" : "Veličina", - "Modified" : "Promijenjeno", "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.", "File name cannot be empty." : "Naziv datoteke ne može biti prazan.", "\"/\" is not allowed inside a file name." : "„/” nije dopušteno unutar naziva datoteke.", diff --git a/core/l10n/hu.js b/core/l10n/hu.js index 246b5bcb22a..652137eacec 100644 --- a/core/l10n/hu.js +++ b/core/l10n/hu.js @@ -42,6 +42,7 @@ OC.L10N.register( "Necessary language model provider is not available" : "A szükséges nyelvimodell-szolgáltató nem érhető el", "Task not found" : "A feladat nem található", "Internal error" : "Belső hiba", + "No text to image provider is available" : "Nem érhető el képgenerátor szolgáltató", "Image not found" : "A kép nem található", "No translation provider available" : "Nem érhető el fordítási szolgáltató", "Could not detect language" : "Nem sikerült észlelni a nyelvet", @@ -101,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jelenleg SQLite van háttéradatbázisként használva. Nagyobb telepítésekhez javasoljuk, hogy váltson más háttéradatbázisra. ", "This is particularly recommended when using the desktop client for file synchronisation." : "Ezt különösen akkor javasoljuk, ha asztali klienst használ fájlszinkronizálásához.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Más adatbázisba történő áttéréshez használja a parancssori eszközt: „occ db: convert-type”, vagy tekintse meg a {linkstart}dokumentációt ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "A PHP memóriakorlátja az ajánlott 512 MB alatt van.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Néhány alkalmazáskönyvtár tulajdonosa különbözik a webkiszolgálóétól. Ez akkor fordul elő, ha az alkalmazás kézileg lett telepítve. Ellenőrizze az alábbi alkalmazáskönyvtárak jogosultságát:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "A MySQL adatbázis van használatban, de nem támogatja a 4 bájtos karaktereket. Hogy a 4 bájtos karakterek (például az emodzsikat) problémák nélkül kezelhetők legyenek, például a fájlnevekben vagy a megjegyzésekben, ajánlott engedélyezni a 4 bájtos támogatást a MySQL-ben. További részletekért olvassa el a {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ez a példány S3-alapú objektumtárat használ elsődleges tárolóként. A feltöltött fájlok ideiglenesen a kiszolgálón tároltak, így ajánlott hogy legalább 50GB szabad tárhely legyen a PHP ideiglenes könyvtárában. Ellenőrizze a naplókat az útvonal pontos részletei és az elérhető hely miatt. Hogy ezen javítson, módosítsa az ideiglenes könyvtárat a php.ini-ben, vagy szabadítson fel helyet azon az útvonalon.", @@ -141,6 +141,8 @@ OC.L10N.register( "Logging in …" : "Bejelentkezés…", "Server side authentication failed!" : "A kiszolgálóoldali hitelesítés sikertelen.", "Please contact your administrator." : "Lépjen kapcsolatba a rendszergazdával.", + "Temporary error" : "Ideiglenes hiba", + "Please try again." : "Próbálja újra.", "An internal error occurred." : "Belső hiba történt.", "Please try again or contact your administrator." : "Próbálja meg újra, vagy vegye fel a kapcsolatot a rendszergazdával.", "Account name or email" : "Fióknév vagy e-mail-cím", @@ -188,6 +190,12 @@ OC.L10N.register( "Install the Contacts app" : "A Névjegyek alkalmazás telepítése", "Loading your contacts …" : "Névjegyek betöltése…", "Looking for {term} …" : "{term} keresése…", + "Modified" : "Módosítva", + "Today" : "Ma", + "Last year" : "Előző év", + "Not found" : "Nem található", + "People" : "Emberek", + "Load more results" : "További találatok betöltése", "Forgot password?" : "Elfelejtett jelszó?", "Back to login form" : "Vissza a bejelentkezési űrlaphoz", "Back" : "Vissza", @@ -203,7 +211,6 @@ OC.L10N.register( "Search for {name} only" : "Keresés csak a(z) {name} kifejezésre", "Start typing to search" : "Kezdjen el gépelni a kereséshez", "Loading more results …" : "További találatok betöltése…", - "Load more results" : "További találatok betöltése", "Search" : "Keresés", "No results for {query}" : "Nincs találat a következőre: {query}", "Press Enter to start searching" : "A keresés indításához nyomjon Entert", @@ -401,6 +408,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Ennél a példánynál hiányzik néhány javasolt PHP modul. A jobb teljesítmény és nagyobb kompatibilitás miatt ezek telepítése erősen javallott.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Úgy tűnik, hogy 32 bites PHP verziót használ. A Nextcloud megfelelő futtatásához 64 bites szükséges. Frissítse 64 bitesre az operációs rendszerét és a PHP-ját. További részletekért olvassa el az {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "A PHP memóriakorlátja az ajánlott 512 MB alatt van.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Egy jelszó visszaállítási e-mail lett küldve a fiók e-mail-címére. Ha nem kapta meg, akkor ellenőrizze a levélszemét mappát, vagy kérje a helyi rendszergazda segítségét.", "If it is not there ask your local administrator." : "Ha nincs ott, akkor kérdezze a helyi rendszergazdát.", "Press enter to start searching" : "A keresés indításához nyomjon Entert", @@ -413,7 +421,6 @@ OC.L10N.register( "No more subfolders in here" : "Itt nincsenek almappák", "Name" : "Név", "Size" : "Méret", - "Modified" : "Módosítva", "\"{name}\" is an invalid file name." : "A(z) „{name}” fájlnév érvénytelen.", "File name cannot be empty." : "A fájlnév nem lehet üres.", "\"/\" is not allowed inside a file name." : "„/” nem szerepelhet fájlnévben.", diff --git a/core/l10n/hu.json b/core/l10n/hu.json index e34248dcb54..d8359cbc5b6 100644 --- a/core/l10n/hu.json +++ b/core/l10n/hu.json @@ -40,6 +40,7 @@ "Necessary language model provider is not available" : "A szükséges nyelvimodell-szolgáltató nem érhető el", "Task not found" : "A feladat nem található", "Internal error" : "Belső hiba", + "No text to image provider is available" : "Nem érhető el képgenerátor szolgáltató", "Image not found" : "A kép nem található", "No translation provider available" : "Nem érhető el fordítási szolgáltató", "Could not detect language" : "Nem sikerült észlelni a nyelvet", @@ -99,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jelenleg SQLite van háttéradatbázisként használva. Nagyobb telepítésekhez javasoljuk, hogy váltson más háttéradatbázisra. ", "This is particularly recommended when using the desktop client for file synchronisation." : "Ezt különösen akkor javasoljuk, ha asztali klienst használ fájlszinkronizálásához.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Más adatbázisba történő áttéréshez használja a parancssori eszközt: „occ db: convert-type”, vagy tekintse meg a {linkstart}dokumentációt ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "A PHP memóriakorlátja az ajánlott 512 MB alatt van.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Néhány alkalmazáskönyvtár tulajdonosa különbözik a webkiszolgálóétól. Ez akkor fordul elő, ha az alkalmazás kézileg lett telepítve. Ellenőrizze az alábbi alkalmazáskönyvtárak jogosultságát:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "A MySQL adatbázis van használatban, de nem támogatja a 4 bájtos karaktereket. Hogy a 4 bájtos karakterek (például az emodzsikat) problémák nélkül kezelhetők legyenek, például a fájlnevekben vagy a megjegyzésekben, ajánlott engedélyezni a 4 bájtos támogatást a MySQL-ben. További részletekért olvassa el a {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ez a példány S3-alapú objektumtárat használ elsődleges tárolóként. A feltöltött fájlok ideiglenesen a kiszolgálón tároltak, így ajánlott hogy legalább 50GB szabad tárhely legyen a PHP ideiglenes könyvtárában. Ellenőrizze a naplókat az útvonal pontos részletei és az elérhető hely miatt. Hogy ezen javítson, módosítsa az ideiglenes könyvtárat a php.ini-ben, vagy szabadítson fel helyet azon az útvonalon.", @@ -139,6 +139,8 @@ "Logging in …" : "Bejelentkezés…", "Server side authentication failed!" : "A kiszolgálóoldali hitelesítés sikertelen.", "Please contact your administrator." : "Lépjen kapcsolatba a rendszergazdával.", + "Temporary error" : "Ideiglenes hiba", + "Please try again." : "Próbálja újra.", "An internal error occurred." : "Belső hiba történt.", "Please try again or contact your administrator." : "Próbálja meg újra, vagy vegye fel a kapcsolatot a rendszergazdával.", "Account name or email" : "Fióknév vagy e-mail-cím", @@ -186,6 +188,12 @@ "Install the Contacts app" : "A Névjegyek alkalmazás telepítése", "Loading your contacts …" : "Névjegyek betöltése…", "Looking for {term} …" : "{term} keresése…", + "Modified" : "Módosítva", + "Today" : "Ma", + "Last year" : "Előző év", + "Not found" : "Nem található", + "People" : "Emberek", + "Load more results" : "További találatok betöltése", "Forgot password?" : "Elfelejtett jelszó?", "Back to login form" : "Vissza a bejelentkezési űrlaphoz", "Back" : "Vissza", @@ -201,7 +209,6 @@ "Search for {name} only" : "Keresés csak a(z) {name} kifejezésre", "Start typing to search" : "Kezdjen el gépelni a kereséshez", "Loading more results …" : "További találatok betöltése…", - "Load more results" : "További találatok betöltése", "Search" : "Keresés", "No results for {query}" : "Nincs találat a következőre: {query}", "Press Enter to start searching" : "A keresés indításához nyomjon Entert", @@ -399,6 +406,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Ennél a példánynál hiányzik néhány javasolt PHP modul. A jobb teljesítmény és nagyobb kompatibilitás miatt ezek telepítése erősen javallott.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Úgy tűnik, hogy 32 bites PHP verziót használ. A Nextcloud megfelelő futtatásához 64 bites szükséges. Frissítse 64 bitesre az operációs rendszerét és a PHP-ját. További részletekért olvassa el az {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "A PHP memóriakorlátja az ajánlott 512 MB alatt van.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Egy jelszó visszaállítási e-mail lett küldve a fiók e-mail-címére. Ha nem kapta meg, akkor ellenőrizze a levélszemét mappát, vagy kérje a helyi rendszergazda segítségét.", "If it is not there ask your local administrator." : "Ha nincs ott, akkor kérdezze a helyi rendszergazdát.", "Press enter to start searching" : "A keresés indításához nyomjon Entert", @@ -411,7 +419,6 @@ "No more subfolders in here" : "Itt nincsenek almappák", "Name" : "Név", "Size" : "Méret", - "Modified" : "Módosítva", "\"{name}\" is an invalid file name." : "A(z) „{name}” fájlnév érvénytelen.", "File name cannot be empty." : "A fájlnév nem lehet üres.", "\"/\" is not allowed inside a file name." : "„/” nem szerepelhet fájlnévben.", diff --git a/core/l10n/id.js b/core/l10n/id.js index a8ed1df3dd1..d9c98d58e72 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -70,7 +70,6 @@ OC.L10N.register( "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Pangkalan data kehilangan beberapa kolom opsional. Berdasarkan fakta bahwa menambahkannya pada tabel yang besar membutuhkan waktu cukup lama, maka ini tidak dilakukan otomatis. Eksekusi \"occ db: add-missing-columns\", untuk menambahkan kolom secara manual sementara instance tetap berjalan. Setelah itu dilakukan, maka beberapa fitur dapat meningkatkan daya tanggap atau kegunaan.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite saat ini digunakan sebagai backend pangkalan data. Penggunaan instalasi skala lebih besar, kami sarankan agar beralih ke backend pangkalan data lainnya.", "This is particularly recommended when using the desktop client for file synchronisation." : "Hal ini sangat dianjurkan saat menggunakan klien desktop untuk sinkronisasi berkas.", - "The PHP memory limit is below the recommended value of 512MB." : "Batas memori PHP di bawah nilai yang disarankan yaitu 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Beberapa direktori dimiliki oleh pengguna berbeda dengan pengguna peladen web. Hal ini mungkin dikarenakan proses instalasi manual. Periksa hak akses direktori aplikasi berikut:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Instance ini menggunakan penyimpanan objek berbasis S3 sebagai penyimpanan utama. Karena berkas unggahan disimpan sementara pada server, maka disarankan untuk memiliki ruang kosong 50 GB pada direktori sementara PHP. Periksa log untuk detail lengkap tentang lokasi dan ruang penyimpanan yang tersedia. Untuk memperbaikinya, ubah direktori sementara di php.ini atau sediakan lebih banyak ruang di jalur ipada lokasi tersebut.", "Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server", @@ -137,6 +136,10 @@ OC.L10N.register( "Install the Contacts app" : "Instal aplikasi Kontak", "Loading your contacts …" : "Memuat kontak Anda ...", "Looking for {term} …" : "Mencari {term}", + "Modified" : "Dimodifikasi", + "Today" : "Hari ini", + "People" : "Orang", + "Load more results" : "Muat lebih banyak hasil", "Forgot password?" : "Lupa kata sandi?", "Back" : "Kembali", "Edit Profile" : "Sunting profil", @@ -147,7 +150,6 @@ OC.L10N.register( "Search for {name} only" : "Cari {name} saja", "Start typing to search" : "Mulai mengetik untuk mencari", "Loading more results …" : "Memuat hasil lainnya…", - "Load more results" : "Muat lebih banyak hasil", "Search" : "Cari", "No results for {query}" : "Tidak ada hasil untuk {query}", "An error occurred while searching for {type}" : "Terjadi kesalahan saat mencari {type}", @@ -320,6 +322,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Anda sedang menjalankan PHP {version}. Tingkatkan versi PHP Anda untuk memanfaatkan kinerja {linkstart} dan pembaruan keamanan yang disediakan oleh Grup PHP ↗{linkend} segera setelah distribusi Anda mendukungnya.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP Anda tidak mendukung FreeType, yang akan menyebabkan gangguan pada foto profil dan pengaturan antarmuka.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instance ini kehilangan beberapa modul PHP yang direkomendasikan. Sangat disarankan menggunakannya untuk peningkatan performa dan kompatibilitas.", + "The PHP memory limit is below the recommended value of 512MB." : "Batas memori PHP di bawah nilai yang disarankan yaitu 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Pesan pengaturan ulang kata sandi telah dikirim ke alamat surel akun ini. Jika Anda tidak menerimanya, periksa folder spam/sampah Anda atau minta bantuan administrator lokal Anda.", "If it is not there ask your local administrator." : "Jika Anda tidak mendapatkannya, hubungi administrator Anda.", "Press enter to start searching" : "Tekan enter untuk mulai mencari", @@ -330,7 +333,6 @@ OC.L10N.register( "No more subfolders in here" : "Tidak ada lagi subfolder di sini", "Name" : "Nama", "Size" : "Ukuran", - "Modified" : "Dimodifikasi", "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.", "File name cannot be empty." : "Nama berkas tidak boleh kosong.", "\"/\" is not allowed inside a file name." : "\"/\" tidak diizinkan pada nama berkas.", diff --git a/core/l10n/id.json b/core/l10n/id.json index 8fdb4302482..92be34ed49e 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -68,7 +68,6 @@ "The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Pangkalan data kehilangan beberapa kolom opsional. Berdasarkan fakta bahwa menambahkannya pada tabel yang besar membutuhkan waktu cukup lama, maka ini tidak dilakukan otomatis. Eksekusi \"occ db: add-missing-columns\", untuk menambahkan kolom secara manual sementara instance tetap berjalan. Setelah itu dilakukan, maka beberapa fitur dapat meningkatkan daya tanggap atau kegunaan.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite saat ini digunakan sebagai backend pangkalan data. Penggunaan instalasi skala lebih besar, kami sarankan agar beralih ke backend pangkalan data lainnya.", "This is particularly recommended when using the desktop client for file synchronisation." : "Hal ini sangat dianjurkan saat menggunakan klien desktop untuk sinkronisasi berkas.", - "The PHP memory limit is below the recommended value of 512MB." : "Batas memori PHP di bawah nilai yang disarankan yaitu 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Beberapa direktori dimiliki oleh pengguna berbeda dengan pengguna peladen web. Hal ini mungkin dikarenakan proses instalasi manual. Periksa hak akses direktori aplikasi berikut:", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Instance ini menggunakan penyimpanan objek berbasis S3 sebagai penyimpanan utama. Karena berkas unggahan disimpan sementara pada server, maka disarankan untuk memiliki ruang kosong 50 GB pada direktori sementara PHP. Periksa log untuk detail lengkap tentang lokasi dan ruang penyimpanan yang tersedia. Untuk memperbaikinya, ubah direktori sementara di php.ini atau sediakan lebih banyak ruang di jalur ipada lokasi tersebut.", "Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server", @@ -135,6 +134,10 @@ "Install the Contacts app" : "Instal aplikasi Kontak", "Loading your contacts …" : "Memuat kontak Anda ...", "Looking for {term} …" : "Mencari {term}", + "Modified" : "Dimodifikasi", + "Today" : "Hari ini", + "People" : "Orang", + "Load more results" : "Muat lebih banyak hasil", "Forgot password?" : "Lupa kata sandi?", "Back" : "Kembali", "Edit Profile" : "Sunting profil", @@ -145,7 +148,6 @@ "Search for {name} only" : "Cari {name} saja", "Start typing to search" : "Mulai mengetik untuk mencari", "Loading more results …" : "Memuat hasil lainnya…", - "Load more results" : "Muat lebih banyak hasil", "Search" : "Cari", "No results for {query}" : "Tidak ada hasil untuk {query}", "An error occurred while searching for {type}" : "Terjadi kesalahan saat mencari {type}", @@ -318,6 +320,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Anda sedang menjalankan PHP {version}. Tingkatkan versi PHP Anda untuk memanfaatkan kinerja {linkstart} dan pembaruan keamanan yang disediakan oleh Grup PHP ↗{linkend} segera setelah distribusi Anda mendukungnya.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP Anda tidak mendukung FreeType, yang akan menyebabkan gangguan pada foto profil dan pengaturan antarmuka.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instance ini kehilangan beberapa modul PHP yang direkomendasikan. Sangat disarankan menggunakannya untuk peningkatan performa dan kompatibilitas.", + "The PHP memory limit is below the recommended value of 512MB." : "Batas memori PHP di bawah nilai yang disarankan yaitu 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Pesan pengaturan ulang kata sandi telah dikirim ke alamat surel akun ini. Jika Anda tidak menerimanya, periksa folder spam/sampah Anda atau minta bantuan administrator lokal Anda.", "If it is not there ask your local administrator." : "Jika Anda tidak mendapatkannya, hubungi administrator Anda.", "Press enter to start searching" : "Tekan enter untuk mulai mencari", @@ -328,7 +331,6 @@ "No more subfolders in here" : "Tidak ada lagi subfolder di sini", "Name" : "Nama", "Size" : "Ukuran", - "Modified" : "Dimodifikasi", "\"{name}\" is an invalid file name." : "\"{name}\" adalah nama berkas yang tidak sah.", "File name cannot be empty." : "Nama berkas tidak boleh kosong.", "\"/\" is not allowed inside a file name." : "\"/\" tidak diizinkan pada nama berkas.", diff --git a/core/l10n/is.js b/core/l10n/is.js index 72795c8da24..9b054d9bca7 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -80,7 +80,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Núna er stuðst við SQLite sem bakenda fyrir gagnagrunn. Fyrir stærri uppsetningar mælum við með að skipta yfir í annan gagnagrunnsbakenda.", "This is particularly recommended when using the desktop client for file synchronisation." : "Mælt er sérstaklega með þessu þegar skjáborðsforritið er notað til að samstilla skrár.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Til að yfirfæra í annan gagnagrunn skaltu nota skipanalínutólið: \"occ db:convert-type\", eða lesa {linkstart}hjálparskjölin ↗ {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Minnismörk PHP eru lægri en gildið sem mælt er með; 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Sumar forritamöppur eru í eigu annarra notenda en möppurnar á vefþjóninum. Þetta getur komið upp ef forritin hafa verið sett upp handvirkt. Athugaðu með heimildir á eftirfarandi forritamöppum:", "Error occurred while checking server setup" : "Villa kom upp við athugun á uppsetningu þjóns", "For more details see the {linkstart}documentation ↗{linkend}." : "Frekari upplýsingar má sjá í {linkstart}hjálparskjölunum ↗{linkend}.", @@ -150,6 +149,11 @@ OC.L10N.register( "Install the Contacts app" : "Setja upp tengiliðaforritið", "Loading your contacts …" : "Hleð inn tengiliðalistum ...", "Looking for {term} …" : "Leita að {term} …", + "Modified" : "Breytt", + "Today" : "Í dag", + "Not found" : "Fannst ekki", + "People" : "Fólk", + "Load more results" : "Hlaða inn fleiri niðurstöðum", "Forgot password?" : "Gleymdirðu lykilorði?", "Back" : "Til baka", "Login form is disabled." : "Innskráningarform er óvirkt.", @@ -161,7 +165,6 @@ OC.L10N.register( "Search for {name} only" : "Leita einungis að {name}", "Start typing to search" : "Skrifaðu hér til að leita", "Loading more results …" : "Hleð inn fleiri niðurstöðum …", - "Load more results" : "Hlaða inn fleiri niðurstöðum", "Search" : "Leita", "No results for {query}" : "Engar niðurstöður fyrir {query}", "An error occurred while searching for {type}" : "Villa kom upp við leit að {type}", @@ -340,6 +343,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Þú ert að keyra PHP {version}. Við hvetjum þig til að uppfæra PHP útgáfuna til að njóta {linkstart}afkastaaukningar og öryggisuppfærslna frá PHP Group ↗{linkend} um leið og dreifingin þín styður það.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-uppsetningin er ekki með stuðning við Free Type. Þetta mun valda því að notendamyndir og stillingaviðmót virki ekki.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Í þetta kerfistilvik vantar ýmsar PHP-einingar sem mælt er með. Til að bæta afköst og betri samhæfni er mælt eindregið með að setja þær upp.", + "The PHP memory limit is below the recommended value of 512MB." : "Minnismörk PHP eru lægri en gildið sem mælt er með; 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Tengill til að endurstilla lykilorðið þitt hefur verið sendur á tölvupósfang þessa notandaaðgangs. Ef þú færð ekki póstinn, athugaðu þá ruslpóstmöppurnar þínar eða spurðu kerfisstjórann þinn um mögulegar ástæður þess.", "If it is not there ask your local administrator." : "Ef hann er ekki þar, spurðu þá kerfisstjórann þinn. ", "Press enter to start searching" : "Ýttu á Enter til að hefja leit", @@ -351,7 +355,6 @@ OC.L10N.register( "No more subfolders in here" : "Engar fleiri undirmöppur hér", "Name" : "Nafn", "Size" : "Stærð", - "Modified" : "Breytt", "\"{name}\" is an invalid file name." : "\"{name}\" er ógilt skráarheiti.", "File name cannot be empty." : "Heiti skráar má ekki vera tómt", "\"/\" is not allowed inside a file name." : "\"/\" er er ekki leyfilegt innan í skráarheiti.", diff --git a/core/l10n/is.json b/core/l10n/is.json index fd2fc6bb60e..86e49148cc5 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -78,7 +78,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Núna er stuðst við SQLite sem bakenda fyrir gagnagrunn. Fyrir stærri uppsetningar mælum við með að skipta yfir í annan gagnagrunnsbakenda.", "This is particularly recommended when using the desktop client for file synchronisation." : "Mælt er sérstaklega með þessu þegar skjáborðsforritið er notað til að samstilla skrár.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Til að yfirfæra í annan gagnagrunn skaltu nota skipanalínutólið: \"occ db:convert-type\", eða lesa {linkstart}hjálparskjölin ↗ {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Minnismörk PHP eru lægri en gildið sem mælt er með; 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Sumar forritamöppur eru í eigu annarra notenda en möppurnar á vefþjóninum. Þetta getur komið upp ef forritin hafa verið sett upp handvirkt. Athugaðu með heimildir á eftirfarandi forritamöppum:", "Error occurred while checking server setup" : "Villa kom upp við athugun á uppsetningu þjóns", "For more details see the {linkstart}documentation ↗{linkend}." : "Frekari upplýsingar má sjá í {linkstart}hjálparskjölunum ↗{linkend}.", @@ -148,6 +147,11 @@ "Install the Contacts app" : "Setja upp tengiliðaforritið", "Loading your contacts …" : "Hleð inn tengiliðalistum ...", "Looking for {term} …" : "Leita að {term} …", + "Modified" : "Breytt", + "Today" : "Í dag", + "Not found" : "Fannst ekki", + "People" : "Fólk", + "Load more results" : "Hlaða inn fleiri niðurstöðum", "Forgot password?" : "Gleymdirðu lykilorði?", "Back" : "Til baka", "Login form is disabled." : "Innskráningarform er óvirkt.", @@ -159,7 +163,6 @@ "Search for {name} only" : "Leita einungis að {name}", "Start typing to search" : "Skrifaðu hér til að leita", "Loading more results …" : "Hleð inn fleiri niðurstöðum …", - "Load more results" : "Hlaða inn fleiri niðurstöðum", "Search" : "Leita", "No results for {query}" : "Engar niðurstöður fyrir {query}", "An error occurred while searching for {type}" : "Villa kom upp við leit að {type}", @@ -338,6 +341,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Þú ert að keyra PHP {version}. Við hvetjum þig til að uppfæra PHP útgáfuna til að njóta {linkstart}afkastaaukningar og öryggisuppfærslna frá PHP Group ↗{linkend} um leið og dreifingin þín styður það.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-uppsetningin er ekki með stuðning við Free Type. Þetta mun valda því að notendamyndir og stillingaviðmót virki ekki.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Í þetta kerfistilvik vantar ýmsar PHP-einingar sem mælt er með. Til að bæta afköst og betri samhæfni er mælt eindregið með að setja þær upp.", + "The PHP memory limit is below the recommended value of 512MB." : "Minnismörk PHP eru lægri en gildið sem mælt er með; 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Tengill til að endurstilla lykilorðið þitt hefur verið sendur á tölvupósfang þessa notandaaðgangs. Ef þú færð ekki póstinn, athugaðu þá ruslpóstmöppurnar þínar eða spurðu kerfisstjórann þinn um mögulegar ástæður þess.", "If it is not there ask your local administrator." : "Ef hann er ekki þar, spurðu þá kerfisstjórann þinn. ", "Press enter to start searching" : "Ýttu á Enter til að hefja leit", @@ -349,7 +353,6 @@ "No more subfolders in here" : "Engar fleiri undirmöppur hér", "Name" : "Nafn", "Size" : "Stærð", - "Modified" : "Breytt", "\"{name}\" is an invalid file name." : "\"{name}\" er ógilt skráarheiti.", "File name cannot be empty." : "Heiti skráar má ekki vera tómt", "\"/\" is not allowed inside a file name." : "\"/\" er er ekki leyfilegt innan í skráarheiti.", diff --git a/core/l10n/it.js b/core/l10n/it.js index bada8ad25e7..ddbfc6c8352 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite è utilizzato attualmente come database. Per installazioni più grandi consigliamo di passare a un motore di database diverso.", "This is particularly recommended when using the desktop client for file synchronisation." : "Consigliato particolarmente quando si utilizza il client desktop per la sincronizzazione dei file.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Per migrare a un altro database usa lo strumento da riga di comando: \"occ db:convert-type\", oppure consulta la {linkstart}documentazione ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Il limite di memoria di PHP è inferiore al valore consigliato di 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Alcune applicazioni sono di proprietà di un utente diverso da quello del server web. Questo potrebbe verificarsi se le applicazioni sono state installate manualmente. Controlla i permessi delle cartelle delle seguenti applicazioni:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL è utilizzato come database, ma non supporta caratteri di 4 byte. Per poter gestire i caratteri da 4 byte (come le emoji) senza problemi nei nomi dei file o nei commenti, si consiglia, ad esempio, di abilitare il supporto per i 4 byte in MySQL. Per ulteriori dettagli, leggi {linkstart}la pagina di documentazione relativa{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Questa istanza utilizza un object store basato su S3 come archiviazione primaria. I file caricati sono memorizzati temporaneamente sul server e perciò è consigliato avere 50 GB di spazio libero nella cartella temporanea di PHP. Controlla i log per i dettagli completi sul percorso e sullo spazio disponibile. Per migliorare questo aspetto, cambia la cartella temporanea nel file php.ini o assegna altro spazio in quel percorso.", @@ -189,6 +188,12 @@ OC.L10N.register( "Install the Contacts app" : "Installa l'applicazione Contatti", "Loading your contacts …" : "Caricamento dei tuoi contatti...", "Looking for {term} …" : "Ricerca di {term} in corso...", + "Modified" : "Modificato", + "Today" : "Ogg", + "Last year" : "Ultimo anno", + "Not found" : "Non trovato", + "People" : "Persone", + "Load more results" : "Carica più risultati", "Forgot password?" : "Hai dimenticato la password?", "Back to login form" : "Torna al modulo di accesso", "Back" : "Indietro", @@ -204,7 +209,6 @@ OC.L10N.register( "Search for {name} only" : "Cerca solo {name}", "Start typing to search" : "Inizia a digitare per cercare", "Loading more results …" : "Caricamento di più risultati...", - "Load more results" : "Carica più risultati", "Search" : "Cerca", "No results for {query}" : "Nessun risultato per {query}", "Press Enter to start searching" : "Premi invio per iniziare la ricerca", @@ -402,6 +406,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "La tua versione di PHP non supporta FreeType. Ciò causerà problemi con le immagini dei profili e con l'interfaccia delle impostazioni.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Su questa istanza mancano alcuni moduli PHP consigliati. Per prestazioni migliorate e migliore compatibilità, è vivamente consigliato di installarli.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sembra che tu stia utilizzando una versione di PHP a 32-bit. Nextcloud richiede 64-bit per funzionare. Aggiorna il tuo sistema operativo e PHP a 64-bit! Per ulteriori dettagli consulta {linkstart}la pagina della documentazione ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Il limite di memoria di PHP è inferiore al valore consigliato di 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Abbiamo inviato un messaggio di ripristino della password all'indirizzo di posta di questo account. Se non lo ricevi, controlla le cartelle della posta indesiderata o contatta il tuo amministratore locale.", "If it is not there ask your local administrator." : "Se non c'è, chiedi al tuo amministratore locale.", "Press enter to start searching" : "Premi invio per avviare la ricerca", @@ -414,7 +419,6 @@ OC.L10N.register( "No more subfolders in here" : "Qui non ci sono altre sottocartelle", "Name" : "Nome", "Size" : "Dimensione", - "Modified" : "Modificato", "\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.", "File name cannot be empty." : "Il nome del file non può essere vuoto.", "\"/\" is not allowed inside a file name." : "\"/\" non è consentito nel nome di un file.", diff --git a/core/l10n/it.json b/core/l10n/it.json index 96d703a3f4b..d85473c5c5a 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite è utilizzato attualmente come database. Per installazioni più grandi consigliamo di passare a un motore di database diverso.", "This is particularly recommended when using the desktop client for file synchronisation." : "Consigliato particolarmente quando si utilizza il client desktop per la sincronizzazione dei file.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Per migrare a un altro database usa lo strumento da riga di comando: \"occ db:convert-type\", oppure consulta la {linkstart}documentazione ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Il limite di memoria di PHP è inferiore al valore consigliato di 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Alcune applicazioni sono di proprietà di un utente diverso da quello del server web. Questo potrebbe verificarsi se le applicazioni sono state installate manualmente. Controlla i permessi delle cartelle delle seguenti applicazioni:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL è utilizzato come database, ma non supporta caratteri di 4 byte. Per poter gestire i caratteri da 4 byte (come le emoji) senza problemi nei nomi dei file o nei commenti, si consiglia, ad esempio, di abilitare il supporto per i 4 byte in MySQL. Per ulteriori dettagli, leggi {linkstart}la pagina di documentazione relativa{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Questa istanza utilizza un object store basato su S3 come archiviazione primaria. I file caricati sono memorizzati temporaneamente sul server e perciò è consigliato avere 50 GB di spazio libero nella cartella temporanea di PHP. Controlla i log per i dettagli completi sul percorso e sullo spazio disponibile. Per migliorare questo aspetto, cambia la cartella temporanea nel file php.ini o assegna altro spazio in quel percorso.", @@ -187,6 +186,12 @@ "Install the Contacts app" : "Installa l'applicazione Contatti", "Loading your contacts …" : "Caricamento dei tuoi contatti...", "Looking for {term} …" : "Ricerca di {term} in corso...", + "Modified" : "Modificato", + "Today" : "Ogg", + "Last year" : "Ultimo anno", + "Not found" : "Non trovato", + "People" : "Persone", + "Load more results" : "Carica più risultati", "Forgot password?" : "Hai dimenticato la password?", "Back to login form" : "Torna al modulo di accesso", "Back" : "Indietro", @@ -202,7 +207,6 @@ "Search for {name} only" : "Cerca solo {name}", "Start typing to search" : "Inizia a digitare per cercare", "Loading more results …" : "Caricamento di più risultati...", - "Load more results" : "Carica più risultati", "Search" : "Cerca", "No results for {query}" : "Nessun risultato per {query}", "Press Enter to start searching" : "Premi invio per iniziare la ricerca", @@ -400,6 +404,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "La tua versione di PHP non supporta FreeType. Ciò causerà problemi con le immagini dei profili e con l'interfaccia delle impostazioni.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Su questa istanza mancano alcuni moduli PHP consigliati. Per prestazioni migliorate e migliore compatibilità, è vivamente consigliato di installarli.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Sembra che tu stia utilizzando una versione di PHP a 32-bit. Nextcloud richiede 64-bit per funzionare. Aggiorna il tuo sistema operativo e PHP a 64-bit! Per ulteriori dettagli consulta {linkstart}la pagina della documentazione ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Il limite di memoria di PHP è inferiore al valore consigliato di 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Abbiamo inviato un messaggio di ripristino della password all'indirizzo di posta di questo account. Se non lo ricevi, controlla le cartelle della posta indesiderata o contatta il tuo amministratore locale.", "If it is not there ask your local administrator." : "Se non c'è, chiedi al tuo amministratore locale.", "Press enter to start searching" : "Premi invio per avviare la ricerca", @@ -412,7 +417,6 @@ "No more subfolders in here" : "Qui non ci sono altre sottocartelle", "Name" : "Nome", "Size" : "Dimensione", - "Modified" : "Modificato", "\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.", "File name cannot be empty." : "Il nome del file non può essere vuoto.", "\"/\" is not allowed inside a file name." : "\"/\" non è consentito nel nome di un file.", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index c886a9c6b29..6da0962c275 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLiteがデータベースとして使用されています。大規模な運用では別のデータベースに切り替えることをお勧めします。", "This is particularly recommended when using the desktop client for file synchronisation." : "これは、ファイル同期にデスクトップクライアントを使用する場合に特に推奨されます。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "別のデータベースに移行するには、コマンドラインツールを使います。\"occ db:convert-type\" または {linkstart}ドキュメント {linkend} を参照してください。", - "The PHP memory limit is below the recommended value of 512MB." : "PHPのメモリ制限が推奨値の512MB以下です。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "一部のアプリディレクトリは、Webサーバーディレクトリとは異なるユーザーによって所有されています。 アプリが手動でインストールされた場合、これがそのケースに値します。 次のアプリディレクトリの権限を確認します。", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "データベースとしてMySQLを使用していますが、4バイト文字をサポートしていません。ファイル名やコメントなどで4バイト文字(絵文字など)を問題なく扱うためには、MySQLで4バイトサポートを有効にすることが推奨されます。詳細は{linkstart}これに関するドキュメントページ↗{linkend}をお読みください。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "このインスタンスは、S3ベースのオブジェクトストアをプライマリストレージとして使用します。 アップロードされたファイルは一時的にサーバーに保存されるため、PHPの一時ディレクトリに50 GBの空き容量を確保することをお勧めします。 パスと空き容量についての完全な詳細はログを確認してください。 一時ディレクトリを修正するには、php.iniの一時ディレクトリを変更するか、またはそのパスでより多くのスペースを利用できるようにしてください。", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "さらにアプリ", "Currently open" : "編集中", "_{count} notification_::_{count} notifications_" : ["通知 {count} 件"], + "Date range filter" : "日付範囲フィルタ", + "Pick start date" : "開始日を指定", + "Pick end date" : "終了日を指定", + "Apply range" : "適用範囲", "Log in" : "ログイン", "Logging in …" : "ログイン中...", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", "Please contact your administrator." : "管理者にお問い合わせください。", + "Temporary error" : "一時的なエラー", + "Please try again." : "もう一度お試しください。", "An internal error occurred." : "内部エラーが発生しました。", "Please try again or contact your administrator." : "もう一度やり直してみるか、管理者にお問い合わせください。", "Account name or email" : "アカウント名またはメールアドレス", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "連絡先アプリをインストール", "Loading your contacts …" : "連絡先を読み込み中...", "Looking for {term} …" : "{term} を確認中 ...", + "Global search" : "グローバル検索", + "Search apps, files, tags, messages" : "アプリ、ファイル、タグ、メッセージを検索", + "Apps and Settings" : "アプリと設定", + "Modified" : "更新日時", + "Today" : "今日", + "Last 7 days" : "7日以内", + "Last 30 days" : "30日以内", + "This year" : "今年", + "Last year" : "去年", + "Custom date range" : "カスタム日付の範囲", + "Search people" : "人物を検索", + "Not found" : "見つかりませんでした", + "People" : "人間", + "Load more results" : "次の結果を読み込む", + "Start typing in search" : "入力して検索を開始します", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "${this.dateFilter.startFrom.toLocaleDateString()} と ${this.dateFilter.endAt.toLocaleDateString()} の間", "Forgot password?" : "パスワードをお忘れですか?", "Back to login form" : "ログイン画面に戻る", "Back" : "戻る", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "{name}のみを検索", "Start typing to search" : "入力して検索を開始します", "Loading more results …" : "次の結果を読み込み中 ...", - "Load more results" : "次の結果を読み込む", "Search" : "検索", "No results for {query}" : "{query}の検索結果はありません", "Press Enter to start searching" : "Enterキーを押してサーチを開始", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "プロフィール写真と設定インターフェースが壊れているため、PHPはFreeTypeをサポートしていません。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!詳細は{linkstart}こちらのドキュメント ↗{linkend}をご覧ください。", + "The PHP memory limit is below the recommended value of 512MB." : "PHPのメモリ制限が推奨値の512MB以下です。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "このアカウントのメールアドレスにパスワードリセットメッセージを送信しました。届かない場合は、スパム/ジャンクフォルダーを確認するか、ローカル管理者にサポートを依頼してください。", "If it is not there ask your local administrator." : "もしそうでない場合は、管理者に問い合わせてください。", "Press enter to start searching" : "Enterキーを押して検索を開始します", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "ここにはサブフォルダーはありません", "Name" : "名前", "Size" : "サイズ", - "Modified" : "更新日時", "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。", "File name cannot be empty." : "ファイル名を空にすることはできません。", "\"/\" is not allowed inside a file name." : "\"/\" はファイル名に利用できません。", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index bfb3ef5c927..e2b96966e65 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLiteがデータベースとして使用されています。大規模な運用では別のデータベースに切り替えることをお勧めします。", "This is particularly recommended when using the desktop client for file synchronisation." : "これは、ファイル同期にデスクトップクライアントを使用する場合に特に推奨されます。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "別のデータベースに移行するには、コマンドラインツールを使います。\"occ db:convert-type\" または {linkstart}ドキュメント {linkend} を参照してください。", - "The PHP memory limit is below the recommended value of 512MB." : "PHPのメモリ制限が推奨値の512MB以下です。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "一部のアプリディレクトリは、Webサーバーディレクトリとは異なるユーザーによって所有されています。 アプリが手動でインストールされた場合、これがそのケースに値します。 次のアプリディレクトリの権限を確認します。", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "データベースとしてMySQLを使用していますが、4バイト文字をサポートしていません。ファイル名やコメントなどで4バイト文字(絵文字など)を問題なく扱うためには、MySQLで4バイトサポートを有効にすることが推奨されます。詳細は{linkstart}これに関するドキュメントページ↗{linkend}をお読みください。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "このインスタンスは、S3ベースのオブジェクトストアをプライマリストレージとして使用します。 アップロードされたファイルは一時的にサーバーに保存されるため、PHPの一時ディレクトリに50 GBの空き容量を確保することをお勧めします。 パスと空き容量についての完全な詳細はログを確認してください。 一時ディレクトリを修正するには、php.iniの一時ディレクトリを変更するか、またはそのパスでより多くのスペースを利用できるようにしてください。", @@ -136,10 +135,16 @@ "More apps" : "さらにアプリ", "Currently open" : "編集中", "_{count} notification_::_{count} notifications_" : ["通知 {count} 件"], + "Date range filter" : "日付範囲フィルタ", + "Pick start date" : "開始日を指定", + "Pick end date" : "終了日を指定", + "Apply range" : "適用範囲", "Log in" : "ログイン", "Logging in …" : "ログイン中...", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", "Please contact your administrator." : "管理者にお問い合わせください。", + "Temporary error" : "一時的なエラー", + "Please try again." : "もう一度お試しください。", "An internal error occurred." : "内部エラーが発生しました。", "Please try again or contact your administrator." : "もう一度やり直してみるか、管理者にお問い合わせください。", "Account name or email" : "アカウント名またはメールアドレス", @@ -187,6 +192,22 @@ "Install the Contacts app" : "連絡先アプリをインストール", "Loading your contacts …" : "連絡先を読み込み中...", "Looking for {term} …" : "{term} を確認中 ...", + "Global search" : "グローバル検索", + "Search apps, files, tags, messages" : "アプリ、ファイル、タグ、メッセージを検索", + "Apps and Settings" : "アプリと設定", + "Modified" : "更新日時", + "Today" : "今日", + "Last 7 days" : "7日以内", + "Last 30 days" : "30日以内", + "This year" : "今年", + "Last year" : "去年", + "Custom date range" : "カスタム日付の範囲", + "Search people" : "人物を検索", + "Not found" : "見つかりませんでした", + "People" : "人間", + "Load more results" : "次の結果を読み込む", + "Start typing in search" : "入力して検索を開始します", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "${this.dateFilter.startFrom.toLocaleDateString()} と ${this.dateFilter.endAt.toLocaleDateString()} の間", "Forgot password?" : "パスワードをお忘れですか?", "Back to login form" : "ログイン画面に戻る", "Back" : "戻る", @@ -202,7 +223,6 @@ "Search for {name} only" : "{name}のみを検索", "Start typing to search" : "入力して検索を開始します", "Loading more results …" : "次の結果を読み込み中 ...", - "Load more results" : "次の結果を読み込む", "Search" : "検索", "No results for {query}" : "{query}の検索結果はありません", "Press Enter to start searching" : "Enterキーを押してサーチを開始", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "プロフィール写真と設定インターフェースが壊れているため、PHPはFreeTypeをサポートしていません。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!詳細は{linkstart}こちらのドキュメント ↗{linkend}をご覧ください。", + "The PHP memory limit is below the recommended value of 512MB." : "PHPのメモリ制限が推奨値の512MB以下です。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "このアカウントのメールアドレスにパスワードリセットメッセージを送信しました。届かない場合は、スパム/ジャンクフォルダーを確認するか、ローカル管理者にサポートを依頼してください。", "If it is not there ask your local administrator." : "もしそうでない場合は、管理者に問い合わせてください。", "Press enter to start searching" : "Enterキーを押して検索を開始します", @@ -412,7 +433,6 @@ "No more subfolders in here" : "ここにはサブフォルダーはありません", "Name" : "名前", "Size" : "サイズ", - "Modified" : "更新日時", "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。", "File name cannot be empty." : "ファイル名を空にすることはできません。", "\"/\" is not allowed inside a file name." : "\"/\" はファイル名に利用できません。", diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js deleted file mode 100644 index 5675dfbe033..00000000000 --- a/core/l10n/ka_GE.js +++ /dev/null @@ -1,224 +0,0 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "გთხოვთ აირჩიოთ ფაილი.", - "File is too big" : "ფაილი ზედმეტად დიდია", - "The selected file is not an image." : "არცეული ფაილი არაა სურათი.", - "The selected file cannot be read." : "არჩეული ფაილი არ იკითხება.", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "ატვირთული ფაილი აჭარბებს php.ini-ში დაყენებულ upload_max_filesize დირექტივას", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს HTML ფორამაში მითითებულ MAX_FILE_SIZE დირექტივას", - "No file was uploaded" : "ფაილი არ აიტვირთა", - "Missing a temporary folder" : "დროებითი დირექტორია არ არსებობს", - "Invalid file provided" : "არასწორი ფაილი", - "No image or file provided" : "არ არის სურათი ან ფაილი", - "Unknown filetype" : "ამოუცნობი ფაილის ტიპი", - "An error occurred. Please contact your admin." : "წარმოიშვა შეცდომა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "Invalid image" : "არასწორი სურათი", - "No temporary profile picture available, try again" : "დროებითი პროფილის სურათი არაა ხელმისაწვდომი, სცადეთ ახლიდან", - "No crop data provided" : "ამოჭრის მონაცემები არაა უზრუნველყოფილი", - "No valid crop data provided" : "სწორი ამოჭრის მონაცემები არაა უზრუნველყოფილი", - "Crop is not square" : "ამონაჭერი არაა კვადრატი", - "State token does not match" : "მდგომარეობის ტოკენი არ ემთხვევა", - "Login" : "ავტორიზაცია", - "Password reset is disabled" : "პაროლის განახლება გამორთულია", - "%s password reset" : "%s პაროლის აღდგენა", - "Password reset" : "პაროლის აღდგენა", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", - "Reset your password" : "აღადგნიეთ თქვენი პაროლი", - "Internal error" : "შიდა შეცდომა", - "Preparing update" : "განახლების მომზადება", - "[%d / %d]: %s" : "[%d / %d]: %s", - "Turned on maintenance mode" : "სარემონტო რეჟიმი ჩაირთო", - "Turned off maintenance mode" : "სარემონტო რეჟიმი გაითიშა", - "Maintenance mode is kept active" : "სარემონტო რეჟიმი დარჩა აქტიური", - "Updating database schema" : "მონაცემთა ბაზის სქემის განახლება", - "Updated database" : "მონაცემთა ბაზის განახლება", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა %s-ისთვის მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)", - "Set log level to debug" : "ლოგის დონის დაყენება დებაგზე", - "Reset log level" : "ლოგის დონის დაყენება საწყის პარამეტრზე", - "Starting code integrity check" : "კოდის ერთიანობის შემოწმების დაწყება", - "Finished code integrity check" : "დასრულდა კოდის ერთიანობის შემოწმება", - "%s (incompatible)" : "%s (არაა თავსებადი)", - "Already up to date" : "უკვე განახლებულია", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებად თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "CLI-ით კრონ საქმის ეგზეკუცია ვერ მოხერხდა. წარმოიშვა შემდეგი ტექნიკური შეცდომები:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. რეკომენდირებულია ამ ფუნქციის ჩართვა.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "ამჟამად ბექენდზე მონაცემთა ბაზად მოიხმარება SQLite. უფრო დიდი ინსტალაციებისთვის რეკომენდაციას გიწევთ აირჩიოთ სხვა მონაცემთა ბაზა.", - "This is particularly recommended when using the desktop client for file synchronisation." : "ეს კერძოდ რეკომედირებულია განსაკუთრებით მაშინ, როდესაც ფაილების სინქრონიზაციისთვის იყენებთ დესკტოპ-კლიენტს.", - "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, რეკომენდირებულია ამ პარამეტრის გამოსწორება.", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს სწორად და რეკომენდირებულია ამ პარამეტრის რეგულაცია.", - "unknown text" : "ამოუცნობი ტეგი", - "Hello world!" : "გამარჯობა სამყარო!", - "sunny" : "მზიანი", - "Hello {name}, the weather is {weather}" : "გამარჯობა {name}, ამინდია {weather}", - "Hello {name}" : "გამარჯობა {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>", - "new" : "ახალი", - "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი","ჩამოტვირთეთ %n ფაილი"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.", - "Update to {version}" : "განაახლეთ ვერსიაზე {version}", - "An error occurred." : "წარმოიშვა შეცდომა.", - "Please reload the page." : "გთხოვთ გადატვირთოთ გვერდი.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.", - "More apps" : "მეტი აპლიკაცია", - "Log in" : "შესვლა", - "Logging in …" : "შესვლა ...", - "Server side authentication failed!" : "სერვერის მხარეს აუტენტიფიკაცია ვერ მოხერხდა!", - "Please contact your administrator." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "An internal error occurred." : "გამოჩნდა შიდა შეცდომა.", - "Please try again or contact your administrator." : "გთხოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "Password" : "პაროლი", - "Wrong username or password." : "არასწორი მომხმარებლის სახელი ან პაროლი.", - "User disabled" : "მომხმარებელი გათიშულია", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "თქვენი IP მისამართით შევნიშნეთ არაერთი წარუმატებელი ავტორიზაციის მცდელობა. აქედან გამომდინარე თქვენი შემდეგი ავტორიზაციის მცდელობა შეიზღუდება დაახლოებით 30 წამით.", - "Username or email" : "მომხმარებლის სახელი ან ელ-ფოსტა", - "Reset password" : "პაროლის შეცვლა", - "Couldn't send reset email. Please contact your administrator." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "New password" : "ახალი პაროლი", - "I know what I'm doing" : "ვიცი რასაც ვაკეთებ", - "Skip" : "გამოტოვება", - "Search contacts …" : "მოძებნეთ კონტაქტები ...", - "Could not load your contacts" : "თქვენი კონტაქტების ჩატვირთვა ვერ მოხერხდა", - "No contacts found" : "კომენტარები ვერ იქნა ნაპოვნი.", - "Loading your contacts …" : "იტვირთება კონტაქტები ...", - "Looking for {term} …" : "ვეძებთ {term}-ს …", - "Forgot password?" : "დაგავიწყდათ პაროლი?", - "Back" : "უკან", - "Reset search" : "ძიების შედეგები", - "Search" : "ძებნა", - "No" : "არა", - "Yes" : "კი", - "Choose" : "არჩევა", - "Copy" : "კოპირება", - "Move" : "გადატანა", - "OK" : "კარგი", - "Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}", - "read-only" : "მხოლოდ-კითხვადი", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი","{count} ფაილის კონფლიქტი"], - "One file conflict" : "კონფლიქტი ერთ ფაილთან", - "New Files" : "ახალი ფაილები", - "Already existing files" : "უკვე არსებული ფაილები", - "Which files do you want to keep?" : "რომელი ფაილების დატოვება გსურთ?", - "If you select both versions, the copied file will have a number added to its name." : "თუ აირჩევთ ორივე ვერსიას, კოპირებულ ფაილს სახელის წინ დაერთვება ციფრი.", - "Cancel" : "უარყოფა", - "Continue" : "გაგრძელება", - "(all selected)" : "(ყველა არჩეული)", - "({count} selected)" : "({count} არჩეული)", - "Error loading file exists template" : "ფაილის ჩატვირთვისას წარმოიშვა შეცდომა", - "seconds ago" : "წამის წინ", - "Connection to server lost" : "სერვერთან კავშირი დაიკარგა", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში","გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"], - "Hide details" : "დეტალების დამალვა", - "Very weak password" : "ძალიან სუსტი პაროლი", - "Weak password" : "სუსტი პაროლი", - "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", - "Good password" : "კარგი პაროლი", - "Strong password" : "ძლიერი პაროლი", - "No action available" : "ქმედება არაა ხელმისაწვდომი", - "Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა", - "Non-existing tag #{tag}" : "ტეგი #{tag} არ არსებობს", - "Restricted" : "აკრძალული", - "Invisible" : "უჩინარი", - "Delete" : "წაშლა", - "Rename" : "სახელის შეცვლა", - "Collaborative tags" : "ერთობლივი ტეგები", - "No tags found" : "ტეგები ვერ იქნა ნაპოვნი", - "Personal" : "პირადი", - "Users" : "მომხმარებელი", - "Apps" : "აპლიკაციები", - "Admin" : "ადმინისტრატორი", - "Help" : "დახმარება", - "Access forbidden" : "წვდომა აკრძალულია", - "Page not found" : "გვერდი არაა ნაპოვნი", - "Error" : "შეცდომა", - "Previous" : "წინა", - "Internal Server Error" : "შიდა სერვერის შეცდომა", - "The server was unable to complete your request." : "სერვერმა ვერ დაასრულა თქვენი მოთხოვნა.", - "If this happens again, please send the technical details below to the server administrator." : "თუ ეს განმეორდება, გთხოვთ გაუგზავნოთ ქვემოთ აღწერილი ტექნიკური დეტალები თქვენი სერვერის ადმინისრატორს.", - "More details can be found in the server log." : "მეტი დეტალები შეგიძლიათ იხილოთ სერვერის ლოგში.", - "Technical details" : "ტექნიკური დეტალები", - "Remote Address: %s" : "დისტანციური მისამართი: %s", - "Request ID: %s" : "მოთხოვნის ID: %s", - "Type: %s" : "ტიპი: %s", - "Code: %s" : "კოდი: %s", - "Message: %s" : "წერილი: %s", - "File: %s" : "ფაილი: %s", - "Line: %s" : "ხაზი: %s", - "Trace" : "კვალი", - "Security warning" : "გაფრთხილება უსაფრთხოების შესახებ", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "თქვენი ფაილები და მონაცემების დირექტორია ინტერნეტით წვდომადია, რადგან .htaccess ფაილი არ მუშაობს.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">დოკუემტაცია</a>.", - "Create an <strong>admin account</strong>" : "შექმენით <strong>ადმინისტრატორის ანგარიში</strong>", - "Username" : "მომხმარებლის სახელი", - "Storage & database" : "საცავი და მონაცემთა ბაზა", - "Data folder" : "მონაცემთა დირექტორია", - "Configure the database" : "მონაცემთა ბაზის კონფიგურაცია", - "Only %s is available." : "მხოლოდ %s-ია ხელმისაწვდომი.", - "Install and activate additional PHP modules to choose other database types." : "სხვა მონაცემთა ბაზის სახეობებისთვის დააყენეთ და გაააქტიურეთ დამატებითი PHP მოდულები.", - "For more details check out the documentation." : "მეტი დეტალებისთვის იხილეთ დოკუმენტაცია.", - "Database user" : "მონაცემთა ბაზის მომხმარებელი", - "Database password" : "მონაცემთა ბაზის პაროლი", - "Database name" : "მონაცემთა ბაზის სახელი", - "Database tablespace" : "ბაზის ცხრილის ზომა", - "Database host" : "მონაცემთა ბაზის ჰოსტი", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "ჰოსტის სახელთან ერთად გთხოვთ მიუთითოთ პორტის ნომერიც (მაგ.: localhost:5432).", - "Performance warning" : "გაფრთხილება მოქმედების შესახებ", - "Need help?" : "გესაჭიროებათ დახმარება?", - "See the documentation" : "იხილეთ დოკუმენტაცია", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "ეს აპლიკაცია სწორი ოპერაციისთვის საჭიროებს JavaScript-ს. გთხოვთ {linkstart}ჩართოთ JavaScript-ი{linkend} და გადატვირთოთ გვერდი.", - "Go to %s" : "გადადით %s-ზე", - "This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას", - "Confirm your password" : "დაადასტურეთ თქვენი პაროლი", - "Confirm" : "დადასტურება", - "App token" : "აპლიკაციის ტოკენი", - "Grant access" : "უფლებების მინიჭება", - "Account access" : "წვდომა ანგარიშზე", - "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", - "Two-factor authentication" : "ორ-ფაქტრიანი აუტენტიფიკაცია", - "Use backup code" : "ბექაფის კოდის გამოყენება", - "Error while validating your second factor" : "მეორე ფაქტორის ვალიდაციისას წარმოიშვა შეცდომა", - "Access through untrusted domain" : "წვდომა არა-სანდო დომენიდან", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი, ისე როგორც ნაჩვენებია მაგალითში config.sample.php.", - "App update required" : "აპლიკაციას ესაჭიროება განახლება", - "These incompatible apps will be disabled:" : "ეს არათავსებადი აპლიკაციები წაიშლება:", - "The theme %s has been disabled." : "ვიზუალური თემა %s გაითიშა.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "გაგრძელებმდე გთხოვთ დარწმუნდეთ, რომ მონაცემთა ბაზას, კონფიგურაციის დირექტორიას და მონაცემთა დირექტორიას ჩაუტარდა ბექაფი.", - "Start update" : "განახლების დაწყება", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "დიდ ინსტალაციებთან მუშაობისას დროის ამოწურვის შეცდომების თავიდან აცილებისთვის, შეგიძლიათ გაუშვათ შემდეგი ბრძანება ინსტალაციის დირექტორიაში:", - "Detailed logs" : "დეტალური ლოგები", - "Update needed" : "საჭიროა განახლება", - "Please use the command line updater because you have a big instance with more than 50 users." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ინსტანციაა, მასზე 50-ზე მეტი მომხმარებელია.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "დახმარებისთვის <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">იხილეთ დოკუმენტაცია</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "ვიცი რომ, თუ გავაგრძელებ განახლებას ვებ-ინტერფეისით, არის რისკი, რომ მოთხოვნას დრო ამოეწურება და შეიძლება მოხდეს მონაცემების დაკარგვა, თუმცა მაქვს ბექაფი და ვიცი თუ როგორ აღვადგინო ინსტანცია იმ შემთხვევაში თუ მოხდება შეცდომა.", - "Upgrade via web on my own risk" : "ვებით განაახლეთ თქვენი პასუხისმგებლობით", - "This %s instance is currently in maintenance mode, which may take a while." : "ეს %s ინსტანცია ამჟამად სარემონტო რეჟიმშია, ამან შეიძლება გასტანოს გარკვეული დრო.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "თუ ეს წერილი გამოჩნდა მოულოდნელად ან მისი გამოჩენა გრძელდება, დაუკავშირდით სისტემის ადმინისტრატორს.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "როგორც ჩანს PHP სისტემის გარემოს ცვლადების მიღებისთვის არაა სწორად მოწყობილი. ეს ტესტი getenv(\"PATH\")-ით აბრუნებს მხოლოდ ცარიელ პასუხს.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "თქვენი მონაცემთა ბაზა არ მოქმედებს \"READ COMMITTED\" ტრანზაქციის იზოლაციის დონით. ამან შეიძლება გამოიწვიოს პრობლემა, როდესაც მრავალი ქმედება შესრულდება პარალელურად.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "თქვენს PHP-ს არ აქვს FreeType-ის მხარდაჭერა, რაც გამოწვევს დარღვეულ პროფილის სურათებს და პარამეტრების ინტერფეისს.", - "Settings" : "პარამეტრები", - "Show all contacts …" : "ყველა კონტაქტის ჩვენება ...", - "No files in here" : "აქ ფაილები არაა", - "New folder" : "ახალი დირექტორია", - "Name" : "სახელი", - "Size" : "ზომა", - "Modified" : "შეიცვალა", - "\"{name}\" is an invalid file name." : "\"{name}\" ფაილის არასწორი სახელია.", - "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", - "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა ნებადართული ფაილის ტიპი", - "{newName} already exists" : "{newName} უკვე არსებობს", - "Error loading file picker template: {error}" : "შეცდომა ფაილის შაბლონის ჩატვირთვისას: {error}", - "Pending" : "მოლოდინში", - "Home" : "სახლი", - "Copy to {folder}" : "კოპრება {folder}-ში", - "Move to {folder}" : "გადატანა {folder}-ში", - "Authentication required" : "საჭიროა აუტენტიფიკაცია", - "Failed to authenticate, try again" : "აუტენტიფიკაცია ვერ შესრულდა, სცადეთ ახლიდან", - "File not found" : "ფაილი ვერ იქნა ნაპოვნი", - "Please use the command line updater because automatic updating is disabled in the config.php." : "ავტომატური განახლება config.php-ში გათიშულია, გთხოვთ ისარგებლოთ command-line განახლებით." -}, -"nplurals=2; plural=(n!=1);"); diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json deleted file mode 100644 index 7b17b112956..00000000000 --- a/core/l10n/ka_GE.json +++ /dev/null @@ -1,222 +0,0 @@ -{ "translations": { - "Please select a file." : "გთხოვთ აირჩიოთ ფაილი.", - "File is too big" : "ფაილი ზედმეტად დიდია", - "The selected file is not an image." : "არცეული ფაილი არაა სურათი.", - "The selected file cannot be read." : "არჩეული ფაილი არ იკითხება.", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "ატვირთული ფაილი აჭარბებს php.ini-ში დაყენებულ upload_max_filesize დირექტივას", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს HTML ფორამაში მითითებულ MAX_FILE_SIZE დირექტივას", - "No file was uploaded" : "ფაილი არ აიტვირთა", - "Missing a temporary folder" : "დროებითი დირექტორია არ არსებობს", - "Invalid file provided" : "არასწორი ფაილი", - "No image or file provided" : "არ არის სურათი ან ფაილი", - "Unknown filetype" : "ამოუცნობი ფაილის ტიპი", - "An error occurred. Please contact your admin." : "წარმოიშვა შეცდომა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "Invalid image" : "არასწორი სურათი", - "No temporary profile picture available, try again" : "დროებითი პროფილის სურათი არაა ხელმისაწვდომი, სცადეთ ახლიდან", - "No crop data provided" : "ამოჭრის მონაცემები არაა უზრუნველყოფილი", - "No valid crop data provided" : "სწორი ამოჭრის მონაცემები არაა უზრუნველყოფილი", - "Crop is not square" : "ამონაჭერი არაა კვადრატი", - "State token does not match" : "მდგომარეობის ტოკენი არ ემთხვევა", - "Login" : "ავტორიზაცია", - "Password reset is disabled" : "პაროლის განახლება გამორთულია", - "%s password reset" : "%s პაროლის აღდგენა", - "Password reset" : "პაროლის აღდგენა", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", - "Reset your password" : "აღადგნიეთ თქვენი პაროლი", - "Internal error" : "შიდა შეცდომა", - "Preparing update" : "განახლების მომზადება", - "[%d / %d]: %s" : "[%d / %d]: %s", - "Turned on maintenance mode" : "სარემონტო რეჟიმი ჩაირთო", - "Turned off maintenance mode" : "სარემონტო რეჟიმი გაითიშა", - "Maintenance mode is kept active" : "სარემონტო რეჟიმი დარჩა აქტიური", - "Updating database schema" : "მონაცემთა ბაზის სქემის განახლება", - "Updated database" : "მონაცემთა ბაზის განახლება", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა %s-ისთვის მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)", - "Set log level to debug" : "ლოგის დონის დაყენება დებაგზე", - "Reset log level" : "ლოგის დონის დაყენება საწყის პარამეტრზე", - "Starting code integrity check" : "კოდის ერთიანობის შემოწმების დაწყება", - "Finished code integrity check" : "დასრულდა კოდის ერთიანობის შემოწმება", - "%s (incompatible)" : "%s (არაა თავსებადი)", - "Already up to date" : "უკვე განახლებულია", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებად თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "CLI-ით კრონ საქმის ეგზეკუცია ვერ მოხერხდა. წარმოიშვა შემდეგი ტექნიკური შეცდომები:", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. რეკომენდირებულია ამ ფუნქციის ჩართვა.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "ამჟამად ბექენდზე მონაცემთა ბაზად მოიხმარება SQLite. უფრო დიდი ინსტალაციებისთვის რეკომენდაციას გიწევთ აირჩიოთ სხვა მონაცემთა ბაზა.", - "This is particularly recommended when using the desktop client for file synchronisation." : "ეს კერძოდ რეკომედირებულია განსაკუთრებით მაშინ, როდესაც ფაილების სინქრონიზაციისთვის იყენებთ დესკტოპ-კლიენტს.", - "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, რეკომენდირებულია ამ პარამეტრის გამოსწორება.", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს სწორად და რეკომენდირებულია ამ პარამეტრის რეგულაცია.", - "unknown text" : "ამოუცნობი ტეგი", - "Hello world!" : "გამარჯობა სამყარო!", - "sunny" : "მზიანი", - "Hello {name}, the weather is {weather}" : "გამარჯობა {name}, ამინდია {weather}", - "Hello {name}" : "გამარჯობა {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>", - "new" : "ახალი", - "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი","ჩამოტვირთეთ %n ფაილი"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.", - "Update to {version}" : "განაახლეთ ვერსიაზე {version}", - "An error occurred." : "წარმოიშვა შეცდომა.", - "Please reload the page." : "გთხოვთ გადატვირთოთ გვერდი.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.", - "More apps" : "მეტი აპლიკაცია", - "Log in" : "შესვლა", - "Logging in …" : "შესვლა ...", - "Server side authentication failed!" : "სერვერის მხარეს აუტენტიფიკაცია ვერ მოხერხდა!", - "Please contact your administrator." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "An internal error occurred." : "გამოჩნდა შიდა შეცდომა.", - "Please try again or contact your administrator." : "გთხოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "Password" : "პაროლი", - "Wrong username or password." : "არასწორი მომხმარებლის სახელი ან პაროლი.", - "User disabled" : "მომხმარებელი გათიშულია", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "თქვენი IP მისამართით შევნიშნეთ არაერთი წარუმატებელი ავტორიზაციის მცდელობა. აქედან გამომდინარე თქვენი შემდეგი ავტორიზაციის მცდელობა შეიზღუდება დაახლოებით 30 წამით.", - "Username or email" : "მომხმარებლის სახელი ან ელ-ფოსტა", - "Reset password" : "პაროლის შეცვლა", - "Couldn't send reset email. Please contact your administrator." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", - "New password" : "ახალი პაროლი", - "I know what I'm doing" : "ვიცი რასაც ვაკეთებ", - "Skip" : "გამოტოვება", - "Search contacts …" : "მოძებნეთ კონტაქტები ...", - "Could not load your contacts" : "თქვენი კონტაქტების ჩატვირთვა ვერ მოხერხდა", - "No contacts found" : "კომენტარები ვერ იქნა ნაპოვნი.", - "Loading your contacts …" : "იტვირთება კონტაქტები ...", - "Looking for {term} …" : "ვეძებთ {term}-ს …", - "Forgot password?" : "დაგავიწყდათ პაროლი?", - "Back" : "უკან", - "Reset search" : "ძიების შედეგები", - "Search" : "ძებნა", - "No" : "არა", - "Yes" : "კი", - "Choose" : "არჩევა", - "Copy" : "კოპირება", - "Move" : "გადატანა", - "OK" : "კარგი", - "Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}", - "read-only" : "მხოლოდ-კითხვადი", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი","{count} ფაილის კონფლიქტი"], - "One file conflict" : "კონფლიქტი ერთ ფაილთან", - "New Files" : "ახალი ფაილები", - "Already existing files" : "უკვე არსებული ფაილები", - "Which files do you want to keep?" : "რომელი ფაილების დატოვება გსურთ?", - "If you select both versions, the copied file will have a number added to its name." : "თუ აირჩევთ ორივე ვერსიას, კოპირებულ ფაილს სახელის წინ დაერთვება ციფრი.", - "Cancel" : "უარყოფა", - "Continue" : "გაგრძელება", - "(all selected)" : "(ყველა არჩეული)", - "({count} selected)" : "({count} არჩეული)", - "Error loading file exists template" : "ფაილის ჩატვირთვისას წარმოიშვა შეცდომა", - "seconds ago" : "წამის წინ", - "Connection to server lost" : "სერვერთან კავშირი დაიკარგა", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში","გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"], - "Hide details" : "დეტალების დამალვა", - "Very weak password" : "ძალიან სუსტი პაროლი", - "Weak password" : "სუსტი პაროლი", - "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", - "Good password" : "კარგი პაროლი", - "Strong password" : "ძლიერი პაროლი", - "No action available" : "ქმედება არაა ხელმისაწვდომი", - "Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა", - "Non-existing tag #{tag}" : "ტეგი #{tag} არ არსებობს", - "Restricted" : "აკრძალული", - "Invisible" : "უჩინარი", - "Delete" : "წაშლა", - "Rename" : "სახელის შეცვლა", - "Collaborative tags" : "ერთობლივი ტეგები", - "No tags found" : "ტეგები ვერ იქნა ნაპოვნი", - "Personal" : "პირადი", - "Users" : "მომხმარებელი", - "Apps" : "აპლიკაციები", - "Admin" : "ადმინისტრატორი", - "Help" : "დახმარება", - "Access forbidden" : "წვდომა აკრძალულია", - "Page not found" : "გვერდი არაა ნაპოვნი", - "Error" : "შეცდომა", - "Previous" : "წინა", - "Internal Server Error" : "შიდა სერვერის შეცდომა", - "The server was unable to complete your request." : "სერვერმა ვერ დაასრულა თქვენი მოთხოვნა.", - "If this happens again, please send the technical details below to the server administrator." : "თუ ეს განმეორდება, გთხოვთ გაუგზავნოთ ქვემოთ აღწერილი ტექნიკური დეტალები თქვენი სერვერის ადმინისრატორს.", - "More details can be found in the server log." : "მეტი დეტალები შეგიძლიათ იხილოთ სერვერის ლოგში.", - "Technical details" : "ტექნიკური დეტალები", - "Remote Address: %s" : "დისტანციური მისამართი: %s", - "Request ID: %s" : "მოთხოვნის ID: %s", - "Type: %s" : "ტიპი: %s", - "Code: %s" : "კოდი: %s", - "Message: %s" : "წერილი: %s", - "File: %s" : "ფაილი: %s", - "Line: %s" : "ხაზი: %s", - "Trace" : "კვალი", - "Security warning" : "გაფრთხილება უსაფრთხოების შესახებ", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "თქვენი ფაილები და მონაცემების დირექტორია ინტერნეტით წვდომადია, რადგან .htaccess ფაილი არ მუშაობს.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">დოკუემტაცია</a>.", - "Create an <strong>admin account</strong>" : "შექმენით <strong>ადმინისტრატორის ანგარიში</strong>", - "Username" : "მომხმარებლის სახელი", - "Storage & database" : "საცავი და მონაცემთა ბაზა", - "Data folder" : "მონაცემთა დირექტორია", - "Configure the database" : "მონაცემთა ბაზის კონფიგურაცია", - "Only %s is available." : "მხოლოდ %s-ია ხელმისაწვდომი.", - "Install and activate additional PHP modules to choose other database types." : "სხვა მონაცემთა ბაზის სახეობებისთვის დააყენეთ და გაააქტიურეთ დამატებითი PHP მოდულები.", - "For more details check out the documentation." : "მეტი დეტალებისთვის იხილეთ დოკუმენტაცია.", - "Database user" : "მონაცემთა ბაზის მომხმარებელი", - "Database password" : "მონაცემთა ბაზის პაროლი", - "Database name" : "მონაცემთა ბაზის სახელი", - "Database tablespace" : "ბაზის ცხრილის ზომა", - "Database host" : "მონაცემთა ბაზის ჰოსტი", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "ჰოსტის სახელთან ერთად გთხოვთ მიუთითოთ პორტის ნომერიც (მაგ.: localhost:5432).", - "Performance warning" : "გაფრთხილება მოქმედების შესახებ", - "Need help?" : "გესაჭიროებათ დახმარება?", - "See the documentation" : "იხილეთ დოკუმენტაცია", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "ეს აპლიკაცია სწორი ოპერაციისთვის საჭიროებს JavaScript-ს. გთხოვთ {linkstart}ჩართოთ JavaScript-ი{linkend} და გადატვირთოთ გვერდი.", - "Go to %s" : "გადადით %s-ზე", - "This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას", - "Confirm your password" : "დაადასტურეთ თქვენი პაროლი", - "Confirm" : "დადასტურება", - "App token" : "აპლიკაციის ტოკენი", - "Grant access" : "უფლებების მინიჭება", - "Account access" : "წვდომა ანგარიშზე", - "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", - "Two-factor authentication" : "ორ-ფაქტრიანი აუტენტიფიკაცია", - "Use backup code" : "ბექაფის კოდის გამოყენება", - "Error while validating your second factor" : "მეორე ფაქტორის ვალიდაციისას წარმოიშვა შეცდომა", - "Access through untrusted domain" : "წვდომა არა-სანდო დომენიდან", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი, ისე როგორც ნაჩვენებია მაგალითში config.sample.php.", - "App update required" : "აპლიკაციას ესაჭიროება განახლება", - "These incompatible apps will be disabled:" : "ეს არათავსებადი აპლიკაციები წაიშლება:", - "The theme %s has been disabled." : "ვიზუალური თემა %s გაითიშა.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "გაგრძელებმდე გთხოვთ დარწმუნდეთ, რომ მონაცემთა ბაზას, კონფიგურაციის დირექტორიას და მონაცემთა დირექტორიას ჩაუტარდა ბექაფი.", - "Start update" : "განახლების დაწყება", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "დიდ ინსტალაციებთან მუშაობისას დროის ამოწურვის შეცდომების თავიდან აცილებისთვის, შეგიძლიათ გაუშვათ შემდეგი ბრძანება ინსტალაციის დირექტორიაში:", - "Detailed logs" : "დეტალური ლოგები", - "Update needed" : "საჭიროა განახლება", - "Please use the command line updater because you have a big instance with more than 50 users." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ინსტანციაა, მასზე 50-ზე მეტი მომხმარებელია.", - "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "დახმარებისთვის <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">იხილეთ დოკუმენტაცია</a>.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "ვიცი რომ, თუ გავაგრძელებ განახლებას ვებ-ინტერფეისით, არის რისკი, რომ მოთხოვნას დრო ამოეწურება და შეიძლება მოხდეს მონაცემების დაკარგვა, თუმცა მაქვს ბექაფი და ვიცი თუ როგორ აღვადგინო ინსტანცია იმ შემთხვევაში თუ მოხდება შეცდომა.", - "Upgrade via web on my own risk" : "ვებით განაახლეთ თქვენი პასუხისმგებლობით", - "This %s instance is currently in maintenance mode, which may take a while." : "ეს %s ინსტანცია ამჟამად სარემონტო რეჟიმშია, ამან შეიძლება გასტანოს გარკვეული დრო.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "თუ ეს წერილი გამოჩნდა მოულოდნელად ან მისი გამოჩენა გრძელდება, დაუკავშირდით სისტემის ადმინისტრატორს.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "როგორც ჩანს PHP სისტემის გარემოს ცვლადების მიღებისთვის არაა სწორად მოწყობილი. ეს ტესტი getenv(\"PATH\")-ით აბრუნებს მხოლოდ ცარიელ პასუხს.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "თქვენი მონაცემთა ბაზა არ მოქმედებს \"READ COMMITTED\" ტრანზაქციის იზოლაციის დონით. ამან შეიძლება გამოიწვიოს პრობლემა, როდესაც მრავალი ქმედება შესრულდება პარალელურად.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "თქვენს PHP-ს არ აქვს FreeType-ის მხარდაჭერა, რაც გამოწვევს დარღვეულ პროფილის სურათებს და პარამეტრების ინტერფეისს.", - "Settings" : "პარამეტრები", - "Show all contacts …" : "ყველა კონტაქტის ჩვენება ...", - "No files in here" : "აქ ფაილები არაა", - "New folder" : "ახალი დირექტორია", - "Name" : "სახელი", - "Size" : "ზომა", - "Modified" : "შეიცვალა", - "\"{name}\" is an invalid file name." : "\"{name}\" ფაილის არასწორი სახელია.", - "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", - "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.", - "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა ნებადართული ფაილის ტიპი", - "{newName} already exists" : "{newName} უკვე არსებობს", - "Error loading file picker template: {error}" : "შეცდომა ფაილის შაბლონის ჩატვირთვისას: {error}", - "Pending" : "მოლოდინში", - "Home" : "სახლი", - "Copy to {folder}" : "კოპრება {folder}-ში", - "Move to {folder}" : "გადატანა {folder}-ში", - "Authentication required" : "საჭიროა აუტენტიფიკაცია", - "Failed to authenticate, try again" : "აუტენტიფიკაცია ვერ შესრულდა, სცადეთ ახლიდან", - "File not found" : "ფაილი ვერ იქნა ნაპოვნი", - "Please use the command line updater because automatic updating is disabled in the config.php." : "ავტომატური განახლება config.php-ში გათიშულია, გთხოვთ ისარგებლოთ command-line განახლებით." -},"pluralForm" :"nplurals=2; plural=(n!=1);" -}
\ No newline at end of file diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 88412e891de..ae2ad507309 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -100,7 +100,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "다른 데이터베이스를 통합하기 위해서 커맨드라인 도구 “occ db:convert-type”을 사용하십시오. 더 자세한 정보는 {linkstart}문서에 있습니다 ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP 메모리 제한이 추천값인 512MB보다 작습니다.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "일부 앱 디렉터리를 웹 서버 사용자와 다른 사용자가 소유하고 있습니다. 수동으로 앱을 설치한 경우에 발생할 수 있습니다. 다음 앱 디렉터리의 사용 권한을 확인하십시오:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL이 데이터베이스로 사용되고 있으나 4바이트 문자를 지원하지 않고 있습니다. 파일 이름이나 댓글 등에 Emoji와 같은 4바이트 문자를 문제 없이 사용하기 위해, MySQL에서 4바이트 문자 지원을 활성화하길 권장합니다. 더 구체적인 정보는 {linkstart}관련 문서를 참조하십시오↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "이 인스턴스에서 S3 기반 객체 저장소를 주 저장소로 사용하고 있습니다. 업로드한 파일을 서버에 임시로 저장하기 때문에 PHP 임시 디렉터리에 최소 50 GB의 빈 공간을 두는 것을 추천합니다. 전체 경로와 사용 가능한 정보를 보려면 로그를 참조하십시오. 성능을 개선하려면 php.ini의 임시 디렉터리를 변경하거나, 해당 위치에서 사용할 수 있는 공간을 더 많이 할당하십시오.", @@ -186,6 +185,10 @@ OC.L10N.register( "Install the Contacts app" : "Contacts 앱 설치", "Loading your contacts …" : "연락처 불러오는 중 …", "Looking for {term} …" : "{term} 검색 중 …", + "Modified" : "수정한 날짜", + "Not found" : "찾을 수 없음", + "People" : "사람들", + "Load more results" : "더 많은 결과 불러오기", "Forgot password?" : "암호를 잊으셨습니까?", "Back to login form" : "로그인으로 돌아가기", "Back" : "뒤로", @@ -201,7 +204,6 @@ OC.L10N.register( "Search for {name} only" : "{name}(으)로만 검색", "Start typing to search" : "검색어 입력", "Loading more results …" : "더 많은 결과 불러오는 중...", - "Load more results" : "더 많은 결과 불러오기", "Search" : "검색", "No results for {query}" : "{query}에 대한 결과가 없음", "Press Enter to start searching" : "검색을 시작하려면 엔터를 누르세요.", @@ -398,6 +400,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP에 Freetype 지원이 없습니다. 프로필 사진과 설정 인터페이스가 올바르게 표시되지 않을 수도 있습니다.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "이 인스턴스에 추천하는 PHP 모듈 중 일부가 존재하지 않습니다. 성능 향상과 호환성을 위하여 PHP 모듈을 설치하는 것을 추천합니다.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "32비트 PHP 버전을 사용중인 것 같습니다. Nextcloud가 잘 작동하려면 64비트 버전이 필요합니다. OS와 PHP를 64비트로 업그레이드 하시기 바랍니다! 자세한 설명은 {linkstart}이에 대한 문서 페이지 ↗{linkend}를 참고하세요.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP 메모리 제한이 추천값인 512MB보다 작습니다.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "암호 초기화 메시지가 이 계정의 이메일 주소로 발송되었습니다. 메일을 받지 못했다면, 스팸/정크 폴더를 확인하거나 로컬 관리자에게 문의하십시오.", "If it is not there ask your local administrator." : "그곳에 없다면 로컬 관리자에게 문의하십시오.", "Press enter to start searching" : "엔터를 눌러 검색을 시작하세요.", @@ -410,7 +413,6 @@ OC.L10N.register( "No more subfolders in here" : "더 이상의 하위 폴더 없음", "Name" : "이름", "Size" : "크기", - "Modified" : "수정한 날짜", "\"{name}\" is an invalid file name." : "\"{name}\"은(는) 잘못된 파일 이름입니다.", "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", "\"/\" is not allowed inside a file name." : "파일 이름에 \"/\"를 사용할 수 없습니다.", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index b9c582e8c84..cbab23ffd10 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -98,7 +98,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "다른 데이터베이스를 통합하기 위해서 커맨드라인 도구 “occ db:convert-type”을 사용하십시오. 더 자세한 정보는 {linkstart}문서에 있습니다 ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP 메모리 제한이 추천값인 512MB보다 작습니다.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "일부 앱 디렉터리를 웹 서버 사용자와 다른 사용자가 소유하고 있습니다. 수동으로 앱을 설치한 경우에 발생할 수 있습니다. 다음 앱 디렉터리의 사용 권한을 확인하십시오:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL이 데이터베이스로 사용되고 있으나 4바이트 문자를 지원하지 않고 있습니다. 파일 이름이나 댓글 등에 Emoji와 같은 4바이트 문자를 문제 없이 사용하기 위해, MySQL에서 4바이트 문자 지원을 활성화하길 권장합니다. 더 구체적인 정보는 {linkstart}관련 문서를 참조하십시오↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "이 인스턴스에서 S3 기반 객체 저장소를 주 저장소로 사용하고 있습니다. 업로드한 파일을 서버에 임시로 저장하기 때문에 PHP 임시 디렉터리에 최소 50 GB의 빈 공간을 두는 것을 추천합니다. 전체 경로와 사용 가능한 정보를 보려면 로그를 참조하십시오. 성능을 개선하려면 php.ini의 임시 디렉터리를 변경하거나, 해당 위치에서 사용할 수 있는 공간을 더 많이 할당하십시오.", @@ -184,6 +183,10 @@ "Install the Contacts app" : "Contacts 앱 설치", "Loading your contacts …" : "연락처 불러오는 중 …", "Looking for {term} …" : "{term} 검색 중 …", + "Modified" : "수정한 날짜", + "Not found" : "찾을 수 없음", + "People" : "사람들", + "Load more results" : "더 많은 결과 불러오기", "Forgot password?" : "암호를 잊으셨습니까?", "Back to login form" : "로그인으로 돌아가기", "Back" : "뒤로", @@ -199,7 +202,6 @@ "Search for {name} only" : "{name}(으)로만 검색", "Start typing to search" : "검색어 입력", "Loading more results …" : "더 많은 결과 불러오는 중...", - "Load more results" : "더 많은 결과 불러오기", "Search" : "검색", "No results for {query}" : "{query}에 대한 결과가 없음", "Press Enter to start searching" : "검색을 시작하려면 엔터를 누르세요.", @@ -396,6 +398,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP에 Freetype 지원이 없습니다. 프로필 사진과 설정 인터페이스가 올바르게 표시되지 않을 수도 있습니다.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "이 인스턴스에 추천하는 PHP 모듈 중 일부가 존재하지 않습니다. 성능 향상과 호환성을 위하여 PHP 모듈을 설치하는 것을 추천합니다.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "32비트 PHP 버전을 사용중인 것 같습니다. Nextcloud가 잘 작동하려면 64비트 버전이 필요합니다. OS와 PHP를 64비트로 업그레이드 하시기 바랍니다! 자세한 설명은 {linkstart}이에 대한 문서 페이지 ↗{linkend}를 참고하세요.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP 메모리 제한이 추천값인 512MB보다 작습니다.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "암호 초기화 메시지가 이 계정의 이메일 주소로 발송되었습니다. 메일을 받지 못했다면, 스팸/정크 폴더를 확인하거나 로컬 관리자에게 문의하십시오.", "If it is not there ask your local administrator." : "그곳에 없다면 로컬 관리자에게 문의하십시오.", "Press enter to start searching" : "엔터를 눌러 검색을 시작하세요.", @@ -408,7 +411,6 @@ "No more subfolders in here" : "더 이상의 하위 폴더 없음", "Name" : "이름", "Size" : "크기", - "Modified" : "수정한 날짜", "\"{name}\" is an invalid file name." : "\"{name}\"은(는) 잘못된 파일 이름입니다.", "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", "\"/\" is not allowed inside a file name." : "파일 이름에 \"/\"를 사용할 수 없습니다.", diff --git a/core/l10n/lo.js b/core/l10n/lo.js index ed7e89b9259..c13671eb1db 100644 --- a/core/l10n/lo.js +++ b/core/l10n/lo.js @@ -69,7 +69,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "ໂມດູນ php-imagick ໃນກໍລະນີນີ້ບໍ່ມີການສະຫນັບສະຫນູນ SVG. ເພື່ອຄວາມສອດຄ່ອງທີ່ດີກວ່າແມ່ນແນະນໍາໃຫ້ຕິດຕັ້ງ.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite ກໍາລັງຖືກນໍາໃຊ້ເປັນຖານຂໍ້ມູນbackend. ສໍາລັບການຕິດຕັ້ງທີ່ໃຫຍ່ກວ່າ ພວກເຮົາຂໍແນະນໍາໃຫ້ທ່ານປ່ຽນໄປຫາ backend ຖານຂໍ້ມູນທີ່ແຕກຕ່າງ ກັນ .", "This is particularly recommended when using the desktop client for file synchronisation." : "ແນະນໍາໂດຍສະເພາະເມື່ອການນໍາໃຊ້ desktop ລູກຄ້າ ສໍາລັບການ ຢືນຢັນຟາຍ", - "The PHP memory limit is below the recommended value of 512MB." : "ຂີດຈໍາກັດຄວາມຈໍາ PHP ແມ່ນຕ່ໍາກວ່າຄ່າທີ່ແນະນໍາຂອງ 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "ຊອບແວຂອງຜູ້ ໃຊ້ແຕກຕ່າງຈາກເວັບໄຊ . ອາດຢູ່ເປັນກໍລະນີ ການຕິດຕັ້ງແອັບພລິເຄຊັນດ້ວຍມື. ກວດສອບການອະນຸຍາດຂອງແອັບພລິເຄຊັນດັ່ງຕໍ່ໄປນີ້:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL ຖືກນໍາໃຊ້ເປັນຖານຂໍ້ມູນແຕ່ບໍ່ສະຫນັບສະຫນູນຕົວອັກສອນ 4 byte. ເພື່ອ ໃຫ້ ສາມາດຮັບ 4-byteໄດ້(ເຊັ່ນ emojis) ໂດຍບໍ່ມີບັນຫາໃນຊື່ຟາຍ ຫຼື ຄໍາ ເຫັນຍົກຕົວຢ່າງ ແນະນໍາໃຫ້ ເຮັດໃຫ້ ການສະຫນັບສະຫນູນ 4 byte ໃນ MySQL . ສໍາລັບລາຍລະອຽດ ເພີ່ມເຕີມອ່ານ {linkstart} ຫນ້າ ເອກະສານກ່ຽວກັບ ↗{linkend} ນີ້.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "ຕົວຢ່າງນີ້ໃຊ້ S3 ເປັນການເກັບກໍາຂໍ້ມູນຕົ້ນຕໍ. ຟາຍອັບໂຫຼດໄດ້ເກັບ ໄວ້ ຊົ່ວ ຄາວ ຢູ່ ໃນ server ແລະ ດັ່ງນັ້ນຈຶ່ງແນະນໍາໃຫ້ມີ ພຶນທີ່ວ່າງ 50 GB ໃນ directory temp ຂອງ PHP . ກວດເບິ່ງບັນຊີລາຍລະອຽດກ່ຽວກັບຊ່ອງທາງ ແລະ ພຶນທີ່ວ່າງ . ເພື່ອປັບປຸງກະລຸນາປ່ຽນ directory ຊົ່ວຄາວໃນ php.ini ຫຼື ເຮັດໃຫ້ມີຊ່ອງຫວ່າງຫຼາຍຂຶ້ນໃນຊ່ອງທາງນັ້ນ.", @@ -133,6 +132,9 @@ OC.L10N.register( "Install the Contacts app" : "ຕິດຕັ້ງແອັບ Contacts", "Loading your contacts …" : "ກໍາລັງໂຫຼດການຕິດຕໍ່ຂອງທ່ານ ...", "Looking for {term} …" : "ຊອກຫາ {term} ...", + "Modified" : "ດັດແປງ", + "Today" : "ມື້ນີ້", + "Load more results" : "ຜົນLoad ເພີ່ມເຕີມ", "Forgot password?" : "ລືມລະຫັດຜ່ານ?", "Back" : "ຫຼັງ", "Login form is disabled." : "ຮູບແບບLogin ຖືກປິດ.", @@ -140,7 +142,6 @@ OC.L10N.register( "Search for {name} only" : "ຄົ້ນຫາ {name} ເທົ່ານັ້ນ", "Start typing to search" : "ເລີ່ມພິມເພື່ອຄົ້ນຫາ", "Loading more results …" : "ຜົນການດາວໂຫຼດເພີ່ມເຕີມ ...", - "Load more results" : "ຜົນLoad ເພີ່ມເຕີມ", "Search" : "ຄົ້ນຫາ", "No results for {query}" : "ບໍ່ມີຜົນສໍາລັບ {query}", "An error occurred while searching for {type}" : "ເກີດຂໍ້ຜິດພາດໃນຂະນະທີ່ຊອກຫາ {ປະເພດ}", @@ -307,6 +308,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "ປະຈຸບັນທ່ານກໍາລັງດໍາເນີນການ PHP {version}. ອັບເດດລຸ້ນ PHP ຂອງທ່ານເພື່ອໃຊ້ ປະສິດທິພາບ {linkstart} ແລະ ການປັບປຸງຄວາມປອດໄພທີ່ສະຫນອງໃຫ້ໂດຍກຸ່ມ↗{linkend} PHP ທັນທີທີ່ການແຈກຢາຍຂອງທ່ານສະຫນັບສະຫນູນມັນ.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP ຂອງທ່ານບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ FreeType, ເຮັດໃຫ້ຮູບພາບໜ້າປົກຄວາມຄົມຊັດບໍ່ລະອຽດ ລວມທັງບັນຫາ ການຕັ້ງຄ່າ interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "ຕົວຢ່າງເເນະນຳຂາດໂມດູນ PHP, ສໍາລັບການປັບປຸງ ແລະ ການປະຕິບັດທີ່ດີກວ່າ ນັ້ນ ແມ່ນແນະນໍາໃຫ້ຕິດຕັ້ງ ", + "The PHP memory limit is below the recommended value of 512MB." : "ຂີດຈໍາກັດຄວາມຈໍາ PHP ແມ່ນຕ່ໍາກວ່າຄ່າທີ່ແນະນໍາຂອງ 512MB.", "If it is not there ask your local administrator." : "ຖ້າບໍ່ໄດ້ຖາມຜູ້ເບິ່ງລະບົບຂອງທ່ານ.", "Settings" : "ການຕັ້ງຄ່າ", "Show all contacts …" : "ສະແດງການຕິດຕໍ່ທັງຫມົດ ...", @@ -315,7 +317,6 @@ OC.L10N.register( "No more subfolders in here" : "ບໍ່ມີ ໂຟນເດີຍ່ອຍ ອີກຕໍ່ໄປໃນນີ້", "Name" : "ຊື່", "Size" : "ຂະຫນາດ", - "Modified" : "ດັດແປງ", "\"{name}\" is an invalid file name." : "\"{name}\" ແມ່ນຊື່ຟາຍທີ່ບໍ່ຖືກຕ້ອງ.", "File name cannot be empty." : "ຊື່ຟາຍບໍ່ໃຫ້ເປົ່າວ່າງ", "\"/\" is not allowed inside a file name." : "ບໍ່ອະນຸຍາດໃຫ້\"/\" ຢູ່ໃນຊື່ໄຟລ໌.", diff --git a/core/l10n/lo.json b/core/l10n/lo.json index 6b874420152..daab9bd79c3 100644 --- a/core/l10n/lo.json +++ b/core/l10n/lo.json @@ -67,7 +67,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "ໂມດູນ php-imagick ໃນກໍລະນີນີ້ບໍ່ມີການສະຫນັບສະຫນູນ SVG. ເພື່ອຄວາມສອດຄ່ອງທີ່ດີກວ່າແມ່ນແນະນໍາໃຫ້ຕິດຕັ້ງ.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite ກໍາລັງຖືກນໍາໃຊ້ເປັນຖານຂໍ້ມູນbackend. ສໍາລັບການຕິດຕັ້ງທີ່ໃຫຍ່ກວ່າ ພວກເຮົາຂໍແນະນໍາໃຫ້ທ່ານປ່ຽນໄປຫາ backend ຖານຂໍ້ມູນທີ່ແຕກຕ່າງ ກັນ .", "This is particularly recommended when using the desktop client for file synchronisation." : "ແນະນໍາໂດຍສະເພາະເມື່ອການນໍາໃຊ້ desktop ລູກຄ້າ ສໍາລັບການ ຢືນຢັນຟາຍ", - "The PHP memory limit is below the recommended value of 512MB." : "ຂີດຈໍາກັດຄວາມຈໍາ PHP ແມ່ນຕ່ໍາກວ່າຄ່າທີ່ແນະນໍາຂອງ 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "ຊອບແວຂອງຜູ້ ໃຊ້ແຕກຕ່າງຈາກເວັບໄຊ . ອາດຢູ່ເປັນກໍລະນີ ການຕິດຕັ້ງແອັບພລິເຄຊັນດ້ວຍມື. ກວດສອບການອະນຸຍາດຂອງແອັບພລິເຄຊັນດັ່ງຕໍ່ໄປນີ້:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL ຖືກນໍາໃຊ້ເປັນຖານຂໍ້ມູນແຕ່ບໍ່ສະຫນັບສະຫນູນຕົວອັກສອນ 4 byte. ເພື່ອ ໃຫ້ ສາມາດຮັບ 4-byteໄດ້(ເຊັ່ນ emojis) ໂດຍບໍ່ມີບັນຫາໃນຊື່ຟາຍ ຫຼື ຄໍາ ເຫັນຍົກຕົວຢ່າງ ແນະນໍາໃຫ້ ເຮັດໃຫ້ ການສະຫນັບສະຫນູນ 4 byte ໃນ MySQL . ສໍາລັບລາຍລະອຽດ ເພີ່ມເຕີມອ່ານ {linkstart} ຫນ້າ ເອກະສານກ່ຽວກັບ ↗{linkend} ນີ້.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "ຕົວຢ່າງນີ້ໃຊ້ S3 ເປັນການເກັບກໍາຂໍ້ມູນຕົ້ນຕໍ. ຟາຍອັບໂຫຼດໄດ້ເກັບ ໄວ້ ຊົ່ວ ຄາວ ຢູ່ ໃນ server ແລະ ດັ່ງນັ້ນຈຶ່ງແນະນໍາໃຫ້ມີ ພຶນທີ່ວ່າງ 50 GB ໃນ directory temp ຂອງ PHP . ກວດເບິ່ງບັນຊີລາຍລະອຽດກ່ຽວກັບຊ່ອງທາງ ແລະ ພຶນທີ່ວ່າງ . ເພື່ອປັບປຸງກະລຸນາປ່ຽນ directory ຊົ່ວຄາວໃນ php.ini ຫຼື ເຮັດໃຫ້ມີຊ່ອງຫວ່າງຫຼາຍຂຶ້ນໃນຊ່ອງທາງນັ້ນ.", @@ -131,6 +130,9 @@ "Install the Contacts app" : "ຕິດຕັ້ງແອັບ Contacts", "Loading your contacts …" : "ກໍາລັງໂຫຼດການຕິດຕໍ່ຂອງທ່ານ ...", "Looking for {term} …" : "ຊອກຫາ {term} ...", + "Modified" : "ດັດແປງ", + "Today" : "ມື້ນີ້", + "Load more results" : "ຜົນLoad ເພີ່ມເຕີມ", "Forgot password?" : "ລືມລະຫັດຜ່ານ?", "Back" : "ຫຼັງ", "Login form is disabled." : "ຮູບແບບLogin ຖືກປິດ.", @@ -138,7 +140,6 @@ "Search for {name} only" : "ຄົ້ນຫາ {name} ເທົ່ານັ້ນ", "Start typing to search" : "ເລີ່ມພິມເພື່ອຄົ້ນຫາ", "Loading more results …" : "ຜົນການດາວໂຫຼດເພີ່ມເຕີມ ...", - "Load more results" : "ຜົນLoad ເພີ່ມເຕີມ", "Search" : "ຄົ້ນຫາ", "No results for {query}" : "ບໍ່ມີຜົນສໍາລັບ {query}", "An error occurred while searching for {type}" : "ເກີດຂໍ້ຜິດພາດໃນຂະນະທີ່ຊອກຫາ {ປະເພດ}", @@ -305,6 +306,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "ປະຈຸບັນທ່ານກໍາລັງດໍາເນີນການ PHP {version}. ອັບເດດລຸ້ນ PHP ຂອງທ່ານເພື່ອໃຊ້ ປະສິດທິພາບ {linkstart} ແລະ ການປັບປຸງຄວາມປອດໄພທີ່ສະຫນອງໃຫ້ໂດຍກຸ່ມ↗{linkend} PHP ທັນທີທີ່ການແຈກຢາຍຂອງທ່ານສະຫນັບສະຫນູນມັນ.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP ຂອງທ່ານບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ FreeType, ເຮັດໃຫ້ຮູບພາບໜ້າປົກຄວາມຄົມຊັດບໍ່ລະອຽດ ລວມທັງບັນຫາ ການຕັ້ງຄ່າ interface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "ຕົວຢ່າງເເນະນຳຂາດໂມດູນ PHP, ສໍາລັບການປັບປຸງ ແລະ ການປະຕິບັດທີ່ດີກວ່າ ນັ້ນ ແມ່ນແນະນໍາໃຫ້ຕິດຕັ້ງ ", + "The PHP memory limit is below the recommended value of 512MB." : "ຂີດຈໍາກັດຄວາມຈໍາ PHP ແມ່ນຕ່ໍາກວ່າຄ່າທີ່ແນະນໍາຂອງ 512MB.", "If it is not there ask your local administrator." : "ຖ້າບໍ່ໄດ້ຖາມຜູ້ເບິ່ງລະບົບຂອງທ່ານ.", "Settings" : "ການຕັ້ງຄ່າ", "Show all contacts …" : "ສະແດງການຕິດຕໍ່ທັງຫມົດ ...", @@ -313,7 +315,6 @@ "No more subfolders in here" : "ບໍ່ມີ ໂຟນເດີຍ່ອຍ ອີກຕໍ່ໄປໃນນີ້", "Name" : "ຊື່", "Size" : "ຂະຫນາດ", - "Modified" : "ດັດແປງ", "\"{name}\" is an invalid file name." : "\"{name}\" ແມ່ນຊື່ຟາຍທີ່ບໍ່ຖືກຕ້ອງ.", "File name cannot be empty." : "ຊື່ຟາຍບໍ່ໃຫ້ເປົ່າວ່າງ", "\"/\" is not allowed inside a file name." : "ບໍ່ອະນຸຍາດໃຫ້\"/\" ຢູ່ໃນຊື່ໄຟລ໌.", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index 5b78adb362b..ebcfc10e202 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -63,7 +63,6 @@ OC.L10N.register( "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Buvo neįmanoma įvykdyti cron užduotį per komandų eilutę. Atsirado šios techninės klaidos:", "Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Lentelėje „{tableName}“ trūksta nebūtino stulpelio „{columnName}“.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tai ypač rekomenduojama failų sinchronizavimui naudojant darbalaukio kliento programą.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP atminties riba yra žemiau rekomenduojamos 512MB reikšmės.", "Error occurred while checking server setup" : "Tikrinant serverio sąranką, įvyko klaida", "For more details see the {linkstart}documentation ↗{linkend}." : "Išsamesnei informacijai, žiūrėkite {linkstart}dokumentaciją ↗{linkend}.", "unknown text" : "nežinomas tekstas", @@ -120,6 +119,11 @@ OC.L10N.register( "Install the Contacts app" : "Įdiegti adresatų programėlę", "Loading your contacts …" : "Įkeliami jūsų adresatai…", "Looking for {term} …" : "Ieškoma {term} ...", + "Modified" : "Pakeista", + "Today" : "Šiandien", + "Not found" : "Nerasta", + "People" : "Žmonės", + "Load more results" : "Įkelti daugiau rezultatų", "Forgot password?" : "Pamiršote slaptažodį?", "Back" : "Atgal", "Edit Profile" : "Taisyti profilį", @@ -130,7 +134,6 @@ OC.L10N.register( "Search for {name} only" : "Ieškoti tik {name}", "Start typing to search" : "Norėdami atlikti paiešką, pradėkite rašyti", "Loading more results …" : "Įkeliama daugiau rezultatų…", - "Load more results" : "Įkelti daugiau rezultatų", "Search" : "Ieškoti", "No results for {query}" : "{query} negrąžino jokių rezultatų", "An error occurred while searching for {type}" : "Ieškant {type}, įvyko klaida", @@ -293,6 +296,7 @@ OC.L10N.register( "Contact your system administrator if this message persists or appeared unexpectedly." : "Susisiekite su savo sistemos administratoriumi, jei šis pranešimas nedingsta arba, jei jis pasirodė netikėtai.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Jūsų PHP neturi FreeType palaikymo, kas savo ruožtu sąlygoja profilio paveikslėlių ir nustatymų sąsajos neteisingą atvaizdavimą.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Šiame egzemplioriuje trūksta kai kurių rekomenduojamų PHP modulių. Pagerintam našumui ir geresniam suderinamumui yra primygtinai rekomenduojama juos įdiegti.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP atminties riba yra žemiau rekomenduojamos 512MB reikšmės.", "Open settings menu" : "Atverti nustatymų meniu", "Settings" : "Nustatymai", "Show all contacts …" : "Rodyti visus adresatus...", @@ -301,7 +305,6 @@ OC.L10N.register( "No more subfolders in here" : "Čia daugiau nebėra poaplankių", "Name" : "Pavadinimas", "Size" : "Dydis", - "Modified" : "Pakeista", "\"{name}\" is an invalid file name." : "„{name}“ yra neteisingas failo pavadinimas.", "File name cannot be empty." : "Failo pavadinimas negali būti tuščias.", "\"/\" is not allowed inside a file name." : "Failo pavadinime simbolis „/“ draudžiamas.", diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index cbf8a220fb7..1361c57e136 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -61,7 +61,6 @@ "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Buvo neįmanoma įvykdyti cron užduotį per komandų eilutę. Atsirado šios techninės klaidos:", "Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Lentelėje „{tableName}“ trūksta nebūtino stulpelio „{columnName}“.", "This is particularly recommended when using the desktop client for file synchronisation." : "Tai ypač rekomenduojama failų sinchronizavimui naudojant darbalaukio kliento programą.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP atminties riba yra žemiau rekomenduojamos 512MB reikšmės.", "Error occurred while checking server setup" : "Tikrinant serverio sąranką, įvyko klaida", "For more details see the {linkstart}documentation ↗{linkend}." : "Išsamesnei informacijai, žiūrėkite {linkstart}dokumentaciją ↗{linkend}.", "unknown text" : "nežinomas tekstas", @@ -118,6 +117,11 @@ "Install the Contacts app" : "Įdiegti adresatų programėlę", "Loading your contacts …" : "Įkeliami jūsų adresatai…", "Looking for {term} …" : "Ieškoma {term} ...", + "Modified" : "Pakeista", + "Today" : "Šiandien", + "Not found" : "Nerasta", + "People" : "Žmonės", + "Load more results" : "Įkelti daugiau rezultatų", "Forgot password?" : "Pamiršote slaptažodį?", "Back" : "Atgal", "Edit Profile" : "Taisyti profilį", @@ -128,7 +132,6 @@ "Search for {name} only" : "Ieškoti tik {name}", "Start typing to search" : "Norėdami atlikti paiešką, pradėkite rašyti", "Loading more results …" : "Įkeliama daugiau rezultatų…", - "Load more results" : "Įkelti daugiau rezultatų", "Search" : "Ieškoti", "No results for {query}" : "{query} negrąžino jokių rezultatų", "An error occurred while searching for {type}" : "Ieškant {type}, įvyko klaida", @@ -291,6 +294,7 @@ "Contact your system administrator if this message persists or appeared unexpectedly." : "Susisiekite su savo sistemos administratoriumi, jei šis pranešimas nedingsta arba, jei jis pasirodė netikėtai.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Jūsų PHP neturi FreeType palaikymo, kas savo ruožtu sąlygoja profilio paveikslėlių ir nustatymų sąsajos neteisingą atvaizdavimą.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Šiame egzemplioriuje trūksta kai kurių rekomenduojamų PHP modulių. Pagerintam našumui ir geresniam suderinamumui yra primygtinai rekomenduojama juos įdiegti.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP atminties riba yra žemiau rekomenduojamos 512MB reikšmės.", "Open settings menu" : "Atverti nustatymų meniu", "Settings" : "Nustatymai", "Show all contacts …" : "Rodyti visus adresatus...", @@ -299,7 +303,6 @@ "No more subfolders in here" : "Čia daugiau nebėra poaplankių", "Name" : "Pavadinimas", "Size" : "Dydis", - "Modified" : "Pakeista", "\"{name}\" is an invalid file name." : "„{name}“ yra neteisingas failo pavadinimas.", "File name cannot be empty." : "Failo pavadinimas negali būti tuščias.", "\"/\" is not allowed inside a file name." : "Failo pavadinime simbolis „/“ draudžiamas.", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index c9ff0216613..c7f153daabd 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -105,6 +105,8 @@ OC.L10N.register( "Install the Contacts app" : "Instalējiet lietotni Kontaktpersonas", "Loading your contacts …" : "Notiek kontaktpersonu ielāde...", "Looking for {term} …" : "Meklē {term} …", + "Modified" : "Mainīts", + "Today" : "Šodien", "Forgot password?" : "Aizmirsi paroli?", "Back" : "Atpakaļ", "Edit Profile" : "Rediģēt profilu", @@ -234,7 +236,6 @@ OC.L10N.register( "No more subfolders in here" : "Šeit nav vairāk apakšmapju", "Name" : "Vārds", "Size" : "Izmērs", - "Modified" : "Mainīts", "\"{name}\" is an invalid file name." : "\"{name}\" ir nepareizs datnes nosaukums.", "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.", "\"/\" is not allowed inside a file name." : "\"/\" nav atļauts faila nosaukumā.", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index cb9a0f293db..439a3793c8f 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -103,6 +103,8 @@ "Install the Contacts app" : "Instalējiet lietotni Kontaktpersonas", "Loading your contacts …" : "Notiek kontaktpersonu ielāde...", "Looking for {term} …" : "Meklē {term} …", + "Modified" : "Mainīts", + "Today" : "Šodien", "Forgot password?" : "Aizmirsi paroli?", "Back" : "Atpakaļ", "Edit Profile" : "Rediģēt profilu", @@ -232,7 +234,6 @@ "No more subfolders in here" : "Šeit nav vairāk apakšmapju", "Name" : "Vārds", "Size" : "Izmērs", - "Modified" : "Mainīts", "\"{name}\" is an invalid file name." : "\"{name}\" ir nepareizs datnes nosaukums.", "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.", "\"/\" is not allowed inside a file name." : "\"/\" nav atļauts faila nosaukumā.", diff --git a/core/l10n/mk.js b/core/l10n/mk.js index fa6f2d292b8..702147ec7a1 100644 --- a/core/l10n/mk.js +++ b/core/l10n/mk.js @@ -84,7 +84,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Моментално се користи SQLite како база за податоци. За користење, препорачуваме различен начин за база на податоци.", "This is particularly recommended when using the desktop client for file synchronisation." : "Ова особено е препорачливо кога се користи клиент за синхронизација.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За да мигрирате во друга база на податоци, користете ја алатката во командната линија: 'occ db:convert-type', или погледнете во {linkstart}документацијата ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Меморијата за PHP е под препорачаната вредност од 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Некој папки со апликации не се сопственост на корисникот на веб серверот. Ова може да биде случај ако апликациите се инсталирани рачно. Проверете ги дозволите на следниве папки со апликации:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL се користи како база на податоци, но не поддржува 4-бајтни карактери. За да можете да ракувате со 4-бајтни карактери (како емотикони) без проблеми во имиња на датотеки или коментари, се препорачува да се овозможи поддршка од 4-бајти во MySQL. За повеќе детали прочитајте во {linkstart}документација{linkstart}.", "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This most likely means that you are behind a reverse proxy and the overwrite config variables are not set correctly. Please read {linkstart}the documentation page about this ↗{linkend}." : "Пристапувате на оваа истанца преку безведносна врска, но оваа истанца генерира не-безбедни URL адреси. Ова, најверојатно, значи дека стоите зад обратниот прокси и променливите за конфигурирање за пребришување не се правилно поставени. Прочитајде во {linkstart}документацијата{linkend}.", @@ -163,6 +162,11 @@ OC.L10N.register( "Install the Contacts app" : "Инсталирај апликација за контакти", "Loading your contacts …" : "Вчитување на вашите контакти ...", "Looking for {term} …" : "Пребарување за {term} …", + "Modified" : "Изменето", + "Today" : "Денес", + "Not found" : "Не е пронајдено", + "People" : "Луѓе", + "Load more results" : "Вчитај повеќе резултати", "Forgot password?" : "Заборавена лозинка?", "Back to login form" : "Врати се на формата за најавување", "Back" : "Назад", @@ -176,7 +180,6 @@ OC.L10N.register( "Search for {name} only" : "Пребарај само за {name}", "Start typing to search" : "Напишете нешто за пребарување", "Loading more results …" : "Вчитување на повеќе резултати ...", - "Load more results" : "Вчитај повеќе резултати", "Search" : "Барај", "No results for {query}" : "Нема резултати за {query}", "Press Enter to start searching" : "Притисни Enter за започне пребарувањето", @@ -367,6 +370,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не е конфигурирана мемориjа за кеширање. За да ги подобрите перформансите, конфигурирајте memcache, доколку е можно. Дополнителни информации може да се најдат во {linkstart}документацијата{linkend}.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Моненталната верзија на PHP е {version}. Ажурирајте ја PHP верзијата да ги искористите предностите од {linkstart}перформанси и безбедносни ажурирања обезбедени од групацијата PHP ↗{linkend} штом вашата дистрибуција го поддржува.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "На оваа истанца недостасуваат некој препорачливи PHP модули. За подобри перформанси и подобра компатибилност, се препорачува да ги инсталирате.", + "The PHP memory limit is below the recommended value of 512MB." : "Меморијата за PHP е под препорачаната вредност од 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Порака за ресетирање на лозинката е испратена на е-пошта на оваа сметка. Доколку не сте ја добиле, проверете во spam/junk папката или прашајте го вашиот локален администратор за помош.", "If it is not there ask your local administrator." : "Доколку не е таму, прашајте го вашиот локален администратор.", "Press enter to start searching" : "Притисни Enter за започне пребарувањето", @@ -379,7 +383,6 @@ OC.L10N.register( "No more subfolders in here" : "Нема повеќе поддиректориуми тука", "Name" : "Име", "Size" : "Големина", - "Modified" : "Изменето", "\"{name}\" is an invalid file name." : "\"{name}\" е невалидно име за датотека.", "File name cannot be empty." : "Името на датотеката не може да биде празно.", "\"/\" is not allowed inside a file name." : "\"/\" не е дозволено во името.", diff --git a/core/l10n/mk.json b/core/l10n/mk.json index 7129f60cdce..5a8d3c39573 100644 --- a/core/l10n/mk.json +++ b/core/l10n/mk.json @@ -82,7 +82,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Моментално се користи SQLite како база за податоци. За користење, препорачуваме различен начин за база на податоци.", "This is particularly recommended when using the desktop client for file synchronisation." : "Ова особено е препорачливо кога се користи клиент за синхронизација.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За да мигрирате во друга база на податоци, користете ја алатката во командната линија: 'occ db:convert-type', или погледнете во {linkstart}документацијата ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Меморијата за PHP е под препорачаната вредност од 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Некој папки со апликации не се сопственост на корисникот на веб серверот. Ова може да биде случај ако апликациите се инсталирани рачно. Проверете ги дозволите на следниве папки со апликации:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL се користи како база на податоци, но не поддржува 4-бајтни карактери. За да можете да ракувате со 4-бајтни карактери (како емотикони) без проблеми во имиња на датотеки или коментари, се препорачува да се овозможи поддршка од 4-бајти во MySQL. За повеќе детали прочитајте во {linkstart}документација{linkstart}.", "You are accessing your instance over a secure connection, however your instance is generating insecure URLs. This most likely means that you are behind a reverse proxy and the overwrite config variables are not set correctly. Please read {linkstart}the documentation page about this ↗{linkend}." : "Пристапувате на оваа истанца преку безведносна врска, но оваа истанца генерира не-безбедни URL адреси. Ова, најверојатно, значи дека стоите зад обратниот прокси и променливите за конфигурирање за пребришување не се правилно поставени. Прочитајде во {linkstart}документацијата{linkend}.", @@ -161,6 +160,11 @@ "Install the Contacts app" : "Инсталирај апликација за контакти", "Loading your contacts …" : "Вчитување на вашите контакти ...", "Looking for {term} …" : "Пребарување за {term} …", + "Modified" : "Изменето", + "Today" : "Денес", + "Not found" : "Не е пронајдено", + "People" : "Луѓе", + "Load more results" : "Вчитај повеќе резултати", "Forgot password?" : "Заборавена лозинка?", "Back to login form" : "Врати се на формата за најавување", "Back" : "Назад", @@ -174,7 +178,6 @@ "Search for {name} only" : "Пребарај само за {name}", "Start typing to search" : "Напишете нешто за пребарување", "Loading more results …" : "Вчитување на повеќе резултати ...", - "Load more results" : "Вчитај повеќе резултати", "Search" : "Барај", "No results for {query}" : "Нема резултати за {query}", "Press Enter to start searching" : "Притисни Enter за започне пребарувањето", @@ -365,6 +368,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the {linkstart}documentation ↗{linkend}." : "Не е конфигурирана мемориjа за кеширање. За да ги подобрите перформансите, конфигурирајте memcache, доколку е можно. Дополнителни информации може да се најдат во {linkstart}документацијата{linkend}.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Моненталната верзија на PHP е {version}. Ажурирајте ја PHP верзијата да ги искористите предностите од {linkstart}перформанси и безбедносни ажурирања обезбедени од групацијата PHP ↗{linkend} штом вашата дистрибуција го поддржува.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "На оваа истанца недостасуваат некој препорачливи PHP модули. За подобри перформанси и подобра компатибилност, се препорачува да ги инсталирате.", + "The PHP memory limit is below the recommended value of 512MB." : "Меморијата за PHP е под препорачаната вредност од 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Порака за ресетирање на лозинката е испратена на е-пошта на оваа сметка. Доколку не сте ја добиле, проверете во spam/junk папката или прашајте го вашиот локален администратор за помош.", "If it is not there ask your local administrator." : "Доколку не е таму, прашајте го вашиот локален администратор.", "Press enter to start searching" : "Притисни Enter за започне пребарувањето", @@ -377,7 +381,6 @@ "No more subfolders in here" : "Нема повеќе поддиректориуми тука", "Name" : "Име", "Size" : "Големина", - "Modified" : "Изменето", "\"{name}\" is an invalid file name." : "\"{name}\" е невалидно име за датотека.", "File name cannot be empty." : "Името на датотеката не може да биде празно.", "\"/\" is not allowed inside a file name." : "\"/\" не е дозволено во името.", diff --git a/core/l10n/nb.js b/core/l10n/nb.js index 2ba8c9bc30a..af065029fec 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -92,7 +92,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite brukes som database motor. For større installasjoner anbefaler vi at du bytter til en annen database motor.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dette anbefales spesielt når du bruker skrivebordsklienten for filsynkronisering.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "For å migrere til en annen database, bruk kommandolinjeverktøyet: \"occ db:convert-type\", eller se {linkstart}dokumentasjonen ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP er satt opp med mindre minne enn anbefalt minste verdi på 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Enkelte mapper er eid av annen bruker enn den webserveren kjører som. Dette kan kan oppstå hvis apper er installert manuelt. Sjekk eierskap og tillatelser på følgende mapper:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL brukes som database, men støtter ikke 4-byte tegn. For å kunne håndtere 4-byte-tegn (som emojis) uten problemer i filnavn eller kommentarer for eksempel, anbefales det å aktivere 4-byte-støtten i MySQL. For ytterligere detaljer, les {linkstart}dokumentasjonssiden om dette ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Denne instansen bruker en S3-basert objektlagring som primærlager. De opplastede filene blir lagret midlertidig på tjeneren og det er anbefalt å ha 50 GB ledig lagringsplass i det midlertidig lageret til PHP. Sjekk logger for fullstendige detaljer om filsti og ledig plass. Endre filstien til midlertidig lagringsplass i php.ini eller frigjør mer plass for å forbedre dette.", @@ -174,6 +173,12 @@ OC.L10N.register( "Install the Contacts app" : "Installer appen Kontakter", "Loading your contacts …" : "Laster inn kontaktene dine…", "Looking for {term} …" : "Ser etter {term}…", + "Modified" : "Endret", + "Today" : "I dag", + "Last year" : "I fjor", + "Not found" : "Ikke funnet", + "People" : "Mennesker", + "Load more results" : "Last flere resultater", "Forgot password?" : "Glemt passord?", "Back" : "Tilbake", "Login form is disabled." : "Innloggingskjemaet er deaktivert.", @@ -188,7 +193,6 @@ OC.L10N.register( "Search for {name} only" : "Søk kun etter {name}", "Start typing to search" : "Start å skrive for å søke", "Loading more results …" : "Laster flere resultater ...", - "Load more results" : "Last flere resultater", "Search" : "Søk", "No results for {query}" : "Ingen resultater for {query}", "An error occurred while searching for {type}" : "Det oppsto en feil ved søk etter {type}", @@ -378,6 +382,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP-installasjon har ikke FreeType-støtte. Dette fører til knekte profilbilder og skadelidende innstillingsgrensesnitt.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Din instans mangler anbefalte PHP moduler. For bedre ytelse og kompabilitet er det sterkt anbefalt at du installerer dem.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Det virker som du kjører en 32-bit PHP-versjon. Nextcloud trenger 64-bit for å fungere bra. Vennligst oppgrader OS og PHP til 64-bit! For ytterligere detaljer, les {linkstart}dokumentasjonssiden om dette ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP er satt opp med mindre minne enn anbefalt minste verdi på 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Melding om tilbakestilling av passord har blitt send til e-postadressen til denne kontoen. Hvis du ikke mottok den, burde du sjekke spam/søppelpost-mappene eller spørre din lokale administrator om hjelp.", "If it is not there ask your local administrator." : "Spør din lokale administrator hvis den ikke er der. ", "Press enter to start searching" : "Trykk enter for å starte søk", @@ -389,7 +394,6 @@ OC.L10N.register( "No more subfolders in here" : "Ingen flere mapper her", "Name" : "Navn", "Size" : "Størrelse", - "Modified" : "Endret", "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", "File name cannot be empty." : "Filnavn kan ikke være tomt.", "\"/\" is not allowed inside a file name." : "\"/\" tillates ikke i et filnavn.", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index 6e1179c8e94..c9533ad7ff8 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -90,7 +90,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite brukes som database motor. For større installasjoner anbefaler vi at du bytter til en annen database motor.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dette anbefales spesielt når du bruker skrivebordsklienten for filsynkronisering.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "For å migrere til en annen database, bruk kommandolinjeverktøyet: \"occ db:convert-type\", eller se {linkstart}dokumentasjonen ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP er satt opp med mindre minne enn anbefalt minste verdi på 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Enkelte mapper er eid av annen bruker enn den webserveren kjører som. Dette kan kan oppstå hvis apper er installert manuelt. Sjekk eierskap og tillatelser på følgende mapper:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL brukes som database, men støtter ikke 4-byte tegn. For å kunne håndtere 4-byte-tegn (som emojis) uten problemer i filnavn eller kommentarer for eksempel, anbefales det å aktivere 4-byte-støtten i MySQL. For ytterligere detaljer, les {linkstart}dokumentasjonssiden om dette ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Denne instansen bruker en S3-basert objektlagring som primærlager. De opplastede filene blir lagret midlertidig på tjeneren og det er anbefalt å ha 50 GB ledig lagringsplass i det midlertidig lageret til PHP. Sjekk logger for fullstendige detaljer om filsti og ledig plass. Endre filstien til midlertidig lagringsplass i php.ini eller frigjør mer plass for å forbedre dette.", @@ -172,6 +171,12 @@ "Install the Contacts app" : "Installer appen Kontakter", "Loading your contacts …" : "Laster inn kontaktene dine…", "Looking for {term} …" : "Ser etter {term}…", + "Modified" : "Endret", + "Today" : "I dag", + "Last year" : "I fjor", + "Not found" : "Ikke funnet", + "People" : "Mennesker", + "Load more results" : "Last flere resultater", "Forgot password?" : "Glemt passord?", "Back" : "Tilbake", "Login form is disabled." : "Innloggingskjemaet er deaktivert.", @@ -186,7 +191,6 @@ "Search for {name} only" : "Søk kun etter {name}", "Start typing to search" : "Start å skrive for å søke", "Loading more results …" : "Laster flere resultater ...", - "Load more results" : "Last flere resultater", "Search" : "Søk", "No results for {query}" : "Ingen resultater for {query}", "An error occurred while searching for {type}" : "Det oppsto en feil ved søk etter {type}", @@ -376,6 +380,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP-installasjon har ikke FreeType-støtte. Dette fører til knekte profilbilder og skadelidende innstillingsgrensesnitt.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Din instans mangler anbefalte PHP moduler. For bedre ytelse og kompabilitet er det sterkt anbefalt at du installerer dem.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Det virker som du kjører en 32-bit PHP-versjon. Nextcloud trenger 64-bit for å fungere bra. Vennligst oppgrader OS og PHP til 64-bit! For ytterligere detaljer, les {linkstart}dokumentasjonssiden om dette ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP er satt opp med mindre minne enn anbefalt minste verdi på 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Melding om tilbakestilling av passord har blitt send til e-postadressen til denne kontoen. Hvis du ikke mottok den, burde du sjekke spam/søppelpost-mappene eller spørre din lokale administrator om hjelp.", "If it is not there ask your local administrator." : "Spør din lokale administrator hvis den ikke er der. ", "Press enter to start searching" : "Trykk enter for å starte søk", @@ -387,7 +392,6 @@ "No more subfolders in here" : "Ingen flere mapper her", "Name" : "Navn", "Size" : "Størrelse", - "Modified" : "Endret", "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", "File name cannot be empty." : "Filnavn kan ikke være tomt.", "\"/\" is not allowed inside a file name." : "\"/\" tillates ikke i et filnavn.", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 5ffeb0ee090..6e421b628d2 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -100,7 +100,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: \"occ db:convert-type\", of lees de {linkstart} documentatie ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "De PHP geheugenlimiet is onder de aanbevolen waarde van 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Sommige app directories zijn eigendom van een andere gebruiker dan de webserver . Dat kan het geval zijn als apps handmatig zijn geïnstalleerd. Controleer de machtigingen van de volgende app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is in gebruik als database maar deze ondersteunt geen lettertekens van 4 bytes. Om 4-byte lettertekens te ondersteunen (bv. voor emojis) zonder dat dit problemen veroorzaakt bij bestandsnamen of commentaren enz. is het aangeraden om 4-byte letterteken ondersteuning in MySQL te activeren. Voor meer details {linkstart}lees de documentatie hierover ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Deze installatie gebruikt een S3-gebaseerde object opslag als primaire opslag. De geüploade bestanden worden tijdelijk op de server opgeslagen en daarom is het aangeraden om minimaal 50GB vrije ruimte in de temp directory van PHP te hebben. Controleer de logs voor de complete details van het pad en de beschikbare ruimte. Om dit te verbeteren, verander de tijdelijke directory in php.ini of maak meer ruimte beschikbaar in het genoemde pad.", @@ -186,6 +185,11 @@ OC.L10N.register( "Install the Contacts app" : "Installeer de Contacts app", "Loading your contacts …" : "Je contacten wordt geladen ...", "Looking for {term} …" : "Kijken voor {term} …", + "Modified" : "Aangepast", + "Last year" : "Vorig jaar", + "Not found" : "Niet gevonden", + "People" : "Mensen", + "Load more results" : "Laad meer resultaten", "Forgot password?" : "Wachtwoord vergeten?", "Back to login form" : "Terug naar aanmelden", "Back" : "Terug", @@ -201,7 +205,6 @@ OC.L10N.register( "Search for {name} only" : "Zoek alleen naar {name}", "Start typing to search" : "Begin met typen om te zoeken", "Loading more results …" : "Meer resultaten laden ...", - "Load more results" : "Laad meer resultaten", "Search" : "Zoeken", "No results for {query}" : "Geen resultaten voor {query}", "Press Enter to start searching" : "Druk op Enter om te beginnen zoeken", @@ -395,6 +398,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Je PHP heeft geen FreeType ondersteuning. Dit zal leiden tot verminkte profielafbeeldingen en instellingeninterface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Deze server mist een paar aanbevolen PHP-modules. Voor betere prestaties en compatibiliteit adviseren we om die te installeren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Het lijkt erop dat er een 32-bits versie van PHP word gebruikt. Nextcloud heeft de 64-bits versie nodig om goed te draaien. Upgrade a.u.b uw systeem en PHP naar de 64-bits versie! Meer informatie vind u op de {linkstart}documentatiepagina{linkend}", + "The PHP memory limit is below the recommended value of 512MB." : "De PHP geheugenlimiet is onder de aanbevolen waarde van 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Er is een wachtwoordherstelbericht verzonden naar het e-mailadres van dit account. Als je het niet hebt ontvangen, controleer dan je spam / ongewenste mappen, of vraag je beheerder om hulp.", "If it is not there ask your local administrator." : "Als het hier niet is, vraag dan de lokale beheerder", "Press enter to start searching" : "Druk op Enter om te beginnen zoeken", @@ -407,7 +411,6 @@ OC.L10N.register( "No more subfolders in here" : "Hier niet meer submappen", "Name" : "Naam", "Size" : "Grootte", - "Modified" : "Aangepast", "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", "\"/\" is not allowed inside a file name." : "\"/\" is niet toegestaan binnen een bestandsnaam.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index c6c9adbde15..e759ab2eb6d 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -98,7 +98,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: \"occ db:convert-type\", of lees de {linkstart} documentatie ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "De PHP geheugenlimiet is onder de aanbevolen waarde van 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Sommige app directories zijn eigendom van een andere gebruiker dan de webserver . Dat kan het geval zijn als apps handmatig zijn geïnstalleerd. Controleer de machtigingen van de volgende app directories:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL is in gebruik als database maar deze ondersteunt geen lettertekens van 4 bytes. Om 4-byte lettertekens te ondersteunen (bv. voor emojis) zonder dat dit problemen veroorzaakt bij bestandsnamen of commentaren enz. is het aangeraden om 4-byte letterteken ondersteuning in MySQL te activeren. Voor meer details {linkstart}lees de documentatie hierover ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Deze installatie gebruikt een S3-gebaseerde object opslag als primaire opslag. De geüploade bestanden worden tijdelijk op de server opgeslagen en daarom is het aangeraden om minimaal 50GB vrije ruimte in de temp directory van PHP te hebben. Controleer de logs voor de complete details van het pad en de beschikbare ruimte. Om dit te verbeteren, verander de tijdelijke directory in php.ini of maak meer ruimte beschikbaar in het genoemde pad.", @@ -184,6 +183,11 @@ "Install the Contacts app" : "Installeer de Contacts app", "Loading your contacts …" : "Je contacten wordt geladen ...", "Looking for {term} …" : "Kijken voor {term} …", + "Modified" : "Aangepast", + "Last year" : "Vorig jaar", + "Not found" : "Niet gevonden", + "People" : "Mensen", + "Load more results" : "Laad meer resultaten", "Forgot password?" : "Wachtwoord vergeten?", "Back to login form" : "Terug naar aanmelden", "Back" : "Terug", @@ -199,7 +203,6 @@ "Search for {name} only" : "Zoek alleen naar {name}", "Start typing to search" : "Begin met typen om te zoeken", "Loading more results …" : "Meer resultaten laden ...", - "Load more results" : "Laad meer resultaten", "Search" : "Zoeken", "No results for {query}" : "Geen resultaten voor {query}", "Press Enter to start searching" : "Druk op Enter om te beginnen zoeken", @@ -393,6 +396,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Je PHP heeft geen FreeType ondersteuning. Dit zal leiden tot verminkte profielafbeeldingen en instellingeninterface.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Deze server mist een paar aanbevolen PHP-modules. Voor betere prestaties en compatibiliteit adviseren we om die te installeren.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Het lijkt erop dat er een 32-bits versie van PHP word gebruikt. Nextcloud heeft de 64-bits versie nodig om goed te draaien. Upgrade a.u.b uw systeem en PHP naar de 64-bits versie! Meer informatie vind u op de {linkstart}documentatiepagina{linkend}", + "The PHP memory limit is below the recommended value of 512MB." : "De PHP geheugenlimiet is onder de aanbevolen waarde van 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Er is een wachtwoordherstelbericht verzonden naar het e-mailadres van dit account. Als je het niet hebt ontvangen, controleer dan je spam / ongewenste mappen, of vraag je beheerder om hulp.", "If it is not there ask your local administrator." : "Als het hier niet is, vraag dan de lokale beheerder", "Press enter to start searching" : "Druk op Enter om te beginnen zoeken", @@ -405,7 +409,6 @@ "No more subfolders in here" : "Hier niet meer submappen", "Name" : "Naam", "Size" : "Grootte", - "Modified" : "Aangepast", "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", "\"/\" is not allowed inside a file name." : "\"/\" is niet toegestaan binnen een bestandsnaam.", diff --git a/core/l10n/oc.js b/core/l10n/oc.js index 08bbfe728c7..9d2aa897b36 100644 --- a/core/l10n/oc.js +++ b/core/l10n/oc.js @@ -69,7 +69,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Lo module php-imagick d’aquesta instància a pas cap de compatibilitat SVG. Es forçadament recomandant de l’installar per una melhora compatibilitat.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite es actualament utilizat per la basa de donadas. Per d’installacions mai grandas vos recomandam de bascular sus un autre gestionari de basa de donadas.", "This is particularly recommended when using the desktop client for file synchronisation." : "Es particularament recomandat pendent l’utilizacion de client burèu per la sincronizacion de fichièrs.", - "The PHP memory limit is below the recommended value of 512MB." : "La memòria limit PHP es jos la valor recomandada de 512 Mo.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "D’unes repertòris d’aplicacion son la proprietat d’un utilizaire diferent qu’aquel del servidor web. Aquò pòt èsser lo cas se las aplicacions foguèron installadas manualament. Verificatz las permission dels repertòris d’aplicacion seguents :", "Error occurred while checking server setup" : "Error producha pendent la verificacion de l’installacion del servidor", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L’entèsta HTTP « {header} » es pas definida a « {expected} ». Aquò es un risc de seguretat o de vida privada, es recomandat d’ajustar aqueste paramètre en consequéncia.", @@ -136,6 +135,10 @@ OC.L10N.register( "Install the Contacts app" : "Installar l’aplicacion Contactes", "Loading your contacts …" : "Cargaments dels contactes…", "Looking for {term} …" : "Recèrca de {term}…", + "Modified" : "Modificat", + "Today" : "Uèi", + "People" : "Gent", + "Load more results" : "Cargar mai de resultats", "Forgot password?" : "Senhal oblidat ?", "Back" : "Retorn", "Login form is disabled." : "Lo formulari de connexion es desactivat.", @@ -145,7 +148,6 @@ OC.L10N.register( "Search for {name} only" : "Cercar sonque {name}", "Start typing to search" : "Començatz de picar per recercar", "Loading more results …" : "Cargament de mai de resultats…", - "Load more results" : "Cargar mai de resultats", "Search" : "Recercar", "No results for {query}" : "Cap de resultat per {query}", "An error occurred while searching for {type}" : "Una error s’es producha en cercant {type}", @@ -317,6 +319,7 @@ OC.L10N.register( "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Vòstra installacion a pas cap de de region telefonica per defaut. Aquò es requerit per validar lo numèros de telefòn als paramètres de perfil sens còdi país. Per autorizar los numèros sens còdi país, apondètz « default_phone_region » amb lo {linkstart}còdi ISO 3166-1↗{linkend} correspondent de la region dins vòstre fichièr config.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vòstre PHP prend pas en carga FreeType, çò que causa lo rompement dels imatges de perfil e de l’interfàcia de paramètres.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Mancan d’unes modules PHP recomandats a aquesta instància. Per de melhoras performanças e una melhora compatibilitat es forçadament recomandat de los installar.", + "The PHP memory limit is below the recommended value of 512MB." : "La memòria limit PHP es jos la valor recomandada de 512 Mo.", "If it is not there ask your local administrator." : "S’es pas enlà, demandatz a vòstre administrator local.", "Press enter to start searching" : "Quichatz Entrada per aviar la recèrca", "Open settings menu" : "Dobrir lo menú de paramètres", @@ -328,7 +331,6 @@ OC.L10N.register( "No more subfolders in here" : "Cap de jos-dossièr aicí", "Name" : "Nom", "Size" : "Talha", - "Modified" : "Modificat", "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.", "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.", "\"/\" is not allowed inside a file name." : "« / » es pas permés dins un nom de fichièr.", diff --git a/core/l10n/oc.json b/core/l10n/oc.json index 90cf20c2b50..e1074912fba 100644 --- a/core/l10n/oc.json +++ b/core/l10n/oc.json @@ -67,7 +67,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Lo module php-imagick d’aquesta instància a pas cap de compatibilitat SVG. Es forçadament recomandant de l’installar per una melhora compatibilitat.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite es actualament utilizat per la basa de donadas. Per d’installacions mai grandas vos recomandam de bascular sus un autre gestionari de basa de donadas.", "This is particularly recommended when using the desktop client for file synchronisation." : "Es particularament recomandat pendent l’utilizacion de client burèu per la sincronizacion de fichièrs.", - "The PHP memory limit is below the recommended value of 512MB." : "La memòria limit PHP es jos la valor recomandada de 512 Mo.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "D’unes repertòris d’aplicacion son la proprietat d’un utilizaire diferent qu’aquel del servidor web. Aquò pòt èsser lo cas se las aplicacions foguèron installadas manualament. Verificatz las permission dels repertòris d’aplicacion seguents :", "Error occurred while checking server setup" : "Error producha pendent la verificacion de l’installacion del servidor", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L’entèsta HTTP « {header} » es pas definida a « {expected} ». Aquò es un risc de seguretat o de vida privada, es recomandat d’ajustar aqueste paramètre en consequéncia.", @@ -134,6 +133,10 @@ "Install the Contacts app" : "Installar l’aplicacion Contactes", "Loading your contacts …" : "Cargaments dels contactes…", "Looking for {term} …" : "Recèrca de {term}…", + "Modified" : "Modificat", + "Today" : "Uèi", + "People" : "Gent", + "Load more results" : "Cargar mai de resultats", "Forgot password?" : "Senhal oblidat ?", "Back" : "Retorn", "Login form is disabled." : "Lo formulari de connexion es desactivat.", @@ -143,7 +146,6 @@ "Search for {name} only" : "Cercar sonque {name}", "Start typing to search" : "Començatz de picar per recercar", "Loading more results …" : "Cargament de mai de resultats…", - "Load more results" : "Cargar mai de resultats", "Search" : "Recercar", "No results for {query}" : "Cap de resultat per {query}", "An error occurred while searching for {type}" : "Una error s’es producha en cercant {type}", @@ -315,6 +317,7 @@ "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "Vòstra installacion a pas cap de de region telefonica per defaut. Aquò es requerit per validar lo numèros de telefòn als paramètres de perfil sens còdi país. Per autorizar los numèros sens còdi país, apondètz « default_phone_region » amb lo {linkstart}còdi ISO 3166-1↗{linkend} correspondent de la region dins vòstre fichièr config.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vòstre PHP prend pas en carga FreeType, çò que causa lo rompement dels imatges de perfil e de l’interfàcia de paramètres.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Mancan d’unes modules PHP recomandats a aquesta instància. Per de melhoras performanças e una melhora compatibilitat es forçadament recomandat de los installar.", + "The PHP memory limit is below the recommended value of 512MB." : "La memòria limit PHP es jos la valor recomandada de 512 Mo.", "If it is not there ask your local administrator." : "S’es pas enlà, demandatz a vòstre administrator local.", "Press enter to start searching" : "Quichatz Entrada per aviar la recèrca", "Open settings menu" : "Dobrir lo menú de paramètres", @@ -326,7 +329,6 @@ "No more subfolders in here" : "Cap de jos-dossièr aicí", "Name" : "Nom", "Size" : "Talha", - "Modified" : "Modificat", "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.", "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.", "\"/\" is not allowed inside a file name." : "« / » es pas permés dins un nom de fichièr.", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index f592a7ac7f6..9fafdca6c05 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -42,7 +42,9 @@ OC.L10N.register( "Necessary language model provider is not available" : "Niezbędny dostawca modelu językowego nie jest dostępny", "Task not found" : "Nie znaleziono zadania", "Internal error" : "Błąd wewnętrzny", - "No translation provider available" : "Brak dostępnych dostawców tłumaczenia", + "No text to image provider is available" : "Brak dostępnego dostawcy tekstu na obraz", + "Image not found" : "Nie znaleziono obrazu", + "No translation provider available" : "Brak dostępnego dostawcy tłumaczenia", "Could not detect language" : "Nie można wykryć języka", "Unable to translate" : "Nie można przetłumaczyć", "Nextcloud Server" : "Serwer Nextcloud", @@ -100,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite jest aktualnie używany jako baza danych. Dla większych instalacji zalecamy przełączenie na inną bazę danych.", "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane podczas używania klienta desktopowego do synchronizacji plików.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Aby przeprowadzić migrację do innej bazy danych, użyj narzędzia wiersza poleceń: \"occ db:convert-type\" lub zapoznaj się z {linkstart}dokumentacją ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit pamięci PHP jest poniżej zalecanej wartości 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Niektóre katalogi aplikacji są własnością innego użytkownika tego serwera WWW. Może to wystąpić, gdy aplikacje zostały zainstalowane ręcznie. Sprawdź uprawnienia poniższych katalogów:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL jest używany jako baza danych, ale nie obsługuje znaków 4-bajtowych. Aby korzystać ze znaków 4-bajtowych w nazwach plików lub komentarzach (np. emoji), zaleca się włączenie tej obsługi w MySQL. Więcej informacji na ten temat przeczytasz na {linkstart}stronie dokumentacji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ta aplikacja używa magazynu obiektów opartych na S3, jako magazynu podstawowego. Przesyłane pliki są tymczasowo przechowywane na serwerze, dlatego zalecane jest posiadanie 50 GB wolnego miejsca w katalogu tymczasowym PHP. Sprawdź logi, aby uzyskać pełne informacje o ścieżce i dostępnym miejscu. Aby to umożliwić, należy zmienić katalog tymczasowy w pliku php.ini lub udostępnić więcej miejsca dla tej ścieżki.", @@ -132,13 +133,20 @@ OC.L10N.register( "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizacja nie powiodła się. Zgłoś ten problem do <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">społeczności Nextcloud</a>.", "Continue to {productName}" : "Przejdź do {productName}", "_The update was successful. Redirecting you to {productName} in %n second._::_The update was successful. Redirecting you to {productName} in %n seconds._" : ["Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekundę.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekundy.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekund.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekund."], + "Applications menu" : "Menu aplikacji", "More apps" : "Więcej aplikacji", "Currently open" : "Obecnie otwarte", "_{count} notification_::_{count} notifications_" : ["{count} powiadomienie","{count} powiadomienia","{count} powiadomień","{count} powiadomień"], + "Date range filter" : "Filtr zakresu dat", + "Pick start date" : "Wybierz datę rozpoczęcia", + "Pick end date" : "Wybierz datę zakończenia", + "Apply range" : "Zastosuj zakres", "Log in" : "Zaloguj", "Logging in …" : "Logowanie…", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", + "Temporary error" : "Błąd tymczasowy", + "Please try again." : "Spróbuj ponownie.", "An internal error occurred." : "Wystąpił błąd wewnętrzny.", "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", "Account name or email" : "Nazwa konta lub e-mail", @@ -186,6 +194,24 @@ OC.L10N.register( "Install the Contacts app" : "Zainstaluj aplikację \"Kontakty\"", "Loading your contacts …" : "Wczytywanie kontaktów…", "Looking for {term} …" : "Szukam {term}…", + "Global search" : "Wyszukiwanie globalne", + "Search apps, files, tags, messages" : "Szukaj aplikacji, plików, tagów, wiadomości", + "Apps and Settings" : "Aplikacje i ustawienia", + "Modified" : "Zmodyfikowany", + "Today" : "Dzisiaj", + "Last 7 days" : "Ostatnie 7 dni", + "Last 30 days" : "Ostatnie 30 dni", + "This year" : "W tym roku", + "Last year" : "W zeszłym roku", + "Custom date range" : "Własny zakres dat", + "Search people" : "Szukaj ludzi", + "Not found" : "Nie znaleziono", + "People" : "Osoby", + "Load more results" : "Wczytaj więcej wyników", + "Search in" : "Szukaj w", + "Start typing in search" : "Zacznij pisać w wyszukiwarce", + "No matching results" : "Brak pasujących wyników", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Pomiędzy ${this.dateFilter.startFrom.toLocaleDateString()} a ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Zapomniałeś hasła?", "Back to login form" : "Powrót do formularza logowania", "Back" : "Wstecz", @@ -201,7 +227,6 @@ OC.L10N.register( "Search for {name} only" : "Wyszukaj tylko {name}", "Start typing to search" : "Zacznij pisać, aby wyszukać", "Loading more results …" : "Wczytuję więcej wyników…", - "Load more results" : "Wczytaj więcej wyników", "Search" : "Szukaj", "No results for {query}" : "Brak wyników dla {query}", "Press Enter to start searching" : "Naciśnij Enter, aby rozpocząć wyszukiwanie", @@ -213,6 +238,7 @@ OC.L10N.register( "Supported versions" : "Obsługiwane wersje", "{name} version {version} and above" : "{name} wersja {version} i nowsze", "Settings menu" : "Menu ustawień", + "Avatar of {displayName}" : "Awatar {displayName}", "Search {types} …" : "Wyszukaj {types}…", "No" : "Nie", "Yes" : "Tak", @@ -398,6 +424,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Twoje PHP nie posiada wsparcia dla FreeType, co powoduje problemy ze zdjęciami profilowymi i interfejsem ustawień.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "W tej instancji brakuje niektórych zalecanych modułów PHP. W celu zwiększenia wydajności i lepszej kompatybilności zaleca się ich instalację.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud do poprawnego działania potrzebuje 64-bitowej. Zaktualizuj swój system operacyjny i PHP do wersji 64-bitowej! Więcej informacji na ten temat przeczytasz na {linkstart}stronie dokumentacji ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit pamięci PHP jest poniżej zalecanej wartości 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Wiadomość o zresetowaniu hasła została wysłana na adres e-mail tego konta. Jeśli go nie otrzymałeś, sprawdź katalogi spam/kosz lub poproś lokalnego administratora o pomoc.", "If it is not there ask your local administrator." : "Jeśli nie ma, skontaktuj się z lokalnym administratorem.", "Press enter to start searching" : "Naciśnij Enter, aby rozpocząć wyszukiwanie", @@ -410,7 +437,6 @@ OC.L10N.register( "No more subfolders in here" : "Brak podkatalogów", "Name" : "Nazwa", "Size" : "Rozmiar", - "Modified" : "Zmodyfikowany", "\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.", "File name cannot be empty." : "Nazwa pliku nie może być pusta.", "\"/\" is not allowed inside a file name." : "Znak \"/\" jest niedozwolony w nazwie pliku.", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index dd3454a37b7..878a6c41a88 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -40,7 +40,9 @@ "Necessary language model provider is not available" : "Niezbędny dostawca modelu językowego nie jest dostępny", "Task not found" : "Nie znaleziono zadania", "Internal error" : "Błąd wewnętrzny", - "No translation provider available" : "Brak dostępnych dostawców tłumaczenia", + "No text to image provider is available" : "Brak dostępnego dostawcy tekstu na obraz", + "Image not found" : "Nie znaleziono obrazu", + "No translation provider available" : "Brak dostępnego dostawcy tłumaczenia", "Could not detect language" : "Nie można wykryć języka", "Unable to translate" : "Nie można przetłumaczyć", "Nextcloud Server" : "Serwer Nextcloud", @@ -98,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite jest aktualnie używany jako baza danych. Dla większych instalacji zalecamy przełączenie na inną bazę danych.", "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane podczas używania klienta desktopowego do synchronizacji plików.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Aby przeprowadzić migrację do innej bazy danych, użyj narzędzia wiersza poleceń: \"occ db:convert-type\" lub zapoznaj się z {linkstart}dokumentacją ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit pamięci PHP jest poniżej zalecanej wartości 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Niektóre katalogi aplikacji są własnością innego użytkownika tego serwera WWW. Może to wystąpić, gdy aplikacje zostały zainstalowane ręcznie. Sprawdź uprawnienia poniższych katalogów:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL jest używany jako baza danych, ale nie obsługuje znaków 4-bajtowych. Aby korzystać ze znaków 4-bajtowych w nazwach plików lub komentarzach (np. emoji), zaleca się włączenie tej obsługi w MySQL. Więcej informacji na ten temat przeczytasz na {linkstart}stronie dokumentacji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ta aplikacja używa magazynu obiektów opartych na S3, jako magazynu podstawowego. Przesyłane pliki są tymczasowo przechowywane na serwerze, dlatego zalecane jest posiadanie 50 GB wolnego miejsca w katalogu tymczasowym PHP. Sprawdź logi, aby uzyskać pełne informacje o ścieżce i dostępnym miejscu. Aby to umożliwić, należy zmienić katalog tymczasowy w pliku php.ini lub udostępnić więcej miejsca dla tej ścieżki.", @@ -130,13 +131,20 @@ "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizacja nie powiodła się. Zgłoś ten problem do <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">społeczności Nextcloud</a>.", "Continue to {productName}" : "Przejdź do {productName}", "_The update was successful. Redirecting you to {productName} in %n second._::_The update was successful. Redirecting you to {productName} in %n seconds._" : ["Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekundę.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekundy.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekund.","Aktualizacja przebiegła pomyślnie. Przekierowanie do {productName} za %n sekund."], + "Applications menu" : "Menu aplikacji", "More apps" : "Więcej aplikacji", "Currently open" : "Obecnie otwarte", "_{count} notification_::_{count} notifications_" : ["{count} powiadomienie","{count} powiadomienia","{count} powiadomień","{count} powiadomień"], + "Date range filter" : "Filtr zakresu dat", + "Pick start date" : "Wybierz datę rozpoczęcia", + "Pick end date" : "Wybierz datę zakończenia", + "Apply range" : "Zastosuj zakres", "Log in" : "Zaloguj", "Logging in …" : "Logowanie…", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", + "Temporary error" : "Błąd tymczasowy", + "Please try again." : "Spróbuj ponownie.", "An internal error occurred." : "Wystąpił błąd wewnętrzny.", "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", "Account name or email" : "Nazwa konta lub e-mail", @@ -184,6 +192,24 @@ "Install the Contacts app" : "Zainstaluj aplikację \"Kontakty\"", "Loading your contacts …" : "Wczytywanie kontaktów…", "Looking for {term} …" : "Szukam {term}…", + "Global search" : "Wyszukiwanie globalne", + "Search apps, files, tags, messages" : "Szukaj aplikacji, plików, tagów, wiadomości", + "Apps and Settings" : "Aplikacje i ustawienia", + "Modified" : "Zmodyfikowany", + "Today" : "Dzisiaj", + "Last 7 days" : "Ostatnie 7 dni", + "Last 30 days" : "Ostatnie 30 dni", + "This year" : "W tym roku", + "Last year" : "W zeszłym roku", + "Custom date range" : "Własny zakres dat", + "Search people" : "Szukaj ludzi", + "Not found" : "Nie znaleziono", + "People" : "Osoby", + "Load more results" : "Wczytaj więcej wyników", + "Search in" : "Szukaj w", + "Start typing in search" : "Zacznij pisać w wyszukiwarce", + "No matching results" : "Brak pasujących wyników", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Pomiędzy ${this.dateFilter.startFrom.toLocaleDateString()} a ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Zapomniałeś hasła?", "Back to login form" : "Powrót do formularza logowania", "Back" : "Wstecz", @@ -199,7 +225,6 @@ "Search for {name} only" : "Wyszukaj tylko {name}", "Start typing to search" : "Zacznij pisać, aby wyszukać", "Loading more results …" : "Wczytuję więcej wyników…", - "Load more results" : "Wczytaj więcej wyników", "Search" : "Szukaj", "No results for {query}" : "Brak wyników dla {query}", "Press Enter to start searching" : "Naciśnij Enter, aby rozpocząć wyszukiwanie", @@ -211,6 +236,7 @@ "Supported versions" : "Obsługiwane wersje", "{name} version {version} and above" : "{name} wersja {version} i nowsze", "Settings menu" : "Menu ustawień", + "Avatar of {displayName}" : "Awatar {displayName}", "Search {types} …" : "Wyszukaj {types}…", "No" : "Nie", "Yes" : "Tak", @@ -396,6 +422,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Twoje PHP nie posiada wsparcia dla FreeType, co powoduje problemy ze zdjęciami profilowymi i interfejsem ustawień.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "W tej instancji brakuje niektórych zalecanych modułów PHP. W celu zwiększenia wydajności i lepszej kompatybilności zaleca się ich instalację.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud do poprawnego działania potrzebuje 64-bitowej. Zaktualizuj swój system operacyjny i PHP do wersji 64-bitowej! Więcej informacji na ten temat przeczytasz na {linkstart}stronie dokumentacji ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit pamięci PHP jest poniżej zalecanej wartości 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Wiadomość o zresetowaniu hasła została wysłana na adres e-mail tego konta. Jeśli go nie otrzymałeś, sprawdź katalogi spam/kosz lub poproś lokalnego administratora o pomoc.", "If it is not there ask your local administrator." : "Jeśli nie ma, skontaktuj się z lokalnym administratorem.", "Press enter to start searching" : "Naciśnij Enter, aby rozpocząć wyszukiwanie", @@ -408,7 +435,6 @@ "No more subfolders in here" : "Brak podkatalogów", "Name" : "Nazwa", "Size" : "Rozmiar", - "Modified" : "Zmodyfikowany", "\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.", "File name cannot be empty." : "Nazwa pliku nie może być pusta.", "\"/\" is not allowed inside a file name." : "Znak \"/\" jest niedozwolony w nazwie pliku.", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index ad84217e8cd..935b20e1c00 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Atualmente, o SQLite está sendo usado como plataforma de banco de dados. Para instalações maiores, recomendamos que migre para outra.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isso é recomendado ao usar o cliente da área de trabalho para sincronização de arquivos.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar para outro banco de dados, use a ferramenta de linha de comando: \"occ db:convert-type\" ou consulte a {linkstart}documentação ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Alguns diretórios de aplicativos são de propriedade de um usuário diferente do servidor da web. Esse pode ser o caso se os aplicativos tiverem sido instalados manualmente. Verifique as permissões dos seguintes diretórios de aplicativos:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL é usado como banco de dados, mas não oferece suporte a caracteres de 4 bytes. Para ser capaz de lidar com caracteres de 4 bytes (como emojis) sem problemas em nomes de arquivos ou comentários, por exemplo, é recomendado habilitar o suporte de 4 bytes no MySQL. Para mais detalhes, leia {linkstart}a página de documentação sobre isso ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Este Nextcloud usa um armazenamento de objeto baseado no S3 como armazenamento primário. Os arquivos enviados são armazenados temporariamente no servidor e portanto é recomendado ter 50 GB de espaço livre disponível no diretório temp do PHP. Verifique os logs para obter detalhes completos sobre o caminho e o espaço disponível. Para melhorar isso, altere o diretório temporário no arquivo php.ini ou disponibilize mais espaço nesse caminho.", @@ -189,6 +188,11 @@ OC.L10N.register( "Install the Contacts app" : "Instalar o aplicativo Contatos", "Loading your contacts …" : "Carregando seus contatos...", "Looking for {term} …" : "Procurando por {term}…", + "Modified" : "Modificado", + "Last year" : "Último ano", + "Not found" : "Não encontrado", + "People" : "Pessoas", + "Load more results" : "Carregar mais resultados", "Forgot password?" : "Esqueceu a senha?", "Back to login form" : "Voltar ao formulário de login", "Back" : "Voltar", @@ -204,7 +208,6 @@ OC.L10N.register( "Search for {name} only" : "Pesquisar somente por {nome}", "Start typing to search" : "Comece a digitar para pesquisar", "Loading more results …" : "Carregando mais resultados...", - "Load more results" : "Carregar mais resultados", "Search" : "Pesquisar", "No results for {query}" : "Sem resultados para {query}", "Press Enter to start searching" : "Pressione Enter para iniciar a pesquisa", @@ -402,6 +405,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Seu PHP não possui suporte à FreeType, resultando em problemas nas fotos de perfil e interface de configurações.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Nesta instalação estão faltando alguns módulos PHP recomendados. Para melhor desempenho e compatibilidade, é altamente recomendável instalá-los.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que você está executando uma versão PHP de 32 bits. Nextcloud precisa de 64 bits para funcionar bem. Por favor, atualize seu sistema operacional e PHP para 64 bits! Para mais detalhes, leia {linkstart}a página de documentação sobre este ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Uma mensagem de redefinição de senha foi enviada para o endereço de e-mail desta conta. Se você não o receber, verifique suas pastas de spam/lixo ou peça ajuda ao administrador local. ", "If it is not there ask your local administrator." : "Se não estiver lá, pergunte ao administrador.", "Press enter to start searching" : "Pressione enter para iniciar a busca", @@ -414,7 +418,6 @@ OC.L10N.register( "No more subfolders in here" : "Não há mais subpastas aqui", "Name" : "Nome", "Size" : "Tamanho", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.", "File name cannot be empty." : "O nome do arquivo não pode estar em branco.", "\"/\" is not allowed inside a file name." : "\"/\" não é permitido no nome do arquivo.", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index f12e3f91e27..bf5ac4812dd 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Atualmente, o SQLite está sendo usado como plataforma de banco de dados. Para instalações maiores, recomendamos que migre para outra.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isso é recomendado ao usar o cliente da área de trabalho para sincronização de arquivos.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Para migrar para outro banco de dados, use a ferramenta de linha de comando: \"occ db:convert-type\" ou consulte a {linkstart}documentação ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Alguns diretórios de aplicativos são de propriedade de um usuário diferente do servidor da web. Esse pode ser o caso se os aplicativos tiverem sido instalados manualmente. Verifique as permissões dos seguintes diretórios de aplicativos:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL é usado como banco de dados, mas não oferece suporte a caracteres de 4 bytes. Para ser capaz de lidar com caracteres de 4 bytes (como emojis) sem problemas em nomes de arquivos ou comentários, por exemplo, é recomendado habilitar o suporte de 4 bytes no MySQL. Para mais detalhes, leia {linkstart}a página de documentação sobre isso ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Este Nextcloud usa um armazenamento de objeto baseado no S3 como armazenamento primário. Os arquivos enviados são armazenados temporariamente no servidor e portanto é recomendado ter 50 GB de espaço livre disponível no diretório temp do PHP. Verifique os logs para obter detalhes completos sobre o caminho e o espaço disponível. Para melhorar isso, altere o diretório temporário no arquivo php.ini ou disponibilize mais espaço nesse caminho.", @@ -187,6 +186,11 @@ "Install the Contacts app" : "Instalar o aplicativo Contatos", "Loading your contacts …" : "Carregando seus contatos...", "Looking for {term} …" : "Procurando por {term}…", + "Modified" : "Modificado", + "Last year" : "Último ano", + "Not found" : "Não encontrado", + "People" : "Pessoas", + "Load more results" : "Carregar mais resultados", "Forgot password?" : "Esqueceu a senha?", "Back to login form" : "Voltar ao formulário de login", "Back" : "Voltar", @@ -202,7 +206,6 @@ "Search for {name} only" : "Pesquisar somente por {nome}", "Start typing to search" : "Comece a digitar para pesquisar", "Loading more results …" : "Carregando mais resultados...", - "Load more results" : "Carregar mais resultados", "Search" : "Pesquisar", "No results for {query}" : "Sem resultados para {query}", "Press Enter to start searching" : "Pressione Enter para iniciar a pesquisa", @@ -400,6 +403,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Seu PHP não possui suporte à FreeType, resultando em problemas nas fotos de perfil e interface de configurações.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Nesta instalação estão faltando alguns módulos PHP recomendados. Para melhor desempenho e compatibilidade, é altamente recomendável instalá-los.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Parece que você está executando uma versão PHP de 32 bits. Nextcloud precisa de 64 bits para funcionar bem. Por favor, atualize seu sistema operacional e PHP para 64 bits! Para mais detalhes, leia {linkstart}a página de documentação sobre este ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Uma mensagem de redefinição de senha foi enviada para o endereço de e-mail desta conta. Se você não o receber, verifique suas pastas de spam/lixo ou peça ajuda ao administrador local. ", "If it is not there ask your local administrator." : "Se não estiver lá, pergunte ao administrador.", "Press enter to start searching" : "Pressione enter para iniciar a busca", @@ -412,7 +416,6 @@ "No more subfolders in here" : "Não há mais subpastas aqui", "Name" : "Nome", "Size" : "Tamanho", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.", "File name cannot be empty." : "O nome do arquivo não pode estar em branco.", "\"/\" is not allowed inside a file name." : "\"/\" não é permitido no nome do arquivo.", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index ac9859c2980..70e039c9e91 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -75,7 +75,6 @@ OC.L10N.register( "Missing index \"{indexName}\" in table \"{tableName}\"." : "Índice \"{indexName}\" em falta na tabela \"{tableName}\".", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é atualmente utilizado como a base de dados de backend. Para instalações maiores recomendamos que mude para uma base de dados de backend diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isto é particularmente recomendado quando estiver a usar um cliente de desktop para sincronização de ficheiros.", - "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algumas diretorias de aplicações pertencem a um utilizador diferente do servidor web. Pode ser esse o caso se as aplicações foram instaladas manualmente. Verifique as permissões das seguintes diretorias de aplicações:", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "O cabeçalho HTTP \"{cabeçalho}\" não está definido como \"{esperado}\". Isto é um potencial risco de segurança ou privacidade, pelo que recomendamos que ajuste esta opção em conformidade.", @@ -136,6 +135,11 @@ OC.L10N.register( "Install the Contacts app" : "Instalar a app Contactos", "Loading your contacts …" : "A carregar os seus contactos", "Looking for {term} …" : "Procurando por {term} …", + "Modified" : "Modificado", + "Today" : "Hoje", + "Last year" : "Ultimo ano", + "Not found" : "Não foi encontrado", + "Load more results" : "Mostrar mais resultados...", "Forgot password?" : "Senha esquecida?", "Back" : "Anterior", "Edit Profile" : "Editar perfil", @@ -145,7 +149,6 @@ OC.L10N.register( "Search for {name} only" : "Pesquisar apenas por {name}", "Start typing to search" : "Digitar para pesquisar", "Loading more results …" : "A carregar mais resultados...", - "Load more results" : "Mostrar mais resultados...", "Search" : "Procurar", "No results for {query}" : "Nenhum resultado para {query}", "An error occurred while searching for {type}" : "Ocorreu um erro enquanto pesquisava por {type}", @@ -311,6 +314,7 @@ OC.L10N.register( "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "A instalação não tem uma região de telefone predefinida. A região predefinida é necessária para validar números de telefone sem código de país nas configurações do perfil . Para permitir números sem um código de país, adicione \"default_phone_region\" com o respectivo {linkstart}código ISO 3166-1 ↗{linkend} da região ao seu ficheiro de configuração.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP não suporta FreeType, podendo resultar em fotos de perfil e interface de definições corrompidos. ", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Esta instância tem em falta alguns módulos PHP recomendados. Para melhor desempenho e melhor compatibilidade, é altamente recomendável instalá-los.", + "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Foi enviada uma mensagem de reposição da sua palavra-passe para o endereço de email desta conta. Se não a receber, verifique as pastas de spam/lixo ou entre em contacto com o administrador local para ajuda.", "If it is not there ask your local administrator." : "Se não estiver aí pergunte ao seu administrador local.", "Press enter to start searching" : "Pressione ENTER para iniciar a pesquisa", @@ -322,7 +326,6 @@ OC.L10N.register( "No more subfolders in here" : "Atualmente não existem subpastas aqui", "Name" : "Nome", "Size" : "Tamanho", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de ficheiro inválido.", "File name cannot be empty." : "O nome do ficheiro não pode estar em branco.", "\"/\" is not allowed inside a file name." : "\"/\" não é permitido dentro de um nome de um ficheiro.", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index fc5ca5c3e16..8850ce3b404 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -73,7 +73,6 @@ "Missing index \"{indexName}\" in table \"{tableName}\"." : "Índice \"{indexName}\" em falta na tabela \"{tableName}\".", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é atualmente utilizado como a base de dados de backend. Para instalações maiores recomendamos que mude para uma base de dados de backend diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Isto é particularmente recomendado quando estiver a usar um cliente de desktop para sincronização de ficheiros.", - "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Algumas diretorias de aplicações pertencem a um utilizador diferente do servidor web. Pode ser esse o caso se as aplicações foram instaladas manualmente. Verifique as permissões das seguintes diretorias de aplicações:", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "O cabeçalho HTTP \"{cabeçalho}\" não está definido como \"{esperado}\". Isto é um potencial risco de segurança ou privacidade, pelo que recomendamos que ajuste esta opção em conformidade.", @@ -134,6 +133,11 @@ "Install the Contacts app" : "Instalar a app Contactos", "Loading your contacts …" : "A carregar os seus contactos", "Looking for {term} …" : "Procurando por {term} …", + "Modified" : "Modificado", + "Today" : "Hoje", + "Last year" : "Ultimo ano", + "Not found" : "Não foi encontrado", + "Load more results" : "Mostrar mais resultados...", "Forgot password?" : "Senha esquecida?", "Back" : "Anterior", "Edit Profile" : "Editar perfil", @@ -143,7 +147,6 @@ "Search for {name} only" : "Pesquisar apenas por {name}", "Start typing to search" : "Digitar para pesquisar", "Loading more results …" : "A carregar mais resultados...", - "Load more results" : "Mostrar mais resultados...", "Search" : "Procurar", "No results for {query}" : "Nenhum resultado para {query}", "An error occurred while searching for {type}" : "Ocorreu um erro enquanto pesquisava por {type}", @@ -309,6 +312,7 @@ "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "A instalação não tem uma região de telefone predefinida. A região predefinida é necessária para validar números de telefone sem código de país nas configurações do perfil . Para permitir números sem um código de país, adicione \"default_phone_region\" com o respectivo {linkstart}código ISO 3166-1 ↗{linkend} da região ao seu ficheiro de configuração.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "O seu PHP não suporta FreeType, podendo resultar em fotos de perfil e interface de definições corrompidos. ", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Esta instância tem em falta alguns módulos PHP recomendados. Para melhor desempenho e melhor compatibilidade, é altamente recomendável instalá-los.", + "The PHP memory limit is below the recommended value of 512MB." : "O limite de memória do PHP está abaixo do valor recomendado de 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Foi enviada uma mensagem de reposição da sua palavra-passe para o endereço de email desta conta. Se não a receber, verifique as pastas de spam/lixo ou entre em contacto com o administrador local para ajuda.", "If it is not there ask your local administrator." : "Se não estiver aí pergunte ao seu administrador local.", "Press enter to start searching" : "Pressione ENTER para iniciar a pesquisa", @@ -320,7 +324,6 @@ "No more subfolders in here" : "Atualmente não existem subpastas aqui", "Name" : "Nome", "Size" : "Tamanho", - "Modified" : "Modificado", "\"{name}\" is an invalid file name." : "\"{name}\" é um nome de ficheiro inválido.", "File name cannot be empty." : "O nome do ficheiro não pode estar em branco.", "\"/\" is not allowed inside a file name." : "\"/\" não é permitido dentro de um nome de um ficheiro.", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index ef6872bf938..d9d303099ae 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -78,7 +78,6 @@ OC.L10N.register( "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's {linkstart}documentation page ↗{linkend}. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Serverul dvs. web nu este configurat corespunzător pentru a rezolva \"{url}\". Cel mai probabil, acest lucru este legat de o configurație a serverului web care nu a fost actualizată pentru a furniza direct acest folder. Vă rugăm să comparați configurația dvs. cu regulile de rescriere livrate în \".htaccess\" pentru Apache sau cu cea furnizată în documentația pentru Nginx la pagina de documentare {linkstart}↗{linkend}. În cazul Nginx, liniile care încep cu \"location ~\" sunt cele care au nevoie de o actualizare.", "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our {linkstart}documentation ↗{linkend}." : "Serverul dvs. web nu este configurat corespunzător pentru a furniza fișiere .woff2. Aceasta este de obicei o problemă cu configurația Nginx. Pentru Nextcloud 15 este nevoie de o ajustare pentru a furniza și fișierele .woff2. Comparați configurația Nginx cu configurația recomandată în documentația noastră {linkstart} ↗{linkend}.", "Missing index \"{indexName}\" in table \"{tableName}\"." : "Lipsește indexul \"{indexName}\" in tabela \"{tableName}\".", - "The PHP memory limit is below the recommended value of 512MB." : "Limita memoriei PHP este sub valoarea recomandată de 512MB.", "Error occurred while checking server setup" : "A apărut o eroare la verificarea configurației serverului", "unknown text" : "text necunoscut", "Hello world!" : "Hello world!", @@ -119,10 +118,12 @@ OC.L10N.register( "Install the Contacts app" : "Instalează aplicația Contacte", "Loading your contacts …" : "Se încarcă contactele ...", "Looking for {term} …" : "Se caută {term} …", + "Modified" : "Modificat", + "Today" : "Azi", + "Load more results" : "Încarcă mai multe rezultate", "Forgot password?" : "Ai uitat parola?", "Back" : "Înapoi", "Reset search" : "Resetează căutarea", - "Load more results" : "Încarcă mai multe rezultate", "Search" : "Căutare", "Settings menu" : "Meniul Setări", "No" : "Nu", @@ -255,6 +256,7 @@ OC.L10N.register( "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza dumneavoastră de date nu rulează cu nivelul de izolare a tranzacției \"READ COMMITTED\". Acest lucru poate cauza probleme atunci când mai multe acțiuni sunt executate în paralel.", "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Modulul PHP \"fileinfo\" lipsește. Se recomandă cu tărie activarea acestui modul pentru a obține cele mai bune rezultate cu detectarea tipurilor MIME.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Blocarea fișierului tranzacțional este dezactivată, aceasta poate duce la probleme. Adăugați \"filelocking.enabled\" în config.php pentru a evita aceste probleme. Vedeți {linkstart}linkend{linkend} pentru mai multe informații.", + "The PHP memory limit is below the recommended value of 512MB." : "Limita memoriei PHP este sub valoarea recomandată de 512MB.", "Settings" : "Setări", "Show all contacts …" : "Arată toate contactele ...", "No files in here" : "Nu există fișiere aici", @@ -262,7 +264,6 @@ OC.L10N.register( "No more subfolders in here" : "Nu mai sunt subdirectoare aici", "Name" : "Nume", "Size" : "Mărime", - "Modified" : "Modificat", "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", "File name cannot be empty." : "Numele fișierului nu poate fi gol.", "\"/\" is not allowed inside a file name." : "\"/\" nu este permis în denumirea fișierului.", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 5928b363b13..2011fa78a97 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -76,7 +76,6 @@ "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's {linkstart}documentation page ↗{linkend}. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Serverul dvs. web nu este configurat corespunzător pentru a rezolva \"{url}\". Cel mai probabil, acest lucru este legat de o configurație a serverului web care nu a fost actualizată pentru a furniza direct acest folder. Vă rugăm să comparați configurația dvs. cu regulile de rescriere livrate în \".htaccess\" pentru Apache sau cu cea furnizată în documentația pentru Nginx la pagina de documentare {linkstart}↗{linkend}. În cazul Nginx, liniile care încep cu \"location ~\" sunt cele care au nevoie de o actualizare.", "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our {linkstart}documentation ↗{linkend}." : "Serverul dvs. web nu este configurat corespunzător pentru a furniza fișiere .woff2. Aceasta este de obicei o problemă cu configurația Nginx. Pentru Nextcloud 15 este nevoie de o ajustare pentru a furniza și fișierele .woff2. Comparați configurația Nginx cu configurația recomandată în documentația noastră {linkstart} ↗{linkend}.", "Missing index \"{indexName}\" in table \"{tableName}\"." : "Lipsește indexul \"{indexName}\" in tabela \"{tableName}\".", - "The PHP memory limit is below the recommended value of 512MB." : "Limita memoriei PHP este sub valoarea recomandată de 512MB.", "Error occurred while checking server setup" : "A apărut o eroare la verificarea configurației serverului", "unknown text" : "text necunoscut", "Hello world!" : "Hello world!", @@ -117,10 +116,12 @@ "Install the Contacts app" : "Instalează aplicația Contacte", "Loading your contacts …" : "Se încarcă contactele ...", "Looking for {term} …" : "Se caută {term} …", + "Modified" : "Modificat", + "Today" : "Azi", + "Load more results" : "Încarcă mai multe rezultate", "Forgot password?" : "Ai uitat parola?", "Back" : "Înapoi", "Reset search" : "Resetează căutarea", - "Load more results" : "Încarcă mai multe rezultate", "Search" : "Căutare", "Settings menu" : "Meniul Setări", "No" : "Nu", @@ -253,6 +254,7 @@ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza dumneavoastră de date nu rulează cu nivelul de izolare a tranzacției \"READ COMMITTED\". Acest lucru poate cauza probleme atunci când mai multe acțiuni sunt executate în paralel.", "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Modulul PHP \"fileinfo\" lipsește. Se recomandă cu tărie activarea acestui modul pentru a obține cele mai bune rezultate cu detectarea tipurilor MIME.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "Blocarea fișierului tranzacțional este dezactivată, aceasta poate duce la probleme. Adăugați \"filelocking.enabled\" în config.php pentru a evita aceste probleme. Vedeți {linkstart}linkend{linkend} pentru mai multe informații.", + "The PHP memory limit is below the recommended value of 512MB." : "Limita memoriei PHP este sub valoarea recomandată de 512MB.", "Settings" : "Setări", "Show all contacts …" : "Arată toate contactele ...", "No files in here" : "Nu există fișiere aici", @@ -260,7 +262,6 @@ "No more subfolders in here" : "Nu mai sunt subdirectoare aici", "Name" : "Nume", "Size" : "Mărime", - "Modified" : "Modificat", "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", "File name cannot be empty." : "Numele fișierului nu poate fi gol.", "\"/\" is not allowed inside a file name." : "\"/\" nu este permis în denumirea fișierului.", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 067886e0802..969a2535665 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -100,7 +100,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В настоящее время в качестве механизма БД используется SQLite. Для более крупных развёртываний рекомендуется перейти к использованию других баз данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Такой переход рекомендован и при использовании приложений-клиентов для синхронизации файлов.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Для перехода на другую базу данных используйте команду: «occ db:convert-type» или обратитесь к {linkstart}документации ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Владельцем некоторых каталогов не является учётная запись, под которой исполняется процесс web-сервера. Как правило это случается при установке вручную. Проверьте права доступа к следующим каталогам приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы. Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к {linkstart}документации ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Этот экземпляр использует хранилище объектов на основе S3 в качестве основного хранилища. Загруженные файлы временно хранятся на сервере, поэтому рекомендуется иметь 50 ГБ свободного места во временном каталоге PHP. Проверьте журналы для получения полной информации о пути и доступном пространстве. Чтобы улучшить это, измените временный каталог в php.ini или выделите больше места по этому пути.", @@ -186,6 +185,11 @@ OC.L10N.register( "Install the Contacts app" : "Установить приложение Контакты", "Loading your contacts …" : "Загрузка контактов…", "Looking for {term} …" : "Поиск {term}…", + "Modified" : "Последнее изменение:", + "Last year" : "Последний год", + "Not found" : "Не найдено", + "People" : "Люди", + "Load more results" : "Загрузить дополнительные результаты", "Forgot password?" : "Забыли пароль?", "Back to login form" : "Вернуться к форме входа", "Back" : "Назад", @@ -201,7 +205,6 @@ OC.L10N.register( "Search for {name} only" : "Искать только для «{name}»", "Start typing to search" : "Начините вводить символы для поиска", "Loading more results …" : "Загрузка дополнительных результатов…", - "Load more results" : "Загрузить дополнительные результаты", "Search" : "Найти", "No results for {query}" : "По запросу «{query}» ничего не найдено", "Press Enter to start searching" : "Нажмите Enter, чтобы начать поиск", @@ -398,6 +401,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В системе не установлены рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить эти модули.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Похоже что вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста обновите вашу операционную систему и PHP до 64-битных версий. Для дополнительной информации {linkstart}обратитесь к документации.{linkend}", + "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Письмо с инструкциями по сбросу пароля отправлено на адрес электронной почты этой учётной записи. Если это письмо не будет получено, проверьте папку «Спам» или сообщите об этом администратору системы.", "If it is not there ask your local administrator." : "Если письмо не будет получено, сообщите об этом администратору системы.", "Press enter to start searching" : "Нажмите Enter для запуска поиска", @@ -410,7 +414,6 @@ OC.L10N.register( "No more subfolders in here" : "Здесь нет вложенных папок", "Name" : "Имя", "Size" : "Размер", - "Modified" : "Последнее изменение:", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", "\"/\" is not allowed inside a file name." : "Символ «/» недопустим в имени файла.", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 4660b13ce3e..1c763bfd57e 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -98,7 +98,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В настоящее время в качестве механизма БД используется SQLite. Для более крупных развёртываний рекомендуется перейти к использованию других баз данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Такой переход рекомендован и при использовании приложений-клиентов для синхронизации файлов.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Для перехода на другую базу данных используйте команду: «occ db:convert-type» или обратитесь к {linkstart}документации ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Владельцем некоторых каталогов не является учётная запись, под которой исполняется процесс web-сервера. Как правило это случается при установке вручную. Проверьте права доступа к следующим каталогам приложения:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы. Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к {linkstart}документации ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Этот экземпляр использует хранилище объектов на основе S3 в качестве основного хранилища. Загруженные файлы временно хранятся на сервере, поэтому рекомендуется иметь 50 ГБ свободного места во временном каталоге PHP. Проверьте журналы для получения полной информации о пути и доступном пространстве. Чтобы улучшить это, измените временный каталог в php.ini или выделите больше места по этому пути.", @@ -184,6 +183,11 @@ "Install the Contacts app" : "Установить приложение Контакты", "Loading your contacts …" : "Загрузка контактов…", "Looking for {term} …" : "Поиск {term}…", + "Modified" : "Последнее изменение:", + "Last year" : "Последний год", + "Not found" : "Не найдено", + "People" : "Люди", + "Load more results" : "Загрузить дополнительные результаты", "Forgot password?" : "Забыли пароль?", "Back to login form" : "Вернуться к форме входа", "Back" : "Назад", @@ -199,7 +203,6 @@ "Search for {name} only" : "Искать только для «{name}»", "Start typing to search" : "Начините вводить символы для поиска", "Loading more results …" : "Загрузка дополнительных результатов…", - "Load more results" : "Загрузить дополнительные результаты", "Search" : "Найти", "No results for {query}" : "По запросу «{query}» ничего не найдено", "Press Enter to start searching" : "Нажмите Enter, чтобы начать поиск", @@ -396,6 +399,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Установленная версия PHP не поддерживает библиотеку FreeType, что приводит к неверному отображению изображений профиля и интерфейса настроек.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "В системе не установлены рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить эти модули.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Похоже что вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста обновите вашу операционную систему и PHP до 64-битных версий. Для дополнительной информации {linkstart}обратитесь к документации.{linkend}", + "The PHP memory limit is below the recommended value of 512MB." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Письмо с инструкциями по сбросу пароля отправлено на адрес электронной почты этой учётной записи. Если это письмо не будет получено, проверьте папку «Спам» или сообщите об этом администратору системы.", "If it is not there ask your local administrator." : "Если письмо не будет получено, сообщите об этом администратору системы.", "Press enter to start searching" : "Нажмите Enter для запуска поиска", @@ -408,7 +412,6 @@ "No more subfolders in here" : "Здесь нет вложенных папок", "Name" : "Имя", "Size" : "Размер", - "Modified" : "Последнее изменение:", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", "\"/\" is not allowed inside a file name." : "Символ «/» недопустим в имени файла.", diff --git a/core/l10n/sc.js b/core/l10n/sc.js index 66a31f9ee80..ace2eff33cb 100644 --- a/core/l10n/sc.js +++ b/core/l10n/sc.js @@ -79,7 +79,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Su mòdulu php-imagick in custa istàntzia no tenet suportu SVG. Pro megiorare sa compatibilidade est cussigiadu meda a ddu installare.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ses impreende SQLite comente base de datos de palas. Pro installatziones prus mannas ti cussigiamos de cambiare a un'àtera base de datos de palas.", "This is particularly recommended when using the desktop client for file synchronisation." : "Est cussigiadu prus che totu cando impreas su cliente de s'iscrivania pro sa sincronizatzione de is archìvios.", - "The PHP memory limit is below the recommended value of 512MB." : "Su lìmite de sa memòria PHP est suta de su balore cussigiadu de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Ddoe sunt cartella de aplicatzione de propiedade de utentes diversos dae su serbidore de internet. Podet èssere su casu de aplicatziones installadas a manu. Càstia is permissos relativos a is cartellas de aplicatziones in fatu:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL est impreadu comente base de datos ma no suportat is caràteres in 4-byte. Pro pòdere manigiare is caràteres in 4-byte (comente emojis) chena problemas pro esèmpiu in nùmenedearchìviu o in commentos, est cussugiadu ativare su suportu pro 4-byte in MySQL. Pro àteros detàllios leghe {linkstart}sa pàgina de sa documentatzione subre de custu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Custa istàntzia impreat un'ogetu de base S3 comente memòria primària. Is archìvios carrigados sunt allogados in manera temporale in su serbidore, tando est cussigiadu tènnere 50 GB de logu disponìbile in sa cartella temp de PHP. Càstia is registros pro totu is detàllios subra de su caminu e su logu disponìbile. Pro ddu megiorare càmbia sa cartella temporale in php.ini o faghe prus logu in custu caminu.", @@ -152,6 +151,12 @@ OC.L10N.register( "Install the Contacts app" : "Installa s'aplicatzione de is cuntatos", "Loading your contacts …" : "Carrighende is cuntatos...", "Looking for {term} …" : "Chirchende {term} …", + "Modified" : "Modificadu", + "Today" : "Oe ", + "Last year" : "S'annu passadu", + "Not found" : "No agatadu", + "People" : "Gente", + "Load more results" : "Càrriga àteros resurtados", "Forgot password?" : "Crae iscaressida?", "Back" : "A coa", "Login form is disabled." : "Su mòdulu de atzessu est disativadu.", @@ -159,7 +164,6 @@ OC.L10N.register( "Search for {name} only" : "Chirca pro {name} ebbia", "Start typing to search" : "Cumintza a iscrìere pro chircare", "Loading more results …" : "Carrighende àteros resurtados ...", - "Load more results" : "Càrriga àteros resurtados", "Search" : "Chirca", "No results for {query}" : "Perunu resurtadu pro {query}", "An error occurred while searching for {type}" : "B'at àpidu un'errore in sa chirca de {type}", @@ -332,6 +336,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Immoe ses impreende PHP {versione}. Agiorna sa versione tua de PHP pro isfrutare {linkstart}is novidades de esecutzione e seguresa frunidas dae su PHP Group ↗{linkend} cando sa distributzione tua ddas at a suportare.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Su PHP tuo no tenet su suportu FreeType, e custu càusat dannos in is immàgines de profilu e in s'interfache de is impostatziones.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "In custa istàntzia mancat unos cantos mòdulos PHP cussigiados. Pro megiorare s'esecutzione e sa compatibilidade est cussigiadu meda a ddus installare.", + "The PHP memory limit is below the recommended value of 512MB." : "Su lìmite de sa memòria PHP est suta de su balore cussigiadu de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Est istadu imbiadu unu messàgiu pro su risprìstinu de sa crae a s'indiritzu de posta eletrònica de custu contu. Si non ddu retzis, controlla in is cartellas de s'àliga o pide agiudu a s'amministratzione.", "If it is not there ask your local administrator." : "Si no est in cue, dimanda a s'amministratzione locale tua.", "Settings" : "Cunfiguratziones", @@ -341,7 +346,6 @@ OC.L10N.register( "No more subfolders in here" : "Non ddoe at àteras suta-cartellas", "Name" : "Nùmene", "Size" : "Mannària", - "Modified" : "Modificadu", "\"{name}\" is an invalid file name." : "\"{name}\" est unu nùmene de archìviu non vàlidu.", "File name cannot be empty." : "Su nùmene de s'archìviu non podet èssere bòidu.", "\"/\" is not allowed inside a file name." : "\"/\" no est permìtidu in unu nùmene de archìviu.", diff --git a/core/l10n/sc.json b/core/l10n/sc.json index 802157b641d..ca62709a2c5 100644 --- a/core/l10n/sc.json +++ b/core/l10n/sc.json @@ -77,7 +77,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Su mòdulu php-imagick in custa istàntzia no tenet suportu SVG. Pro megiorare sa compatibilidade est cussigiadu meda a ddu installare.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ses impreende SQLite comente base de datos de palas. Pro installatziones prus mannas ti cussigiamos de cambiare a un'àtera base de datos de palas.", "This is particularly recommended when using the desktop client for file synchronisation." : "Est cussigiadu prus che totu cando impreas su cliente de s'iscrivania pro sa sincronizatzione de is archìvios.", - "The PHP memory limit is below the recommended value of 512MB." : "Su lìmite de sa memòria PHP est suta de su balore cussigiadu de 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Ddoe sunt cartella de aplicatzione de propiedade de utentes diversos dae su serbidore de internet. Podet èssere su casu de aplicatziones installadas a manu. Càstia is permissos relativos a is cartellas de aplicatziones in fatu:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL est impreadu comente base de datos ma no suportat is caràteres in 4-byte. Pro pòdere manigiare is caràteres in 4-byte (comente emojis) chena problemas pro esèmpiu in nùmenedearchìviu o in commentos, est cussugiadu ativare su suportu pro 4-byte in MySQL. Pro àteros detàllios leghe {linkstart}sa pàgina de sa documentatzione subre de custu ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Custa istàntzia impreat un'ogetu de base S3 comente memòria primària. Is archìvios carrigados sunt allogados in manera temporale in su serbidore, tando est cussigiadu tènnere 50 GB de logu disponìbile in sa cartella temp de PHP. Càstia is registros pro totu is detàllios subra de su caminu e su logu disponìbile. Pro ddu megiorare càmbia sa cartella temporale in php.ini o faghe prus logu in custu caminu.", @@ -150,6 +149,12 @@ "Install the Contacts app" : "Installa s'aplicatzione de is cuntatos", "Loading your contacts …" : "Carrighende is cuntatos...", "Looking for {term} …" : "Chirchende {term} …", + "Modified" : "Modificadu", + "Today" : "Oe ", + "Last year" : "S'annu passadu", + "Not found" : "No agatadu", + "People" : "Gente", + "Load more results" : "Càrriga àteros resurtados", "Forgot password?" : "Crae iscaressida?", "Back" : "A coa", "Login form is disabled." : "Su mòdulu de atzessu est disativadu.", @@ -157,7 +162,6 @@ "Search for {name} only" : "Chirca pro {name} ebbia", "Start typing to search" : "Cumintza a iscrìere pro chircare", "Loading more results …" : "Carrighende àteros resurtados ...", - "Load more results" : "Càrriga àteros resurtados", "Search" : "Chirca", "No results for {query}" : "Perunu resurtadu pro {query}", "An error occurred while searching for {type}" : "B'at àpidu un'errore in sa chirca de {type}", @@ -330,6 +334,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Immoe ses impreende PHP {versione}. Agiorna sa versione tua de PHP pro isfrutare {linkstart}is novidades de esecutzione e seguresa frunidas dae su PHP Group ↗{linkend} cando sa distributzione tua ddas at a suportare.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Su PHP tuo no tenet su suportu FreeType, e custu càusat dannos in is immàgines de profilu e in s'interfache de is impostatziones.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "In custa istàntzia mancat unos cantos mòdulos PHP cussigiados. Pro megiorare s'esecutzione e sa compatibilidade est cussigiadu meda a ddus installare.", + "The PHP memory limit is below the recommended value of 512MB." : "Su lìmite de sa memòria PHP est suta de su balore cussigiadu de 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Est istadu imbiadu unu messàgiu pro su risprìstinu de sa crae a s'indiritzu de posta eletrònica de custu contu. Si non ddu retzis, controlla in is cartellas de s'àliga o pide agiudu a s'amministratzione.", "If it is not there ask your local administrator." : "Si no est in cue, dimanda a s'amministratzione locale tua.", "Settings" : "Cunfiguratziones", @@ -339,7 +344,6 @@ "No more subfolders in here" : "Non ddoe at àteras suta-cartellas", "Name" : "Nùmene", "Size" : "Mannària", - "Modified" : "Modificadu", "\"{name}\" is an invalid file name." : "\"{name}\" est unu nùmene de archìviu non vàlidu.", "File name cannot be empty." : "Su nùmene de s'archìviu non podet èssere bòidu.", "\"/\" is not allowed inside a file name." : "\"/\" no est permìtidu in unu nùmene de archìviu.", diff --git a/core/l10n/sk.js b/core/l10n/sk.js index d4a47d7e195..83de32e5b51 100644 --- a/core/l10n/sk.js +++ b/core/l10n/sk.js @@ -97,7 +97,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ako databáza je použitá SQLite. Pre väčšie inštalácie odporúčame prejsť na inú databázu.", "This is particularly recommended when using the desktop client for file synchronisation." : "Toto odporúčame najmä pri používaní klientských aplikácií na synchronizáciu s desktopom.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Na migráciu do inej databázy použite nástroj príkazového riadku: 'occ db:convert-type' alebo si pozrite {linkstart}dokumentáciu ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Niektoré aplikačné priečinky majú iného vlastníka ako web server. Toto môže nastať ak aplikácie boli inštalované manuálne. Skontrolujte práva nasledovných priečinkov nasledovných aplikácií:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Ako databáza sa používa MySQL, ale nepodporuje 4-bajtové znaky. Aby bolo možné také znaky (ako napr. emoji) bez problémov spracovať, odporúčame povoliť v MySQL podporu pre 4-bajtové znaky. Viac o tejto problematike nájdete v {linkstart}dokumentácii ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Táto inštancia používa ako hlavné úložisko objektové úložisko, ktoré je založené na protokole S3. Nahrávané súbory sú však dočasne ukladané priamo na server a preto odporúčame mať v PHP adresári pre dočasné súbory aspoň 50 GB voľného priestoru. Podrobnosti o umiestnení a priestore, ktorý je k dispozícii nájdete v logoch. Zmenu adresára pre dočasné súbory môžete uskutočniť v php.ini alebo zvýšte kapacitu súčasného umiestnenia.", @@ -180,6 +179,15 @@ OC.L10N.register( "Install the Contacts app" : "Inštalovať aplikáciu Kontakty", "Loading your contacts …" : "Načítavam vaše kontakty...", "Looking for {term} …" : "Hľadá sa výraz {term}...", + "Global search" : "Globálne hľadanie", + "Search apps, files, tags, messages" : "Hľadať aplikácie, súbory, štítky a správy", + "Modified" : "Upravené", + "Today" : "Dnes", + "Last year" : "Minulý rok", + "Search people" : "Hľadať ľudí", + "Not found" : "Nenájdené", + "People" : "Ľudia", + "Load more results" : "Načítať viac výsledkov", "Forgot password?" : "Zabudli ste heslo?", "Back to login form" : "Späť na prihlásenie", "Back" : "Späť", @@ -194,7 +202,6 @@ OC.L10N.register( "Search for {name} only" : "Hľadať iba {name}", "Start typing to search" : "Začnite písať pre vyhľadanie", "Loading more results …" : "Načítava sa viac výsledkov …", - "Load more results" : "Načítať viac výsledkov", "Search" : "Hľadať", "No results for {query}" : "Žiadne výsledky pre {query}", "Press Enter to start searching" : "Stlačte Enter pre spustenie hľadania", @@ -390,6 +397,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vaše PHP nemá podporu FreeType, čo bude mať za následok poškodenie profilových obrázkov a rozhrania nastavení.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "V tejto inštancii chýbajú niektoré odporúčané moduly PHP.\nAk chcete zlepšiť výkon a kompatibilitu, dôrazne odporúčame, aby ste ich nainštalovali.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Zdá sa, že používate 32-bitovú verziu PHP. Nextcloud potrebuje 64-bitovú verziu, aby fungoval dobre. Inovujte svoj OS a PHP na 64-bitové! Ďalšie podrobnosti nájdete na {linkstart}stránke dokumentácie↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Správa s informáciami na zmenu hesla bola zaslaná na email tohoto účtu. Ak nebol doručený, skontrolujte si priečinok nevyžiadanej pošty a kôš, alebo požiadajte svojho administrátora o pomoc.", "If it is not there ask your local administrator." : "Ak tam nie je, pýtajte sa vášho lokálneho administrátora.", "Press enter to start searching" : "Stlačte enter pre vyhľadávanie", @@ -401,7 +409,6 @@ OC.L10N.register( "No more subfolders in here" : "Už tu nie sú žiadne ďalšie podpriečinky", "Name" : "Názov", "Size" : "Veľkosť", - "Modified" : "Upravené", "\"{name}\" is an invalid file name." : "\"{name}\" je neplatné meno súboru.", "File name cannot be empty." : "Meno súboru nemôže byť prázdne", "\"/\" is not allowed inside a file name." : "Znak \"/\" nie je povolený v názve súboru.", diff --git a/core/l10n/sk.json b/core/l10n/sk.json index a19e7583173..9fff2a081f6 100644 --- a/core/l10n/sk.json +++ b/core/l10n/sk.json @@ -95,7 +95,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ako databáza je použitá SQLite. Pre väčšie inštalácie odporúčame prejsť na inú databázu.", "This is particularly recommended when using the desktop client for file synchronisation." : "Toto odporúčame najmä pri používaní klientských aplikácií na synchronizáciu s desktopom.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Na migráciu do inej databázy použite nástroj príkazového riadku: 'occ db:convert-type' alebo si pozrite {linkstart}dokumentáciu ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Niektoré aplikačné priečinky majú iného vlastníka ako web server. Toto môže nastať ak aplikácie boli inštalované manuálne. Skontrolujte práva nasledovných priečinkov nasledovných aplikácií:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Ako databáza sa používa MySQL, ale nepodporuje 4-bajtové znaky. Aby bolo možné také znaky (ako napr. emoji) bez problémov spracovať, odporúčame povoliť v MySQL podporu pre 4-bajtové znaky. Viac o tejto problematike nájdete v {linkstart}dokumentácii ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Táto inštancia používa ako hlavné úložisko objektové úložisko, ktoré je založené na protokole S3. Nahrávané súbory sú však dočasne ukladané priamo na server a preto odporúčame mať v PHP adresári pre dočasné súbory aspoň 50 GB voľného priestoru. Podrobnosti o umiestnení a priestore, ktorý je k dispozícii nájdete v logoch. Zmenu adresára pre dočasné súbory môžete uskutočniť v php.ini alebo zvýšte kapacitu súčasného umiestnenia.", @@ -178,6 +177,15 @@ "Install the Contacts app" : "Inštalovať aplikáciu Kontakty", "Loading your contacts …" : "Načítavam vaše kontakty...", "Looking for {term} …" : "Hľadá sa výraz {term}...", + "Global search" : "Globálne hľadanie", + "Search apps, files, tags, messages" : "Hľadať aplikácie, súbory, štítky a správy", + "Modified" : "Upravené", + "Today" : "Dnes", + "Last year" : "Minulý rok", + "Search people" : "Hľadať ľudí", + "Not found" : "Nenájdené", + "People" : "Ľudia", + "Load more results" : "Načítať viac výsledkov", "Forgot password?" : "Zabudli ste heslo?", "Back to login form" : "Späť na prihlásenie", "Back" : "Späť", @@ -192,7 +200,6 @@ "Search for {name} only" : "Hľadať iba {name}", "Start typing to search" : "Začnite písať pre vyhľadanie", "Loading more results …" : "Načítava sa viac výsledkov …", - "Load more results" : "Načítať viac výsledkov", "Search" : "Hľadať", "No results for {query}" : "Žiadne výsledky pre {query}", "Press Enter to start searching" : "Stlačte Enter pre spustenie hľadania", @@ -388,6 +395,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Vaše PHP nemá podporu FreeType, čo bude mať za následok poškodenie profilových obrázkov a rozhrania nastavení.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "V tejto inštancii chýbajú niektoré odporúčané moduly PHP.\nAk chcete zlepšiť výkon a kompatibilitu, dôrazne odporúčame, aby ste ich nainštalovali.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Zdá sa, že používate 32-bitovú verziu PHP. Nextcloud potrebuje 64-bitovú verziu, aby fungoval dobre. Inovujte svoj OS a PHP na 64-bitové! Ďalšie podrobnosti nájdete na {linkstart}stránke dokumentácie↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Správa s informáciami na zmenu hesla bola zaslaná na email tohoto účtu. Ak nebol doručený, skontrolujte si priečinok nevyžiadanej pošty a kôš, alebo požiadajte svojho administrátora o pomoc.", "If it is not there ask your local administrator." : "Ak tam nie je, pýtajte sa vášho lokálneho administrátora.", "Press enter to start searching" : "Stlačte enter pre vyhľadávanie", @@ -399,7 +407,6 @@ "No more subfolders in here" : "Už tu nie sú žiadne ďalšie podpriečinky", "Name" : "Názov", "Size" : "Veľkosť", - "Modified" : "Upravené", "\"{name}\" is an invalid file name." : "\"{name}\" je neplatné meno súboru.", "File name cannot be empty." : "Meno súboru nemôže byť prázdne", "\"/\" is not allowed inside a file name." : "Znak \"/\" nie je povolený v názve súboru.", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index 372e9dca1be..54c7f87ef15 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -96,7 +96,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Trenutno je uporabljena ozadnja podatkovna zbirka SQLite. Za obsežnejše sisteme je priporočljiv prehod na drugo vrsto zbirke.", "This is particularly recommended when using the desktop client for file synchronisation." : "Priporočilo ima še večjo težo, če se sistem krajevno usklajuje z namizjem prek odjemalca.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Za prehod sistema na drugo podatkovno zbirko, uporabite ukaz orodne vrstice: »occ db:convert-type«, več o tem pa je zapisano v {linkstart}dokumentaciji ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Omejitev pomnilnika PHP je pod priporočljivo vrednostjo 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Nekatere mape programov imajo lastništvo določeno na uporabnika, ki ni spletni strežniški uporabnik. To se lahko zgodi, če so programi nameščeni ročno. Preveriti je treba dovoljenja map:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Podatkovna zbirka MySQL je v uporabi, ni pa omogočena podpora za 4-bitne znake. Za uporabo teh znakov (kot so na primer grafične izrazne ikone) brez težav tudi v imenih datotek in opombah, je priporočljivo podporo omogočiti med nastavitvami MySQL. Več podrobnosti je zabeleženih v {linkstart}dokumentaciji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Program uporablja shrambo predmetov S3 kot osnovno shrambo. Naložene datoteke se začasno shranjujejo na strežniku, zato je priporočljivo omogočiti 50 GB začasnega pomnilnika PHP. Podrobnosti o poti in razpoložljivem prostoru so zapisane v dnevniku. Za izboljšanje delovanja je treba spremeniti podatke začasnega imenika v php.ini ali omogočiti več prostora na trenutno določenem mestu. ", @@ -182,6 +181,12 @@ OC.L10N.register( "Install the Contacts app" : "Namesti program Stiki", "Loading your contacts …" : "Poteka nalaganje stikov ...", "Looking for {term} …" : "Poteka iskanje {term} …", + "Modified" : "Spremenjeno", + "Today" : "enkrat danes", + "Last year" : "Zadnje leto", + "Not found" : "Predmeta ni mogoče najti", + "People" : "Osebe", + "Load more results" : "Naloži več zadetkov", "Forgot password?" : "Ali ste pozabili geslo?", "Back to login form" : "Nazaj na prijavni obrazec", "Back" : "Nazaj", @@ -197,7 +202,6 @@ OC.L10N.register( "Search for {name} only" : "Išči le za {name}", "Start typing to search" : "Začnite tipkati za iskanje", "Loading more results …" : "Poteka nalaganje več zadetkov ...", - "Load more results" : "Naloži več zadetkov", "Search" : "Poišči", "No results for {query}" : "Ni zadetkov za poizvedbo {query}", "Press Enter to start searching" : "Pritisnite vnosnico za začetek iskanja", @@ -391,6 +395,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Namestitev PHP je brez ustrezne podpore za FreeType, kar pogosto vpliva na težave s slikami profila in nastavitvami vmesnika.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Namestitev PHP ne vključuje nekaterih priporočenih modulov. Za izboljšanje delovanja in boljšo skladnost jih je zelo priporočljivo omogočiti.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Kaže, da uporabljate 32-bitno različico PHP. Oblak Nextcloud zahteva za optimalno delovanje 64-bitno različico, zato je operacijski sistem in PHP priporočljivo nadgraditi! Več podrobnosti je na na voljo na straneh {linkstart}dokumentacije{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Omejitev pomnilnika PHP je pod priporočljivo vrednostjo 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Sporočilo za ponastavitev gesla je bilo poslano na elektronski naslov računa. Če sporočila v kratkem ne prejmete, preverite mape neželene pošte ali pa za pomoč prosite krajevnega skrbnika sistema.", "If it is not there ask your local administrator." : "Če sporočila ni, stopite v stik s skrbnikom sistema.", "Press enter to start searching" : "Pritisnite vnosno tipko za začetek iskanja", @@ -403,7 +408,6 @@ OC.L10N.register( "No more subfolders in here" : "V mapi ni več podrejenih map", "Name" : "Ime", "Size" : "Velikost", - "Modified" : "Spremenjeno", "\"{name}\" is an invalid file name." : "Ime »{name}« ni veljavno ime datoteke.", "File name cannot be empty." : "Ime datoteke ne sme biti prazno polje.", "\"/\" is not allowed inside a file name." : "znak » / « v imenu datoteke ni dovoljen.", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index e4970ee7950..76480b0aba1 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -94,7 +94,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Trenutno je uporabljena ozadnja podatkovna zbirka SQLite. Za obsežnejše sisteme je priporočljiv prehod na drugo vrsto zbirke.", "This is particularly recommended when using the desktop client for file synchronisation." : "Priporočilo ima še večjo težo, če se sistem krajevno usklajuje z namizjem prek odjemalca.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Za prehod sistema na drugo podatkovno zbirko, uporabite ukaz orodne vrstice: »occ db:convert-type«, več o tem pa je zapisano v {linkstart}dokumentaciji ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Omejitev pomnilnika PHP je pod priporočljivo vrednostjo 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Nekatere mape programov imajo lastništvo določeno na uporabnika, ki ni spletni strežniški uporabnik. To se lahko zgodi, če so programi nameščeni ročno. Preveriti je treba dovoljenja map:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Podatkovna zbirka MySQL je v uporabi, ni pa omogočena podpora za 4-bitne znake. Za uporabo teh znakov (kot so na primer grafične izrazne ikone) brez težav tudi v imenih datotek in opombah, je priporočljivo podporo omogočiti med nastavitvami MySQL. Več podrobnosti je zabeleženih v {linkstart}dokumentaciji ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Program uporablja shrambo predmetov S3 kot osnovno shrambo. Naložene datoteke se začasno shranjujejo na strežniku, zato je priporočljivo omogočiti 50 GB začasnega pomnilnika PHP. Podrobnosti o poti in razpoložljivem prostoru so zapisane v dnevniku. Za izboljšanje delovanja je treba spremeniti podatke začasnega imenika v php.ini ali omogočiti več prostora na trenutno določenem mestu. ", @@ -180,6 +179,12 @@ "Install the Contacts app" : "Namesti program Stiki", "Loading your contacts …" : "Poteka nalaganje stikov ...", "Looking for {term} …" : "Poteka iskanje {term} …", + "Modified" : "Spremenjeno", + "Today" : "enkrat danes", + "Last year" : "Zadnje leto", + "Not found" : "Predmeta ni mogoče najti", + "People" : "Osebe", + "Load more results" : "Naloži več zadetkov", "Forgot password?" : "Ali ste pozabili geslo?", "Back to login form" : "Nazaj na prijavni obrazec", "Back" : "Nazaj", @@ -195,7 +200,6 @@ "Search for {name} only" : "Išči le za {name}", "Start typing to search" : "Začnite tipkati za iskanje", "Loading more results …" : "Poteka nalaganje več zadetkov ...", - "Load more results" : "Naloži več zadetkov", "Search" : "Poišči", "No results for {query}" : "Ni zadetkov za poizvedbo {query}", "Press Enter to start searching" : "Pritisnite vnosnico za začetek iskanja", @@ -389,6 +393,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Namestitev PHP je brez ustrezne podpore za FreeType, kar pogosto vpliva na težave s slikami profila in nastavitvami vmesnika.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Namestitev PHP ne vključuje nekaterih priporočenih modulov. Za izboljšanje delovanja in boljšo skladnost jih je zelo priporočljivo omogočiti.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Kaže, da uporabljate 32-bitno različico PHP. Oblak Nextcloud zahteva za optimalno delovanje 64-bitno različico, zato je operacijski sistem in PHP priporočljivo nadgraditi! Več podrobnosti je na na voljo na straneh {linkstart}dokumentacije{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Omejitev pomnilnika PHP je pod priporočljivo vrednostjo 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Sporočilo za ponastavitev gesla je bilo poslano na elektronski naslov računa. Če sporočila v kratkem ne prejmete, preverite mape neželene pošte ali pa za pomoč prosite krajevnega skrbnika sistema.", "If it is not there ask your local administrator." : "Če sporočila ni, stopite v stik s skrbnikom sistema.", "Press enter to start searching" : "Pritisnite vnosno tipko za začetek iskanja", @@ -401,7 +406,6 @@ "No more subfolders in here" : "V mapi ni več podrejenih map", "Name" : "Ime", "Size" : "Velikost", - "Modified" : "Spremenjeno", "\"{name}\" is an invalid file name." : "Ime »{name}« ni veljavno ime datoteke.", "File name cannot be empty." : "Ime datoteke ne sme biti prazno polje.", "\"/\" is not allowed inside a file name." : "znak » / « v imenu datoteke ni dovoljen.", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index 091be9c1e0f..bb7803cac25 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Тренутно се као база података користи SQLite. За веће инсталације, препоручујемо да промените базу података.", "This is particularly recommended when using the desktop client for file synchronisation." : "Ово се нарочито порепоручује ако се користи клијент програм у графичком окружењу за синхронизацију.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За прелазак на другу базу података, користите алат командне линије: „occ db:convert-type”, или погледајте {linkstart}документацију ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Меморијско ограничење за ПХП је испод препоручене вредности од 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Власник неких апликативних директоријума је корисник који није исти као и корисник по којим ради веб сервер. Ово је могуће ако су се апликације инсталирале ручно. Проверите привилегије над следећим апликативним директоријумима:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Као база података се користи MySQL, али не подржава 4-бајтне карактере. Препоручује се да укључите подршку за 4-бајтне карактере у MySQL да би се у именима фајлова и коментарима, на пример, без проблема обрадили 4-бајтни карактери (као што су емођи). За више детаља прочитајте {linkstart}страницу документације о овоме ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ова инстанца користи S3 базирано чување података за основно складиште. Отпремљени фајлови се привремено чувају на серверу и препоручује се да имате доступно бар 50 GB слободног простора у PHP привременом директоријуму. Погледајте дневник за више детаља око путања и слободном простору. Да бисте ово променили или побољшали, измените привремени директоријум у php.ini фајлу или направите више слободног места на тренутној путањи.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Још апликација", "Currently open" : "Тренутно отворена", "_{count} notification_::_{count} notifications_" : ["{count} обавештење","{count} обавештења","{count} обавештења"], + "Date range filter" : "Филтер опсега датума", + "Pick start date" : "Изаберите почетни датум", + "Pick end date" : "Изаберите крајњи датум", + "Apply range" : "Примени опсег", "Log in" : "Пријава", "Logging in …" : "Пријављивање …", "Server side authentication failed!" : "Потврда идентитета на серверу није успела!", "Please contact your administrator." : "Контактирајте вашег администратора.", + "Temporary error" : "Привремена грешка", + "Please try again." : "Молимо вас покушајте поново.", "An internal error occurred." : "Догодила се унутрашња грешка. ", "Please try again or contact your administrator." : "Покушајте поново или контактирајте вашег администратора.", "Account name or email" : "Име налога или е-адреса", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "Инсталирај апликацију Контакти", "Loading your contacts …" : "Учитавам контакте ...", "Looking for {term} …" : "Тражим {term} …", + "Global search" : "Глобална претрага", + "Search apps, files, tags, messages" : "Претражи апликације, фајлове, ознаке, поруке", + "Apps and Settings" : "Апликације и Подешавања", + "Modified" : "измењено", + "Today" : "Данас", + "Last 7 days" : "Последњих 7 дана", + "Last 30 days" : "Последњих 30 дана", + "This year" : "Ове године", + "Last year" : "Прошле године", + "Custom date range" : "Произвољни опсег датума", + "Search people" : "Претрага људи", + "Not found" : "Није нађено", + "People" : "Људи", + "Load more results" : "Учитај још резултата", + "Start typing in search" : "Почните да куцате у претрази", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Између ${this.dateFilter.startFrom.toLocaleDateString()} и ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Заборавили сте лозинку?", "Back to login form" : "Назад на формулар за пријаву", "Back" : "Назад", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "Тражи само за {name}", "Start typing to search" : "Почните да куцате да бисте претраживали", "Loading more results …" : "Учитавам још резултата…", - "Load more results" : "Учитај још резултата", "Search" : "Претражи", "No results for {query}" : "Нема резултата за упит {query}", "Press Enter to start searching" : "Притисните Ентер да започнете претрагу", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваша PHP инсталација нема подршку за FreeType. Ово ће довести до неисправних профилних слика и неисправног интерфејса за подешавања.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Овој инстанци недостају неки препоручени PHP модули. Препоручује се да их инсталирате због побољшања перформанси и за бољу компатибилност.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита! За више детаља прочитајте {linkstart}страницу документације која се бави овим проблемом ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Меморијско ограничење за ПХП је испод препоручене вредности од 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "На е-мејл адресу овог налога је послата порука за ресетовање лозинке. Ако је не примите, проверите фолдере за нежељену пошту/отпад или потражите помоћ од свог локалног администратора.", "If it is not there ask your local administrator." : "Ако није ни тамо, контактирајте вашег администратора.", "Press enter to start searching" : "Притисните ентер да започнете претрагу", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "Нема више потфасцикли", "Name" : "назив", "Size" : "величина", - "Modified" : "измењено", "\"{name}\" is an invalid file name." : "„{name}“ није исправан назив фајла.", "File name cannot be empty." : "Назив фајла не може бити празан.", "\"/\" is not allowed inside a file name." : "\"/\" није дозвољен каракетер у имену фајла.", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index c50b3a40aab..34005719e36 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Тренутно се као база података користи SQLite. За веће инсталације, препоручујемо да промените базу података.", "This is particularly recommended when using the desktop client for file synchronisation." : "Ово се нарочито порепоручује ако се користи клијент програм у графичком окружењу за синхронизацију.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "За прелазак на другу базу података, користите алат командне линије: „occ db:convert-type”, или погледајте {linkstart}документацију ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Меморијско ограничење за ПХП је испод препоручене вредности од 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Власник неких апликативних директоријума је корисник који није исти као и корисник по којим ради веб сервер. Ово је могуће ако су се апликације инсталирале ручно. Проверите привилегије над следећим апликативним директоријумима:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Као база података се користи MySQL, али не подржава 4-бајтне карактере. Препоручује се да укључите подршку за 4-бајтне карактере у MySQL да би се у именима фајлова и коментарима, на пример, без проблема обрадили 4-бајтни карактери (као што су емођи). За више детаља прочитајте {linkstart}страницу документације о овоме ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Ова инстанца користи S3 базирано чување података за основно складиште. Отпремљени фајлови се привремено чувају на серверу и препоручује се да имате доступно бар 50 GB слободног простора у PHP привременом директоријуму. Погледајте дневник за више детаља око путања и слободном простору. Да бисте ово променили или побољшали, измените привремени директоријум у php.ini фајлу или направите више слободног места на тренутној путањи.", @@ -136,10 +135,16 @@ "More apps" : "Још апликација", "Currently open" : "Тренутно отворена", "_{count} notification_::_{count} notifications_" : ["{count} обавештење","{count} обавештења","{count} обавештења"], + "Date range filter" : "Филтер опсега датума", + "Pick start date" : "Изаберите почетни датум", + "Pick end date" : "Изаберите крајњи датум", + "Apply range" : "Примени опсег", "Log in" : "Пријава", "Logging in …" : "Пријављивање …", "Server side authentication failed!" : "Потврда идентитета на серверу није успела!", "Please contact your administrator." : "Контактирајте вашег администратора.", + "Temporary error" : "Привремена грешка", + "Please try again." : "Молимо вас покушајте поново.", "An internal error occurred." : "Догодила се унутрашња грешка. ", "Please try again or contact your administrator." : "Покушајте поново или контактирајте вашег администратора.", "Account name or email" : "Име налога или е-адреса", @@ -187,6 +192,22 @@ "Install the Contacts app" : "Инсталирај апликацију Контакти", "Loading your contacts …" : "Учитавам контакте ...", "Looking for {term} …" : "Тражим {term} …", + "Global search" : "Глобална претрага", + "Search apps, files, tags, messages" : "Претражи апликације, фајлове, ознаке, поруке", + "Apps and Settings" : "Апликације и Подешавања", + "Modified" : "измењено", + "Today" : "Данас", + "Last 7 days" : "Последњих 7 дана", + "Last 30 days" : "Последњих 30 дана", + "This year" : "Ове године", + "Last year" : "Прошле године", + "Custom date range" : "Произвољни опсег датума", + "Search people" : "Претрага људи", + "Not found" : "Није нађено", + "People" : "Људи", + "Load more results" : "Учитај још резултата", + "Start typing in search" : "Почните да куцате у претрази", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Између ${this.dateFilter.startFrom.toLocaleDateString()} и ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Заборавили сте лозинку?", "Back to login form" : "Назад на формулар за пријаву", "Back" : "Назад", @@ -202,7 +223,6 @@ "Search for {name} only" : "Тражи само за {name}", "Start typing to search" : "Почните да куцате да бисте претраживали", "Loading more results …" : "Учитавам још резултата…", - "Load more results" : "Учитај још резултата", "Search" : "Претражи", "No results for {query}" : "Нема резултата за упит {query}", "Press Enter to start searching" : "Притисните Ентер да започнете претрагу", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваша PHP инсталација нема подршку за FreeType. Ово ће довести до неисправних профилних слика и неисправног интерфејса за подешавања.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Овој инстанци недостају неки препоручени PHP модули. Препоручује се да их инсталирате због побољшања перформанси и за бољу компатибилност.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита! За више детаља прочитајте {linkstart}страницу документације која се бави овим проблемом ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Меморијско ограничење за ПХП је испод препоручене вредности од 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "На е-мејл адресу овог налога је послата порука за ресетовање лозинке. Ако је не примите, проверите фолдере за нежељену пошту/отпад или потражите помоћ од свог локалног администратора.", "If it is not there ask your local administrator." : "Ако није ни тамо, контактирајте вашег администратора.", "Press enter to start searching" : "Притисните ентер да започнете претрагу", @@ -412,7 +433,6 @@ "No more subfolders in here" : "Нема више потфасцикли", "Name" : "назив", "Size" : "величина", - "Modified" : "измењено", "\"{name}\" is an invalid file name." : "„{name}“ није исправан назив фајла.", "File name cannot be empty." : "Назив фајла не може бити празан.", "\"/\" is not allowed inside a file name." : "\"/\" није дозвољен каракетер у имену фајла.", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 76823040aaf..2a361461206 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -96,7 +96,6 @@ OC.L10N.register( "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Modulen php-image har i det här fallet inget SVG-stöd. För bättre kompatibilitet rekommenderas det att installera det.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite används som databas. För större installationer så rekommenderar vi ett byte till en annan databasbackend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Detta rekommenderas särskilt när du använder skrivbordsklienten för filsynkronisering.", - "The PHP memory limit is below the recommended value of 512MB." : "Minnesgränsen för PHP är under det rekommenderade värdet på 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Vissa appkataloger ägs av en annan användare än den som äger webbservern. Detta kan vara fallet om appar har installerats manuellt. Kontrollera behörigheterna för följande appkataloger:", "The temporary directory of this instance points to an either non-existing or non-writable directory." : "Den tillfälliga katalogen för denna instans pekar på en icke-existerande eller icke-skrivbar katalog.", "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Den här instansen körs i felsökningsläge. Aktivera detta endast för lokal utveckling och inte i produktionsmiljöer.", @@ -124,10 +123,16 @@ OC.L10N.register( "More apps" : "Fler appar", "Currently open" : "För närvarande öppen", "_{count} notification_::_{count} notifications_" : ["{count} meddelande","{count} meddelanden"], + "Date range filter" : "Filter för datumintervall", + "Pick start date" : "Välj startdatum", + "Pick end date" : "Välj slutdatum", + "Apply range" : "Använd intervall", "Log in" : "Logga in", "Logging in …" : "Loggar in ...", "Server side authentication failed!" : "Servern misslyckades med autentisering!", "Please contact your administrator." : "Kontakta din administratör.", + "Temporary error" : "Tillfälligt fel", + "Please try again." : "Försök igen.", "An internal error occurred." : "Ett internt fel uppstod.", "Please try again or contact your administrator." : "Försök igen eller kontakta din administratör.", "Account name or email" : "Användarnamn eller e-post", @@ -173,6 +178,24 @@ OC.L10N.register( "Install the Contacts app" : "Installera appen Kontakter", "Loading your contacts …" : "Läser in dina kontakter ...", "Looking for {term} …" : "Letar efter {term} …", + "Global search" : "Global sökning", + "Search apps, files, tags, messages" : "Sök efter appar, filer, taggar, meddelanden", + "Apps and Settings" : "Appar och inställningar", + "Modified" : "Ändrad", + "Today" : "Idag", + "Last 7 days" : "Senaste 7 dagarna", + "Last 30 days" : "Senaste 30 dagarna", + "This year" : "Det här året", + "Last year" : "Förra året", + "Custom date range" : "Anpassat datumintervall", + "Search people" : "Sök efter användare", + "Not found" : "Hittades inte", + "People" : "Personer", + "Load more results" : "Hämta fler resultat", + "Search in" : "Sök i", + "Start typing in search" : "Börja skriva i sökningen", + "No matching results" : "Inga matchande resultat", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Mellan ${this.dateFilter.startFrom.toLocaleDateString()} och ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Glömt lösenordet?", "Back to login form" : "Tillbaka till inloggningsformulär", "Back" : "Tillbaka", @@ -188,7 +211,6 @@ OC.L10N.register( "Search for {name} only" : "Sök efter endast {name}", "Start typing to search" : "Börja skriva för att söka", "Loading more results …" : "Hämtar fler resultat ...", - "Load more results" : "Hämta fler resultat", "Search" : "Sök", "No results for {query}" : "Inga resultat för {query}", "Press Enter to start searching" : "Tryck på enter för att börja söka", @@ -385,6 +407,7 @@ OC.L10N.register( "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du kör för nuvarande PHP {version}. Uppgradera din PHP version för att dra nytta av {linkstart}prestanda och säkerhetsuppdateringar tillhandahållna av PHP Group ↗{linkend} så snart din servermiljö stödjer det.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP har inte FreeType-stöd, vilket resulterar i brott i profilbilder och inställningsgränssnittet.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instansen saknar några rekommenderade PHP-moduler. För förbättrad prestanda och kompatibilitet är det starkt rekommenderat att installera dem.", + "The PHP memory limit is below the recommended value of 512MB." : "Minnesgränsen för PHP är under det rekommenderade värdet på 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.", "If it is not there ask your local administrator." : "Om det inte finns, fråga din lokala administratör.", "Press enter to start searching" : "Tryck på enter för att börja söka", @@ -397,7 +420,6 @@ OC.L10N.register( "No more subfolders in here" : "Inga fler undermappar här", "Name" : "Namn", "Size" : "Storlek", - "Modified" : "Ändrad", "\"{name}\" is an invalid file name." : "\"{name}\" är ett ogiltigt filnamn.", "File name cannot be empty." : "Filnamnet kan inte vara tomt.", "\"/\" is not allowed inside a file name." : "\"/\" är inte tillåtet i ett filnamn.", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 91cb6098c95..34456e89352 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -94,7 +94,6 @@ "Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "Modulen php-image har i det här fallet inget SVG-stöd. För bättre kompatibilitet rekommenderas det att installera det.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite används som databas. För större installationer så rekommenderar vi ett byte till en annan databasbackend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Detta rekommenderas särskilt när du använder skrivbordsklienten för filsynkronisering.", - "The PHP memory limit is below the recommended value of 512MB." : "Minnesgränsen för PHP är under det rekommenderade värdet på 512 MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Vissa appkataloger ägs av en annan användare än den som äger webbservern. Detta kan vara fallet om appar har installerats manuellt. Kontrollera behörigheterna för följande appkataloger:", "The temporary directory of this instance points to an either non-existing or non-writable directory." : "Den tillfälliga katalogen för denna instans pekar på en icke-existerande eller icke-skrivbar katalog.", "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Den här instansen körs i felsökningsläge. Aktivera detta endast för lokal utveckling och inte i produktionsmiljöer.", @@ -122,10 +121,16 @@ "More apps" : "Fler appar", "Currently open" : "För närvarande öppen", "_{count} notification_::_{count} notifications_" : ["{count} meddelande","{count} meddelanden"], + "Date range filter" : "Filter för datumintervall", + "Pick start date" : "Välj startdatum", + "Pick end date" : "Välj slutdatum", + "Apply range" : "Använd intervall", "Log in" : "Logga in", "Logging in …" : "Loggar in ...", "Server side authentication failed!" : "Servern misslyckades med autentisering!", "Please contact your administrator." : "Kontakta din administratör.", + "Temporary error" : "Tillfälligt fel", + "Please try again." : "Försök igen.", "An internal error occurred." : "Ett internt fel uppstod.", "Please try again or contact your administrator." : "Försök igen eller kontakta din administratör.", "Account name or email" : "Användarnamn eller e-post", @@ -171,6 +176,24 @@ "Install the Contacts app" : "Installera appen Kontakter", "Loading your contacts …" : "Läser in dina kontakter ...", "Looking for {term} …" : "Letar efter {term} …", + "Global search" : "Global sökning", + "Search apps, files, tags, messages" : "Sök efter appar, filer, taggar, meddelanden", + "Apps and Settings" : "Appar och inställningar", + "Modified" : "Ändrad", + "Today" : "Idag", + "Last 7 days" : "Senaste 7 dagarna", + "Last 30 days" : "Senaste 30 dagarna", + "This year" : "Det här året", + "Last year" : "Förra året", + "Custom date range" : "Anpassat datumintervall", + "Search people" : "Sök efter användare", + "Not found" : "Hittades inte", + "People" : "Personer", + "Load more results" : "Hämta fler resultat", + "Search in" : "Sök i", + "Start typing in search" : "Börja skriva i sökningen", + "No matching results" : "Inga matchande resultat", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "Mellan ${this.dateFilter.startFrom.toLocaleDateString()} och ${this.dateFilter.endAt.toLocaleDateString()}", "Forgot password?" : "Glömt lösenordet?", "Back to login form" : "Tillbaka till inloggningsformulär", "Back" : "Tillbaka", @@ -186,7 +209,6 @@ "Search for {name} only" : "Sök efter endast {name}", "Start typing to search" : "Börja skriva för att söka", "Loading more results …" : "Hämtar fler resultat ...", - "Load more results" : "Hämta fler resultat", "Search" : "Sök", "No results for {query}" : "Inga resultat för {query}", "Press Enter to start searching" : "Tryck på enter för att börja söka", @@ -383,6 +405,7 @@ "You are currently running PHP {version}. Upgrade your PHP version to take advantage of {linkstart}performance and security updates provided by the PHP Group ↗{linkend} as soon as your distribution supports it." : "Du kör för nuvarande PHP {version}. Uppgradera din PHP version för att dra nytta av {linkstart}prestanda och säkerhetsuppdateringar tillhandahållna av PHP Group ↗{linkend} så snart din servermiljö stödjer det.", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Din PHP har inte FreeType-stöd, vilket resulterar i brott i profilbilder och inställningsgränssnittet.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Instansen saknar några rekommenderade PHP-moduler. För förbättrad prestanda och kompatibilitet är det starkt rekommenderat att installera dem.", + "The PHP memory limit is below the recommended value of 512MB." : "Minnesgränsen för PHP är under det rekommenderade värdet på 512 MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.", "If it is not there ask your local administrator." : "Om det inte finns, fråga din lokala administratör.", "Press enter to start searching" : "Tryck på enter för att börja söka", @@ -395,7 +418,6 @@ "No more subfolders in here" : "Inga fler undermappar här", "Name" : "Namn", "Size" : "Storlek", - "Modified" : "Ändrad", "\"{name}\" is an invalid file name." : "\"{name}\" är ett ogiltigt filnamn.", "File name cannot be empty." : "Filnamnet kan inte vara tomt.", "\"/\" is not allowed inside a file name." : "\"/\" är inte tillåtet i ett filnamn.", diff --git a/core/l10n/th.js b/core/l10n/th.js index b565f9e5f18..a35bda6d694 100644 --- a/core/l10n/th.js +++ b/core/l10n/th.js @@ -134,6 +134,10 @@ OC.L10N.register( "Install the Contacts app" : "ติดตั้งแอปรายชื่อ", "Loading your contacts …" : "กำลังโหลดรายชื่อผู้ติดต่อของคุณ …", "Looking for {term} …" : "กำลังค้นหา {term} …", + "Modified" : "แก้ไขเมื่อ", + "Today" : "วันนี้", + "People" : "ผู้คน", + "Load more results" : "โหลดผลลัพธ์เพิ่มเติม", "Forgot password?" : "ลืมรหัสผ่าน?", "Back" : "ย้อนกลับ", "Login form is disabled." : "ฟอร์มล็อกอินถูกปิดใช้งาน", @@ -146,7 +150,6 @@ OC.L10N.register( "Search for {name} only" : "ค้นหาเฉพาะ {name} เท่านั้น", "Start typing to search" : "เริ่มพิมพ์เพื่อค้นหา", "Loading more results …" : "กำลังโหลดผลลัพธ์เพิ่มเติม …", - "Load more results" : "โหลดผลลัพธ์เพิ่มเติม", "Search" : "ค้นหา", "No results for {query}" : "ไม่มีผลลัพธ์สำหรับ {query}", "An error occurred while searching for {type}" : "เกิดข้อผิดพลาดขณะค้นหา {type}", @@ -333,7 +336,6 @@ OC.L10N.register( "No more subfolders in here" : "ไม่พบโฟลเดอร์ย่อยเพิ่มเติมที่นี่", "Name" : "ชื่อ", "Size" : "ขนาด", - "Modified" : "แก้ไขเมื่อ", "\"{name}\" is an invalid file name." : "\"{name}\" เป็นชื่อไฟล์ที่ไม่ถูกต้อง", "File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้", "\"/\" is not allowed inside a file name." : "ไม่อนุญาตให้ใช้ \"/\" ในชื่อไฟล์", diff --git a/core/l10n/th.json b/core/l10n/th.json index 36bf3c00bef..462049ebde5 100644 --- a/core/l10n/th.json +++ b/core/l10n/th.json @@ -132,6 +132,10 @@ "Install the Contacts app" : "ติดตั้งแอปรายชื่อ", "Loading your contacts …" : "กำลังโหลดรายชื่อผู้ติดต่อของคุณ …", "Looking for {term} …" : "กำลังค้นหา {term} …", + "Modified" : "แก้ไขเมื่อ", + "Today" : "วันนี้", + "People" : "ผู้คน", + "Load more results" : "โหลดผลลัพธ์เพิ่มเติม", "Forgot password?" : "ลืมรหัสผ่าน?", "Back" : "ย้อนกลับ", "Login form is disabled." : "ฟอร์มล็อกอินถูกปิดใช้งาน", @@ -144,7 +148,6 @@ "Search for {name} only" : "ค้นหาเฉพาะ {name} เท่านั้น", "Start typing to search" : "เริ่มพิมพ์เพื่อค้นหา", "Loading more results …" : "กำลังโหลดผลลัพธ์เพิ่มเติม …", - "Load more results" : "โหลดผลลัพธ์เพิ่มเติม", "Search" : "ค้นหา", "No results for {query}" : "ไม่มีผลลัพธ์สำหรับ {query}", "An error occurred while searching for {type}" : "เกิดข้อผิดพลาดขณะค้นหา {type}", @@ -331,7 +334,6 @@ "No more subfolders in here" : "ไม่พบโฟลเดอร์ย่อยเพิ่มเติมที่นี่", "Name" : "ชื่อ", "Size" : "ขนาด", - "Modified" : "แก้ไขเมื่อ", "\"{name}\" is an invalid file name." : "\"{name}\" เป็นชื่อไฟล์ที่ไม่ถูกต้อง", "File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้", "\"/\" is not allowed inside a file name." : "ไม่อนุญาตให้ใช้ \"/\" ในชื่อไฟล์", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 13c25fd3926..491249ff69f 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Şu anda veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneriyoruz.", "This is particularly recommended when using the desktop client for file synchronisation." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\" ya da {linkstart}belgeler ↗{linkend} bölümüne bakın.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP bellek sınırı önerilen 512 MB değerinden küçük.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Bazı uygulama klasörlerinin sahipliği site sunucusunun kullandığından başka bir kullanıcıya ait. Bu durum, uygulamalar el ile kurulduğunda ortaya çıkabilir. Şu uygulama klasörlerinin izinlerini denetleyin:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Veri tabanı olarak MySQL kullanılır ancak 4 bayt uzunluğundaki karakterleri desteklemez. 4 bayt uzunluğundaki karaktelerin (emjo simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir. Ayrıntılı bilgi almak için {linkstart}belgeler ↗{linkend} bölümüne bakabilirsiniz.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposu kullanıyor. Yüklenen dosyalar geçici olarak sunucuya kaydedildiğinden PHP geçici klasöründe 50 GB boş alan bulunması önerilir. Klasör yolu ve kullanılabilecek alan hakkındaki ayrıntılı bilgi almak için günlüklere bakabilirsiniz. Bu durumu düzeltmek için php.ini içindeki geçici klasör yolunu değiştirin ya da kullanılan geçici klasörde daha fazla yer açın.", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "Diğer uygulamalar", "Currently open" : "Şu anda açık", "_{count} notification_::_{count} notifications_" : ["{count} bildirim","{count} bildirim"], + "Date range filter" : "Tarih aralığı süzgeci", + "Pick start date" : "Başlangıç tarihini seçin", + "Pick end date" : "Bitiş tarihini seçin", + "Apply range" : "Aralığı uygula", "Log in" : "Oturum aç", "Logging in …" : "Oturum açılıyor …", "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!", "Please contact your administrator." : "Lütfen BT yöneticiniz ile görüşün.", + "Temporary error" : "Geçici sorun", + "Please try again." : "Lütfen yeniden deneyin.", "An internal error occurred." : "İçeride bir sorun çıktı.", "Please try again or contact your administrator." : "Lütfen yeniden deneyin ya da BT yöneticinizle görüşün.", "Account name or email" : "Hesap adı ya da e-posta adresi", @@ -189,6 +194,22 @@ OC.L10N.register( "Install the Contacts app" : "Kişiler uygulamasını kur", "Loading your contacts …" : "Kişileriniz yükleniyor …", "Looking for {term} …" : "{term} ifadesi aranıyor …", + "Global search" : "Genel arama", + "Search apps, files, tags, messages" : "Uygulama, dosya, etiket, ileti ara", + "Apps and Settings" : "Uygulamalar ve ayarlar", + "Modified" : "Değiştirilme", + "Today" : "Bugün", + "Last 7 days" : "Önceki 7 gün", + "Last 30 days" : "Önceki 30 gün", + "This year" : "Bu yıl", + "Last year" : "Önceki yıl", + "Custom date range" : "Özel tarih aralığı", + "Search people" : "Kişi ara", + "Not found" : "Bulunamadı", + "People" : "Kişiler", + "Load more results" : "Diğer sonuçları yükle", + "Start typing in search" : "Aramak için yazmaya başlayın", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "${this.dateFilter.startFrom.toLocaleDateString()} ile ${this.dateFilter.endAt.toLocaleDateString()} arasında", "Forgot password?" : "Parolamı unuttum", "Back to login form" : "Oturum açma formuna dön", "Back" : "Geri", @@ -204,7 +225,6 @@ OC.L10N.register( "Search for {name} only" : "Yalnızca {name} için ara", "Start typing to search" : "Aramak için yazmaya başlayın", "Loading more results …" : "Diğer sonuçlar yükleniyor…", - "Load more results" : "Diğer sonuçları yükle", "Search" : "Arama", "No results for {query}" : "{query} sorgusundan bir sonuç alınamadı", "Press Enter to start searching" : "Aramayı başlatmak için Enter tuşuna basın", @@ -402,6 +422,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP kurulumunuzda FreeType desteği yok. Bu durum profil görsellerinin ve ayarlar bölümünün bozuk görüntülenmesine neden olur.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin! Ayrıntılı bilgi almak için {linkstart}ilgili sayfaya bakabilirsiniz ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP bellek sınırı önerilen 512 MB değerinden küçük.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Bu hesabın e-posta adresine bir parola sıfırlama iletisi gönderildi. Bir e-posta almazsanız gelen kutunuzdaki spam/gereksiz klasörlerine bakın ya da yardım almak için BT yöneticinizle görüşün.", "If it is not there ask your local administrator." : "E-postayı göremiyorsanız yerel BT yöneticinizle görüşün.", "Press enter to start searching" : "Aramayı başlatmak için Enter tuşuna basın", @@ -414,7 +435,6 @@ OC.L10N.register( "No more subfolders in here" : "Burada başka bir alt klasör yok", "Name" : "Ad", "Size" : "Boyut", - "Modified" : "Değiştirilme", "\"{name}\" is an invalid file name." : "\"{name}\" dosya adı geçersiz.", "File name cannot be empty." : "Dosya adı boş olamaz.", "\"/\" is not allowed inside a file name." : "Dosya adında \"/\" kullanılamaz.", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 078d8752b73..abad95926ca 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Şu anda veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneriyoruz.", "This is particularly recommended when using the desktop client for file synchronisation." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\" ya da {linkstart}belgeler ↗{linkend} bölümüne bakın.", - "The PHP memory limit is below the recommended value of 512MB." : "PHP bellek sınırı önerilen 512 MB değerinden küçük.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Bazı uygulama klasörlerinin sahipliği site sunucusunun kullandığından başka bir kullanıcıya ait. Bu durum, uygulamalar el ile kurulduğunda ortaya çıkabilir. Şu uygulama klasörlerinin izinlerini denetleyin:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Veri tabanı olarak MySQL kullanılır ancak 4 bayt uzunluğundaki karakterleri desteklemez. 4 bayt uzunluğundaki karaktelerin (emjo simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir. Ayrıntılı bilgi almak için {linkstart}belgeler ↗{linkend} bölümüne bakabilirsiniz.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposu kullanıyor. Yüklenen dosyalar geçici olarak sunucuya kaydedildiğinden PHP geçici klasöründe 50 GB boş alan bulunması önerilir. Klasör yolu ve kullanılabilecek alan hakkındaki ayrıntılı bilgi almak için günlüklere bakabilirsiniz. Bu durumu düzeltmek için php.ini içindeki geçici klasör yolunu değiştirin ya da kullanılan geçici klasörde daha fazla yer açın.", @@ -136,10 +135,16 @@ "More apps" : "Diğer uygulamalar", "Currently open" : "Şu anda açık", "_{count} notification_::_{count} notifications_" : ["{count} bildirim","{count} bildirim"], + "Date range filter" : "Tarih aralığı süzgeci", + "Pick start date" : "Başlangıç tarihini seçin", + "Pick end date" : "Bitiş tarihini seçin", + "Apply range" : "Aralığı uygula", "Log in" : "Oturum aç", "Logging in …" : "Oturum açılıyor …", "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!", "Please contact your administrator." : "Lütfen BT yöneticiniz ile görüşün.", + "Temporary error" : "Geçici sorun", + "Please try again." : "Lütfen yeniden deneyin.", "An internal error occurred." : "İçeride bir sorun çıktı.", "Please try again or contact your administrator." : "Lütfen yeniden deneyin ya da BT yöneticinizle görüşün.", "Account name or email" : "Hesap adı ya da e-posta adresi", @@ -187,6 +192,22 @@ "Install the Contacts app" : "Kişiler uygulamasını kur", "Loading your contacts …" : "Kişileriniz yükleniyor …", "Looking for {term} …" : "{term} ifadesi aranıyor …", + "Global search" : "Genel arama", + "Search apps, files, tags, messages" : "Uygulama, dosya, etiket, ileti ara", + "Apps and Settings" : "Uygulamalar ve ayarlar", + "Modified" : "Değiştirilme", + "Today" : "Bugün", + "Last 7 days" : "Önceki 7 gün", + "Last 30 days" : "Önceki 30 gün", + "This year" : "Bu yıl", + "Last year" : "Önceki yıl", + "Custom date range" : "Özel tarih aralığı", + "Search people" : "Kişi ara", + "Not found" : "Bulunamadı", + "People" : "Kişiler", + "Load more results" : "Diğer sonuçları yükle", + "Start typing in search" : "Aramak için yazmaya başlayın", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "${this.dateFilter.startFrom.toLocaleDateString()} ile ${this.dateFilter.endAt.toLocaleDateString()} arasında", "Forgot password?" : "Parolamı unuttum", "Back to login form" : "Oturum açma formuna dön", "Back" : "Geri", @@ -202,7 +223,6 @@ "Search for {name} only" : "Yalnızca {name} için ara", "Start typing to search" : "Aramak için yazmaya başlayın", "Loading more results …" : "Diğer sonuçlar yükleniyor…", - "Load more results" : "Diğer sonuçları yükle", "Search" : "Arama", "No results for {query}" : "{query} sorgusundan bir sonuç alınamadı", "Press Enter to start searching" : "Aramayı başlatmak için Enter tuşuna basın", @@ -400,6 +420,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP kurulumunuzda FreeType desteği yok. Bu durum profil görsellerinin ve ayarlar bölümünün bozuk görüntülenmesine neden olur.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin! Ayrıntılı bilgi almak için {linkstart}ilgili sayfaya bakabilirsiniz ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "PHP bellek sınırı önerilen 512 MB değerinden küçük.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Bu hesabın e-posta adresine bir parola sıfırlama iletisi gönderildi. Bir e-posta almazsanız gelen kutunuzdaki spam/gereksiz klasörlerine bakın ya da yardım almak için BT yöneticinizle görüşün.", "If it is not there ask your local administrator." : "E-postayı göremiyorsanız yerel BT yöneticinizle görüşün.", "Press enter to start searching" : "Aramayı başlatmak için Enter tuşuna basın", @@ -412,7 +433,6 @@ "No more subfolders in here" : "Burada başka bir alt klasör yok", "Name" : "Ad", "Size" : "Boyut", - "Modified" : "Değiştirilme", "\"{name}\" is an invalid file name." : "\"{name}\" dosya adı geçersiz.", "File name cannot be empty." : "Dosya adı boş olamaz.", "\"/\" is not allowed inside a file name." : "Dosya adında \"/\" kullanılamaz.", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index 926cd6a3f73..e7c2d97080f 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite в даний час використовується як база даних бекенда. Для великих установок ми рекомендуємо перейти на інший тип серверу баз даних.", "This is particularly recommended when using the desktop client for file synchronisation." : "Це особливо рекомендується при використанні клієнтського ПК для синхронізації файлів.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Щоб перейти до іншої бази даних, скористайтеся інструментом командного рядка: \"occ db:convert-type\" або перегляньте {linkstart}документацію ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Обсяг пам'яті PHP нижчий від рекомендованого значення 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Деякі каталоги застосунків належать іншим користувачам, ніж каталог вебсервера. Це може статися, якщо застосунки було встановлено вручну. Перевірте дозволи каталогів таких застосунків:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL використовується як база даних, але не підтримує 4-байтові символи. Щоб мати можливість обробляти 4-байтові символи (наприклад, емоційки) без виникнення проблем з назвами файлів або у коментарях, рекомендується увімкнути підтримку 4-байтів у MySQL. Для отримання додаткової інформації перегляньте {linkstart}цю сторінку документації ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Цей сервер хмари використовує сховище об’єктів S3 як основне сховище. Завантажені файли тимчасово зберігаються на сервері, тому рекомендується зарезервувати 50 ГБ вільного місця у каталозі тимчасових файлів у налаштуваннях PHP. В журнал наведено докладну інформацію про шлях та доступний простір у сховищі. Для вирішення проблеми рекомендуємо змінити тимчасовий каталог у php.ini або звільнити більше місця в поточному каталозі тимчасових файлів.", @@ -142,6 +141,8 @@ OC.L10N.register( "Logging in …" : "Вхід ...", "Server side authentication failed!" : "Невдала авторизація на стороні сервера!", "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "Temporary error" : "Тимчасова помилка", + "Please try again." : "Спробуйте ще раз.", "An internal error occurred." : "Виникла внутрішня помилка.", "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", "Account name or email" : "Ім'я користувача або електронна пошта", @@ -185,9 +186,15 @@ OC.L10N.register( "Search contacts …" : "Пошук контакту...", "Could not load your contacts" : "Неможливо завантажити ваші контакти", "No contacts found" : "Контактів не знайдено", + "Show all contacts" : "Показувати всі контакти", "Install the Contacts app" : "Встановіть застосунок Контакти", "Loading your contacts …" : "Завантаження контактів...", "Looking for {term} …" : "Шукаєте {term}", + "Modified" : "Змінено", + "Today" : "Сьогодні", + "Not found" : "Не знайдено", + "People" : "Люди", + "Load more results" : "Завантажити більше результатів", "Forgot password?" : "Забули пароль?", "Back to login form" : "Повернутися на сторінку входу", "Back" : "Назад", @@ -203,7 +210,6 @@ OC.L10N.register( "Search for {name} only" : "Пошук лише у {name}", "Start typing to search" : "Що шукаємо?", "Loading more results …" : "Завантаження інших результатів…", - "Load more results" : "Завантажити більше результатів", "Search" : "Пошук", "No results for {query}" : "Немає результатів для {query}", "Press Enter to start searching" : "Натисніть Enter, щоб почати пошук", @@ -401,6 +407,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваш PHP не підтримує FreeType, що призводить до поломки зображень профілю та інтерфейсу налаштувань.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "На цьому сервері відсутні окремі рекомендовані модулі PHP. Для досягнення кращої продуктивності та кращої сумісності наполегливо рекомендуємо встановити їх.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Здається, ви використовуєте 32-розрядну версію PHP. Для нормальної роботи Nextcloud потрібна 64-розрядна версія. Будь ласка, оновіть свою ОС і PHP до 64-бітної! Для отримання додаткової інформації прочитайте {linkstart}сторінку документації про це ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Обсяг пам'яті PHP нижчий від рекомендованого значення 512 МБ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Повідомлення про зміну пароля надіслано на електронну адресу цього облікового запису. Якщо ви не отримали його, перевірте \"Спам\" чи \"Кошик або зверніться по допомогу до адміністратора.", "If it is not there ask your local administrator." : "У разі відсутності зверніться до адміністратора системи", "Press enter to start searching" : "Натисніть Enter, щоб почати пошук", @@ -413,7 +420,6 @@ OC.L10N.register( "No more subfolders in here" : "Тут більше немає вкладених каталогів", "Name" : "Ім’я", "Size" : "Розмір", - "Modified" : "Змінено", "\"{name}\" is an invalid file name." : "\"{name}\" - некоректне ім'я файлу.", "File name cannot be empty." : " Ім'я файлу не може бути порожнім.", "\"/\" is not allowed inside a file name." : "Символ \"/\" не дозволений в іменах файлів.", diff --git a/core/l10n/uk.json b/core/l10n/uk.json index c3f1a7e3384..5137822d3c6 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite в даний час використовується як база даних бекенда. Для великих установок ми рекомендуємо перейти на інший тип серверу баз даних.", "This is particularly recommended when using the desktop client for file synchronisation." : "Це особливо рекомендується при використанні клієнтського ПК для синхронізації файлів.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Щоб перейти до іншої бази даних, скористайтеся інструментом командного рядка: \"occ db:convert-type\" або перегляньте {linkstart}документацію ↗{linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Обсяг пам'яті PHP нижчий від рекомендованого значення 512 МБ.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Деякі каталоги застосунків належать іншим користувачам, ніж каталог вебсервера. Це може статися, якщо застосунки було встановлено вручну. Перевірте дозволи каталогів таких застосунків:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL використовується як база даних, але не підтримує 4-байтові символи. Щоб мати можливість обробляти 4-байтові символи (наприклад, емоційки) без виникнення проблем з назвами файлів або у коментарях, рекомендується увімкнути підтримку 4-байтів у MySQL. Для отримання додаткової інформації перегляньте {linkstart}цю сторінку документації ↗{linkend}.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Цей сервер хмари використовує сховище об’єктів S3 як основне сховище. Завантажені файли тимчасово зберігаються на сервері, тому рекомендується зарезервувати 50 ГБ вільного місця у каталозі тимчасових файлів у налаштуваннях PHP. В журнал наведено докладну інформацію про шлях та доступний простір у сховищі. Для вирішення проблеми рекомендуємо змінити тимчасовий каталог у php.ini або звільнити більше місця в поточному каталозі тимчасових файлів.", @@ -140,6 +139,8 @@ "Logging in …" : "Вхід ...", "Server side authentication failed!" : "Невдала авторизація на стороні сервера!", "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "Temporary error" : "Тимчасова помилка", + "Please try again." : "Спробуйте ще раз.", "An internal error occurred." : "Виникла внутрішня помилка.", "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", "Account name or email" : "Ім'я користувача або електронна пошта", @@ -183,9 +184,15 @@ "Search contacts …" : "Пошук контакту...", "Could not load your contacts" : "Неможливо завантажити ваші контакти", "No contacts found" : "Контактів не знайдено", + "Show all contacts" : "Показувати всі контакти", "Install the Contacts app" : "Встановіть застосунок Контакти", "Loading your contacts …" : "Завантаження контактів...", "Looking for {term} …" : "Шукаєте {term}", + "Modified" : "Змінено", + "Today" : "Сьогодні", + "Not found" : "Не знайдено", + "People" : "Люди", + "Load more results" : "Завантажити більше результатів", "Forgot password?" : "Забули пароль?", "Back to login form" : "Повернутися на сторінку входу", "Back" : "Назад", @@ -201,7 +208,6 @@ "Search for {name} only" : "Пошук лише у {name}", "Start typing to search" : "Що шукаємо?", "Loading more results …" : "Завантаження інших результатів…", - "Load more results" : "Завантажити більше результатів", "Search" : "Пошук", "No results for {query}" : "Немає результатів для {query}", "Press Enter to start searching" : "Натисніть Enter, щоб почати пошук", @@ -399,6 +405,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Ваш PHP не підтримує FreeType, що призводить до поломки зображень профілю та інтерфейсу налаштувань.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "На цьому сервері відсутні окремі рекомендовані модулі PHP. Для досягнення кращої продуктивності та кращої сумісності наполегливо рекомендуємо встановити їх.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Здається, ви використовуєте 32-розрядну версію PHP. Для нормальної роботи Nextcloud потрібна 64-розрядна версія. Будь ласка, оновіть свою ОС і PHP до 64-бітної! Для отримання додаткової інформації прочитайте {linkstart}сторінку документації про це ↗{linkend}.", + "The PHP memory limit is below the recommended value of 512MB." : "Обсяг пам'яті PHP нижчий від рекомендованого значення 512 МБ.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Повідомлення про зміну пароля надіслано на електронну адресу цього облікового запису. Якщо ви не отримали його, перевірте \"Спам\" чи \"Кошик або зверніться по допомогу до адміністратора.", "If it is not there ask your local administrator." : "У разі відсутності зверніться до адміністратора системи", "Press enter to start searching" : "Натисніть Enter, щоб почати пошук", @@ -411,7 +418,6 @@ "No more subfolders in here" : "Тут більше немає вкладених каталогів", "Name" : "Ім’я", "Size" : "Розмір", - "Modified" : "Змінено", "\"{name}\" is an invalid file name." : "\"{name}\" - некоректне ім'я файлу.", "File name cannot be empty." : " Ім'я файлу не може бути порожнім.", "\"/\" is not allowed inside a file name." : "Символ \"/\" не дозволений в іменах файлів.", diff --git a/core/l10n/vi.js b/core/l10n/vi.js index 2edd6c0e464..83cfe023746 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -100,7 +100,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite hiện đang được sử dụng làm cơ sở dữ liệu phụ trợ. Đối với các cài đặt lớn hơn, chúng tôi khuyên bạn nên chuyển sang một backend cơ sở dữ liệu khác.", "This is particularly recommended when using the desktop client for file synchronisation." : "Điều này đặc biệt được khuyến nghị khi sử dụng ứng dụng khách trên máy tính để bàn để đồng bộ hóa tệp.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Để di chuyển sang cơ sở dữ liệu khác, hãy sử dụng công cụ dòng lệnh: \"occ db:convert-type\" hoặc xem tài liệu ↗ {linkstart} {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Giới hạn bộ nhớ PHP thấp hơn giá trị khuyến nghị là 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Một số thư mục ứng dụng được sở hữu bởi một người dùng khác với người dùng máy chủ web. Điều này có thể xảy ra nếu các ứng dụng đã được cài đặt thủ công. Kiểm tra quyền của các thư mục ứng dụng sau:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL được sử dụng làm cơ sở dữ liệu nhưng không hỗ trợ các ký tự 4 byte. Ví dụ: để có thể xử lý các ký tự 4 byte (như biểu tượng cảm xúc) mà không gặp sự cố về tên tệp hoặc nhận xét, bạn nên bật hỗ trợ 4 byte trong MySQL. Để biết thêm chi tiết, hãy đọc {linkstart} trang tài liệu về {linkend} này ↗.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Phiên bản này sử dụng kho lưu trữ đối tượng dựa trên S3 làm bộ lưu trữ chính. Các tệp đã tải lên được lưu trữ tạm thời trên máy chủ và do đó bạn nên có 50 GB dung lượng trống trong thư mục tạm thời của PHP. Kiểm tra nhật ký để biết đầy đủ chi tiết về đường dẫn và không gian có sẵn. Để cải thiện điều này, vui lòng thay đổi thư mục tạm thời trong php.ini hoặc tạo thêm không gian có sẵn trong đường dẫn đó.", @@ -186,6 +185,10 @@ OC.L10N.register( "Install the Contacts app" : "Cài đặt ứng dụng Danh bạ", "Loading your contacts …" : "Đang tải liên hệ của bạn ...", "Looking for {term} …" : "Đang tìm kiếm {term} ...", + "Modified" : "Thay đổi", + "Today" : "Hôm nay", + "Not found" : "Không tìm thấy", + "Load more results" : "Tải thêm kết quả", "Forgot password?" : "Quên mật khẩu sao?", "Back to login form" : "Quay lại trang đăng nhập", "Back" : "Quay lại", @@ -201,7 +204,6 @@ OC.L10N.register( "Search for {name} only" : "Chỉ tìm kiếm {name}", "Start typing to search" : "Nhập để tìm kiếm", "Loading more results …" : "Tải thêm kết quả ...", - "Load more results" : "Tải thêm kết quả", "Search" : "Tìm kiếm", "No results for {query}" : "Không có kết quả cho {query}", "Press Enter to start searching" : "Nhấn Enter để bắt đầu tìm kiếm", @@ -398,6 +400,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP của bạn không có hỗ trợ FreeType, dẫn đến vỡ ảnh hồ sơ và giao diện cài đặt.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Phiên bản này thiếu một số mô-đun PHP được đề xuất. Để cải thiện hiệu suất và khả năng tương thích tốt hơn, bạn nên cài đặt chúng.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Có vẻ như bạn đang chạy phiên bản PHP 32-bit. Nextcloud cần 64-bit để chạy tốt. Vui lòng nâng cấp hệ điều hành và PHP của bạn lên 64-bit! Để biết thêm chi tiết, hãy đọc {linkstart} trang tài liệu về {linkend} này ↗.", + "The PHP memory limit is below the recommended value of 512MB." : "Giới hạn bộ nhớ PHP thấp hơn giá trị khuyến nghị là 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Một thông báo đặt lại mật khẩu đã được gửi đến địa chỉ email của tài khoản này. Nếu bạn không nhận được nó, hãy kiểm tra các thư mục spam / rác của bạn hoặc yêu cầu quản trị viên cục bộ của bạn trợ giúp.", "If it is not there ask your local administrator." : "Nếu không tìm thấy, hãy hỏi quản trị viên cục bộ của bạn.", "Press enter to start searching" : "Nhấn enter để bắt đầu tìm kiếm", @@ -410,7 +413,6 @@ OC.L10N.register( "No more subfolders in here" : "Không còn thư mục con ở đây", "Name" : "Tên", "Size" : "Kích cỡ", - "Modified" : "Thay đổi", "\"{name}\" is an invalid file name." : "\"{name}\" không được chấp nhận", "File name cannot be empty." : "Tên file không được rỗng", "\"/\" is not allowed inside a file name." : "\"/\" không được phép có trong tên tệp.", diff --git a/core/l10n/vi.json b/core/l10n/vi.json index 2b260ad3c7b..d7560bb8fe4 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -98,7 +98,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite hiện đang được sử dụng làm cơ sở dữ liệu phụ trợ. Đối với các cài đặt lớn hơn, chúng tôi khuyên bạn nên chuyển sang một backend cơ sở dữ liệu khác.", "This is particularly recommended when using the desktop client for file synchronisation." : "Điều này đặc biệt được khuyến nghị khi sử dụng ứng dụng khách trên máy tính để bàn để đồng bộ hóa tệp.", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "Để di chuyển sang cơ sở dữ liệu khác, hãy sử dụng công cụ dòng lệnh: \"occ db:convert-type\" hoặc xem tài liệu ↗ {linkstart} {linkend}.", - "The PHP memory limit is below the recommended value of 512MB." : "Giới hạn bộ nhớ PHP thấp hơn giá trị khuyến nghị là 512MB.", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Một số thư mục ứng dụng được sở hữu bởi một người dùng khác với người dùng máy chủ web. Điều này có thể xảy ra nếu các ứng dụng đã được cài đặt thủ công. Kiểm tra quyền của các thư mục ứng dụng sau:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL được sử dụng làm cơ sở dữ liệu nhưng không hỗ trợ các ký tự 4 byte. Ví dụ: để có thể xử lý các ký tự 4 byte (như biểu tượng cảm xúc) mà không gặp sự cố về tên tệp hoặc nhận xét, bạn nên bật hỗ trợ 4 byte trong MySQL. Để biết thêm chi tiết, hãy đọc {linkstart} trang tài liệu về {linkend} này ↗.", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Phiên bản này sử dụng kho lưu trữ đối tượng dựa trên S3 làm bộ lưu trữ chính. Các tệp đã tải lên được lưu trữ tạm thời trên máy chủ và do đó bạn nên có 50 GB dung lượng trống trong thư mục tạm thời của PHP. Kiểm tra nhật ký để biết đầy đủ chi tiết về đường dẫn và không gian có sẵn. Để cải thiện điều này, vui lòng thay đổi thư mục tạm thời trong php.ini hoặc tạo thêm không gian có sẵn trong đường dẫn đó.", @@ -184,6 +183,10 @@ "Install the Contacts app" : "Cài đặt ứng dụng Danh bạ", "Loading your contacts …" : "Đang tải liên hệ của bạn ...", "Looking for {term} …" : "Đang tìm kiếm {term} ...", + "Modified" : "Thay đổi", + "Today" : "Hôm nay", + "Not found" : "Không tìm thấy", + "Load more results" : "Tải thêm kết quả", "Forgot password?" : "Quên mật khẩu sao?", "Back to login form" : "Quay lại trang đăng nhập", "Back" : "Quay lại", @@ -199,7 +202,6 @@ "Search for {name} only" : "Chỉ tìm kiếm {name}", "Start typing to search" : "Nhập để tìm kiếm", "Loading more results …" : "Tải thêm kết quả ...", - "Load more results" : "Tải thêm kết quả", "Search" : "Tìm kiếm", "No results for {query}" : "Không có kết quả cho {query}", "Press Enter to start searching" : "Nhấn Enter để bắt đầu tìm kiếm", @@ -396,6 +398,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP của bạn không có hỗ trợ FreeType, dẫn đến vỡ ảnh hồ sơ và giao diện cài đặt.", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Phiên bản này thiếu một số mô-đun PHP được đề xuất. Để cải thiện hiệu suất và khả năng tương thích tốt hơn, bạn nên cài đặt chúng.", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "Có vẻ như bạn đang chạy phiên bản PHP 32-bit. Nextcloud cần 64-bit để chạy tốt. Vui lòng nâng cấp hệ điều hành và PHP của bạn lên 64-bit! Để biết thêm chi tiết, hãy đọc {linkstart} trang tài liệu về {linkend} này ↗.", + "The PHP memory limit is below the recommended value of 512MB." : "Giới hạn bộ nhớ PHP thấp hơn giá trị khuyến nghị là 512MB.", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Một thông báo đặt lại mật khẩu đã được gửi đến địa chỉ email của tài khoản này. Nếu bạn không nhận được nó, hãy kiểm tra các thư mục spam / rác của bạn hoặc yêu cầu quản trị viên cục bộ của bạn trợ giúp.", "If it is not there ask your local administrator." : "Nếu không tìm thấy, hãy hỏi quản trị viên cục bộ của bạn.", "Press enter to start searching" : "Nhấn enter để bắt đầu tìm kiếm", @@ -408,7 +411,6 @@ "No more subfolders in here" : "Không còn thư mục con ở đây", "Name" : "Tên", "Size" : "Kích cỡ", - "Modified" : "Thay đổi", "\"{name}\" is an invalid file name." : "\"{name}\" không được chấp nhận", "File name cannot be empty." : "Tên file không được rỗng", "\"/\" is not allowed inside a file name." : "\"/\" không được phép có trong tên tệp.", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 6e55a19b64e..6dc279acff3 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "您当前正在使用 SQLite 作为后端数据库。在大型服务中,我们推荐您改用其它的后端数据库。", "This is particularly recommended when using the desktop client for file synchronisation." : "如果您使用桌面客户端同步文件,我们非常建议您这样做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "要迁移到另一个数据库,请使用命令行工具“occ db:convert-type”或参见 {linkstart}文档 ↗{linkend}", - "The PHP memory limit is below the recommended value of 512MB." : "PHP 内存限制低于建议值 512MB。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL 被用作数据库,但不支持 4 字节字符。要能够在文件名或评论中正确处理 4 字节字符 (如 emoji),建议在 MySQL 中启用 4 字节支持。关于更多详细信息,您可以阅读{linkstart}有关此问题的文档页 ↗{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此实例使用基于 S3 的对象存储作为主存储。上传的文件会临时存放在服务器上,所以建议 PHP 的临时目录有 50 GB 的可用空间。路径和可用空间的详情请查看日志。要改善此状况请修改 php.ini 文件中的临时目录路径或增加该路径的可用空间。", @@ -189,6 +188,12 @@ OC.L10N.register( "Install the Contacts app" : "安装联系人应用", "Loading your contacts …" : "正在加载您的联系人……", "Looking for {term} …" : "正在查找{term} ……", + "Modified" : "已修改", + "Today" : "今日", + "Last year" : "上年", + "Not found" : "未找到", + "People" : "人物", + "Load more results" : "加载更多结果", "Forgot password?" : "忘记密码?", "Back to login form" : "回到登录表格", "Back" : "返回", @@ -204,7 +209,6 @@ OC.L10N.register( "Search for {name} only" : "仅搜索 {name}", "Start typing to search" : "开始输入搜索内容", "Loading more results …" : "加载更多结果...", - "Load more results" : "加载更多结果", "Search" : "搜索", "No results for {query}" : "没有 '{query}' 的相关结果", "Press Enter to start searching" : "按下Enter开始搜索", @@ -402,6 +406,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 没有 FreeType 支持,导致配置文件图片和设置界面中断。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您似乎正在运行 32 位版本的 PHP 服务。 Nextcloud 需要 64 位以良好运作,请升级您的操作系统与 PHP 服务至 64 位版本!有关更多详细信息,请阅读{linkstart}有关的文档页面 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "PHP 内存限制低于建议值 512MB。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "密码重置消息已发送到该帐户的电子邮件地址。如果您没有收到,请检查您的垃圾邮件/垃圾文件夹或向您的本地管理员寻求帮助。 ", "If it is not there ask your local administrator." : "如果它不在此处,请询问您的本地管理员。", "Press enter to start searching" : "按 Enter 开始搜索", @@ -414,7 +419,6 @@ OC.L10N.register( "No more subfolders in here" : "没有更多的子文件夹", "Name" : "名称", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "“{name}”是一个无效的文件名。", "File name cannot be empty." : "文件名不能为空。", "\"/\" is not allowed inside a file name." : "文件名不能包含“/”。", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 143c09ede18..589cc5a52df 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "您当前正在使用 SQLite 作为后端数据库。在大型服务中,我们推荐您改用其它的后端数据库。", "This is particularly recommended when using the desktop client for file synchronisation." : "如果您使用桌面客户端同步文件,我们非常建议您这样做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "要迁移到另一个数据库,请使用命令行工具“occ db:convert-type”或参见 {linkstart}文档 ↗{linkend}", - "The PHP memory limit is below the recommended value of 512MB." : "PHP 内存限制低于建议值 512MB。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL 被用作数据库,但不支持 4 字节字符。要能够在文件名或评论中正确处理 4 字节字符 (如 emoji),建议在 MySQL 中启用 4 字节支持。关于更多详细信息,您可以阅读{linkstart}有关此问题的文档页 ↗{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此实例使用基于 S3 的对象存储作为主存储。上传的文件会临时存放在服务器上,所以建议 PHP 的临时目录有 50 GB 的可用空间。路径和可用空间的详情请查看日志。要改善此状况请修改 php.ini 文件中的临时目录路径或增加该路径的可用空间。", @@ -187,6 +186,12 @@ "Install the Contacts app" : "安装联系人应用", "Loading your contacts …" : "正在加载您的联系人……", "Looking for {term} …" : "正在查找{term} ……", + "Modified" : "已修改", + "Today" : "今日", + "Last year" : "上年", + "Not found" : "未找到", + "People" : "人物", + "Load more results" : "加载更多结果", "Forgot password?" : "忘记密码?", "Back to login form" : "回到登录表格", "Back" : "返回", @@ -202,7 +207,6 @@ "Search for {name} only" : "仅搜索 {name}", "Start typing to search" : "开始输入搜索内容", "Loading more results …" : "加载更多结果...", - "Load more results" : "加载更多结果", "Search" : "搜索", "No results for {query}" : "没有 '{query}' 的相关结果", "Press Enter to start searching" : "按下Enter开始搜索", @@ -400,6 +404,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 没有 FreeType 支持,导致配置文件图片和设置界面中断。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您似乎正在运行 32 位版本的 PHP 服务。 Nextcloud 需要 64 位以良好运作,请升级您的操作系统与 PHP 服务至 64 位版本!有关更多详细信息,请阅读{linkstart}有关的文档页面 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "PHP 内存限制低于建议值 512MB。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "密码重置消息已发送到该帐户的电子邮件地址。如果您没有收到,请检查您的垃圾邮件/垃圾文件夹或向您的本地管理员寻求帮助。 ", "If it is not there ask your local administrator." : "如果它不在此处,请询问您的本地管理员。", "Press enter to start searching" : "按 Enter 开始搜索", @@ -412,7 +417,6 @@ "No more subfolders in here" : "没有更多的子文件夹", "Name" : "名称", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "“{name}”是一个无效的文件名。", "File name cannot be empty." : "文件名不能为空。", "\"/\" is not allowed inside a file name." : "文件名不能包含“/”。", diff --git a/core/l10n/zh_HK.js b/core/l10n/zh_HK.js index c636a4a64e8..975a0701dbd 100644 --- a/core/l10n/zh_HK.js +++ b/core/l10n/zh_HK.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端數據庫使用 SQLite,在大型服務當中,我們建議您使用其他的數據庫後端。", "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用電腦客戶端來同步檔案,非常建議您這麼做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "要遷移到另一個數據庫,請使用指令工具:“ occ db:convert-type”,或參閱 {linkstart} 說明書↗{linkend}。", - "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "某些應用程式的資料夾所有者與網頁伺服器預設用戶不同。這可能是因為您手動安裝了這些應用程式。請檢查以下應用程式資料夾的相關權限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL 用作數據庫,但不支持4-byte字符。為了能夠處理4字節字符(如表情符號)而不會出現文件名或註釋問題,建議在MySQL中啟用4字節支持。有關更多詳細信息,請參見{linkstart}關於此↗的文檔頁面{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此站台使用Amazon S3物件儲存為主要儲存區。上傳檔案會暫存在伺服器,因此建議PHP的暫存資料夾最少要有50GB可用容量。請在登入檔中查閱關於資料夾路徑及可用容量的詳細資訊。要增進效能,請在php.ini中變更暫存資料夾位置,或將該資料夾容量增加。", @@ -189,6 +188,12 @@ OC.L10N.register( "Install the Contacts app" : "安裝「通訊錄」應用程式", "Loading your contacts …" : "正在載入聯絡人…", "Looking for {term} …" : "正在搜尋 {term} …", + "Modified" : "已修改", + "Today" : "今日", + "Last year" : "去年", + "Not found" : "未找到", + "People" : "人物", + "Load more results" : "載入更多結果", "Forgot password?" : "忘記密碼?", "Back to login form" : "回到登入表格", "Back" : "返回", @@ -204,7 +209,6 @@ OC.L10N.register( "Search for {name} only" : "只搜尋 {name}", "Start typing to search" : "輸入文字以檢索", "Loading more results …" : "正在載入更多結果...", - "Load more results" : "載入更多結果", "Search" : "搜尋", "No results for {query}" : "{query} 查詢沒有結果", "Press Enter to start searching" : "按 Enter 開始搜尋", @@ -402,6 +406,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "您的 Nextcloud 缺少了某些建議的 PHP 模組。為了提升效能與相容性,強烈建議您安裝這些 PHP 模組。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您好像正在運行 32 位 PHP 版本。Nextcloud 需要 64 位才能運行良好。請將您的操作系統和 PHP 升級到 64 位!有關更多詳細信息,請閱讀 {linkstart} 有關的說明書頁面 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "重設密碼資訊已寄至您的電子郵件。若您並未收到該信件,請確認您垃圾信箱,或請求管理員協助。", "If it is not there ask your local administrator." : "你找的東西不在,請聯絡管理員。", "Press enter to start searching" : "按 Enter 開始搜尋", @@ -414,7 +419,6 @@ OC.L10N.register( "No more subfolders in here" : "沒有子資料夾", "Name" : "名稱", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "\"{name}\" 是無效的檔案名稱。", "File name cannot be empty." : "檔案名稱不能為空。", "\"/\" is not allowed inside a file name." : "不允許檔案名稱中出現 \"/\"。", diff --git a/core/l10n/zh_HK.json b/core/l10n/zh_HK.json index 80d82906309..1d3a45b7a89 100644 --- a/core/l10n/zh_HK.json +++ b/core/l10n/zh_HK.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端數據庫使用 SQLite,在大型服務當中,我們建議您使用其他的數據庫後端。", "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用電腦客戶端來同步檔案,非常建議您這麼做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "要遷移到另一個數據庫,請使用指令工具:“ occ db:convert-type”,或參閱 {linkstart} 說明書↗{linkend}。", - "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "某些應用程式的資料夾所有者與網頁伺服器預設用戶不同。這可能是因為您手動安裝了這些應用程式。請檢查以下應用程式資料夾的相關權限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "MySQL 用作數據庫,但不支持4-byte字符。為了能夠處理4字節字符(如表情符號)而不會出現文件名或註釋問題,建議在MySQL中啟用4字節支持。有關更多詳細信息,請參見{linkstart}關於此↗的文檔頁面{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此站台使用Amazon S3物件儲存為主要儲存區。上傳檔案會暫存在伺服器,因此建議PHP的暫存資料夾最少要有50GB可用容量。請在登入檔中查閱關於資料夾路徑及可用容量的詳細資訊。要增進效能,請在php.ini中變更暫存資料夾位置,或將該資料夾容量增加。", @@ -187,6 +186,12 @@ "Install the Contacts app" : "安裝「通訊錄」應用程式", "Loading your contacts …" : "正在載入聯絡人…", "Looking for {term} …" : "正在搜尋 {term} …", + "Modified" : "已修改", + "Today" : "今日", + "Last year" : "去年", + "Not found" : "未找到", + "People" : "人物", + "Load more results" : "載入更多結果", "Forgot password?" : "忘記密碼?", "Back to login form" : "回到登入表格", "Back" : "返回", @@ -202,7 +207,6 @@ "Search for {name} only" : "只搜尋 {name}", "Start typing to search" : "輸入文字以檢索", "Loading more results …" : "正在載入更多結果...", - "Load more results" : "載入更多結果", "Search" : "搜尋", "No results for {query}" : "{query} 查詢沒有結果", "Press Enter to start searching" : "按 Enter 開始搜尋", @@ -400,6 +404,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "您的 Nextcloud 缺少了某些建議的 PHP 模組。為了提升效能與相容性,強烈建議您安裝這些 PHP 模組。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您好像正在運行 32 位 PHP 版本。Nextcloud 需要 64 位才能運行良好。請將您的操作系統和 PHP 升級到 64 位!有關更多詳細信息,請閱讀 {linkstart} 有關的說明書頁面 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "重設密碼資訊已寄至您的電子郵件。若您並未收到該信件,請確認您垃圾信箱,或請求管理員協助。", "If it is not there ask your local administrator." : "你找的東西不在,請聯絡管理員。", "Press enter to start searching" : "按 Enter 開始搜尋", @@ -412,7 +417,6 @@ "No more subfolders in here" : "沒有子資料夾", "Name" : "名稱", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "\"{name}\" 是無效的檔案名稱。", "File name cannot be empty." : "檔案名稱不能為空。", "\"/\" is not allowed inside a file name." : "不允許檔案名稱中出現 \"/\"。", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index ba129627b15..aabbb376146 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -102,7 +102,6 @@ OC.L10N.register( "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端資料庫使用 SQLite,在大型服務當中,我們建議您使用其他的資料庫後端。", "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用電腦客戶端來同步檔案,非常建議您這麼做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "若要轉移至另一個資料庫,請使用命令列工具:\"occ db:convert-type\",或是查閱{linkstart}文件 ↗{linkend}。", - "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "某些應用程式的資料夾所有者與網頁伺服器預設使用者不同。這可能是因為您手動安裝了這些應用程式。請檢查以下應用程式資料夾的相關權限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "您的 MySQL 資料庫並不支援 4-byte 的字元。為了能處理檔案名稱中,或是註記中的 4-byte 的字元(如表情符號等)。建議您啟用 MySQL 中支援 4-byte 的字元的功能。詳情請見{linkstart}此文件中關於此項目的說明 ↗{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此站台使用 Amazon S3 物件儲存為主要儲存區。上傳檔案會暫存在伺服器,因此建議 PHP 的暫存資料夾最少要有 50 GB 可用容量。請在登錄檔中查閱關於資料夾路徑及可用容量的詳細資訊。要增進效能,請在 php.ini 中變更暫存資料夾位置,或將該資料夾容量增加。", @@ -138,10 +137,16 @@ OC.L10N.register( "More apps" : "更多應用程式", "Currently open" : "目前開啟", "_{count} notification_::_{count} notifications_" : ["{count} 個通知"], + "Date range filter" : "日期範圍過濾條件", + "Pick start date" : "挑選開始日期", + "Pick end date" : "挑選結束日期", + "Apply range" : "套用範圍", "Log in" : "登入", "Logging in …" : "正在登入……", "Server side authentication failed!" : "伺服器端認證失敗!", "Please contact your administrator." : "請聯絡系統管理員", + "Temporary error" : "暫時錯誤", + "Please try again." : "請再試一次。", "An internal error occurred." : "發生內部錯誤", "Please try again or contact your administrator." : "請重試或聯絡系統管理員", "Account name or email" : "帳號名稱或電子郵件", @@ -189,6 +194,24 @@ OC.L10N.register( "Install the Contacts app" : "安裝「通訊錄」應用程式", "Loading your contacts …" : "正在載入聯絡人……", "Looking for {term} …" : "搜尋 {term}……", + "Global search" : "全域搜尋", + "Search apps, files, tags, messages" : "搜尋應用程式、檔案、標籤、訊息", + "Apps and Settings" : "應用程式與設定", + "Modified" : "已修改", + "Today" : "今日", + "Last 7 days" : "過去7天", + "Last 30 days" : "過去30天", + "This year" : "今年", + "Last year" : "去年", + "Custom date range" : "自訂日期範圍", + "Search people" : "搜尋夥伴", + "Not found" : "找不到", + "People" : "人物", + "Load more results" : "載入更多結果", + "Search in" : "搜尋", + "Start typing in search" : "開始輸入搜尋內容", + "No matching results" : "無相符結果", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "介於 ${this.dateFilter.startFrom.toLocaleDateString()} 到 ${this.dateFilter.endAt.toLocaleDateString()} 間", "Forgot password?" : "忘記密碼?", "Back to login form" : "回到登入表單", "Back" : "返回", @@ -204,7 +227,6 @@ OC.L10N.register( "Search for {name} only" : "僅搜尋 {name}", "Start typing to search" : "開始輸入以搜尋", "Loading more results …" : "正在載入更多結果…", - "Load more results" : "載入更多結果", "Search" : "搜尋", "No results for {query}" : "{query} 查詢沒有結果", "Press Enter to start searching" : "按 Enter 開始搜尋", @@ -402,6 +424,7 @@ OC.L10N.register( "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "您的 Nextcloud 缺少了某些建議的 PHP 模組。為了提升效能與相容性,強烈建議您安裝這些 PHP 模組。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!要取得更多詳細資訊,請閱讀{linkstart}關於此問題的文件 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "重設密碼資訊已寄至您的電子郵件。若您並未收到該信件,請確認您垃圾信箱,或請求管理員協助。", "If it is not there ask your local administrator." : "你找的東西不在,請聯絡管理員。", "Press enter to start searching" : "按 Enter 以開始搜尋", @@ -414,7 +437,6 @@ OC.L10N.register( "No more subfolders in here" : "這裡沒有其他子資料夾了", "Name" : "姓名", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "{name} 是無效的檔名", "File name cannot be empty." : "檔名不能為空", "\"/\" is not allowed inside a file name." : "不允許檔名中出現 \"/\"。", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 8ecc7a44802..55377a1e012 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -100,7 +100,6 @@ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端資料庫使用 SQLite,在大型服務當中,我們建議您使用其他的資料庫後端。", "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用電腦客戶端來同步檔案,非常建議您這麼做。", "To migrate to another database use the command line tool: \"occ db:convert-type\", or see the {linkstart}documentation ↗{linkend}." : "若要轉移至另一個資料庫,請使用命令列工具:\"occ db:convert-type\",或是查閱{linkstart}文件 ↗{linkend}。", - "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB。", "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "某些應用程式的資料夾所有者與網頁伺服器預設使用者不同。這可能是因為您手動安裝了這些應用程式。請檢查以下應用程式資料夾的相關權限:", "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read {linkstart}the documentation page about this ↗{linkend}." : "您的 MySQL 資料庫並不支援 4-byte 的字元。為了能處理檔案名稱中,或是註記中的 4-byte 的字元(如表情符號等)。建議您啟用 MySQL 中支援 4-byte 的字元的功能。詳情請見{linkstart}此文件中關於此項目的說明 ↗{linkend}。", "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "此站台使用 Amazon S3 物件儲存為主要儲存區。上傳檔案會暫存在伺服器,因此建議 PHP 的暫存資料夾最少要有 50 GB 可用容量。請在登錄檔中查閱關於資料夾路徑及可用容量的詳細資訊。要增進效能,請在 php.ini 中變更暫存資料夾位置,或將該資料夾容量增加。", @@ -136,10 +135,16 @@ "More apps" : "更多應用程式", "Currently open" : "目前開啟", "_{count} notification_::_{count} notifications_" : ["{count} 個通知"], + "Date range filter" : "日期範圍過濾條件", + "Pick start date" : "挑選開始日期", + "Pick end date" : "挑選結束日期", + "Apply range" : "套用範圍", "Log in" : "登入", "Logging in …" : "正在登入……", "Server side authentication failed!" : "伺服器端認證失敗!", "Please contact your administrator." : "請聯絡系統管理員", + "Temporary error" : "暫時錯誤", + "Please try again." : "請再試一次。", "An internal error occurred." : "發生內部錯誤", "Please try again or contact your administrator." : "請重試或聯絡系統管理員", "Account name or email" : "帳號名稱或電子郵件", @@ -187,6 +192,24 @@ "Install the Contacts app" : "安裝「通訊錄」應用程式", "Loading your contacts …" : "正在載入聯絡人……", "Looking for {term} …" : "搜尋 {term}……", + "Global search" : "全域搜尋", + "Search apps, files, tags, messages" : "搜尋應用程式、檔案、標籤、訊息", + "Apps and Settings" : "應用程式與設定", + "Modified" : "已修改", + "Today" : "今日", + "Last 7 days" : "過去7天", + "Last 30 days" : "過去30天", + "This year" : "今年", + "Last year" : "去年", + "Custom date range" : "自訂日期範圍", + "Search people" : "搜尋夥伴", + "Not found" : "找不到", + "People" : "人物", + "Load more results" : "載入更多結果", + "Search in" : "搜尋", + "Start typing in search" : "開始輸入搜尋內容", + "No matching results" : "無相符結果", + "Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}" : "介於 ${this.dateFilter.startFrom.toLocaleDateString()} 到 ${this.dateFilter.endAt.toLocaleDateString()} 間", "Forgot password?" : "忘記密碼?", "Back to login form" : "回到登入表單", "Back" : "返回", @@ -202,7 +225,6 @@ "Search for {name} only" : "僅搜尋 {name}", "Start typing to search" : "開始輸入以搜尋", "Loading more results …" : "正在載入更多結果…", - "Load more results" : "載入更多結果", "Search" : "搜尋", "No results for {query}" : "{query} 查詢沒有結果", "Press Enter to start searching" : "按 Enter 開始搜尋", @@ -400,6 +422,7 @@ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "您的 PHP 並未啟用 FreeType 支援,導致大頭貼產生器和設定界面無法使用。", "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "您的 Nextcloud 缺少了某些建議的 PHP 模組。為了提升效能與相容性,強烈建議您安裝這些 PHP 模組。", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read {linkstart}the documentation page about this ↗{linkend}." : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!要取得更多詳細資訊,請閱讀{linkstart}關於此問題的文件 ↗{linkend}。", + "The PHP memory limit is below the recommended value of 512MB." : "目前的 PHP 的記憶體限制設定低於建議值 512MB。", "A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "重設密碼資訊已寄至您的電子郵件。若您並未收到該信件,請確認您垃圾信箱,或請求管理員協助。", "If it is not there ask your local administrator." : "你找的東西不在,請聯絡管理員。", "Press enter to start searching" : "按 Enter 以開始搜尋", @@ -412,7 +435,6 @@ "No more subfolders in here" : "這裡沒有其他子資料夾了", "Name" : "姓名", "Size" : "大小", - "Modified" : "已修改", "\"{name}\" is an invalid file name." : "{name} 是無效的檔名", "File name cannot be empty." : "檔名不能為空", "\"/\" is not allowed inside a file name." : "不允許檔名中出現 \"/\"。", diff --git a/dist/files-main.js b/dist/files-main.js index 7229727eb6c..0b87d21ffed 100644 --- a/dist/files-main.js +++ b/dist/files-main.js @@ -1,3 +1,3 @@ /*! For license information please see files-main.js.LICENSE.txt */ -(()=>{"use strict";var e,n,i,o={60668:(e,n,i)=>{var o=i(17499),s=i(79954),r=i(31352),a=i(79753),l=i(77958);const c=function(){var t,e,n,i;const o=(null===(t=OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.App)||void 0===n||null===(i=n.currentFileList)||void 0===i?void 0:i.dirInfo)||{path:"/",name:""};return"".concat(o.path,"/").concat(o.name).replace(/\/\//gi,"/")};var d=i(4820),u=i(20144),p=i(62520),h=i(64024),f=i(93455),A=i.n(f),v=i(70110),m=i.n(v);const g=256,w={name:"TemplatePreview",inheritAttrs:!1,props:{basename:{type:String,required:!0},checked:{type:Boolean,default:!1},fileid:{type:[String,Number],required:!0},filename:{type:String,required:!0},previewUrl:{type:String,default:null},hasPreview:{type:Boolean,default:!0},mime:{type:String,required:!0},ratio:{type:Number,default:null}},data:()=>({failedPreview:!1}),computed:{nameWithoutExt(){return this.basename.indexOf(".")>-1?this.basename.split(".").slice(0,-1).join("."):this.basename},id(){return"template-picker-".concat(this.fileid)},realPreviewUrl(){return this.failedPreview&&this.mimeIcon?this.mimeIcon:this.previewUrl?this.previewUrl:(0,l.ts)()?(0,a.generateUrl)("/core/preview?fileId=".concat(this.fileid,"&x=").concat(g,"&y=").concat(g,"&a=1")):(0,a.generateUrl)("/apps/files_sharing/publicpreview/".concat(document.getElementById("sharingToken")&&document.getElementById("sharingToken").value,"?fileId=").concat(this.fileid,"&file=").concat(function(t){const e=(t.startsWith("/")?t:"/".concat(t)).split("/");let n="";return e.forEach((t=>{""!==t&&(n+="/"+encodeURIComponent(t))})),n}(this.filename),"&x=").concat(g,"&y=").concat(g,"&a=1"))},mimeIcon(){return OC.MimeType.getIconUrl(this.mime)}},methods:{onCheck(){this.$emit("check",this.fileid)},onFailure(){this.failedPreview=!0}}};var b=i(93379),C=i.n(b),y=i(7795),_=i.n(y),x=i(90569),S=i.n(x),k=i(3565),I=i.n(k),N=i(19216),E=i.n(N),F=i(44589),B=i.n(F),P=i(67679),D={};D.styleTagTransform=B(),D.setAttributes=I(),D.insert=S().bind(null,"head"),D.domAPI=_(),D.insertStyleElement=E(),C()(P.Z,D),P.Z&&P.Z.locals&&P.Z.locals;var T=i(51900);const z=(0,T.Z)(w,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"template-picker__item"},[e("input",{staticClass:"radio",attrs:{id:t.id,type:"radio",name:"template-picker"},domProps:{checked:t.checked},on:{change:t.onCheck}}),t._v(" "),e("label",{staticClass:"template-picker__label",attrs:{for:t.id}},[e("div",{staticClass:"template-picker__preview",class:t.failedPreview?"template-picker__preview--failed":""},[e("img",{staticClass:"template-picker__image",attrs:{src:t.realPreviewUrl,alt:"",draggable:"false"},on:{error:t.onFailure}})]),t._v(" "),e("span",{staticClass:"template-picker__title"},[t._v("\n\t\t\t"+t._s(t.nameWithoutExt)+"\n\t\t")])])])}),[],!1,null,"5b09ec60",null).exports;var L=i(25108);const U={name:"TemplatePicker",components:{NcEmptyContent:A(),NcModal:m(),TemplatePreview:z},props:{logger:{type:Object,required:!0}},data:()=>({checked:-1,loading:!1,name:null,opened:!1,provider:null}),computed:{nameWithoutExt(){return this.name.indexOf(".")>-1?this.name.split(".").slice(0,-1).join("."):this.name},emptyTemplate(){var e,n;return{basename:t("files","Blank"),fileid:-1,filename:this.t("files","Blank"),hasPreview:!1,mime:(null===(e=this.provider)||void 0===e?void 0:e.mimetypes[0])||(null===(n=this.provider)||void 0===n?void 0:n.mimetypes)}},selectedTemplate(){return this.provider.templates.find((t=>t.fileid===this.checked))},style(){const t=(this.provider.ratio?this.provider.ratio:1.77)>1?240:160;return{"--margin":"8px","--width":t+"px","--border":"2px","--fullwidth":t+16+4+"px","--height":this.provider.ratio?Math.round(t/this.provider.ratio)+"px":null}}},methods:{async open(t,e){this.checked=this.emptyTemplate.fileid,this.name=t,this.provider=e;const n=(await async function(){return(await d.default.get((0,a.generateOcsUrl)("apps/files/api/v1/templates"))).data.ocs.data}()).find((t=>t.app===e.app&&t.label===e.label));if(null===n)throw new Error("Failed to match provider in results");this.provider=n,0!==n.templates.length?this.opened=!0:this.onSubmit()},close(){this.checked=this.emptyTemplate.fileid,this.loading=!1,this.name=null,this.opened=!1,this.provider=null},onCheck(t){this.checked=t},async onSubmit(){var t,e,n;this.loading=!0;const i=c(),o=null===(t=OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.App)||void 0===n?void 0:n.currentFileList;var s,r;this.nameWithoutExt===this.name&&(this.logger.debug("Fixed invalid filename",{name:this.name,extension:null===(s=this.provider)||void 0===s?void 0:s.extension}),this.name=this.name+(null===(r=this.provider)||void 0===r?void 0:r.extension));try{var l,u;const t=await async function(t,e,n){return(await d.default.post((0,a.generateOcsUrl)("apps/files/api/v1/templates/create"),{filePath:t,templatePath:e,templateType:n})).data.ocs.data}((0,p.normalize)("".concat(i,"/").concat(this.name)),null===(l=this.selectedTemplate)||void 0===l?void 0:l.filename,null===(u=this.selectedTemplate)||void 0===u?void 0:u.templateType);this.logger.debug("Created new file",t);const e=await(null==o?void 0:o.addAndFetchFileInfo(this.name).then(((t,e)=>e))),n=new OCA.Files.FileInfoModel(e,{filesClient:null==o?void 0:o.filesClient}),s=OCA.Files.fileActions.getDefaultFileAction(t.mime,"file",OC.PERMISSION_ALL);s&&s.action(t.basename,{$file:null==o?void 0:o.findFileEl(this.name),dir:i,fileList:o,fileActions:null==o?void 0:o.fileActions,fileInfoModel:n}),this.close()}catch(t){this.logger.error("Error while creating the new file from template"),L.error(t),(0,h.x2)(this.t("files","Unable to create new file from template"))}finally{this.loading=!1}}}};var V=i(54654),O={};O.styleTagTransform=B(),O.setAttributes=I(),O.insert=S().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),C()(V.Z,O),V.Z&&V.Z.locals&&V.Z.locals;const Z=(0,T.Z)(U,(function(){var t=this,e=t._self._c;return t.opened?e("NcModal",{staticClass:"templates-picker",attrs:{"clear-view-delay":-1,size:"large"},on:{close:t.close}},[e("form",{staticClass:"templates-picker__form",style:t.style,on:{submit:function(e){return e.preventDefault(),e.stopPropagation(),t.onSubmit.apply(null,arguments)}}},[e("h2",[t._v(t._s(t.t("files","Pick a template for {name}",{name:t.nameWithoutExt})))]),t._v(" "),e("ul",{staticClass:"templates-picker__list"},[e("TemplatePreview",t._b({attrs:{checked:t.checked===t.emptyTemplate.fileid},on:{check:t.onCheck}},"TemplatePreview",t.emptyTemplate,!1)),t._v(" "),t._l(t.provider.templates,(function(n){return e("TemplatePreview",t._b({key:n.fileid,attrs:{checked:t.checked===n.fileid,ratio:t.provider.ratio},on:{check:t.onCheck}},"TemplatePreview",n,!1))}))],2),t._v(" "),e("div",{staticClass:"templates-picker__buttons"},[e("input",{staticClass:"primary",attrs:{type:"submit","aria-label":t.t("files","Create a new file with the selected template")},domProps:{value:t.t("files","Create")}})])]),t._v(" "),t.loading?e("NcEmptyContent",{staticClass:"templates-picker__loading",attrs:{icon:"icon-loading"}},[t._v("\n\t\t"+t._s(t.t("files","Creating file"))+"\n\t")]):t._e()],1):t._e()}),[],!1,null,"d46f1dc6",null).exports,q=(0,o.IY)().setApp("files").detectUser().build();u.default.mixin({methods:{t:r.Iu,n:r.uN}});const R=document.createElement("div");R.id="template-picker",document.body.appendChild(R);let j=(0,s.j)("files","templates",[]),M=(0,s.j)("files","templates_path",!1);q.debug("Templates providers",j),q.debug("Templates folder",{templatesPath:M});const $=new(u.default.extend(Z))({name:"TemplatePicker",propsData:{logger:q}});$.$mount("#template-picker"),window.addEventListener("DOMContentLoaded",(function(){if(!M){q.debug("Templates folder not initialized");const t={attach(t){t.addMenuEntry({id:"template-init",displayName:(0,r.Iu)("files","Set up templates folder"),templateName:(0,r.Iu)("files","Templates"),iconClass:"icon-template-add",fileType:"file",actionLabel:(0,r.Iu)("files","Create new templates folder"),actionHandler(e){W(e),t.removeMenuEntry("template-init")}})}};OC.Plugins.register("OCA.Files.NewFileMenu",t)}})),j.forEach(((t,e)=>{const n={attach(n){const i=n.fileList;"files"!==i.id&&"files.public"!==i.id||n.addMenuEntry({id:"template-new-".concat(t.app,"-").concat(e),displayName:t.label,templateName:t.label+t.extension,iconClass:t.iconClass||"icon-file",fileType:"file",actionLabel:t.actionLabel,actionHandler(e){$.open(e,t)}})}};OC.Plugins.register("OCA.Files.NewFileMenu",n)}));const W=async function(t){const e=(c()+"/".concat(t)).replace("//","/");try{q.debug("Initializing the templates directory",{templatePath:e});const t=await d.default.post((0,a.generateOcsUrl)("apps/files/api/v1/templates/path"),{templatePath:e,copySystemTemplates:!0});OCA.Files.App.currentFileList.changeDirectory(e,!0,!0),j=t.data.ocs.data.templates,M=t.data.ocs.data.template_path}catch(t){q.error("Unable to initialize the templates directory"),(0,h.x2)((0,r.Iu)("files","Unable to initialize the templates directory"))}};var G=i(69183);!function(){const t={attach(t){(0,G.Ld)("nextcloud:unified-search.search",(e=>{let{query:n}=e;t.setFilter(n)})),(0,G.Ld)("nextcloud:unified-search.reset",(()=>{this.query=null,t.setFilter("")}))}};window.OC.Plugins.register("OCA.Files.FileList",t)}();var H=i(91770),K=i(78510);const Q=(0,o.IY)().setApp("files").detectUser().build();class Y{constructor(t){var e,n,i;e=this,i=void 0,(n=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(n="_action"))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,this.validateAction(t),this._action=t}get id(){return this._action.id}get displayName(){return this._action.displayName}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get default(){return this._action.default}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(t){if(!t.id||"string"!=typeof t.id)throw new Error("Invalid id");if(!t.displayName||"function"!=typeof t.displayName)throw new Error("Invalid displayName function");if(!t.iconSvgInline||"function"!=typeof t.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!t.exec||"function"!=typeof t.exec)throw new Error("Invalid exec function");if("enabled"in t&&"function"!=typeof t.enabled)throw new Error("Invalid enabled function");if("execBatch"in t&&"function"!=typeof t.execBatch)throw new Error("Invalid execBatch function");if("order"in t&&"number"!=typeof t.order)throw new Error("Invalid order");if("default"in t&&"boolean"!=typeof t.default)throw new Error("Invalid default");if("inline"in t&&"function"!=typeof t.inline)throw new Error("Invalid inline function");if("renderInline"in t&&"function"!=typeof t.renderInline)throw new Error("Invalid renderInline function")}}const J=function(t){void 0===window._nc_fileactions&&(window._nc_fileactions=[],Q.debug("FileActions initialized")),window._nc_fileactions.find((e=>e.id===t.id))?Q.error("FileAction ".concat(t.id," already registered"),{action:t}):window._nc_fileactions.push(t)},X=function(){return window._nc_fileactions||[]};J(new Y({id:"delete",displayName:(t,e)=>"trashbin"===e.id?(0,r.Iu)("files_trashbin","Delete permanently"):(0,r.Iu)("files","Delete"),iconSvgInline:()=>K,enabled:t=>t.length>0&&t.map((t=>t.permissions)).every((t=>0!=(t&H.y3.DELETE))),async exec(t){try{return await d.default.delete(t.source),(0,G.j8)("files:node:deleted",t),!0}catch(e){return Q.error("Error while deleting a file",{error:e,source:t.source,node:t}),!1}},async execBatch(t,e,n){return Promise.all(t.map((t=>this.exec(t,e,n))))},order:100}));var tt=i(54342);J(new Y({id:"open-folder",displayName(t){const e=t[0].attributes.displayName||t[0].basename;return(0,r.Iu)("files","Open folder {displayName}",{displayName:e})},iconSvgInline:()=>tt,enabled(t){if(1!==t.length)return!1;const e=t[0];return e.type===H.Tv.Folder&&0!=(e.permissions&H.y3.READ)},exec:async(t,e,n)=>!(!t||t.type!==H.Tv.Folder)&&(window.OCP.Files.Router.goToRoute(null,null,{dir:(0,p.join)(n,t.basename)}),null),async execBatch(t,e,n){return Promise.all(t.map((t=>this.exec(t,e,n))))},order:-100,default:!0}));var et=i(48250);const nt="details";J(new Y({id:nt,displayName:()=>(0,r.Iu)("files","Details"),iconSvgInline:()=>et,enabled:t=>{var e,n,i;return!(null===(e=window)||void 0===e||null===(n=e.OCA)||void 0===n||null===(i=n.Files)||void 0===i||!i.Sidebar)&&t.some((t=>{var e;return null===(e=t.root)||void 0===e?void 0:e.startsWith("/files/")}))},async exec(t){try{var e,n,i,o,s;return null===(e=window)||void 0===e||null===(n=e.OCA)||void 0===n||null===(i=n.Files)||void 0===i||null===(o=i.Sidebar)||void 0===o||null===(s=o.open)||void 0===s||s.call(o,t.path),null}catch(t){return Q.error("Error while opening sidebar",{error:t}),!1}},default:!0,order:-50}));var it=i(59305),ot=i(23664),st=i(69680),rt=i.n(st),at=i(10861),lt=i.n(at),ct=i(64192),dt=i.n(ct),ut=i(33581);const pt=function(){const t=(0,it.Q_)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:t=>e=>t.files[e],getNodes:t=>e=>e.map((e=>t.files[e])).filter(Boolean),getRoot:t=>e=>t.roots[e]},actions:{updateNodes(t){const e=t.reduce(((t,e)=>e.fileid?(t[e.fileid]=e,t):(Q.warn("Trying to update/set a node without fileid",e),t)),{});u.default.set(this,"files",{...this.files,...e})},deleteNodes(t){t.forEach((t=>{t.fileid&&u.default.delete(this.files,t.fileid)}))},setRoot(t){let{service:e,root:n}=t;u.default.set(this.roots,e,n)},onDeletedNode(t){this.deleteNodes([t])}}})(...arguments);return t._initialized||((0,G.Ld)("files:node:deleted",t.onDeletedNode),t._initialized=!0),t},ht=function(){const t=(0,it.Q_)("paths",{state:()=>({paths:{}}),getters:{getPath:t=>(e,n)=>{if(t.paths[e])return t.paths[e][n]}},actions:{addPath(t){this.paths[t.service]||u.default.set(this.paths,t.service,{}),u.default.set(this.paths[t.service],t.path,t.fileid)}}})(...arguments);return t._initialized||(t._initialized=!0),t},ft=(0,it.Q_)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];u.default.set(this,"selected",t)},setLastIndex(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;u.default.set(this,"lastSelection",t?this.selected:[]),u.default.set(this,"lastSelectedIndex",t)},reset(){u.default.set(this,"selected",[]),u.default.set(this,"lastSelection",[]),u.default.set(this,"lastSelectedIndex",null)}}}),At=(0,s.j)("files","viewConfigs",{}),vt=function(){const t=(0,it.Q_)("viewconfig",{state:()=>({viewConfig:At}),getters:{getConfig:t=>e=>t.viewConfig[e]||{}},actions:{onUpdate(t,e,n){this.viewConfig[t]||u.default.set(this.viewConfig,t,{}),u.default.set(this.viewConfig[t],e,n)},async update(t,e,n){d.default.put((0,a.generateUrl)("/apps/files/api/v1/views/".concat(t,"/").concat(e)),{value:n}),(0,G.j8)("files:viewconfig:updated",{view:t,key:e,value:n})},setSortingBy(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";this.update(e,"sorting_mode",t),this.update(e,"sorting_direction","asc")},toggleSortingDirection(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";const e="asc"===(this.getConfig(t)||{sorting_direction:"asc"}).sorting_direction?"desc":"asc";this.update(t,"sorting_direction",e)}}}),e=t(...arguments);return e._initialized||((0,G.Ld)("files:viewconfig:updated",(function(t){let{view:n,key:i,value:o}=t;e.onUpdate(n,i,o)})),e._initialized=!0),e};var mt=i(15764),gt=i(64412),wt=i.n(gt),bt=i(44706),Ct=i.n(bt);const yt=u.default.extend({name:"BreadCrumbs",components:{Home:mt.Z,NcBreadcrumbs:Ct(),NcBreadcrumb:wt()},props:{path:{type:String,default:"/"}},setup:()=>({filesStore:pt(),pathsStore:ht()}),computed:{currentView(){return this.$navigation.active},dirs(){var t;return["/",...this.path.split("/").filter(Boolean).map((t="/",e=>t+="".concat(e,"/"))).map((t=>t.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map((t=>{const e={...this.$route,query:{dir:t}};return{dir:t,exact:!0,name:this.getDirDisplayName(t),to:e}}))}},methods:{getNodeFromId(t){return this.filesStore.getNode(t)},getFileIdFromPath(t){var e;return this.pathsStore.getPath(null===(e=this.currentView)||void 0===e?void 0:e.id,t)},getDirDisplayName(e){var n;if("/"===e)return t("files","Home");const i=this.getFileIdFromPath(e),o=this.getNodeFromId(i);return(null==o||null===(n=o.attributes)||void 0===n?void 0:n.displayName)||(0,p.basename)(e)},onClick(t){var e;(null==t||null===(e=t.query)||void 0===e?void 0:e.dir)===this.$route.query.dir&&this.$emit("reload")},ariaLabel(e){var n,i;return(null==e||null===(n=e.to)||void 0===n||null===(i=n.query)||void 0===i?void 0:i.dir)===this.$route.query.dir?t("files","Reload current directory"):t("files",'Go to the "{dir}" directory',e)}}});var _t=i(39959),xt={};xt.styleTagTransform=B(),xt.setAttributes=I(),xt.insert=S().bind(null,"head"),xt.domAPI=_(),xt.insertStyleElement=E(),C()(_t.Z,xt),_t.Z&&_t.Z.locals&&_t.Z.locals;const St=(0,T.Z)(yt,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcBreadcrumbs",{attrs:{"data-cy-files-content-breadcrumbs":""}},t._l(t.sections,(function(n,i){return e("NcBreadcrumb",t._b({key:n.dir,attrs:{"aria-label":t.ariaLabel(n),title:t.ariaLabel(n)},nativeOn:{click:function(e){return t.onClick(n.to)}},scopedSlots:t._u([0===i?{key:"icon",fn:function(){return[e("Home",{attrs:{size:20}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",n,!1))})),1)}),[],!1,null,"68b3b20b",null).exports;var kt=i(35212),It=i(20296),Nt=i(74139),Et=i(3443),Ft=i.n(Et),Bt=i(79855),Pt=i(34829),Dt=i(45400),Tt=i.n(Dt),zt=i(12945),Lt=i.n(zt),Ut=i(20571),Vt=i.n(Ut),Ot=i(4777);const Zt=(0,it.Q_)("actionsmenu",{state:()=>({opened:null})}),qt=(0,s.j)("files","config",{show_hidden:!1,crop_image_previews:!0}),Rt=function(){const t=(0,it.Q_)("userconfig",{state:()=>({userConfig:qt}),actions:{onUpdate(t,e){u.default.set(this.userConfig,t,e)},async update(t,e){await d.default.put((0,a.generateUrl)("/apps/files/api/v1/config/"+t),{value:e}),(0,G.j8)("files:config:updated",{key:t,value:e})}}})(...arguments);return t._initialized||((0,G.Ld)("files:config:updated",(function(e){let{key:n,value:i}=e;t.onUpdate(n,i)})),t._initialized=!0),t},jt={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},computed:{element(){return this.render(this.source,this.currentView)}},watch:{element(){this.$el.replaceWith(this.element),this.$el=this.element}},mounted(){this.$el.replaceWith(this.element),this.$el=this.element}},Mt=(0,T.Z)(jt,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports;var $t=i(27856);const Wt={name:"CustomSvgIconRender",props:{svg:{type:String,required:!0}},watch:{svg(){this.$el.innerHTML=(0,$t.sanitize)(this.svg)}},mounted(){this.$el.innerHTML=(0,$t.sanitize)(this.svg)}};var Gt=i(61959),Ht={};Ht.styleTagTransform=B(),Ht.setAttributes=I(),Ht.insert=S().bind(null,"head"),Ht.domAPI=_(),Ht.insertStyleElement=E(),C()(Gt.Z,Ht),Gt.Z&&Gt.Z.locals&&Gt.Z.locals;const Kt=(0,T.Z)(Wt,(function(){return(0,this._self._c)("span",{staticClass:"custom-svg-icon"})}),[],!1,null,"93e9b2f4",null).exports,Qt=X(),Yt=u.default.extend({name:"FileEntry",components:{CustomElementRender:Mt,CustomSvgIconRender:Kt,FileIcon:Bt.Z,FolderIcon:Pt.default,Fragment:Nt.Fragment,NcActionButton:Tt(),NcActions:Lt(),NcCheckboxRadioSwitch:Vt(),NcLoadingIcon:dt(),StarIcon:Ot.default},props:{active:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},source:{type:Object,required:!0},index:{type:Number,required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const t=Zt(),e=pt(),n=function(){const t=(0,it.Q_)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(t){t||(t=window.event),u.default.set(this,"altKey",!!t.altKey),u.default.set(this,"ctrlKey",!!t.ctrlKey),u.default.set(this,"metaKey",!!t.metaKey),u.default.set(this,"shiftKey",!!t.shiftKey)}}})(...arguments);return t._initialized||(window.addEventListener("keydown",t.onEvent),window.addEventListener("keyup",t.onEvent),window.addEventListener("mousemove",t.onEvent),t._initialized=!0),t}();return{actionsMenuStore:t,filesStore:e,keyboardStore:n,selectionStore:ft(),userConfigStore:Rt()}},data:()=>({backgroundFailed:!1,backgroundImage:"",boundariesElement:document.querySelector(".app-content > .files-list"),loading:""}),computed:{userConfig(){return this.userConfigStore.userConfig},currentView(){return this.$navigation.active},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},fileid(){var t,e,n;return null===(t=this.source)||void 0===t||null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e)},extension(){var t;return null!==(t=this.source.attributes)&&void 0!==t&&t.displayName?(0,p.extname)(this.source.attributes.displayName):this.source.extension||""},displayName(){const t=this.extension,e=this.source.attributes.displayName||this.source.basename;return t?e.slice(0,0-t.length):e},size(){const t=parseInt(this.source.size,10)||0;return"number"!=typeof t||t<0?this.t("files","Pending"):(0,H.sS)(t,!0,!0).replace("iB","B")},sizeOpacity(){const t=parseInt(this.source.size,10)||0;return!t||t<0?1:.7+(1-.7)*Math.pow(this.source.size/10485760,2)},linkAttrs(){if(this.enabledDefaultActions.length>0){const t=this.enabledDefaultActions[0],e=t.displayName([this.source],this.currentView);return{class:["files-list__row-default-action","files-list__row-action-"+t.id],role:"button",title:e}}if("folder"===this.source.type){const t={...this.$route,query:{dir:(0,p.join)(this.dir,this.source.basename)}};return{is:"router-link",title:this.t("files","Open folder {name}",{name:this.displayName}),to:t}}return{href:this.source.source,title:this.t("files","Download file {name}",{name:this.displayName})}},selectedFiles(){return this.selectionStore.selected},isSelected(){var t,e,n;return this.selectedFiles.includes(null===(t=this.source)||void 0===t||null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e))},cropPreviews(){return this.userConfig.crop_image_previews},previewUrl(){try{const t=new URL(window.location.origin+this.source.attributes.previewUrl);return t.searchParams.set("x","32"),t.searchParams.set("y","32"),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(t){return null}},mimeIconUrl(){var t,e,n;const i=this.source.mime||"application/octet-stream",o=null===(t=window.OC)||void 0===t||null===(e=t.MimeType)||void 0===e||null===(n=e.getIconUrl)||void 0===n?void 0:n.call(e,i);return o?"url(".concat(o,")"):""},enabledActions(){return Qt.filter((t=>!t.enabled||t.enabled([this.source],this.currentView))).sort(((t,e)=>(t.order||0)-(e.order||0)))},enabledInlineActions(){return this.filesListWidth<768?[]:this.enabledActions.filter((t=>{var e;return null==t||null===(e=t.inline)||void 0===e?void 0:e.call(t,this.source,this.currentView)}))},enabledMenuActions(){if(this.filesListWidth<768)return this.enabledDefaultActions.length>0?this.enabledActions.slice(1):this.enabledActions;const t=[...this.enabledInlineActions,...this.enabledActions.filter((t=>!t.inline))];return this.enabledDefaultActions.length>0?t.slice(1):t},enabledDefaultActions(){return[...this.enabledActions.filter((t=>t.default))]},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId},set(t){this.actionsMenuStore.opened=t?this.uniqueId:null}},uniqueId(){return this.source.source.split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)},isFavorite(){return 1===this.source.attributes.favorite}},watch:{active(t,e){if(!1===t&&!0===e)return this.resetState(),void(this.$el.parentNode.style.display="none");this.$el.parentNode.style.display=""},previewUrl(){this.clearImg(),this.debounceIfNotCached()}},mounted(){var t,e;this.debounceGetPreview=(0,It.debounce)((function(){this.fetchAndApplyPreview()}),150,!1),this.debounceIfNotCached(),null===(t=this.$el.parentNode)||void 0===t||null===(e=t.addEventListener)||void 0===e||e.call(t,"contextmenu",this.onRightClick)},beforeDestroy(){this.resetState()},methods:{async debounceIfNotCached(){var t;if(this.previewUrl)return await(t=this.previewUrl,caches.open("previews").then((function(e){return e.match(t).then((function(t){return!!t}))})))?(this.backgroundImage="url(".concat(this.previewUrl,")"),void(this.backgroundFailed=!1)):void this.debounceGetPreview()},fetchAndApplyPreview(){this.previewUrl&&(this.previewPromise&&this.clearImg(),this.previewPromise=new(Ft())(((t,e,n)=>{const i=new Image;i.fetchpriority=this.active?"high":"auto",i.onload=()=>{this.backgroundImage="url(".concat(this.previewUrl,")"),this.backgroundFailed=!1,t(i)},i.onerror=()=>{this.backgroundFailed=!0,e(i)},i.src=this.previewUrl,n((()=>{i.onerror=null,i.onload=null,i.src=""}))})))},resetState(){this.loading="",this.clearImg(),this.openedMenu=!1},clearImg(){this.backgroundImage="",this.backgroundFailed=!1,this.previewPromise&&(this.previewPromise.cancel(),this.previewPromise=null)},async onActionClick(t){const e=t.displayName([this.source],this.currentView);try{this.loading=t.id,u.default.set(this.source,"_loading",!0);const n=await t.exec(this.source,this.currentView,this.dir);if(null===n)return;if(n)return void(0,h.s$)(this.t("files",'"{displayName}" action executed successfully',{displayName:e}));(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}catch(n){Q.error("Error while executing action",{action:t,e:n}),(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}finally{this.loading="",u.default.set(this.source,"_loading",!1)}},execDefaultAction(t){this.enabledDefaultActions.length>0&&(t.preventDefault(),t.stopPropagation(),this.enabledDefaultActions[0].exec(this.source,this.currentView,this.dir))},openDetailsIfAvailable(t){const e=this.enabledDefaultActions.find((t=>t.id===nt));e&&(t.preventDefault(),t.stopPropagation(),e.exec(this.source,this.currentView))},onSelectionChange(t){var e;const n=this.index,i=this.selectionStore.lastSelectedIndex;if(null!==(e=this.keyboardStore)&&void 0!==e&&e.shiftKey&&null!==i){const t=this.selectedFiles.includes(this.fileid),e=Math.min(n,i),o=Math.max(i,n),s=this.selectionStore.lastSelection,r=this.nodes.map((t=>{var e,n;return null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e)})).slice(e,o+1),a=[...s,...r].filter((e=>!t||e!==this.fileid));return Q.debug("Shift key pressed, selecting all files in between",{start:e,end:o,filesToSelect:r,isAlreadySelected:t}),void this.selectionStore.set(a)}Q.debug("Updating selection",{selection:t}),this.selectionStore.set(t),this.selectionStore.setLastIndex(n)},onRightClick(t){if(this.openedMenu)return;const e=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&e?"global":this.uniqueId,t.preventDefault(),t.stopPropagation()},t:r.Iu,formatFileSize:H.sS}});var Jt=i(79016),Xt={};Xt.styleTagTransform=B(),Xt.setAttributes=I(),Xt.insert=S().bind(null,"head"),Xt.domAPI=_(),Xt.insertStyleElement=E(),C()(Jt.Z,Xt),Jt.Z&&Jt.Z.locals&&Jt.Z.locals;var te=i(7173),ee={};ee.styleTagTransform=B(),ee.setAttributes=I(),ee.insert=S().bind(null,"head"),ee.domAPI=_(),ee.insertStyleElement=E(),C()(te.Z,ee),te.Z&&te.Z.locals&&te.Z.locals;const ne=(0,T.Z)(Yt,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("Fragment",[e("td",{staticClass:"files-list__row-checkbox"},[t.active?e("NcCheckboxRadioSwitch",{attrs:{"aria-label":t.t("files","Select the row for {displayName}",{displayName:t.displayName}),checked:t.selectedFiles,value:t.fileid,name:"selectedFiles"},on:{"update:checked":t.onSelectionChange}}):t._e()],1),t._v(" "),e("td",{staticClass:"files-list__row-name"},[e("a",t._b({ref:"name",on:{click:t.execDefaultAction}},"a",t.linkAttrs,!1),[e("span",{staticClass:"files-list__row-icon"},["folder"===t.source.type?e("FolderIcon"):t.previewUrl&&!t.backgroundFailed?e("span",{ref:"previewImg",staticClass:"files-list__row-icon-preview",style:{backgroundImage:t.backgroundImage}}):t.mimeIconUrl?e("span",{staticClass:"files-list__row-icon-preview files-list__row-icon-preview--mime",style:{backgroundImage:t.mimeIconUrl}}):e("FileIcon"),t._v(" "),t.isFavorite?e("span",{staticClass:"files-list__row-icon-favorite",attrs:{"aria-label":t.t("files","Favorite")}},[e("StarIcon",{attrs:{"aria-hidden":"true",size:20}})],1):t._e()],1),t._v(" "),e("span",{staticClass:"files-list__row-name-text"},[e("span",{staticClass:"files-list__row-name-name",domProps:{textContent:t._s(t.displayName)}}),t._v(" "),e("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:t._s(t.extension)}})])])]),t._v(" "),e("td",{staticClass:"files-list__row-actions",class:"files-list__row-actions-".concat(t.uniqueId)},[t.active?e("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":t.boundariesElement,container:t.boundariesElement,disabled:t.source._loading,"force-title":!0,"force-menu":!0,inline:t.enabledInlineActions.length,open:t.openedMenu},on:{"update:open":function(e){t.openedMenu=e}}},t._l(t.enabledMenuActions,(function(n){return e("NcActionButton",{key:n.id,class:"files-list__row-action-"+n.id,on:{click:function(e){return t.onActionClick(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading===n.id?e("NcLoadingIcon",{attrs:{size:18}}):e("CustomSvgIconRender",{attrs:{svg:n.iconSvgInline([t.source],t.currentView)}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t"+t._s(n.displayName([t.source],t.currentView))+"\n\t\t\t")])})),1):t._e()],1),t._v(" "),t.isSizeAvailable?e("td",{staticClass:"files-list__row-size",style:{opacity:t.sizeOpacity},on:{click:t.openDetailsIfAvailable}},[e("span",[t._v(t._s(t.size))])]):t._e(),t._v(" "),t._l(t.columns,(function(n){var i;return e("td",{key:n.id,staticClass:"files-list__row-column-custom",class:"files-list__row-".concat(null===(i=t.currentView)||void 0===i?void 0:i.id,"-").concat(n.id),on:{click:t.openDetailsIfAvailable}},[t.active?e("CustomElementRender",{attrs:{"current-view":t.currentView,render:n.render,source:t.source}}):t._e()],1)}))],2)}),[],!1,null,"71eb16b5",null).exports,ie=u.default.extend({name:"FilesListFooter",components:{},props:{isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const t=ht();return{filesStore:pt(),pathsStore:t}},computed:{currentView(){return this.$navigation.active},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},currentFolder(){var t;if(null===(t=this.currentView)||void 0===t||!t.id)return;if("/"===this.dir)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.dir);return this.filesStore.getNode(e)},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},totalSize(){var t;return null!==(t=this.currentFolder)&&void 0!==t&&t.size?(0,H.sS)(this.currentFolder.size,!0,!0).replace("iB","B"):(0,H.sS)(this.nodes.reduce(((t,e)=>t+e.size||0),0),!0,!0).replace("iB","B")}},methods:{classForColumn(t){return{"files-list__row-column-custom":!0,["files-list__row-".concat(this.currentView.id,"-").concat(t.id)]:!0}},t:r.Iu}});var oe=i(82975),se={};se.styleTagTransform=B(),se.setAttributes=I(),se.insert=S().bind(null,"head"),se.domAPI=_(),se.insertStyleElement=E(),C()(oe.Z,se),oe.Z&&oe.Z.locals&&oe.Z.locals;const re=(0,T.Z)(ie,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",[e("th",{staticClass:"files-list__row-checkbox"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("files","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"files-list__row-name"},[e("span",{staticClass:"files-list__row-icon"}),t._v(" "),e("span",[t._v(t._s(t.summary))])]),t._v(" "),e("td",{staticClass:"files-list__row-actions"}),t._v(" "),t.isSizeAvailable?e("td",{staticClass:"files-list__column files-list__row-size"},[e("span",[t._v(t._s(t.totalSize))])]):t._e(),t._v(" "),t._l(t.columns,(function(n){var i;return e("th",{key:n.id,class:t.classForColumn(n)},[e("span",[t._v(t._s(null===(i=n.summary)||void 0===i?void 0:i.call(n,t.nodes,t.currentView)))])])}))],2)}),[],!1,null,"2e19f455",null).exports,ae=u.default.extend({data:()=>({filesListWidth:null}),created(){const t=document.querySelector("#app-content-vue");this.$resizeObserver=new ResizeObserver((e=>{e.length>0&&e[0].target===t&&(this.filesListWidth=e[0].contentRect.width)})),this.$resizeObserver.observe(t)},beforeDestroy(){this.$resizeObserver.disconnect()}}),le=X(),ce=u.default.extend({name:"FilesListHeaderActions",components:{CustomSvgIconRender:Kt,NcActions:Lt(),NcActionButton:Tt(),NcLoadingIcon:dt()},mixins:[ae],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup:()=>({actionsMenuStore:Zt(),filesStore:pt(),selectionStore:ft()}),data:()=>({loading:null}),computed:{dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},enabledActions(){return le.filter((t=>t.execBatch)).filter((t=>!t.enabled||t.enabled(this.nodes,this.currentView))).sort(((t,e)=>(t.order||0)-(e.order||0)))},nodes(){return this.selectedNodes.map((t=>this.getNode(t))).filter((t=>t))},areSomeNodesLoading(){return this.nodes.some((t=>t._loading))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(t){this.actionsMenuStore.opened=t?"global":null}},inlineActions(){return this.filesListWidth<512?0:this.filesListWidth<768?1:this.filesListWidth<1024?2:3}},methods:{getNode(t){return this.filesStore.getNode(t)},async onActionClick(t){const e=t.displayName(this.nodes,this.currentView),n=this.selectedNodes;try{this.loading=t.id,this.nodes.forEach((t=>{u.default.set(t,"_loading",!0)}));const i=await t.execBatch(this.nodes,this.currentView,this.dir);if(!i.some((t=>null!==t)))return void this.selectionStore.reset();if(i.some((t=>!1===t))){const t=n.filter(((t,e)=>!1===i[e]));return this.selectionStore.set(t),void(0,h.x2)(this.t("files",'"{displayName}" failed on some elements ',{displayName:e}))}(0,h.s$)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:e})),this.selectionStore.reset()}catch(n){Q.error("Error while executing action",{action:t,e:n}),(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}finally{this.loading=null,this.nodes.forEach((t=>{u.default.set(t,"_loading",!1)}))}},t:r.Iu}});var de=i(97877),ue={};ue.styleTagTransform=B(),ue.setAttributes=I(),ue.insert=S().bind(null,"head"),ue.domAPI=_(),ue.insertStyleElement=E(),C()(de.Z,ue),de.Z&&de.Z.locals&&de.Z.locals;const pe=(0,T.Z)(ce,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("th",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{colspan:"2"}},[e("NcActions",{ref:"actionsMenu",attrs:{disabled:!!t.loading||t.areSomeNodesLoading,"force-title":!0,inline:t.inlineActions,"menu-title":t.inlineActions<=1?t.t("files","Actions"):null,open:t.openedMenu},on:{"update:open":function(e){t.openedMenu=e}}},t._l(t.enabledActions,(function(n){return e("NcActionButton",{key:n.id,class:"files-list__row-actions-batch-"+n.id,on:{click:function(e){return t.onActionClick(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading===n.id?e("NcLoadingIcon",{attrs:{size:18}}):e("CustomSvgIconRender",{attrs:{svg:n.iconSvgInline(t.nodes,t.currentView)}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t"+t._s(n.displayName(t.nodes,t.currentView))+"\n\t\t")])})),1)],1)}),[],!1,null,"03e57b1e",null).exports;var he=i(20404),fe=i(23873);const Ae=u.default.extend({computed:{...(0,it.rn)(vt,["getConfig","setSortingBy","toggleSortingDirection"]),currentView(){return this.$navigation.active},sortingMode(){var t,e;return(null===(t=this.getConfig(this.currentView.id))||void 0===t?void 0:t.sorting_mode)||(null===(e=this.currentView)||void 0===e?void 0:e.defaultSortKey)||"basename"},isAscSorting(){var t;return"asc"===(null===(t=this.getConfig(this.currentView.id))||void 0===t?void 0:t.sorting_direction)}},methods:{toggleSortBy(t){this.sortingMode!==t?this.setSortingBy(t,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),ve=u.default.extend({name:"FilesListHeaderButton",components:{MenuDown:he.Z,MenuUp:fe.Z,NcButton:lt()},mixins:[Ae],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{sortAriaLabel(t){const e=this.isAscSorting?this.t("files","ascending"):this.t("files","descending");return this.t("files","Sort list by {column} ({direction})",{column:t,direction:e})},t:r.Iu}});var me=i(29252),ge={};ge.styleTagTransform=B(),ge.setAttributes=I(),ge.insert=S().bind(null,"head"),ge.domAPI=_(),ge.insertStyleElement=E(),C()(me.Z,ge),me.Z&&me.Z.locals&&me.Z.locals;const we=(0,T.Z)(ve,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcButton",{staticClass:"files-list__column-sort-button",class:{"files-list__column-sort-button--active":t.sortingMode===t.mode},attrs:{"aria-label":t.sortAriaLabel(t.name),type:"tertiary"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.toggleSortBy(t.mode)}}},[t.sortingMode!==t.mode||t.isAscSorting?e("MenuUp",{attrs:{slot:"icon"},slot:"icon"}):e("MenuDown",{attrs:{slot:"icon"},slot:"icon"}),t._v("\n\t"+t._s(t.name)+"\n")],1)}),[],!1,null,null,null).exports,be=u.default.extend({name:"FilesListHeader",components:{FilesListHeaderButton:we,NcCheckboxRadioSwitch:Vt(),FilesListHeaderActions:pe},mixins:[Ae],props:{isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup:()=>({filesStore:pt(),selectionStore:ft()}),computed:{currentView(){return this.$navigation.active},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const t=this.isNoneSelected||this.isSomeSelected?this.t("files","Select all"):this.t("files","Unselect all");return{"aria-label":t,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:t}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},methods:{classForColumn(t){return{"files-list__column":!0,"files-list__column--sortable":!!t.sort,"files-list__row-column-custom":!0,["files-list__row-".concat(this.currentView.id,"-").concat(t.id)]:!0}},onToggleAll(t){if(t){const t=this.nodes.map((t=>t.fileid.toString()));Q.debug("Added all nodes to selection",{selection:t}),this.selectionStore.setLastIndex(null),this.selectionStore.set(t)}else Q.debug("Cleared selection"),this.selectionStore.reset()},t:r.Iu}});var Ce=i(96153),ye={};ye.styleTagTransform=B(),ye.setAttributes=I(),ye.insert=S().bind(null,"head"),ye.domAPI=_(),ye.insertStyleElement=E(),C()(Ce.Z,ye),Ce.Z&&Ce.Z.locals&&Ce.Z.locals;const _e=(0,T.Z)(be,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",[e("th",{staticClass:"files-list__column files-list__row-checkbox"},[e("NcCheckboxRadioSwitch",t._b({on:{"update:checked":t.onToggleAll}},"NcCheckboxRadioSwitch",t.selectAllBind,!1))],1),t._v(" "),t.isNoneSelected?[e("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.toggleSortBy("basename")}}},[e("span",{staticClass:"files-list__row-icon"}),t._v(" "),e("FilesListHeaderButton",{attrs:{name:t.t("files","Name"),mode:"basename"}})],1),t._v(" "),e("th",{staticClass:"files-list__row-actions"}),t._v(" "),t.isSizeAvailable?e("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":t.isSizeAvailable}},[e("FilesListHeaderButton",{attrs:{name:t.t("files","Size"),mode:"size"}})],1):t._e(),t._v(" "),t._l(t.columns,(function(n){return e("th",{key:n.id,class:t.classForColumn(n)},[n.sort?e("FilesListHeaderButton",{attrs:{name:n.title,mode:n.id}}):e("span",[t._v("\n\t\t\t\t"+t._s(n.title)+"\n\t\t\t")])],1)}))]:e("FilesListHeaderActions",{attrs:{"current-view":t.currentView,"selected-nodes":t.selectedNodes}})],2)}),[],!1,null,"76b6186a",null).exports,xe=u.default.extend({name:"FilesListVirtual",components:{RecycleScroller:kt.EK,FileEntry:ne,FilesListHeader:_e,FilesListFooter:re},mixins:[ae],props:{currentView:{type:Object,required:!0},nodes:{type:Array,required:!0}},data:()=>({FileEntry:ne}),computed:{files(){return this.nodes.filter((t=>"file"===t.type))},summaryFile(){const t=this.files.length;return(0,r.uN)("files","{count} file","{count} files",t,{count:t})},summaryFolder(){const t=this.nodes.length-this.files.length;return(0,r.uN)("files","{count} folder","{count} folders",t,{count:t})},summary(){return(0,r.Iu)("files","{summaryFile} and {summaryFolder}",this)},isSizeAvailable(){return!(this.filesListWidth<768)&&this.nodes.some((t=>void 0!==t.attributes.size))}},mounted(){const t=this.$el.querySelectorAll(".vue-recycle-scroller__slot");t[0].setAttribute("role","thead"),t[1].setAttribute("role","tfoot")},methods:{getFileId:t=>t.fileid,t:r.Iu}});var Se=i(59473),ke={};ke.styleTagTransform=B(),ke.setAttributes=I(),ke.insert=S().bind(null,"head"),ke.domAPI=_(),ke.insertStyleElement=E(),C()(Se.Z,ke),Se.Z&&Se.Z.locals&&Se.Z.locals;const Ie=(0,T.Z)(xe,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("RecycleScroller",{ref:"recycleScroller",staticClass:"files-list",attrs:{"key-field":"source",items:t.nodes,"item-size":55,"table-mode":!0,"item-class":"files-list__row","item-tag":"tr","list-class":"files-list__body","list-tag":"tbody",role:"table"},scopedSlots:t._u([{key:"default",fn:function(n){let{item:i,active:o,index:s}=n;return[e("FileEntry",{attrs:{active:o,index:s,"is-size-available":t.isSizeAvailable,"files-list-width":t.filesListWidth,nodes:t.nodes,source:i}})]}},{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.currentView.caption||"")+"\n\t\t\t"+t._s(t.t("files","This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list."))+"\n\t\t")]),t._v(" "),e("FilesListHeader",{attrs:{"files-list-width":t.filesListWidth,"is-size-available":t.isSizeAvailable,nodes:t.nodes}})]},proxy:!0},{key:"after",fn:function(){return[e("FilesListFooter",{attrs:{"files-list-width":t.filesListWidth,"is-size-available":t.isSizeAvailable,nodes:t.nodes,summary:t.summary}})]},proxy:!0}])})}),[],!1,null,"7be0268a",null).exports;var Ne=i(14222);function Ee(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const Fe=class{constructor(){Ee(this,"_views",[]),Ee(this,"_currentView",null),Q.debug("Navigation service initialized")}register(t){try{Pe(t),Be(t,this._views)}catch(e){throw e instanceof Error&&Q.error(e.message,{view:t}),e}t.legacy&&Q.warn("Legacy view detected, please migrate to Vue"),t.iconClass&&(t.legacy=!0),this._views.push(t)}remove(t){const e=this._views.findIndex((e=>e.id===t));-1!==e&&this._views.splice(e,1)}get views(){return this._views}setActive(t){this._currentView=t}get active(){return this._currentView}},Be=function(t,e){if(e.find((e=>e.id===t.id)))throw new Error("Navigation id ".concat(t.id," is already registered"));return!0},Pe=function(t){if(!t.id||"string"!=typeof t.id)throw new Error("Navigation id is required and must be a string");if(!t.name||"string"!=typeof t.name)throw new Error("Navigation name is required and must be a string");if(!t.legacy){if(!t.getContents||"function"!=typeof t.getContents)throw new Error("Navigation getContents is required and must be a function");if(!t.icon||"string"!=typeof t.icon||!(0,Ne.Z)(t.icon))throw new Error("Navigation icon is required and must be a valid svg string")}if(!("order"in t)||"number"!=typeof t.order)throw new Error("Navigation order is required and must be a number");if(t.columns&&t.columns.forEach(De),t.emptyView&&"function"!=typeof t.emptyView)throw new Error("Navigation emptyView must be a function");if(t.parent&&"string"!=typeof t.parent)throw new Error("Navigation parent must be a string");if("sticky"in t&&"boolean"!=typeof t.sticky)throw new Error("Navigation sticky must be a boolean");if("expanded"in t&&"boolean"!=typeof t.expanded)throw new Error("Navigation expanded must be a boolean");if(t.defaultSortKey&&"string"!=typeof t.defaultSortKey)throw new Error("Navigation defaultSortKey must be a string");return!0},De=function(t){if(!t.id||"string"!=typeof t.id)throw new Error("A column id is required");if(!t.title||"string"!=typeof t.title)throw new Error("A column title is required");if(!t.render||"function"!=typeof t.render)throw new Error("A render function is required");if(t.sort&&"function"!=typeof t.sort)throw new Error("Column sortFunction must be a function");if(t.summary&&"function"!=typeof t.summary)throw new Error("Column summary must be a function");return!0},Te=u.default.extend({name:"FilesList",components:{BreadCrumbs:St,FilesListVirtual:Ie,NcAppContent:rt(),NcButton:lt(),NcEmptyContent:A(),NcLoadingIcon:dt(),TrashCan:ut.Z},mixins:[Ae],setup(){const t=ht();return{filesStore:pt(),pathsStore:t,selectionStore:ft(),viewConfigStore:vt()}},data:()=>({loading:!0,promise:null}),computed:{currentView(){return this.$navigation.active||this.$navigation.views.find((t=>"files"===t.id))},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},currentFolder(){var t;if(null===(t=this.currentView)||void 0===t||!t.id)return;if("/"===this.dir)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.dir);return this.filesStore.getNode(e)},dirContents(){var t,e;if(!this.currentView)return[];const n=((null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]).find((t=>t.id===this.sortingMode));if(null!=n&&n.sort&&"function"==typeof n.sort){var i;const t=[...((null===(i=this.currentFolder)||void 0===i?void 0:i._children)||[]).map(this.getNode).filter((t=>t))].sort(n.sort);return this.isAscSorting?t:t.reverse()}return(0,ot.X)([...((null===(e=this.currentFolder)||void 0===e?void 0:e._children)||[]).map(this.getNode).filter((t=>t))],[..."basename"===this.sortingMode?[t=>"folder"!==t.type]:[],t=>t[this.sortingMode],t=>t.basename],this.isAscSorting?["asc","asc","asc"]:["desc","desc","desc"])},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const t=this.dir.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:t}}}},watch:{currentView(t,e){(null==t?void 0:t.id)!==(null==e?void 0:e.id)&&(Q.debug("View changed",{newView:t,oldView:e}),this.selectionStore.reset(),this.fetchContent())},dir(t,e){var n,i;Q.debug("Directory changed",{newDir:t,oldDir:e}),this.selectionStore.reset(),this.fetchContent(),null!==(n=this.$refs)&&void 0!==n&&null!==(i=n.filesListVirtual)&&void 0!==i&&i.$el&&(this.$refs.filesListVirtual.$el.scrollTop=0)}},methods:{async fetchContent(){var t,e;if(null!==(t=this.currentView)&&void 0!==t&&t.legacy)return;this.loading=!0;const n=this.dir,i=this.currentView;"function"==typeof(null===(e=this.promise)||void 0===e?void 0:e.cancel)&&(this.promise.cancel(),Q.debug("Cancelled previous ongoing fetch")),this.promise=i.getContents(n);try{const{folder:t,contents:e}=await this.promise;Q.debug("Fetched contents",{dir:n,folder:t,contents:e}),this.filesStore.updateNodes(e),t._children=e.map((t=>t.fileid)),"/"===n?this.filesStore.setRoot({service:i.id,root:t}):t.fileid?(this.filesStore.updateNodes([t]),this.pathsStore.addPath({service:i.id,fileid:t.fileid,path:n})):Q.error("Invalid root folder returned",{dir:n,folder:t,currentView:i}),e.filter((t=>"folder"===t.type)).forEach((t=>{this.pathsStore.addPath({service:i.id,fileid:t.fileid,path:(0,p.join)(n,t.basename)})}))}catch(t){Q.error("Error while fetching content",{error:t})}finally{this.loading=!1}},getNode(t){return this.filesStore.getNode(t)},t:r.Iu}});var ze=i(1508),Le={};Le.styleTagTransform=B(),Le.setAttributes=I(),Le.insert=S().bind(null,"head"),Le.domAPI=_(),Le.insertStyleElement=E(),C()(ze.Z,Le),ze.Z&&ze.Z.locals&&ze.Z.locals;const Ue=(0,T.Z)(Te,(function(){var t,e,n=this,i=n._self._c;return n._self._setupProxy,i("NcAppContent",{directives:[{name:"show",rawName:"v-show",value:!(null!==(t=n.currentView)&&void 0!==t&&t.legacy),expression:"!currentView?.legacy"}],class:{"app-content--hidden":null===(e=n.currentView)||void 0===e?void 0:e.legacy},attrs:{"data-cy-files-content":""}},[i("div",{staticClass:"files-list__header"},[i("BreadCrumbs",{attrs:{path:n.dir},on:{reload:n.fetchContent}}),n._v(" "),n.isRefreshing?i("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):n._e()],1),n._v(" "),n.loading&&!n.isRefreshing?i("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,title:n.t("files","Loading current folder")}}):!n.loading&&n.isEmptyDir?i("NcEmptyContent",{attrs:{title:n.t("files","No files in here"),description:n.t("files","No files or folders have been deleted yet"),"data-cy-files-content-empty":""},scopedSlots:n._u([{key:"action",fn:function(){return["/"!==n.dir?i("NcButton",{attrs:{"aria-label":"t('files', 'Go to the previous folder')",type:"primary",to:n.toPreviousDir}},[n._v("\n\t\t\t\t"+n._s(n.t("files","Go back"))+"\n\t\t\t")]):n._e()]},proxy:!0},{key:"icon",fn:function(){return[i("TrashCan")]},proxy:!0}])}):i("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-view":n.currentView,nodes:n.dirContents}})],1)}),[],!1,null,"66068cbb",null).exports;var Ve=i(57638),Oe=i(55209),Ze=i.n(Oe),qe=i(14032),Re=i.n(qe),je=i(91211),Me=i.n(je);var $e=i(28615),We=i(74184),Ge=i(48959),He=i.n(Ge);const Ke={name:"NavigationQuota",components:{ChartPie:We.Z,NcAppNavigationItem:Re(),NcProgressBar:He()},data:()=>({loadingStorageStats:!1,storageStats:(0,s.j)("files","storageStats",null)}),computed:{storageStatsTitle(){var t,e,n;const i=(0,H.sS)(null===(t=this.storageStats)||void 0===t?void 0:t.used,!1,!0).replace("iB","B"),o=(0,H.sS)(null===(e=this.storageStats)||void 0===e?void 0:e.quota,!1,!0).replace("iB","B");return(null===(n=this.storageStats)||void 0===n?void 0:n.quota)<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:i}):this.t("files","{used} of {quota} used",{used:i,quota:o})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,G.Ld)("files:node:created",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:deleted",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:moved",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:updated",this.throttleUpdateStorageStats)},methods:{debounceUpdateStorageStats:(0,$e.D)(200,(function(t){this.updateStorageStats(t)})),throttleUpdateStorageStats:(0,$e.P)(1e3,(function(t){this.updateStorageStats(t)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{var n;const t=await d.default.get((0,a.generateUrl)("/apps/files/api/v1/stats"));if(null==t||null===(n=t.data)||void 0===n||!n.data)throw new Error("Invalid storage stats");this.storageStats=t.data.data}catch(n){Q.error("Could not refresh storage stats",{error:n}),e&&(0,h.x2)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},t:r.Iu}};var Qe=i(81253),Ye={};Ye.styleTagTransform=B(),Ye.setAttributes=I(),Ye.insert=S().bind(null,"head"),Ye.domAPI=_(),Ye.insertStyleElement=E(),C()(Qe.Z,Ye),Qe.Z&&Qe.Z.locals&&Qe.Z.locals;const Je=(0,T.Z)(Ke,(function(){var t=this,e=t._self._c;return t.storageStats?e("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":t.storageStats.quota>=0},attrs:{"aria-label":t.t("files","Storage informations"),loading:t.loadingStorageStats,name:t.storageStatsTitle,title:t.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.debounceUpdateStorageStats.apply(null,arguments)}}},[e("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),t._v(" "),t.storageStats.quota>=0?e("NcProgressBar",{attrs:{slot:"extra",error:t.storageStats.relative>80,value:Math.min(t.storageStats.relative,100)},slot:"extra"}):t._e()],1):t._e()}),[],!1,null,"9741374e",null).exports;var Xe=i(68988),tn=i.n(Xe),en=i(16809),nn=i.n(en),on=i(70386),sn=i(36029),rn=i.n(sn);const an={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},ln=(0,T.Z)(an,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,cn={name:"Settings",components:{Clipboard:on.Z,NcAppSettingsDialog:tn(),NcAppSettingsSection:nn(),NcCheckboxRadioSwitch:Vt(),NcInputField:rn(),Setting:ln},props:{open:{type:Boolean,default:!1}},setup:()=>({userConfigStore:Rt()}),data(){var t,e,n,i;return{settings:(null===(t=window.OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.Settings)||void 0===n?void 0:n.settings)||[],webdavUrl:(0,a.generateRemoteUrl)("dav/files/"+encodeURIComponent(null===(i=(0,l.ts)())||void 0===i?void 0:i.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,a.generateUrl)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1}},computed:{userConfig(){return this.userConfigStore.userConfig}},beforeMount(){this.settings.forEach((t=>t.open()))},beforeDestroy(){this.settings.forEach((t=>t.close()))},methods:{onClose(){this.$emit("close")},setConfig(t,e){this.userConfigStore.update(t,e)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,h.s$)(t("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,h.x2)(t("files","Clipboard is not available"))},t:r.Iu}},dn=cn;var un=i(35662),pn={};pn.styleTagTransform=B(),pn.setAttributes=I(),pn.insert=S().bind(null,"head"),pn.domAPI=_(),pn.insertStyleElement=E(),C()(un.Z,pn),un.Z&&un.Z.locals&&un.Z.locals;const hn=(0,T.Z)(dn,(function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.open,"show-navigation":!0,title:t.t("files","Files settings")},on:{"update:open":t.onClose}},[e("NcAppSettingsSection",{attrs:{id:"settings",title:t.t("files","Files settings")}},[e("NcCheckboxRadioSwitch",{attrs:{checked:t.userConfig.show_hidden},on:{"update:checked":function(e){return t.setConfig("show_hidden",e)}}},[t._v("\n\t\t\t"+t._s(t.t("files","Show hidden files"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.userConfig.crop_image_previews},on:{"update:checked":function(e){return t.setConfig("crop_image_previews",e)}}},[t._v("\n\t\t\t"+t._s(t.t("files","Crop image previews"))+"\n\t\t")])],1),t._v(" "),0!==t.settings.length?e("NcAppSettingsSection",{attrs:{id:"more-settings",title:t.t("files","Additional settings")}},[t._l(t.settings,(function(t){return[e("Setting",{key:t.name,attrs:{el:t.el}})]}))],2):t._e(),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"webdav",title:t.t("files","WebDAV")}},[e("NcInputField",{attrs:{id:"webdav-url-input","show-trailing-button":!0,success:t.webdavUrlCopied,"trailing-button-label":t.t("files","Copy to clipboard"),value:t.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(t){return t.target.select()},"trailing-button-click":t.copyCloudId},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("em",[e("a",{staticClass:"setting-link",attrs:{href:t.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[t._v("\n\t\t\t\t"+t._s(t.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),t._v(" "),e("br"),t._v(" "),e("em",[e("a",{staticClass:"setting-link",attrs:{href:t.appPasswordUrl}},[t._v("\n\t\t\t\t"+t._s(t.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1)],1)}),[],!1,null,"76ca5d1f",null).exports,fn={name:"Navigation",components:{Cog:Ve.default,NavigationQuota:Je,NcAppNavigation:Ze(),NcAppNavigationItem:Re(),NcIconSvgWrapper:Me(),SettingsModal:hn},props:{Navigation:{type:Fe,required:!0}},setup:()=>({viewConfigStore:vt()}),data:()=>({settingsOpened:!1}),computed:{currentViewId(){var t,e;return(null===(t=this.$route)||void 0===t||null===(e=t.params)||void 0===e?void 0:e.view)||"files"},currentView(){return this.views.find((t=>t.id===this.currentViewId))},views(){return this.Navigation.views},parentViews(){return this.views.filter((t=>!t.parent)).sort(((t,e)=>t.order-e.order))},childViews(){return this.views.filter((t=>!!t.parent)).reduce(((t,e)=>(t[e.parent]=[...t[e.parent]||[],e],t[e.parent].sort(((t,e)=>t.order-e.order)),t)),{})}},watch:{currentView(t,e){(null==t?void 0:t.id)!==(null==e?void 0:e.id)&&(this.Navigation.setActive(t),Q.debug("Navigation changed",{id:t.id,view:t}),this.showView(t,e))}},beforeMount(){this.currentView&&(Q.debug("Navigation mounted. Showing requested view",{view:this.currentView}),this.showView(this.currentView)),(0,G.Ld)("files:legacy-navigation:changed",this.onLegacyNavigationChanged),(0,G.Ld)("files:legacy-view:initialized",(()=>{Q.debug("Legacy view initialized",{...this.currentView}),this.showView(this.currentView)}))},methods:{showView(t,e){var n,i,o,s,r;if(null===(n=window)||void 0===n||null===(i=n.OCA)||void 0===i||null===(o=i.Files)||void 0===o||null===(s=o.Sidebar)||void 0===s||null===(r=s.close)||void 0===r||r.call(s),null!=t&&t.legacy){const e=document.querySelector("#app-content #app-content-"+this.currentView.id+".viewcontainer");document.querySelectorAll("#app-content .viewcontainer").forEach((t=>{t.classList.add("hidden")})),e.classList.remove("hidden");const{dir:n="/"}=OC.Util.History.parseUrlQuery(),i={itemId:t.id,dir:n};Q.debug("Triggering legacy navigation event",i),window.jQuery(e).trigger(new window.jQuery.Event("show",i)),window.jQuery(e).trigger(new window.jQuery.Event("urlChanged",i))}this.Navigation.setActive(t),function(t){const e=document.getElementById("page-heading-level-1");e&&(e.textContent=t)}(t.name),(0,G.j8)("files:navigation:changed",t)},onLegacyNavigationChanged(){let{id:t="files",silent:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=this.Navigation.views.find((e=>e.id===t));n&&n.legacy&&n.id!==this.currentView.id&&(this.$router.replace({...this.$route,params:{view:n.id}}),e||(this.Navigation.setActive(n),this.showView(n)))},onToggleExpand(t){const e=this.isExpanded(t);t.expanded=!e,this.viewConfigStore.update(t.id,"expanded",!e)},isExpanded(t){var e;return"boolean"==typeof(null===(e=this.viewConfigStore.getConfig(t.id))||void 0===e?void 0:e.expanded)?!0===this.viewConfigStore.getConfig(t.id).expanded:!0===t.expanded},generateToNavigation(t){if(t.params){const{dir:e,fileid:n}=t.params;return{name:"filelist",params:t.params,query:{dir:e,fileid:n}}}return{name:"filelist",params:{view:t.id}}},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1},t:r.Iu}},An=fn;var vn=i(18131),mn={};mn.styleTagTransform=B(),mn.setAttributes=I(),mn.insert=S().bind(null,"head"),mn.domAPI=_(),mn.insertStyleElement=E(),C()(vn.Z,mn),vn.Z&&vn.Z.locals&&vn.Z.locals;const gn=(0,T.Z)(An,(function(){var t=this,e=t._self._c;return e("NcAppNavigation",{attrs:{"data-cy-files-navigation":""},scopedSlots:t._u([{key:"list",fn:function(){return t._l(t.parentViews,(function(n){return e("NcAppNavigationItem",{key:n.id,attrs:{"allow-collapse":!0,"data-cy-files-navigation-item":n.id,icon:n.iconClass,open:t.isExpanded(n),pinned:n.sticky,title:n.name,to:t.generateToNavigation(n)},on:{"update:open":function(e){return t.onToggleExpand(n)}}},[n.icon?e("NcIconSvgWrapper",{attrs:{slot:"icon",svg:n.icon},slot:"icon"}):t._e(),t._v(" "),t._l(t.childViews[n.id],(function(n){return e("NcAppNavigationItem",{key:n.id,attrs:{"data-cy-files-navigation-item":n.id,exact:!0,icon:n.iconClass,title:n.name,to:t.generateToNavigation(n)}},[n.icon?e("NcIconSvgWrapper",{attrs:{slot:"icon",svg:n.icon},slot:"icon"}):t._e()],1)}))],2)}))},proxy:!0},{key:"footer",fn:function(){return[e("ul",{staticClass:"app-navigation-entry__settings"},[e("NavigationQuota"),t._v(" "),e("NcAppNavigationItem",{attrs:{"aria-label":t.t("files","Open the files app settings"),title:t.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.openSettings.apply(null,arguments)}}},[e("Cog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])},[t._v(" "),t._v(" "),e("SettingsModal",{attrs:{open:t.settingsOpened,"data-cy-files-navigation-settings":""},on:{close:t.onSettingsClose}})],1)}),[],!1,null,"dd350a0c",null).exports,wn=function(t){let{id:e,name:n,order:i,icon:o,parent:s,classes:r="",expanded:a,params:l}=t;OCP.Files.Navigation.register({id:e,name:n,order:i,params:l,parent:s,expanded:!0===a,iconClass:o?"icon-".concat(o):"nav-icon-"+e,legacy:!0,sticky:r.includes("pinned")})};var bn=i(78345),Cn=i(97047);u.default.use(bn.ZP);const yn=new bn.ZP({mode:"history",base:(0,a.generateUrl)("/apps/files",""),linkActiveClass:"active",routes:[{path:"/",alias:"/files"},{path:"/:view/:fileid?",name:"filelist",props:!0}],stringifyQuery(t){const e=Cn.Z.stringify(t).replace(/%2F/gim,"/");return e?"?"+e:""}});yn.beforeEach(((t,e,n)=>{try{var i,o,s,r,a;var l,c;!0===(null===(s=((null===(i=window.OCP.Files)||void 0===i||null===(o=i.Navigation)||void 0===o?void 0:o.views)||[]).find((e=>{var n;return(null==e?void 0:e.id)===(null==t||null===(n=t.params)||void 0===n?void 0:n.view)})))||void 0===s?void 0:s.legacy)&&(null==t||null===(r=t.query)||void 0===r?void 0:r.dir)!==(null==e||null===(a=e.query)||void 0===a?void 0:a.dir)&&window.OCA.Files.App.fileList.changeDirectory((null==t||null===(l=t.query)||void 0===l?void 0:l.dir)||"/",!1,!1,null==t||null===(c=t.query)||void 0===c?void 0:c.fileid,!0)}catch(t){}n()}));const _n=yn;function xn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Sn,kn,In=i(25108);window.OCA.Files=null!==(Sn=window.OCA.Files)&&void 0!==Sn?Sn:{},window.OCP.Files=null!==(kn=window.OCP.Files)&&void 0!==kn?kn:{};const Nn=new class{constructor(t){var e,n,i;e=this,i=void 0,(n=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(n="_router"))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,this._router=t}goTo(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._router.push({path:t,replace:e})}goToRoute(t,e,n,i){return this._router.push({name:t,query:n,params:e,replace:i})}}(_n);Object.assign(window.OCP.Files,{Router:Nn}),u.default.use(it.og);const En=(0,it.WB)(),Fn=new Fe;Object.assign(window.OCP.Files,{Navigation:Fn}),u.default.prototype.$navigation=Fn;const Bn=new class{constructor(){var t,e,n;t=this,n=void 0,(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e="_settings"))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,this._settings=[],In.debug("OCA.Files.Settings initialized")}register(t){return this._settings.filter((e=>e.name===t.name)).length>0?(In.error("A setting with the same name is already registered"),!1):(this._settings.push(t),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Bn}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(t,e){let{el:n,open:i,close:o}=e;xn(this,"_close",void 0),xn(this,"_el",void 0),xn(this,"_name",void 0),xn(this,"_open",void 0),this._name=t,this._el=n,this._open=i,this._close=o,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(u.default.extend(gn))({name:"FilesNavigationRoot",propsData:{Navigation:Fn},router:_n,pinia:En}).$mount("#app-navigation-files"),new(u.default.extend(Ue))({name:"FilesListRoot",router:_n,pinia:En}).$mount("#app-content-vue"),function(){const t=Object.values((0,s.j)("files","navigation",{}));t.length>0&&(Q.debug("Legacy files views detected. Processing...",t),t.forEach((t=>{wn(t),t.sublist&&t.sublist.forEach((e=>wn({...e,parent:t.id})))})))}(),"serviceWorker"in navigator?window.addEventListener("load",(async()=>{try{const t=(0,a.generateUrl)("/apps/files/preview-service-worker.js",{},{noRewrite:!0}),e=await navigator.serviceWorker.register(t,{scope:"/"});Q.debug("SW registered: ",{registration:e})}catch(t){Q.error("SW registration failed: ",{error:t})}})):Q.debug("Service Worker is not enabled on this browser.")},39959:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".breadcrumb[data-v-68b3b20b]{flex:1 1 100% !important;width:100%}.breadcrumb[data-v-68b3b20b] a{cursor:pointer !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,6BAEC,wBAAA,CACA,UAAA,CAEA,+BACC,yBAAA",sourcesContent:["\n.breadcrumb {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\n\t::v-deep a {\n\t\tcursor: pointer !important;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},61959:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".custom-svg-icon[data-v-93e9b2f4]{display:flex;align-items:center;align-self:center;justify-content:center;justify-self:center;width:44px;height:44px;opacity:1}.custom-svg-icon[data-v-93e9b2f4] svg{height:22px;width:22px;fill:currentColor}","",{version:3,sources:["webpack://./apps/files/src/components/CustomSvgIconRender.vue"],names:[],mappings:"AACA,kCACC,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,sBAAA,CACA,mBAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAEA,sCAGC,WAAA,CACA,UAAA,CACA,iBAAA",sourcesContent:["\n.custom-svg-icon {\n\tdisplay: flex;\n\talign-items: center;\n\talign-self: center;\n\tjustify-content: center;\n\tjustify-self: center;\n\twidth: 44px;\n\theight: 44px;\n\topacity: 1;\n\n\t::v-deep svg {\n\t\t// mdi icons have a size of 24px\n\t\t// 22px results in roughly 16px inner size\n\t\theight: 22px;\n\t\twidth: 22px;\n\t\tfill: currentColor;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},79016:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"tr[data-v-71eb16b5]:hover,tr[data-v-71eb16b5]:focus,tr[data-v-71eb16b5]:active{background-color:var(--color-background-dark)}.files-list__row-icon-preview[data-v-71eb16b5]:not([style*=background]){background:var(--color-loading-dark)}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry.vue"],names:[],mappings:"AAGC,+EAGC,6CAAA,CAKF,wEACI,oCAAA",sourcesContent:["\n/* Hover effect on tbody lines only */\ntr {\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n}\n\n/* Preview not loaded animation effect */\n.files-list__row-icon-preview:not([style*='background']) {\n background: var(--color-loading-dark);\n\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n}\n"],sourceRoot:""}]);const a=r},82975:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"tr[data-v-2e19f455]{padding-bottom:300px;border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}td[data-v-2e19f455]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListFooter.vue"],names:[],mappings:"AAEA,oBACC,oBAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAGD,oBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tpadding-bottom: 300px;\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n}\n\ntd {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n}\n\n"],sourceRoot:""}]);const a=r},96153:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__column[data-v-76b6186a]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-76b6186a]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},97877:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__row-actions-batch[data-v-03e57b1e]{flex:1 1 100% !important}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper{width:100%}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper span.button-vue__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CAGA,qEACC,UAAA,CACA,2FACC,eAAA,CACA,sBAAA,CACA,kBAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\n\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t::v-deep .button-vue__wrapper {\n\t\twidth: 100%;\n\t\tspan.button-vue__text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},29252:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__column-sort-button{margin:0 calc(var(--cell-margin)*-1);padding:0 4px 0 16px !important}.files-list__column-sort-button .button-vue__wrapper{flex-direction:row-reverse;width:100%}.files-list__column-sort-button .button-vue__icon{transition-timing-function:linear;transition-duration:.1s;transition-property:opacity;opacity:0}.files-list__column-sort-button .button-vue__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list__column-sort-button--active .button-vue__icon,.files-list__column-sort-button:hover .button-vue__icon,.files-list__column-sort-button:focus .button-vue__icon,.files-list__column-sort-button:active .button-vue__icon{opacity:1 !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeaderButton.vue"],names:[],mappings:"AACA,gCAEC,oCAAA,CAEA,+BAAA,CAGA,qDACC,0BAAA,CAGA,UAAA,CAGD,kDACC,iCAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAID,kDACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAOA,mOACC,oBAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--cell-margin) * -1);\n\t// Reverse padding\n\tpadding: 0 4px 0 16px !important;\n\n\t// Icon after text\n\t.button-vue__wrapper {\n\t\tflex-direction: row-reverse;\n\t\t// Take max inner width for text overflow ellipsis\n\t\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t\twidth: 100%;\n\t}\n\n\t.button-vue__icon {\n\t\ttransition-timing-function: linear;\n\t\ttransition-duration: .1s;\n\t\ttransition-property: opacity;\n\t\topacity: 0;\n\t}\n\n\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t.button-vue__text {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&--active,\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\t.button-vue__icon {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},59473:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list[data-v-7be0268a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: 44px;--icon-preview-size: 32px;display:block;overflow:auto;height:100%}.files-list[data-v-7be0268a] tbody,.files-list[data-v-7be0268a] .vue-recycle-scroller__slot{display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-7be0268a] .vue-recycle-scroller__slot[role=thead]{position:sticky;z-index:10;top:0;height:var(--row-height);background-color:var(--color-main-background)}.files-list[data-v-7be0268a] tr{position:absolute;display:flex;align-items:center;width:100%;border-bottom:1px solid var(--color-border)}.files-list[data-v-7be0268a] td,.files-list[data-v-7be0268a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:left;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-7be0268a] td span,.files-list[data-v-7be0268a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-7be0268a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-7be0268a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-right:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-7be0268a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-7be0268a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-7be0268a] .files-list__row-icon-preview{overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center;background-size:contain}.files-list[data-v-7be0268a] .files-list__row-icon-favorite{position:absolute;top:4px;right:-8px;color:#fc0}.files-list[data-v-7be0268a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-7be0268a] .files-list__row-name a{display:flex;align-items:center;width:100%;height:100%}.files-list[data-v-7be0268a] .files-list__row-name a:focus .files-list__row-name-text,.files-list[data-v-7be0268a] .files-list__row-name a:focus-visible .files-list__row-name-text{outline:2px solid var(--color-main-text) !important;border-radius:20px}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-text{padding:5px 10px;margin-left:-10px;display:inline-flex}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-actions{width:auto}.files-list[data-v-7be0268a] .files-list__row-actions~td,.files-list[data-v-7be0268a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-7be0268a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-7be0268a] .files-list__row-actions button:not(:hover,:focus,:active) .button-vue__wrapper{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-size{justify-content:flex-end;width:calc(var(--row-height)*1.5);color:var(--color-main-text)}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button{padding:0 16px 0 4px !important}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button .button-vue__wrapper{flex-direction:row}.files-list[data-v-7be0268a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AACA,6BACC,kBAAA,CACA,mBAAA,CAEA,wEAAA,CACA,qBAAA,CACA,sBAAA,CACA,yBAAA,CAEA,aAAA,CACA,aAAA,CACA,WAAA,CAIC,4FACC,YAAA,CACA,qBAAA,CACA,UAAA,CAEA,iBAAA,CAID,qEAEC,eAAA,CACA,UAAA,CACA,KAAA,CACA,wBAAA,CACA,6CAAA,CAGD,gCACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,UAAA,CACA,2CAAA,CAGD,gEACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,oBAAA,CACA,uBAAA,CACA,wBAAA,CACA,QAAA,CACA,SAAA,CACA,mCAAA,CACA,WAAA,CAKA,0EACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAIF,uDACC,sBAAA,CACA,8EACC,YAAA,CACA,sBAAA,CAEA,iCAAA,CAEA,iHACC,2BAAA,CACA,4BAAA,CACA,QAAA,CACA,8DAAA,CAGD,2GACC,mBAAA,CAKH,mDACC,iBAAA,CACA,YAAA,CACA,gBAAA,CACA,kBAAA,CAEA,iCAAA,CACA,sBAAA,CACA,8BAAA,CACA,WAAA,CAEA,oCAAA,CACA,kCAAA,CAEA,wDACC,0BAAA,CAGD,gGACC,8BAAA,CACA,+BAAA,CAGD,2DACC,eAAA,CACA,8BAAA,CACA,+BAAA,CACA,kCAAA,CACA,2BAAA,CAEA,0BAAA,CACA,uBAAA,CAGD,4DACC,iBAAA,CACA,OAAA,CACA,UAAA,CACA,UAAA,CAIF,mDAEC,eAAA,CAEA,aAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,WAAA,CAGA,oLAEC,mDAAA,CACA,kBAAA,CAIF,8EAEC,gBAAA,CACA,iBAAA,CAEA,mBAAA,CAGD,6EACC,mCAAA,CAIF,sDACC,UAAA,CAGA,kHAEC,2BAAA,CAIA,+EAEC,kBAAA,CAED,6GAEC,mCAAA,CAKH,mDAEC,wBAAA,CACA,iCAAA,CAEA,4BAAA,CAGA,mFACC,+BAAA,CACA,wGACC,kBAAA,CAKH,4DACC,+BAAA",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: 44px;\n\t--icon-preview-size: 32px;\n\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\n\t&::v-deep {\n\t\t// Table head, body and footer\n\t\ttbody, .vue-recycle-scroller__slot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\t\t}\n\n\t\t// Table header\n\t\t.vue-recycle-scroller__slot[role='thead'] {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: 0;\n\t\t\theight: var(--row-height);\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: absolute;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: left;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-right: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\n\t\t\t&> span:not(.files-list__row-icon-favorite) svg {\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t// Center and contain the preview\n\t\t\t\tbackground-position: center;\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 4px;\n\t\t\t\tright: -8px;\n\t\t\t\tcolor: #ffcc00;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\ta {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text,\n\t\t\t\t&:focus-visible .files-list__row-name-text {\n\t\t\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: 20px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\tmargin-left: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t\t&:not(:hover, :focus, :active) .button-vue__wrapper {\n\t\t\t\t\t// Also apply color-text-maxcontrast to non-active button\n\t\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-size {\n\t\t\t// Right align text\n\t\t\tjustify-content: flex-end;\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// opacity varies with the size\n\t\t\tcolor: var(--color-main-text);\n\n\t\t\t// Icon is before text since size is right aligned\n\t\t\t.files-list__column-sort-button {\n\t\t\t\tpadding: 0 16px 0 4px !important;\n\t\t\t\t.button-vue__wrapper {\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},81253:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-navigation-entry__settings-quota--not-unlimited[data-v-9741374e] .app-navigation-entry__title{margin-top:-4px}.app-navigation-entry__settings-quota progress[data-v-9741374e]{position:absolute;bottom:10px;margin-left:44px;width:calc(100% - 44px - 22px)}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAIC,mGACC,eAAA,CAGD,gEACC,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,8BAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t&--not-unlimited::v-deep .app-navigation-entry__title {\n\t\tmargin-top: -4px;\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: 10px;\n\t\tmargin-left: 44px;\n\t\twidth: calc(100% - 44px - 22px);\n\t}\n}\n"],sourceRoot:""}]);const a=r},67679:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".template-picker__item[data-v-5b09ec60]{display:flex}.template-picker__label[data-v-5b09ec60]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-5b09ec60],.template-picker__label *[data-v-5b09ec60]{cursor:pointer;user-select:none}.template-picker__label[data-v-5b09ec60]::before{display:none !important}.template-picker__preview[data-v-5b09ec60]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-5b09ec60]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-5b09ec60]{display:flex}.template-picker__image[data-v-5b09ec60]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-5b09ec60]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-5b09ec60]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/TemplatePreview.vue"],names:[],mappings:"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},1508:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-content[data-v-66068cbb]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}.app-content[data-v-66068cbb]:not(.app-content--hidden)+#app-content{display:none}.files-list__header[data-v-66068cbb]{display:flex;align-content:center;flex:0 0;margin:4px 4px 4px 50px}.files-list__header>*[data-v-66068cbb]{flex:0 0}.files-list__refresh-icon[data-v-66068cbb]{flex:0 0 44px;width:44px;height:44px}.files-list__loading-icon[data-v-66068cbb]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CAIA,qEACC,YAAA,CAQD,qCACC,YAAA,CACA,oBAAA,CAEA,QAAA,CAEA,uBAAA,CACA,uCAGC,QAAA,CAGF,2CACC,aAAA,CACA,UAAA,CACA,WAAA,CAED,2CACC,WAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\n\t// TODO: remove after all legacy views are migrated\n\t// Hides the legacy app-content if shown view is not legacy\n\t&:not(&--hidden)::v-deep + #app-content {\n\t\tdisplay: none;\n\t}\n}\n\n$margin: 4px;\n$navigationToggleSize: 50px;\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\t// Align with the navigation toggle icon\n\t\tmargin: $margin $margin $margin $navigationToggleSize;\n\t\t> * {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\t}\n\t&__refresh-icon {\n\t\tflex: 0 0 44px;\n\t\twidth: 44px;\n\t\theight: 44px;\n\t}\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},18131:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-navigation[data-v-dd350a0c] .app-navigation-entry-icon{background-repeat:no-repeat;background-position:center}.app-navigation>ul.app-navigation__list[data-v-dd350a0c]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-dd350a0c]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEA,4DACC,2BAAA,CACA,0BAAA,CAGD,yDAEC,gDAAA,CAGD,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA",sourcesContent:["\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\n.app-navigation::v-deep .app-navigation-entry-icon {\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.app-navigation > ul.app-navigation__list {\n\t// Use flex gap value for more elegant spacing\n\tpadding-bottom: var(--default-grid-baseline, 4px);\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n"],sourceRoot:""}]);const a=r},35662:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".setting-link[data-v-76ca5d1f]:hover{text-decoration:underline}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n"],sourceRoot:""}]);const a=r},54654:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".templates-picker__form[data-v-d46f1dc6]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-d46f1dc6]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-d46f1dc6]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-d46f1dc6]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-d46f1dc6],.templates-picker__buttons input[type=submit][data-v-d46f1dc6]{height:44px}.templates-picker[data-v-d46f1dc6] .modal-container{position:relative}.templates-picker__loading[data-v-d46f1dc6]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}","",{version:3,sources:["webpack://./apps/files/src/views/TemplatePicker.vue"],names:[],mappings:"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA",sourcesContent:["\n.templates-picker {\n\t&__form {\n\t\tpadding: calc(var(--margin) * 2);\n\t\t// Will be handled by the buttons\n\t\tpadding-bottom: 0;\n\n\t\th2 {\n\t\t\ttext-align: center;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: var(--margin) 0 calc(var(--margin) * 2);\n\t\t}\n\t}\n\n\t&__list {\n\t\tdisplay: grid;\n\t\tgrid-gap: calc(var(--margin) * 2);\n\t\tgrid-auto-columns: 1fr;\n\t\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\n\t\tmax-width: calc(var(--fullwidth) * 6);\n\t\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\n\t\t// Make sure all rows are the same height\n\t\tgrid-auto-rows: 1fr;\n\t\t// Center the columns set\n\t\tjustify-content: center;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t\tpadding: calc(var(--margin) * 2) var(--margin);\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tbackground-image: linear-gradient(0, var(--gradient-main-background));\n\n\t\tbutton, input[type='submit'] {\n\t\t\theight: 44px;\n\t\t}\n\t}\n\n\t// Make sure we're relative for the loading emptycontent on top\n\t::v-deep .modal-container {\n\t\tposition: relative;\n\t}\n\n\t&__loading {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\tbackground-color: var(--color-main-background-translucent);\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},7173:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"\n/* @keyframes preview-gradient-fade {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n} */\n","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry.vue"],names:[],mappings:";AA6nBA;;;;;;;;;;GAUA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<Fragment>\n\t\t<td class=\"files-list__row-checkbox\">\n\t\t\t<NcCheckboxRadioSwitch v-if=\"active\"\n\t\t\t\t:aria-label=\"t('files', 'Select the row for {displayName}', { displayName })\"\n\t\t\t\t:checked=\"selectedFiles\"\n\t\t\t\t:value=\"fileid\"\n\t\t\t\tname=\"selectedFiles\"\n\t\t\t\t@update:checked=\"onSelectionChange\" />\n\t\t</td>\n\n\t\t\x3c!-- Link to file --\x3e\n\t\t<td class=\"files-list__row-name\">\n\t\t\t<a ref=\"name\" v-bind=\"linkAttrs\" @click=\"execDefaultAction\">\n\t\t\t\t\x3c!-- Icon or preview --\x3e\n\t\t\t\t<span class=\"files-list__row-icon\">\n\t\t\t\t\t<FolderIcon v-if=\"source.type === 'folder'\" />\n\n\t\t\t\t\t\x3c!-- Decorative image, should not be aria documented --\x3e\n\t\t\t\t\t<span v-else-if=\"previewUrl && !backgroundFailed\"\n\t\t\t\t\t\tref=\"previewImg\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-preview\"\n\t\t\t\t\t\t:style=\"{ backgroundImage }\" />\n\n\t\t\t\t\t<span v-else-if=\"mimeIconUrl\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-preview files-list__row-icon-preview--mime\"\n\t\t\t\t\t\t:style=\"{ backgroundImage: mimeIconUrl }\" />\n\n\t\t\t\t\t<FileIcon v-else />\n\n\t\t\t\t\t\x3c!-- Favorite icon --\x3e\n\t\t\t\t\t<span v-if=\"isFavorite\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-favorite\"\n\t\t\t\t\t\t:aria-label=\"t('files', 'Favorite')\">\n\t\t\t\t\t\t<StarIcon aria-hidden=\"true\" :size=\"20\" />\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t\x3c!-- File name --\x3e\n\t\t\t\t<span class=\"files-list__row-name-text\">\n\t\t\t\t\t\x3c!-- Keep the displayName stuck to the extension to avoid whitespace rendering issues--\x3e\n\t\t\t\t\t<span class=\"files-list__row-name-name\" v-text=\"displayName\" />\n\t\t\t\t\t<span class=\"files-list__row-name-ext\" v-text=\"extension\" />\n\t\t\t\t</span>\n\t\t\t</a>\n\t\t</td>\n\n\t\t\x3c!-- Actions --\x3e\n\t\t<td :class=\"`files-list__row-actions-${uniqueId}`\" class=\"files-list__row-actions\">\n\t\t\t\x3c!-- Inline actions --\x3e\n\t\t\t\x3c!-- TODO: implement CustomElementRender --\x3e\n\n\t\t\t\x3c!-- Menu actions --\x3e\n\t\t\t<NcActions v-if=\"active\"\n\t\t\t\tref=\"actionsMenu\"\n\t\t\t\t:boundaries-element=\"boundariesElement\"\n\t\t\t\t:container=\"boundariesElement\"\n\t\t\t\t:disabled=\"source._loading\"\n\t\t\t\t:force-title=\"true\"\n\t\t\t\t:force-menu=\"true\"\n\t\t\t\t:inline=\"enabledInlineActions.length\"\n\t\t\t\t:open.sync=\"openedMenu\">\n\t\t\t\t<NcActionButton v-for=\"action in enabledMenuActions\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:class=\"'files-list__row-action-' + action.id\"\n\t\t\t\t\t@click=\"onActionClick(action)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcLoadingIcon v-if=\"loading === action.id\" :size=\"18\" />\n\t\t\t\t\t\t<CustomSvgIconRender v-else :svg=\"action.iconSvgInline([source], currentView)\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.displayName([source], currentView) }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</td>\n\n\t\t\x3c!-- Size --\x3e\n\t\t<td v-if=\"isSizeAvailable\"\n\t\t\t:style=\"{ opacity: sizeOpacity }\"\n\t\t\tclass=\"files-list__row-size\"\n\t\t\t@click=\"openDetailsIfAvailable\">\n\t\t\t<span>{{ size }}</span>\n\t\t</td>\n\n\t\t\x3c!-- View columns --\x3e\n\t\t<td v-for=\"column in columns\"\n\t\t\t:key=\"column.id\"\n\t\t\t:class=\"`files-list__row-${currentView?.id}-${column.id}`\"\n\t\t\tclass=\"files-list__row-column-custom\"\n\t\t\t@click=\"openDetailsIfAvailable\">\n\t\t\t<CustomElementRender v-if=\"active\"\n\t\t\t\t:current-view=\"currentView\"\n\t\t\t\t:render=\"column.render\"\n\t\t\t\t:source=\"source\" />\n\t\t</td>\n\t</Fragment>\n</template>\n\n<script lang='ts'>\nimport { debounce } from 'debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { Fragment } from 'vue-frag'\nimport { join, extname } from 'path'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { translate } from '@nextcloud/l10n'\nimport CancelablePromise from 'cancelable-promise'\nimport FileIcon from 'vue-material-design-icons/File.vue'\nimport FolderIcon from 'vue-material-design-icons/Folder.vue'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport StarIcon from 'vue-material-design-icons/Star.vue'\nimport Vue from 'vue'\n\nimport { ACTION_DETAILS } from '../actions/sidebarAction.ts'\nimport { getFileActions } from '../services/FileAction.ts'\nimport { hashCode } from '../utils/hashUtils.ts'\nimport { isCachedPreview } from '../services/PreviewService.ts'\nimport { useActionsMenuStore } from '../store/actionsmenu.ts'\nimport { useFilesStore } from '../store/files.ts'\nimport { useKeyboardStore } from '../store/keyboard.ts'\nimport { useSelectionStore } from '../store/selection.ts'\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport CustomElementRender from './CustomElementRender.vue'\nimport CustomSvgIconRender from './CustomSvgIconRender.vue'\nimport logger from '../logger.js'\n\n// The registered actions list\nconst actions = getFileActions()\n\nexport default Vue.extend({\n\tname: 'FileEntry',\n\n\tcomponents: {\n\t\tCustomElementRender,\n\t\tCustomSvgIconRender,\n\t\tFileIcon,\n\t\tFolderIcon,\n\t\tFragment,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcLoadingIcon,\n\t\tStarIcon,\n\t},\n\n\tprops: {\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisSizeAvailable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsource: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tnodes: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tfilesListWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst actionsMenuStore = useActionsMenuStore()\n\t\tconst filesStore = useFilesStore()\n\t\tconst keyboardStore = useKeyboardStore()\n\t\tconst selectionStore = useSelectionStore()\n\t\tconst userConfigStore = useUserConfigStore()\n\t\treturn {\n\t\t\tactionsMenuStore,\n\t\t\tfilesStore,\n\t\t\tkeyboardStore,\n\t\t\tselectionStore,\n\t\t\tuserConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tbackgroundFailed: false,\n\t\t\tbackgroundImage: '',\n\t\t\tboundariesElement: document.querySelector('.app-content > .files-list'),\n\t\t\tloading: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\n\t\tcurrentView() {\n\t\t\treturn this.$navigation.active\n\t\t},\n\t\tcolumns() {\n\t\t\t// Hide columns if the list is too small\n\t\t\tif (this.filesListWidth < 512) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.currentView?.columns || []\n\t\t},\n\n\t\tdir() {\n\t\t\t// Remove any trailing slash but leave root slash\n\t\t\treturn (this.$route?.query?.dir || '/').replace(/^(.+)\\/$/, '$1')\n\t\t},\n\t\tfileid() {\n\t\t\treturn this.source?.fileid?.toString?.()\n\t\t},\n\n\t\textension() {\n\t\t\tif (this.source.attributes?.displayName) {\n\t\t\t\treturn extname(this.source.attributes.displayName)\n\t\t\t}\n\t\t\treturn this.source.extension || ''\n\t\t},\n\t\tdisplayName() {\n\t\t\tconst ext = this.extension\n\t\t\tconst name = (this.source.attributes.displayName\n\t\t\t\t|| this.source.basename)\n\n\t\t\t// Strip extension from name if defined\n\t\t\treturn !ext ? name : name.slice(0, 0 - ext.length)\n\t\t},\n\n\t\tsize() {\n\t\t\tconst size = parseInt(this.source.size, 10) || 0\n\t\t\tif (typeof size !== 'number' || size < 0) {\n\t\t\t\treturn this.t('files', 'Pending')\n\t\t\t}\n\t\t\treturn formatFileSize(size, true, true).replace('iB', 'B')\n\t\t},\n\t\tsizeOpacity() {\n\t\t\tconst size = parseInt(this.source.size, 10) || 0\n\t\t\tif (!size || size < 0) {\n\t\t\t\treturn 1\n\t\t\t}\n\n\t\t\t// Whatever theme is active, the contrast will pass WCAG AA\n\t\t\t// with color main text over main background and an opacity of 0.7\n\t\t\tconst minOpacity = 0.7\n\t\t\tconst maxOpacitySize = 10 * 1024 * 1024\n\t\t\treturn minOpacity + (1 - minOpacity) * Math.pow((this.source.size / maxOpacitySize), 2)\n\t\t},\n\n\t\tlinkAttrs() {\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\tconst action = this.enabledDefaultActions[0]\n\t\t\t\tconst displayName = action.displayName([this.source], this.currentView)\n\t\t\t\treturn {\n\t\t\t\t\tclass: ['files-list__row-default-action', 'files-list__row-action-' + action.id],\n\t\t\t\t\trole: 'button',\n\t\t\t\t\ttitle: displayName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * A folder would never reach this point\n\t\t\t * as it has open-folder as default action.\n\t\t\t * Just to be safe, let's handle it.\n\t\t\t */\n\t\t\tif (this.source.type === 'folder') {\n\t\t\t\tconst to = { ...this.$route, query: { dir: join(this.dir, this.source.basename) } }\n\t\t\t\treturn {\n\t\t\t\t\tis: 'router-link',\n\t\t\t\t\ttitle: this.t('files', 'Open folder {name}', { name: this.displayName }),\n\t\t\t\t\tto,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thref: this.source.source,\n\t\t\t\t// TODO: Use first action title ?\n\t\t\t\ttitle: this.t('files', 'Download file {name}', { name: this.displayName }),\n\t\t\t}\n\t\t},\n\n\t\tselectedFiles() {\n\t\t\treturn this.selectionStore.selected\n\t\t},\n\t\tisSelected() {\n\t\t\treturn this.selectedFiles.includes(this.source?.fileid?.toString?.())\n\t\t},\n\n\t\tcropPreviews() {\n\t\t\treturn this.userConfig.crop_image_previews\n\t\t},\n\t\tpreviewUrl() {\n\t\t\ttry {\n\t\t\t\tconst url = new URL(window.location.origin + this.source.attributes.previewUrl)\n\t\t\t\t// Request tiny previews\n\t\t\t\turl.searchParams.set('x', '32')\n\t\t\t\turl.searchParams.set('y', '32')\n\t\t\t\t// Handle cropping\n\t\t\t\turl.searchParams.set('a', this.cropPreviews === true ? '0' : '1')\n\t\t\t\treturn url.href\n\t\t\t} catch (e) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\t\tmimeIconUrl() {\n\t\t\tconst mimeType = this.source.mime || 'application/octet-stream'\n\t\t\tconst mimeIconUrl = window.OC?.MimeType?.getIconUrl?.(mimeType)\n\t\t\tif (mimeIconUrl) {\n\t\t\t\treturn `url(${mimeIconUrl})`\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\n\t\tenabledActions() {\n\t\t\treturn actions\n\t\t\t\t.filter(action => !action.enabled || action.enabled([this.source], this.currentView))\n\t\t\t\t.sort((a, b) => (a.order || 0) - (b.order || 0))\n\t\t},\n\t\tenabledInlineActions() {\n\t\t\tif (this.filesListWidth < 768) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.enabledActions.filter(action => action?.inline?.(this.source, this.currentView))\n\t\t},\n\t\tenabledMenuActions() {\n\t\t\tif (this.filesListWidth < 768) {\n\t\t\t\t// If we have a default action, do not render the first one\n\t\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\t\treturn this.enabledActions.slice(1)\n\t\t\t\t}\n\t\t\t\treturn this.enabledActions\n\t\t\t}\n\n\t\t\tconst actions = [\n\t\t\t\t...this.enabledInlineActions,\n\t\t\t\t...this.enabledActions.filter(action => !action.inline),\n\t\t\t]\n\n\t\t\t// If we have a default action, do not render the first one\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\treturn actions.slice(1)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t\tenabledDefaultActions() {\n\t\t\treturn [\n\t\t\t\t...this.enabledActions.filter(action => action.default),\n\t\t\t]\n\t\t},\n\t\topenedMenu: {\n\t\t\tget() {\n\t\t\t\treturn this.actionsMenuStore.opened === this.uniqueId\n\t\t\t},\n\t\t\tset(opened) {\n\t\t\t\tthis.actionsMenuStore.opened = opened ? this.uniqueId : null\n\t\t\t},\n\t\t},\n\n\t\tuniqueId() {\n\t\t\treturn hashCode(this.source.source)\n\t\t},\n\n\t\tisFavorite() {\n\t\t\treturn this.source.attributes.favorite === 1\n\t\t},\n\t},\n\n\twatch: {\n\t\tactive(active, before) {\n\t\t\tif (active === false && before === true) {\n\t\t\t\tthis.resetState()\n\n\t\t\t\t// When the row is not active anymore\n\t\t\t\t// remove the display from the row to prevent\n\t\t\t\t// keyboard interaction with it.\n\t\t\t\tthis.$el.parentNode.style.display = 'none'\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Restore default tabindex\n\t\t\tthis.$el.parentNode.style.display = ''\n\t\t},\n\n\t\t/**\n\t\t * When the source changes, reset the preview\n\t\t * and fetch the new one.\n\t\t */\n\t\tpreviewUrl() {\n\t\t\tthis.clearImg()\n\t\t\tthis.debounceIfNotCached()\n\t\t},\n\t},\n\n\t/**\n\t * The row is mounted once and reused as we scroll.\n\t */\n\tmounted() {\n\t\t// ⚠ Init the debounce function on mount and\n\t\t// not when the module is imported to\n\t\t// avoid sharing between recycled components\n\t\tthis.debounceGetPreview = debounce(function() {\n\t\t\tthis.fetchAndApplyPreview()\n\t\t}, 150, false)\n\n\t\t// Fetch the preview on init\n\t\tthis.debounceIfNotCached()\n\n\t\t// Right click watcher on tr\n\t\tthis.$el.parentNode?.addEventListener?.('contextmenu', this.onRightClick)\n\t},\n\n\tbeforeDestroy() {\n\t\tthis.resetState()\n\t},\n\n\tmethods: {\n\t\tasync debounceIfNotCached() {\n\t\t\tif (!this.previewUrl) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Check if we already have this preview cached\n\t\t\tconst isCached = await isCachedPreview(this.previewUrl)\n\t\t\tif (isCached) {\n\t\t\t\tthis.backgroundImage = `url(${this.previewUrl})`\n\t\t\t\tthis.backgroundFailed = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// We don't have this preview cached or it expired, requesting it\n\t\t\tthis.debounceGetPreview()\n\t\t},\n\n\t\tfetchAndApplyPreview() {\n\t\t\t// Ignore if no preview\n\t\t\tif (!this.previewUrl) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If any image is being processed, reset it\n\t\t\tif (this.previewPromise) {\n\t\t\t\tthis.clearImg()\n\t\t\t}\n\n\t\t\t// Store the promise to be able to cancel it\n\t\t\tthis.previewPromise = new CancelablePromise((resolve, reject, onCancel) => {\n\t\t\t\tconst img = new Image()\n\t\t\t\t// If active, load the preview with higher priority\n\t\t\t\timg.fetchpriority = this.active ? 'high' : 'auto'\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tthis.backgroundImage = `url(${this.previewUrl})`\n\t\t\t\t\tthis.backgroundFailed = false\n\t\t\t\t\tresolve(img)\n\t\t\t\t}\n\t\t\t\timg.onerror = () => {\n\t\t\t\t\tthis.backgroundFailed = true\n\t\t\t\t\treject(img)\n\t\t\t\t}\n\t\t\t\timg.src = this.previewUrl\n\n\t\t\t\t// Image loading has been canceled\n\t\t\t\tonCancel(() => {\n\t\t\t\t\timg.onerror = null\n\t\t\t\t\timg.onload = null\n\t\t\t\t\timg.src = ''\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\n\t\tresetState() {\n\t\t\t// Reset loading state\n\t\t\tthis.loading = ''\n\n\t\t\t// Reset the preview\n\t\t\tthis.clearImg()\n\n\t\t\t// Close menu\n\t\t\tthis.openedMenu = false\n\t\t},\n\n\t\tclearImg() {\n\t\t\tthis.backgroundImage = ''\n\t\t\tthis.backgroundFailed = false\n\n\t\t\tif (this.previewPromise) {\n\t\t\t\tthis.previewPromise.cancel()\n\t\t\t\tthis.previewPromise = null\n\t\t\t}\n\t\t},\n\n\t\tasync onActionClick(action) {\n\t\t\tconst displayName = action.displayName([this.source], this.currentView)\n\t\t\ttry {\n\t\t\t\t// Set the loading marker\n\t\t\t\tthis.loading = action.id\n\t\t\t\tVue.set(this.source, '_loading', true)\n\n\t\t\t\tconst success = await action.exec(this.source, this.currentView, this.dir)\n\n\t\t\t\t// If the action returns null, we stay silent\n\t\t\t\tif (success === null) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (success) {\n\t\t\t\t\tshowSuccess(this.t('files', '\"{displayName}\" action executed successfully', { displayName }))\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tshowError(this.t('files', '\"{displayName}\" action failed', { displayName }))\n\t\t\t} catch (e) {\n\t\t\t\tlogger.error('Error while executing action', { action, e })\n\t\t\t\tshowError(this.t('files', '\"{displayName}\" action failed', { displayName }))\n\t\t\t} finally {\n\t\t\t\t// Reset the loading marker\n\t\t\t\tthis.loading = ''\n\t\t\t\tVue.set(this.source, '_loading', false)\n\t\t\t}\n\t\t},\n\t\texecDefaultAction(event) {\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t\t// Execute the first default action if any\n\t\t\t\tthis.enabledDefaultActions[0].exec(this.source, this.currentView, this.dir)\n\t\t\t}\n\t\t},\n\n\t\topenDetailsIfAvailable(event) {\n\t\t\tconst detailsAction = this.enabledDefaultActions.find(action => action.id === ACTION_DETAILS)\n\t\t\tif (detailsAction) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tdetailsAction.exec(this.source, this.currentView)\n\t\t\t}\n\t\t},\n\n\t\tonSelectionChange(selection) {\n\t\t\tconst newSelectedIndex = this.index\n\t\t\tconst lastSelectedIndex = this.selectionStore.lastSelectedIndex\n\n\t\t\t// Get the last selected and select all files in between\n\t\t\tif (this.keyboardStore?.shiftKey && lastSelectedIndex !== null) {\n\t\t\t\tconst isAlreadySelected = this.selectedFiles.includes(this.fileid)\n\n\t\t\t\tconst start = Math.min(newSelectedIndex, lastSelectedIndex)\n\t\t\t\tconst end = Math.max(lastSelectedIndex, newSelectedIndex)\n\n\t\t\t\tconst lastSelection = this.selectionStore.lastSelection\n\t\t\t\tconst filesToSelect = this.nodes\n\t\t\t\t\t.map(file => file.fileid?.toString?.())\n\t\t\t\t\t.slice(start, end + 1)\n\n\t\t\t\t// If already selected, update the new selection _without_ the current file\n\t\t\t\tconst selection = [...lastSelection, ...filesToSelect]\n\t\t\t\t\t.filter(fileId => !isAlreadySelected || fileId !== this.fileid)\n\n\t\t\t\tlogger.debug('Shift key pressed, selecting all files in between', { start, end, filesToSelect, isAlreadySelected })\n\t\t\t\t// Keep previous lastSelectedIndex to be use for further shift selections\n\t\t\t\tthis.selectionStore.set(selection)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlogger.debug('Updating selection', { selection })\n\t\t\tthis.selectionStore.set(selection)\n\t\t\tthis.selectionStore.setLastIndex(newSelectedIndex)\n\t\t},\n\n\t\t// Open the actions menu on right click\n\t\tonRightClick(event) {\n\t\t\t// If already opened, fallback to default browser\n\t\t\tif (this.openedMenu) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If the clicked row is in the selection, open global menu\n\t\t\tconst isMoreThanOneSelected = this.selectedFiles.length > 1\n\t\t\tthis.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId\n\n\t\t\t// Prevent any browser defaults\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t},\n\n\t\tt: translate,\n\t\tformatFileSize,\n\t},\n})\n<\/script>\n\n<style scoped lang='scss'>\n/* Hover effect on tbody lines only */\ntr {\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n}\n\n/* Preview not loaded animation effect */\n.files-list__row-icon-preview:not([style*='background']) {\n background: var(--color-loading-dark);\n\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n}\n</style>\n\n<style>\n/* @keyframes preview-gradient-fade {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n} */\n</style>\n"],sourceRoot:""}]);const a=r}},s={};function r(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,i,o)=>{if(!n){var s=1/0;for(d=0;d<e.length;d++){n=e[d][0],i=e[d][1],o=e[d][2];for(var a=!0,l=0;l<n.length;l++)(!1&o||s>=o)&&Object.keys(r.O).every((t=>r.O[t](n[l])))?n.splice(l--,1):(a=!1,o<s&&(s=o));if(a){e.splice(d--,1);var c=i();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,i,o]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v=00434e4baa0d8e7b79f1",r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},i="nextcloud:",r.l=(t,e,o,s)=>{if(n[t])n[t].push(e);else{var a,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==i+o){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",i+o),a.src=t),n[t]=[e];var p=(e,i)=>{a.onerror=a.onload=null,clearTimeout(h);var o=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((t=>t(i))),e)return e(i)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=p.bind(null,a.onerror),a.onload=p.bind(null,a.onload),l&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=2181,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={2181:0};r.f.j=(e,n)=>{var i=r.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise(((n,o)=>i=t[e]=[n,o]));n.push(i[2]=o);var s=r.p+r.u(e),a=new Error;r.l(s,(n=>{if(r.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+s+")",a.name="ChunkLoadError",a.type=o,a.request=s,i[1](a)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var i,o,s=n[0],a=n[1],l=n[2],c=0;if(s.some((e=>0!==t[e]))){for(i in a)r.o(a,i)&&(r.m[i]=a[i]);if(l)var d=l(r)}for(e&&e(n);c<s.length;c++)o=s[c],r.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return r.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),r.nc=void 0;var a=r.O(void 0,[7874],(()=>r(60668)));a=r.O(a)})(); -//# sourceMappingURL=files-main.js.map?v=b71364dfbc4601bd3985
\ No newline at end of file +(()=>{"use strict";var e,n,i,o={60668:(e,n,i)=>{var o=i(17499),s=i(79954),r=i(31352),a=i(79753),l=i(77958);const c=function(){var t,e,n,i;const o=(null===(t=OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.App)||void 0===n||null===(i=n.currentFileList)||void 0===i?void 0:i.dirInfo)||{path:"/",name:""};return"".concat(o.path,"/").concat(o.name).replace(/\/\//gi,"/")};var d=i(4820),u=i(20144),p=i(62520),h=i(64024),f=i(93455),A=i.n(f),v=i(70110),m=i.n(v);const g=256,w={name:"TemplatePreview",inheritAttrs:!1,props:{basename:{type:String,required:!0},checked:{type:Boolean,default:!1},fileid:{type:[String,Number],required:!0},filename:{type:String,required:!0},previewUrl:{type:String,default:null},hasPreview:{type:Boolean,default:!0},mime:{type:String,required:!0},ratio:{type:Number,default:null}},data:()=>({failedPreview:!1}),computed:{nameWithoutExt(){return this.basename.indexOf(".")>-1?this.basename.split(".").slice(0,-1).join("."):this.basename},id(){return"template-picker-".concat(this.fileid)},realPreviewUrl(){return this.failedPreview&&this.mimeIcon?this.mimeIcon:this.previewUrl?this.previewUrl:(0,l.ts)()?(0,a.generateUrl)("/core/preview?fileId=".concat(this.fileid,"&x=").concat(g,"&y=").concat(g,"&a=1")):(0,a.generateUrl)("/apps/files_sharing/publicpreview/".concat(document.getElementById("sharingToken")&&document.getElementById("sharingToken").value,"?fileId=").concat(this.fileid,"&file=").concat(function(t){const e=(t.startsWith("/")?t:"/".concat(t)).split("/");let n="";return e.forEach((t=>{""!==t&&(n+="/"+encodeURIComponent(t))})),n}(this.filename),"&x=").concat(g,"&y=").concat(g,"&a=1"))},mimeIcon(){return OC.MimeType.getIconUrl(this.mime)}},methods:{onCheck(){this.$emit("check",this.fileid)},onFailure(){this.failedPreview=!0}}};var b=i(93379),C=i.n(b),y=i(7795),_=i.n(y),x=i(90569),S=i.n(x),k=i(3565),I=i.n(k),N=i(19216),E=i.n(N),F=i(44589),B=i.n(F),P=i(67679),D={};D.styleTagTransform=B(),D.setAttributes=I(),D.insert=S().bind(null,"head"),D.domAPI=_(),D.insertStyleElement=E(),C()(P.Z,D),P.Z&&P.Z.locals&&P.Z.locals;var T=i(51900);const z=(0,T.Z)(w,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"template-picker__item"},[e("input",{staticClass:"radio",attrs:{id:t.id,type:"radio",name:"template-picker"},domProps:{checked:t.checked},on:{change:t.onCheck}}),t._v(" "),e("label",{staticClass:"template-picker__label",attrs:{for:t.id}},[e("div",{staticClass:"template-picker__preview",class:t.failedPreview?"template-picker__preview--failed":""},[e("img",{staticClass:"template-picker__image",attrs:{src:t.realPreviewUrl,alt:"",draggable:"false"},on:{error:t.onFailure}})]),t._v(" "),e("span",{staticClass:"template-picker__title"},[t._v("\n\t\t\t"+t._s(t.nameWithoutExt)+"\n\t\t")])])])}),[],!1,null,"5b09ec60",null).exports;var L=i(25108);const U={name:"TemplatePicker",components:{NcEmptyContent:A(),NcModal:m(),TemplatePreview:z},props:{logger:{type:Object,required:!0}},data:()=>({checked:-1,loading:!1,name:null,opened:!1,provider:null}),computed:{nameWithoutExt(){return this.name.indexOf(".")>-1?this.name.split(".").slice(0,-1).join("."):this.name},emptyTemplate(){var e,n;return{basename:t("files","Blank"),fileid:-1,filename:this.t("files","Blank"),hasPreview:!1,mime:(null===(e=this.provider)||void 0===e?void 0:e.mimetypes[0])||(null===(n=this.provider)||void 0===n?void 0:n.mimetypes)}},selectedTemplate(){return this.provider.templates.find((t=>t.fileid===this.checked))},style(){const t=(this.provider.ratio?this.provider.ratio:1.77)>1?240:160;return{"--margin":"8px","--width":t+"px","--border":"2px","--fullwidth":t+16+4+"px","--height":this.provider.ratio?Math.round(t/this.provider.ratio)+"px":null}}},methods:{async open(t,e){this.checked=this.emptyTemplate.fileid,this.name=t,this.provider=e;const n=(await async function(){return(await d.default.get((0,a.generateOcsUrl)("apps/files/api/v1/templates"))).data.ocs.data}()).find((t=>t.app===e.app&&t.label===e.label));if(null===n)throw new Error("Failed to match provider in results");this.provider=n,0!==n.templates.length?this.opened=!0:this.onSubmit()},close(){this.checked=this.emptyTemplate.fileid,this.loading=!1,this.name=null,this.opened=!1,this.provider=null},onCheck(t){this.checked=t},async onSubmit(){var t,e,n;this.loading=!0;const i=c(),o=null===(t=OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.App)||void 0===n?void 0:n.currentFileList;var s,r;this.nameWithoutExt===this.name&&(this.logger.debug("Fixed invalid filename",{name:this.name,extension:null===(s=this.provider)||void 0===s?void 0:s.extension}),this.name=this.name+(null===(r=this.provider)||void 0===r?void 0:r.extension));try{var l,u;const t=await async function(t,e,n){return(await d.default.post((0,a.generateOcsUrl)("apps/files/api/v1/templates/create"),{filePath:t,templatePath:e,templateType:n})).data.ocs.data}((0,p.normalize)("".concat(i,"/").concat(this.name)),null===(l=this.selectedTemplate)||void 0===l?void 0:l.filename,null===(u=this.selectedTemplate)||void 0===u?void 0:u.templateType);this.logger.debug("Created new file",t);const e=await(null==o?void 0:o.addAndFetchFileInfo(this.name).then(((t,e)=>e))),n=new OCA.Files.FileInfoModel(e,{filesClient:null==o?void 0:o.filesClient}),s=OCA.Files.fileActions.getDefaultFileAction(t.mime,"file",OC.PERMISSION_ALL);s&&s.action(t.basename,{$file:null==o?void 0:o.findFileEl(this.name),dir:i,fileList:o,fileActions:null==o?void 0:o.fileActions,fileInfoModel:n}),this.close()}catch(t){this.logger.error("Error while creating the new file from template"),L.error(t),(0,h.x2)(this.t("files","Unable to create new file from template"))}finally{this.loading=!1}}}};var V=i(54654),O={};O.styleTagTransform=B(),O.setAttributes=I(),O.insert=S().bind(null,"head"),O.domAPI=_(),O.insertStyleElement=E(),C()(V.Z,O),V.Z&&V.Z.locals&&V.Z.locals;const Z=(0,T.Z)(U,(function(){var t=this,e=t._self._c;return t.opened?e("NcModal",{staticClass:"templates-picker",attrs:{"clear-view-delay":-1,size:"large"},on:{close:t.close}},[e("form",{staticClass:"templates-picker__form",style:t.style,on:{submit:function(e){return e.preventDefault(),e.stopPropagation(),t.onSubmit.apply(null,arguments)}}},[e("h2",[t._v(t._s(t.t("files","Pick a template for {name}",{name:t.nameWithoutExt})))]),t._v(" "),e("ul",{staticClass:"templates-picker__list"},[e("TemplatePreview",t._b({attrs:{checked:t.checked===t.emptyTemplate.fileid},on:{check:t.onCheck}},"TemplatePreview",t.emptyTemplate,!1)),t._v(" "),t._l(t.provider.templates,(function(n){return e("TemplatePreview",t._b({key:n.fileid,attrs:{checked:t.checked===n.fileid,ratio:t.provider.ratio},on:{check:t.onCheck}},"TemplatePreview",n,!1))}))],2),t._v(" "),e("div",{staticClass:"templates-picker__buttons"},[e("input",{staticClass:"primary",attrs:{type:"submit","aria-label":t.t("files","Create a new file with the selected template")},domProps:{value:t.t("files","Create")}})])]),t._v(" "),t.loading?e("NcEmptyContent",{staticClass:"templates-picker__loading",attrs:{icon:"icon-loading"}},[t._v("\n\t\t"+t._s(t.t("files","Creating file"))+"\n\t")]):t._e()],1):t._e()}),[],!1,null,"d46f1dc6",null).exports,q=(0,o.IY)().setApp("files").detectUser().build();u.default.mixin({methods:{t:r.Iu,n:r.uN}});const R=document.createElement("div");R.id="template-picker",document.body.appendChild(R);let j=(0,s.j)("files","templates",[]),M=(0,s.j)("files","templates_path",!1);q.debug("Templates providers",j),q.debug("Templates folder",{templatesPath:M});const $=new(u.default.extend(Z))({name:"TemplatePicker",propsData:{logger:q}});$.$mount("#template-picker"),window.addEventListener("DOMContentLoaded",(function(){if(!M){q.debug("Templates folder not initialized");const t={attach(t){t.addMenuEntry({id:"template-init",displayName:(0,r.Iu)("files","Set up templates folder"),templateName:(0,r.Iu)("files","Templates"),iconClass:"icon-template-add",fileType:"file",actionLabel:(0,r.Iu)("files","Create new templates folder"),actionHandler(e){W(e),t.removeMenuEntry("template-init")}})}};OC.Plugins.register("OCA.Files.NewFileMenu",t)}})),j.forEach(((t,e)=>{const n={attach(n){const i=n.fileList;"files"!==i.id&&"files.public"!==i.id||n.addMenuEntry({id:"template-new-".concat(t.app,"-").concat(e),displayName:t.label,templateName:t.label+t.extension,iconClass:t.iconClass||"icon-file",fileType:"file",actionLabel:t.actionLabel,actionHandler(e){$.open(e,t)}})}};OC.Plugins.register("OCA.Files.NewFileMenu",n)}));const W=async function(t){const e=(c()+"/".concat(t)).replace("//","/");try{q.debug("Initializing the templates directory",{templatePath:e});const t=await d.default.post((0,a.generateOcsUrl)("apps/files/api/v1/templates/path"),{templatePath:e,copySystemTemplates:!0});OCA.Files.App.currentFileList.changeDirectory(e,!0,!0),j=t.data.ocs.data.templates,M=t.data.ocs.data.template_path}catch(t){q.error("Unable to initialize the templates directory"),(0,h.x2)((0,r.Iu)("files","Unable to initialize the templates directory"))}};var G=i(69183);!function(){const t={attach(t){(0,G.Ld)("nextcloud:unified-search.search",(e=>{let{query:n}=e;t.setFilter(n)})),(0,G.Ld)("nextcloud:unified-search.reset",(()=>{this.query=null,t.setFilter("")}))}};window.OC.Plugins.register("OCA.Files.FileList",t)}();var H=i(91770),K=i(78510);const Q=(0,o.IY)().setApp("files").detectUser().build();class Y{constructor(t){var e,n,i;e=this,i=void 0,(n=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(n="_action"))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,this.validateAction(t),this._action=t}get id(){return this._action.id}get displayName(){return this._action.displayName}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get default(){return this._action.default}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(t){if(!t.id||"string"!=typeof t.id)throw new Error("Invalid id");if(!t.displayName||"function"!=typeof t.displayName)throw new Error("Invalid displayName function");if(!t.iconSvgInline||"function"!=typeof t.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!t.exec||"function"!=typeof t.exec)throw new Error("Invalid exec function");if("enabled"in t&&"function"!=typeof t.enabled)throw new Error("Invalid enabled function");if("execBatch"in t&&"function"!=typeof t.execBatch)throw new Error("Invalid execBatch function");if("order"in t&&"number"!=typeof t.order)throw new Error("Invalid order");if("default"in t&&"boolean"!=typeof t.default)throw new Error("Invalid default");if("inline"in t&&"function"!=typeof t.inline)throw new Error("Invalid inline function");if("renderInline"in t&&"function"!=typeof t.renderInline)throw new Error("Invalid renderInline function")}}const J=function(t){void 0===window._nc_fileactions&&(window._nc_fileactions=[],Q.debug("FileActions initialized")),window._nc_fileactions.find((e=>e.id===t.id))?Q.error("FileAction ".concat(t.id," already registered"),{action:t}):window._nc_fileactions.push(t)},X=function(){return window._nc_fileactions||[]};var tt=i(65358);J(new Y({id:"delete",displayName:(t,e)=>"trashbin"===e.id?(0,r.Iu)("files_trashbin","Delete permanently"):(0,r.Iu)("files","Delete"),iconSvgInline:()=>K,enabled:t=>t.length>0&&t.map((t=>t.permissions)).every((t=>0!=(t&H.y3.DELETE))),async exec(t){const{origin:e}=new URL(t.source),n=e+(0,tt.Ec)(t.source.slice(e.length));try{return await d.default.delete(n),(0,G.j8)("files:node:deleted",t),!0}catch(e){return Q.error("Error while deleting a file",{error:e,source:t.source,node:t}),!1}},async execBatch(t,e,n){return Promise.all(t.map((t=>this.exec(t,e,n))))},order:100}));var et=i(54342);J(new Y({id:"open-folder",displayName(t){const e=t[0].attributes.displayName||t[0].basename;return(0,r.Iu)("files","Open folder {displayName}",{displayName:e})},iconSvgInline:()=>et,enabled(t){if(1!==t.length)return!1;const e=t[0];return e.type===H.Tv.Folder&&0!=(e.permissions&H.y3.READ)},exec:async(t,e,n)=>!(!t||t.type!==H.Tv.Folder)&&(window.OCP.Files.Router.goToRoute(null,null,{dir:(0,p.join)(n,t.basename)}),null),async execBatch(t,e,n){return Promise.all(t.map((t=>this.exec(t,e,n))))},order:-100,default:!0}));var nt=i(48250);const it="details";J(new Y({id:it,displayName:()=>(0,r.Iu)("files","Details"),iconSvgInline:()=>nt,enabled:t=>{var e,n,i;return!(null===(e=window)||void 0===e||null===(n=e.OCA)||void 0===n||null===(i=n.Files)||void 0===i||!i.Sidebar)&&t.some((t=>{var e;return null===(e=t.root)||void 0===e?void 0:e.startsWith("/files/")}))},async exec(t){try{var e,n,i,o,s;return null===(e=window)||void 0===e||null===(n=e.OCA)||void 0===n||null===(i=n.Files)||void 0===i||null===(o=i.Sidebar)||void 0===o||null===(s=o.open)||void 0===s||s.call(o,t.path),null}catch(t){return Q.error("Error while opening sidebar",{error:t}),!1}},default:!0,order:-50}));var ot=i(59305),st=i(23664),rt=i(69680),at=i.n(rt),lt=i(10861),ct=i.n(lt),dt=i(64192),ut=i.n(dt),pt=i(33581);const ht=function(){const t=(0,ot.Q_)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:t=>e=>t.files[e],getNodes:t=>e=>e.map((e=>t.files[e])).filter(Boolean),getRoot:t=>e=>t.roots[e]},actions:{updateNodes(t){const e=t.reduce(((t,e)=>e.fileid?(t[e.fileid]=e,t):(Q.warn("Trying to update/set a node without fileid",e),t)),{});u.default.set(this,"files",{...this.files,...e})},deleteNodes(t){t.forEach((t=>{t.fileid&&u.default.delete(this.files,t.fileid)}))},setRoot(t){let{service:e,root:n}=t;u.default.set(this.roots,e,n)},onDeletedNode(t){this.deleteNodes([t])}}})(...arguments);return t._initialized||((0,G.Ld)("files:node:deleted",t.onDeletedNode),t._initialized=!0),t},ft=function(){const t=(0,ot.Q_)("paths",{state:()=>({paths:{}}),getters:{getPath:t=>(e,n)=>{if(t.paths[e])return t.paths[e][n]}},actions:{addPath(t){this.paths[t.service]||u.default.set(this.paths,t.service,{}),u.default.set(this.paths[t.service],t.path,t.fileid)}}})(...arguments);return t._initialized||(t._initialized=!0),t},At=(0,ot.Q_)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];u.default.set(this,"selected",t)},setLastIndex(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;u.default.set(this,"lastSelection",t?this.selected:[]),u.default.set(this,"lastSelectedIndex",t)},reset(){u.default.set(this,"selected",[]),u.default.set(this,"lastSelection",[]),u.default.set(this,"lastSelectedIndex",null)}}}),vt=(0,s.j)("files","viewConfigs",{}),mt=function(){const t=(0,ot.Q_)("viewconfig",{state:()=>({viewConfig:vt}),getters:{getConfig:t=>e=>t.viewConfig[e]||{}},actions:{onUpdate(t,e,n){this.viewConfig[t]||u.default.set(this.viewConfig,t,{}),u.default.set(this.viewConfig[t],e,n)},async update(t,e,n){d.default.put((0,a.generateUrl)("/apps/files/api/v1/views/".concat(t,"/").concat(e)),{value:n}),(0,G.j8)("files:viewconfig:updated",{view:t,key:e,value:n})},setSortingBy(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";this.update(e,"sorting_mode",t),this.update(e,"sorting_direction","asc")},toggleSortingDirection(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";const e="asc"===(this.getConfig(t)||{sorting_direction:"asc"}).sorting_direction?"desc":"asc";this.update(t,"sorting_direction",e)}}}),e=t(...arguments);return e._initialized||((0,G.Ld)("files:viewconfig:updated",(function(t){let{view:n,key:i,value:o}=t;e.onUpdate(n,i,o)})),e._initialized=!0),e};var gt=i(15764),wt=i(64412),bt=i.n(wt),Ct=i(44706),yt=i.n(Ct);const _t=u.default.extend({name:"BreadCrumbs",components:{Home:gt.Z,NcBreadcrumbs:yt(),NcBreadcrumb:bt()},props:{path:{type:String,default:"/"}},setup:()=>({filesStore:ht(),pathsStore:ft()}),computed:{currentView(){return this.$navigation.active},dirs(){var t;return["/",...this.path.split("/").filter(Boolean).map((t="/",e=>t+="".concat(e,"/"))).map((t=>t.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map((t=>{const e={...this.$route,query:{dir:t}};return{dir:t,exact:!0,name:this.getDirDisplayName(t),to:e}}))}},methods:{getNodeFromId(t){return this.filesStore.getNode(t)},getFileIdFromPath(t){var e;return this.pathsStore.getPath(null===(e=this.currentView)||void 0===e?void 0:e.id,t)},getDirDisplayName(e){var n;if("/"===e)return t("files","Home");const i=this.getFileIdFromPath(e),o=this.getNodeFromId(i);return(null==o||null===(n=o.attributes)||void 0===n?void 0:n.displayName)||(0,p.basename)(e)},onClick(t){var e;(null==t||null===(e=t.query)||void 0===e?void 0:e.dir)===this.$route.query.dir&&this.$emit("reload")},ariaLabel(e){var n,i;return(null==e||null===(n=e.to)||void 0===n||null===(i=n.query)||void 0===i?void 0:i.dir)===this.$route.query.dir?t("files","Reload current directory"):t("files",'Go to the "{dir}" directory',e)}}});var xt=i(39959),St={};St.styleTagTransform=B(),St.setAttributes=I(),St.insert=S().bind(null,"head"),St.domAPI=_(),St.insertStyleElement=E(),C()(xt.Z,St),xt.Z&&xt.Z.locals&&xt.Z.locals;const kt=(0,T.Z)(_t,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcBreadcrumbs",{attrs:{"data-cy-files-content-breadcrumbs":""}},t._l(t.sections,(function(n,i){return e("NcBreadcrumb",t._b({key:n.dir,attrs:{"aria-label":t.ariaLabel(n),title:t.ariaLabel(n)},nativeOn:{click:function(e){return t.onClick(n.to)}},scopedSlots:t._u([0===i?{key:"icon",fn:function(){return[e("Home",{attrs:{size:20}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",n,!1))})),1)}),[],!1,null,"68b3b20b",null).exports;var It=i(35212),Nt=i(20296),Et=i(74139),Ft=i(3443),Bt=i.n(Ft),Pt=i(79855),Dt=i(34829),Tt=i(45400),zt=i.n(Tt),Lt=i(12945),Ut=i.n(Lt),Vt=i(20571),Ot=i.n(Vt),Zt=i(4777);const qt=(0,ot.Q_)("actionsmenu",{state:()=>({opened:null})}),Rt=(0,s.j)("files","config",{show_hidden:!1,crop_image_previews:!0}),jt=function(){const t=(0,ot.Q_)("userconfig",{state:()=>({userConfig:Rt}),actions:{onUpdate(t,e){u.default.set(this.userConfig,t,e)},async update(t,e){await d.default.put((0,a.generateUrl)("/apps/files/api/v1/config/"+t),{value:e}),(0,G.j8)("files:config:updated",{key:t,value:e})}}})(...arguments);return t._initialized||((0,G.Ld)("files:config:updated",(function(e){let{key:n,value:i}=e;t.onUpdate(n,i)})),t._initialized=!0),t},Mt={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},computed:{element(){return this.render(this.source,this.currentView)}},watch:{element(){this.$el.replaceWith(this.element),this.$el=this.element}},mounted(){this.$el.replaceWith(this.element),this.$el=this.element}},$t=(0,T.Z)(Mt,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports;var Wt=i(27856);const Gt={name:"CustomSvgIconRender",props:{svg:{type:String,required:!0}},watch:{svg(){this.$el.innerHTML=(0,Wt.sanitize)(this.svg)}},mounted(){this.$el.innerHTML=(0,Wt.sanitize)(this.svg)}};var Ht=i(61959),Kt={};Kt.styleTagTransform=B(),Kt.setAttributes=I(),Kt.insert=S().bind(null,"head"),Kt.domAPI=_(),Kt.insertStyleElement=E(),C()(Ht.Z,Kt),Ht.Z&&Ht.Z.locals&&Ht.Z.locals;const Qt=(0,T.Z)(Gt,(function(){return(0,this._self._c)("span",{staticClass:"custom-svg-icon"})}),[],!1,null,"93e9b2f4",null).exports,Yt=X(),Jt=u.default.extend({name:"FileEntry",components:{CustomElementRender:$t,CustomSvgIconRender:Qt,FileIcon:Pt.Z,FolderIcon:Dt.default,Fragment:Et.Fragment,NcActionButton:zt(),NcActions:Ut(),NcCheckboxRadioSwitch:Ot(),NcLoadingIcon:ut(),StarIcon:Zt.default},props:{active:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},source:{type:Object,required:!0},index:{type:Number,required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const t=qt(),e=ht(),n=function(){const t=(0,ot.Q_)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(t){t||(t=window.event),u.default.set(this,"altKey",!!t.altKey),u.default.set(this,"ctrlKey",!!t.ctrlKey),u.default.set(this,"metaKey",!!t.metaKey),u.default.set(this,"shiftKey",!!t.shiftKey)}}})(...arguments);return t._initialized||(window.addEventListener("keydown",t.onEvent),window.addEventListener("keyup",t.onEvent),window.addEventListener("mousemove",t.onEvent),t._initialized=!0),t}();return{actionsMenuStore:t,filesStore:e,keyboardStore:n,selectionStore:At(),userConfigStore:jt()}},data:()=>({backgroundFailed:!1,backgroundImage:"",boundariesElement:document.querySelector(".app-content > .files-list"),loading:""}),computed:{userConfig(){return this.userConfigStore.userConfig},currentView(){return this.$navigation.active},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},fileid(){var t,e,n;return null===(t=this.source)||void 0===t||null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e)},extension(){var t;return null!==(t=this.source.attributes)&&void 0!==t&&t.displayName?(0,p.extname)(this.source.attributes.displayName):this.source.extension||""},displayName(){const t=this.extension,e=this.source.attributes.displayName||this.source.basename;return t?e.slice(0,0-t.length):e},size(){const t=parseInt(this.source.size,10)||0;return"number"!=typeof t||t<0?this.t("files","Pending"):(0,H.sS)(t,!0,!0).replace("iB","B")},sizeOpacity(){const t=parseInt(this.source.size,10)||0;return!t||t<0?1:.7+(1-.7)*Math.pow(this.source.size/10485760,2)},linkAttrs(){if(this.enabledDefaultActions.length>0){const t=this.enabledDefaultActions[0],e=t.displayName([this.source],this.currentView);return{class:["files-list__row-default-action","files-list__row-action-"+t.id],role:"button",title:e}}if("folder"===this.source.type){const t={...this.$route,query:{dir:(0,p.join)(this.dir,this.source.basename)}};return{is:"router-link",title:this.t("files","Open folder {name}",{name:this.displayName}),to:t}}return{href:this.source.source,title:this.t("files","Download file {name}",{name:this.displayName})}},selectedFiles(){return this.selectionStore.selected},isSelected(){var t,e,n;return this.selectedFiles.includes(null===(t=this.source)||void 0===t||null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e))},cropPreviews(){return this.userConfig.crop_image_previews},previewUrl(){try{const t=new URL(window.location.origin+this.source.attributes.previewUrl);return t.searchParams.set("x","32"),t.searchParams.set("y","32"),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(t){return null}},mimeIconUrl(){var t,e,n;const i=this.source.mime||"application/octet-stream",o=null===(t=window.OC)||void 0===t||null===(e=t.MimeType)||void 0===e||null===(n=e.getIconUrl)||void 0===n?void 0:n.call(e,i);return o?"url(".concat(o,")"):""},enabledActions(){return Yt.filter((t=>!t.enabled||t.enabled([this.source],this.currentView))).sort(((t,e)=>(t.order||0)-(e.order||0)))},enabledInlineActions(){return this.filesListWidth<768?[]:this.enabledActions.filter((t=>{var e;return null==t||null===(e=t.inline)||void 0===e?void 0:e.call(t,this.source,this.currentView)}))},enabledMenuActions(){if(this.filesListWidth<768)return this.enabledDefaultActions.length>0?this.enabledActions.slice(1):this.enabledActions;const t=[...this.enabledInlineActions,...this.enabledActions.filter((t=>!t.inline))];return this.enabledDefaultActions.length>0?t.slice(1):t},enabledDefaultActions(){return[...this.enabledActions.filter((t=>t.default))]},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId},set(t){this.actionsMenuStore.opened=t?this.uniqueId:null}},uniqueId(){return this.source.source.split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)},isFavorite(){return 1===this.source.attributes.favorite}},watch:{active(t,e){if(!1===t&&!0===e)return this.resetState(),void(this.$el.parentNode.style.display="none");this.$el.parentNode.style.display=""},previewUrl(){this.clearImg(),this.debounceIfNotCached()}},mounted(){var t,e;this.debounceGetPreview=(0,Nt.debounce)((function(){this.fetchAndApplyPreview()}),150,!1),this.debounceIfNotCached(),null===(t=this.$el.parentNode)||void 0===t||null===(e=t.addEventListener)||void 0===e||e.call(t,"contextmenu",this.onRightClick)},beforeDestroy(){this.resetState()},methods:{async debounceIfNotCached(){var t;if(this.previewUrl)return await(t=this.previewUrl,caches.open("previews").then((function(e){return e.match(t).then((function(t){return!!t}))})))?(this.backgroundImage="url(".concat(this.previewUrl,")"),void(this.backgroundFailed=!1)):void this.debounceGetPreview()},fetchAndApplyPreview(){this.previewUrl&&(this.previewPromise&&this.clearImg(),this.previewPromise=new(Bt())(((t,e,n)=>{const i=new Image;i.fetchpriority=this.active?"high":"auto",i.onload=()=>{this.backgroundImage="url(".concat(this.previewUrl,")"),this.backgroundFailed=!1,t(i)},i.onerror=()=>{this.backgroundFailed=!0,e(i)},i.src=this.previewUrl,n((()=>{i.onerror=null,i.onload=null,i.src=""}))})))},resetState(){this.loading="",this.clearImg(),this.openedMenu=!1},clearImg(){this.backgroundImage="",this.backgroundFailed=!1,this.previewPromise&&(this.previewPromise.cancel(),this.previewPromise=null)},async onActionClick(t){const e=t.displayName([this.source],this.currentView);try{this.loading=t.id,u.default.set(this.source,"_loading",!0);const n=await t.exec(this.source,this.currentView,this.dir);if(null===n)return;if(n)return void(0,h.s$)(this.t("files",'"{displayName}" action executed successfully',{displayName:e}));(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}catch(n){Q.error("Error while executing action",{action:t,e:n}),(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}finally{this.loading="",u.default.set(this.source,"_loading",!1)}},execDefaultAction(t){this.enabledDefaultActions.length>0&&(t.preventDefault(),t.stopPropagation(),this.enabledDefaultActions[0].exec(this.source,this.currentView,this.dir))},openDetailsIfAvailable(t){const e=this.enabledDefaultActions.find((t=>t.id===it));e&&(t.preventDefault(),t.stopPropagation(),e.exec(this.source,this.currentView))},onSelectionChange(t){var e;const n=this.index,i=this.selectionStore.lastSelectedIndex;if(null!==(e=this.keyboardStore)&&void 0!==e&&e.shiftKey&&null!==i){const t=this.selectedFiles.includes(this.fileid),e=Math.min(n,i),o=Math.max(i,n),s=this.selectionStore.lastSelection,r=this.nodes.map((t=>{var e,n;return null===(e=t.fileid)||void 0===e||null===(n=e.toString)||void 0===n?void 0:n.call(e)})).slice(e,o+1),a=[...s,...r].filter((e=>!t||e!==this.fileid));return Q.debug("Shift key pressed, selecting all files in between",{start:e,end:o,filesToSelect:r,isAlreadySelected:t}),void this.selectionStore.set(a)}Q.debug("Updating selection",{selection:t}),this.selectionStore.set(t),this.selectionStore.setLastIndex(n)},onRightClick(t){if(this.openedMenu)return;const e=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&e?"global":this.uniqueId,t.preventDefault(),t.stopPropagation()},t:r.Iu,formatFileSize:H.sS}});var Xt=i(79016),te={};te.styleTagTransform=B(),te.setAttributes=I(),te.insert=S().bind(null,"head"),te.domAPI=_(),te.insertStyleElement=E(),C()(Xt.Z,te),Xt.Z&&Xt.Z.locals&&Xt.Z.locals;var ee=i(7173),ne={};ne.styleTagTransform=B(),ne.setAttributes=I(),ne.insert=S().bind(null,"head"),ne.domAPI=_(),ne.insertStyleElement=E(),C()(ee.Z,ne),ee.Z&&ee.Z.locals&&ee.Z.locals;const ie=(0,T.Z)(Jt,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("Fragment",[e("td",{staticClass:"files-list__row-checkbox"},[t.active?e("NcCheckboxRadioSwitch",{attrs:{"aria-label":t.t("files","Select the row for {displayName}",{displayName:t.displayName}),checked:t.selectedFiles,value:t.fileid,name:"selectedFiles"},on:{"update:checked":t.onSelectionChange}}):t._e()],1),t._v(" "),e("td",{staticClass:"files-list__row-name"},[e("a",t._b({ref:"name",on:{click:t.execDefaultAction}},"a",t.linkAttrs,!1),[e("span",{staticClass:"files-list__row-icon"},["folder"===t.source.type?e("FolderIcon"):t.previewUrl&&!t.backgroundFailed?e("span",{ref:"previewImg",staticClass:"files-list__row-icon-preview",style:{backgroundImage:t.backgroundImage}}):t.mimeIconUrl?e("span",{staticClass:"files-list__row-icon-preview files-list__row-icon-preview--mime",style:{backgroundImage:t.mimeIconUrl}}):e("FileIcon"),t._v(" "),t.isFavorite?e("span",{staticClass:"files-list__row-icon-favorite",attrs:{"aria-label":t.t("files","Favorite")}},[e("StarIcon",{attrs:{"aria-hidden":"true",size:20}})],1):t._e()],1),t._v(" "),e("span",{staticClass:"files-list__row-name-text"},[e("span",{staticClass:"files-list__row-name-name",domProps:{textContent:t._s(t.displayName)}}),t._v(" "),e("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:t._s(t.extension)}})])])]),t._v(" "),e("td",{staticClass:"files-list__row-actions",class:"files-list__row-actions-".concat(t.uniqueId)},[t.active?e("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":t.boundariesElement,container:t.boundariesElement,disabled:t.source._loading,"force-title":!0,"force-menu":!0,inline:t.enabledInlineActions.length,open:t.openedMenu},on:{"update:open":function(e){t.openedMenu=e}}},t._l(t.enabledMenuActions,(function(n){return e("NcActionButton",{key:n.id,class:"files-list__row-action-"+n.id,on:{click:function(e){return t.onActionClick(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading===n.id?e("NcLoadingIcon",{attrs:{size:18}}):e("CustomSvgIconRender",{attrs:{svg:n.iconSvgInline([t.source],t.currentView)}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t\t"+t._s(n.displayName([t.source],t.currentView))+"\n\t\t\t")])})),1):t._e()],1),t._v(" "),t.isSizeAvailable?e("td",{staticClass:"files-list__row-size",style:{opacity:t.sizeOpacity},on:{click:t.openDetailsIfAvailable}},[e("span",[t._v(t._s(t.size))])]):t._e(),t._v(" "),t._l(t.columns,(function(n){var i;return e("td",{key:n.id,staticClass:"files-list__row-column-custom",class:"files-list__row-".concat(null===(i=t.currentView)||void 0===i?void 0:i.id,"-").concat(n.id),on:{click:t.openDetailsIfAvailable}},[t.active?e("CustomElementRender",{attrs:{"current-view":t.currentView,render:n.render,source:t.source}}):t._e()],1)}))],2)}),[],!1,null,"71eb16b5",null).exports,oe=u.default.extend({name:"FilesListFooter",components:{},props:{isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const t=ft();return{filesStore:ht(),pathsStore:t}},computed:{currentView(){return this.$navigation.active},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},currentFolder(){var t;if(null===(t=this.currentView)||void 0===t||!t.id)return;if("/"===this.dir)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.dir);return this.filesStore.getNode(e)},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},totalSize(){var t;return null!==(t=this.currentFolder)&&void 0!==t&&t.size?(0,H.sS)(this.currentFolder.size,!0,!0).replace("iB","B"):(0,H.sS)(this.nodes.reduce(((t,e)=>t+e.size||0),0),!0,!0).replace("iB","B")}},methods:{classForColumn(t){return{"files-list__row-column-custom":!0,["files-list__row-".concat(this.currentView.id,"-").concat(t.id)]:!0}},t:r.Iu}});var se=i(82975),re={};re.styleTagTransform=B(),re.setAttributes=I(),re.insert=S().bind(null,"head"),re.domAPI=_(),re.insertStyleElement=E(),C()(se.Z,re),se.Z&&se.Z.locals&&se.Z.locals;const ae=(0,T.Z)(oe,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",[e("th",{staticClass:"files-list__row-checkbox"},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("files","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"files-list__row-name"},[e("span",{staticClass:"files-list__row-icon"}),t._v(" "),e("span",[t._v(t._s(t.summary))])]),t._v(" "),e("td",{staticClass:"files-list__row-actions"}),t._v(" "),t.isSizeAvailable?e("td",{staticClass:"files-list__column files-list__row-size"},[e("span",[t._v(t._s(t.totalSize))])]):t._e(),t._v(" "),t._l(t.columns,(function(n){var i;return e("th",{key:n.id,class:t.classForColumn(n)},[e("span",[t._v(t._s(null===(i=n.summary)||void 0===i?void 0:i.call(n,t.nodes,t.currentView)))])])}))],2)}),[],!1,null,"2e19f455",null).exports,le=u.default.extend({data:()=>({filesListWidth:null}),created(){const t=document.querySelector("#app-content-vue");this.$resizeObserver=new ResizeObserver((e=>{e.length>0&&e[0].target===t&&(this.filesListWidth=e[0].contentRect.width)})),this.$resizeObserver.observe(t)},beforeDestroy(){this.$resizeObserver.disconnect()}}),ce=X(),de=u.default.extend({name:"FilesListHeaderActions",components:{CustomSvgIconRender:Qt,NcActions:Ut(),NcActionButton:zt(),NcLoadingIcon:ut()},mixins:[le],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup:()=>({actionsMenuStore:qt(),filesStore:ht(),selectionStore:At()}),data:()=>({loading:null}),computed:{dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},enabledActions(){return ce.filter((t=>t.execBatch)).filter((t=>!t.enabled||t.enabled(this.nodes,this.currentView))).sort(((t,e)=>(t.order||0)-(e.order||0)))},nodes(){return this.selectedNodes.map((t=>this.getNode(t))).filter((t=>t))},areSomeNodesLoading(){return this.nodes.some((t=>t._loading))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(t){this.actionsMenuStore.opened=t?"global":null}},inlineActions(){return this.filesListWidth<512?0:this.filesListWidth<768?1:this.filesListWidth<1024?2:3}},methods:{getNode(t){return this.filesStore.getNode(t)},async onActionClick(t){const e=t.displayName(this.nodes,this.currentView),n=this.selectedNodes;try{this.loading=t.id,this.nodes.forEach((t=>{u.default.set(t,"_loading",!0)}));const i=await t.execBatch(this.nodes,this.currentView,this.dir);if(!i.some((t=>null!==t)))return void this.selectionStore.reset();if(i.some((t=>!1===t))){const t=n.filter(((t,e)=>!1===i[e]));return this.selectionStore.set(t),void(0,h.x2)(this.t("files",'"{displayName}" failed on some elements ',{displayName:e}))}(0,h.s$)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:e})),this.selectionStore.reset()}catch(n){Q.error("Error while executing action",{action:t,e:n}),(0,h.x2)(this.t("files",'"{displayName}" action failed',{displayName:e}))}finally{this.loading=null,this.nodes.forEach((t=>{u.default.set(t,"_loading",!1)}))}},t:r.Iu}});var ue=i(97877),pe={};pe.styleTagTransform=B(),pe.setAttributes=I(),pe.insert=S().bind(null,"head"),pe.domAPI=_(),pe.insertStyleElement=E(),C()(ue.Z,pe),ue.Z&&ue.Z.locals&&ue.Z.locals;const he=(0,T.Z)(de,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("th",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{colspan:"2"}},[e("NcActions",{ref:"actionsMenu",attrs:{disabled:!!t.loading||t.areSomeNodesLoading,"force-title":!0,inline:t.inlineActions,"menu-title":t.inlineActions<=1?t.t("files","Actions"):null,open:t.openedMenu},on:{"update:open":function(e){t.openedMenu=e}}},t._l(t.enabledActions,(function(n){return e("NcActionButton",{key:n.id,class:"files-list__row-actions-batch-"+n.id,on:{click:function(e){return t.onActionClick(n)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading===n.id?e("NcLoadingIcon",{attrs:{size:18}}):e("CustomSvgIconRender",{attrs:{svg:n.iconSvgInline(t.nodes,t.currentView)}})]},proxy:!0}],null,!0)},[t._v("\n\t\t\t"+t._s(n.displayName(t.nodes,t.currentView))+"\n\t\t")])})),1)],1)}),[],!1,null,"03e57b1e",null).exports;var fe=i(20404),Ae=i(23873);const ve=u.default.extend({computed:{...(0,ot.rn)(mt,["getConfig","setSortingBy","toggleSortingDirection"]),currentView(){return this.$navigation.active},sortingMode(){var t,e;return(null===(t=this.getConfig(this.currentView.id))||void 0===t?void 0:t.sorting_mode)||(null===(e=this.currentView)||void 0===e?void 0:e.defaultSortKey)||"basename"},isAscSorting(){var t;return"asc"===(null===(t=this.getConfig(this.currentView.id))||void 0===t?void 0:t.sorting_direction)}},methods:{toggleSortBy(t){this.sortingMode!==t?this.setSortingBy(t,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),me=u.default.extend({name:"FilesListHeaderButton",components:{MenuDown:fe.Z,MenuUp:Ae.Z,NcButton:ct()},mixins:[ve],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{sortAriaLabel(t){const e=this.isAscSorting?this.t("files","ascending"):this.t("files","descending");return this.t("files","Sort list by {column} ({direction})",{column:t,direction:e})},t:r.Iu}});var ge=i(29252),we={};we.styleTagTransform=B(),we.setAttributes=I(),we.insert=S().bind(null,"head"),we.domAPI=_(),we.insertStyleElement=E(),C()(ge.Z,we),ge.Z&&ge.Z.locals&&ge.Z.locals;const be=(0,T.Z)(me,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcButton",{staticClass:"files-list__column-sort-button",class:{"files-list__column-sort-button--active":t.sortingMode===t.mode},attrs:{"aria-label":t.sortAriaLabel(t.name),type:"tertiary"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.toggleSortBy(t.mode)}}},[t.sortingMode!==t.mode||t.isAscSorting?e("MenuUp",{attrs:{slot:"icon"},slot:"icon"}):e("MenuDown",{attrs:{slot:"icon"},slot:"icon"}),t._v("\n\t"+t._s(t.name)+"\n")],1)}),[],!1,null,null,null).exports,Ce=u.default.extend({name:"FilesListHeader",components:{FilesListHeaderButton:be,NcCheckboxRadioSwitch:Ot(),FilesListHeaderActions:he},mixins:[ve],props:{isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup:()=>({filesStore:ht(),selectionStore:At()}),computed:{currentView(){return this.$navigation.active},columns(){var t;return this.filesListWidth<512?[]:(null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const t=this.isNoneSelected||this.isSomeSelected?this.t("files","Select all"):this.t("files","Unselect all");return{"aria-label":t,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:t}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},methods:{classForColumn(t){return{"files-list__column":!0,"files-list__column--sortable":!!t.sort,"files-list__row-column-custom":!0,["files-list__row-".concat(this.currentView.id,"-").concat(t.id)]:!0}},onToggleAll(t){if(t){const t=this.nodes.map((t=>t.fileid.toString()));Q.debug("Added all nodes to selection",{selection:t}),this.selectionStore.setLastIndex(null),this.selectionStore.set(t)}else Q.debug("Cleared selection"),this.selectionStore.reset()},t:r.Iu}});var ye=i(96153),_e={};_e.styleTagTransform=B(),_e.setAttributes=I(),_e.insert=S().bind(null,"head"),_e.domAPI=_(),_e.insertStyleElement=E(),C()(ye.Z,_e),ye.Z&&ye.Z.locals&&ye.Z.locals;const xe=(0,T.Z)(Ce,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",[e("th",{staticClass:"files-list__column files-list__row-checkbox"},[e("NcCheckboxRadioSwitch",t._b({on:{"update:checked":t.onToggleAll}},"NcCheckboxRadioSwitch",t.selectAllBind,!1))],1),t._v(" "),t.isNoneSelected?[e("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.toggleSortBy("basename")}}},[e("span",{staticClass:"files-list__row-icon"}),t._v(" "),e("FilesListHeaderButton",{attrs:{name:t.t("files","Name"),mode:"basename"}})],1),t._v(" "),e("th",{staticClass:"files-list__row-actions"}),t._v(" "),t.isSizeAvailable?e("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":t.isSizeAvailable}},[e("FilesListHeaderButton",{attrs:{name:t.t("files","Size"),mode:"size"}})],1):t._e(),t._v(" "),t._l(t.columns,(function(n){return e("th",{key:n.id,class:t.classForColumn(n)},[n.sort?e("FilesListHeaderButton",{attrs:{name:n.title,mode:n.id}}):e("span",[t._v("\n\t\t\t\t"+t._s(n.title)+"\n\t\t\t")])],1)}))]:e("FilesListHeaderActions",{attrs:{"current-view":t.currentView,"selected-nodes":t.selectedNodes}})],2)}),[],!1,null,"76b6186a",null).exports,Se=u.default.extend({name:"FilesListVirtual",components:{RecycleScroller:It.EK,FileEntry:ie,FilesListHeader:xe,FilesListFooter:ae},mixins:[le],props:{currentView:{type:Object,required:!0},nodes:{type:Array,required:!0}},data:()=>({FileEntry:ie}),computed:{files(){return this.nodes.filter((t=>"file"===t.type))},summaryFile(){const t=this.files.length;return(0,r.uN)("files","{count} file","{count} files",t,{count:t})},summaryFolder(){const t=this.nodes.length-this.files.length;return(0,r.uN)("files","{count} folder","{count} folders",t,{count:t})},summary(){return(0,r.Iu)("files","{summaryFile} and {summaryFolder}",this)},isSizeAvailable(){return!(this.filesListWidth<768)&&this.nodes.some((t=>void 0!==t.attributes.size))}},mounted(){const t=this.$el.querySelectorAll(".vue-recycle-scroller__slot");t[0].setAttribute("role","thead"),t[1].setAttribute("role","tfoot")},methods:{getFileId:t=>t.fileid,t:r.Iu}});var ke=i(59473),Ie={};Ie.styleTagTransform=B(),Ie.setAttributes=I(),Ie.insert=S().bind(null,"head"),Ie.domAPI=_(),Ie.insertStyleElement=E(),C()(ke.Z,Ie),ke.Z&&ke.Z.locals&&ke.Z.locals;const Ne=(0,T.Z)(Se,(function(){var t=this,e=t._self._c;return t._self._setupProxy,e("RecycleScroller",{ref:"recycleScroller",staticClass:"files-list",attrs:{"key-field":"source",items:t.nodes,"item-size":55,"table-mode":!0,"item-class":"files-list__row","item-tag":"tr","list-class":"files-list__body","list-tag":"tbody",role:"table"},scopedSlots:t._u([{key:"default",fn:function(n){let{item:i,active:o,index:s}=n;return[e("FileEntry",{attrs:{active:o,index:s,"is-size-available":t.isSizeAvailable,"files-list-width":t.filesListWidth,nodes:t.nodes,source:i}})]}},{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.currentView.caption||"")+"\n\t\t\t"+t._s(t.t("files","This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list."))+"\n\t\t")]),t._v(" "),e("FilesListHeader",{attrs:{"files-list-width":t.filesListWidth,"is-size-available":t.isSizeAvailable,nodes:t.nodes}})]},proxy:!0},{key:"after",fn:function(){return[e("FilesListFooter",{attrs:{"files-list-width":t.filesListWidth,"is-size-available":t.isSizeAvailable,nodes:t.nodes,summary:t.summary}})]},proxy:!0}])})}),[],!1,null,"7be0268a",null).exports;var Ee=i(14222);function Fe(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const Be=class{constructor(){Fe(this,"_views",[]),Fe(this,"_currentView",null),Q.debug("Navigation service initialized")}register(t){try{De(t),Pe(t,this._views)}catch(e){throw e instanceof Error&&Q.error(e.message,{view:t}),e}t.legacy&&Q.warn("Legacy view detected, please migrate to Vue"),t.iconClass&&(t.legacy=!0),this._views.push(t)}remove(t){const e=this._views.findIndex((e=>e.id===t));-1!==e&&this._views.splice(e,1)}get views(){return this._views}setActive(t){this._currentView=t}get active(){return this._currentView}},Pe=function(t,e){if(e.find((e=>e.id===t.id)))throw new Error("Navigation id ".concat(t.id," is already registered"));return!0},De=function(t){if(!t.id||"string"!=typeof t.id)throw new Error("Navigation id is required and must be a string");if(!t.name||"string"!=typeof t.name)throw new Error("Navigation name is required and must be a string");if(!t.legacy){if(!t.getContents||"function"!=typeof t.getContents)throw new Error("Navigation getContents is required and must be a function");if(!t.icon||"string"!=typeof t.icon||!(0,Ee.Z)(t.icon))throw new Error("Navigation icon is required and must be a valid svg string")}if(!("order"in t)||"number"!=typeof t.order)throw new Error("Navigation order is required and must be a number");if(t.columns&&t.columns.forEach(Te),t.emptyView&&"function"!=typeof t.emptyView)throw new Error("Navigation emptyView must be a function");if(t.parent&&"string"!=typeof t.parent)throw new Error("Navigation parent must be a string");if("sticky"in t&&"boolean"!=typeof t.sticky)throw new Error("Navigation sticky must be a boolean");if("expanded"in t&&"boolean"!=typeof t.expanded)throw new Error("Navigation expanded must be a boolean");if(t.defaultSortKey&&"string"!=typeof t.defaultSortKey)throw new Error("Navigation defaultSortKey must be a string");return!0},Te=function(t){if(!t.id||"string"!=typeof t.id)throw new Error("A column id is required");if(!t.title||"string"!=typeof t.title)throw new Error("A column title is required");if(!t.render||"function"!=typeof t.render)throw new Error("A render function is required");if(t.sort&&"function"!=typeof t.sort)throw new Error("Column sortFunction must be a function");if(t.summary&&"function"!=typeof t.summary)throw new Error("Column summary must be a function");return!0},ze=u.default.extend({name:"FilesList",components:{BreadCrumbs:kt,FilesListVirtual:Ne,NcAppContent:at(),NcButton:ct(),NcEmptyContent:A(),NcLoadingIcon:ut(),TrashCan:pt.Z},mixins:[ve],setup(){const t=ft();return{filesStore:ht(),pathsStore:t,selectionStore:At(),viewConfigStore:mt()}},data:()=>({loading:!0,promise:null}),computed:{currentView(){return this.$navigation.active||this.$navigation.views.find((t=>"files"===t.id))},dir(){var t,e;return((null===(t=this.$route)||void 0===t||null===(e=t.query)||void 0===e?void 0:e.dir)||"/").replace(/^(.+)\/$/,"$1")},currentFolder(){var t;if(null===(t=this.currentView)||void 0===t||!t.id)return;if("/"===this.dir)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.dir);return this.filesStore.getNode(e)},dirContents(){var t,e;if(!this.currentView)return[];const n=((null===(t=this.currentView)||void 0===t?void 0:t.columns)||[]).find((t=>t.id===this.sortingMode));if(null!=n&&n.sort&&"function"==typeof n.sort){var i;const t=[...((null===(i=this.currentFolder)||void 0===i?void 0:i._children)||[]).map(this.getNode).filter((t=>t))].sort(n.sort);return this.isAscSorting?t:t.reverse()}return(0,st.X)([...((null===(e=this.currentFolder)||void 0===e?void 0:e._children)||[]).map(this.getNode).filter((t=>t))],[..."basename"===this.sortingMode?[t=>"folder"!==t.type]:[],t=>t[this.sortingMode],t=>t.basename],this.isAscSorting?["asc","asc","asc"]:["desc","desc","desc"])},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const t=this.dir.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:t}}}},watch:{currentView(t,e){(null==t?void 0:t.id)!==(null==e?void 0:e.id)&&(Q.debug("View changed",{newView:t,oldView:e}),this.selectionStore.reset(),this.fetchContent())},dir(t,e){var n,i;Q.debug("Directory changed",{newDir:t,oldDir:e}),this.selectionStore.reset(),this.fetchContent(),null!==(n=this.$refs)&&void 0!==n&&null!==(i=n.filesListVirtual)&&void 0!==i&&i.$el&&(this.$refs.filesListVirtual.$el.scrollTop=0)}},methods:{async fetchContent(){var t,e;if(null!==(t=this.currentView)&&void 0!==t&&t.legacy)return;this.loading=!0;const n=this.dir,i=this.currentView;"function"==typeof(null===(e=this.promise)||void 0===e?void 0:e.cancel)&&(this.promise.cancel(),Q.debug("Cancelled previous ongoing fetch")),this.promise=i.getContents(n);try{const{folder:t,contents:e}=await this.promise;Q.debug("Fetched contents",{dir:n,folder:t,contents:e}),this.filesStore.updateNodes(e),t._children=e.map((t=>t.fileid)),"/"===n?this.filesStore.setRoot({service:i.id,root:t}):t.fileid?(this.filesStore.updateNodes([t]),this.pathsStore.addPath({service:i.id,fileid:t.fileid,path:n})):Q.error("Invalid root folder returned",{dir:n,folder:t,currentView:i}),e.filter((t=>"folder"===t.type)).forEach((t=>{this.pathsStore.addPath({service:i.id,fileid:t.fileid,path:(0,p.join)(n,t.basename)})}))}catch(t){Q.error("Error while fetching content",{error:t})}finally{this.loading=!1}},getNode(t){return this.filesStore.getNode(t)},t:r.Iu}});var Le=i(1508),Ue={};Ue.styleTagTransform=B(),Ue.setAttributes=I(),Ue.insert=S().bind(null,"head"),Ue.domAPI=_(),Ue.insertStyleElement=E(),C()(Le.Z,Ue),Le.Z&&Le.Z.locals&&Le.Z.locals;const Ve=(0,T.Z)(ze,(function(){var t,e,n=this,i=n._self._c;return n._self._setupProxy,i("NcAppContent",{directives:[{name:"show",rawName:"v-show",value:!(null!==(t=n.currentView)&&void 0!==t&&t.legacy),expression:"!currentView?.legacy"}],class:{"app-content--hidden":null===(e=n.currentView)||void 0===e?void 0:e.legacy},attrs:{"data-cy-files-content":""}},[i("div",{staticClass:"files-list__header"},[i("BreadCrumbs",{attrs:{path:n.dir},on:{reload:n.fetchContent}}),n._v(" "),n.isRefreshing?i("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):n._e()],1),n._v(" "),n.loading&&!n.isRefreshing?i("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,title:n.t("files","Loading current folder")}}):!n.loading&&n.isEmptyDir?i("NcEmptyContent",{attrs:{title:n.t("files","No files in here"),description:n.t("files","No files or folders have been deleted yet"),"data-cy-files-content-empty":""},scopedSlots:n._u([{key:"action",fn:function(){return["/"!==n.dir?i("NcButton",{attrs:{"aria-label":"t('files', 'Go to the previous folder')",type:"primary",to:n.toPreviousDir}},[n._v("\n\t\t\t\t"+n._s(n.t("files","Go back"))+"\n\t\t\t")]):n._e()]},proxy:!0},{key:"icon",fn:function(){return[i("TrashCan")]},proxy:!0}])}):i("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-view":n.currentView,nodes:n.dirContents}})],1)}),[],!1,null,"66068cbb",null).exports;var Oe=i(57638),Ze=i(55209),qe=i.n(Ze),Re=i(14032),je=i.n(Re),Me=i(91211),$e=i.n(Me);var We=i(28615),Ge=i(74184),He=i(48959),Ke=i.n(He);const Qe={name:"NavigationQuota",components:{ChartPie:Ge.Z,NcAppNavigationItem:je(),NcProgressBar:Ke()},data:()=>({loadingStorageStats:!1,storageStats:(0,s.j)("files","storageStats",null)}),computed:{storageStatsTitle(){var t,e,n;const i=(0,H.sS)(null===(t=this.storageStats)||void 0===t?void 0:t.used,!1,!0).replace("iB","B"),o=(0,H.sS)(null===(e=this.storageStats)||void 0===e?void 0:e.quota,!1,!0).replace("iB","B");return(null===(n=this.storageStats)||void 0===n?void 0:n.quota)<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:i}):this.t("files","{used} of {quota} used",{used:i,quota:o})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,G.Ld)("files:node:created",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:deleted",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:moved",this.throttleUpdateStorageStats),(0,G.Ld)("files:node:updated",this.throttleUpdateStorageStats)},methods:{debounceUpdateStorageStats:(0,We.D)(200,(function(t){this.updateStorageStats(t)})),throttleUpdateStorageStats:(0,We.P)(1e3,(function(t){this.updateStorageStats(t)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{var n;const t=await d.default.get((0,a.generateUrl)("/apps/files/api/v1/stats"));if(null==t||null===(n=t.data)||void 0===n||!n.data)throw new Error("Invalid storage stats");this.storageStats=t.data.data}catch(n){Q.error("Could not refresh storage stats",{error:n}),e&&(0,h.x2)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},t:r.Iu}};var Ye=i(81253),Je={};Je.styleTagTransform=B(),Je.setAttributes=I(),Je.insert=S().bind(null,"head"),Je.domAPI=_(),Je.insertStyleElement=E(),C()(Ye.Z,Je),Ye.Z&&Ye.Z.locals&&Ye.Z.locals;const Xe=(0,T.Z)(Qe,(function(){var t=this,e=t._self._c;return t.storageStats?e("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":t.storageStats.quota>=0},attrs:{"aria-label":t.t("files","Storage informations"),loading:t.loadingStorageStats,name:t.storageStatsTitle,title:t.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.debounceUpdateStorageStats.apply(null,arguments)}}},[e("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),t._v(" "),t.storageStats.quota>=0?e("NcProgressBar",{attrs:{slot:"extra",error:t.storageStats.relative>80,value:Math.min(t.storageStats.relative,100)},slot:"extra"}):t._e()],1):t._e()}),[],!1,null,"9741374e",null).exports;var tn=i(68988),en=i.n(tn),nn=i(16809),on=i.n(nn),sn=i(70386),rn=i(36029),an=i.n(rn);const ln={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},cn=(0,T.Z)(ln,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,dn={name:"Settings",components:{Clipboard:sn.Z,NcAppSettingsDialog:en(),NcAppSettingsSection:on(),NcCheckboxRadioSwitch:Ot(),NcInputField:an(),Setting:cn},props:{open:{type:Boolean,default:!1}},setup:()=>({userConfigStore:jt()}),data(){var t,e,n,i;return{settings:(null===(t=window.OCA)||void 0===t||null===(e=t.Files)||void 0===e||null===(n=e.Settings)||void 0===n?void 0:n.settings)||[],webdavUrl:(0,a.generateRemoteUrl)("dav/files/"+encodeURIComponent(null===(i=(0,l.ts)())||void 0===i?void 0:i.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,a.generateUrl)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1}},computed:{userConfig(){return this.userConfigStore.userConfig}},beforeMount(){this.settings.forEach((t=>t.open()))},beforeDestroy(){this.settings.forEach((t=>t.close()))},methods:{onClose(){this.$emit("close")},setConfig(t,e){this.userConfigStore.update(t,e)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,h.s$)(t("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,h.x2)(t("files","Clipboard is not available"))},t:r.Iu}},un=dn;var pn=i(35662),hn={};hn.styleTagTransform=B(),hn.setAttributes=I(),hn.insert=S().bind(null,"head"),hn.domAPI=_(),hn.insertStyleElement=E(),C()(pn.Z,hn),pn.Z&&pn.Z.locals&&pn.Z.locals;const fn=(0,T.Z)(un,(function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.open,"show-navigation":!0,title:t.t("files","Files settings")},on:{"update:open":t.onClose}},[e("NcAppSettingsSection",{attrs:{id:"settings",title:t.t("files","Files settings")}},[e("NcCheckboxRadioSwitch",{attrs:{checked:t.userConfig.show_hidden},on:{"update:checked":function(e){return t.setConfig("show_hidden",e)}}},[t._v("\n\t\t\t"+t._s(t.t("files","Show hidden files"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.userConfig.crop_image_previews},on:{"update:checked":function(e){return t.setConfig("crop_image_previews",e)}}},[t._v("\n\t\t\t"+t._s(t.t("files","Crop image previews"))+"\n\t\t")])],1),t._v(" "),0!==t.settings.length?e("NcAppSettingsSection",{attrs:{id:"more-settings",title:t.t("files","Additional settings")}},[t._l(t.settings,(function(t){return[e("Setting",{key:t.name,attrs:{el:t.el}})]}))],2):t._e(),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"webdav",title:t.t("files","WebDAV")}},[e("NcInputField",{attrs:{id:"webdav-url-input","show-trailing-button":!0,success:t.webdavUrlCopied,"trailing-button-label":t.t("files","Copy to clipboard"),value:t.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(t){return t.target.select()},"trailing-button-click":t.copyCloudId},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),t._v(" "),e("em",[e("a",{staticClass:"setting-link",attrs:{href:t.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[t._v("\n\t\t\t\t"+t._s(t.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),t._v(" "),e("br"),t._v(" "),e("em",[e("a",{staticClass:"setting-link",attrs:{href:t.appPasswordUrl}},[t._v("\n\t\t\t\t"+t._s(t.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1)],1)}),[],!1,null,"76ca5d1f",null).exports,An={name:"Navigation",components:{Cog:Oe.default,NavigationQuota:Xe,NcAppNavigation:qe(),NcAppNavigationItem:je(),NcIconSvgWrapper:$e(),SettingsModal:fn},props:{Navigation:{type:Be,required:!0}},setup:()=>({viewConfigStore:mt()}),data:()=>({settingsOpened:!1}),computed:{currentViewId(){var t,e;return(null===(t=this.$route)||void 0===t||null===(e=t.params)||void 0===e?void 0:e.view)||"files"},currentView(){return this.views.find((t=>t.id===this.currentViewId))},views(){return this.Navigation.views},parentViews(){return this.views.filter((t=>!t.parent)).sort(((t,e)=>t.order-e.order))},childViews(){return this.views.filter((t=>!!t.parent)).reduce(((t,e)=>(t[e.parent]=[...t[e.parent]||[],e],t[e.parent].sort(((t,e)=>t.order-e.order)),t)),{})}},watch:{currentView(t,e){(null==t?void 0:t.id)!==(null==e?void 0:e.id)&&(this.Navigation.setActive(t),Q.debug("Navigation changed",{id:t.id,view:t}),this.showView(t,e))}},beforeMount(){this.currentView&&(Q.debug("Navigation mounted. Showing requested view",{view:this.currentView}),this.showView(this.currentView)),(0,G.Ld)("files:legacy-navigation:changed",this.onLegacyNavigationChanged),(0,G.Ld)("files:legacy-view:initialized",(()=>{Q.debug("Legacy view initialized",{...this.currentView}),this.showView(this.currentView)}))},methods:{showView(t,e){var n,i,o,s,r;if(null===(n=window)||void 0===n||null===(i=n.OCA)||void 0===i||null===(o=i.Files)||void 0===o||null===(s=o.Sidebar)||void 0===s||null===(r=s.close)||void 0===r||r.call(s),null!=t&&t.legacy){const e=document.querySelector("#app-content #app-content-"+this.currentView.id+".viewcontainer");document.querySelectorAll("#app-content .viewcontainer").forEach((t=>{t.classList.add("hidden")})),e.classList.remove("hidden");const{dir:n="/"}=OC.Util.History.parseUrlQuery(),i={itemId:t.id,dir:n};Q.debug("Triggering legacy navigation event",i),window.jQuery(e).trigger(new window.jQuery.Event("show",i)),window.jQuery(e).trigger(new window.jQuery.Event("urlChanged",i))}this.Navigation.setActive(t),function(t){const e=document.getElementById("page-heading-level-1");e&&(e.textContent=t)}(t.name),(0,G.j8)("files:navigation:changed",t)},onLegacyNavigationChanged(){let{id:t="files",silent:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=this.Navigation.views.find((e=>e.id===t));n&&n.legacy&&n.id!==this.currentView.id&&(this.$router.replace({...this.$route,params:{view:n.id}}),e||(this.Navigation.setActive(n),this.showView(n)))},onToggleExpand(t){const e=this.isExpanded(t);t.expanded=!e,this.viewConfigStore.update(t.id,"expanded",!e)},isExpanded(t){var e;return"boolean"==typeof(null===(e=this.viewConfigStore.getConfig(t.id))||void 0===e?void 0:e.expanded)?!0===this.viewConfigStore.getConfig(t.id).expanded:!0===t.expanded},generateToNavigation(t){if(t.params){const{dir:e,fileid:n}=t.params;return{name:"filelist",params:t.params,query:{dir:e,fileid:n}}}return{name:"filelist",params:{view:t.id}}},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1},t:r.Iu}},vn=An;var mn=i(18131),gn={};gn.styleTagTransform=B(),gn.setAttributes=I(),gn.insert=S().bind(null,"head"),gn.domAPI=_(),gn.insertStyleElement=E(),C()(mn.Z,gn),mn.Z&&mn.Z.locals&&mn.Z.locals;const wn=(0,T.Z)(vn,(function(){var t=this,e=t._self._c;return e("NcAppNavigation",{attrs:{"data-cy-files-navigation":""},scopedSlots:t._u([{key:"list",fn:function(){return t._l(t.parentViews,(function(n){return e("NcAppNavigationItem",{key:n.id,attrs:{"allow-collapse":!0,"data-cy-files-navigation-item":n.id,icon:n.iconClass,open:t.isExpanded(n),pinned:n.sticky,title:n.name,to:t.generateToNavigation(n)},on:{"update:open":function(e){return t.onToggleExpand(n)}}},[n.icon?e("NcIconSvgWrapper",{attrs:{slot:"icon",svg:n.icon},slot:"icon"}):t._e(),t._v(" "),t._l(t.childViews[n.id],(function(n){return e("NcAppNavigationItem",{key:n.id,attrs:{"data-cy-files-navigation-item":n.id,exact:!0,icon:n.iconClass,title:n.name,to:t.generateToNavigation(n)}},[n.icon?e("NcIconSvgWrapper",{attrs:{slot:"icon",svg:n.icon},slot:"icon"}):t._e()],1)}))],2)}))},proxy:!0},{key:"footer",fn:function(){return[e("ul",{staticClass:"app-navigation-entry__settings"},[e("NavigationQuota"),t._v(" "),e("NcAppNavigationItem",{attrs:{"aria-label":t.t("files","Open the files app settings"),title:t.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.openSettings.apply(null,arguments)}}},[e("Cog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])},[t._v(" "),t._v(" "),e("SettingsModal",{attrs:{open:t.settingsOpened,"data-cy-files-navigation-settings":""},on:{close:t.onSettingsClose}})],1)}),[],!1,null,"dd350a0c",null).exports,bn=function(t){let{id:e,name:n,order:i,icon:o,parent:s,classes:r="",expanded:a,params:l}=t;OCP.Files.Navigation.register({id:e,name:n,order:i,params:l,parent:s,expanded:!0===a,iconClass:o?"icon-".concat(o):"nav-icon-"+e,legacy:!0,sticky:r.includes("pinned")})};var Cn=i(78345),yn=i(97047);u.default.use(Cn.ZP);const _n=new Cn.ZP({mode:"history",base:(0,a.generateUrl)("/apps/files",""),linkActiveClass:"active",routes:[{path:"/",alias:"/files"},{path:"/:view/:fileid?",name:"filelist",props:!0}],stringifyQuery(t){const e=yn.Z.stringify(t).replace(/%2F/gim,"/");return e?"?"+e:""}});_n.beforeEach(((t,e,n)=>{try{var i,o,s,r,a;var l,c;!0===(null===(s=((null===(i=window.OCP.Files)||void 0===i||null===(o=i.Navigation)||void 0===o?void 0:o.views)||[]).find((e=>{var n;return(null==e?void 0:e.id)===(null==t||null===(n=t.params)||void 0===n?void 0:n.view)})))||void 0===s?void 0:s.legacy)&&(null==t||null===(r=t.query)||void 0===r?void 0:r.dir)!==(null==e||null===(a=e.query)||void 0===a?void 0:a.dir)&&window.OCA.Files.App.fileList.changeDirectory((null==t||null===(l=t.query)||void 0===l?void 0:l.dir)||"/",!1,!1,null==t||null===(c=t.query)||void 0===c?void 0:c.fileid,!0)}catch(t){}n()}));const xn=_n;function Sn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var kn,In,Nn=i(25108);window.OCA.Files=null!==(kn=window.OCA.Files)&&void 0!==kn?kn:{},window.OCP.Files=null!==(In=window.OCP.Files)&&void 0!==In?In:{};const En=new class{constructor(t){var e,n,i;e=this,i=void 0,(n=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(n="_router"))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,this._router=t}goTo(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._router.push({path:t,replace:e})}goToRoute(t,e,n,i){return this._router.push({name:t,query:n,params:e,replace:i})}}(xn);Object.assign(window.OCP.Files,{Router:En}),u.default.use(ot.og);const Fn=(0,ot.WB)(),Bn=new Be;Object.assign(window.OCP.Files,{Navigation:Bn}),u.default.prototype.$navigation=Bn;const Pn=new class{constructor(){var t,e,n;t=this,n=void 0,(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e="_settings"))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,this._settings=[],Nn.debug("OCA.Files.Settings initialized")}register(t){return this._settings.filter((e=>e.name===t.name)).length>0?(Nn.error("A setting with the same name is already registered"),!1):(this._settings.push(t),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Pn}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(t,e){let{el:n,open:i,close:o}=e;Sn(this,"_close",void 0),Sn(this,"_el",void 0),Sn(this,"_name",void 0),Sn(this,"_open",void 0),this._name=t,this._el=n,this._open=i,this._close=o,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(u.default.extend(wn))({name:"FilesNavigationRoot",propsData:{Navigation:Bn},router:xn,pinia:Fn}).$mount("#app-navigation-files"),new(u.default.extend(Ve))({name:"FilesListRoot",router:xn,pinia:Fn}).$mount("#app-content-vue"),function(){const t=Object.values((0,s.j)("files","navigation",{}));t.length>0&&(Q.debug("Legacy files views detected. Processing...",t),t.forEach((t=>{bn(t),t.sublist&&t.sublist.forEach((e=>bn({...e,parent:t.id})))})))}(),"serviceWorker"in navigator?window.addEventListener("load",(async()=>{try{const t=(0,a.generateUrl)("/apps/files/preview-service-worker.js",{},{noRewrite:!0}),e=await navigator.serviceWorker.register(t,{scope:"/"});Q.debug("SW registered: ",{registration:e})}catch(t){Q.error("SW registration failed: ",{error:t})}})):Q.debug("Service Worker is not enabled on this browser.")},39959:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".breadcrumb[data-v-68b3b20b]{flex:1 1 100% !important;width:100%}.breadcrumb[data-v-68b3b20b] a{cursor:pointer !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,6BAEC,wBAAA,CACA,UAAA,CAEA,+BACC,yBAAA",sourcesContent:["\n.breadcrumb {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\n\t::v-deep a {\n\t\tcursor: pointer !important;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},61959:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".custom-svg-icon[data-v-93e9b2f4]{display:flex;align-items:center;align-self:center;justify-content:center;justify-self:center;width:44px;height:44px;opacity:1}.custom-svg-icon[data-v-93e9b2f4] svg{height:22px;width:22px;fill:currentColor}","",{version:3,sources:["webpack://./apps/files/src/components/CustomSvgIconRender.vue"],names:[],mappings:"AACA,kCACC,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,sBAAA,CACA,mBAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAEA,sCAGC,WAAA,CACA,UAAA,CACA,iBAAA",sourcesContent:["\n.custom-svg-icon {\n\tdisplay: flex;\n\talign-items: center;\n\talign-self: center;\n\tjustify-content: center;\n\tjustify-self: center;\n\twidth: 44px;\n\theight: 44px;\n\topacity: 1;\n\n\t::v-deep svg {\n\t\t// mdi icons have a size of 24px\n\t\t// 22px results in roughly 16px inner size\n\t\theight: 22px;\n\t\twidth: 22px;\n\t\tfill: currentColor;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},79016:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"tr[data-v-71eb16b5]:hover,tr[data-v-71eb16b5]:focus,tr[data-v-71eb16b5]:active{background-color:var(--color-background-dark)}.files-list__row-icon-preview[data-v-71eb16b5]:not([style*=background]){background:var(--color-loading-dark)}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry.vue"],names:[],mappings:"AAGC,+EAGC,6CAAA,CAKF,wEACI,oCAAA",sourcesContent:["\n/* Hover effect on tbody lines only */\ntr {\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n}\n\n/* Preview not loaded animation effect */\n.files-list__row-icon-preview:not([style*='background']) {\n background: var(--color-loading-dark);\n\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n}\n"],sourceRoot:""}]);const a=r},82975:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"tr[data-v-2e19f455]{padding-bottom:300px;border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}td[data-v-2e19f455]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListFooter.vue"],names:[],mappings:"AAEA,oBACC,oBAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAGD,oBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tpadding-bottom: 300px;\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n}\n\ntd {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n}\n\n"],sourceRoot:""}]);const a=r},96153:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__column[data-v-76b6186a]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-76b6186a]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},97877:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__row-actions-batch[data-v-03e57b1e]{flex:1 1 100% !important}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper{width:100%}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper span.button-vue__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CAGA,qEACC,UAAA,CACA,2FACC,eAAA,CACA,sBAAA,CACA,kBAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\n\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t::v-deep .button-vue__wrapper {\n\t\twidth: 100%;\n\t\tspan.button-vue__text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},29252:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list__column-sort-button{margin:0 calc(var(--cell-margin)*-1);padding:0 4px 0 16px !important}.files-list__column-sort-button .button-vue__wrapper{flex-direction:row-reverse;width:100%}.files-list__column-sort-button .button-vue__icon{transition-timing-function:linear;transition-duration:.1s;transition-property:opacity;opacity:0}.files-list__column-sort-button .button-vue__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list__column-sort-button--active .button-vue__icon,.files-list__column-sort-button:hover .button-vue__icon,.files-list__column-sort-button:focus .button-vue__icon,.files-list__column-sort-button:active .button-vue__icon{opacity:1 !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListHeaderButton.vue"],names:[],mappings:"AACA,gCAEC,oCAAA,CAEA,+BAAA,CAGA,qDACC,0BAAA,CAGA,UAAA,CAGD,kDACC,iCAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAID,kDACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAOA,mOACC,oBAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--cell-margin) * -1);\n\t// Reverse padding\n\tpadding: 0 4px 0 16px !important;\n\n\t// Icon after text\n\t.button-vue__wrapper {\n\t\tflex-direction: row-reverse;\n\t\t// Take max inner width for text overflow ellipsis\n\t\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t\twidth: 100%;\n\t}\n\n\t.button-vue__icon {\n\t\ttransition-timing-function: linear;\n\t\ttransition-duration: .1s;\n\t\ttransition-property: opacity;\n\t\topacity: 0;\n\t}\n\n\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\n\t.button-vue__text {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&--active,\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\t.button-vue__icon {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},59473:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".files-list[data-v-7be0268a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: 44px;--icon-preview-size: 32px;display:block;overflow:auto;height:100%}.files-list[data-v-7be0268a] tbody,.files-list[data-v-7be0268a] .vue-recycle-scroller__slot{display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-7be0268a] .vue-recycle-scroller__slot[role=thead]{position:sticky;z-index:10;top:0;height:var(--row-height);background-color:var(--color-main-background)}.files-list[data-v-7be0268a] tr{position:absolute;display:flex;align-items:center;width:100%;border-bottom:1px solid var(--color-border)}.files-list[data-v-7be0268a] td,.files-list[data-v-7be0268a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:left;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-7be0268a] td span,.files-list[data-v-7be0268a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-7be0268a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-7be0268a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-right:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-7be0268a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-7be0268a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-7be0268a] .files-list__row-icon-preview{overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center;background-size:contain}.files-list[data-v-7be0268a] .files-list__row-icon-favorite{position:absolute;top:4px;right:-8px;color:#fc0}.files-list[data-v-7be0268a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-7be0268a] .files-list__row-name a{display:flex;align-items:center;width:100%;height:100%}.files-list[data-v-7be0268a] .files-list__row-name a:focus .files-list__row-name-text,.files-list[data-v-7be0268a] .files-list__row-name a:focus-visible .files-list__row-name-text{outline:2px solid var(--color-main-text) !important;border-radius:20px}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-text{padding:5px 10px;margin-left:-10px;display:inline-flex}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-actions{width:auto}.files-list[data-v-7be0268a] .files-list__row-actions~td,.files-list[data-v-7be0268a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-7be0268a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-7be0268a] .files-list__row-actions button:not(:hover,:focus,:active) .button-vue__wrapper{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-size{justify-content:flex-end;width:calc(var(--row-height)*1.5);color:var(--color-main-text)}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button{padding:0 16px 0 4px !important}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button .button-vue__wrapper{flex-direction:row}.files-list[data-v-7be0268a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AACA,6BACC,kBAAA,CACA,mBAAA,CAEA,wEAAA,CACA,qBAAA,CACA,sBAAA,CACA,yBAAA,CAEA,aAAA,CACA,aAAA,CACA,WAAA,CAIC,4FACC,YAAA,CACA,qBAAA,CACA,UAAA,CAEA,iBAAA,CAID,qEAEC,eAAA,CACA,UAAA,CACA,KAAA,CACA,wBAAA,CACA,6CAAA,CAGD,gCACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,UAAA,CACA,2CAAA,CAGD,gEACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,oBAAA,CACA,uBAAA,CACA,wBAAA,CACA,QAAA,CACA,SAAA,CACA,mCAAA,CACA,WAAA,CAKA,0EACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAIF,uDACC,sBAAA,CACA,8EACC,YAAA,CACA,sBAAA,CAEA,iCAAA,CAEA,iHACC,2BAAA,CACA,4BAAA,CACA,QAAA,CACA,8DAAA,CAGD,2GACC,mBAAA,CAKH,mDACC,iBAAA,CACA,YAAA,CACA,gBAAA,CACA,kBAAA,CAEA,iCAAA,CACA,sBAAA,CACA,8BAAA,CACA,WAAA,CAEA,oCAAA,CACA,kCAAA,CAEA,wDACC,0BAAA,CAGD,gGACC,8BAAA,CACA,+BAAA,CAGD,2DACC,eAAA,CACA,8BAAA,CACA,+BAAA,CACA,kCAAA,CACA,2BAAA,CAEA,0BAAA,CACA,uBAAA,CAGD,4DACC,iBAAA,CACA,OAAA,CACA,UAAA,CACA,UAAA,CAIF,mDAEC,eAAA,CAEA,aAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,WAAA,CAGA,oLAEC,mDAAA,CACA,kBAAA,CAIF,8EAEC,gBAAA,CACA,iBAAA,CAEA,mBAAA,CAGD,6EACC,mCAAA,CAIF,sDACC,UAAA,CAGA,kHAEC,2BAAA,CAIA,+EAEC,kBAAA,CAED,6GAEC,mCAAA,CAKH,mDAEC,wBAAA,CACA,iCAAA,CAEA,4BAAA,CAGA,mFACC,+BAAA,CACA,wGACC,kBAAA,CAKH,4DACC,+BAAA",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: 44px;\n\t--icon-preview-size: 32px;\n\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\n\t&::v-deep {\n\t\t// Table head, body and footer\n\t\ttbody, .vue-recycle-scroller__slot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\t\t}\n\n\t\t// Table header\n\t\t.vue-recycle-scroller__slot[role='thead'] {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: 0;\n\t\t\theight: var(--row-height);\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: absolute;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: left;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-right: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\n\t\t\t&> span:not(.files-list__row-icon-favorite) svg {\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t// Center and contain the preview\n\t\t\t\tbackground-position: center;\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 4px;\n\t\t\t\tright: -8px;\n\t\t\t\tcolor: #ffcc00;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\ta {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text,\n\t\t\t\t&:focus-visible .files-list__row-name-text {\n\t\t\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: 20px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\tmargin-left: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t\t&:not(:hover, :focus, :active) .button-vue__wrapper {\n\t\t\t\t\t// Also apply color-text-maxcontrast to non-active button\n\t\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-size {\n\t\t\t// Right align text\n\t\t\tjustify-content: flex-end;\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// opacity varies with the size\n\t\t\tcolor: var(--color-main-text);\n\n\t\t\t// Icon is before text since size is right aligned\n\t\t\t.files-list__column-sort-button {\n\t\t\t\tpadding: 0 16px 0 4px !important;\n\t\t\t\t.button-vue__wrapper {\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=r},81253:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-navigation-entry__settings-quota--not-unlimited[data-v-9741374e] .app-navigation-entry__title{margin-top:-4px}.app-navigation-entry__settings-quota progress[data-v-9741374e]{position:absolute;bottom:10px;margin-left:44px;width:calc(100% - 44px - 22px)}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAIC,mGACC,eAAA,CAGD,gEACC,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,8BAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t&--not-unlimited::v-deep .app-navigation-entry__title {\n\t\tmargin-top: -4px;\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: 10px;\n\t\tmargin-left: 44px;\n\t\twidth: calc(100% - 44px - 22px);\n\t}\n}\n"],sourceRoot:""}]);const a=r},67679:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".template-picker__item[data-v-5b09ec60]{display:flex}.template-picker__label[data-v-5b09ec60]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-5b09ec60],.template-picker__label *[data-v-5b09ec60]{cursor:pointer;user-select:none}.template-picker__label[data-v-5b09ec60]::before{display:none !important}.template-picker__preview[data-v-5b09ec60]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-5b09ec60]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-5b09ec60]{display:flex}.template-picker__image[data-v-5b09ec60]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-5b09ec60]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-5b09ec60]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/TemplatePreview.vue"],names:[],mappings:"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},1508:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-content[data-v-66068cbb]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}.app-content[data-v-66068cbb]:not(.app-content--hidden)+#app-content{display:none}.files-list__header[data-v-66068cbb]{display:flex;align-content:center;flex:0 0;margin:4px 4px 4px 50px}.files-list__header>*[data-v-66068cbb]{flex:0 0}.files-list__refresh-icon[data-v-66068cbb]{flex:0 0 44px;width:44px;height:44px}.files-list__loading-icon[data-v-66068cbb]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CAIA,qEACC,YAAA,CAQD,qCACC,YAAA,CACA,oBAAA,CAEA,QAAA,CAEA,uBAAA,CACA,uCAGC,QAAA,CAGF,2CACC,aAAA,CACA,UAAA,CACA,WAAA,CAED,2CACC,WAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\n\t// TODO: remove after all legacy views are migrated\n\t// Hides the legacy app-content if shown view is not legacy\n\t&:not(&--hidden)::v-deep + #app-content {\n\t\tdisplay: none;\n\t}\n}\n\n$margin: 4px;\n$navigationToggleSize: 50px;\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\t// Align with the navigation toggle icon\n\t\tmargin: $margin $margin $margin $navigationToggleSize;\n\t\t> * {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\t}\n\t&__refresh-icon {\n\t\tflex: 0 0 44px;\n\t\twidth: 44px;\n\t\theight: 44px;\n\t}\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},18131:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".app-navigation[data-v-dd350a0c] .app-navigation-entry-icon{background-repeat:no-repeat;background-position:center}.app-navigation>ul.app-navigation__list[data-v-dd350a0c]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-dd350a0c]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEA,4DACC,2BAAA,CACA,0BAAA,CAGD,yDAEC,gDAAA,CAGD,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA",sourcesContent:["\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\n.app-navigation::v-deep .app-navigation-entry-icon {\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.app-navigation > ul.app-navigation__list {\n\t// Use flex gap value for more elegant spacing\n\tpadding-bottom: var(--default-grid-baseline, 4px);\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n"],sourceRoot:""}]);const a=r},35662:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".setting-link[data-v-76ca5d1f]:hover{text-decoration:underline}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n"],sourceRoot:""}]);const a=r},54654:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,".templates-picker__form[data-v-d46f1dc6]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-d46f1dc6]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-d46f1dc6]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-d46f1dc6]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-d46f1dc6],.templates-picker__buttons input[type=submit][data-v-d46f1dc6]{height:44px}.templates-picker[data-v-d46f1dc6] .modal-container{position:relative}.templates-picker__loading[data-v-d46f1dc6]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}","",{version:3,sources:["webpack://./apps/files/src/views/TemplatePicker.vue"],names:[],mappings:"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA",sourcesContent:["\n.templates-picker {\n\t&__form {\n\t\tpadding: calc(var(--margin) * 2);\n\t\t// Will be handled by the buttons\n\t\tpadding-bottom: 0;\n\n\t\th2 {\n\t\t\ttext-align: center;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: var(--margin) 0 calc(var(--margin) * 2);\n\t\t}\n\t}\n\n\t&__list {\n\t\tdisplay: grid;\n\t\tgrid-gap: calc(var(--margin) * 2);\n\t\tgrid-auto-columns: 1fr;\n\t\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\n\t\tmax-width: calc(var(--fullwidth) * 6);\n\t\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\n\t\t// Make sure all rows are the same height\n\t\tgrid-auto-rows: 1fr;\n\t\t// Center the columns set\n\t\tjustify-content: center;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t\tpadding: calc(var(--margin) * 2) var(--margin);\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tbackground-image: linear-gradient(0, var(--gradient-main-background));\n\n\t\tbutton, input[type='submit'] {\n\t\t\theight: 44px;\n\t\t}\n\t}\n\n\t// Make sure we're relative for the loading emptycontent on top\n\t::v-deep .modal-container {\n\t\tposition: relative;\n\t}\n\n\t&__loading {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\tbackground-color: var(--color-main-background-translucent);\n\t}\n}\n\n"],sourceRoot:""}]);const a=r},7173:(t,e,n)=>{n.d(e,{Z:()=>a});var i=n(87537),o=n.n(i),s=n(23645),r=n.n(s)()(o());r.push([t.id,"\n/* @keyframes preview-gradient-fade {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n} */\n","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry.vue"],names:[],mappings:";AA6nBA;;;;;;;;;;GAUA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<Fragment>\n\t\t<td class=\"files-list__row-checkbox\">\n\t\t\t<NcCheckboxRadioSwitch v-if=\"active\"\n\t\t\t\t:aria-label=\"t('files', 'Select the row for {displayName}', { displayName })\"\n\t\t\t\t:checked=\"selectedFiles\"\n\t\t\t\t:value=\"fileid\"\n\t\t\t\tname=\"selectedFiles\"\n\t\t\t\t@update:checked=\"onSelectionChange\" />\n\t\t</td>\n\n\t\t\x3c!-- Link to file --\x3e\n\t\t<td class=\"files-list__row-name\">\n\t\t\t<a ref=\"name\" v-bind=\"linkAttrs\" @click=\"execDefaultAction\">\n\t\t\t\t\x3c!-- Icon or preview --\x3e\n\t\t\t\t<span class=\"files-list__row-icon\">\n\t\t\t\t\t<FolderIcon v-if=\"source.type === 'folder'\" />\n\n\t\t\t\t\t\x3c!-- Decorative image, should not be aria documented --\x3e\n\t\t\t\t\t<span v-else-if=\"previewUrl && !backgroundFailed\"\n\t\t\t\t\t\tref=\"previewImg\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-preview\"\n\t\t\t\t\t\t:style=\"{ backgroundImage }\" />\n\n\t\t\t\t\t<span v-else-if=\"mimeIconUrl\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-preview files-list__row-icon-preview--mime\"\n\t\t\t\t\t\t:style=\"{ backgroundImage: mimeIconUrl }\" />\n\n\t\t\t\t\t<FileIcon v-else />\n\n\t\t\t\t\t\x3c!-- Favorite icon --\x3e\n\t\t\t\t\t<span v-if=\"isFavorite\"\n\t\t\t\t\t\tclass=\"files-list__row-icon-favorite\"\n\t\t\t\t\t\t:aria-label=\"t('files', 'Favorite')\">\n\t\t\t\t\t\t<StarIcon aria-hidden=\"true\" :size=\"20\" />\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t\x3c!-- File name --\x3e\n\t\t\t\t<span class=\"files-list__row-name-text\">\n\t\t\t\t\t\x3c!-- Keep the displayName stuck to the extension to avoid whitespace rendering issues--\x3e\n\t\t\t\t\t<span class=\"files-list__row-name-name\" v-text=\"displayName\" />\n\t\t\t\t\t<span class=\"files-list__row-name-ext\" v-text=\"extension\" />\n\t\t\t\t</span>\n\t\t\t</a>\n\t\t</td>\n\n\t\t\x3c!-- Actions --\x3e\n\t\t<td :class=\"`files-list__row-actions-${uniqueId}`\" class=\"files-list__row-actions\">\n\t\t\t\x3c!-- Inline actions --\x3e\n\t\t\t\x3c!-- TODO: implement CustomElementRender --\x3e\n\n\t\t\t\x3c!-- Menu actions --\x3e\n\t\t\t<NcActions v-if=\"active\"\n\t\t\t\tref=\"actionsMenu\"\n\t\t\t\t:boundaries-element=\"boundariesElement\"\n\t\t\t\t:container=\"boundariesElement\"\n\t\t\t\t:disabled=\"source._loading\"\n\t\t\t\t:force-title=\"true\"\n\t\t\t\t:force-menu=\"true\"\n\t\t\t\t:inline=\"enabledInlineActions.length\"\n\t\t\t\t:open.sync=\"openedMenu\">\n\t\t\t\t<NcActionButton v-for=\"action in enabledMenuActions\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:class=\"'files-list__row-action-' + action.id\"\n\t\t\t\t\t@click=\"onActionClick(action)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcLoadingIcon v-if=\"loading === action.id\" :size=\"18\" />\n\t\t\t\t\t\t<CustomSvgIconRender v-else :svg=\"action.iconSvgInline([source], currentView)\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.displayName([source], currentView) }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</td>\n\n\t\t\x3c!-- Size --\x3e\n\t\t<td v-if=\"isSizeAvailable\"\n\t\t\t:style=\"{ opacity: sizeOpacity }\"\n\t\t\tclass=\"files-list__row-size\"\n\t\t\t@click=\"openDetailsIfAvailable\">\n\t\t\t<span>{{ size }}</span>\n\t\t</td>\n\n\t\t\x3c!-- View columns --\x3e\n\t\t<td v-for=\"column in columns\"\n\t\t\t:key=\"column.id\"\n\t\t\t:class=\"`files-list__row-${currentView?.id}-${column.id}`\"\n\t\t\tclass=\"files-list__row-column-custom\"\n\t\t\t@click=\"openDetailsIfAvailable\">\n\t\t\t<CustomElementRender v-if=\"active\"\n\t\t\t\t:current-view=\"currentView\"\n\t\t\t\t:render=\"column.render\"\n\t\t\t\t:source=\"source\" />\n\t\t</td>\n\t</Fragment>\n</template>\n\n<script lang='ts'>\nimport { debounce } from 'debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { Fragment } from 'vue-frag'\nimport { join, extname } from 'path'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { translate } from '@nextcloud/l10n'\nimport CancelablePromise from 'cancelable-promise'\nimport FileIcon from 'vue-material-design-icons/File.vue'\nimport FolderIcon from 'vue-material-design-icons/Folder.vue'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport StarIcon from 'vue-material-design-icons/Star.vue'\nimport Vue from 'vue'\n\nimport { ACTION_DETAILS } from '../actions/sidebarAction.ts'\nimport { getFileActions } from '../services/FileAction.ts'\nimport { hashCode } from '../utils/hashUtils.ts'\nimport { isCachedPreview } from '../services/PreviewService.ts'\nimport { useActionsMenuStore } from '../store/actionsmenu.ts'\nimport { useFilesStore } from '../store/files.ts'\nimport { useKeyboardStore } from '../store/keyboard.ts'\nimport { useSelectionStore } from '../store/selection.ts'\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport CustomElementRender from './CustomElementRender.vue'\nimport CustomSvgIconRender from './CustomSvgIconRender.vue'\nimport logger from '../logger.js'\n\n// The registered actions list\nconst actions = getFileActions()\n\nexport default Vue.extend({\n\tname: 'FileEntry',\n\n\tcomponents: {\n\t\tCustomElementRender,\n\t\tCustomSvgIconRender,\n\t\tFileIcon,\n\t\tFolderIcon,\n\t\tFragment,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcLoadingIcon,\n\t\tStarIcon,\n\t},\n\n\tprops: {\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisSizeAvailable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsource: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tnodes: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tfilesListWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst actionsMenuStore = useActionsMenuStore()\n\t\tconst filesStore = useFilesStore()\n\t\tconst keyboardStore = useKeyboardStore()\n\t\tconst selectionStore = useSelectionStore()\n\t\tconst userConfigStore = useUserConfigStore()\n\t\treturn {\n\t\t\tactionsMenuStore,\n\t\t\tfilesStore,\n\t\t\tkeyboardStore,\n\t\t\tselectionStore,\n\t\t\tuserConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tbackgroundFailed: false,\n\t\t\tbackgroundImage: '',\n\t\t\tboundariesElement: document.querySelector('.app-content > .files-list'),\n\t\t\tloading: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\n\t\tcurrentView() {\n\t\t\treturn this.$navigation.active\n\t\t},\n\t\tcolumns() {\n\t\t\t// Hide columns if the list is too small\n\t\t\tif (this.filesListWidth < 512) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.currentView?.columns || []\n\t\t},\n\n\t\tdir() {\n\t\t\t// Remove any trailing slash but leave root slash\n\t\t\treturn (this.$route?.query?.dir || '/').replace(/^(.+)\\/$/, '$1')\n\t\t},\n\t\tfileid() {\n\t\t\treturn this.source?.fileid?.toString?.()\n\t\t},\n\n\t\textension() {\n\t\t\tif (this.source.attributes?.displayName) {\n\t\t\t\treturn extname(this.source.attributes.displayName)\n\t\t\t}\n\t\t\treturn this.source.extension || ''\n\t\t},\n\t\tdisplayName() {\n\t\t\tconst ext = this.extension\n\t\t\tconst name = (this.source.attributes.displayName\n\t\t\t\t|| this.source.basename)\n\n\t\t\t// Strip extension from name if defined\n\t\t\treturn !ext ? name : name.slice(0, 0 - ext.length)\n\t\t},\n\n\t\tsize() {\n\t\t\tconst size = parseInt(this.source.size, 10) || 0\n\t\t\tif (typeof size !== 'number' || size < 0) {\n\t\t\t\treturn this.t('files', 'Pending')\n\t\t\t}\n\t\t\treturn formatFileSize(size, true, true).replace('iB', 'B')\n\t\t},\n\t\tsizeOpacity() {\n\t\t\tconst size = parseInt(this.source.size, 10) || 0\n\t\t\tif (!size || size < 0) {\n\t\t\t\treturn 1\n\t\t\t}\n\n\t\t\t// Whatever theme is active, the contrast will pass WCAG AA\n\t\t\t// with color main text over main background and an opacity of 0.7\n\t\t\tconst minOpacity = 0.7\n\t\t\tconst maxOpacitySize = 10 * 1024 * 1024\n\t\t\treturn minOpacity + (1 - minOpacity) * Math.pow((this.source.size / maxOpacitySize), 2)\n\t\t},\n\n\t\tlinkAttrs() {\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\tconst action = this.enabledDefaultActions[0]\n\t\t\t\tconst displayName = action.displayName([this.source], this.currentView)\n\t\t\t\treturn {\n\t\t\t\t\tclass: ['files-list__row-default-action', 'files-list__row-action-' + action.id],\n\t\t\t\t\trole: 'button',\n\t\t\t\t\ttitle: displayName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * A folder would never reach this point\n\t\t\t * as it has open-folder as default action.\n\t\t\t * Just to be safe, let's handle it.\n\t\t\t */\n\t\t\tif (this.source.type === 'folder') {\n\t\t\t\tconst to = { ...this.$route, query: { dir: join(this.dir, this.source.basename) } }\n\t\t\t\treturn {\n\t\t\t\t\tis: 'router-link',\n\t\t\t\t\ttitle: this.t('files', 'Open folder {name}', { name: this.displayName }),\n\t\t\t\t\tto,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thref: this.source.source,\n\t\t\t\t// TODO: Use first action title ?\n\t\t\t\ttitle: this.t('files', 'Download file {name}', { name: this.displayName }),\n\t\t\t}\n\t\t},\n\n\t\tselectedFiles() {\n\t\t\treturn this.selectionStore.selected\n\t\t},\n\t\tisSelected() {\n\t\t\treturn this.selectedFiles.includes(this.source?.fileid?.toString?.())\n\t\t},\n\n\t\tcropPreviews() {\n\t\t\treturn this.userConfig.crop_image_previews\n\t\t},\n\t\tpreviewUrl() {\n\t\t\ttry {\n\t\t\t\tconst url = new URL(window.location.origin + this.source.attributes.previewUrl)\n\t\t\t\t// Request tiny previews\n\t\t\t\turl.searchParams.set('x', '32')\n\t\t\t\turl.searchParams.set('y', '32')\n\t\t\t\t// Handle cropping\n\t\t\t\turl.searchParams.set('a', this.cropPreviews === true ? '0' : '1')\n\t\t\t\treturn url.href\n\t\t\t} catch (e) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\t\tmimeIconUrl() {\n\t\t\tconst mimeType = this.source.mime || 'application/octet-stream'\n\t\t\tconst mimeIconUrl = window.OC?.MimeType?.getIconUrl?.(mimeType)\n\t\t\tif (mimeIconUrl) {\n\t\t\t\treturn `url(${mimeIconUrl})`\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\n\t\tenabledActions() {\n\t\t\treturn actions\n\t\t\t\t.filter(action => !action.enabled || action.enabled([this.source], this.currentView))\n\t\t\t\t.sort((a, b) => (a.order || 0) - (b.order || 0))\n\t\t},\n\t\tenabledInlineActions() {\n\t\t\tif (this.filesListWidth < 768) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\treturn this.enabledActions.filter(action => action?.inline?.(this.source, this.currentView))\n\t\t},\n\t\tenabledMenuActions() {\n\t\t\tif (this.filesListWidth < 768) {\n\t\t\t\t// If we have a default action, do not render the first one\n\t\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\t\treturn this.enabledActions.slice(1)\n\t\t\t\t}\n\t\t\t\treturn this.enabledActions\n\t\t\t}\n\n\t\t\tconst actions = [\n\t\t\t\t...this.enabledInlineActions,\n\t\t\t\t...this.enabledActions.filter(action => !action.inline),\n\t\t\t]\n\n\t\t\t// If we have a default action, do not render the first one\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\treturn actions.slice(1)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t\tenabledDefaultActions() {\n\t\t\treturn [\n\t\t\t\t...this.enabledActions.filter(action => action.default),\n\t\t\t]\n\t\t},\n\t\topenedMenu: {\n\t\t\tget() {\n\t\t\t\treturn this.actionsMenuStore.opened === this.uniqueId\n\t\t\t},\n\t\t\tset(opened) {\n\t\t\t\tthis.actionsMenuStore.opened = opened ? this.uniqueId : null\n\t\t\t},\n\t\t},\n\n\t\tuniqueId() {\n\t\t\treturn hashCode(this.source.source)\n\t\t},\n\n\t\tisFavorite() {\n\t\t\treturn this.source.attributes.favorite === 1\n\t\t},\n\t},\n\n\twatch: {\n\t\tactive(active, before) {\n\t\t\tif (active === false && before === true) {\n\t\t\t\tthis.resetState()\n\n\t\t\t\t// When the row is not active anymore\n\t\t\t\t// remove the display from the row to prevent\n\t\t\t\t// keyboard interaction with it.\n\t\t\t\tthis.$el.parentNode.style.display = 'none'\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Restore default tabindex\n\t\t\tthis.$el.parentNode.style.display = ''\n\t\t},\n\n\t\t/**\n\t\t * When the source changes, reset the preview\n\t\t * and fetch the new one.\n\t\t */\n\t\tpreviewUrl() {\n\t\t\tthis.clearImg()\n\t\t\tthis.debounceIfNotCached()\n\t\t},\n\t},\n\n\t/**\n\t * The row is mounted once and reused as we scroll.\n\t */\n\tmounted() {\n\t\t// ⚠ Init the debounce function on mount and\n\t\t// not when the module is imported to\n\t\t// avoid sharing between recycled components\n\t\tthis.debounceGetPreview = debounce(function() {\n\t\t\tthis.fetchAndApplyPreview()\n\t\t}, 150, false)\n\n\t\t// Fetch the preview on init\n\t\tthis.debounceIfNotCached()\n\n\t\t// Right click watcher on tr\n\t\tthis.$el.parentNode?.addEventListener?.('contextmenu', this.onRightClick)\n\t},\n\n\tbeforeDestroy() {\n\t\tthis.resetState()\n\t},\n\n\tmethods: {\n\t\tasync debounceIfNotCached() {\n\t\t\tif (!this.previewUrl) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Check if we already have this preview cached\n\t\t\tconst isCached = await isCachedPreview(this.previewUrl)\n\t\t\tif (isCached) {\n\t\t\t\tthis.backgroundImage = `url(${this.previewUrl})`\n\t\t\t\tthis.backgroundFailed = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// We don't have this preview cached or it expired, requesting it\n\t\t\tthis.debounceGetPreview()\n\t\t},\n\n\t\tfetchAndApplyPreview() {\n\t\t\t// Ignore if no preview\n\t\t\tif (!this.previewUrl) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If any image is being processed, reset it\n\t\t\tif (this.previewPromise) {\n\t\t\t\tthis.clearImg()\n\t\t\t}\n\n\t\t\t// Store the promise to be able to cancel it\n\t\t\tthis.previewPromise = new CancelablePromise((resolve, reject, onCancel) => {\n\t\t\t\tconst img = new Image()\n\t\t\t\t// If active, load the preview with higher priority\n\t\t\t\timg.fetchpriority = this.active ? 'high' : 'auto'\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tthis.backgroundImage = `url(${this.previewUrl})`\n\t\t\t\t\tthis.backgroundFailed = false\n\t\t\t\t\tresolve(img)\n\t\t\t\t}\n\t\t\t\timg.onerror = () => {\n\t\t\t\t\tthis.backgroundFailed = true\n\t\t\t\t\treject(img)\n\t\t\t\t}\n\t\t\t\timg.src = this.previewUrl\n\n\t\t\t\t// Image loading has been canceled\n\t\t\t\tonCancel(() => {\n\t\t\t\t\timg.onerror = null\n\t\t\t\t\timg.onload = null\n\t\t\t\t\timg.src = ''\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\n\t\tresetState() {\n\t\t\t// Reset loading state\n\t\t\tthis.loading = ''\n\n\t\t\t// Reset the preview\n\t\t\tthis.clearImg()\n\n\t\t\t// Close menu\n\t\t\tthis.openedMenu = false\n\t\t},\n\n\t\tclearImg() {\n\t\t\tthis.backgroundImage = ''\n\t\t\tthis.backgroundFailed = false\n\n\t\t\tif (this.previewPromise) {\n\t\t\t\tthis.previewPromise.cancel()\n\t\t\t\tthis.previewPromise = null\n\t\t\t}\n\t\t},\n\n\t\tasync onActionClick(action) {\n\t\t\tconst displayName = action.displayName([this.source], this.currentView)\n\t\t\ttry {\n\t\t\t\t// Set the loading marker\n\t\t\t\tthis.loading = action.id\n\t\t\t\tVue.set(this.source, '_loading', true)\n\n\t\t\t\tconst success = await action.exec(this.source, this.currentView, this.dir)\n\n\t\t\t\t// If the action returns null, we stay silent\n\t\t\t\tif (success === null) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (success) {\n\t\t\t\t\tshowSuccess(this.t('files', '\"{displayName}\" action executed successfully', { displayName }))\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tshowError(this.t('files', '\"{displayName}\" action failed', { displayName }))\n\t\t\t} catch (e) {\n\t\t\t\tlogger.error('Error while executing action', { action, e })\n\t\t\t\tshowError(this.t('files', '\"{displayName}\" action failed', { displayName }))\n\t\t\t} finally {\n\t\t\t\t// Reset the loading marker\n\t\t\t\tthis.loading = ''\n\t\t\t\tVue.set(this.source, '_loading', false)\n\t\t\t}\n\t\t},\n\t\texecDefaultAction(event) {\n\t\t\tif (this.enabledDefaultActions.length > 0) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t\t// Execute the first default action if any\n\t\t\t\tthis.enabledDefaultActions[0].exec(this.source, this.currentView, this.dir)\n\t\t\t}\n\t\t},\n\n\t\topenDetailsIfAvailable(event) {\n\t\t\tconst detailsAction = this.enabledDefaultActions.find(action => action.id === ACTION_DETAILS)\n\t\t\tif (detailsAction) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tdetailsAction.exec(this.source, this.currentView)\n\t\t\t}\n\t\t},\n\n\t\tonSelectionChange(selection) {\n\t\t\tconst newSelectedIndex = this.index\n\t\t\tconst lastSelectedIndex = this.selectionStore.lastSelectedIndex\n\n\t\t\t// Get the last selected and select all files in between\n\t\t\tif (this.keyboardStore?.shiftKey && lastSelectedIndex !== null) {\n\t\t\t\tconst isAlreadySelected = this.selectedFiles.includes(this.fileid)\n\n\t\t\t\tconst start = Math.min(newSelectedIndex, lastSelectedIndex)\n\t\t\t\tconst end = Math.max(lastSelectedIndex, newSelectedIndex)\n\n\t\t\t\tconst lastSelection = this.selectionStore.lastSelection\n\t\t\t\tconst filesToSelect = this.nodes\n\t\t\t\t\t.map(file => file.fileid?.toString?.())\n\t\t\t\t\t.slice(start, end + 1)\n\n\t\t\t\t// If already selected, update the new selection _without_ the current file\n\t\t\t\tconst selection = [...lastSelection, ...filesToSelect]\n\t\t\t\t\t.filter(fileId => !isAlreadySelected || fileId !== this.fileid)\n\n\t\t\t\tlogger.debug('Shift key pressed, selecting all files in between', { start, end, filesToSelect, isAlreadySelected })\n\t\t\t\t// Keep previous lastSelectedIndex to be use for further shift selections\n\t\t\t\tthis.selectionStore.set(selection)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlogger.debug('Updating selection', { selection })\n\t\t\tthis.selectionStore.set(selection)\n\t\t\tthis.selectionStore.setLastIndex(newSelectedIndex)\n\t\t},\n\n\t\t// Open the actions menu on right click\n\t\tonRightClick(event) {\n\t\t\t// If already opened, fallback to default browser\n\t\t\tif (this.openedMenu) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If the clicked row is in the selection, open global menu\n\t\t\tconst isMoreThanOneSelected = this.selectedFiles.length > 1\n\t\t\tthis.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId\n\n\t\t\t// Prevent any browser defaults\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t},\n\n\t\tt: translate,\n\t\tformatFileSize,\n\t},\n})\n<\/script>\n\n<style scoped lang='scss'>\n/* Hover effect on tbody lines only */\ntr {\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n}\n\n/* Preview not loaded animation effect */\n.files-list__row-icon-preview:not([style*='background']) {\n background: var(--color-loading-dark);\n\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n}\n</style>\n\n<style>\n/* @keyframes preview-gradient-fade {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n} */\n</style>\n"],sourceRoot:""}]);const a=r}},s={};function r(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,i,o)=>{if(!n){var s=1/0;for(d=0;d<e.length;d++){n=e[d][0],i=e[d][1],o=e[d][2];for(var a=!0,l=0;l<n.length;l++)(!1&o||s>=o)&&Object.keys(r.O).every((t=>r.O[t](n[l])))?n.splice(l--,1):(a=!1,o<s&&(s=o));if(a){e.splice(d--,1);var c=i();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,i,o]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v=00434e4baa0d8e7b79f1",r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},i="nextcloud:",r.l=(t,e,o,s)=>{if(n[t])n[t].push(e);else{var a,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==i+o){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",i+o),a.src=t),n[t]=[e];var p=(e,i)=>{a.onerror=a.onload=null,clearTimeout(h);var o=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((t=>t(i))),e)return e(i)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=p.bind(null,a.onerror),a.onload=p.bind(null,a.onload),l&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=2181,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={2181:0};r.f.j=(e,n)=>{var i=r.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise(((n,o)=>i=t[e]=[n,o]));n.push(i[2]=o);var s=r.p+r.u(e),a=new Error;r.l(s,(n=>{if(r.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+s+")",a.name="ChunkLoadError",a.type=o,a.request=s,i[1](a)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var i,o,s=n[0],a=n[1],l=n[2],c=0;if(s.some((e=>0!==t[e]))){for(i in a)r.o(a,i)&&(r.m[i]=a[i]);if(l)var d=l(r)}for(e&&e(n);c<s.length;c++)o=s[c],r.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return r.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),r.nc=void 0;var a=r.O(void 0,[7874],(()=>r(60668)));a=r.O(a)})(); +//# sourceMappingURL=files-main.js.map?v=fd49e98cd6c83ed83839
\ No newline at end of file diff --git a/dist/files-main.js.map b/dist/files-main.js.map index 6b19bf2cc0d..27ea0a73a31 100644 --- a/dist/files-main.js.map +++ b/dist/files-main.js.map @@ -1 +1 @@ -{"version":3,"file":"files-main.js?v=b71364dfbc4601bd3985","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/utils/davUtils.js","webpack:///nextcloud/apps/files/src/utils/fileUtils.js","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?9ec4","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?81db","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?c414","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/services/Templates.js","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?9ada","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?afd8","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?1f7b","webpack:///nextcloud/apps/files/src/templates.js","webpack:///nextcloud/apps/files/src/legacy/filelistSearch.js","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/services/FileAction.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?e906","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?e59f","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?4ee7","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?2c34","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?6bea","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?5641","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack:///nextcloud/apps/files/src/services/PreviewService.ts","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?104d","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?bb70","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListFooter.vue?b2bb","webpack://nextcloud/./apps/files/src/components/FilesListFooter.vue?80db","webpack:///nextcloud/apps/files/src/mixins/filesListWidth.ts","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListHeaderActions.vue?993d","webpack://nextcloud/./apps/files/src/components/FilesListHeaderActions.vue?9823","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListHeaderButton.vue?d900","webpack://nextcloud/./apps/files/src/components/FilesListHeaderButton.vue?5686","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?c7b4","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?4fce","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/apps/files/src/services/Navigation.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack://nextcloud/./apps/files/src/views/FilesList.vue?b2cc","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack://nextcloud/./apps/files/src/views/Navigation.vue?8122","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?b590","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Settings.vue?7e31","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Navigation.vue?f61c","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/legacy/navigationMapper.js","webpack:///nextcloud/apps/files/src/router/router.js","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport const getRootPath = function() {\n\tif (getCurrentUser()) {\n\t\treturn generateRemoteUrl(`dav/files/${getCurrentUser().uid}`)\n\t} else {\n\t\treturn generateRemoteUrl('webdav').replace('/remote.php', '/public.php')\n\t}\n}\n\nexport const isPublic = function() {\n\treturn !getCurrentUser()\n}\n\nexport const getToken = function() {\n\treturn document.getElementById('sharingToken') && document.getElementById('sharingToken').value\n}\n\n/**\n * Return the current directory, fallback to root\n *\n * @return {string}\n */\nexport const getCurrentDirectory = function() {\n\tconst currentDirInfo = OCA?.Files?.App?.currentFileList?.dirInfo\n\t\t|| { path: '/', name: '' }\n\n\t// Make sure we don't have double slashes\n\treturn `${currentDirInfo.path}/${currentDirInfo.name}`.replace(/\\/\\//gi, '/')\n}\n","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst encodeFilePath = function(path) {\n\tconst pathSections = (path.startsWith('/') ? path : `/${path}`).split('/')\n\tlet relativePath = ''\n\tpathSections.forEach((section) => {\n\t\tif (section !== '') {\n\t\t\trelativePath += '/' + encodeURIComponent(section)\n\t\t}\n\t})\n\treturn relativePath\n}\n\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nconst extractFilePaths = function(path) {\n\tconst pathSections = path.split('/')\n\tconst fileName = pathSections[pathSections.length - 1]\n\tconst dirPath = pathSections.slice(0, pathSections.length - 1).join('/')\n\treturn [dirPath, fileName]\n}\n\nexport { encodeFilePath, extractFilePaths }\n","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"template-picker__item\">\n\t\t<input :id=\"id\"\n\t\t\t:checked=\"checked\"\n\t\t\ttype=\"radio\"\n\t\t\tclass=\"radio\"\n\t\t\tname=\"template-picker\"\n\t\t\t@change=\"onCheck\">\n\n\t\t<label :for=\"id\" class=\"template-picker__label\">\n\t\t\t<div class=\"template-picker__preview\"\n\t\t\t\t:class=\"failedPreview ? 'template-picker__preview--failed' : ''\">\n\t\t\t\t<img class=\"template-picker__image\"\n\t\t\t\t\t:src=\"realPreviewUrl\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tdraggable=\"false\"\n\t\t\t\t\t@error=\"onFailure\">\n\t\t\t</div>\n\n\t\t\t<span class=\"template-picker__title\">\n\t\t\t\t{{ nameWithoutExt }}\n\t\t\t</span>\n\t\t</label>\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { encodeFilePath } from '../utils/fileUtils.js'\nimport { getToken, isPublic } from '../utils/davUtils.js'\n\n// preview width generation\nconst previewWidth = 256\n\nexport default {\n\tname: 'TemplatePreview',\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tbasename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tfileid: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tfilename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpreviewUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\thasPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmime: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tratio: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfailedPreview: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename\n\t\t},\n\n\t\tid() {\n\t\t\treturn `template-picker-${this.fileid}`\n\t\t},\n\n\t\trealPreviewUrl() {\n\t\t\t// If original preview failed, fallback to mime icon\n\t\t\tif (this.failedPreview && this.mimeIcon) {\n\t\t\t\treturn this.mimeIcon\n\t\t\t}\n\n\t\t\tif (this.previewUrl) {\n\t\t\t\treturn this.previewUrl\n\t\t\t}\n\t\t\t// TODO: find a nicer standard way of doing this?\n\t\t\tif (isPublic()) {\n\t\t\t\treturn generateUrl(`/apps/files_sharing/publicpreview/${getToken()}?fileId=${this.fileid}&file=${encodeFilePath(this.filename)}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t\t}\n\t\t\treturn generateUrl(`/core/preview?fileId=${this.fileid}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t},\n\n\t\tmimeIcon() {\n\t\t\treturn OC.MimeType.getIconUrl(this.mime)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonCheck() {\n\t\t\tthis.$emit('check', this.fileid)\n\t\t},\n\t\tonFailure() {\n\t\t\tthis.failedPreview = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePreview.vue?vue&type=template&id=5b09ec60&scoped=true&\"\nimport script from \"./TemplatePreview.vue?vue&type=script&lang=js&\"\nexport * from \"./TemplatePreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b09ec60\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"template-picker__item\"},[_c('input',{staticClass:\"radio\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"template-picker\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onCheck}}),_vm._v(\" \"),_c('label',{staticClass:\"template-picker__label\",attrs:{\"for\":_vm.id}},[_c('div',{staticClass:\"template-picker__preview\",class:_vm.failedPreview ? 'template-picker__preview--failed' : ''},[_c('img',{staticClass:\"template-picker__image\",attrs:{\"src\":_vm.realPreviewUrl,\"alt\":\"\",\"draggable\":\"false\"},on:{\"error\":_vm.onFailure}})]),_vm._v(\" \"),_c('span',{staticClass:\"template-picker__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.nameWithoutExt)+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcModal v-if=\"opened\"\n\t\t:clear-view-delay=\"-1\"\n\t\tclass=\"templates-picker\"\n\t\tsize=\"large\"\n\t\t@close=\"close\">\n\t\t<form class=\"templates-picker__form\"\n\t\t\t:style=\"style\"\n\t\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t\t<h2>{{ t('files', 'Pick a template for {name}', { name: nameWithoutExt }) }}</h2>\n\n\t\t\t<!-- Templates list -->\n\t\t\t<ul class=\"templates-picker__list\">\n\t\t\t\t<TemplatePreview v-bind=\"emptyTemplate\"\n\t\t\t\t\t:checked=\"checked === emptyTemplate.fileid\"\n\t\t\t\t\t@check=\"onCheck\" />\n\n\t\t\t\t<TemplatePreview v-for=\"template in provider.templates\"\n\t\t\t\t\t:key=\"template.fileid\"\n\t\t\t\t\tv-bind=\"template\"\n\t\t\t\t\t:checked=\"checked === template.fileid\"\n\t\t\t\t\t:ratio=\"provider.ratio\"\n\t\t\t\t\t@check=\"onCheck\" />\n\t\t\t</ul>\n\n\t\t\t<!-- Cancel and submit -->\n\t\t\t<div class=\"templates-picker__buttons\">\n\t\t\t\t<input type=\"submit\"\n\t\t\t\t\tclass=\"primary\"\n\t\t\t\t\t:value=\"t('files', 'Create')\"\n\t\t\t\t\t:aria-label=\"t('files', 'Create a new file with the selected template')\">\n\t\t\t</div>\n\t\t</form>\n\n\t\t<NcEmptyContent v-if=\"loading\" class=\"templates-picker__loading\" icon=\"icon-loading\">\n\t\t\t{{ t('files', 'Creating file') }}\n\t\t</NcEmptyContent>\n\t</NcModal>\n</template>\n\n<script>\nimport { normalize } from 'path'\nimport { showError } from '@nextcloud/dialogs'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\n\nimport { getCurrentDirectory } from '../utils/davUtils.js'\nimport { createFromTemplate, getTemplates } from '../services/Templates.js'\nimport TemplatePreview from '../components/TemplatePreview.vue'\n\nconst border = 2\nconst margin = 8\n\nexport default {\n\tname: 'TemplatePicker',\n\n\tcomponents: {\n\t\tNcEmptyContent,\n\t\tNcModal,\n\t\tTemplatePreview,\n\t},\n\n\tprops: {\n\t\tlogger: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Check empty template by default\n\t\t\tchecked: -1,\n\t\t\tloading: false,\n\t\t\tname: null,\n\t\t\topened: false,\n\t\t\tprovider: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.name.indexOf('.') > -1\n\t\t\t\t? this.name.split('.').slice(0, -1).join('.')\n\t\t\t\t: this.name\n\t\t},\n\n\t\temptyTemplate() {\n\t\t\treturn {\n\t\t\t\tbasename: t('files', 'Blank'),\n\t\t\t\tfileid: -1,\n\t\t\t\tfilename: this.t('files', 'Blank'),\n\t\t\t\thasPreview: false,\n\t\t\t\tmime: this.provider?.mimetypes[0] || this.provider?.mimetypes,\n\t\t\t}\n\t\t},\n\n\t\tselectedTemplate() {\n\t\t\treturn this.provider.templates.find(template => template.fileid === this.checked)\n\t\t},\n\n\t\t/**\n\t\t * Style css vars bin,d\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tstyle() {\n\t\t\t// Fallback to 16:9 landscape ratio\n\t\t\tconst ratio = this.provider.ratio ? this.provider.ratio : 1.77\n\t\t\t// Landscape templates should be wider than tall ones\n\t\t\t// We fit 3 templates per row at max for landscape and 4 for portrait\n\t\t\tconst width = ratio > 1 ? margin * 30 : margin * 20\n\t\t\treturn {\n\t\t\t\t'--margin': margin + 'px',\n\t\t\t\t'--width': width + 'px',\n\t\t\t\t'--border': border + 'px',\n\t\t\t\t'--fullwidth': width + 2 * margin + 2 * border + 'px',\n\t\t\t\t'--height': this.provider.ratio ? Math.round(width / this.provider.ratio) + 'px' : null,\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Open the picker\n\t\t *\n\t\t * @param {string} name the file name to create\n\t\t * @param {object} provider the template provider picked\n\t\t */\n\t\tasync open(name, provider) {\n\n\t\t\tthis.checked = this.emptyTemplate.fileid\n\t\t\tthis.name = name\n\t\t\tthis.provider = provider\n\n\t\t\tconst templates = await getTemplates()\n\t\t\tconst fetchedProvider = templates.find((fetchedProvider) => fetchedProvider.app === provider.app && fetchedProvider.label === provider.label)\n\t\t\tif (fetchedProvider === null) {\n\t\t\t\tthrow new Error('Failed to match provider in results')\n\t\t\t}\n\t\t\tthis.provider = fetchedProvider\n\n\t\t\t// If there is no templates available, just create an empty file\n\t\t\tif (fetchedProvider.templates.length === 0) {\n\t\t\t\tthis.onSubmit()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Else, open the picker\n\t\t\tthis.opened = true\n\t\t},\n\n\t\t/**\n\t\t * Close the picker and reset variables\n\t\t */\n\t\tclose() {\n\t\t\tthis.checked = this.emptyTemplate.fileid\n\t\t\tthis.loading = false\n\t\t\tthis.name = null\n\t\t\tthis.opened = false\n\t\t\tthis.provider = null\n\t\t},\n\n\t\t/**\n\t\t * Manages the radio template picker change\n\t\t *\n\t\t * @param {number} fileid the selected template file id\n\t\t */\n\t\tonCheck(fileid) {\n\t\t\tthis.checked = fileid\n\t\t},\n\n\t\tasync onSubmit() {\n\t\t\tthis.loading = true\n\t\t\tconst currentDirectory = getCurrentDirectory()\n\t\t\tconst fileList = OCA?.Files?.App?.currentFileList\n\n\t\t\t// If the file doesn't have an extension, add the default one\n\t\t\tif (this.nameWithoutExt === this.name) {\n\t\t\t\tthis.logger.debug('Fixed invalid filename', { name: this.name, extension: this.provider?.extension })\n\t\t\t\tthis.name = this.name + this.provider?.extension\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst fileInfo = await createFromTemplate(\n\t\t\t\t\tnormalize(`${currentDirectory}/${this.name}`),\n\t\t\t\t\tthis.selectedTemplate?.filename,\n\t\t\t\t\tthis.selectedTemplate?.templateType,\n\t\t\t\t)\n\t\t\t\tthis.logger.debug('Created new file', fileInfo)\n\n\t\t\t\t// Fetch FileInfo and model\n\t\t\t\tconst data = await fileList?.addAndFetchFileInfo(this.name).then((status, data) => data)\n\t\t\t\tconst model = new OCA.Files.FileInfoModel(data, {\n\t\t\t\t\tfilesClient: fileList?.filesClient,\n\t\t\t\t})\n\n\t\t\t\t// Run default action\n\t\t\t\tconst fileAction = OCA.Files.fileActions.getDefaultFileAction(fileInfo.mime, 'file', OC.PERMISSION_ALL)\n\t\t\t\tif (fileAction) {\n\t\t\t\t\tfileAction.action(fileInfo.basename, {\n\t\t\t\t\t\t$file: fileList?.findFileEl(this.name),\n\t\t\t\t\t\tdir: currentDirectory,\n\t\t\t\t\t\tfileList,\n\t\t\t\t\t\tfileActions: fileList?.fileActions,\n\t\t\t\t\t\tfileInfoModel: model,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.close()\n\t\t\t} catch (error) {\n\t\t\t\tthis.logger.error('Error while creating the new file from template')\n\t\t\t\tconsole.error(error)\n\t\t\t\tshowError(this.t('files', 'Unable to create new file from template'))\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.templates-picker {\n\t&__form {\n\t\tpadding: calc(var(--margin) * 2);\n\t\t// Will be handled by the buttons\n\t\tpadding-bottom: 0;\n\n\t\th2 {\n\t\t\ttext-align: center;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: var(--margin) 0 calc(var(--margin) * 2);\n\t\t}\n\t}\n\n\t&__list {\n\t\tdisplay: grid;\n\t\tgrid-gap: calc(var(--margin) * 2);\n\t\tgrid-auto-columns: 1fr;\n\t\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\n\t\tmax-width: calc(var(--fullwidth) * 6);\n\t\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\n\t\t// Make sure all rows are the same height\n\t\tgrid-auto-rows: 1fr;\n\t\t// Center the columns set\n\t\tjustify-content: center;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t\tpadding: calc(var(--margin) * 2) var(--margin);\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tbackground-image: linear-gradient(0, var(--gradient-main-background));\n\n\t\tbutton, input[type='submit'] {\n\t\t\theight: 44px;\n\t\t}\n\t}\n\n\t// Make sure we're relative for the loading emptycontent on top\n\t::v-deep .modal-container {\n\t\tposition: relative;\n\t}\n\n\t&__loading {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\tbackground-color: var(--color-main-background-translucent);\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=js&\"","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nexport const getTemplates = async function() {\n\tconst response = await axios.get(generateOcsUrl('apps/files/api/v1/templates'))\n\treturn response.data.ocs.data\n}\n\n/**\n * Create a new file from a specified template\n *\n * @param {string} filePath The new file destination path\n * @param {string} templatePath The template source path\n * @param {string} templateType The template type e.g 'user'\n */\nexport const createFromTemplate = async function(filePath, templatePath, templateType) {\n\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {\n\t\tfilePath,\n\t\ttemplatePath,\n\t\ttemplateType,\n\t})\n\treturn response.data.ocs.data\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePicker.vue?vue&type=template&id=d46f1dc6&scoped=true&\"\nimport script from \"./TemplatePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./TemplatePicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d46f1dc6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.opened)?_c('NcModal',{staticClass:\"templates-picker\",attrs:{\"clear-view-delay\":-1,\"size\":\"large\"},on:{\"close\":_vm.close}},[_c('form',{staticClass:\"templates-picker__form\",style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onSubmit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('files', 'Pick a template for {name}', { name: _vm.nameWithoutExt })))]),_vm._v(\" \"),_c('ul',{staticClass:\"templates-picker__list\"},[_c('TemplatePreview',_vm._b({attrs:{\"checked\":_vm.checked === _vm.emptyTemplate.fileid},on:{\"check\":_vm.onCheck}},'TemplatePreview',_vm.emptyTemplate,false)),_vm._v(\" \"),_vm._l((_vm.provider.templates),function(template){return _c('TemplatePreview',_vm._b({key:template.fileid,attrs:{\"checked\":_vm.checked === template.fileid,\"ratio\":_vm.provider.ratio},on:{\"check\":_vm.onCheck}},'TemplatePreview',template,false))})],2),_vm._v(\" \"),_c('div',{staticClass:\"templates-picker__buttons\"},[_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"aria-label\":_vm.t('files', 'Create a new file with the selected template')},domProps:{\"value\":_vm.t('files', 'Create')}})])]),_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{staticClass:\"templates-picker__loading\",attrs:{\"icon\":\"icon-loading\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files', 'Creating file'))+\"\\n\\t\")]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentDirectory } from './utils/davUtils.js'\nimport axios from '@nextcloud/axios'\nimport Vue from 'vue'\n\nimport TemplatePickerView from './views/TemplatePicker.vue'\nimport { showError } from '@nextcloud/dialogs'\n\n// Set up logger\nconst logger = getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n\n// Add translates functions\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\n// Create document root\nconst TemplatePickerRoot = document.createElement('div')\nTemplatePickerRoot.id = 'template-picker'\ndocument.body.appendChild(TemplatePickerRoot)\n\n// Retrieve and init templates\nlet templates = loadState('files', 'templates', [])\nlet templatesPath = loadState('files', 'templates_path', false)\nlogger.debug('Templates providers', templates)\nlogger.debug('Templates folder', { templatesPath })\n\n// Init vue app\nconst View = Vue.extend(TemplatePickerView)\nconst TemplatePicker = new View({\n\tname: 'TemplatePicker',\n\tpropsData: {\n\t\tlogger,\n\t},\n})\nTemplatePicker.$mount('#template-picker')\n\n// Init template engine after load to make sure it's the last injected entry\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (!templatesPath) {\n\t\tlogger.debug('Templates folder not initialized')\n\t\tconst initTemplatesPlugin = {\n\t\t\tattach(menu) {\n\t\t\t\t// register the new menu entry\n\t\t\t\tmenu.addMenuEntry({\n\t\t\t\t\tid: 'template-init',\n\t\t\t\t\tdisplayName: t('files', 'Set up templates folder'),\n\t\t\t\t\ttemplateName: t('files', 'Templates'),\n\t\t\t\t\ticonClass: 'icon-template-add',\n\t\t\t\t\tfileType: 'file',\n\t\t\t\t\tactionLabel: t('files', 'Create new templates folder'),\n\t\t\t\t\tactionHandler(name) {\n\t\t\t\t\t\tinitTemplatesFolder(name)\n\t\t\t\t\t\tmenu.removeMenuEntry('template-init')\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t\tOC.Plugins.register('OCA.Files.NewFileMenu', initTemplatesPlugin)\n\t}\n})\n\n// Init template files menu\ntemplates.forEach((provider, index) => {\n\tconst newTemplatePlugin = {\n\t\tattach(menu) {\n\t\t\tconst fileList = menu.fileList\n\n\t\t\t// only attach to main file list, public view is not supported yet\n\t\t\tif (fileList.id !== 'files' && fileList.id !== 'files.public') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// register the new menu entry\n\t\t\tmenu.addMenuEntry({\n\t\t\t\tid: `template-new-${provider.app}-${index}`,\n\t\t\t\tdisplayName: provider.label,\n\t\t\t\ttemplateName: provider.label + provider.extension,\n\t\t\t\ticonClass: provider.iconClass || 'icon-file',\n\t\t\t\tfileType: 'file',\n\t\t\t\tactionLabel: provider.actionLabel,\n\t\t\t\tactionHandler(name) {\n\t\t\t\t\tTemplatePicker.open(name, provider)\n\t\t\t\t},\n\t\t\t})\n\t\t},\n\t}\n\tOC.Plugins.register('OCA.Files.NewFileMenu', newTemplatePlugin)\n})\n\n/**\n * Init the template directory\n *\n * @param {string} name the templates folder name\n */\nconst initTemplatesFolder = async function(name) {\n\tconst templatePath = (getCurrentDirectory() + `/${name}`).replace('//', '/')\n\ttry {\n\t\tlogger.debug('Initializing the templates directory', { templatePath })\n\t\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n\t\t\ttemplatePath,\n\t\t\tcopySystemTemplates: true,\n\t\t})\n\n\t\t// Go to template directory\n\t\tOCA.Files.App.currentFileList.changeDirectory(templatePath, true, true)\n\n\t\ttemplates = response.data.ocs.data.templates\n\t\ttemplatesPath = response.data.ocs.data.template_path\n\t} catch (error) {\n\t\tlogger.error('Unable to initialize the templates directory')\n\t\tshowError(t('files', 'Unable to initialize the templates directory'))\n\t}\n}\n","/*\n * @copyright Copyright (c) 2021 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\n\n(function() {\n\n\tconst FilesPlugin = {\n\t\tattach(fileList) {\n\t\t\tsubscribe('nextcloud:unified-search.search', ({ query }) => {\n\t\t\t\tfileList.setFilter(query)\n\t\t\t})\n\t\t\tsubscribe('nextcloud:unified-search.reset', () => {\n\t\t\t\tthis.query = null\n\t\t\t\tfileList.setFilter('')\n\t\t\t})\n\n\t\t},\n\t}\n\n\twindow.OC.Plugins.register('OCA.Files.FileList', FilesPlugin)\n\n})()\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport logger from '../logger';\nexport class FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get default() {\n return this._action.default;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== 'string') {\n throw new Error('Invalid id');\n }\n if (!action.displayName || typeof action.displayName !== 'function') {\n throw new Error('Invalid displayName function');\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== 'function') {\n throw new Error('Invalid iconSvgInline function');\n }\n if (!action.exec || typeof action.exec !== 'function') {\n throw new Error('Invalid exec function');\n }\n // Optional properties --------------------------------------------\n if ('enabled' in action && typeof action.enabled !== 'function') {\n throw new Error('Invalid enabled function');\n }\n if ('execBatch' in action && typeof action.execBatch !== 'function') {\n throw new Error('Invalid execBatch function');\n }\n if ('order' in action && typeof action.order !== 'number') {\n throw new Error('Invalid order');\n }\n if ('default' in action && typeof action.default !== 'boolean') {\n throw new Error('Invalid default');\n }\n if ('inline' in action && typeof action.inline !== 'function') {\n throw new Error('Invalid inline function');\n }\n if ('renderInline' in action && typeof action.renderInline !== 'function') {\n throw new Error('Invalid renderInline function');\n }\n }\n}\nexport const registerFileAction = function (action) {\n if (typeof window._nc_fileactions === 'undefined') {\n window._nc_fileactions = [];\n logger.debug('FileActions initialized');\n }\n // Check duplicates\n if (window._nc_fileactions.find(search => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nexport const getFileActions = function () {\n return window._nc_fileactions || [];\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport TrashCan from '@mdi/svg/svg/trash-can.svg?raw';\nimport { registerFileAction, FileAction } from '../services/FileAction.ts';\nimport logger from '../logger.js';\nregisterFileAction(new FileAction({\n id: 'delete',\n displayName(nodes, view) {\n return view.id === 'trashbin'\n ? t('files_trashbin', 'Delete permanently')\n : t('files', 'Delete');\n },\n iconSvgInline: () => TrashCan,\n enabled(nodes) {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node) {\n try {\n await axios.delete(node.source);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n order: 100,\n}));\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, Node, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport Folder from '@mdi/svg/svg/folder.svg?raw';\nimport { join } from 'path';\nimport { registerFileAction, FileAction } from '../services/FileAction';\nregisterFileAction(new FileAction({\n id: 'open-folder',\n displayName(files) {\n // Only works on single node\n const displayName = files[0].attributes.displayName || files[0].basename;\n return t('files', 'Open folder {displayName}', { displayName });\n },\n iconSvgInline: () => Folder,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n return node.type === FileType.Folder\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.Folder) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, null, { dir: join(dir, node.basename) });\n return null;\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n // Main action if enabled, meaning folders only\n order: -100,\n default: true,\n}));\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport { registerFileAction, FileAction } from '../services/FileAction.ts';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nregisterFileAction(new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (files) => !!window?.OCA?.Files?.Sidebar\n && files.some(node => node.root?.startsWith('/files/')),\n async exec(node) {\n try {\n // TODO: migrate Sidebar to use a Node instead\n window?.OCA?.Files?.Sidebar?.open?.(node.path);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n default: true,\n order: -50,\n}));\n","import { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nexport const useFilesStore = function () {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by id\n */\n getNode: (state) => (id) => state.files[id],\n /**\n * Get a list of files or folders by their IDs\n * Does not return undefined values\n */\n getNodes: (state) => (ids) => ids\n .map(id => state.files[id])\n .filter(Boolean),\n /**\n * Get a file or folder by id\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.warn('Trying to update/set a node without fileid', node);\n return acc;\n }\n acc[node.fileid] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.fileid) {\n Vue.delete(this.files, node.fileid);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n }\n });\n const fileStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n // subscribe('files:node:created', fileStore.onCreatedNode)\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n // subscribe('files:node:moved', fileStore.onMovedNode)\n // subscribe('files:node:updated', fileStore.onUpdatedNode)\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","import { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nexport const usePathsStore = function () {\n const store = defineStore('paths', {\n state: () => ({\n paths: {}\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.fileid);\n },\n }\n });\n const pathsStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n // TODO: watch folders to update paths?\n // subscribe('files:node:created', pathsStore.onCreatedNode)\n // subscribe('files:node:deleted', pathsStore.onDeletedNode)\n // subscribe('files:node:moved', pathsStore.onMovedNode)\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport { FileId, SelectionStore } from '../types';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n */\n set(selection = []) {\n Vue.set(this, 'selected', selection);\n },\n /**\n * Set the last selected index\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n }\n }\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nconst viewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = function () {\n const store = defineStore('viewconfig', {\n state: () => ({\n viewConfig,\n }),\n getters: {\n getConfig: (state) => (view) => state.viewConfig[view] || {},\n },\n actions: {\n /**\n * Update the view config local store\n */\n onUpdate(view, key, value) {\n if (!this.viewConfig[view]) {\n Vue.set(this.viewConfig, view, {});\n }\n Vue.set(this.viewConfig[view], key, value);\n },\n /**\n * Update the view config local store AND on server side\n */\n async update(view, key, value) {\n axios.put(generateUrl(`/apps/files/api/v1/views/${view}/${key}`), {\n value,\n });\n emit('files:viewconfig:updated', { view, key, value });\n },\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n */\n setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n this.update(view, 'sorting_mode', key);\n this.update(view, 'sorting_direction', 'asc');\n },\n /**\n * Toggle the sorting direction\n */\n toggleSortingDirection(view = 'files') {\n const config = this.getConfig(view) || { 'sorting_direction': 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n this.update(view, 'sorting_direction', newDirection);\n }\n }\n });\n const viewConfigStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!viewConfigStore._initialized) {\n subscribe('files:viewconfig:updated', function ({ view, key, value }) {\n viewConfigStore.onUpdate(view, key, value);\n });\n viewConfigStore._initialized = true;\n }\n return viewConfigStore;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{attrs:{\"data-cy-files-content-breadcrumbs\":\"\"}},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"aria-label\":_vm.ariaLabel(section),\"title\":_vm.ariaLabel(section)},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('Home',{attrs:{\"size\":20}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcBreadcrumbs data-cy-files-content-breadcrumbs>\n\t\t<!-- Current path sections -->\n\t\t<NcBreadcrumb v-for=\"(section, index) in sections\"\n\t\t\t:key=\"section.dir\"\n\t\t\t:aria-label=\"ariaLabel(section)\"\n\t\t\t:title=\"ariaLabel(section)\"\n\t\t\tv-bind=\"section\"\n\t\t\t@click.native=\"onClick(section.to)\">\n\t\t\t<template v-if=\"index === 0\" #icon>\n\t\t\t\t<Home :size=\"20\" />\n\t\t\t</template>\n\t\t</NcBreadcrumb>\n\t</NcBreadcrumbs>\n</template>\n\n<script>\nimport { basename } from 'path'\nimport Home from 'vue-material-design-icons/Home.vue'\nimport NcBreadcrumb from '@nextcloud/vue/dist/Components/NcBreadcrumb.js'\nimport NcBreadcrumbs from '@nextcloud/vue/dist/Components/NcBreadcrumbs.js'\nimport Vue from 'vue'\n\nimport { useFilesStore } from '../store/files.ts'\nimport { usePathsStore } from '../store/paths.ts'\n\nexport default Vue.extend({\n\tname: 'BreadCrumbs',\n\n\tcomponents: {\n\t\tHome,\n\t\tNcBreadcrumbs,\n\t\tNcBreadcrumb,\n\t},\n\n\tprops: {\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '/',\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst filesStore = useFilesStore()\n\t\tconst pathsStore = usePathsStore()\n\t\treturn {\n\t\t\tfilesStore,\n\t\t\tpathsStore,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcurrentView() {\n\t\t\treturn this.$navigation.active\n\t\t},\n\n\t\tdirs() {\n\t\t\tconst cumulativePath = (acc) => (value) => (acc += `${value}/`)\n\t\t\t// Generate a cumulative path for each path segment: ['/', '/foo', '/foo/bar', ...] etc\n\t\t\tconst paths = this.path.split('/').filter(Boolean).map(cumulativePath('/'))\n\t\t\t// Strip away trailing slash\n\t\t\treturn ['/', ...paths.map(path => path.replace(/^(.+)\\/$/, '$1'))]\n\t\t},\n\n\t\tsections() {\n\t\t\treturn this.dirs.map(dir => {\n\t\t\t\tconst to = { ...this.$route, query: { dir } }\n\t\t\t\treturn {\n\t\t\t\t\tdir,\n\t\t\t\t\texact: true,\n\t\t\t\t\tname: this.getDirDisplayName(dir),\n\t\t\t\t\tto,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetNodeFromId(id) {\n\t\t\treturn this.filesStore.getNode(id)\n\t\t},\n\t\tgetFileIdFromPath(path) {\n\t\t\treturn this.pathsStore.getPath(this.currentView?.id, path)\n\t\t},\n\t\tgetDirDisplayName(path) {\n\t\t\tif (path === '/') {\n\t\t\t\treturn t('files', 'Home')\n\t\t\t}\n\n\t\t\tconst fileId = this.getFileIdFromPath(path)\n\t\t\tconst node = this.getNodeFromId(fileId)\n\t\t\treturn node?.attributes?.displayName || basename(path)\n\t\t},\n\n\t\tonClick(to) {\n\t\t\tif (to?.query?.dir === this.$route.query.dir) {\n\t\t\t\tthis.$emit('reload')\n\t\t\t}\n\t\t},\n\n\t\tariaLabel(section) {\n\t\t\tif (section?.to?.query?.dir === this.$route.query.dir) {\n\t\t\t\treturn t('files', 'Reload current directory')\n\t\t\t}\n\t\t\treturn t('files', 'Go to the \"{dir}\" directory', section)\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.breadcrumb {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\n\t::v-deep a {\n\t\tcursor: pointer !important;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=68b3b20b&scoped=true&\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=js&\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68b3b20b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RecycleScroller',{ref:\"recycleScroller\",staticClass:\"files-list\",attrs:{\"key-field\":\"source\",\"items\":_vm.nodes,\"item-size\":55,\"table-mode\":true,\"item-class\":\"files-list__row\",\"item-tag\":\"tr\",\"list-class\":\"files-list__body\",\"list-tag\":\"tbody\",\"role\":\"table\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ item, active, index }){return [_c('FileEntry',{attrs:{\"active\":active,\"index\":index,\"is-size-available\":_vm.isSizeAvailable,\"files-list-width\":_vm.filesListWidth,\"nodes\":_vm.nodes,\"source\":item}})]}},{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.currentView.caption || '')+\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListHeader',{attrs:{\"files-list-width\":_vm.filesListWidth,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"after\",fn:function(){return [_c('FilesListFooter',{attrs:{\"files-list-width\":_vm.filesListWidth,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n return str.split('').reduce(function (a, b) {\n a = ((a << 5) - a) + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nconst userConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n});\nexport const useUserConfigStore = function () {\n const store = defineStore('userconfig', {\n state: () => ({\n userConfig,\n }),\n actions: {\n /**\n * Update the user config local store\n */\n onUpdate(key, value) {\n Vue.set(this.userConfig, key, value);\n },\n /**\n * Update the user config local store AND on server side\n */\n async update(key, value) {\n await axios.put(generateUrl('/apps/files/api/v1/config/' + key), {\n value,\n });\n emit('files:config:updated', { key, value });\n }\n }\n });\n const userConfigStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!userConfigStore._initialized) {\n subscribe('files:config:updated', function ({ key, value }) {\n userConfigStore.onUpdate(key, value);\n });\n userConfigStore._initialized = true;\n }\n return userConfigStore;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<span />\n</template>\n\n<script>\n/**\n * This component is used to render custom\n * elements provided by an API. Vue doesn't allow\n * to directly render an HTMLElement, so we can do\n * this magic here.\n */\nexport default {\n\tname: 'CustomElementRender',\n\tprops: {\n\t\tsource: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tcurrentView: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\trender: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\telement() {\n\t\t\treturn this.render(this.source, this.currentView)\n\t\t},\n\t},\n\twatch: {\n\t\telement() {\n\t\t\tthis.$el.replaceWith(this.element)\n\t\t\tthis.$el = this.element\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.replaceWith(this.element)\n\t\tthis.$el = this.element\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=a261c93e&\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"custom-svg-icon\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<span class=\"custom-svg-icon\" />\n</template>\n\n<script>\n// eslint-disable-next-line import/named\nimport { sanitize } from 'dompurify'\n\nexport default {\n\tname: 'CustomSvgIconRender',\n\tprops: {\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tsvg() {\n\t\t\tthis.$el.innerHTML = sanitize(this.svg)\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.innerHTML = sanitize(this.svg)\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.custom-svg-icon {\n\tdisplay: flex;\n\talign-items: center;\n\talign-self: center;\n\tjustify-content: center;\n\tjustify-self: center;\n\twidth: 44px;\n\theight: 44px;\n\topacity: 1;\n\n\t::v-deep svg {\n\t\t// mdi icons have a size of 24px\n\t\t// 22px results in roughly 16px inner size\n\t\theight: 22px;\n\t\twidth: 22px;\n\t\tfill: currentColor;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomSvgIconRender.vue?vue&type=template&id=93e9b2f4&scoped=true&\"\nimport script from \"./CustomSvgIconRender.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomSvgIconRender.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93e9b2f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('td',{staticClass:\"files-list__row-checkbox\"},[(_vm.active)?_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.t('files', 'Select the row for {displayName}', { displayName: _vm.displayName }),\"checked\":_vm.selectedFiles,\"value\":_vm.fileid,\"name\":\"selectedFiles\"},on:{\"update:checked\":_vm.onSelectionChange}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('a',_vm._b({ref:\"name\",on:{\"click\":_vm.execDefaultAction}},'a',_vm.linkAttrs,false),[_c('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?_c('FolderIcon'):(_vm.previewUrl && !_vm.backgroundFailed)?_c('span',{ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",style:({ backgroundImage: _vm.backgroundImage })}):(_vm.mimeIconUrl)?_c('span',{staticClass:\"files-list__row-icon-preview files-list__row-icon-preview--mime\",style:({ backgroundImage: _vm.mimeIconUrl })}):_c('FileIcon'),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\",attrs:{\"aria-label\":_vm.t('files', 'Favorite')}},[_c('StarIcon',{attrs:{\"aria-hidden\":\"true\",\"size\":20}})],1):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-text\"},[_c('span',{staticClass:\"files-list__row-name-name\",domProps:{\"textContent\":_vm._s(_vm.displayName)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\",class:`files-list__row-actions-${_vm.uniqueId}`},[(_vm.active)?_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.boundariesElement,\"container\":_vm.boundariesElement,\"disabled\":_vm.source._loading,\"force-title\":true,\"force-menu\":true,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event}}},_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,class:'files-list__row-action-' + action.id,on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('CustomSvgIconRender',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName([_vm.source], _vm.currentView))+\"\\n\\t\\t\\t\")])}),1):_vm._e()],1),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:({ opacity: _vm.sizeOpacity }),on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView?.id}-${column.id}`,on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.active)?_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}}):_vm._e()],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts&\"","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n */\nexport const useKeyboardStore = function () {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n }\n });\n const keyboardStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n// The preview service worker cache name (see webpack config)\nconst SWCacheName = 'previews';\n/**\n * Check if the preview is already cached by the service worker\n */\nexport const isCachedPreview = function (previewUrl) {\n return caches.open(SWCacheName)\n .then(function (cache) {\n return cache.match(previewUrl)\n .then(function (response) {\n return !!response;\n });\n });\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=71eb16b5&scoped=true&\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\"\nimport style1 from \"./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71eb16b5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListFooter.vue?vue&type=template&id=2e19f455&scoped=true&\"\nimport script from \"./FilesListFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e19f455\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nexport default Vue.extend({\n data() {\n return {\n filesListWidth: null,\n };\n },\n created() {\n const fileListEl = document.querySelector('#app-content-vue');\n this.$resizeObserver = new ResizeObserver((entries) => {\n if (entries.length > 0 && entries[0].target === fileListEl) {\n this.filesListWidth = entries[0].contentRect.width;\n }\n });\n this.$resizeObserver.observe(fileListEl);\n },\n beforeDestroy() {\n this.$resizeObserver.disconnect();\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('th',{staticClass:\"files-list__column files-list__row-actions-batch\",attrs:{\"colspan\":\"2\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-title\":true,\"inline\":_vm.inlineActions,\"menu-title\":_vm.inlineActions <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event}}},_vm._l((_vm.enabledActions),function(action){return _c('NcActionButton',{key:action.id,class:'files-list__row-actions-batch-' + action.id,on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('CustomSvgIconRender',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeaderActions.vue?vue&type=template&id=03e57b1e&scoped=true&\"\nimport script from \"./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e57b1e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{staticClass:\"files-list__column-sort-button\",class:{'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode},attrs:{\"aria-label\":_vm.sortAriaLabel(_vm.name),\"type\":\"tertiary\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleSortBy(_vm.mode)}}},[(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}):_c('MenuDown',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}),_vm._v(\"\\n\\t\"+_vm._s(_vm.name)+\"\\n\")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nexport default Vue.extend({\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n currentView() {\n return this.$navigation.active;\n },\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection === 'asc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeaderButton.vue?vue&type=template&id=e85a09d2&\"\nimport script from \"./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\"},[_c('NcCheckboxRadioSwitch',_vm._b({on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),(!_vm.isNoneSelected)?_c('FilesListHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}}):[_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleSortBy('basename')}}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{'files-list__column--sortable': _vm.isSizeAvailable}},[_c('FilesListHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[(!!column.sort)?_c('FilesListHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\\t\")])],1)})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=76b6186a&scoped=true&\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76b6186a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=7be0268a&scoped=true&\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7be0268a\",\n null\n \n)\n\nexport default component.exports","import isSvg from 'is-svg';\nimport logger from '../logger.js';\nexport default class {\n _views = [];\n _currentView = null;\n constructor() {\n logger.debug('Navigation service initialized');\n }\n register(view) {\n try {\n isValidNavigation(view);\n isUniqueNavigation(view, this._views);\n }\n catch (e) {\n if (e instanceof Error) {\n logger.error(e.message, { view });\n }\n throw e;\n }\n if (view.legacy) {\n logger.warn('Legacy view detected, please migrate to Vue');\n }\n if (view.iconClass) {\n view.legacy = true;\n }\n this._views.push(view);\n }\n remove(id) {\n const index = this._views.findIndex(view => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n }\n }\n get views() {\n return this._views;\n }\n setActive(view) {\n this._currentView = view;\n }\n get active() {\n return this._currentView;\n }\n}\n/**\n * Make sure the given view is unique\n * and not already registered.\n */\nconst isUniqueNavigation = function (view, views) {\n if (views.find(search => search.id === view.id)) {\n throw new Error(`Navigation id ${view.id} is already registered`);\n }\n return true;\n};\n/**\n * Typescript cannot validate an interface.\n * Please keep in sync with the Navigation interface requirements.\n */\nconst isValidNavigation = function (view) {\n if (!view.id || typeof view.id !== 'string') {\n throw new Error('Navigation id is required and must be a string');\n }\n if (!view.name || typeof view.name !== 'string') {\n throw new Error('Navigation name is required and must be a string');\n }\n /**\n * Legacy handle their content and icon differently\n * TODO: remove when support for legacy views is removed\n */\n if (!view.legacy) {\n if (!view.getContents || typeof view.getContents !== 'function') {\n throw new Error('Navigation getContents is required and must be a function');\n }\n if (!view.icon || typeof view.icon !== 'string' || !isSvg(view.icon)) {\n throw new Error('Navigation icon is required and must be a valid svg string');\n }\n }\n if (!('order' in view) || typeof view.order !== 'number') {\n throw new Error('Navigation order is required and must be a number');\n }\n // Optional properties\n if (view.columns) {\n view.columns.forEach(isValidColumn);\n }\n if (view.emptyView && typeof view.emptyView !== 'function') {\n throw new Error('Navigation emptyView must be a function');\n }\n if (view.parent && typeof view.parent !== 'string') {\n throw new Error('Navigation parent must be a string');\n }\n if ('sticky' in view && typeof view.sticky !== 'boolean') {\n throw new Error('Navigation sticky must be a boolean');\n }\n if ('expanded' in view && typeof view.expanded !== 'boolean') {\n throw new Error('Navigation expanded must be a boolean');\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== 'string') {\n throw new Error('Navigation defaultSortKey must be a string');\n }\n return true;\n};\n/**\n * Typescript cannot validate an interface.\n * Please keep in sync with the Column interface requirements.\n */\nconst isValidColumn = function (column) {\n if (!column.id || typeof column.id !== 'string') {\n throw new Error('A column id is required');\n }\n if (!column.title || typeof column.title !== 'string') {\n throw new Error('A column title is required');\n }\n if (!column.render || typeof column.render !== 'function') {\n throw new Error('A render function is required');\n }\n // Optional properties\n if (column.sort && typeof column.sort !== 'function') {\n throw new Error('Column sortFunction must be a function');\n }\n if (column.summary && typeof column.summary !== 'function') {\n throw new Error('Column summary must be a function');\n }\n return true;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.currentView?.legacy),expression:\"!currentView?.legacy\"}],class:{'app-content--hidden': _vm.currentView?.legacy},attrs:{\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\"},[_c('BreadCrumbs',{attrs:{\"path\":_vm.dir},on:{\"reload\":_vm.fetchContent}}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e()],1),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"title\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('files', 'No files in here'),\"description\":_vm.t('files', 'No files or folders have been deleted yet'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [(_vm.dir !== '/')?_c('NcButton',{attrs:{\"aria-label\":\"t('files', 'Go to the previous folder')\",\"type\":\"primary\",\"to\":_vm.toPreviousDir}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"icon\",fn:function(){return [_c('TrashCan')]},proxy:true}])}):_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-view\":_vm.currentView,\"nodes\":_vm.dirContents}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=66068cbb&scoped=true&\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66068cbb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppNavigation',{attrs:{\"data-cy-files-navigation\":\"\"},scopedSlots:_vm._u([{key:\"list\",fn:function(){return _vm._l((_vm.parentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,attrs:{\"allow-collapse\":true,\"data-cy-files-navigation-item\":view.id,\"icon\":view.iconClass,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"title\":view.name,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":function($event){return _vm.onToggleExpand(view)}}},[(view.icon)?_c('NcIconSvgWrapper',{attrs:{\"slot\":\"icon\",\"svg\":view.icon},slot:\"icon\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.childViews[view.id]),function(child){return _c('NcAppNavigationItem',{key:child.id,attrs:{\"data-cy-files-navigation-item\":child.id,\"exact\":true,\"icon\":child.iconClass,\"title\":child.name,\"to\":_vm.generateToNavigation(child)}},[(child.icon)?_c('NcIconSvgWrapper',{attrs:{\"slot\":\"icon\",\"svg\":child.icon},slot:\"icon\"}):_vm._e()],1)})],2)})},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"aria-label\":_vm.t('files', 'Open the files app settings'),\"title\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('Cog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"close\":_vm.onSettingsClose}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-label\":_vm.t('files', 'Storage informations'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-label=\"t('files', 'Storage informations')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { debounce, throttle } from 'throttle-debounce'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport logger from '../logger.js'\nimport { subscribe } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, true).replace('iB', 'B')\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, true).replace('iB', 'B')\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event = null] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t&--not-unlimited::v-deep .app-navigation-entry__title {\n\t\tmargin-top: -4px;\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: 10px;\n\t\tmargin-left: 44px;\n\t\twidth: calc(100% - 44px - 22px);\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=9741374e&scoped=true&\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9741374e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"title\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"title\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"title\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"title\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Gary Kim <gary@garykim.dev>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=61d69eae&\"\nimport script from \"./Setting.vue?vue&type=script&lang=js&\"\nexport * from \"./Setting.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:title=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :title=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch :checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch :checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:title=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :title=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport NcAppSettingsDialog from '@nextcloud/vue/dist/Components/NcAppSettingsDialog.js'\nimport NcAppSettingsSection from '@nextcloud/vue/dist/Components/NcAppSettingsSection.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport Clipboard from 'vue-material-design-icons/Clipboard.vue'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport Setting from '../components/Setting.vue'\n\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { translate } from '@nextcloud/l10n'\nimport { useUserConfigStore } from '../store/userconfig.ts'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\treturn {\n\t\t\tuserConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=76ca5d1f&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76ca5d1f\",\n null\n \n)\n\nexport default component.exports","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<NcAppNavigation data-cy-files-navigation>\n\t\t<template #list>\n\t\t\t<NcAppNavigationItem v-for=\"view in parentViews\"\n\t\t\t\t:key=\"view.id\"\n\t\t\t\t:allow-collapse=\"true\"\n\t\t\t\t:data-cy-files-navigation-item=\"view.id\"\n\t\t\t\t:icon=\"view.iconClass\"\n\t\t\t\t:open=\"isExpanded(view)\"\n\t\t\t\t:pinned=\"view.sticky\"\n\t\t\t\t:title=\"view.name\"\n\t\t\t\t:to=\"generateToNavigation(view)\"\n\t\t\t\t@update:open=\"onToggleExpand(view)\">\n\t\t\t\t<!-- Sanitized icon as svg if provided -->\n\t\t\t\t<NcIconSvgWrapper v-if=\"view.icon\" slot=\"icon\" :svg=\"view.icon\" />\n\n\t\t\t\t<!-- Child views if any -->\n\t\t\t\t<NcAppNavigationItem v-for=\"child in childViews[view.id]\"\n\t\t\t\t\t:key=\"child.id\"\n\t\t\t\t\t:data-cy-files-navigation-item=\"child.id\"\n\t\t\t\t\t:exact=\"true\"\n\t\t\t\t\t:icon=\"child.iconClass\"\n\t\t\t\t\t:title=\"child.name\"\n\t\t\t\t\t:to=\"generateToNavigation(child)\">\n\t\t\t\t\t<!-- Sanitized icon as svg if provided -->\n\t\t\t\t\t<NcIconSvgWrapper v-if=\"child.icon\" slot=\"icon\" :svg=\"child.icon\" />\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</NcAppNavigationItem>\n\t\t</template>\n\n\t\t<!-- Non-scrollable navigation bottom elements -->\n\t\t<template #footer>\n\t\t\t<ul class=\"app-navigation-entry__settings\">\n\t\t\t\t<!-- User storage usage statistics -->\n\t\t\t\t<NavigationQuota />\n\n\t\t\t\t<!-- Files settings modal toggle-->\n\t\t\t\t<NcAppNavigationItem :aria-label=\"t('files', 'Open the files app settings')\"\n\t\t\t\t\t:title=\"t('files', 'Files settings')\"\n\t\t\t\t\tdata-cy-files-navigation-settings-button\n\t\t\t\t\t@click.prevent.stop=\"openSettings\">\n\t\t\t\t\t<Cog slot=\"icon\" :size=\"20\" />\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</ul>\n\t\t</template>\n\n\t\t<!-- Settings modal-->\n\t\t<SettingsModal :open=\"settingsOpened\"\n\t\t\tdata-cy-files-navigation-settings\n\t\t\t@close=\"onSettingsClose\" />\n\t</NcAppNavigation>\n</template>\n\n<script>\nimport { emit, subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport Cog from 'vue-material-design-icons/Cog.vue'\nimport NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\n\nimport { setPageHeading } from '../../../../core/src/OCP/accessibility.js'\nimport { useViewConfigStore } from '../store/viewConfig.ts'\nimport logger from '../logger.js'\nimport Navigation from '../services/Navigation.ts'\nimport NavigationQuota from '../components/NavigationQuota.vue'\nimport SettingsModal from './Settings.vue'\n\nexport default {\n\tname: 'Navigation',\n\n\tcomponents: {\n\t\tCog,\n\t\tNavigationQuota,\n\t\tNcAppNavigation,\n\t\tNcAppNavigationItem,\n\t\tNcIconSvgWrapper,\n\t\tSettingsModal,\n\t},\n\n\tprops: {\n\t\t// eslint-disable-next-line vue/prop-name-casing\n\t\tNavigation: {\n\t\t\ttype: Navigation,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst viewConfigStore = useViewConfigStore()\n\t\treturn {\n\t\t\tviewConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpened: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcurrentViewId() {\n\t\t\treturn this.$route?.params?.view || 'files'\n\t\t},\n\n\t\t/** @return {Navigation} */\n\t\tcurrentView() {\n\t\t\treturn this.views.find(view => view.id === this.currentViewId)\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tviews() {\n\t\t\treturn this.Navigation.views\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tparentViews() {\n\t\t\treturn this.views\n\t\t\t\t// filter child views\n\t\t\t\t.filter(view => !view.parent)\n\t\t\t\t// sort views by order\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.order - b.order\n\t\t\t\t})\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tchildViews() {\n\t\t\treturn this.views\n\t\t\t\t// filter parent views\n\t\t\t\t.filter(view => !!view.parent)\n\t\t\t\t// create a map of parents and their children\n\t\t\t\t.reduce((list, view) => {\n\t\t\t\t\tlist[view.parent] = [...(list[view.parent] || []), view]\n\t\t\t\t\t// Sort children by order\n\t\t\t\t\tlist[view.parent].sort((a, b) => {\n\t\t\t\t\t\treturn a.order - b.order\n\t\t\t\t\t})\n\t\t\t\t\treturn list\n\t\t\t\t}, {})\n\t\t},\n\t},\n\n\twatch: {\n\t\tcurrentView(view, oldView) {\n\t\t\t// If undefined, it means we're initializing the view\n\t\t\t// This is handled by the legacy-view:initialized event\n\t\t\t// TODO: remove when legacy views are dropped\n\t\t\tif (view?.id === oldView?.id) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.Navigation.setActive(view)\n\t\t\tlogger.debug('Navigation changed', { id: view.id, view })\n\n\t\t\tthis.showView(view, oldView)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tif (this.currentView) {\n\t\t\tlogger.debug('Navigation mounted. Showing requested view', { view: this.currentView })\n\t\t\tthis.showView(this.currentView)\n\t\t}\n\n\t\tsubscribe('files:legacy-navigation:changed', this.onLegacyNavigationChanged)\n\n\t\t// TODO: remove this once the legacy navigation is gone\n\t\tsubscribe('files:legacy-view:initialized', () => {\n\t\t\tlogger.debug('Legacy view initialized', { ...this.currentView })\n\t\t\tthis.showView(this.currentView)\n\t\t})\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * @param {Navigation} view the new active view\n\t\t * @param {Navigation} oldView the old active view\n\t\t */\n\t\tshowView(view, oldView) {\n\t\t\t// Closing any opened sidebar\n\t\t\twindow?.OCA?.Files?.Sidebar?.close?.()\n\n\t\t\tif (view?.legacy) {\n\t\t\t\tconst newAppContent = document.querySelector('#app-content #app-content-' + this.currentView.id + '.viewcontainer')\n\t\t\t\tdocument.querySelectorAll('#app-content .viewcontainer').forEach(el => {\n\t\t\t\t\tel.classList.add('hidden')\n\t\t\t\t})\n\t\t\t\tnewAppContent.classList.remove('hidden')\n\n\t\t\t\t// Triggering legacy navigation events\n\t\t\t\tconst { dir = '/' } = OC.Util.History.parseUrlQuery()\n\t\t\t\tconst params = { itemId: view.id, dir }\n\n\t\t\t\tlogger.debug('Triggering legacy navigation event', params)\n\t\t\t\twindow.jQuery(newAppContent).trigger(new window.jQuery.Event('show', params))\n\t\t\t\twindow.jQuery(newAppContent).trigger(new window.jQuery.Event('urlChanged', params))\n\t\t\t}\n\n\t\t\tthis.Navigation.setActive(view)\n\t\t\tsetPageHeading(view.name)\n\t\t\temit('files:navigation:changed', view)\n\t\t},\n\n\t\t/**\n\t\t * Coming from the legacy files app.\n\t\t * TODO: remove when all views are migrated.\n\t\t *\n\t\t * @param {object} payload the payload\n\t\t * @param {string} [payload.id='files'] the view id\n\t\t * @param {boolean} [payload.silent=false] if true, the view will not be shown immediately\n\t\t */\n\t\tonLegacyNavigationChanged({ id = 'files', silent = false } = {}) {\n\t\t\tconst view = this.Navigation.views.find(view => view.id === id)\n\t\t\tif (view && view.legacy && view.id !== this.currentView.id) {\n\t\t\t\t// Force update the current route as the request comes\n\t\t\t\t// from the legacy files app router\n\t\t\t\tthis.$router.replace({ ...this.$route, params: { view: view.id } })\n\t\t\t\tif (!silent) {\n\t\t\t\t\tthis.Navigation.setActive(view)\n\t\t\t\t\tthis.showView(view)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Expand/collapse a a view with children and permanently\n\t\t * save this setting in the server.\n\t\t *\n\t\t * @param {Navigation} view the view to toggle\n\t\t */\n\t\tonToggleExpand(view) {\n\t\t\t// Invert state\n\t\t\tconst isExpanded = this.isExpanded(view)\n\t\t\t// Update the view expanded state, might not be necessary\n\t\t\tview.expanded = !isExpanded\n\t\t\tthis.viewConfigStore.update(view.id, 'expanded', !isExpanded)\n\t\t},\n\n\t\t/**\n\t\t * Check if a view is expanded by user config\n\t\t * or fallback to the default value.\n\t\t *\n\t\t * @param {Navigation} view the view to check\n\t\t */\n\t\tisExpanded(view) {\n\t\t\treturn typeof this.viewConfigStore.getConfig(view.id)?.expanded === 'boolean'\n\t\t\t\t? this.viewConfigStore.getConfig(view.id).expanded === true\n\t\t\t\t: view.expanded === true\n\t\t},\n\n\t\t/**\n\t\t * Generate the route to a view\n\t\t *\n\t\t * @param {Navigation} view the view to toggle\n\t\t */\n\t\tgenerateToNavigation(view) {\n\t\t\tif (view.params) {\n\t\t\t\tconst { dir, fileid } = view.params\n\t\t\t\treturn { name: 'filelist', params: view.params, query: { dir, fileid } }\n\t\t\t}\n\t\t\treturn { name: 'filelist', params: { view: view.id } }\n\t\t},\n\n\t\t/**\n\t\t * Open the settings modal\n\t\t */\n\t\topenSettings() {\n\t\t\tthis.settingsOpened = true\n\t\t},\n\n\t\t/**\n\t\t * Close the settings modal\n\t\t */\n\t\tonSettingsClose() {\n\t\t\tthis.settingsOpened = false\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\n.app-navigation::v-deep .app-navigation-entry-icon {\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.app-navigation > ul.app-navigation__list {\n\t// Use flex gap value for more elegant spacing\n\tpadding-bottom: var(--default-grid-baseline, 4px);\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n</style>\n","/**\n * @copyright Copyright (c) 2022 Joas Schilling <coding@schilljs.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=dd350a0c&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd350a0c\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport logger from '../logger.js'\n\n/**\n * Fetch and register the legacy files views\n */\nexport default function() {\n\tconst legacyViews = Object.values(loadState('files', 'navigation', {}))\n\n\tif (legacyViews.length > 0) {\n\t\tlogger.debug('Legacy files views detected. Processing...', legacyViews)\n\t\tlegacyViews.forEach(view => {\n\t\t\tregisterLegacyView(view)\n\t\t\tif (view.sublist) {\n\t\t\t\tview.sublist.forEach(subview => registerLegacyView({ ...subview, parent: view.id }))\n\t\t\t}\n\t\t})\n\t}\n}\n\nconst registerLegacyView = function({ id, name, order, icon, parent, classes = '', expanded, params }) {\n\tOCP.Files.Navigation.register({\n\t\tid,\n\t\tname,\n\t\torder,\n\t\tparams,\n\t\tparent,\n\t\texpanded: expanded === true,\n\t\ticonClass: icon ? `icon-${icon}` : 'nav-icon-' + id,\n\t\tlegacy: true,\n\t\tsticky: classes.includes('pinned'),\n\t})\n}\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue'\nimport Router from 'vue-router'\nimport { generateUrl } from '@nextcloud/router'\nimport queryString from 'query-string'\n\nVue.use(Router)\n\nconst router = new Router({\n\tmode: 'history',\n\n\t// if index.php is in the url AND we got this far, then it's working:\n\t// let's keep using index.php in the url\n\tbase: generateUrl('/apps/files', ''),\n\tlinkActiveClass: 'active',\n\n\troutes: [\n\t\t{\n\t\t\tpath: '/',\n\t\t\t// Pretending we're using the default view\n\t\t\talias: '/files',\n\t\t},\n\t\t{\n\t\t\tpath: '/:view/:fileid?',\n\t\t\tname: 'filelist',\n\t\t\tprops: true,\n\t\t},\n\t],\n\n\t// Custom stringifyQuery to prevent encoding of slashes in the url\n\tstringifyQuery(query) {\n\t\tconst result = queryString.stringify(query).replace(/%2F/gmi, '/')\n\t\treturn result ? ('?' + result) : ''\n\t},\n})\n\nrouter.beforeEach((to, from, next) => {\n\t// TODO: Remove this when the legacy files list is removed\n\ttry {\n\t\tconst views = window.OCP.Files?.Navigation?.views || []\n\t\tconst isLegacy = views.find(view => view?.id === to?.params?.view)?.legacy === true\n\t\tif (isLegacy && to?.query?.dir !== from?.query?.dir) {\n\t\t\t// https://github.com/nextcloud/server/blob/1b422df12ac8eb26514849fb117e0dcf58623b88/apps/files/js/filelist.js#L2052-L2076\n\t\t\twindow.OCA.Files.App.fileList.changeDirectory(to?.query?.dir || '/', false, false, to?.query?.fileid, true)\n\t\t}\n\t} catch (error) {}\n\tnext()\n})\n\nexport default router\n","import './templates.js';\nimport './legacy/filelistSearch.js';\nimport './actions/deleteAction';\nimport './actions/openFolderAction';\nimport './actions/sidebarAction';\nimport Vue from 'vue';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport FilesListView from './views/FilesList.vue';\nimport NavigationService from './services/Navigation';\nimport NavigationView from './views/Navigation.vue';\nimport processLegacyFilesViews from './legacy/navigationMapper.js';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport router from './router/router.js';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nconst Router = new RouterService(router);\nObject.assign(window.OCP.Files, { Router });\n// Init Pinia store\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\n// Init Navigation Service\nconst Navigation = new NavigationService();\nObject.assign(window.OCP.Files, { Navigation });\nVue.prototype.$navigation = Navigation;\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\n// Init Navigation View\nconst View = Vue.extend(NavigationView);\nconst FilesNavigationRoot = new View({\n name: 'FilesNavigationRoot',\n propsData: {\n Navigation,\n },\n router,\n pinia,\n});\nFilesNavigationRoot.$mount('#app-navigation-files');\n// Init content list view\nconst ListView = Vue.extend(FilesListView);\nconst FilesList = new ListView({\n name: 'FilesListRoot',\n router,\n pinia,\n});\nFilesList.$mount('#app-content-vue');\n// Init legacy and new files views\nprocessLegacyFilesViews();\n// Register preview service worker\nregisterPreviewServiceWorker();\n","export default class RouterService {\n _router;\n constructor(router) {\n this._router = router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this._router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this._router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".breadcrumb[data-v-68b3b20b]{flex:1 1 100% !important;width:100%}.breadcrumb[data-v-68b3b20b] a{cursor:pointer !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,6BAEC,wBAAA,CACA,UAAA,CAEA,+BACC,yBAAA\",\"sourcesContent\":[\"\\n.breadcrumb {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\n\\t::v-deep a {\\n\\t\\tcursor: pointer !important;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".custom-svg-icon[data-v-93e9b2f4]{display:flex;align-items:center;align-self:center;justify-content:center;justify-self:center;width:44px;height:44px;opacity:1}.custom-svg-icon[data-v-93e9b2f4] svg{height:22px;width:22px;fill:currentColor}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/CustomSvgIconRender.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,sBAAA,CACA,mBAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAEA,sCAGC,WAAA,CACA,UAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.custom-svg-icon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\talign-self: center;\\n\\tjustify-content: center;\\n\\tjustify-self: center;\\n\\twidth: 44px;\\n\\theight: 44px;\\n\\topacity: 1;\\n\\n\\t::v-deep svg {\\n\\t\\t// mdi icons have a size of 24px\\n\\t\\t// 22px results in roughly 16px inner size\\n\\t\\theight: 22px;\\n\\t\\twidth: 22px;\\n\\t\\tfill: currentColor;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"tr[data-v-71eb16b5]:hover,tr[data-v-71eb16b5]:focus,tr[data-v-71eb16b5]:active{background-color:var(--color-background-dark)}.files-list__row-icon-preview[data-v-71eb16b5]:not([style*=background]){background:var(--color-loading-dark)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry.vue\"],\"names\":[],\"mappings\":\"AAGC,+EAGC,6CAAA,CAKF,wEACI,oCAAA\",\"sourcesContent\":[\"\\n/* Hover effect on tbody lines only */\\ntr {\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n/* Preview not loaded animation effect */\\n.files-list__row-icon-preview:not([style*='background']) {\\n background: var(--color-loading-dark);\\n\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"tr[data-v-2e19f455]{padding-bottom:300px;border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}td[data-v-2e19f455]{user-select:none;color:var(--color-text-maxcontrast) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,oBAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAGD,oBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tpadding-bottom: 300px;\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n}\\n\\ntd {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__column[data-v-76b6186a]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-76b6186a]{cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__row-actions-batch[data-v-03e57b1e]{flex:1 1 100% !important}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper{width:100%}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper span.button-vue__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CAGA,qEACC,UAAA,CACA,2FACC,eAAA,CACA,sBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\n\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t::v-deep .button-vue__wrapper {\\n\\t\\twidth: 100%;\\n\\t\\tspan.button-vue__text {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__column-sort-button{margin:0 calc(var(--cell-margin)*-1);padding:0 4px 0 16px !important}.files-list__column-sort-button .button-vue__wrapper{flex-direction:row-reverse;width:100%}.files-list__column-sort-button .button-vue__icon{transition-timing-function:linear;transition-duration:.1s;transition-property:opacity;opacity:0}.files-list__column-sort-button .button-vue__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list__column-sort-button--active .button-vue__icon,.files-list__column-sort-button:hover .button-vue__icon,.files-list__column-sort-button:focus .button-vue__icon,.files-list__column-sort-button:active .button-vue__icon{opacity:1 !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,gCAEC,oCAAA,CAEA,+BAAA,CAGA,qDACC,0BAAA,CAGA,UAAA,CAGD,kDACC,iCAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAID,kDACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAOA,mOACC,oBAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--cell-margin) * -1);\\n\\t// Reverse padding\\n\\tpadding: 0 4px 0 16px !important;\\n\\n\\t// Icon after text\\n\\t.button-vue__wrapper {\\n\\t\\tflex-direction: row-reverse;\\n\\t\\t// Take max inner width for text overflow ellipsis\\n\\t\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.button-vue__icon {\\n\\t\\ttransition-timing-function: linear;\\n\\t\\ttransition-duration: .1s;\\n\\t\\ttransition-property: opacity;\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t.button-vue__text {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&--active,\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\t.button-vue__icon {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list[data-v-7be0268a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: 44px;--icon-preview-size: 32px;display:block;overflow:auto;height:100%}.files-list[data-v-7be0268a] tbody,.files-list[data-v-7be0268a] .vue-recycle-scroller__slot{display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-7be0268a] .vue-recycle-scroller__slot[role=thead]{position:sticky;z-index:10;top:0;height:var(--row-height);background-color:var(--color-main-background)}.files-list[data-v-7be0268a] tr{position:absolute;display:flex;align-items:center;width:100%;border-bottom:1px solid var(--color-border)}.files-list[data-v-7be0268a] td,.files-list[data-v-7be0268a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:left;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-7be0268a] td span,.files-list[data-v-7be0268a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-7be0268a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-7be0268a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-right:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-7be0268a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-7be0268a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-7be0268a] .files-list__row-icon-preview{overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center;background-size:contain}.files-list[data-v-7be0268a] .files-list__row-icon-favorite{position:absolute;top:4px;right:-8px;color:#fc0}.files-list[data-v-7be0268a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-7be0268a] .files-list__row-name a{display:flex;align-items:center;width:100%;height:100%}.files-list[data-v-7be0268a] .files-list__row-name a:focus .files-list__row-name-text,.files-list[data-v-7be0268a] .files-list__row-name a:focus-visible .files-list__row-name-text{outline:2px solid var(--color-main-text) !important;border-radius:20px}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-text{padding:5px 10px;margin-left:-10px;display:inline-flex}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-actions{width:auto}.files-list[data-v-7be0268a] .files-list__row-actions~td,.files-list[data-v-7be0268a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-7be0268a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-7be0268a] .files-list__row-actions button:not(:hover,:focus,:active) .button-vue__wrapper{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-size{justify-content:flex-end;width:calc(var(--row-height)*1.5);color:var(--color-main-text)}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button{padding:0 16px 0 4px !important}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button .button-vue__wrapper{flex-direction:row}.files-list[data-v-7be0268a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,kBAAA,CACA,mBAAA,CAEA,wEAAA,CACA,qBAAA,CACA,sBAAA,CACA,yBAAA,CAEA,aAAA,CACA,aAAA,CACA,WAAA,CAIC,4FACC,YAAA,CACA,qBAAA,CACA,UAAA,CAEA,iBAAA,CAID,qEAEC,eAAA,CACA,UAAA,CACA,KAAA,CACA,wBAAA,CACA,6CAAA,CAGD,gCACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,UAAA,CACA,2CAAA,CAGD,gEACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,oBAAA,CACA,uBAAA,CACA,wBAAA,CACA,QAAA,CACA,SAAA,CACA,mCAAA,CACA,WAAA,CAKA,0EACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAIF,uDACC,sBAAA,CACA,8EACC,YAAA,CACA,sBAAA,CAEA,iCAAA,CAEA,iHACC,2BAAA,CACA,4BAAA,CACA,QAAA,CACA,8DAAA,CAGD,2GACC,mBAAA,CAKH,mDACC,iBAAA,CACA,YAAA,CACA,gBAAA,CACA,kBAAA,CAEA,iCAAA,CACA,sBAAA,CACA,8BAAA,CACA,WAAA,CAEA,oCAAA,CACA,kCAAA,CAEA,wDACC,0BAAA,CAGD,gGACC,8BAAA,CACA,+BAAA,CAGD,2DACC,eAAA,CACA,8BAAA,CACA,+BAAA,CACA,kCAAA,CACA,2BAAA,CAEA,0BAAA,CACA,uBAAA,CAGD,4DACC,iBAAA,CACA,OAAA,CACA,UAAA,CACA,UAAA,CAIF,mDAEC,eAAA,CAEA,aAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,WAAA,CAGA,oLAEC,mDAAA,CACA,kBAAA,CAIF,8EAEC,gBAAA,CACA,iBAAA,CAEA,mBAAA,CAGD,6EACC,mCAAA,CAIF,sDACC,UAAA,CAGA,kHAEC,2BAAA,CAIA,+EAEC,kBAAA,CAED,6GAEC,mCAAA,CAKH,mDAEC,wBAAA,CACA,iCAAA,CAEA,4BAAA,CAGA,mFACC,+BAAA,CACA,wGACC,kBAAA,CAKH,4DACC,+BAAA\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: 44px;\\n\\t--icon-preview-size: 32px;\\n\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\n\\t&::v-deep {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody, .vue-recycle-scroller__slot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.vue-recycle-scroller__slot[role='thead'] {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: left;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-right: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&> span:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 4px;\\n\\t\\t\\t\\tright: -8px;\\n\\t\\t\\t\\tcolor: #ffcc00;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\ta {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text,\\n\\t\\t\\t\\t&:focus-visible .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: 20px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: 5px 10px;\\n\\t\\t\\t\\tmargin-left: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(:hover, :focus, :active) .button-vue__wrapper {\\n\\t\\t\\t\\t\\t// Also apply color-text-maxcontrast to non-active button\\n\\t\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\t// Right align text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// opacity varies with the size\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\t\\t// Icon is before text since size is right aligned\\n\\t\\t\\t.files-list__column-sort-button {\\n\\t\\t\\t\\tpadding: 0 16px 0 4px !important;\\n\\t\\t\\t\\t.button-vue__wrapper {\\n\\t\\t\\t\\t\\tflex-direction: row;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-navigation-entry__settings-quota--not-unlimited[data-v-9741374e] .app-navigation-entry__title{margin-top:-4px}.app-navigation-entry__settings-quota progress[data-v-9741374e]{position:absolute;bottom:10px;margin-left:44px;width:calc(100% - 44px - 22px)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAIC,mGACC,eAAA,CAGD,gEACC,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,8BAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t&--not-unlimited::v-deep .app-navigation-entry__title {\\n\\t\\tmargin-top: -4px;\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: 10px;\\n\\t\\tmargin-left: 44px;\\n\\t\\twidth: calc(100% - 44px - 22px);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".template-picker__item[data-v-5b09ec60]{display:flex}.template-picker__label[data-v-5b09ec60]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-5b09ec60],.template-picker__label *[data-v-5b09ec60]{cursor:pointer;user-select:none}.template-picker__label[data-v-5b09ec60]::before{display:none !important}.template-picker__preview[data-v-5b09ec60]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-5b09ec60]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-5b09ec60]{display:flex}.template-picker__image[data-v-5b09ec60]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-5b09ec60]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-5b09ec60]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/TemplatePreview.vue\"],\"names\":[],\"mappings\":\"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n.template-picker {\\n\\t&__item {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\t// Align in the middle of the grid\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tdisplay: none !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\t// Stretch so all entries are the same width\\n\\t\\tflex: 1 1;\\n\\t\\twidth: var(--width);\\n\\t\\tmin-height: var(--height);\\n\\t\\tmax-height: var(--height);\\n\\t\\tpadding: 0;\\n\\t\\tborder: var(--border) solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\tinput:checked + label > & {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&--failed {\\n\\t\\t\\t// Make sure to properly center fallback icon\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t// Failed preview, fallback to mime icon\\n\\t&__preview--failed &__image {\\n\\t\\twidth: calc(var(--margin) * 8);\\n\\t\\t// Center mime icon\\n\\t\\tmargin: auto;\\n\\t\\tbackground-color: transparent !important;\\n\\n\\t\\tobject-fit: initial;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\t// also count preview border\\n\\t\\tmax-width: calc(var(--width) + 2*2px);\\n\\t\\tpadding: var(--margin);\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-content[data-v-66068cbb]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}.app-content[data-v-66068cbb]:not(.app-content--hidden)+#app-content{display:none}.files-list__header[data-v-66068cbb]{display:flex;align-content:center;flex:0 0;margin:4px 4px 4px 50px}.files-list__header>*[data-v-66068cbb]{flex:0 0}.files-list__refresh-icon[data-v-66068cbb]{flex:0 0 44px;width:44px;height:44px}.files-list__loading-icon[data-v-66068cbb]{margin:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CAIA,qEACC,YAAA,CAQD,qCACC,YAAA,CACA,oBAAA,CAEA,QAAA,CAEA,uBAAA,CACA,uCAGC,QAAA,CAGF,2CACC,aAAA,CACA,UAAA,CACA,WAAA,CAED,2CACC,WAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\n\\t// TODO: remove after all legacy views are migrated\\n\\t// Hides the legacy app-content if shown view is not legacy\\n\\t&:not(&--hidden)::v-deep + #app-content {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n$margin: 4px;\\n$navigationToggleSize: 50px;\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-content: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin: $margin $margin $margin $navigationToggleSize;\\n\\t\\t> * {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\t}\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 44px;\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t}\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-navigation[data-v-dd350a0c] .app-navigation-entry-icon{background-repeat:no-repeat;background-position:center}.app-navigation>ul.app-navigation__list[data-v-dd350a0c]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-dd350a0c]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEA,4DACC,2BAAA,CACA,0BAAA,CAGD,yDAEC,gDAAA,CAGD,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA\",\"sourcesContent\":[\"\\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\\n.app-navigation::v-deep .app-navigation-entry-icon {\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: center;\\n}\\n\\n.app-navigation > ul.app-navigation__list {\\n\\t// Use flex gap value for more elegant spacing\\n\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".setting-link[data-v-76ca5d1f]:hover{text-decoration:underline}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".templates-picker__form[data-v-d46f1dc6]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-d46f1dc6]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-d46f1dc6]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-d46f1dc6]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-d46f1dc6],.templates-picker__buttons input[type=submit][data-v-d46f1dc6]{height:44px}.templates-picker[data-v-d46f1dc6] .modal-container{position:relative}.templates-picker__loading[data-v-d46f1dc6]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/TemplatePicker.vue\"],\"names\":[],\"mappings\":\"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA\",\"sourcesContent\":[\"\\n.templates-picker {\\n\\t&__form {\\n\\t\\tpadding: calc(var(--margin) * 2);\\n\\t\\t// Will be handled by the buttons\\n\\t\\tpadding-bottom: 0;\\n\\n\\t\\th2 {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: var(--margin) 0 calc(var(--margin) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__list {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-gap: calc(var(--margin) * 2);\\n\\t\\tgrid-auto-columns: 1fr;\\n\\t\\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\\n\\t\\tmax-width: calc(var(--fullwidth) * 6);\\n\\t\\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\\n\\t\\t// Make sure all rows are the same height\\n\\t\\tgrid-auto-rows: 1fr;\\n\\t\\t// Center the columns set\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t\\tpadding: calc(var(--margin) * 2) var(--margin);\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tbackground-image: linear-gradient(0, var(--gradient-main-background));\\n\\n\\t\\tbutton, input[type='submit'] {\\n\\t\\t\\theight: 44px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make sure we're relative for the loading emptycontent on top\\n\\t::v-deep .modal-container {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\tbackground-color: var(--color-main-background-translucent);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n/* @keyframes preview-gradient-fade {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.5;\\n }\\n 100% {\\n opacity: 1;\\n }\\n} */\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry.vue\"],\"names\":[],\"mappings\":\";AA6nBA;;;;;;;;;;GAUA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<Fragment>\\n\\t\\t<td class=\\\"files-list__row-checkbox\\\">\\n\\t\\t\\t<NcCheckboxRadioSwitch v-if=\\\"active\\\"\\n\\t\\t\\t\\t:aria-label=\\\"t('files', 'Select the row for {displayName}', { displayName })\\\"\\n\\t\\t\\t\\t:checked=\\\"selectedFiles\\\"\\n\\t\\t\\t\\t:value=\\\"fileid\\\"\\n\\t\\t\\t\\tname=\\\"selectedFiles\\\"\\n\\t\\t\\t\\t@update:checked=\\\"onSelectionChange\\\" />\\n\\t\\t</td>\\n\\n\\t\\t<!-- Link to file -->\\n\\t\\t<td class=\\\"files-list__row-name\\\">\\n\\t\\t\\t<a ref=\\\"name\\\" v-bind=\\\"linkAttrs\\\" @click=\\\"execDefaultAction\\\">\\n\\t\\t\\t\\t<!-- Icon or preview -->\\n\\t\\t\\t\\t<span class=\\\"files-list__row-icon\\\">\\n\\t\\t\\t\\t\\t<FolderIcon v-if=\\\"source.type === 'folder'\\\" />\\n\\n\\t\\t\\t\\t\\t<!-- Decorative image, should not be aria documented -->\\n\\t\\t\\t\\t\\t<span v-else-if=\\\"previewUrl && !backgroundFailed\\\"\\n\\t\\t\\t\\t\\t\\tref=\\\"previewImg\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-preview\\\"\\n\\t\\t\\t\\t\\t\\t:style=\\\"{ backgroundImage }\\\" />\\n\\n\\t\\t\\t\\t\\t<span v-else-if=\\\"mimeIconUrl\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-preview files-list__row-icon-preview--mime\\\"\\n\\t\\t\\t\\t\\t\\t:style=\\\"{ backgroundImage: mimeIconUrl }\\\" />\\n\\n\\t\\t\\t\\t\\t<FileIcon v-else />\\n\\n\\t\\t\\t\\t\\t<!-- Favorite icon -->\\n\\t\\t\\t\\t\\t<span v-if=\\\"isFavorite\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-favorite\\\"\\n\\t\\t\\t\\t\\t\\t:aria-label=\\\"t('files', 'Favorite')\\\">\\n\\t\\t\\t\\t\\t\\t<StarIcon aria-hidden=\\\"true\\\" :size=\\\"20\\\" />\\n\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t</span>\\n\\n\\t\\t\\t\\t<!-- File name -->\\n\\t\\t\\t\\t<span class=\\\"files-list__row-name-text\\\">\\n\\t\\t\\t\\t\\t<!-- Keep the displayName stuck to the extension to avoid whitespace rendering issues-->\\n\\t\\t\\t\\t\\t<span class=\\\"files-list__row-name-name\\\" v-text=\\\"displayName\\\" />\\n\\t\\t\\t\\t\\t<span class=\\\"files-list__row-name-ext\\\" v-text=\\\"extension\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</a>\\n\\t\\t</td>\\n\\n\\t\\t<!-- Actions -->\\n\\t\\t<td :class=\\\"`files-list__row-actions-${uniqueId}`\\\" class=\\\"files-list__row-actions\\\">\\n\\t\\t\\t<!-- Inline actions -->\\n\\t\\t\\t<!-- TODO: implement CustomElementRender -->\\n\\n\\t\\t\\t<!-- Menu actions -->\\n\\t\\t\\t<NcActions v-if=\\\"active\\\"\\n\\t\\t\\t\\tref=\\\"actionsMenu\\\"\\n\\t\\t\\t\\t:boundaries-element=\\\"boundariesElement\\\"\\n\\t\\t\\t\\t:container=\\\"boundariesElement\\\"\\n\\t\\t\\t\\t:disabled=\\\"source._loading\\\"\\n\\t\\t\\t\\t:force-title=\\\"true\\\"\\n\\t\\t\\t\\t:force-menu=\\\"true\\\"\\n\\t\\t\\t\\t:inline=\\\"enabledInlineActions.length\\\"\\n\\t\\t\\t\\t:open.sync=\\\"openedMenu\\\">\\n\\t\\t\\t\\t<NcActionButton v-for=\\\"action in enabledMenuActions\\\"\\n\\t\\t\\t\\t\\t:key=\\\"action.id\\\"\\n\\t\\t\\t\\t\\t:class=\\\"'files-list__row-action-' + action.id\\\"\\n\\t\\t\\t\\t\\t@click=\\\"onActionClick(action)\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<NcLoadingIcon v-if=\\\"loading === action.id\\\" :size=\\\"18\\\" />\\n\\t\\t\\t\\t\\t\\t<CustomSvgIconRender v-else :svg=\\\"action.iconSvgInline([source], currentView)\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t\\t{{ action.displayName([source], currentView) }}\\n\\t\\t\\t\\t</NcActionButton>\\n\\t\\t\\t</NcActions>\\n\\t\\t</td>\\n\\n\\t\\t<!-- Size -->\\n\\t\\t<td v-if=\\\"isSizeAvailable\\\"\\n\\t\\t\\t:style=\\\"{ opacity: sizeOpacity }\\\"\\n\\t\\t\\tclass=\\\"files-list__row-size\\\"\\n\\t\\t\\t@click=\\\"openDetailsIfAvailable\\\">\\n\\t\\t\\t<span>{{ size }}</span>\\n\\t\\t</td>\\n\\n\\t\\t<!-- View columns -->\\n\\t\\t<td v-for=\\\"column in columns\\\"\\n\\t\\t\\t:key=\\\"column.id\\\"\\n\\t\\t\\t:class=\\\"`files-list__row-${currentView?.id}-${column.id}`\\\"\\n\\t\\t\\tclass=\\\"files-list__row-column-custom\\\"\\n\\t\\t\\t@click=\\\"openDetailsIfAvailable\\\">\\n\\t\\t\\t<CustomElementRender v-if=\\\"active\\\"\\n\\t\\t\\t\\t:current-view=\\\"currentView\\\"\\n\\t\\t\\t\\t:render=\\\"column.render\\\"\\n\\t\\t\\t\\t:source=\\\"source\\\" />\\n\\t\\t</td>\\n\\t</Fragment>\\n</template>\\n\\n<script lang='ts'>\\nimport { debounce } from 'debounce'\\nimport { formatFileSize } from '@nextcloud/files'\\nimport { Fragment } from 'vue-frag'\\nimport { join, extname } from 'path'\\nimport { showError, showSuccess } from '@nextcloud/dialogs'\\nimport { translate } from '@nextcloud/l10n'\\nimport CancelablePromise from 'cancelable-promise'\\nimport FileIcon from 'vue-material-design-icons/File.vue'\\nimport FolderIcon from 'vue-material-design-icons/Folder.vue'\\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\\nimport StarIcon from 'vue-material-design-icons/Star.vue'\\nimport Vue from 'vue'\\n\\nimport { ACTION_DETAILS } from '../actions/sidebarAction.ts'\\nimport { getFileActions } from '../services/FileAction.ts'\\nimport { hashCode } from '../utils/hashUtils.ts'\\nimport { isCachedPreview } from '../services/PreviewService.ts'\\nimport { useActionsMenuStore } from '../store/actionsmenu.ts'\\nimport { useFilesStore } from '../store/files.ts'\\nimport { useKeyboardStore } from '../store/keyboard.ts'\\nimport { useSelectionStore } from '../store/selection.ts'\\nimport { useUserConfigStore } from '../store/userconfig.ts'\\nimport CustomElementRender from './CustomElementRender.vue'\\nimport CustomSvgIconRender from './CustomSvgIconRender.vue'\\nimport logger from '../logger.js'\\n\\n// The registered actions list\\nconst actions = getFileActions()\\n\\nexport default Vue.extend({\\n\\tname: 'FileEntry',\\n\\n\\tcomponents: {\\n\\t\\tCustomElementRender,\\n\\t\\tCustomSvgIconRender,\\n\\t\\tFileIcon,\\n\\t\\tFolderIcon,\\n\\t\\tFragment,\\n\\t\\tNcActionButton,\\n\\t\\tNcActions,\\n\\t\\tNcCheckboxRadioSwitch,\\n\\t\\tNcLoadingIcon,\\n\\t\\tStarIcon,\\n\\t},\\n\\n\\tprops: {\\n\\t\\tactive: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\tisSizeAvailable: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\tsource: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tindex: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tnodes: {\\n\\t\\t\\ttype: Array,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tfilesListWidth: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\tdefault: 0,\\n\\t\\t},\\n\\t},\\n\\n\\tsetup() {\\n\\t\\tconst actionsMenuStore = useActionsMenuStore()\\n\\t\\tconst filesStore = useFilesStore()\\n\\t\\tconst keyboardStore = useKeyboardStore()\\n\\t\\tconst selectionStore = useSelectionStore()\\n\\t\\tconst userConfigStore = useUserConfigStore()\\n\\t\\treturn {\\n\\t\\t\\tactionsMenuStore,\\n\\t\\t\\tfilesStore,\\n\\t\\t\\tkeyboardStore,\\n\\t\\t\\tselectionStore,\\n\\t\\t\\tuserConfigStore,\\n\\t\\t}\\n\\t},\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tbackgroundFailed: false,\\n\\t\\t\\tbackgroundImage: '',\\n\\t\\t\\tboundariesElement: document.querySelector('.app-content > .files-list'),\\n\\t\\t\\tloading: '',\\n\\t\\t}\\n\\t},\\n\\n\\tcomputed: {\\n\\t\\tuserConfig() {\\n\\t\\t\\treturn this.userConfigStore.userConfig\\n\\t\\t},\\n\\n\\t\\tcurrentView() {\\n\\t\\t\\treturn this.$navigation.active\\n\\t\\t},\\n\\t\\tcolumns() {\\n\\t\\t\\t// Hide columns if the list is too small\\n\\t\\t\\tif (this.filesListWidth < 512) {\\n\\t\\t\\t\\treturn []\\n\\t\\t\\t}\\n\\t\\t\\treturn this.currentView?.columns || []\\n\\t\\t},\\n\\n\\t\\tdir() {\\n\\t\\t\\t// Remove any trailing slash but leave root slash\\n\\t\\t\\treturn (this.$route?.query?.dir || '/').replace(/^(.+)\\\\/$/, '$1')\\n\\t\\t},\\n\\t\\tfileid() {\\n\\t\\t\\treturn this.source?.fileid?.toString?.()\\n\\t\\t},\\n\\n\\t\\textension() {\\n\\t\\t\\tif (this.source.attributes?.displayName) {\\n\\t\\t\\t\\treturn extname(this.source.attributes.displayName)\\n\\t\\t\\t}\\n\\t\\t\\treturn this.source.extension || ''\\n\\t\\t},\\n\\t\\tdisplayName() {\\n\\t\\t\\tconst ext = this.extension\\n\\t\\t\\tconst name = (this.source.attributes.displayName\\n\\t\\t\\t\\t|| this.source.basename)\\n\\n\\t\\t\\t// Strip extension from name if defined\\n\\t\\t\\treturn !ext ? name : name.slice(0, 0 - ext.length)\\n\\t\\t},\\n\\n\\t\\tsize() {\\n\\t\\t\\tconst size = parseInt(this.source.size, 10) || 0\\n\\t\\t\\tif (typeof size !== 'number' || size < 0) {\\n\\t\\t\\t\\treturn this.t('files', 'Pending')\\n\\t\\t\\t}\\n\\t\\t\\treturn formatFileSize(size, true, true).replace('iB', 'B')\\n\\t\\t},\\n\\t\\tsizeOpacity() {\\n\\t\\t\\tconst size = parseInt(this.source.size, 10) || 0\\n\\t\\t\\tif (!size || size < 0) {\\n\\t\\t\\t\\treturn 1\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Whatever theme is active, the contrast will pass WCAG AA\\n\\t\\t\\t// with color main text over main background and an opacity of 0.7\\n\\t\\t\\tconst minOpacity = 0.7\\n\\t\\t\\tconst maxOpacitySize = 10 * 1024 * 1024\\n\\t\\t\\treturn minOpacity + (1 - minOpacity) * Math.pow((this.source.size / maxOpacitySize), 2)\\n\\t\\t},\\n\\n\\t\\tlinkAttrs() {\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\tconst action = this.enabledDefaultActions[0]\\n\\t\\t\\t\\tconst displayName = action.displayName([this.source], this.currentView)\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tclass: ['files-list__row-default-action', 'files-list__row-action-' + action.id],\\n\\t\\t\\t\\t\\trole: 'button',\\n\\t\\t\\t\\t\\ttitle: displayName,\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t/**\\n\\t\\t\\t * A folder would never reach this point\\n\\t\\t\\t * as it has open-folder as default action.\\n\\t\\t\\t * Just to be safe, let's handle it.\\n\\t\\t\\t */\\n\\t\\t\\tif (this.source.type === 'folder') {\\n\\t\\t\\t\\tconst to = { ...this.$route, query: { dir: join(this.dir, this.source.basename) } }\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tis: 'router-link',\\n\\t\\t\\t\\t\\ttitle: this.t('files', 'Open folder {name}', { name: this.displayName }),\\n\\t\\t\\t\\t\\tto,\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn {\\n\\t\\t\\t\\thref: this.source.source,\\n\\t\\t\\t\\t// TODO: Use first action title ?\\n\\t\\t\\t\\ttitle: this.t('files', 'Download file {name}', { name: this.displayName }),\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tselectedFiles() {\\n\\t\\t\\treturn this.selectionStore.selected\\n\\t\\t},\\n\\t\\tisSelected() {\\n\\t\\t\\treturn this.selectedFiles.includes(this.source?.fileid?.toString?.())\\n\\t\\t},\\n\\n\\t\\tcropPreviews() {\\n\\t\\t\\treturn this.userConfig.crop_image_previews\\n\\t\\t},\\n\\t\\tpreviewUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst url = new URL(window.location.origin + this.source.attributes.previewUrl)\\n\\t\\t\\t\\t// Request tiny previews\\n\\t\\t\\t\\turl.searchParams.set('x', '32')\\n\\t\\t\\t\\turl.searchParams.set('y', '32')\\n\\t\\t\\t\\t// Handle cropping\\n\\t\\t\\t\\turl.searchParams.set('a', this.cropPreviews === true ? '0' : '1')\\n\\t\\t\\t\\treturn url.href\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\treturn null\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tmimeIconUrl() {\\n\\t\\t\\tconst mimeType = this.source.mime || 'application/octet-stream'\\n\\t\\t\\tconst mimeIconUrl = window.OC?.MimeType?.getIconUrl?.(mimeType)\\n\\t\\t\\tif (mimeIconUrl) {\\n\\t\\t\\t\\treturn `url(${mimeIconUrl})`\\n\\t\\t\\t}\\n\\t\\t\\treturn ''\\n\\t\\t},\\n\\n\\t\\tenabledActions() {\\n\\t\\t\\treturn actions\\n\\t\\t\\t\\t.filter(action => !action.enabled || action.enabled([this.source], this.currentView))\\n\\t\\t\\t\\t.sort((a, b) => (a.order || 0) - (b.order || 0))\\n\\t\\t},\\n\\t\\tenabledInlineActions() {\\n\\t\\t\\tif (this.filesListWidth < 768) {\\n\\t\\t\\t\\treturn []\\n\\t\\t\\t}\\n\\t\\t\\treturn this.enabledActions.filter(action => action?.inline?.(this.source, this.currentView))\\n\\t\\t},\\n\\t\\tenabledMenuActions() {\\n\\t\\t\\tif (this.filesListWidth < 768) {\\n\\t\\t\\t\\t// If we have a default action, do not render the first one\\n\\t\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\t\\treturn this.enabledActions.slice(1)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn this.enabledActions\\n\\t\\t\\t}\\n\\n\\t\\t\\tconst actions = [\\n\\t\\t\\t\\t...this.enabledInlineActions,\\n\\t\\t\\t\\t...this.enabledActions.filter(action => !action.inline),\\n\\t\\t\\t]\\n\\n\\t\\t\\t// If we have a default action, do not render the first one\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\treturn actions.slice(1)\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn actions\\n\\t\\t},\\n\\t\\tenabledDefaultActions() {\\n\\t\\t\\treturn [\\n\\t\\t\\t\\t...this.enabledActions.filter(action => action.default),\\n\\t\\t\\t]\\n\\t\\t},\\n\\t\\topenedMenu: {\\n\\t\\t\\tget() {\\n\\t\\t\\t\\treturn this.actionsMenuStore.opened === this.uniqueId\\n\\t\\t\\t},\\n\\t\\t\\tset(opened) {\\n\\t\\t\\t\\tthis.actionsMenuStore.opened = opened ? this.uniqueId : null\\n\\t\\t\\t},\\n\\t\\t},\\n\\n\\t\\tuniqueId() {\\n\\t\\t\\treturn hashCode(this.source.source)\\n\\t\\t},\\n\\n\\t\\tisFavorite() {\\n\\t\\t\\treturn this.source.attributes.favorite === 1\\n\\t\\t},\\n\\t},\\n\\n\\twatch: {\\n\\t\\tactive(active, before) {\\n\\t\\t\\tif (active === false && before === true) {\\n\\t\\t\\t\\tthis.resetState()\\n\\n\\t\\t\\t\\t// When the row is not active anymore\\n\\t\\t\\t\\t// remove the display from the row to prevent\\n\\t\\t\\t\\t// keyboard interaction with it.\\n\\t\\t\\t\\tthis.$el.parentNode.style.display = 'none'\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Restore default tabindex\\n\\t\\t\\tthis.$el.parentNode.style.display = ''\\n\\t\\t},\\n\\n\\t\\t/**\\n\\t\\t * When the source changes, reset the preview\\n\\t\\t * and fetch the new one.\\n\\t\\t */\\n\\t\\tpreviewUrl() {\\n\\t\\t\\tthis.clearImg()\\n\\t\\t\\tthis.debounceIfNotCached()\\n\\t\\t},\\n\\t},\\n\\n\\t/**\\n\\t * The row is mounted once and reused as we scroll.\\n\\t */\\n\\tmounted() {\\n\\t\\t// ⚠ Init the debounce function on mount and\\n\\t\\t// not when the module is imported to\\n\\t\\t// avoid sharing between recycled components\\n\\t\\tthis.debounceGetPreview = debounce(function() {\\n\\t\\t\\tthis.fetchAndApplyPreview()\\n\\t\\t}, 150, false)\\n\\n\\t\\t// Fetch the preview on init\\n\\t\\tthis.debounceIfNotCached()\\n\\n\\t\\t// Right click watcher on tr\\n\\t\\tthis.$el.parentNode?.addEventListener?.('contextmenu', this.onRightClick)\\n\\t},\\n\\n\\tbeforeDestroy() {\\n\\t\\tthis.resetState()\\n\\t},\\n\\n\\tmethods: {\\n\\t\\tasync debounceIfNotCached() {\\n\\t\\t\\tif (!this.previewUrl) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Check if we already have this preview cached\\n\\t\\t\\tconst isCached = await isCachedPreview(this.previewUrl)\\n\\t\\t\\tif (isCached) {\\n\\t\\t\\t\\tthis.backgroundImage = `url(${this.previewUrl})`\\n\\t\\t\\t\\tthis.backgroundFailed = false\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// We don't have this preview cached or it expired, requesting it\\n\\t\\t\\tthis.debounceGetPreview()\\n\\t\\t},\\n\\n\\t\\tfetchAndApplyPreview() {\\n\\t\\t\\t// Ignore if no preview\\n\\t\\t\\tif (!this.previewUrl) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If any image is being processed, reset it\\n\\t\\t\\tif (this.previewPromise) {\\n\\t\\t\\t\\tthis.clearImg()\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Store the promise to be able to cancel it\\n\\t\\t\\tthis.previewPromise = new CancelablePromise((resolve, reject, onCancel) => {\\n\\t\\t\\t\\tconst img = new Image()\\n\\t\\t\\t\\t// If active, load the preview with higher priority\\n\\t\\t\\t\\timg.fetchpriority = this.active ? 'high' : 'auto'\\n\\t\\t\\t\\timg.onload = () => {\\n\\t\\t\\t\\t\\tthis.backgroundImage = `url(${this.previewUrl})`\\n\\t\\t\\t\\t\\tthis.backgroundFailed = false\\n\\t\\t\\t\\t\\tresolve(img)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\timg.onerror = () => {\\n\\t\\t\\t\\t\\tthis.backgroundFailed = true\\n\\t\\t\\t\\t\\treject(img)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\timg.src = this.previewUrl\\n\\n\\t\\t\\t\\t// Image loading has been canceled\\n\\t\\t\\t\\tonCancel(() => {\\n\\t\\t\\t\\t\\timg.onerror = null\\n\\t\\t\\t\\t\\timg.onload = null\\n\\t\\t\\t\\t\\timg.src = ''\\n\\t\\t\\t\\t})\\n\\t\\t\\t})\\n\\t\\t},\\n\\n\\t\\tresetState() {\\n\\t\\t\\t// Reset loading state\\n\\t\\t\\tthis.loading = ''\\n\\n\\t\\t\\t// Reset the preview\\n\\t\\t\\tthis.clearImg()\\n\\n\\t\\t\\t// Close menu\\n\\t\\t\\tthis.openedMenu = false\\n\\t\\t},\\n\\n\\t\\tclearImg() {\\n\\t\\t\\tthis.backgroundImage = ''\\n\\t\\t\\tthis.backgroundFailed = false\\n\\n\\t\\t\\tif (this.previewPromise) {\\n\\t\\t\\t\\tthis.previewPromise.cancel()\\n\\t\\t\\t\\tthis.previewPromise = null\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tasync onActionClick(action) {\\n\\t\\t\\tconst displayName = action.displayName([this.source], this.currentView)\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// Set the loading marker\\n\\t\\t\\t\\tthis.loading = action.id\\n\\t\\t\\t\\tVue.set(this.source, '_loading', true)\\n\\n\\t\\t\\t\\tconst success = await action.exec(this.source, this.currentView, this.dir)\\n\\n\\t\\t\\t\\t// If the action returns null, we stay silent\\n\\t\\t\\t\\tif (success === null) {\\n\\t\\t\\t\\t\\treturn\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tif (success) {\\n\\t\\t\\t\\t\\tshowSuccess(this.t('files', '\\\"{displayName}\\\" action executed successfully', { displayName }))\\n\\t\\t\\t\\t\\treturn\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tshowError(this.t('files', '\\\"{displayName}\\\" action failed', { displayName }))\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\tlogger.error('Error while executing action', { action, e })\\n\\t\\t\\t\\tshowError(this.t('files', '\\\"{displayName}\\\" action failed', { displayName }))\\n\\t\\t\\t} finally {\\n\\t\\t\\t\\t// Reset the loading marker\\n\\t\\t\\t\\tthis.loading = ''\\n\\t\\t\\t\\tVue.set(this.source, '_loading', false)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\texecDefaultAction(event) {\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tevent.stopPropagation()\\n\\t\\t\\t\\t// Execute the first default action if any\\n\\t\\t\\t\\tthis.enabledDefaultActions[0].exec(this.source, this.currentView, this.dir)\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\topenDetailsIfAvailable(event) {\\n\\t\\t\\tconst detailsAction = this.enabledDefaultActions.find(action => action.id === ACTION_DETAILS)\\n\\t\\t\\tif (detailsAction) {\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tevent.stopPropagation()\\n\\t\\t\\t\\tdetailsAction.exec(this.source, this.currentView)\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tonSelectionChange(selection) {\\n\\t\\t\\tconst newSelectedIndex = this.index\\n\\t\\t\\tconst lastSelectedIndex = this.selectionStore.lastSelectedIndex\\n\\n\\t\\t\\t// Get the last selected and select all files in between\\n\\t\\t\\tif (this.keyboardStore?.shiftKey && lastSelectedIndex !== null) {\\n\\t\\t\\t\\tconst isAlreadySelected = this.selectedFiles.includes(this.fileid)\\n\\n\\t\\t\\t\\tconst start = Math.min(newSelectedIndex, lastSelectedIndex)\\n\\t\\t\\t\\tconst end = Math.max(lastSelectedIndex, newSelectedIndex)\\n\\n\\t\\t\\t\\tconst lastSelection = this.selectionStore.lastSelection\\n\\t\\t\\t\\tconst filesToSelect = this.nodes\\n\\t\\t\\t\\t\\t.map(file => file.fileid?.toString?.())\\n\\t\\t\\t\\t\\t.slice(start, end + 1)\\n\\n\\t\\t\\t\\t// If already selected, update the new selection _without_ the current file\\n\\t\\t\\t\\tconst selection = [...lastSelection, ...filesToSelect]\\n\\t\\t\\t\\t\\t.filter(fileId => !isAlreadySelected || fileId !== this.fileid)\\n\\n\\t\\t\\t\\tlogger.debug('Shift key pressed, selecting all files in between', { start, end, filesToSelect, isAlreadySelected })\\n\\t\\t\\t\\t// Keep previous lastSelectedIndex to be use for further shift selections\\n\\t\\t\\t\\tthis.selectionStore.set(selection)\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\tlogger.debug('Updating selection', { selection })\\n\\t\\t\\tthis.selectionStore.set(selection)\\n\\t\\t\\tthis.selectionStore.setLastIndex(newSelectedIndex)\\n\\t\\t},\\n\\n\\t\\t// Open the actions menu on right click\\n\\t\\tonRightClick(event) {\\n\\t\\t\\t// If already opened, fallback to default browser\\n\\t\\t\\tif (this.openedMenu) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If the clicked row is in the selection, open global menu\\n\\t\\t\\tconst isMoreThanOneSelected = this.selectedFiles.length > 1\\n\\t\\t\\tthis.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId\\n\\n\\t\\t\\t// Prevent any browser defaults\\n\\t\\t\\tevent.preventDefault()\\n\\t\\t\\tevent.stopPropagation()\\n\\t\\t},\\n\\n\\t\\tt: translate,\\n\\t\\tformatFileSize,\\n\\t},\\n})\\n</script>\\n\\n<style scoped lang='scss'>\\n/* Hover effect on tbody lines only */\\ntr {\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n/* Preview not loaded animation effect */\\n.files-list__row-icon-preview:not([style*='background']) {\\n background: var(--color-loading-dark);\\n\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n}\\n</style>\\n\\n<style>\\n/* @keyframes preview-gradient-fade {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.5;\\n }\\n 100% {\\n opacity: 1;\\n }\\n} */\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"00434e4baa0d8e7b79f1\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2181;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2181: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(60668)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getCurrentDirectory","_OCA","_OCA$Files","_OCA$Files$App","_OCA$Files$App$curren","currentDirInfo","OCA","Files","App","currentFileList","dirInfo","path","name","concat","replace","previewWidth","inheritAttrs","props","basename","type","String","required","checked","Boolean","default","fileid","Number","filename","previewUrl","hasPreview","mime","ratio","data","failedPreview","computed","nameWithoutExt","indexOf","split","slice","join","id","realPreviewUrl","mimeIcon","getCurrentUser","generateUrl","document","getElementById","value","pathSections","startsWith","relativePath","forEach","section","encodeURIComponent","encodeFilePath","OC","MimeType","getIconUrl","methods","onCheck","$emit","onFailure","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_c","_self","staticClass","attrs","domProps","on","_v","class","_s","components","NcEmptyContent","NcModal","TemplatePreview","logger","Object","loading","opened","provider","emptyTemplate","_this$provider","_this$provider2","t","mimetypes","selectedTemplate","templates","find","template","style","width","margin","border","Math","round","fetchedProvider","async","axios","generateOcsUrl","ocs","getTemplates","app","label","Error","length","onSubmit","close","currentDirectory","fileList","_this$provider3","_this$provider4","debug","extension","_this$selectedTemplat","_this$selectedTemplat2","fileInfo","filePath","templatePath","templateType","createFromTemplate","normalize","addAndFetchFileInfo","then","status","model","FileInfoModel","filesClient","fileAction","fileActions","getDefaultFileAction","PERMISSION_ALL","action","$file","findFileEl","dir","fileInfoModel","error","console","showError","$event","preventDefault","stopPropagation","apply","arguments","_b","_l","key","_e","getLoggerBuilder","setApp","detectUser","build","Vue","n","TemplatePickerRoot","createElement","body","appendChild","loadState","templatesPath","TemplatePicker","TemplatePickerView","propsData","$mount","window","addEventListener","initTemplatesPlugin","attach","menu","addMenuEntry","displayName","templateName","iconClass","fileType","actionLabel","actionHandler","initTemplatesFolder","removeMenuEntry","Plugins","register","index","newTemplatePlugin","open","response","copySystemTemplates","changeDirectory","template_path","FilesPlugin","subscribe","_ref","query","setFilter","FileAction","constructor","validateAction","_action","iconSvgInline","enabled","exec","execBatch","order","inline","renderInline","registerFileAction","_nc_fileactions","search","push","getFileActions","nodes","view","TrashCan","map","node","permissions","every","permission","Permission","source","emit","Promise","all","files","attributes","Folder","FileType","OCP","Router","goToRoute","ACTION_DETAILS","InformationSvg","_window","_window$OCA","_window$OCA$Files","Sidebar","some","_node$root","root","_window2","_window2$OCA","_window2$OCA$Files","_window2$OCA$Files$Si","_window2$OCA$Files$Si2","call","useFilesStore","fileStore","defineStore","state","roots","getters","getNode","getNodes","ids","filter","getRoot","service","actions","updateNodes","reduce","acc","deleteNodes","setRoot","onDeletedNode","store","_initialized","usePathsStore","pathsStore","paths","getPath","addPath","payload","useSelectionStore","selected","lastSelection","lastSelectedIndex","set","selection","undefined","setLastIndex","reset","viewConfig","useViewConfigStore","getConfig","onUpdate","setSortingBy","update","toggleSortingDirection","newDirection","sorting_direction","viewConfigStore","Home","NcBreadcrumbs","NcBreadcrumb","setup","filesStore","currentView","$navigation","active","dirs","sections","to","$route","exact","getDirDisplayName","getNodeFromId","getFileIdFromPath","_this$currentView","_node$attributes","fileId","onClick","_to$query","ariaLabel","_section$to","_section$to$query","_setupProxy","nativeOn","scopedSlots","_u","fn","proxy","useActionsMenuStore","userConfig","show_hidden","crop_image_previews","useUserConfigStore","userConfigStore","render","Function","element","watch","$el","replaceWith","mounted","svg","innerHTML","sanitize","CustomElementRender","CustomSvgIconRender","FileIcon","FolderIcon","Fragment","NcActionButton","NcActions","NcCheckboxRadioSwitch","NcLoadingIcon","StarIcon","isSizeAvailable","Array","filesListWidth","actionsMenuStore","keyboardStore","altKey","ctrlKey","metaKey","shiftKey","onEvent","event","useKeyboardStore","selectionStore","backgroundFailed","backgroundImage","boundariesElement","querySelector","columns","_this$$route","_this$$route$query","_this$source","_this$source$fileid","_this$source$fileid$t","toString","_this$source$attribut","extname","ext","size","parseInt","formatFileSize","sizeOpacity","pow","linkAttrs","enabledDefaultActions","role","title","is","href","selectedFiles","isSelected","_this$source2","_this$source2$fileid","_this$source2$fileid$","includes","cropPreviews","url","URL","location","origin","searchParams","e","mimeIconUrl","_window$OC","_window$OC$MimeType","_window$OC$MimeType$g","mimeType","enabledActions","sort","a","b","enabledInlineActions","_action$inline","enabledMenuActions","openedMenu","get","uniqueId","charCodeAt","isFavorite","favorite","before","resetState","parentNode","display","clearImg","debounceIfNotCached","_this$$el$parentNode","_this$$el$parentNode$","debounceGetPreview","debounce","fetchAndApplyPreview","onRightClick","beforeDestroy","caches","cache","match","previewPromise","CancelablePromise","resolve","reject","onCancel","img","Image","fetchpriority","onload","onerror","src","cancel","success","showSuccess","execDefaultAction","openDetailsIfAvailable","detailsAction","onSelectionChange","_this$keyboardStore","newSelectedIndex","isAlreadySelected","start","min","end","max","filesToSelect","file","_file$fileid","_file$fileid$toString","isMoreThanOneSelected","translate","ref","_loading","onActionClick","opacity","column","_vm$currentView","summary","currentFolder","_this$currentView2","totalSize","_this$currentFolder","total","classForColumn","_column$summary","created","fileListEl","$resizeObserver","ResizeObserver","entries","target","contentRect","observe","disconnect","mixins","filesListWidthMixin","selectedNodes","areSomeNodesLoading","inlineActions","selectionIds","results","result","failedIds","mapState","sortingMode","_this$getConfig","sorting_mode","defaultSortKey","isAscSorting","_this$getConfig2","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","mode","sortAriaLabel","direction","slot","FilesListHeaderButton","FilesListHeaderActions","selectAllBind","isNoneSelected","isSomeSelected","isAllSelected","indeterminate","onToggleAll","RecycleScroller","FileEntry","FilesListHeader","FilesListFooter","summaryFile","count","translatePlural","summaryFolder","slots","querySelectorAll","setAttribute","getFileId","item","caption","_defineProperty","isValidNavigation","isUniqueNavigation","_views","message","legacy","remove","findIndex","splice","views","setActive","_currentView","getContents","icon","isSvg","isValidColumn","emptyView","parent","sticky","expanded","BreadCrumbs","FilesListVirtual","NcAppContent","promise","dirContents","_this$currentFolder2","customColumn","_children","reverse","orderBy","v","isEmptyDir","isRefreshing","toPreviousDir","newView","oldView","fetchContent","newDir","oldDir","_this$$refs","_this$$refs$filesList","$refs","filesListVirtual","scrollTop","_this$currentView3","_this$promise","folder","contents","_vm$currentView2","directives","rawName","expression","ChartPie","NcAppNavigationItem","NcProgressBar","loadingStorageStats","storageStats","storageStatsTitle","_this$storageStats","_this$storageStats2","_this$storageStats3","usedQuotaByte","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","debounceUpdateStorageStats","updateStorageStats","throttle","_response$data","el","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcInputField","Setting","_window$OCA$Files$Set","_getCurrentUser","settings","Settings","webdavUrl","generateRemoteUrl","uid","webdavDocs","appPasswordUrl","webdavUrlCopied","setting","onClose","setConfig","select","navigator","clipboard","writeText","setTimeout","copyCloudId","Cog","NavigationQuota","NcAppNavigation","NcIconSvgWrapper","SettingsModal","Navigation","settingsOpened","currentViewId","_this$$route$params","params","parentViews","childViews","list","showView","onLegacyNavigationChanged","_window$OCA$Files$Sid","_window$OCA$Files$Sid2","newAppContent","classList","add","Util","History","parseUrlQuery","itemId","jQuery","trigger","Event","heading","headingEl","textContent","setPageHeading","silent","$router","onToggleExpand","isExpanded","_this$viewConfigStore","generateToNavigation","openSettings","onSettingsClose","child","registerLegacyView","classes","router","base","linkActiveClass","routes","alias","stringifyQuery","queryString","beforeEach","from","next","_window$OCP$Files","_window$OCP$Files$Nav","_views$find","_from$query","_to$query2","_to$query3","_to$params","_router","goTo","assign","PiniaVuePlugin","pinia","createPinia","NavigationService","_settings","_name","_el","_open","_close","NavigationView","FilesListView","legacyViews","values","sublist","subview","processLegacyFilesViews","noRewrite","registration","serviceWorker","scope","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","promises","u","g","globalThis","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","clearTimeout","doneFns","removeChild","bind","head","Symbol","toStringTag","nmd","children","scriptUrl","importScripts","currentScript","p","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files-main.js?v=fd49e98cd6c83ed83839","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/utils/davUtils.js","webpack:///nextcloud/apps/files/src/utils/fileUtils.js","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?9ec4","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?81db","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?c414","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/services/Templates.js","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?9ada","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?afd8","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?1f7b","webpack:///nextcloud/apps/files/src/templates.js","webpack:///nextcloud/apps/files/src/legacy/filelistSearch.js","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/services/FileAction.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?e906","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?e59f","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?4ee7","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?2c34","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?6bea","webpack://nextcloud/./apps/files/src/components/CustomSvgIconRender.vue?5641","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack:///nextcloud/apps/files/src/services/PreviewService.ts","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?104d","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?bb70","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListFooter.vue?b2bb","webpack://nextcloud/./apps/files/src/components/FilesListFooter.vue?80db","webpack:///nextcloud/apps/files/src/mixins/filesListWidth.ts","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListHeaderActions.vue?993d","webpack://nextcloud/./apps/files/src/components/FilesListHeaderActions.vue?9823","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListHeaderButton.vue?d900","webpack://nextcloud/./apps/files/src/components/FilesListHeaderButton.vue?5686","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?c7b4","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?4fce","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/apps/files/src/services/Navigation.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts&","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack://nextcloud/./apps/files/src/views/FilesList.vue?b2cc","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack://nextcloud/./apps/files/src/views/Navigation.vue?8122","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?b590","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Settings.vue?7e31","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/core/src/OCP/accessibility.js","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/views/Navigation.vue?f61c","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/legacy/navigationMapper.js","webpack:///nextcloud/apps/files/src/router/router.js","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport const getRootPath = function() {\n\tif (getCurrentUser()) {\n\t\treturn generateRemoteUrl(`dav/files/${getCurrentUser().uid}`)\n\t} else {\n\t\treturn generateRemoteUrl('webdav').replace('/remote.php', '/public.php')\n\t}\n}\n\nexport const isPublic = function() {\n\treturn !getCurrentUser()\n}\n\nexport const getToken = function() {\n\treturn document.getElementById('sharingToken') && document.getElementById('sharingToken').value\n}\n\n/**\n * Return the current directory, fallback to root\n *\n * @return {string}\n */\nexport const getCurrentDirectory = function() {\n\tconst currentDirInfo = OCA?.Files?.App?.currentFileList?.dirInfo\n\t\t|| { path: '/', name: '' }\n\n\t// Make sure we don't have double slashes\n\treturn `${currentDirInfo.path}/${currentDirInfo.name}`.replace(/\\/\\//gi, '/')\n}\n","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst encodeFilePath = function(path) {\n\tconst pathSections = (path.startsWith('/') ? path : `/${path}`).split('/')\n\tlet relativePath = ''\n\tpathSections.forEach((section) => {\n\t\tif (section !== '') {\n\t\t\trelativePath += '/' + encodeURIComponent(section)\n\t\t}\n\t})\n\treturn relativePath\n}\n\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nconst extractFilePaths = function(path) {\n\tconst pathSections = path.split('/')\n\tconst fileName = pathSections[pathSections.length - 1]\n\tconst dirPath = pathSections.slice(0, pathSections.length - 1).join('/')\n\treturn [dirPath, fileName]\n}\n\nexport { encodeFilePath, extractFilePaths }\n","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"template-picker__item\">\n\t\t<input :id=\"id\"\n\t\t\t:checked=\"checked\"\n\t\t\ttype=\"radio\"\n\t\t\tclass=\"radio\"\n\t\t\tname=\"template-picker\"\n\t\t\t@change=\"onCheck\">\n\n\t\t<label :for=\"id\" class=\"template-picker__label\">\n\t\t\t<div class=\"template-picker__preview\"\n\t\t\t\t:class=\"failedPreview ? 'template-picker__preview--failed' : ''\">\n\t\t\t\t<img class=\"template-picker__image\"\n\t\t\t\t\t:src=\"realPreviewUrl\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tdraggable=\"false\"\n\t\t\t\t\t@error=\"onFailure\">\n\t\t\t</div>\n\n\t\t\t<span class=\"template-picker__title\">\n\t\t\t\t{{ nameWithoutExt }}\n\t\t\t</span>\n\t\t</label>\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { encodeFilePath } from '../utils/fileUtils.js'\nimport { getToken, isPublic } from '../utils/davUtils.js'\n\n// preview width generation\nconst previewWidth = 256\n\nexport default {\n\tname: 'TemplatePreview',\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tbasename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tfileid: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tfilename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpreviewUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\thasPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmime: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tratio: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfailedPreview: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename\n\t\t},\n\n\t\tid() {\n\t\t\treturn `template-picker-${this.fileid}`\n\t\t},\n\n\t\trealPreviewUrl() {\n\t\t\t// If original preview failed, fallback to mime icon\n\t\t\tif (this.failedPreview && this.mimeIcon) {\n\t\t\t\treturn this.mimeIcon\n\t\t\t}\n\n\t\t\tif (this.previewUrl) {\n\t\t\t\treturn this.previewUrl\n\t\t\t}\n\t\t\t// TODO: find a nicer standard way of doing this?\n\t\t\tif (isPublic()) {\n\t\t\t\treturn generateUrl(`/apps/files_sharing/publicpreview/${getToken()}?fileId=${this.fileid}&file=${encodeFilePath(this.filename)}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t\t}\n\t\t\treturn generateUrl(`/core/preview?fileId=${this.fileid}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t},\n\n\t\tmimeIcon() {\n\t\t\treturn OC.MimeType.getIconUrl(this.mime)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonCheck() {\n\t\t\tthis.$emit('check', this.fileid)\n\t\t},\n\t\tonFailure() {\n\t\t\tthis.failedPreview = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePreview.vue?vue&type=template&id=5b09ec60&scoped=true&\"\nimport script from \"./TemplatePreview.vue?vue&type=script&lang=js&\"\nexport * from \"./TemplatePreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TemplatePreview.vue?vue&type=style&index=0&id=5b09ec60&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b09ec60\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"template-picker__item\"},[_c('input',{staticClass:\"radio\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"template-picker\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onCheck}}),_vm._v(\" \"),_c('label',{staticClass:\"template-picker__label\",attrs:{\"for\":_vm.id}},[_c('div',{staticClass:\"template-picker__preview\",class:_vm.failedPreview ? 'template-picker__preview--failed' : ''},[_c('img',{staticClass:\"template-picker__image\",attrs:{\"src\":_vm.realPreviewUrl,\"alt\":\"\",\"draggable\":\"false\"},on:{\"error\":_vm.onFailure}})]),_vm._v(\" \"),_c('span',{staticClass:\"template-picker__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.nameWithoutExt)+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcModal v-if=\"opened\"\n\t\t:clear-view-delay=\"-1\"\n\t\tclass=\"templates-picker\"\n\t\tsize=\"large\"\n\t\t@close=\"close\">\n\t\t<form class=\"templates-picker__form\"\n\t\t\t:style=\"style\"\n\t\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t\t<h2>{{ t('files', 'Pick a template for {name}', { name: nameWithoutExt }) }}</h2>\n\n\t\t\t<!-- Templates list -->\n\t\t\t<ul class=\"templates-picker__list\">\n\t\t\t\t<TemplatePreview v-bind=\"emptyTemplate\"\n\t\t\t\t\t:checked=\"checked === emptyTemplate.fileid\"\n\t\t\t\t\t@check=\"onCheck\" />\n\n\t\t\t\t<TemplatePreview v-for=\"template in provider.templates\"\n\t\t\t\t\t:key=\"template.fileid\"\n\t\t\t\t\tv-bind=\"template\"\n\t\t\t\t\t:checked=\"checked === template.fileid\"\n\t\t\t\t\t:ratio=\"provider.ratio\"\n\t\t\t\t\t@check=\"onCheck\" />\n\t\t\t</ul>\n\n\t\t\t<!-- Cancel and submit -->\n\t\t\t<div class=\"templates-picker__buttons\">\n\t\t\t\t<input type=\"submit\"\n\t\t\t\t\tclass=\"primary\"\n\t\t\t\t\t:value=\"t('files', 'Create')\"\n\t\t\t\t\t:aria-label=\"t('files', 'Create a new file with the selected template')\">\n\t\t\t</div>\n\t\t</form>\n\n\t\t<NcEmptyContent v-if=\"loading\" class=\"templates-picker__loading\" icon=\"icon-loading\">\n\t\t\t{{ t('files', 'Creating file') }}\n\t\t</NcEmptyContent>\n\t</NcModal>\n</template>\n\n<script>\nimport { normalize } from 'path'\nimport { showError } from '@nextcloud/dialogs'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\n\nimport { getCurrentDirectory } from '../utils/davUtils.js'\nimport { createFromTemplate, getTemplates } from '../services/Templates.js'\nimport TemplatePreview from '../components/TemplatePreview.vue'\n\nconst border = 2\nconst margin = 8\n\nexport default {\n\tname: 'TemplatePicker',\n\n\tcomponents: {\n\t\tNcEmptyContent,\n\t\tNcModal,\n\t\tTemplatePreview,\n\t},\n\n\tprops: {\n\t\tlogger: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Check empty template by default\n\t\t\tchecked: -1,\n\t\t\tloading: false,\n\t\t\tname: null,\n\t\t\topened: false,\n\t\t\tprovider: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.name.indexOf('.') > -1\n\t\t\t\t? this.name.split('.').slice(0, -1).join('.')\n\t\t\t\t: this.name\n\t\t},\n\n\t\temptyTemplate() {\n\t\t\treturn {\n\t\t\t\tbasename: t('files', 'Blank'),\n\t\t\t\tfileid: -1,\n\t\t\t\tfilename: this.t('files', 'Blank'),\n\t\t\t\thasPreview: false,\n\t\t\t\tmime: this.provider?.mimetypes[0] || this.provider?.mimetypes,\n\t\t\t}\n\t\t},\n\n\t\tselectedTemplate() {\n\t\t\treturn this.provider.templates.find(template => template.fileid === this.checked)\n\t\t},\n\n\t\t/**\n\t\t * Style css vars bin,d\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tstyle() {\n\t\t\t// Fallback to 16:9 landscape ratio\n\t\t\tconst ratio = this.provider.ratio ? this.provider.ratio : 1.77\n\t\t\t// Landscape templates should be wider than tall ones\n\t\t\t// We fit 3 templates per row at max for landscape and 4 for portrait\n\t\t\tconst width = ratio > 1 ? margin * 30 : margin * 20\n\t\t\treturn {\n\t\t\t\t'--margin': margin + 'px',\n\t\t\t\t'--width': width + 'px',\n\t\t\t\t'--border': border + 'px',\n\t\t\t\t'--fullwidth': width + 2 * margin + 2 * border + 'px',\n\t\t\t\t'--height': this.provider.ratio ? Math.round(width / this.provider.ratio) + 'px' : null,\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Open the picker\n\t\t *\n\t\t * @param {string} name the file name to create\n\t\t * @param {object} provider the template provider picked\n\t\t */\n\t\tasync open(name, provider) {\n\n\t\t\tthis.checked = this.emptyTemplate.fileid\n\t\t\tthis.name = name\n\t\t\tthis.provider = provider\n\n\t\t\tconst templates = await getTemplates()\n\t\t\tconst fetchedProvider = templates.find((fetchedProvider) => fetchedProvider.app === provider.app && fetchedProvider.label === provider.label)\n\t\t\tif (fetchedProvider === null) {\n\t\t\t\tthrow new Error('Failed to match provider in results')\n\t\t\t}\n\t\t\tthis.provider = fetchedProvider\n\n\t\t\t// If there is no templates available, just create an empty file\n\t\t\tif (fetchedProvider.templates.length === 0) {\n\t\t\t\tthis.onSubmit()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Else, open the picker\n\t\t\tthis.opened = true\n\t\t},\n\n\t\t/**\n\t\t * Close the picker and reset variables\n\t\t */\n\t\tclose() {\n\t\t\tthis.checked = this.emptyTemplate.fileid\n\t\t\tthis.loading = false\n\t\t\tthis.name = null\n\t\t\tthis.opened = false\n\t\t\tthis.provider = null\n\t\t},\n\n\t\t/**\n\t\t * Manages the radio template picker change\n\t\t *\n\t\t * @param {number} fileid the selected template file id\n\t\t */\n\t\tonCheck(fileid) {\n\t\t\tthis.checked = fileid\n\t\t},\n\n\t\tasync onSubmit() {\n\t\t\tthis.loading = true\n\t\t\tconst currentDirectory = getCurrentDirectory()\n\t\t\tconst fileList = OCA?.Files?.App?.currentFileList\n\n\t\t\t// If the file doesn't have an extension, add the default one\n\t\t\tif (this.nameWithoutExt === this.name) {\n\t\t\t\tthis.logger.debug('Fixed invalid filename', { name: this.name, extension: this.provider?.extension })\n\t\t\t\tthis.name = this.name + this.provider?.extension\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst fileInfo = await createFromTemplate(\n\t\t\t\t\tnormalize(`${currentDirectory}/${this.name}`),\n\t\t\t\t\tthis.selectedTemplate?.filename,\n\t\t\t\t\tthis.selectedTemplate?.templateType,\n\t\t\t\t)\n\t\t\t\tthis.logger.debug('Created new file', fileInfo)\n\n\t\t\t\t// Fetch FileInfo and model\n\t\t\t\tconst data = await fileList?.addAndFetchFileInfo(this.name).then((status, data) => data)\n\t\t\t\tconst model = new OCA.Files.FileInfoModel(data, {\n\t\t\t\t\tfilesClient: fileList?.filesClient,\n\t\t\t\t})\n\n\t\t\t\t// Run default action\n\t\t\t\tconst fileAction = OCA.Files.fileActions.getDefaultFileAction(fileInfo.mime, 'file', OC.PERMISSION_ALL)\n\t\t\t\tif (fileAction) {\n\t\t\t\t\tfileAction.action(fileInfo.basename, {\n\t\t\t\t\t\t$file: fileList?.findFileEl(this.name),\n\t\t\t\t\t\tdir: currentDirectory,\n\t\t\t\t\t\tfileList,\n\t\t\t\t\t\tfileActions: fileList?.fileActions,\n\t\t\t\t\t\tfileInfoModel: model,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.close()\n\t\t\t} catch (error) {\n\t\t\t\tthis.logger.error('Error while creating the new file from template')\n\t\t\t\tconsole.error(error)\n\t\t\t\tshowError(this.t('files', 'Unable to create new file from template'))\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.templates-picker {\n\t&__form {\n\t\tpadding: calc(var(--margin) * 2);\n\t\t// Will be handled by the buttons\n\t\tpadding-bottom: 0;\n\n\t\th2 {\n\t\t\ttext-align: center;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: var(--margin) 0 calc(var(--margin) * 2);\n\t\t}\n\t}\n\n\t&__list {\n\t\tdisplay: grid;\n\t\tgrid-gap: calc(var(--margin) * 2);\n\t\tgrid-auto-columns: 1fr;\n\t\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\n\t\tmax-width: calc(var(--fullwidth) * 6);\n\t\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\n\t\t// Make sure all rows are the same height\n\t\tgrid-auto-rows: 1fr;\n\t\t// Center the columns set\n\t\tjustify-content: center;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\t\tpadding: calc(var(--margin) * 2) var(--margin);\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tbackground-image: linear-gradient(0, var(--gradient-main-background));\n\n\t\tbutton, input[type='submit'] {\n\t\t\theight: 44px;\n\t\t}\n\t}\n\n\t// Make sure we're relative for the loading emptycontent on top\n\t::v-deep .modal-container {\n\t\tposition: relative;\n\t}\n\n\t&__loading {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmargin: 0;\n\t\tbackground-color: var(--color-main-background-translucent);\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=js&\"","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nexport const getTemplates = async function() {\n\tconst response = await axios.get(generateOcsUrl('apps/files/api/v1/templates'))\n\treturn response.data.ocs.data\n}\n\n/**\n * Create a new file from a specified template\n *\n * @param {string} filePath The new file destination path\n * @param {string} templatePath The template source path\n * @param {string} templateType The template type e.g 'user'\n */\nexport const createFromTemplate = async function(filePath, templatePath, templateType) {\n\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {\n\t\tfilePath,\n\t\ttemplatePath,\n\t\ttemplateType,\n\t})\n\treturn response.data.ocs.data\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePicker.vue?vue&type=template&id=d46f1dc6&scoped=true&\"\nimport script from \"./TemplatePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./TemplatePicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TemplatePicker.vue?vue&type=style&index=0&id=d46f1dc6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d46f1dc6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.opened)?_c('NcModal',{staticClass:\"templates-picker\",attrs:{\"clear-view-delay\":-1,\"size\":\"large\"},on:{\"close\":_vm.close}},[_c('form',{staticClass:\"templates-picker__form\",style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onSubmit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('files', 'Pick a template for {name}', { name: _vm.nameWithoutExt })))]),_vm._v(\" \"),_c('ul',{staticClass:\"templates-picker__list\"},[_c('TemplatePreview',_vm._b({attrs:{\"checked\":_vm.checked === _vm.emptyTemplate.fileid},on:{\"check\":_vm.onCheck}},'TemplatePreview',_vm.emptyTemplate,false)),_vm._v(\" \"),_vm._l((_vm.provider.templates),function(template){return _c('TemplatePreview',_vm._b({key:template.fileid,attrs:{\"checked\":_vm.checked === template.fileid,\"ratio\":_vm.provider.ratio},on:{\"check\":_vm.onCheck}},'TemplatePreview',template,false))})],2),_vm._v(\" \"),_c('div',{staticClass:\"templates-picker__buttons\"},[_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"aria-label\":_vm.t('files', 'Create a new file with the selected template')},domProps:{\"value\":_vm.t('files', 'Create')}})])]),_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{staticClass:\"templates-picker__loading\",attrs:{\"icon\":\"icon-loading\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files', 'Creating file'))+\"\\n\\t\")]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentDirectory } from './utils/davUtils.js'\nimport axios from '@nextcloud/axios'\nimport Vue from 'vue'\n\nimport TemplatePickerView from './views/TemplatePicker.vue'\nimport { showError } from '@nextcloud/dialogs'\n\n// Set up logger\nconst logger = getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n\n// Add translates functions\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\n// Create document root\nconst TemplatePickerRoot = document.createElement('div')\nTemplatePickerRoot.id = 'template-picker'\ndocument.body.appendChild(TemplatePickerRoot)\n\n// Retrieve and init templates\nlet templates = loadState('files', 'templates', [])\nlet templatesPath = loadState('files', 'templates_path', false)\nlogger.debug('Templates providers', templates)\nlogger.debug('Templates folder', { templatesPath })\n\n// Init vue app\nconst View = Vue.extend(TemplatePickerView)\nconst TemplatePicker = new View({\n\tname: 'TemplatePicker',\n\tpropsData: {\n\t\tlogger,\n\t},\n})\nTemplatePicker.$mount('#template-picker')\n\n// Init template engine after load to make sure it's the last injected entry\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (!templatesPath) {\n\t\tlogger.debug('Templates folder not initialized')\n\t\tconst initTemplatesPlugin = {\n\t\t\tattach(menu) {\n\t\t\t\t// register the new menu entry\n\t\t\t\tmenu.addMenuEntry({\n\t\t\t\t\tid: 'template-init',\n\t\t\t\t\tdisplayName: t('files', 'Set up templates folder'),\n\t\t\t\t\ttemplateName: t('files', 'Templates'),\n\t\t\t\t\ticonClass: 'icon-template-add',\n\t\t\t\t\tfileType: 'file',\n\t\t\t\t\tactionLabel: t('files', 'Create new templates folder'),\n\t\t\t\t\tactionHandler(name) {\n\t\t\t\t\t\tinitTemplatesFolder(name)\n\t\t\t\t\t\tmenu.removeMenuEntry('template-init')\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t\tOC.Plugins.register('OCA.Files.NewFileMenu', initTemplatesPlugin)\n\t}\n})\n\n// Init template files menu\ntemplates.forEach((provider, index) => {\n\tconst newTemplatePlugin = {\n\t\tattach(menu) {\n\t\t\tconst fileList = menu.fileList\n\n\t\t\t// only attach to main file list, public view is not supported yet\n\t\t\tif (fileList.id !== 'files' && fileList.id !== 'files.public') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// register the new menu entry\n\t\t\tmenu.addMenuEntry({\n\t\t\t\tid: `template-new-${provider.app}-${index}`,\n\t\t\t\tdisplayName: provider.label,\n\t\t\t\ttemplateName: provider.label + provider.extension,\n\t\t\t\ticonClass: provider.iconClass || 'icon-file',\n\t\t\t\tfileType: 'file',\n\t\t\t\tactionLabel: provider.actionLabel,\n\t\t\t\tactionHandler(name) {\n\t\t\t\t\tTemplatePicker.open(name, provider)\n\t\t\t\t},\n\t\t\t})\n\t\t},\n\t}\n\tOC.Plugins.register('OCA.Files.NewFileMenu', newTemplatePlugin)\n})\n\n/**\n * Init the template directory\n *\n * @param {string} name the templates folder name\n */\nconst initTemplatesFolder = async function(name) {\n\tconst templatePath = (getCurrentDirectory() + `/${name}`).replace('//', '/')\n\ttry {\n\t\tlogger.debug('Initializing the templates directory', { templatePath })\n\t\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n\t\t\ttemplatePath,\n\t\t\tcopySystemTemplates: true,\n\t\t})\n\n\t\t// Go to template directory\n\t\tOCA.Files.App.currentFileList.changeDirectory(templatePath, true, true)\n\n\t\ttemplates = response.data.ocs.data.templates\n\t\ttemplatesPath = response.data.ocs.data.template_path\n\t} catch (error) {\n\t\tlogger.error('Unable to initialize the templates directory')\n\t\tshowError(t('files', 'Unable to initialize the templates directory'))\n\t}\n}\n","/*\n * @copyright Copyright (c) 2021 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\n\n(function() {\n\n\tconst FilesPlugin = {\n\t\tattach(fileList) {\n\t\t\tsubscribe('nextcloud:unified-search.search', ({ query }) => {\n\t\t\t\tfileList.setFilter(query)\n\t\t\t})\n\t\t\tsubscribe('nextcloud:unified-search.reset', () => {\n\t\t\t\tthis.query = null\n\t\t\t\tfileList.setFilter('')\n\t\t\t})\n\n\t\t},\n\t}\n\n\twindow.OC.Plugins.register('OCA.Files.FileList', FilesPlugin)\n\n})()\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport logger from '../logger';\nexport class FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get default() {\n return this._action.default;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== 'string') {\n throw new Error('Invalid id');\n }\n if (!action.displayName || typeof action.displayName !== 'function') {\n throw new Error('Invalid displayName function');\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== 'function') {\n throw new Error('Invalid iconSvgInline function');\n }\n if (!action.exec || typeof action.exec !== 'function') {\n throw new Error('Invalid exec function');\n }\n // Optional properties --------------------------------------------\n if ('enabled' in action && typeof action.enabled !== 'function') {\n throw new Error('Invalid enabled function');\n }\n if ('execBatch' in action && typeof action.execBatch !== 'function') {\n throw new Error('Invalid execBatch function');\n }\n if ('order' in action && typeof action.order !== 'number') {\n throw new Error('Invalid order');\n }\n if ('default' in action && typeof action.default !== 'boolean') {\n throw new Error('Invalid default');\n }\n if ('inline' in action && typeof action.inline !== 'function') {\n throw new Error('Invalid inline function');\n }\n if ('renderInline' in action && typeof action.renderInline !== 'function') {\n throw new Error('Invalid renderInline function');\n }\n }\n}\nexport const registerFileAction = function (action) {\n if (typeof window._nc_fileactions === 'undefined') {\n window._nc_fileactions = [];\n logger.debug('FileActions initialized');\n }\n // Check duplicates\n if (window._nc_fileactions.find(search => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nexport const getFileActions = function () {\n return window._nc_fileactions || [];\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport TrashCan from '@mdi/svg/svg/trash-can.svg?raw';\nimport { registerFileAction, FileAction } from '../services/FileAction.ts';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\nregisterFileAction(new FileAction({\n id: 'delete',\n displayName(nodes, view) {\n return view.id === 'trashbin'\n ? t('files_trashbin', 'Delete permanently')\n : t('files', 'Delete');\n },\n iconSvgInline: () => TrashCan,\n enabled(nodes) {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node) {\n const { origin } = new URL(node.source);\n const encodedSource = origin + encodePath(node.source.slice(origin.length));\n try {\n await axios.delete(encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n order: 100,\n}));\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, Node, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport Folder from '@mdi/svg/svg/folder.svg?raw';\nimport { join } from 'path';\nimport { registerFileAction, FileAction } from '../services/FileAction';\nregisterFileAction(new FileAction({\n id: 'open-folder',\n displayName(files) {\n // Only works on single node\n const displayName = files[0].attributes.displayName || files[0].basename;\n return t('files', 'Open folder {displayName}', { displayName });\n },\n iconSvgInline: () => Folder,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n return node.type === FileType.Folder\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.Folder) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, null, { dir: join(dir, node.basename) });\n return null;\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n // Main action if enabled, meaning folders only\n order: -100,\n default: true,\n}));\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport { registerFileAction, FileAction } from '../services/FileAction.ts';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nregisterFileAction(new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (files) => !!window?.OCA?.Files?.Sidebar\n && files.some(node => node.root?.startsWith('/files/')),\n async exec(node) {\n try {\n // TODO: migrate Sidebar to use a Node instead\n window?.OCA?.Files?.Sidebar?.open?.(node.path);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n default: true,\n order: -50,\n}));\n","import { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nexport const useFilesStore = function () {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by id\n */\n getNode: (state) => (id) => state.files[id],\n /**\n * Get a list of files or folders by their IDs\n * Does not return undefined values\n */\n getNodes: (state) => (ids) => ids\n .map(id => state.files[id])\n .filter(Boolean),\n /**\n * Get a file or folder by id\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.warn('Trying to update/set a node without fileid', node);\n return acc;\n }\n acc[node.fileid] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.fileid) {\n Vue.delete(this.files, node.fileid);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n }\n });\n const fileStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n // subscribe('files:node:created', fileStore.onCreatedNode)\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n // subscribe('files:node:moved', fileStore.onMovedNode)\n // subscribe('files:node:updated', fileStore.onUpdatedNode)\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","import { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nexport const usePathsStore = function () {\n const store = defineStore('paths', {\n state: () => ({\n paths: {}\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.fileid);\n },\n }\n });\n const pathsStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n // TODO: watch folders to update paths?\n // subscribe('files:node:created', pathsStore.onCreatedNode)\n // subscribe('files:node:deleted', pathsStore.onDeletedNode)\n // subscribe('files:node:moved', pathsStore.onMovedNode)\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport { FileId, SelectionStore } from '../types';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n */\n set(selection = []) {\n Vue.set(this, 'selected', selection);\n },\n /**\n * Set the last selected index\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n }\n }\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nconst viewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = function () {\n const store = defineStore('viewconfig', {\n state: () => ({\n viewConfig,\n }),\n getters: {\n getConfig: (state) => (view) => state.viewConfig[view] || {},\n },\n actions: {\n /**\n * Update the view config local store\n */\n onUpdate(view, key, value) {\n if (!this.viewConfig[view]) {\n Vue.set(this.viewConfig, view, {});\n }\n Vue.set(this.viewConfig[view], key, value);\n },\n /**\n * Update the view config local store AND on server side\n */\n async update(view, key, value) {\n axios.put(generateUrl(`/apps/files/api/v1/views/${view}/${key}`), {\n value,\n });\n emit('files:viewconfig:updated', { view, key, value });\n },\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n */\n setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n this.update(view, 'sorting_mode', key);\n this.update(view, 'sorting_direction', 'asc');\n },\n /**\n * Toggle the sorting direction\n */\n toggleSortingDirection(view = 'files') {\n const config = this.getConfig(view) || { 'sorting_direction': 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n this.update(view, 'sorting_direction', newDirection);\n }\n }\n });\n const viewConfigStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!viewConfigStore._initialized) {\n subscribe('files:viewconfig:updated', function ({ view, key, value }) {\n viewConfigStore.onUpdate(view, key, value);\n });\n viewConfigStore._initialized = true;\n }\n return viewConfigStore;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{attrs:{\"data-cy-files-content-breadcrumbs\":\"\"}},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"aria-label\":_vm.ariaLabel(section),\"title\":_vm.ariaLabel(section)},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('Home',{attrs:{\"size\":20}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcBreadcrumbs data-cy-files-content-breadcrumbs>\n\t\t<!-- Current path sections -->\n\t\t<NcBreadcrumb v-for=\"(section, index) in sections\"\n\t\t\t:key=\"section.dir\"\n\t\t\t:aria-label=\"ariaLabel(section)\"\n\t\t\t:title=\"ariaLabel(section)\"\n\t\t\tv-bind=\"section\"\n\t\t\t@click.native=\"onClick(section.to)\">\n\t\t\t<template v-if=\"index === 0\" #icon>\n\t\t\t\t<Home :size=\"20\" />\n\t\t\t</template>\n\t\t</NcBreadcrumb>\n\t</NcBreadcrumbs>\n</template>\n\n<script>\nimport { basename } from 'path'\nimport Home from 'vue-material-design-icons/Home.vue'\nimport NcBreadcrumb from '@nextcloud/vue/dist/Components/NcBreadcrumb.js'\nimport NcBreadcrumbs from '@nextcloud/vue/dist/Components/NcBreadcrumbs.js'\nimport Vue from 'vue'\n\nimport { useFilesStore } from '../store/files.ts'\nimport { usePathsStore } from '../store/paths.ts'\n\nexport default Vue.extend({\n\tname: 'BreadCrumbs',\n\n\tcomponents: {\n\t\tHome,\n\t\tNcBreadcrumbs,\n\t\tNcBreadcrumb,\n\t},\n\n\tprops: {\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '/',\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst filesStore = useFilesStore()\n\t\tconst pathsStore = usePathsStore()\n\t\treturn {\n\t\t\tfilesStore,\n\t\t\tpathsStore,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcurrentView() {\n\t\t\treturn this.$navigation.active\n\t\t},\n\n\t\tdirs() {\n\t\t\tconst cumulativePath = (acc) => (value) => (acc += `${value}/`)\n\t\t\t// Generate a cumulative path for each path segment: ['/', '/foo', '/foo/bar', ...] etc\n\t\t\tconst paths = this.path.split('/').filter(Boolean).map(cumulativePath('/'))\n\t\t\t// Strip away trailing slash\n\t\t\treturn ['/', ...paths.map(path => path.replace(/^(.+)\\/$/, '$1'))]\n\t\t},\n\n\t\tsections() {\n\t\t\treturn this.dirs.map(dir => {\n\t\t\t\tconst to = { ...this.$route, query: { dir } }\n\t\t\t\treturn {\n\t\t\t\t\tdir,\n\t\t\t\t\texact: true,\n\t\t\t\t\tname: this.getDirDisplayName(dir),\n\t\t\t\t\tto,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetNodeFromId(id) {\n\t\t\treturn this.filesStore.getNode(id)\n\t\t},\n\t\tgetFileIdFromPath(path) {\n\t\t\treturn this.pathsStore.getPath(this.currentView?.id, path)\n\t\t},\n\t\tgetDirDisplayName(path) {\n\t\t\tif (path === '/') {\n\t\t\t\treturn t('files', 'Home')\n\t\t\t}\n\n\t\t\tconst fileId = this.getFileIdFromPath(path)\n\t\t\tconst node = this.getNodeFromId(fileId)\n\t\t\treturn node?.attributes?.displayName || basename(path)\n\t\t},\n\n\t\tonClick(to) {\n\t\t\tif (to?.query?.dir === this.$route.query.dir) {\n\t\t\t\tthis.$emit('reload')\n\t\t\t}\n\t\t},\n\n\t\tariaLabel(section) {\n\t\t\tif (section?.to?.query?.dir === this.$route.query.dir) {\n\t\t\t\treturn t('files', 'Reload current directory')\n\t\t\t}\n\t\t\treturn t('files', 'Go to the \"{dir}\" directory', section)\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.breadcrumb {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\n\t::v-deep a {\n\t\tcursor: pointer !important;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=68b3b20b&scoped=true&\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=js&\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=68b3b20b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68b3b20b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RecycleScroller',{ref:\"recycleScroller\",staticClass:\"files-list\",attrs:{\"key-field\":\"source\",\"items\":_vm.nodes,\"item-size\":55,\"table-mode\":true,\"item-class\":\"files-list__row\",\"item-tag\":\"tr\",\"list-class\":\"files-list__body\",\"list-tag\":\"tbody\",\"role\":\"table\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ item, active, index }){return [_c('FileEntry',{attrs:{\"active\":active,\"index\":index,\"is-size-available\":_vm.isSizeAvailable,\"files-list-width\":_vm.filesListWidth,\"nodes\":_vm.nodes,\"source\":item}})]}},{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.currentView.caption || '')+\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListHeader',{attrs:{\"files-list-width\":_vm.filesListWidth,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"after\",fn:function(){return [_c('FilesListFooter',{attrs:{\"files-list-width\":_vm.filesListWidth,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n return str.split('').reduce(function (a, b) {\n a = ((a << 5) - a) + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nconst userConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n});\nexport const useUserConfigStore = function () {\n const store = defineStore('userconfig', {\n state: () => ({\n userConfig,\n }),\n actions: {\n /**\n * Update the user config local store\n */\n onUpdate(key, value) {\n Vue.set(this.userConfig, key, value);\n },\n /**\n * Update the user config local store AND on server side\n */\n async update(key, value) {\n await axios.put(generateUrl('/apps/files/api/v1/config/' + key), {\n value,\n });\n emit('files:config:updated', { key, value });\n }\n }\n });\n const userConfigStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!userConfigStore._initialized) {\n subscribe('files:config:updated', function ({ key, value }) {\n userConfigStore.onUpdate(key, value);\n });\n userConfigStore._initialized = true;\n }\n return userConfigStore;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<span />\n</template>\n\n<script>\n/**\n * This component is used to render custom\n * elements provided by an API. Vue doesn't allow\n * to directly render an HTMLElement, so we can do\n * this magic here.\n */\nexport default {\n\tname: 'CustomElementRender',\n\tprops: {\n\t\tsource: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tcurrentView: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\trender: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\telement() {\n\t\t\treturn this.render(this.source, this.currentView)\n\t\t},\n\t},\n\twatch: {\n\t\telement() {\n\t\t\tthis.$el.replaceWith(this.element)\n\t\t\tthis.$el = this.element\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.replaceWith(this.element)\n\t\tthis.$el = this.element\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=a261c93e&\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"custom-svg-icon\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<span class=\"custom-svg-icon\" />\n</template>\n\n<script>\n// eslint-disable-next-line import/named\nimport { sanitize } from 'dompurify'\n\nexport default {\n\tname: 'CustomSvgIconRender',\n\tprops: {\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tsvg() {\n\t\t\tthis.$el.innerHTML = sanitize(this.svg)\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.innerHTML = sanitize(this.svg)\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.custom-svg-icon {\n\tdisplay: flex;\n\talign-items: center;\n\talign-self: center;\n\tjustify-content: center;\n\tjustify-self: center;\n\twidth: 44px;\n\theight: 44px;\n\topacity: 1;\n\n\t::v-deep svg {\n\t\t// mdi icons have a size of 24px\n\t\t// 22px results in roughly 16px inner size\n\t\theight: 22px;\n\t\twidth: 22px;\n\t\tfill: currentColor;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomSvgIconRender.vue?vue&type=template&id=93e9b2f4&scoped=true&\"\nimport script from \"./CustomSvgIconRender.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomSvgIconRender.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomSvgIconRender.vue?vue&type=style&index=0&id=93e9b2f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93e9b2f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('td',{staticClass:\"files-list__row-checkbox\"},[(_vm.active)?_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.t('files', 'Select the row for {displayName}', { displayName: _vm.displayName }),\"checked\":_vm.selectedFiles,\"value\":_vm.fileid,\"name\":\"selectedFiles\"},on:{\"update:checked\":_vm.onSelectionChange}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('a',_vm._b({ref:\"name\",on:{\"click\":_vm.execDefaultAction}},'a',_vm.linkAttrs,false),[_c('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?_c('FolderIcon'):(_vm.previewUrl && !_vm.backgroundFailed)?_c('span',{ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",style:({ backgroundImage: _vm.backgroundImage })}):(_vm.mimeIconUrl)?_c('span',{staticClass:\"files-list__row-icon-preview files-list__row-icon-preview--mime\",style:({ backgroundImage: _vm.mimeIconUrl })}):_c('FileIcon'),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\",attrs:{\"aria-label\":_vm.t('files', 'Favorite')}},[_c('StarIcon',{attrs:{\"aria-hidden\":\"true\",\"size\":20}})],1):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-text\"},[_c('span',{staticClass:\"files-list__row-name-name\",domProps:{\"textContent\":_vm._s(_vm.displayName)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\",class:`files-list__row-actions-${_vm.uniqueId}`},[(_vm.active)?_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.boundariesElement,\"container\":_vm.boundariesElement,\"disabled\":_vm.source._loading,\"force-title\":true,\"force-menu\":true,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event}}},_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,class:'files-list__row-action-' + action.id,on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('CustomSvgIconRender',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName([_vm.source], _vm.currentView))+\"\\n\\t\\t\\t\")])}),1):_vm._e()],1),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:({ opacity: _vm.sizeOpacity }),on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView?.id}-${column.id}`,on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.active)?_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}}):_vm._e()],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts&\"","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n/* eslint-disable */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n */\nexport const useKeyboardStore = function () {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n }\n });\n const keyboardStore = store(...arguments);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n// The preview service worker cache name (see webpack config)\nconst SWCacheName = 'previews';\n/**\n * Check if the preview is already cached by the service worker\n */\nexport const isCachedPreview = function (previewUrl) {\n return caches.open(SWCacheName)\n .then(function (cache) {\n return cache.match(previewUrl)\n .then(function (response) {\n return !!response;\n });\n });\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=71eb16b5&scoped=true&\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FileEntry.vue?vue&type=style&index=0&id=71eb16b5&prod&scoped=true&lang=scss&\"\nimport style1 from \"./FileEntry.vue?vue&type=style&index=1&id=71eb16b5&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71eb16b5\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListFooter.vue?vue&type=template&id=2e19f455&scoped=true&\"\nimport script from \"./FilesListFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListFooter.vue?vue&type=style&index=0&id=2e19f455&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e19f455\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nexport default Vue.extend({\n data() {\n return {\n filesListWidth: null,\n };\n },\n created() {\n const fileListEl = document.querySelector('#app-content-vue');\n this.$resizeObserver = new ResizeObserver((entries) => {\n if (entries.length > 0 && entries[0].target === fileListEl) {\n this.filesListWidth = entries[0].contentRect.width;\n }\n });\n this.$resizeObserver.observe(fileListEl);\n },\n beforeDestroy() {\n this.$resizeObserver.disconnect();\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('th',{staticClass:\"files-list__column files-list__row-actions-batch\",attrs:{\"colspan\":\"2\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-title\":true,\"inline\":_vm.inlineActions,\"menu-title\":_vm.inlineActions <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event}}},_vm._l((_vm.enabledActions),function(action){return _c('NcActionButton',{key:action.id,class:'files-list__row-actions-batch-' + action.id,on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('CustomSvgIconRender',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeaderActions.vue?vue&type=template&id=03e57b1e&scoped=true&\"\nimport script from \"./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeaderActions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeaderActions.vue?vue&type=style&index=0&id=03e57b1e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e57b1e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{staticClass:\"files-list__column-sort-button\",class:{'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode},attrs:{\"aria-label\":_vm.sortAriaLabel(_vm.name),\"type\":\"tertiary\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleSortBy(_vm.mode)}}},[(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}):_c('MenuDown',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}),_vm._v(\"\\n\\t\"+_vm._s(_vm.name)+\"\\n\")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nexport default Vue.extend({\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n currentView() {\n return this.$navigation.active;\n },\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection === 'asc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeaderButton.vue?vue&type=template&id=e85a09d2&\"\nimport script from \"./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeaderButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeaderButton.vue?vue&type=style&index=0&id=e85a09d2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\"},[_c('NcCheckboxRadioSwitch',_vm._b({on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),(!_vm.isNoneSelected)?_c('FilesListHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}}):[_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleSortBy('basename')}}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{'files-list__column--sortable': _vm.isSizeAvailable}},[_c('FilesListHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[(!!column.sort)?_c('FilesListHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\\t\")])],1)})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=76b6186a&scoped=true&\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListHeader.vue?vue&type=style&index=0&id=76b6186a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76b6186a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=7be0268a&scoped=true&\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=7be0268a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7be0268a\",\n null\n \n)\n\nexport default component.exports","import isSvg from 'is-svg';\nimport logger from '../logger.js';\nexport default class {\n _views = [];\n _currentView = null;\n constructor() {\n logger.debug('Navigation service initialized');\n }\n register(view) {\n try {\n isValidNavigation(view);\n isUniqueNavigation(view, this._views);\n }\n catch (e) {\n if (e instanceof Error) {\n logger.error(e.message, { view });\n }\n throw e;\n }\n if (view.legacy) {\n logger.warn('Legacy view detected, please migrate to Vue');\n }\n if (view.iconClass) {\n view.legacy = true;\n }\n this._views.push(view);\n }\n remove(id) {\n const index = this._views.findIndex(view => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n }\n }\n get views() {\n return this._views;\n }\n setActive(view) {\n this._currentView = view;\n }\n get active() {\n return this._currentView;\n }\n}\n/**\n * Make sure the given view is unique\n * and not already registered.\n */\nconst isUniqueNavigation = function (view, views) {\n if (views.find(search => search.id === view.id)) {\n throw new Error(`Navigation id ${view.id} is already registered`);\n }\n return true;\n};\n/**\n * Typescript cannot validate an interface.\n * Please keep in sync with the Navigation interface requirements.\n */\nconst isValidNavigation = function (view) {\n if (!view.id || typeof view.id !== 'string') {\n throw new Error('Navigation id is required and must be a string');\n }\n if (!view.name || typeof view.name !== 'string') {\n throw new Error('Navigation name is required and must be a string');\n }\n /**\n * Legacy handle their content and icon differently\n * TODO: remove when support for legacy views is removed\n */\n if (!view.legacy) {\n if (!view.getContents || typeof view.getContents !== 'function') {\n throw new Error('Navigation getContents is required and must be a function');\n }\n if (!view.icon || typeof view.icon !== 'string' || !isSvg(view.icon)) {\n throw new Error('Navigation icon is required and must be a valid svg string');\n }\n }\n if (!('order' in view) || typeof view.order !== 'number') {\n throw new Error('Navigation order is required and must be a number');\n }\n // Optional properties\n if (view.columns) {\n view.columns.forEach(isValidColumn);\n }\n if (view.emptyView && typeof view.emptyView !== 'function') {\n throw new Error('Navigation emptyView must be a function');\n }\n if (view.parent && typeof view.parent !== 'string') {\n throw new Error('Navigation parent must be a string');\n }\n if ('sticky' in view && typeof view.sticky !== 'boolean') {\n throw new Error('Navigation sticky must be a boolean');\n }\n if ('expanded' in view && typeof view.expanded !== 'boolean') {\n throw new Error('Navigation expanded must be a boolean');\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== 'string') {\n throw new Error('Navigation defaultSortKey must be a string');\n }\n return true;\n};\n/**\n * Typescript cannot validate an interface.\n * Please keep in sync with the Column interface requirements.\n */\nconst isValidColumn = function (column) {\n if (!column.id || typeof column.id !== 'string') {\n throw new Error('A column id is required');\n }\n if (!column.title || typeof column.title !== 'string') {\n throw new Error('A column title is required');\n }\n if (!column.render || typeof column.render !== 'function') {\n throw new Error('A render function is required');\n }\n // Optional properties\n if (column.sort && typeof column.sort !== 'function') {\n throw new Error('Column sortFunction must be a function');\n }\n if (column.summary && typeof column.summary !== 'function') {\n throw new Error('Column summary must be a function');\n }\n return true;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.currentView?.legacy),expression:\"!currentView?.legacy\"}],class:{'app-content--hidden': _vm.currentView?.legacy},attrs:{\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\"},[_c('BreadCrumbs',{attrs:{\"path\":_vm.dir},on:{\"reload\":_vm.fetchContent}}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e()],1),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"title\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('files', 'No files in here'),\"description\":_vm.t('files', 'No files or folders have been deleted yet'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [(_vm.dir !== '/')?_c('NcButton',{attrs:{\"aria-label\":\"t('files', 'Go to the previous folder')\",\"type\":\"primary\",\"to\":_vm.toPreviousDir}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"icon\",fn:function(){return [_c('TrashCan')]},proxy:true}])}):_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-view\":_vm.currentView,\"nodes\":_vm.dirContents}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=66068cbb&scoped=true&\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=66068cbb&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66068cbb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppNavigation',{attrs:{\"data-cy-files-navigation\":\"\"},scopedSlots:_vm._u([{key:\"list\",fn:function(){return _vm._l((_vm.parentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,attrs:{\"allow-collapse\":true,\"data-cy-files-navigation-item\":view.id,\"icon\":view.iconClass,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"title\":view.name,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":function($event){return _vm.onToggleExpand(view)}}},[(view.icon)?_c('NcIconSvgWrapper',{attrs:{\"slot\":\"icon\",\"svg\":view.icon},slot:\"icon\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.childViews[view.id]),function(child){return _c('NcAppNavigationItem',{key:child.id,attrs:{\"data-cy-files-navigation-item\":child.id,\"exact\":true,\"icon\":child.iconClass,\"title\":child.name,\"to\":_vm.generateToNavigation(child)}},[(child.icon)?_c('NcIconSvgWrapper',{attrs:{\"slot\":\"icon\",\"svg\":child.icon},slot:\"icon\"}):_vm._e()],1)})],2)})},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"aria-label\":_vm.t('files', 'Open the files app settings'),\"title\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('Cog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"close\":_vm.onSettingsClose}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-label\":_vm.t('files', 'Storage informations'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-label=\"t('files', 'Storage informations')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { debounce, throttle } from 'throttle-debounce'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport logger from '../logger.js'\nimport { subscribe } from '@nextcloud/event-bus'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, true).replace('iB', 'B')\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, true).replace('iB', 'B')\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event = null] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t&--not-unlimited::v-deep .app-navigation-entry__title {\n\t\tmargin-top: -4px;\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: 10px;\n\t\tmargin-left: 44px;\n\t\twidth: calc(100% - 44px - 22px);\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=9741374e&scoped=true&\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=9741374e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9741374e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"title\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"title\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"title\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"title\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Gary Kim <gary@garykim.dev>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=61d69eae&\"\nimport script from \"./Setting.vue?vue&type=script&lang=js&\"\nexport * from \"./Setting.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:title=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :title=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch :checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch :checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:title=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :title=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport NcAppSettingsDialog from '@nextcloud/vue/dist/Components/NcAppSettingsDialog.js'\nimport NcAppSettingsSection from '@nextcloud/vue/dist/Components/NcAppSettingsSection.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport Clipboard from 'vue-material-design-icons/Clipboard.vue'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport Setting from '../components/Setting.vue'\n\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { translate } from '@nextcloud/l10n'\nimport { useUserConfigStore } from '../store/userconfig.ts'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\treturn {\n\t\t\tuserConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=76ca5d1f&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=76ca5d1f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76ca5d1f\",\n null\n \n)\n\nexport default component.exports","<!--\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<NcAppNavigation data-cy-files-navigation>\n\t\t<template #list>\n\t\t\t<NcAppNavigationItem v-for=\"view in parentViews\"\n\t\t\t\t:key=\"view.id\"\n\t\t\t\t:allow-collapse=\"true\"\n\t\t\t\t:data-cy-files-navigation-item=\"view.id\"\n\t\t\t\t:icon=\"view.iconClass\"\n\t\t\t\t:open=\"isExpanded(view)\"\n\t\t\t\t:pinned=\"view.sticky\"\n\t\t\t\t:title=\"view.name\"\n\t\t\t\t:to=\"generateToNavigation(view)\"\n\t\t\t\t@update:open=\"onToggleExpand(view)\">\n\t\t\t\t<!-- Sanitized icon as svg if provided -->\n\t\t\t\t<NcIconSvgWrapper v-if=\"view.icon\" slot=\"icon\" :svg=\"view.icon\" />\n\n\t\t\t\t<!-- Child views if any -->\n\t\t\t\t<NcAppNavigationItem v-for=\"child in childViews[view.id]\"\n\t\t\t\t\t:key=\"child.id\"\n\t\t\t\t\t:data-cy-files-navigation-item=\"child.id\"\n\t\t\t\t\t:exact=\"true\"\n\t\t\t\t\t:icon=\"child.iconClass\"\n\t\t\t\t\t:title=\"child.name\"\n\t\t\t\t\t:to=\"generateToNavigation(child)\">\n\t\t\t\t\t<!-- Sanitized icon as svg if provided -->\n\t\t\t\t\t<NcIconSvgWrapper v-if=\"child.icon\" slot=\"icon\" :svg=\"child.icon\" />\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</NcAppNavigationItem>\n\t\t</template>\n\n\t\t<!-- Non-scrollable navigation bottom elements -->\n\t\t<template #footer>\n\t\t\t<ul class=\"app-navigation-entry__settings\">\n\t\t\t\t<!-- User storage usage statistics -->\n\t\t\t\t<NavigationQuota />\n\n\t\t\t\t<!-- Files settings modal toggle-->\n\t\t\t\t<NcAppNavigationItem :aria-label=\"t('files', 'Open the files app settings')\"\n\t\t\t\t\t:title=\"t('files', 'Files settings')\"\n\t\t\t\t\tdata-cy-files-navigation-settings-button\n\t\t\t\t\t@click.prevent.stop=\"openSettings\">\n\t\t\t\t\t<Cog slot=\"icon\" :size=\"20\" />\n\t\t\t\t</NcAppNavigationItem>\n\t\t\t</ul>\n\t\t</template>\n\n\t\t<!-- Settings modal-->\n\t\t<SettingsModal :open=\"settingsOpened\"\n\t\t\tdata-cy-files-navigation-settings\n\t\t\t@close=\"onSettingsClose\" />\n\t</NcAppNavigation>\n</template>\n\n<script>\nimport { emit, subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport Cog from 'vue-material-design-icons/Cog.vue'\nimport NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\n\nimport { setPageHeading } from '../../../../core/src/OCP/accessibility.js'\nimport { useViewConfigStore } from '../store/viewConfig.ts'\nimport logger from '../logger.js'\nimport Navigation from '../services/Navigation.ts'\nimport NavigationQuota from '../components/NavigationQuota.vue'\nimport SettingsModal from './Settings.vue'\n\nexport default {\n\tname: 'Navigation',\n\n\tcomponents: {\n\t\tCog,\n\t\tNavigationQuota,\n\t\tNcAppNavigation,\n\t\tNcAppNavigationItem,\n\t\tNcIconSvgWrapper,\n\t\tSettingsModal,\n\t},\n\n\tprops: {\n\t\t// eslint-disable-next-line vue/prop-name-casing\n\t\tNavigation: {\n\t\t\ttype: Navigation,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst viewConfigStore = useViewConfigStore()\n\t\treturn {\n\t\t\tviewConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpened: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcurrentViewId() {\n\t\t\treturn this.$route?.params?.view || 'files'\n\t\t},\n\n\t\t/** @return {Navigation} */\n\t\tcurrentView() {\n\t\t\treturn this.views.find(view => view.id === this.currentViewId)\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tviews() {\n\t\t\treturn this.Navigation.views\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tparentViews() {\n\t\t\treturn this.views\n\t\t\t\t// filter child views\n\t\t\t\t.filter(view => !view.parent)\n\t\t\t\t// sort views by order\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.order - b.order\n\t\t\t\t})\n\t\t},\n\n\t\t/** @return {Navigation[]} */\n\t\tchildViews() {\n\t\t\treturn this.views\n\t\t\t\t// filter parent views\n\t\t\t\t.filter(view => !!view.parent)\n\t\t\t\t// create a map of parents and their children\n\t\t\t\t.reduce((list, view) => {\n\t\t\t\t\tlist[view.parent] = [...(list[view.parent] || []), view]\n\t\t\t\t\t// Sort children by order\n\t\t\t\t\tlist[view.parent].sort((a, b) => {\n\t\t\t\t\t\treturn a.order - b.order\n\t\t\t\t\t})\n\t\t\t\t\treturn list\n\t\t\t\t}, {})\n\t\t},\n\t},\n\n\twatch: {\n\t\tcurrentView(view, oldView) {\n\t\t\t// If undefined, it means we're initializing the view\n\t\t\t// This is handled by the legacy-view:initialized event\n\t\t\t// TODO: remove when legacy views are dropped\n\t\t\tif (view?.id === oldView?.id) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.Navigation.setActive(view)\n\t\t\tlogger.debug('Navigation changed', { id: view.id, view })\n\n\t\t\tthis.showView(view, oldView)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tif (this.currentView) {\n\t\t\tlogger.debug('Navigation mounted. Showing requested view', { view: this.currentView })\n\t\t\tthis.showView(this.currentView)\n\t\t}\n\n\t\tsubscribe('files:legacy-navigation:changed', this.onLegacyNavigationChanged)\n\n\t\t// TODO: remove this once the legacy navigation is gone\n\t\tsubscribe('files:legacy-view:initialized', () => {\n\t\t\tlogger.debug('Legacy view initialized', { ...this.currentView })\n\t\t\tthis.showView(this.currentView)\n\t\t})\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * @param {Navigation} view the new active view\n\t\t * @param {Navigation} oldView the old active view\n\t\t */\n\t\tshowView(view, oldView) {\n\t\t\t// Closing any opened sidebar\n\t\t\twindow?.OCA?.Files?.Sidebar?.close?.()\n\n\t\t\tif (view?.legacy) {\n\t\t\t\tconst newAppContent = document.querySelector('#app-content #app-content-' + this.currentView.id + '.viewcontainer')\n\t\t\t\tdocument.querySelectorAll('#app-content .viewcontainer').forEach(el => {\n\t\t\t\t\tel.classList.add('hidden')\n\t\t\t\t})\n\t\t\t\tnewAppContent.classList.remove('hidden')\n\n\t\t\t\t// Triggering legacy navigation events\n\t\t\t\tconst { dir = '/' } = OC.Util.History.parseUrlQuery()\n\t\t\t\tconst params = { itemId: view.id, dir }\n\n\t\t\t\tlogger.debug('Triggering legacy navigation event', params)\n\t\t\t\twindow.jQuery(newAppContent).trigger(new window.jQuery.Event('show', params))\n\t\t\t\twindow.jQuery(newAppContent).trigger(new window.jQuery.Event('urlChanged', params))\n\t\t\t}\n\n\t\t\tthis.Navigation.setActive(view)\n\t\t\tsetPageHeading(view.name)\n\t\t\temit('files:navigation:changed', view)\n\t\t},\n\n\t\t/**\n\t\t * Coming from the legacy files app.\n\t\t * TODO: remove when all views are migrated.\n\t\t *\n\t\t * @param {object} payload the payload\n\t\t * @param {string} [payload.id='files'] the view id\n\t\t * @param {boolean} [payload.silent=false] if true, the view will not be shown immediately\n\t\t */\n\t\tonLegacyNavigationChanged({ id = 'files', silent = false } = {}) {\n\t\t\tconst view = this.Navigation.views.find(view => view.id === id)\n\t\t\tif (view && view.legacy && view.id !== this.currentView.id) {\n\t\t\t\t// Force update the current route as the request comes\n\t\t\t\t// from the legacy files app router\n\t\t\t\tthis.$router.replace({ ...this.$route, params: { view: view.id } })\n\t\t\t\tif (!silent) {\n\t\t\t\t\tthis.Navigation.setActive(view)\n\t\t\t\t\tthis.showView(view)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Expand/collapse a a view with children and permanently\n\t\t * save this setting in the server.\n\t\t *\n\t\t * @param {Navigation} view the view to toggle\n\t\t */\n\t\tonToggleExpand(view) {\n\t\t\t// Invert state\n\t\t\tconst isExpanded = this.isExpanded(view)\n\t\t\t// Update the view expanded state, might not be necessary\n\t\t\tview.expanded = !isExpanded\n\t\t\tthis.viewConfigStore.update(view.id, 'expanded', !isExpanded)\n\t\t},\n\n\t\t/**\n\t\t * Check if a view is expanded by user config\n\t\t * or fallback to the default value.\n\t\t *\n\t\t * @param {Navigation} view the view to check\n\t\t */\n\t\tisExpanded(view) {\n\t\t\treturn typeof this.viewConfigStore.getConfig(view.id)?.expanded === 'boolean'\n\t\t\t\t? this.viewConfigStore.getConfig(view.id).expanded === true\n\t\t\t\t: view.expanded === true\n\t\t},\n\n\t\t/**\n\t\t * Generate the route to a view\n\t\t *\n\t\t * @param {Navigation} view the view to toggle\n\t\t */\n\t\tgenerateToNavigation(view) {\n\t\t\tif (view.params) {\n\t\t\t\tconst { dir, fileid } = view.params\n\t\t\t\treturn { name: 'filelist', params: view.params, query: { dir, fileid } }\n\t\t\t}\n\t\t\treturn { name: 'filelist', params: { view: view.id } }\n\t\t},\n\n\t\t/**\n\t\t * Open the settings modal\n\t\t */\n\t\topenSettings() {\n\t\t\tthis.settingsOpened = true\n\t\t},\n\n\t\t/**\n\t\t * Close the settings modal\n\t\t */\n\t\tonSettingsClose() {\n\t\t\tthis.settingsOpened = false\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\n.app-navigation::v-deep .app-navigation-entry-icon {\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.app-navigation > ul.app-navigation__list {\n\t// Use flex gap value for more elegant spacing\n\tpadding-bottom: var(--default-grid-baseline, 4px);\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n</style>\n","/**\n * @copyright Copyright (c) 2022 Joas Schilling <coding@schilljs.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=dd350a0c&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=dd350a0c&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd350a0c\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport logger from '../logger.js'\n\n/**\n * Fetch and register the legacy files views\n */\nexport default function() {\n\tconst legacyViews = Object.values(loadState('files', 'navigation', {}))\n\n\tif (legacyViews.length > 0) {\n\t\tlogger.debug('Legacy files views detected. Processing...', legacyViews)\n\t\tlegacyViews.forEach(view => {\n\t\t\tregisterLegacyView(view)\n\t\t\tif (view.sublist) {\n\t\t\t\tview.sublist.forEach(subview => registerLegacyView({ ...subview, parent: view.id }))\n\t\t\t}\n\t\t})\n\t}\n}\n\nconst registerLegacyView = function({ id, name, order, icon, parent, classes = '', expanded, params }) {\n\tOCP.Files.Navigation.register({\n\t\tid,\n\t\tname,\n\t\torder,\n\t\tparams,\n\t\tparent,\n\t\texpanded: expanded === true,\n\t\ticonClass: icon ? `icon-${icon}` : 'nav-icon-' + id,\n\t\tlegacy: true,\n\t\tsticky: classes.includes('pinned'),\n\t})\n}\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue'\nimport Router from 'vue-router'\nimport { generateUrl } from '@nextcloud/router'\nimport queryString from 'query-string'\n\nVue.use(Router)\n\nconst router = new Router({\n\tmode: 'history',\n\n\t// if index.php is in the url AND we got this far, then it's working:\n\t// let's keep using index.php in the url\n\tbase: generateUrl('/apps/files', ''),\n\tlinkActiveClass: 'active',\n\n\troutes: [\n\t\t{\n\t\t\tpath: '/',\n\t\t\t// Pretending we're using the default view\n\t\t\talias: '/files',\n\t\t},\n\t\t{\n\t\t\tpath: '/:view/:fileid?',\n\t\t\tname: 'filelist',\n\t\t\tprops: true,\n\t\t},\n\t],\n\n\t// Custom stringifyQuery to prevent encoding of slashes in the url\n\tstringifyQuery(query) {\n\t\tconst result = queryString.stringify(query).replace(/%2F/gmi, '/')\n\t\treturn result ? ('?' + result) : ''\n\t},\n})\n\nrouter.beforeEach((to, from, next) => {\n\t// TODO: Remove this when the legacy files list is removed\n\ttry {\n\t\tconst views = window.OCP.Files?.Navigation?.views || []\n\t\tconst isLegacy = views.find(view => view?.id === to?.params?.view)?.legacy === true\n\t\tif (isLegacy && to?.query?.dir !== from?.query?.dir) {\n\t\t\t// https://github.com/nextcloud/server/blob/1b422df12ac8eb26514849fb117e0dcf58623b88/apps/files/js/filelist.js#L2052-L2076\n\t\t\twindow.OCA.Files.App.fileList.changeDirectory(to?.query?.dir || '/', false, false, to?.query?.fileid, true)\n\t\t}\n\t} catch (error) {}\n\tnext()\n})\n\nexport default router\n","import './templates.js';\nimport './legacy/filelistSearch.js';\nimport './actions/deleteAction';\nimport './actions/openFolderAction';\nimport './actions/sidebarAction';\nimport Vue from 'vue';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport FilesListView from './views/FilesList.vue';\nimport NavigationService from './services/Navigation';\nimport NavigationView from './views/Navigation.vue';\nimport processLegacyFilesViews from './legacy/navigationMapper.js';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport router from './router/router.js';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nconst Router = new RouterService(router);\nObject.assign(window.OCP.Files, { Router });\n// Init Pinia store\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\n// Init Navigation Service\nconst Navigation = new NavigationService();\nObject.assign(window.OCP.Files, { Navigation });\nVue.prototype.$navigation = Navigation;\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\n// Init Navigation View\nconst View = Vue.extend(NavigationView);\nconst FilesNavigationRoot = new View({\n name: 'FilesNavigationRoot',\n propsData: {\n Navigation,\n },\n router,\n pinia,\n});\nFilesNavigationRoot.$mount('#app-navigation-files');\n// Init content list view\nconst ListView = Vue.extend(FilesListView);\nconst FilesList = new ListView({\n name: 'FilesListRoot',\n router,\n pinia,\n});\nFilesList.$mount('#app-content-vue');\n// Init legacy and new files views\nprocessLegacyFilesViews();\n// Register preview service worker\nregisterPreviewServiceWorker();\n","export default class RouterService {\n _router;\n constructor(router) {\n this._router = router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this._router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this._router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default class Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\n}\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".breadcrumb[data-v-68b3b20b]{flex:1 1 100% !important;width:100%}.breadcrumb[data-v-68b3b20b] a{cursor:pointer !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,6BAEC,wBAAA,CACA,UAAA,CAEA,+BACC,yBAAA\",\"sourcesContent\":[\"\\n.breadcrumb {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\n\\t::v-deep a {\\n\\t\\tcursor: pointer !important;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".custom-svg-icon[data-v-93e9b2f4]{display:flex;align-items:center;align-self:center;justify-content:center;justify-self:center;width:44px;height:44px;opacity:1}.custom-svg-icon[data-v-93e9b2f4] svg{height:22px;width:22px;fill:currentColor}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/CustomSvgIconRender.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,sBAAA,CACA,mBAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAEA,sCAGC,WAAA,CACA,UAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.custom-svg-icon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\talign-self: center;\\n\\tjustify-content: center;\\n\\tjustify-self: center;\\n\\twidth: 44px;\\n\\theight: 44px;\\n\\topacity: 1;\\n\\n\\t::v-deep svg {\\n\\t\\t// mdi icons have a size of 24px\\n\\t\\t// 22px results in roughly 16px inner size\\n\\t\\theight: 22px;\\n\\t\\twidth: 22px;\\n\\t\\tfill: currentColor;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"tr[data-v-71eb16b5]:hover,tr[data-v-71eb16b5]:focus,tr[data-v-71eb16b5]:active{background-color:var(--color-background-dark)}.files-list__row-icon-preview[data-v-71eb16b5]:not([style*=background]){background:var(--color-loading-dark)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry.vue\"],\"names\":[],\"mappings\":\"AAGC,+EAGC,6CAAA,CAKF,wEACI,oCAAA\",\"sourcesContent\":[\"\\n/* Hover effect on tbody lines only */\\ntr {\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n/* Preview not loaded animation effect */\\n.files-list__row-icon-preview:not([style*='background']) {\\n background: var(--color-loading-dark);\\n\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"tr[data-v-2e19f455]{padding-bottom:300px;border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}td[data-v-2e19f455]{user-select:none;color:var(--color-text-maxcontrast) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,oBAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAGD,oBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tpadding-bottom: 300px;\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n}\\n\\ntd {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__column[data-v-76b6186a]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-76b6186a]{cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__row-actions-batch[data-v-03e57b1e]{flex:1 1 100% !important}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper{width:100%}.files-list__row-actions-batch[data-v-03e57b1e] .button-vue__wrapper span.button-vue__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CAGA,qEACC,UAAA,CACA,2FACC,eAAA,CACA,sBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\n\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t::v-deep .button-vue__wrapper {\\n\\t\\twidth: 100%;\\n\\t\\tspan.button-vue__text {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list__column-sort-button{margin:0 calc(var(--cell-margin)*-1);padding:0 4px 0 16px !important}.files-list__column-sort-button .button-vue__wrapper{flex-direction:row-reverse;width:100%}.files-list__column-sort-button .button-vue__icon{transition-timing-function:linear;transition-duration:.1s;transition-property:opacity;opacity:0}.files-list__column-sort-button .button-vue__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list__column-sort-button--active .button-vue__icon,.files-list__column-sort-button:hover .button-vue__icon,.files-list__column-sort-button:focus .button-vue__icon,.files-list__column-sort-button:active .button-vue__icon{opacity:1 !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,gCAEC,oCAAA,CAEA,+BAAA,CAGA,qDACC,0BAAA,CAGA,UAAA,CAGD,kDACC,iCAAA,CACA,uBAAA,CACA,2BAAA,CACA,SAAA,CAID,kDACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAOA,mOACC,oBAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--cell-margin) * -1);\\n\\t// Reverse padding\\n\\tpadding: 0 4px 0 16px !important;\\n\\n\\t// Icon after text\\n\\t.button-vue__wrapper {\\n\\t\\tflex-direction: row-reverse;\\n\\t\\t// Take max inner width for text overflow ellipsis\\n\\t\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.button-vue__icon {\\n\\t\\ttransition-timing-function: linear;\\n\\t\\ttransition-duration: .1s;\\n\\t\\ttransition-property: opacity;\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t// Remove when https://github.com/nextcloud/nextcloud-vue/pull/3936 is merged\\n\\t.button-vue__text {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&--active,\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\t.button-vue__icon {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".files-list[data-v-7be0268a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: 44px;--icon-preview-size: 32px;display:block;overflow:auto;height:100%}.files-list[data-v-7be0268a] tbody,.files-list[data-v-7be0268a] .vue-recycle-scroller__slot{display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-7be0268a] .vue-recycle-scroller__slot[role=thead]{position:sticky;z-index:10;top:0;height:var(--row-height);background-color:var(--color-main-background)}.files-list[data-v-7be0268a] tr{position:absolute;display:flex;align-items:center;width:100%;border-bottom:1px solid var(--color-border)}.files-list[data-v-7be0268a] td,.files-list[data-v-7be0268a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:left;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-7be0268a] td span,.files-list[data-v-7be0268a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-7be0268a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-7be0268a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-7be0268a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-right:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-7be0268a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-7be0268a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-7be0268a] .files-list__row-icon-preview{overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center;background-size:contain}.files-list[data-v-7be0268a] .files-list__row-icon-favorite{position:absolute;top:4px;right:-8px;color:#fc0}.files-list[data-v-7be0268a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-7be0268a] .files-list__row-name a{display:flex;align-items:center;width:100%;height:100%}.files-list[data-v-7be0268a] .files-list__row-name a:focus .files-list__row-name-text,.files-list[data-v-7be0268a] .files-list__row-name a:focus-visible .files-list__row-name-text{outline:2px solid var(--color-main-text) !important;border-radius:20px}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-text{padding:5px 10px;margin-left:-10px;display:inline-flex}.files-list[data-v-7be0268a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-actions{width:auto}.files-list[data-v-7be0268a] .files-list__row-actions~td,.files-list[data-v-7be0268a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-7be0268a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-7be0268a] .files-list__row-actions button:not(:hover,:focus,:active) .button-vue__wrapper{color:var(--color-text-maxcontrast)}.files-list[data-v-7be0268a] .files-list__row-size{justify-content:flex-end;width:calc(var(--row-height)*1.5);color:var(--color-main-text)}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button{padding:0 16px 0 4px !important}.files-list[data-v-7be0268a] .files-list__row-size .files-list__column-sort-button .button-vue__wrapper{flex-direction:row}.files-list[data-v-7be0268a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AACA,6BACC,kBAAA,CACA,mBAAA,CAEA,wEAAA,CACA,qBAAA,CACA,sBAAA,CACA,yBAAA,CAEA,aAAA,CACA,aAAA,CACA,WAAA,CAIC,4FACC,YAAA,CACA,qBAAA,CACA,UAAA,CAEA,iBAAA,CAID,qEAEC,eAAA,CACA,UAAA,CACA,KAAA,CACA,wBAAA,CACA,6CAAA,CAGD,gCACC,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,UAAA,CACA,2CAAA,CAGD,gEACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,oBAAA,CACA,uBAAA,CACA,wBAAA,CACA,QAAA,CACA,SAAA,CACA,mCAAA,CACA,WAAA,CAKA,0EACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAIF,uDACC,sBAAA,CACA,8EACC,YAAA,CACA,sBAAA,CAEA,iCAAA,CAEA,iHACC,2BAAA,CACA,4BAAA,CACA,QAAA,CACA,8DAAA,CAGD,2GACC,mBAAA,CAKH,mDACC,iBAAA,CACA,YAAA,CACA,gBAAA,CACA,kBAAA,CAEA,iCAAA,CACA,sBAAA,CACA,8BAAA,CACA,WAAA,CAEA,oCAAA,CACA,kCAAA,CAEA,wDACC,0BAAA,CAGD,gGACC,8BAAA,CACA,+BAAA,CAGD,2DACC,eAAA,CACA,8BAAA,CACA,+BAAA,CACA,kCAAA,CACA,2BAAA,CAEA,0BAAA,CACA,uBAAA,CAGD,4DACC,iBAAA,CACA,OAAA,CACA,UAAA,CACA,UAAA,CAIF,mDAEC,eAAA,CAEA,aAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,UAAA,CACA,WAAA,CAGA,oLAEC,mDAAA,CACA,kBAAA,CAIF,8EAEC,gBAAA,CACA,iBAAA,CAEA,mBAAA,CAGD,6EACC,mCAAA,CAIF,sDACC,UAAA,CAGA,kHAEC,2BAAA,CAIA,+EAEC,kBAAA,CAED,6GAEC,mCAAA,CAKH,mDAEC,wBAAA,CACA,iCAAA,CAEA,4BAAA,CAGA,mFACC,+BAAA,CACA,wGACC,kBAAA,CAKH,4DACC,+BAAA\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: 44px;\\n\\t--icon-preview-size: 32px;\\n\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\n\\t&::v-deep {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody, .vue-recycle-scroller__slot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.vue-recycle-scroller__slot[role='thead'] {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: left;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-right: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&> span:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 4px;\\n\\t\\t\\t\\tright: -8px;\\n\\t\\t\\t\\tcolor: #ffcc00;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\ta {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text,\\n\\t\\t\\t\\t&:focus-visible .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: 20px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: 5px 10px;\\n\\t\\t\\t\\tmargin-left: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(:hover, :focus, :active) .button-vue__wrapper {\\n\\t\\t\\t\\t\\t// Also apply color-text-maxcontrast to non-active button\\n\\t\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\t// Right align text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// opacity varies with the size\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\t\\t// Icon is before text since size is right aligned\\n\\t\\t\\t.files-list__column-sort-button {\\n\\t\\t\\t\\tpadding: 0 16px 0 4px !important;\\n\\t\\t\\t\\t.button-vue__wrapper {\\n\\t\\t\\t\\t\\tflex-direction: row;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-navigation-entry__settings-quota--not-unlimited[data-v-9741374e] .app-navigation-entry__title{margin-top:-4px}.app-navigation-entry__settings-quota progress[data-v-9741374e]{position:absolute;bottom:10px;margin-left:44px;width:calc(100% - 44px - 22px)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAIC,mGACC,eAAA,CAGD,gEACC,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,8BAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t&--not-unlimited::v-deep .app-navigation-entry__title {\\n\\t\\tmargin-top: -4px;\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: 10px;\\n\\t\\tmargin-left: 44px;\\n\\t\\twidth: calc(100% - 44px - 22px);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".template-picker__item[data-v-5b09ec60]{display:flex}.template-picker__label[data-v-5b09ec60]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-5b09ec60],.template-picker__label *[data-v-5b09ec60]{cursor:pointer;user-select:none}.template-picker__label[data-v-5b09ec60]::before{display:none !important}.template-picker__preview[data-v-5b09ec60]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-5b09ec60]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-5b09ec60]{display:flex}.template-picker__image[data-v-5b09ec60]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-5b09ec60]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-5b09ec60]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/TemplatePreview.vue\"],\"names\":[],\"mappings\":\"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n.template-picker {\\n\\t&__item {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\t// Align in the middle of the grid\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tdisplay: none !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\t// Stretch so all entries are the same width\\n\\t\\tflex: 1 1;\\n\\t\\twidth: var(--width);\\n\\t\\tmin-height: var(--height);\\n\\t\\tmax-height: var(--height);\\n\\t\\tpadding: 0;\\n\\t\\tborder: var(--border) solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\tinput:checked + label > & {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&--failed {\\n\\t\\t\\t// Make sure to properly center fallback icon\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t// Failed preview, fallback to mime icon\\n\\t&__preview--failed &__image {\\n\\t\\twidth: calc(var(--margin) * 8);\\n\\t\\t// Center mime icon\\n\\t\\tmargin: auto;\\n\\t\\tbackground-color: transparent !important;\\n\\n\\t\\tobject-fit: initial;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\t// also count preview border\\n\\t\\tmax-width: calc(var(--width) + 2*2px);\\n\\t\\tpadding: var(--margin);\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-content[data-v-66068cbb]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}.app-content[data-v-66068cbb]:not(.app-content--hidden)+#app-content{display:none}.files-list__header[data-v-66068cbb]{display:flex;align-content:center;flex:0 0;margin:4px 4px 4px 50px}.files-list__header>*[data-v-66068cbb]{flex:0 0}.files-list__refresh-icon[data-v-66068cbb]{flex:0 0 44px;width:44px;height:44px}.files-list__loading-icon[data-v-66068cbb]{margin:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CAIA,qEACC,YAAA,CAQD,qCACC,YAAA,CACA,oBAAA,CAEA,QAAA,CAEA,uBAAA,CACA,uCAGC,QAAA,CAGF,2CACC,aAAA,CACA,UAAA,CACA,WAAA,CAED,2CACC,WAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\n\\t// TODO: remove after all legacy views are migrated\\n\\t// Hides the legacy app-content if shown view is not legacy\\n\\t&:not(&--hidden)::v-deep + #app-content {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n$margin: 4px;\\n$navigationToggleSize: 50px;\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-content: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin: $margin $margin $margin $navigationToggleSize;\\n\\t\\t> * {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\t}\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 44px;\\n\\t\\twidth: 44px;\\n\\t\\theight: 44px;\\n\\t}\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-navigation[data-v-dd350a0c] .app-navigation-entry-icon{background-repeat:no-repeat;background-position:center}.app-navigation>ul.app-navigation__list[data-v-dd350a0c]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-dd350a0c]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEA,4DACC,2BAAA,CACA,0BAAA,CAGD,yDAEC,gDAAA,CAGD,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA\",\"sourcesContent\":[\"\\n// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in\\n.app-navigation::v-deep .app-navigation-entry-icon {\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: center;\\n}\\n\\n.app-navigation > ul.app-navigation__list {\\n\\t// Use flex gap value for more elegant spacing\\n\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".setting-link[data-v-76ca5d1f]:hover{text-decoration:underline}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".templates-picker__form[data-v-d46f1dc6]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-d46f1dc6]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-d46f1dc6]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-d46f1dc6]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-d46f1dc6],.templates-picker__buttons input[type=submit][data-v-d46f1dc6]{height:44px}.templates-picker[data-v-d46f1dc6] .modal-container{position:relative}.templates-picker__loading[data-v-d46f1dc6]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/TemplatePicker.vue\"],\"names\":[],\"mappings\":\"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA\",\"sourcesContent\":[\"\\n.templates-picker {\\n\\t&__form {\\n\\t\\tpadding: calc(var(--margin) * 2);\\n\\t\\t// Will be handled by the buttons\\n\\t\\tpadding-bottom: 0;\\n\\n\\t\\th2 {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: var(--margin) 0 calc(var(--margin) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__list {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-gap: calc(var(--margin) * 2);\\n\\t\\tgrid-auto-columns: 1fr;\\n\\t\\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\\n\\t\\tmax-width: calc(var(--fullwidth) * 6);\\n\\t\\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\\n\\t\\t// Make sure all rows are the same height\\n\\t\\tgrid-auto-rows: 1fr;\\n\\t\\t// Center the columns set\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t\\tpadding: calc(var(--margin) * 2) var(--margin);\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tbackground-image: linear-gradient(0, var(--gradient-main-background));\\n\\n\\t\\tbutton, input[type='submit'] {\\n\\t\\t\\theight: 44px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make sure we're relative for the loading emptycontent on top\\n\\t::v-deep .modal-container {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\tbackground-color: var(--color-main-background-translucent);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n/* @keyframes preview-gradient-fade {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.5;\\n }\\n 100% {\\n opacity: 1;\\n }\\n} */\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry.vue\"],\"names\":[],\"mappings\":\";AA6nBA;;;;;;;;;;GAUA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<Fragment>\\n\\t\\t<td class=\\\"files-list__row-checkbox\\\">\\n\\t\\t\\t<NcCheckboxRadioSwitch v-if=\\\"active\\\"\\n\\t\\t\\t\\t:aria-label=\\\"t('files', 'Select the row for {displayName}', { displayName })\\\"\\n\\t\\t\\t\\t:checked=\\\"selectedFiles\\\"\\n\\t\\t\\t\\t:value=\\\"fileid\\\"\\n\\t\\t\\t\\tname=\\\"selectedFiles\\\"\\n\\t\\t\\t\\t@update:checked=\\\"onSelectionChange\\\" />\\n\\t\\t</td>\\n\\n\\t\\t<!-- Link to file -->\\n\\t\\t<td class=\\\"files-list__row-name\\\">\\n\\t\\t\\t<a ref=\\\"name\\\" v-bind=\\\"linkAttrs\\\" @click=\\\"execDefaultAction\\\">\\n\\t\\t\\t\\t<!-- Icon or preview -->\\n\\t\\t\\t\\t<span class=\\\"files-list__row-icon\\\">\\n\\t\\t\\t\\t\\t<FolderIcon v-if=\\\"source.type === 'folder'\\\" />\\n\\n\\t\\t\\t\\t\\t<!-- Decorative image, should not be aria documented -->\\n\\t\\t\\t\\t\\t<span v-else-if=\\\"previewUrl && !backgroundFailed\\\"\\n\\t\\t\\t\\t\\t\\tref=\\\"previewImg\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-preview\\\"\\n\\t\\t\\t\\t\\t\\t:style=\\\"{ backgroundImage }\\\" />\\n\\n\\t\\t\\t\\t\\t<span v-else-if=\\\"mimeIconUrl\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-preview files-list__row-icon-preview--mime\\\"\\n\\t\\t\\t\\t\\t\\t:style=\\\"{ backgroundImage: mimeIconUrl }\\\" />\\n\\n\\t\\t\\t\\t\\t<FileIcon v-else />\\n\\n\\t\\t\\t\\t\\t<!-- Favorite icon -->\\n\\t\\t\\t\\t\\t<span v-if=\\\"isFavorite\\\"\\n\\t\\t\\t\\t\\t\\tclass=\\\"files-list__row-icon-favorite\\\"\\n\\t\\t\\t\\t\\t\\t:aria-label=\\\"t('files', 'Favorite')\\\">\\n\\t\\t\\t\\t\\t\\t<StarIcon aria-hidden=\\\"true\\\" :size=\\\"20\\\" />\\n\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t</span>\\n\\n\\t\\t\\t\\t<!-- File name -->\\n\\t\\t\\t\\t<span class=\\\"files-list__row-name-text\\\">\\n\\t\\t\\t\\t\\t<!-- Keep the displayName stuck to the extension to avoid whitespace rendering issues-->\\n\\t\\t\\t\\t\\t<span class=\\\"files-list__row-name-name\\\" v-text=\\\"displayName\\\" />\\n\\t\\t\\t\\t\\t<span class=\\\"files-list__row-name-ext\\\" v-text=\\\"extension\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</a>\\n\\t\\t</td>\\n\\n\\t\\t<!-- Actions -->\\n\\t\\t<td :class=\\\"`files-list__row-actions-${uniqueId}`\\\" class=\\\"files-list__row-actions\\\">\\n\\t\\t\\t<!-- Inline actions -->\\n\\t\\t\\t<!-- TODO: implement CustomElementRender -->\\n\\n\\t\\t\\t<!-- Menu actions -->\\n\\t\\t\\t<NcActions v-if=\\\"active\\\"\\n\\t\\t\\t\\tref=\\\"actionsMenu\\\"\\n\\t\\t\\t\\t:boundaries-element=\\\"boundariesElement\\\"\\n\\t\\t\\t\\t:container=\\\"boundariesElement\\\"\\n\\t\\t\\t\\t:disabled=\\\"source._loading\\\"\\n\\t\\t\\t\\t:force-title=\\\"true\\\"\\n\\t\\t\\t\\t:force-menu=\\\"true\\\"\\n\\t\\t\\t\\t:inline=\\\"enabledInlineActions.length\\\"\\n\\t\\t\\t\\t:open.sync=\\\"openedMenu\\\">\\n\\t\\t\\t\\t<NcActionButton v-for=\\\"action in enabledMenuActions\\\"\\n\\t\\t\\t\\t\\t:key=\\\"action.id\\\"\\n\\t\\t\\t\\t\\t:class=\\\"'files-list__row-action-' + action.id\\\"\\n\\t\\t\\t\\t\\t@click=\\\"onActionClick(action)\\\">\\n\\t\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t\\t<NcLoadingIcon v-if=\\\"loading === action.id\\\" :size=\\\"18\\\" />\\n\\t\\t\\t\\t\\t\\t<CustomSvgIconRender v-else :svg=\\\"action.iconSvgInline([source], currentView)\\\" />\\n\\t\\t\\t\\t\\t</template>\\n\\t\\t\\t\\t\\t{{ action.displayName([source], currentView) }}\\n\\t\\t\\t\\t</NcActionButton>\\n\\t\\t\\t</NcActions>\\n\\t\\t</td>\\n\\n\\t\\t<!-- Size -->\\n\\t\\t<td v-if=\\\"isSizeAvailable\\\"\\n\\t\\t\\t:style=\\\"{ opacity: sizeOpacity }\\\"\\n\\t\\t\\tclass=\\\"files-list__row-size\\\"\\n\\t\\t\\t@click=\\\"openDetailsIfAvailable\\\">\\n\\t\\t\\t<span>{{ size }}</span>\\n\\t\\t</td>\\n\\n\\t\\t<!-- View columns -->\\n\\t\\t<td v-for=\\\"column in columns\\\"\\n\\t\\t\\t:key=\\\"column.id\\\"\\n\\t\\t\\t:class=\\\"`files-list__row-${currentView?.id}-${column.id}`\\\"\\n\\t\\t\\tclass=\\\"files-list__row-column-custom\\\"\\n\\t\\t\\t@click=\\\"openDetailsIfAvailable\\\">\\n\\t\\t\\t<CustomElementRender v-if=\\\"active\\\"\\n\\t\\t\\t\\t:current-view=\\\"currentView\\\"\\n\\t\\t\\t\\t:render=\\\"column.render\\\"\\n\\t\\t\\t\\t:source=\\\"source\\\" />\\n\\t\\t</td>\\n\\t</Fragment>\\n</template>\\n\\n<script lang='ts'>\\nimport { debounce } from 'debounce'\\nimport { formatFileSize } from '@nextcloud/files'\\nimport { Fragment } from 'vue-frag'\\nimport { join, extname } from 'path'\\nimport { showError, showSuccess } from '@nextcloud/dialogs'\\nimport { translate } from '@nextcloud/l10n'\\nimport CancelablePromise from 'cancelable-promise'\\nimport FileIcon from 'vue-material-design-icons/File.vue'\\nimport FolderIcon from 'vue-material-design-icons/Folder.vue'\\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\\nimport StarIcon from 'vue-material-design-icons/Star.vue'\\nimport Vue from 'vue'\\n\\nimport { ACTION_DETAILS } from '../actions/sidebarAction.ts'\\nimport { getFileActions } from '../services/FileAction.ts'\\nimport { hashCode } from '../utils/hashUtils.ts'\\nimport { isCachedPreview } from '../services/PreviewService.ts'\\nimport { useActionsMenuStore } from '../store/actionsmenu.ts'\\nimport { useFilesStore } from '../store/files.ts'\\nimport { useKeyboardStore } from '../store/keyboard.ts'\\nimport { useSelectionStore } from '../store/selection.ts'\\nimport { useUserConfigStore } from '../store/userconfig.ts'\\nimport CustomElementRender from './CustomElementRender.vue'\\nimport CustomSvgIconRender from './CustomSvgIconRender.vue'\\nimport logger from '../logger.js'\\n\\n// The registered actions list\\nconst actions = getFileActions()\\n\\nexport default Vue.extend({\\n\\tname: 'FileEntry',\\n\\n\\tcomponents: {\\n\\t\\tCustomElementRender,\\n\\t\\tCustomSvgIconRender,\\n\\t\\tFileIcon,\\n\\t\\tFolderIcon,\\n\\t\\tFragment,\\n\\t\\tNcActionButton,\\n\\t\\tNcActions,\\n\\t\\tNcCheckboxRadioSwitch,\\n\\t\\tNcLoadingIcon,\\n\\t\\tStarIcon,\\n\\t},\\n\\n\\tprops: {\\n\\t\\tactive: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\tisSizeAvailable: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\tsource: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tindex: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tnodes: {\\n\\t\\t\\ttype: Array,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tfilesListWidth: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\tdefault: 0,\\n\\t\\t},\\n\\t},\\n\\n\\tsetup() {\\n\\t\\tconst actionsMenuStore = useActionsMenuStore()\\n\\t\\tconst filesStore = useFilesStore()\\n\\t\\tconst keyboardStore = useKeyboardStore()\\n\\t\\tconst selectionStore = useSelectionStore()\\n\\t\\tconst userConfigStore = useUserConfigStore()\\n\\t\\treturn {\\n\\t\\t\\tactionsMenuStore,\\n\\t\\t\\tfilesStore,\\n\\t\\t\\tkeyboardStore,\\n\\t\\t\\tselectionStore,\\n\\t\\t\\tuserConfigStore,\\n\\t\\t}\\n\\t},\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tbackgroundFailed: false,\\n\\t\\t\\tbackgroundImage: '',\\n\\t\\t\\tboundariesElement: document.querySelector('.app-content > .files-list'),\\n\\t\\t\\tloading: '',\\n\\t\\t}\\n\\t},\\n\\n\\tcomputed: {\\n\\t\\tuserConfig() {\\n\\t\\t\\treturn this.userConfigStore.userConfig\\n\\t\\t},\\n\\n\\t\\tcurrentView() {\\n\\t\\t\\treturn this.$navigation.active\\n\\t\\t},\\n\\t\\tcolumns() {\\n\\t\\t\\t// Hide columns if the list is too small\\n\\t\\t\\tif (this.filesListWidth < 512) {\\n\\t\\t\\t\\treturn []\\n\\t\\t\\t}\\n\\t\\t\\treturn this.currentView?.columns || []\\n\\t\\t},\\n\\n\\t\\tdir() {\\n\\t\\t\\t// Remove any trailing slash but leave root slash\\n\\t\\t\\treturn (this.$route?.query?.dir || '/').replace(/^(.+)\\\\/$/, '$1')\\n\\t\\t},\\n\\t\\tfileid() {\\n\\t\\t\\treturn this.source?.fileid?.toString?.()\\n\\t\\t},\\n\\n\\t\\textension() {\\n\\t\\t\\tif (this.source.attributes?.displayName) {\\n\\t\\t\\t\\treturn extname(this.source.attributes.displayName)\\n\\t\\t\\t}\\n\\t\\t\\treturn this.source.extension || ''\\n\\t\\t},\\n\\t\\tdisplayName() {\\n\\t\\t\\tconst ext = this.extension\\n\\t\\t\\tconst name = (this.source.attributes.displayName\\n\\t\\t\\t\\t|| this.source.basename)\\n\\n\\t\\t\\t// Strip extension from name if defined\\n\\t\\t\\treturn !ext ? name : name.slice(0, 0 - ext.length)\\n\\t\\t},\\n\\n\\t\\tsize() {\\n\\t\\t\\tconst size = parseInt(this.source.size, 10) || 0\\n\\t\\t\\tif (typeof size !== 'number' || size < 0) {\\n\\t\\t\\t\\treturn this.t('files', 'Pending')\\n\\t\\t\\t}\\n\\t\\t\\treturn formatFileSize(size, true, true).replace('iB', 'B')\\n\\t\\t},\\n\\t\\tsizeOpacity() {\\n\\t\\t\\tconst size = parseInt(this.source.size, 10) || 0\\n\\t\\t\\tif (!size || size < 0) {\\n\\t\\t\\t\\treturn 1\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Whatever theme is active, the contrast will pass WCAG AA\\n\\t\\t\\t// with color main text over main background and an opacity of 0.7\\n\\t\\t\\tconst minOpacity = 0.7\\n\\t\\t\\tconst maxOpacitySize = 10 * 1024 * 1024\\n\\t\\t\\treturn minOpacity + (1 - minOpacity) * Math.pow((this.source.size / maxOpacitySize), 2)\\n\\t\\t},\\n\\n\\t\\tlinkAttrs() {\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\tconst action = this.enabledDefaultActions[0]\\n\\t\\t\\t\\tconst displayName = action.displayName([this.source], this.currentView)\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tclass: ['files-list__row-default-action', 'files-list__row-action-' + action.id],\\n\\t\\t\\t\\t\\trole: 'button',\\n\\t\\t\\t\\t\\ttitle: displayName,\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t/**\\n\\t\\t\\t * A folder would never reach this point\\n\\t\\t\\t * as it has open-folder as default action.\\n\\t\\t\\t * Just to be safe, let's handle it.\\n\\t\\t\\t */\\n\\t\\t\\tif (this.source.type === 'folder') {\\n\\t\\t\\t\\tconst to = { ...this.$route, query: { dir: join(this.dir, this.source.basename) } }\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tis: 'router-link',\\n\\t\\t\\t\\t\\ttitle: this.t('files', 'Open folder {name}', { name: this.displayName }),\\n\\t\\t\\t\\t\\tto,\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn {\\n\\t\\t\\t\\thref: this.source.source,\\n\\t\\t\\t\\t// TODO: Use first action title ?\\n\\t\\t\\t\\ttitle: this.t('files', 'Download file {name}', { name: this.displayName }),\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tselectedFiles() {\\n\\t\\t\\treturn this.selectionStore.selected\\n\\t\\t},\\n\\t\\tisSelected() {\\n\\t\\t\\treturn this.selectedFiles.includes(this.source?.fileid?.toString?.())\\n\\t\\t},\\n\\n\\t\\tcropPreviews() {\\n\\t\\t\\treturn this.userConfig.crop_image_previews\\n\\t\\t},\\n\\t\\tpreviewUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst url = new URL(window.location.origin + this.source.attributes.previewUrl)\\n\\t\\t\\t\\t// Request tiny previews\\n\\t\\t\\t\\turl.searchParams.set('x', '32')\\n\\t\\t\\t\\turl.searchParams.set('y', '32')\\n\\t\\t\\t\\t// Handle cropping\\n\\t\\t\\t\\turl.searchParams.set('a', this.cropPreviews === true ? '0' : '1')\\n\\t\\t\\t\\treturn url.href\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\treturn null\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tmimeIconUrl() {\\n\\t\\t\\tconst mimeType = this.source.mime || 'application/octet-stream'\\n\\t\\t\\tconst mimeIconUrl = window.OC?.MimeType?.getIconUrl?.(mimeType)\\n\\t\\t\\tif (mimeIconUrl) {\\n\\t\\t\\t\\treturn `url(${mimeIconUrl})`\\n\\t\\t\\t}\\n\\t\\t\\treturn ''\\n\\t\\t},\\n\\n\\t\\tenabledActions() {\\n\\t\\t\\treturn actions\\n\\t\\t\\t\\t.filter(action => !action.enabled || action.enabled([this.source], this.currentView))\\n\\t\\t\\t\\t.sort((a, b) => (a.order || 0) - (b.order || 0))\\n\\t\\t},\\n\\t\\tenabledInlineActions() {\\n\\t\\t\\tif (this.filesListWidth < 768) {\\n\\t\\t\\t\\treturn []\\n\\t\\t\\t}\\n\\t\\t\\treturn this.enabledActions.filter(action => action?.inline?.(this.source, this.currentView))\\n\\t\\t},\\n\\t\\tenabledMenuActions() {\\n\\t\\t\\tif (this.filesListWidth < 768) {\\n\\t\\t\\t\\t// If we have a default action, do not render the first one\\n\\t\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\t\\treturn this.enabledActions.slice(1)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn this.enabledActions\\n\\t\\t\\t}\\n\\n\\t\\t\\tconst actions = [\\n\\t\\t\\t\\t...this.enabledInlineActions,\\n\\t\\t\\t\\t...this.enabledActions.filter(action => !action.inline),\\n\\t\\t\\t]\\n\\n\\t\\t\\t// If we have a default action, do not render the first one\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\treturn actions.slice(1)\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn actions\\n\\t\\t},\\n\\t\\tenabledDefaultActions() {\\n\\t\\t\\treturn [\\n\\t\\t\\t\\t...this.enabledActions.filter(action => action.default),\\n\\t\\t\\t]\\n\\t\\t},\\n\\t\\topenedMenu: {\\n\\t\\t\\tget() {\\n\\t\\t\\t\\treturn this.actionsMenuStore.opened === this.uniqueId\\n\\t\\t\\t},\\n\\t\\t\\tset(opened) {\\n\\t\\t\\t\\tthis.actionsMenuStore.opened = opened ? this.uniqueId : null\\n\\t\\t\\t},\\n\\t\\t},\\n\\n\\t\\tuniqueId() {\\n\\t\\t\\treturn hashCode(this.source.source)\\n\\t\\t},\\n\\n\\t\\tisFavorite() {\\n\\t\\t\\treturn this.source.attributes.favorite === 1\\n\\t\\t},\\n\\t},\\n\\n\\twatch: {\\n\\t\\tactive(active, before) {\\n\\t\\t\\tif (active === false && before === true) {\\n\\t\\t\\t\\tthis.resetState()\\n\\n\\t\\t\\t\\t// When the row is not active anymore\\n\\t\\t\\t\\t// remove the display from the row to prevent\\n\\t\\t\\t\\t// keyboard interaction with it.\\n\\t\\t\\t\\tthis.$el.parentNode.style.display = 'none'\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Restore default tabindex\\n\\t\\t\\tthis.$el.parentNode.style.display = ''\\n\\t\\t},\\n\\n\\t\\t/**\\n\\t\\t * When the source changes, reset the preview\\n\\t\\t * and fetch the new one.\\n\\t\\t */\\n\\t\\tpreviewUrl() {\\n\\t\\t\\tthis.clearImg()\\n\\t\\t\\tthis.debounceIfNotCached()\\n\\t\\t},\\n\\t},\\n\\n\\t/**\\n\\t * The row is mounted once and reused as we scroll.\\n\\t */\\n\\tmounted() {\\n\\t\\t// ⚠ Init the debounce function on mount and\\n\\t\\t// not when the module is imported to\\n\\t\\t// avoid sharing between recycled components\\n\\t\\tthis.debounceGetPreview = debounce(function() {\\n\\t\\t\\tthis.fetchAndApplyPreview()\\n\\t\\t}, 150, false)\\n\\n\\t\\t// Fetch the preview on init\\n\\t\\tthis.debounceIfNotCached()\\n\\n\\t\\t// Right click watcher on tr\\n\\t\\tthis.$el.parentNode?.addEventListener?.('contextmenu', this.onRightClick)\\n\\t},\\n\\n\\tbeforeDestroy() {\\n\\t\\tthis.resetState()\\n\\t},\\n\\n\\tmethods: {\\n\\t\\tasync debounceIfNotCached() {\\n\\t\\t\\tif (!this.previewUrl) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Check if we already have this preview cached\\n\\t\\t\\tconst isCached = await isCachedPreview(this.previewUrl)\\n\\t\\t\\tif (isCached) {\\n\\t\\t\\t\\tthis.backgroundImage = `url(${this.previewUrl})`\\n\\t\\t\\t\\tthis.backgroundFailed = false\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// We don't have this preview cached or it expired, requesting it\\n\\t\\t\\tthis.debounceGetPreview()\\n\\t\\t},\\n\\n\\t\\tfetchAndApplyPreview() {\\n\\t\\t\\t// Ignore if no preview\\n\\t\\t\\tif (!this.previewUrl) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If any image is being processed, reset it\\n\\t\\t\\tif (this.previewPromise) {\\n\\t\\t\\t\\tthis.clearImg()\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Store the promise to be able to cancel it\\n\\t\\t\\tthis.previewPromise = new CancelablePromise((resolve, reject, onCancel) => {\\n\\t\\t\\t\\tconst img = new Image()\\n\\t\\t\\t\\t// If active, load the preview with higher priority\\n\\t\\t\\t\\timg.fetchpriority = this.active ? 'high' : 'auto'\\n\\t\\t\\t\\timg.onload = () => {\\n\\t\\t\\t\\t\\tthis.backgroundImage = `url(${this.previewUrl})`\\n\\t\\t\\t\\t\\tthis.backgroundFailed = false\\n\\t\\t\\t\\t\\tresolve(img)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\timg.onerror = () => {\\n\\t\\t\\t\\t\\tthis.backgroundFailed = true\\n\\t\\t\\t\\t\\treject(img)\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\timg.src = this.previewUrl\\n\\n\\t\\t\\t\\t// Image loading has been canceled\\n\\t\\t\\t\\tonCancel(() => {\\n\\t\\t\\t\\t\\timg.onerror = null\\n\\t\\t\\t\\t\\timg.onload = null\\n\\t\\t\\t\\t\\timg.src = ''\\n\\t\\t\\t\\t})\\n\\t\\t\\t})\\n\\t\\t},\\n\\n\\t\\tresetState() {\\n\\t\\t\\t// Reset loading state\\n\\t\\t\\tthis.loading = ''\\n\\n\\t\\t\\t// Reset the preview\\n\\t\\t\\tthis.clearImg()\\n\\n\\t\\t\\t// Close menu\\n\\t\\t\\tthis.openedMenu = false\\n\\t\\t},\\n\\n\\t\\tclearImg() {\\n\\t\\t\\tthis.backgroundImage = ''\\n\\t\\t\\tthis.backgroundFailed = false\\n\\n\\t\\t\\tif (this.previewPromise) {\\n\\t\\t\\t\\tthis.previewPromise.cancel()\\n\\t\\t\\t\\tthis.previewPromise = null\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tasync onActionClick(action) {\\n\\t\\t\\tconst displayName = action.displayName([this.source], this.currentView)\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// Set the loading marker\\n\\t\\t\\t\\tthis.loading = action.id\\n\\t\\t\\t\\tVue.set(this.source, '_loading', true)\\n\\n\\t\\t\\t\\tconst success = await action.exec(this.source, this.currentView, this.dir)\\n\\n\\t\\t\\t\\t// If the action returns null, we stay silent\\n\\t\\t\\t\\tif (success === null) {\\n\\t\\t\\t\\t\\treturn\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tif (success) {\\n\\t\\t\\t\\t\\tshowSuccess(this.t('files', '\\\"{displayName}\\\" action executed successfully', { displayName }))\\n\\t\\t\\t\\t\\treturn\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tshowError(this.t('files', '\\\"{displayName}\\\" action failed', { displayName }))\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\tlogger.error('Error while executing action', { action, e })\\n\\t\\t\\t\\tshowError(this.t('files', '\\\"{displayName}\\\" action failed', { displayName }))\\n\\t\\t\\t} finally {\\n\\t\\t\\t\\t// Reset the loading marker\\n\\t\\t\\t\\tthis.loading = ''\\n\\t\\t\\t\\tVue.set(this.source, '_loading', false)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\texecDefaultAction(event) {\\n\\t\\t\\tif (this.enabledDefaultActions.length > 0) {\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tevent.stopPropagation()\\n\\t\\t\\t\\t// Execute the first default action if any\\n\\t\\t\\t\\tthis.enabledDefaultActions[0].exec(this.source, this.currentView, this.dir)\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\topenDetailsIfAvailable(event) {\\n\\t\\t\\tconst detailsAction = this.enabledDefaultActions.find(action => action.id === ACTION_DETAILS)\\n\\t\\t\\tif (detailsAction) {\\n\\t\\t\\t\\tevent.preventDefault()\\n\\t\\t\\t\\tevent.stopPropagation()\\n\\t\\t\\t\\tdetailsAction.exec(this.source, this.currentView)\\n\\t\\t\\t}\\n\\t\\t},\\n\\n\\t\\tonSelectionChange(selection) {\\n\\t\\t\\tconst newSelectedIndex = this.index\\n\\t\\t\\tconst lastSelectedIndex = this.selectionStore.lastSelectedIndex\\n\\n\\t\\t\\t// Get the last selected and select all files in between\\n\\t\\t\\tif (this.keyboardStore?.shiftKey && lastSelectedIndex !== null) {\\n\\t\\t\\t\\tconst isAlreadySelected = this.selectedFiles.includes(this.fileid)\\n\\n\\t\\t\\t\\tconst start = Math.min(newSelectedIndex, lastSelectedIndex)\\n\\t\\t\\t\\tconst end = Math.max(lastSelectedIndex, newSelectedIndex)\\n\\n\\t\\t\\t\\tconst lastSelection = this.selectionStore.lastSelection\\n\\t\\t\\t\\tconst filesToSelect = this.nodes\\n\\t\\t\\t\\t\\t.map(file => file.fileid?.toString?.())\\n\\t\\t\\t\\t\\t.slice(start, end + 1)\\n\\n\\t\\t\\t\\t// If already selected, update the new selection _without_ the current file\\n\\t\\t\\t\\tconst selection = [...lastSelection, ...filesToSelect]\\n\\t\\t\\t\\t\\t.filter(fileId => !isAlreadySelected || fileId !== this.fileid)\\n\\n\\t\\t\\t\\tlogger.debug('Shift key pressed, selecting all files in between', { start, end, filesToSelect, isAlreadySelected })\\n\\t\\t\\t\\t// Keep previous lastSelectedIndex to be use for further shift selections\\n\\t\\t\\t\\tthis.selectionStore.set(selection)\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\tlogger.debug('Updating selection', { selection })\\n\\t\\t\\tthis.selectionStore.set(selection)\\n\\t\\t\\tthis.selectionStore.setLastIndex(newSelectedIndex)\\n\\t\\t},\\n\\n\\t\\t// Open the actions menu on right click\\n\\t\\tonRightClick(event) {\\n\\t\\t\\t// If already opened, fallback to default browser\\n\\t\\t\\tif (this.openedMenu) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If the clicked row is in the selection, open global menu\\n\\t\\t\\tconst isMoreThanOneSelected = this.selectedFiles.length > 1\\n\\t\\t\\tthis.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId\\n\\n\\t\\t\\t// Prevent any browser defaults\\n\\t\\t\\tevent.preventDefault()\\n\\t\\t\\tevent.stopPropagation()\\n\\t\\t},\\n\\n\\t\\tt: translate,\\n\\t\\tformatFileSize,\\n\\t},\\n})\\n</script>\\n\\n<style scoped lang='scss'>\\n/* Hover effect on tbody lines only */\\ntr {\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n}\\n\\n/* Preview not loaded animation effect */\\n.files-list__row-icon-preview:not([style*='background']) {\\n background: var(--color-loading-dark);\\n\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n}\\n</style>\\n\\n<style>\\n/* @keyframes preview-gradient-fade {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.5;\\n }\\n 100% {\\n opacity: 1;\\n }\\n} */\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"00434e4baa0d8e7b79f1\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2181;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2181: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(60668)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getCurrentDirectory","_OCA","_OCA$Files","_OCA$Files$App","_OCA$Files$App$curren","currentDirInfo","OCA","Files","App","currentFileList","dirInfo","path","name","concat","replace","previewWidth","inheritAttrs","props","basename","type","String","required","checked","Boolean","default","fileid","Number","filename","previewUrl","hasPreview","mime","ratio","data","failedPreview","computed","nameWithoutExt","indexOf","split","slice","join","id","realPreviewUrl","mimeIcon","getCurrentUser","generateUrl","document","getElementById","value","pathSections","startsWith","relativePath","forEach","section","encodeURIComponent","encodeFilePath","OC","MimeType","getIconUrl","methods","onCheck","$emit","onFailure","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_c","_self","staticClass","attrs","domProps","on","_v","class","_s","components","NcEmptyContent","NcModal","TemplatePreview","logger","Object","loading","opened","provider","emptyTemplate","_this$provider","_this$provider2","t","mimetypes","selectedTemplate","templates","find","template","style","width","margin","border","Math","round","fetchedProvider","async","axios","generateOcsUrl","ocs","getTemplates","app","label","Error","length","onSubmit","close","currentDirectory","fileList","_this$provider3","_this$provider4","debug","extension","_this$selectedTemplat","_this$selectedTemplat2","fileInfo","filePath","templatePath","templateType","createFromTemplate","normalize","addAndFetchFileInfo","then","status","model","FileInfoModel","filesClient","fileAction","fileActions","getDefaultFileAction","PERMISSION_ALL","action","$file","findFileEl","dir","fileInfoModel","error","console","showError","$event","preventDefault","stopPropagation","apply","arguments","_b","_l","key","_e","getLoggerBuilder","setApp","detectUser","build","Vue","n","TemplatePickerRoot","createElement","body","appendChild","loadState","templatesPath","TemplatePicker","TemplatePickerView","propsData","$mount","window","addEventListener","initTemplatesPlugin","attach","menu","addMenuEntry","displayName","templateName","iconClass","fileType","actionLabel","actionHandler","initTemplatesFolder","removeMenuEntry","Plugins","register","index","newTemplatePlugin","open","response","copySystemTemplates","changeDirectory","template_path","FilesPlugin","subscribe","_ref","query","setFilter","FileAction","constructor","validateAction","_action","iconSvgInline","enabled","exec","execBatch","order","inline","renderInline","registerFileAction","_nc_fileactions","search","push","getFileActions","nodes","view","TrashCan","map","node","permissions","every","permission","Permission","origin","URL","source","encodedSource","encodePath","emit","Promise","all","files","attributes","Folder","FileType","OCP","Router","goToRoute","ACTION_DETAILS","InformationSvg","_window","_window$OCA","_window$OCA$Files","Sidebar","some","_node$root","root","_window2","_window2$OCA","_window2$OCA$Files","_window2$OCA$Files$Si","_window2$OCA$Files$Si2","call","useFilesStore","fileStore","defineStore","state","roots","getters","getNode","getNodes","ids","filter","getRoot","service","actions","updateNodes","reduce","acc","deleteNodes","setRoot","onDeletedNode","store","_initialized","usePathsStore","pathsStore","paths","getPath","addPath","payload","useSelectionStore","selected","lastSelection","lastSelectedIndex","set","selection","undefined","setLastIndex","reset","viewConfig","useViewConfigStore","getConfig","onUpdate","setSortingBy","update","toggleSortingDirection","newDirection","sorting_direction","viewConfigStore","Home","NcBreadcrumbs","NcBreadcrumb","setup","filesStore","currentView","$navigation","active","dirs","sections","to","$route","exact","getDirDisplayName","getNodeFromId","getFileIdFromPath","_this$currentView","_node$attributes","fileId","onClick","_to$query","ariaLabel","_section$to","_section$to$query","_setupProxy","nativeOn","scopedSlots","_u","fn","proxy","useActionsMenuStore","userConfig","show_hidden","crop_image_previews","useUserConfigStore","userConfigStore","render","Function","element","watch","$el","replaceWith","mounted","svg","innerHTML","sanitize","CustomElementRender","CustomSvgIconRender","FileIcon","FolderIcon","Fragment","NcActionButton","NcActions","NcCheckboxRadioSwitch","NcLoadingIcon","StarIcon","isSizeAvailable","Array","filesListWidth","actionsMenuStore","keyboardStore","altKey","ctrlKey","metaKey","shiftKey","onEvent","event","useKeyboardStore","selectionStore","backgroundFailed","backgroundImage","boundariesElement","querySelector","columns","_this$$route","_this$$route$query","_this$source","_this$source$fileid","_this$source$fileid$t","toString","_this$source$attribut","extname","ext","size","parseInt","formatFileSize","sizeOpacity","pow","linkAttrs","enabledDefaultActions","role","title","is","href","selectedFiles","isSelected","_this$source2","_this$source2$fileid","_this$source2$fileid$","includes","cropPreviews","url","location","searchParams","e","mimeIconUrl","_window$OC","_window$OC$MimeType","_window$OC$MimeType$g","mimeType","enabledActions","sort","a","b","enabledInlineActions","_action$inline","enabledMenuActions","openedMenu","get","uniqueId","charCodeAt","isFavorite","favorite","before","resetState","parentNode","display","clearImg","debounceIfNotCached","_this$$el$parentNode","_this$$el$parentNode$","debounceGetPreview","debounce","fetchAndApplyPreview","onRightClick","beforeDestroy","caches","cache","match","previewPromise","CancelablePromise","resolve","reject","onCancel","img","Image","fetchpriority","onload","onerror","src","cancel","success","showSuccess","execDefaultAction","openDetailsIfAvailable","detailsAction","onSelectionChange","_this$keyboardStore","newSelectedIndex","isAlreadySelected","start","min","end","max","filesToSelect","file","_file$fileid","_file$fileid$toString","isMoreThanOneSelected","translate","ref","_loading","onActionClick","opacity","column","_vm$currentView","summary","currentFolder","_this$currentView2","totalSize","_this$currentFolder","total","classForColumn","_column$summary","created","fileListEl","$resizeObserver","ResizeObserver","entries","target","contentRect","observe","disconnect","mixins","filesListWidthMixin","selectedNodes","areSomeNodesLoading","inlineActions","selectionIds","results","result","failedIds","mapState","sortingMode","_this$getConfig","sorting_mode","defaultSortKey","isAscSorting","_this$getConfig2","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","mode","sortAriaLabel","direction","slot","FilesListHeaderButton","FilesListHeaderActions","selectAllBind","isNoneSelected","isSomeSelected","isAllSelected","indeterminate","onToggleAll","RecycleScroller","FileEntry","FilesListHeader","FilesListFooter","summaryFile","count","translatePlural","summaryFolder","slots","querySelectorAll","setAttribute","getFileId","item","caption","_defineProperty","isValidNavigation","isUniqueNavigation","_views","message","legacy","remove","findIndex","splice","views","setActive","_currentView","getContents","icon","isSvg","isValidColumn","emptyView","parent","sticky","expanded","BreadCrumbs","FilesListVirtual","NcAppContent","promise","dirContents","_this$currentFolder2","customColumn","_children","reverse","orderBy","v","isEmptyDir","isRefreshing","toPreviousDir","newView","oldView","fetchContent","newDir","oldDir","_this$$refs","_this$$refs$filesList","$refs","filesListVirtual","scrollTop","_this$currentView3","_this$promise","folder","contents","_vm$currentView2","directives","rawName","expression","ChartPie","NcAppNavigationItem","NcProgressBar","loadingStorageStats","storageStats","storageStatsTitle","_this$storageStats","_this$storageStats2","_this$storageStats3","usedQuotaByte","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","debounceUpdateStorageStats","updateStorageStats","throttle","_response$data","el","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcInputField","Setting","_window$OCA$Files$Set","_getCurrentUser","settings","Settings","webdavUrl","generateRemoteUrl","uid","webdavDocs","appPasswordUrl","webdavUrlCopied","setting","onClose","setConfig","select","navigator","clipboard","writeText","setTimeout","copyCloudId","Cog","NavigationQuota","NcAppNavigation","NcIconSvgWrapper","SettingsModal","Navigation","settingsOpened","currentViewId","_this$$route$params","params","parentViews","childViews","list","showView","onLegacyNavigationChanged","_window$OCA$Files$Sid","_window$OCA$Files$Sid2","newAppContent","classList","add","Util","History","parseUrlQuery","itemId","jQuery","trigger","Event","heading","headingEl","textContent","setPageHeading","silent","$router","onToggleExpand","isExpanded","_this$viewConfigStore","generateToNavigation","openSettings","onSettingsClose","child","registerLegacyView","classes","router","base","linkActiveClass","routes","alias","stringifyQuery","queryString","beforeEach","from","next","_window$OCP$Files","_window$OCP$Files$Nav","_views$find","_from$query","_to$query2","_to$query3","_to$params","_router","goTo","assign","PiniaVuePlugin","pinia","createPinia","NavigationService","_settings","_name","_el","_open","_close","NavigationView","FilesListView","legacyViews","values","sublist","subview","processLegacyFilesViews","noRewrite","registration","serviceWorker","scope","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","promises","u","g","globalThis","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","clearTimeout","doneFns","removeChild","bind","head","Symbol","toStringTag","nmd","children","scriptUrl","importScripts","currentScript","p","baseURI","self","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/workflowengine-workflowengine.js b/dist/workflowengine-workflowengine.js index 54a1104ce03..2c3e7d22077 100644 --- a/dist/workflowengine-workflowengine.js +++ b/dist/workflowengine-workflowengine.js @@ -1,3 +1,3 @@ /*! For license information please see workflowengine-workflowengine.js.LICENSE.txt */ -(()=>{var e,n,i,o={7970:(e,n,i)=>{"use strict";var o=i(20144),a=i(20629),r=i(4820),s=i(79954),l=i(79753);const c=0===(0,s.j)("workflowengine","scope")?"global":"user",d=t=>(0,l.generateOcsUrl)("apps/workflowengine/api/v1/workflows/{scopeValue}",{scopeValue:c})+t+"?format=json";var p=i(10128);i(65509),o.default.use(a.ZP);const A=new a.yh({state:{rules:[],scope:(0,s.j)("workflowengine","scope"),appstoreEnabled:(0,s.j)("workflowengine","appstoreenabled"),operations:(0,s.j)("workflowengine","operators"),plugins:o.default.observable({checks:{},operators:{}}),entities:(0,s.j)("workflowengine","entities"),events:(0,s.j)("workflowengine","entities").map((t=>t.events.map((e=>({id:"".concat(t.id,"::").concat(e.eventName),entity:t,...e}))))).flat(),checks:(0,s.j)("workflowengine","checks")},mutations:{addRule(t,e){t.rules.push({...e,valid:!0})},updateRule(t,e){const n=t.rules.findIndex((t=>e.id===t.id)),i=Object.assign({},e);o.default.set(t.rules,n,i)},removeRule(t,e){const n=t.rules.findIndex((t=>e.id===t.id));t.rules.splice(n,1)},addPluginCheck(t,e){o.default.set(t.plugins.checks,e.class,e)},addPluginOperator(t,e){e=Object.assign({color:"var(--color-primary-element)"},e,t.operations[e.id]||{}),void 0!==t.operations[e.id]&&o.default.set(t.operations,e.id,e)}},actions:{async fetchRules(t){const{data:e}=await r.default.get(d(""));Object.values(e.ocs.data).flat().forEach((e=>{t.commit("addRule",e)}))},createNewRule(t,e){let n=null,i=[];!1===e.isComplex&&""===e.fixedEntity&&(n=t.state.entities.find((t=>e.entities&&e.entities[0]===t.id)),n=n||Object.values(t.state.entities)[0],i=[n.events[0].eventName]),t.commit("addRule",{id:-(new Date).getTime(),class:e.id,entity:n?n.id:e.fixedEntity,events:i,name:"",checks:[{class:null,operator:null,value:""}],operation:e.operation||""})},updateRule(t,e){t.commit("updateRule",{...e,events:"string"==typeof e.events?JSON.parse(e.events):e.events})},removeRule(t,e){t.commit("removeRule",e)},async pushUpdateRule(t,e){let n;0===t.state.scope&&await(0,p.confirmPassword)(),n=e.id<0?await r.default.post(d(""),e):await r.default.put(d("/".concat(e.id)),e),o.default.set(e,"id",n.data.ocs.data.id),t.commit("updateRule",e)},async deleteRule(t,e){await(0,p.confirmPassword)(),await r.default.delete(d("/".concat(e.id))),t.commit("removeRule",e)},setValid(t,e){let{rule:n,valid:i}=e;n.valid=i,t.commit("updateRule",n)}},getters:{getRules:t=>t.rules.filter((e=>void 0!==t.operations[e.class])).sort(((t,e)=>t.id-e.id||e.class-t.class)),getOperationForRule:t=>e=>t.operations[e.class],getEntityForOperation:t=>e=>t.entities.find((t=>e.fixedEntity===t.id)),getEventsForOperation:t=>e=>t.events,getChecksForEntity:t=>e=>Object.values(t.checks).filter((t=>t.supportedEntities.indexOf(e)>-1||0===t.supportedEntities.length)).map((e=>t.plugins.checks[e.id])).reduce(((t,e)=>(t[e.class]=e,t)),{})}});var u=i(15168),m=i.n(u),h=i(12945),g=i.n(h),C=i(45400),f=i.n(C),v=i(10861),w=i.n(v),x=i(39429),k=i(80419),b=i(82675),_=i(98266),y=i.n(_),j=i(64024);const O={name:"Event",components:{NcMultiselect:y()},props:{rule:{type:Object,required:!0}},computed:{entity(){return this.$store.getters.getEntityForOperation(this.operation)},operation(){return this.$store.getters.getOperationForRule(this.rule)},allEvents(){return this.$store.getters.getEventsForOperation(this.operation)},currentEvent(){return this.allEvents.filter((t=>t.entity.id===this.rule.entity&&-1!==this.rule.events.indexOf(t.eventName)))}},methods:{updateEvent(e){if(0===e.length)return void(0,j.K2)(t("workflowengine","At least one event must be selected"));const n=this.rule.entity,i=e.map((t=>t.entity.id)).filter(((t,e,n)=>n.indexOf(t)===e));let o=null;o=i.length>1?i.filter((t=>t!==n))[0]:i[0],this.$set(this.rule,"entity",o),this.$set(this.rule,"events",e.filter((t=>t.entity.id===o)).map((t=>t.eventName))),this.$emit("update",this.rule)}}};var E=i(93379),B=i.n(E),S=i(7795),R=i.n(S),V=i(90569),N=i.n(V),T=i(3565),D=i.n(T),P=i(19216),F=i.n(P),z=i(44589),Z=i.n(z),U=i(53667),G={};G.styleTagTransform=Z(),G.setAttributes=D(),G.insert=N().bind(null,"head"),G.domAPI=R(),G.insertStyleElement=F(),B()(U.Z,G),U.Z&&U.Z.locals&&U.Z.locals;var $=i(51900);const I=(0,$.Z)(O,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"event"},[t.operation.isComplex&&""!==t.operation.fixedEntity?e("div",{staticClass:"isComplex"},[e("img",{staticClass:"option__icon",attrs:{src:t.entity.icon,alt:""}}),t._v(" "),e("span",{staticClass:"option__title option__title_single"},[t._v(t._s(t.operation.triggerHint))])]):e("NcMultiselect",{attrs:{value:t.currentEvent,options:t.allEvents,"track-by":"id",multiple:!0,"auto-limit":!1,disabled:t.allEvents.length<=1},on:{input:t.updateEvent},scopedSlots:t._u([{key:"selection",fn:function(n){let{values:i,isOpen:o}=n;return[i.length&&!o?e("div",{staticClass:"eventlist"},[e("img",{staticClass:"option__icon",attrs:{src:i[0].entity.icon,alt:""}}),t._v(" "),t._l(i,(function(n,o){return e("span",{key:n.id,staticClass:"text option__title option__title_single"},[t._v(t._s(n.displayName)+" "),o+1<i.length?e("span",[t._v(", ")]):t._e()])}))],2):t._e()]}},{key:"option",fn:function(n){return[e("img",{staticClass:"option__icon",attrs:{src:n.option.entity.icon,alt:""}}),t._v(" "),e("span",{staticClass:"option__title"},[t._v(t._s(n.option.displayName))])]}}])})],1)}),[],!1,null,"1825d70e",null).exports;var q=i(36456),W=i.n(q),M=i(2649),L=i.n(M);const Y={name:"Check",components:{NcActionButton:f(),NcActions:g(),NcSelect:W(),CloseIcon:b.default},directives:{ClickOutside:L()},props:{check:{type:Object,required:!0},rule:{type:Object,required:!0}},data:()=>({deleteVisible:!1,currentOption:null,currentOperator:null,options:[],valid:!1}),computed:{checks(){return this.$store.getters.getChecksForEntity(this.rule.entity)},operators(){if(!this.currentOption)return[];const t=this.checks[this.currentOption.class].operators;return"function"==typeof t?t(this.check):t},currentComponent(){return this.currentOption?this.checks[this.currentOption.class].component:[]},valuePlaceholder(){return this.currentOption&&this.currentOption.placeholder?this.currentOption.placeholder(this.check):""}},watch:{"check.operator"(){this.validate()}},mounted(){this.options=Object.values(this.checks),this.currentOption=this.checks[this.check.class],this.currentOperator=this.operators.find((t=>t.operator===this.check.operator)),null===this.check.class&&this.$nextTick((()=>this.$refs.checkSelector.$el.focus())),this.validate()},methods:{showDelete(){this.deleteVisible=!0},hideDelete(){this.deleteVisible=!1},validate(){this.valid=!0,this.currentOption&&this.currentOption.validate&&(this.valid=!!this.currentOption.validate(this.check)),this.check.invalid=!this.valid,this.$emit("validate",this.valid)},updateCheck(){const t=this.operators.findIndex((t=>this.check.operator===t.operator));this.check.class===this.currentOption.class&&-1!==t||(this.currentOperator=this.operators[0]),this.check.class=this.currentOption.class,this.check.operator=this.currentOperator.operator,this.validate(),this.$emit("update",this.check)}}};var H=i(52802),J={};J.styleTagTransform=Z(),J.setAttributes=D(),J.insert=N().bind(null,"head"),J.domAPI=R(),J.insertStyleElement=F(),B()(H.Z,J),H.Z&&H.Z.locals&&H.Z.locals;const Q=(0,$.Z)(Y,(function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.hideDelete,expression:"hideDelete"}],staticClass:"check",on:{click:t.showDelete}},[e("NcSelect",{ref:"checkSelector",attrs:{options:t.options,label:"name",clearable:!1,placeholder:t.t("workflowengine","Select a filter")},on:{input:t.updateCheck},model:{value:t.currentOption,callback:function(e){t.currentOption=e},expression:"currentOption"}}),t._v(" "),e("NcSelect",{staticClass:"comparator",attrs:{disabled:!t.currentOption,options:t.operators,label:"name",clearable:!1,placeholder:t.t("workflowengine","Select a comparator")},on:{input:t.updateCheck},model:{value:t.currentOperator,callback:function(e){t.currentOperator=e},expression:"currentOperator"}}),t._v(" "),t.currentOperator&&t.currentComponent?e(t.currentOption.component,{tag:"component",staticClass:"option",attrs:{disabled:!t.currentOption,check:t.check},on:{input:t.updateCheck,valid:function(e){(t.valid=!0)&&t.validate()},invalid:function(e){!(t.valid=!1)&&t.validate()}},model:{value:t.check.value,callback:function(e){t.$set(t.check,"value",e)},expression:"check.value"}}):e("input",{directives:[{name:"model",rawName:"v-model",value:t.check.value,expression:"check.value"}],staticClass:"option",class:{invalid:!t.valid},attrs:{type:"text",disabled:!t.currentOption,placeholder:t.valuePlaceholder},domProps:{value:t.check.value},on:{input:[function(e){e.target.composing||t.$set(t.check,"value",e.target.value)},t.updateCheck]}}),t._v(" "),t.deleteVisible||!t.currentOption?e("NcActions",[e("NcActionButton",{attrs:{title:t.t("workflowengine","Remove filter")},on:{click:function(e){return t.$emit("remove")}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)})],1):t._e()],1)}),[],!1,null,"07a2739b",null).exports,K={name:"Operation",components:{NcButton:w()},props:{operation:{type:Object,required:!0},colored:{type:Boolean,default:!0}}};var X=i(67767),tt={};tt.styleTagTransform=Z(),tt.setAttributes=D(),tt.insert=N().bind(null,"head"),tt.domAPI=R(),tt.insertStyleElement=F(),B()(X.Z,tt),X.Z&&X.Z.locals&&X.Z.locals;const et=(0,$.Z)(K,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"actions__item",class:{colored:t.colored},style:{backgroundColor:t.colored?t.operation.color:"transparent"}},[e("div",{staticClass:"icon",class:t.operation.iconClass,style:{backgroundImage:t.operation.iconClass?"":"url(".concat(t.operation.icon,")")}}),t._v(" "),e("div",{staticClass:"actions__item__description"},[e("h3",[t._v(t._s(t.operation.name))]),t._v(" "),e("small",[t._v(t._s(t.operation.description))]),t._v(" "),t.colored?e("NcButton",[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Add new flow"))+"\n\t\t")]):t._e()],1),t._v(" "),e("div",{staticClass:"actions__item_options"},[t._t("default")],2)])}),[],!1,null,"a0480332",null).exports;var nt=i(25108);const it={name:"Rule",components:{ArrowRight:x.default,Check:Q,CheckMark:k.default,Close:b.default,Event:I,NcActionButton:f(),NcActions:g(),NcButton:w(),Operation:et},directives:{Tooltip:m()},props:{rule:{type:Object,required:!0}},data(){return{editing:!1,checks:[],error:null,dirty:this.rule.id<0,originalRule:null}},computed:{operation(){return this.$store.getters.getOperationForRule(this.rule)},ruleStatus(){return this.error||!this.rule.valid||0===this.rule.checks.length||this.rule.checks.some((t=>!0===t.invalid))?{title:t("workflowengine","The configuration is invalid"),icon:"Close",type:"warning",tooltip:{placement:"bottom",show:!0,content:this.error}}:this.dirty?{title:t("workflowengine","Save"),icon:"ArrowRight",type:"primary"}:{title:t("workflowengine","Active"),icon:"CheckMark",type:"success"}},lastCheckComplete(){const t=this.rule.checks[this.rule.checks.length-1];return void 0===t||null!==t.class}},mounted(){this.originalRule=JSON.parse(JSON.stringify(this.rule))},methods:{async updateOperation(t){this.$set(this.rule,"operation",t),await this.updateRule()},validate(t){this.error=null,this.$store.dispatch("updateRule",this.rule)},updateRule(){this.dirty||(this.dirty=!0),this.error=null,this.$store.dispatch("updateRule",this.rule)},async saveRule(){try{await this.$store.dispatch("pushUpdateRule",this.rule),this.dirty=!1,this.error=null,this.originalRule=JSON.parse(JSON.stringify(this.rule))}catch(t){nt.error("Failed to save operation"),this.error=t.response.data.ocs.meta.message}},async deleteRule(){try{await this.$store.dispatch("deleteRule",this.rule)}catch(t){nt.error("Failed to delete operation"),this.error=t.response.data.ocs.meta.message}},cancelRule(){this.rule.id<0?this.$store.dispatch("removeRule",this.rule):(this.$store.dispatch("updateRule",this.originalRule),this.originalRule=JSON.parse(JSON.stringify(this.rule)),this.dirty=!1)},async removeCheck(t){const e=this.rule.checks.findIndex((e=>e===t));e>-1&&this.$delete(this.rule.checks,e),this.$store.dispatch("updateRule",this.rule)},onAddFilter(){this.rule.checks.push({class:null,operator:null,value:""})}}};var ot=i(91372),at={};at.styleTagTransform=Z(),at.setAttributes=D(),at.insert=N().bind(null,"head"),at.domAPI=R(),at.insertStyleElement=F(),B()(ot.Z,at),ot.Z&&ot.Z.locals&&ot.Z.locals;const rt=(0,$.Z)(it,(function(){var t=this,e=t._self._c;return t.operation?e("div",{staticClass:"section rule",style:{borderLeftColor:t.operation.color||""}},[e("div",{staticClass:"trigger"},[e("p",[e("span",[t._v(t._s(t.t("workflowengine","When")))]),t._v(" "),e("Event",{attrs:{rule:t.rule},on:{update:t.updateRule}})],1),t._v(" "),t._l(t.rule.checks,(function(n,i){return e("p",{key:i},[e("span",[t._v(t._s(t.t("workflowengine","and")))]),t._v(" "),e("Check",{attrs:{check:n,rule:t.rule},on:{update:t.updateRule,validate:t.validate,remove:function(e){return t.removeCheck(n)}}})],1)})),t._v(" "),e("p",[e("span"),t._v(" "),t.lastCheckComplete?e("input",{staticClass:"check--add",attrs:{type:"button",value:t.t("workflowengine","Add a new filter")},on:{click:t.onAddFilter}}):t._e()])],2),t._v(" "),e("div",{staticClass:"flow-icon icon-confirm"}),t._v(" "),e("div",{staticClass:"action"},[e("Operation",{attrs:{operation:t.operation,colored:!1}},[t.operation.options?e(t.operation.options,{tag:"component",on:{input:t.updateOperation},model:{value:t.rule.operation,callback:function(e){t.$set(t.rule,"operation",e)},expression:"rule.operation"}}):t._e()],1),t._v(" "),e("div",{staticClass:"buttons"},[t.rule.id<-1||t.dirty?e("NcButton",{on:{click:t.cancelRule}},[t._v("\n\t\t\t\t"+t._s(t.t("workflowengine","Cancel"))+"\n\t\t\t")]):t.dirty?t._e():e("NcButton",{on:{click:t.deleteRule}},[t._v("\n\t\t\t\t"+t._s(t.t("workflowengine","Delete"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:t.ruleStatus.type},on:{click:t.saveRule},scopedSlots:t._u([{key:"icon",fn:function(){return[e(t.ruleStatus.icon,{tag:"component",attrs:{size:20}})]},proxy:!0}],null,!1,2383918876)},[t._v("\n\t\t\t\t"+t._s(t.ruleStatus.title)+"\n\t\t\t")])],1),t._v(" "),t.error?e("p",{staticClass:"error-message"},[t._v("\n\t\t\t"+t._s(t.error)+"\n\t\t")]):t._e()],1)]):t._e()}),[],!1,null,"3def8966",null).exports;var st=i(13299),lt=i.n(st),ct=i(23873),dt=i(20404);const pt={name:"Workflow",components:{NcButton:w(),MenuDown:dt.Z,MenuUp:ct.Z,Operation:et,Rule:rt,NcSettingsSection:lt()},data:()=>({showMoreOperations:!1,appstoreUrl:(0,l.generateUrl)("settings/apps/workflow"),workflowDocUrl:(0,s.j)("workflowengine","doc-url")}),computed:{...(0,a.Se)({rules:"getRules"}),...(0,a.rn)({appstoreEnabled:"appstoreEnabled",scope:"scope",operations:"operations"}),hasMoreOperations(){return Object.keys(this.operations).length>3},getMainOperations(){return this.showMoreOperations?Object.values(this.operations):Object.values(this.operations).slice(0,3)},showAppStoreHint(){return 0===this.scope&&this.appstoreEnabled&&OC.isUserAdmin()}},mounted(){this.$store.dispatch("fetchRules")},methods:{createNewRule(t){this.$store.dispatch("createNewRule",t)}}};var At=i(86504),ut={};ut.styleTagTransform=Z(),ut.setAttributes=D(),ut.insert=N().bind(null,"head"),ut.domAPI=R(),ut.insertStyleElement=F(),B()(At.Z,ut),At.Z&&At.Z.locals&&At.Z.locals;const mt=(0,$.Z)(pt,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"workflowengine"}},[e("NcSettingsSection",{attrs:{title:t.t("workflowengine","Available flows"),"doc-url":t.workflowDocUrl}},[0===t.scope?e("p",{staticClass:"settings-hint"},[e("a",{attrs:{href:"https://nextcloud.com/developer/"}},[t._v(t._s(t.t("workflowengine","For details on how to write your own flow, check out the development documentation.")))])]):t._e(),t._v(" "),e("transition-group",{staticClass:"actions",attrs:{name:"slide",tag:"div"}},[t._l(t.getMainOperations,(function(n){return e("Operation",{key:n.id,attrs:{operation:n},nativeOn:{click:function(e){return t.createNewRule(n)}}})})),t._v(" "),t.showAppStoreHint?e("a",{key:"add",staticClass:"actions__item colored more",attrs:{href:t.appstoreUrl}},[e("div",{staticClass:"icon icon-add"}),t._v(" "),e("div",{staticClass:"actions__item__description"},[e("h3",[t._v(t._s(t.t("workflowengine","More flows")))]),t._v(" "),e("small",[t._v(t._s(t.t("workflowengine","Browse the App Store")))])])]):t._e()],2),t._v(" "),t.hasMoreOperations?e("div",{staticClass:"actions__more"},[e("NcButton",{on:{click:function(e){t.showMoreOperations=!t.showMoreOperations}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.showMoreOperations?e("MenuUp",{attrs:{size:20}}):e("MenuDown",{attrs:{size:20}})]},proxy:!0}],null,!1,3801522717)},[t._v("\n\t\t\t\t"+t._s(t.showMoreOperations?t.t("workflowengine","Show less"):t.t("workflowengine","Show more"))+"\n\t\t\t")])],1):t._e(),t._v(" "),0===t.scope?e("h2",{staticClass:"configured-flows"},[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Configured flows"))+"\n\t\t")]):e("h2",{staticClass:"configured-flows"},[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Your flows"))+"\n\t\t")])],1),t._v(" "),t.rules.length>0?e("transition-group",{attrs:{name:"slide"}},t._l(t.rules,(function(t){return e("Rule",{key:t.id,attrs:{rule:t}})})),1):t._e()],1)}),[],!1,null,"4e25e34d",null).exports,ht=/^\/(.*)\/([gui]{0,3})$/,gt=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(3[0-2]|[1-2][0-9]|[1-9])$/,Ct=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/;var ft=i(94179),vt=i.n(ft);const wt={props:{value:{type:String,default:""},check:{type:Object,default:()=>({})}},data:()=>({newValue:""}),watch:{value:{immediate:!0,handler(t){this.updateInternalValue(t)}}},methods:{updateInternalValue(t){this.newValue=t}}},xt={name:"FileMimeType",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({predefinedTypes:[{icon:"icon-folder",label:t("workflowengine","Folder"),id:"httpd/unix-directory"},{icon:"icon-picture",label:t("workflowengine","Images"),id:"/image\\/.*/"},{iconUrl:(0,l.imagePath)("core","filetypes/x-office-document"),label:t("workflowengine","Office documents"),id:"/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/"},{iconUrl:(0,l.imagePath)("core","filetypes/application-pdf"),label:t("workflowengine","PDF documents"),id:"application/pdf"}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},isPredefined(){return!!this.predefinedTypes.find((t=>this.newValue===t.id))},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom MIME type"),id:""}),currentValue(){return this.predefinedTypes.find((t=>this.newValue===t.id))||{icon:"icon-settings-dark",label:t("workflowengine","Custom mimetype"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var kt=i(4643),bt={};bt.styleTagTransform=Z(),bt.setAttributes=D(),bt.insert=N().bind(null,"head"),bt.domAPI=R(),bt.insertStyleElement=F(),B()(kt.Z,bt),kt.Z&&kt.Z.locals&&kt.Z.locals;const _t=(0,$.Z)(xt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a file type"),label:"label",options:t.options,clearable:!1},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[n.icon?e("span",{staticClass:"option__icon",class:n.icon}):e("span",{staticClass:"option__icon-img"},[e("img",{attrs:{src:n.iconUrl,alt:""}})]),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[n.icon?e("span",{staticClass:"option__icon",class:n.icon}):e("span",{staticClass:"option__icon-img"},[e("img",{attrs:{src:n.iconUrl,alt:""}})]),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text",placeholder:t.t("workflowengine","e.g. httpd/unix-directory")},domProps:{value:t.currentValue.id},on:{input:t.updateCustom}})],1)}),[],!1,null,"1a11f354",null).exports;var yt=i(11677);const jt={name:"FileSystemTag",components:{NcSelectTags:i.n(yt)()},props:{value:{type:String,default:""}},data:()=>({newValue:[]}),watch:{value(){this.updateValue()}},beforeMount(){this.updateValue()},methods:{updateValue(){""!==this.value?this.newValue=parseInt(this.value):this.newValue=null},update(){this.$emit("input",this.newValue||"")}}},Ot=(0,$.Z)(jt,(function(){var t=this;return(0,t._self._c)("NcSelectTags",{attrs:{multiple:!1},on:{input:t.update},model:{value:t.newValue,callback:function(e){t.newValue=e},expression:"newValue"}})}),[],!1,null,"3bb09106",null).exports,Et=()=>[{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")},{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")}],Bt=[{class:"OCA\\WorkflowEngine\\Check\\FileName",name:t("workflowengine","File name"),operators:Et,placeholder:t=>"matches"===t.operator||"!matches"===t.operator?"/^dummy-.+$/i":"filename.txt",validate:t=>{return"matches"!==t.operator&&"!matches"!==t.operator||!!(e=t.value)&&null!==ht.exec(e);var e}},{class:"OCA\\WorkflowEngine\\Check\\FileMimeType",name:t("workflowengine","File MIME type"),operators:Et,component:_t},{class:"OCA\\WorkflowEngine\\Check\\FileSize",name:t("workflowengine","File size (upload)"),operators:[{operator:"less",name:t("workflowengine","less")},{operator:"!greater",name:t("workflowengine","less or equals")},{operator:"!less",name:t("workflowengine","greater or equals")},{operator:"greater",name:t("workflowengine","greater")}],placeholder:t=>"5 MB",validate:t=>!!t.value&&null!==t.value.match(/^[0-9]+[ ]?[kmgt]?b$/i)},{class:"OCA\\WorkflowEngine\\Check\\RequestRemoteAddress",name:t("workflowengine","Request remote address"),operators:[{operator:"matchesIPv4",name:t("workflowengine","matches IPv4")},{operator:"!matchesIPv4",name:t("workflowengine","does not match IPv4")},{operator:"matchesIPv6",name:t("workflowengine","matches IPv6")},{operator:"!matchesIPv6",name:t("workflowengine","does not match IPv6")}],placeholder:t=>"matchesIPv6"===t.operator||"!matchesIPv6"===t.operator?"::1/128":"127.0.0.1/32",validate:t=>{return"matchesIPv6"===t.operator||"!matchesIPv6"===t.operator?!!(e=t.value)&&null!==Ct.exec(e):function(t){return!!t&&null!==gt.exec(t)}(t.value);var e}},{class:"OCA\\WorkflowEngine\\Check\\FileSystemTags",name:t("workflowengine","File system tag"),operators:[{operator:"is",name:t("workflowengine","is tagged with")},{operator:"!is",name:t("workflowengine","is not tagged with")}],component:Ot}],St={name:"RequestUserAgent",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({newValue:"",predefinedTypes:[{id:"android",label:t("workflowengine","Android client"),icon:"icon-phone"},{id:"ios",label:t("workflowengine","iOS client"),icon:"icon-phone"},{id:"desktop",label:t("workflowengine","Desktop client"),icon:"icon-desktop"},{id:"mail",label:t("workflowengine","Thunderbird & Outlook addons"),icon:"icon-mail"}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},matchingPredefined(){return this.predefinedTypes.find((t=>this.newValue===t.id))},isPredefined(){return!!this.matchingPredefined},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom user agent"),id:""}),currentValue(){return this.matchingPredefined?this.matchingPredefined:{icon:"icon-settings-dark",label:t("workflowengine","Custom user agent"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var Rt=i(47892),Vt={};Vt.styleTagTransform=Z(),Vt.setAttributes=D(),Vt.insert=N().bind(null,"head"),Vt.domAPI=R(),Vt.insertStyleElement=F(),B()(Rt.Z,Vt),Rt.Z&&Rt.Z.locals&&Rt.Z.locals;const Nt=(0,$.Z)(St,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a user agent"),label:"label",options:t.options,clearable:!1},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text"},domProps:{value:t.currentValue.pattern},on:{input:t.updateCustom}})],1)}),[],!1,null,"003881d4",null).exports;var Tt=i(80008),Dt=i.n(Tt);const Pt=Dt().tz.names(),Ft={name:"RequestTime",components:{NcSelect:W()},mixins:[wt],props:{value:{type:String,default:""}},data:()=>({timezones:Pt,valid:!1,newValue:{startTime:null,endTime:null,timezone:Dt().tz.guess()}}),mounted(){this.validate()},methods:{updateInternalValue(t){try{const e=JSON.parse(t);2===e.length&&(this.newValue={startTime:e[0].split(" ",2)[0],endTime:e[1].split(" ",2)[0],timezone:e[0].split(" ",2)[1]})}catch(t){}},validate(){return this.valid=this.newValue.startTime&&null!==this.newValue.startTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i)&&this.newValue.endTime&&null!==this.newValue.endTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i)&&null!==Dt().tz.zone(this.newValue.timezone),this.valid?this.$emit("valid"):this.$emit("invalid"),this.valid},update(){if(null===this.newValue.timezone&&(this.newValue.timezone=Dt().tz.guess()),this.validate()){const t='["'.concat(this.newValue.startTime," ").concat(this.newValue.timezone,'","').concat(this.newValue.endTime," ").concat(this.newValue.timezone,'"]');this.$emit("input",t)}}}};var zt=i(5487),Zt={};Zt.styleTagTransform=Z(),Zt.setAttributes=D(),Zt.insert=N().bind(null,"head"),Zt.domAPI=R(),Zt.insertStyleElement=F(),B()(zt.Z,Zt),zt.Z&&zt.Z.locals&&zt.Z.locals;const Ut=(0,$.Z)(Ft,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"timeslot"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newValue.startTime,expression:"newValue.startTime"}],staticClass:"timeslot--start",attrs:{type:"text",placeholder:"e.g. 08:00"},domProps:{value:t.newValue.startTime},on:{input:[function(e){e.target.composing||t.$set(t.newValue,"startTime",e.target.value)},t.update]}}),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.newValue.endTime,expression:"newValue.endTime"}],attrs:{type:"text",placeholder:"e.g. 18:00"},domProps:{value:t.newValue.endTime},on:{input:[function(e){e.target.composing||t.$set(t.newValue,"endTime",e.target.value)},t.update]}}),t._v(" "),t.valid?t._e():e("p",{staticClass:"invalid-hint"},[t._v("\n\t\t"+t._s(t.t("workflowengine","Please enter a valid time span"))+"\n\t")]),t._v(" "),e("NcSelect",{directives:[{name:"show",rawName:"v-show",value:t.valid,expression:"valid"}],attrs:{clearable:!1,options:t.timezones},on:{input:t.update},model:{value:t.newValue.timezone,callback:function(e){t.$set(t.newValue,"timezone",e)},expression:"newValue.timezone"}})],1)}),[],!1,null,"7a2ecc67",null).exports,Gt={name:"RequestURL",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({newValue:"",predefinedTypes:[{icon:"icon-files-dark",id:"webdav",label:t("workflowengine","Files WebDAV")}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},placeholder(){return"matches"===this.check.operator||"!matches"===this.check.operator?"/^https\\:\\/\\/localhost\\/index\\.php$/i":"https://localhost/index.php"},matchingPredefined(){return this.predefinedTypes.find((t=>this.newValue===t.id))},isPredefined(){return!!this.matchingPredefined},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom URL"),id:""}),currentValue(){return this.matchingPredefined?this.matchingPredefined:{icon:"icon-settings-dark",label:t("workflowengine","Custom URL"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var $t=i(35784),It={};It.styleTagTransform=Z(),It.setAttributes=D(),It.insert=N().bind(null,"head"),It.domAPI=R(),It.insertStyleElement=F(),B()($t.Z,It),$t.Z&&$t.Z.locals&&$t.Z.locals;const qt=(0,$.Z)(Gt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a request URL"),label:"label",clearable:!1,options:t.options},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text",placeholder:t.placeholder},domProps:{value:t.currentValue.id},on:{input:t.updateCustom}})],1)}),[],!1,null,"1a72d97f",null).exports;var Wt=i(25108);const Mt=[],Lt={isLoading:!1},Yt={name:"RequestUserGroup",components:{NcSelect:W()},props:{value:{type:String,default:""},check:{type:Object,default:()=>({})}},data:()=>({groups:Mt,status:Lt}),computed:{currentValue(){return this.groups.find((t=>t.id===this.value))||null}},async mounted(){0===this.groups.length&&await this.searchAsync(""),null===this.currentValue&&await this.searchAsync(this.value)},methods:{searchAsync(t){if(!this.status.isLoading)return this.status.isLoading=!0,r.default.get((0,l.generateOcsUrl)("cloud/groups/details?limit=20&search={searchQuery}",{searchQuery:t})).then((t=>{t.data.ocs.data.groups.forEach((t=>{this.addGroup({id:t.id,displayname:t.displayname})})),this.status.isLoading=!1}),(t=>{Wt.error("Error while loading group list",t.response)}))},addGroup(t){-1===this.groups.findIndex((e=>e.id===t.id))&&this.groups.push(t)}}};var Ht=i(43439),Jt={};Jt.styleTagTransform=Z(),Jt.setAttributes=D(),Jt.insert=N().bind(null,"head"),Jt.domAPI=R(),Jt.insertStyleElement=F(),B()(Ht.Z,Jt),Ht.Z&&Ht.Z.locals&&Ht.Z.locals;const Qt=(0,$.Z)(Yt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,loading:t.status.isLoading&&0===t.groups.length,options:t.groups,clearable:!1,label:"displayname"},on:{"search-change":t.searchAsync,input:e=>t.$emit("input",e.id)}})],1)}),[],!1,null,"16d8123e",null).exports,Kt=[...Bt,{class:"OCA\\WorkflowEngine\\Check\\RequestURL",name:t("workflowengine","Request URL"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}],component:qt},{class:"OCA\\WorkflowEngine\\Check\\RequestTime",name:t("workflowengine","Request time"),operators:[{operator:"in",name:t("workflowengine","between")},{operator:"!in",name:t("workflowengine","not between")}],component:Ut},{class:"OCA\\WorkflowEngine\\Check\\RequestUserAgent",name:t("workflowengine","Request user agent"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}],component:Nt},{class:"OCA\\WorkflowEngine\\Check\\UserGroupMembership",name:t("workflowengine","User group membership"),operators:[{operator:"is",name:t("workflowengine","is member of")},{operator:"!is",name:t("workflowengine","is not member of")}],component:Qt}];window.OCA.WorkflowEngine=Object.assign({},OCA.WorkflowEngine,{registerCheck(t){A.commit("addPluginCheck",t)},registerOperator(t){A.commit("addPluginOperator",t)}}),Kt.forEach((t=>window.OCA.WorkflowEngine.registerCheck(t))),o.default.use(a.ZP),o.default.prototype.t=t,new(o.default.extend(mt))({store:A}).$mount("#workflowengine")},52802:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".check[data-v-07a2739b]{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;padding-right:20px}.check>*[data-v-07a2739b]:not(.close){width:180px}.check>.comparator[data-v-07a2739b]{min-width:200px;width:200px}.check>.option[data-v-07a2739b]{min-width:260px;width:260px;min-height:48px}.check>.option>input[type=text][data-v-07a2739b]{min-height:48px}.check>.v-select[data-v-07a2739b],.check>.button-vue[data-v-07a2739b],.check>input[type=text][data-v-07a2739b]{margin-right:5px;margin-bottom:5px}input[type=text][data-v-07a2739b]{margin:0}.invalid[data-v-07a2739b]{border-color:var(--color-error) !important}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Check.vue"],names:[],mappings:"AACA,wBACC,YAAA,CACA,cAAA,CACA,sBAAA,CACA,UAAA,CACA,kBAAA,CAEA,sCACC,WAAA,CAED,oCACC,eAAA,CACA,WAAA,CAED,gCACC,eAAA,CACA,WAAA,CACA,eAAA,CAEA,iDACC,eAAA,CAGF,+GAGC,gBAAA,CACA,iBAAA,CAGF,kCACC,QAAA,CAED,0BACC,0CAAA",sourcesContent:["\n.check {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start; // to not stretch components vertically\n\twidth: 100%;\n\tpadding-right: 20px;\n\n\t& > *:not(.close) {\n\t\twidth: 180px;\n\t}\n\t& > .comparator {\n\t\tmin-width: 200px;\n\t\twidth: 200px;\n\t}\n\t& > .option {\n\t\tmin-width: 260px;\n\t\twidth: 260px;\n\t\tmin-height: 48px;\n\n\t\t& > input[type=text] {\n\t\t\tmin-height: 48px;\n\t\t}\n\t}\n\t& > .v-select,\n\t& > .button-vue,\n\t& > input[type=text] {\n\t\tmargin-right: 5px;\n\t\tmargin-bottom: 5px;\n\t}\n}\ninput[type=text] {\n\tmargin: 0;\n}\n.invalid {\n\tborder-color: var(--color-error) !important;\n}\n"],sourceRoot:""}]);const s=r},4643:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".v-select[data-v-1a11f354],input[type=text][data-v-1a11f354]{width:100%}input[type=text][data-v-1a11f354]{min-height:48px}.option__icon[data-v-1a11f354],.option__icon-img[data-v-1a11f354]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__icon-img[data-v-1a11f354]{text-align:center}.option__title[data-v-1a11f354]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/FileMimeType.vue"],names:[],mappings:"AACA,6DAEC,UAAA,CAGD,kCACC,eAAA,CAGD,kEAEC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,mCACC,iBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA",sourcesContent:["\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\n\ninput[type=text] {\n\tmin-height: 48px;\n}\n\n.option__icon,\n.option__icon-img {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__icon-img {\n\ttext-align: center;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},5487:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".timeslot[data-v-7a2ecc67]{display:flex;flex-grow:1;flex-wrap:wrap;max-width:180px}.timeslot .multiselect[data-v-7a2ecc67]{width:100%;margin-bottom:5px}.timeslot .multiselect[data-v-7a2ecc67] .multiselect__tags:not(:hover):not(:focus):not(:active){border:1px solid rgba(0,0,0,0)}.timeslot input[type=text][data-v-7a2ecc67]{width:50%;margin:0;margin-bottom:5px;min-height:48px}.timeslot input[type=text].timeslot--start[data-v-7a2ecc67]{margin-right:5px;width:calc(50% - 5px)}.timeslot .invalid-hint[data-v-7a2ecc67]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestTime.vue"],names:[],mappings:"AACA,2BACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAEA,wCACC,UAAA,CACA,iBAAA,CAGD,gGACC,8BAAA,CAGD,4CACC,SAAA,CACA,QAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACC,gBAAA,CACA,qBAAA,CAIF,yCACC,mCAAA",sourcesContent:["\n.timeslot {\n\tdisplay: flex;\n\tflex-grow: 1;\n\tflex-wrap: wrap;\n\tmax-width: 180px;\n\n\t.multiselect {\n\t\twidth: 100%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\n\t\tborder: 1px solid transparent;\n\t}\n\n\tinput[type=text] {\n\t\twidth: 50%;\n\t\tmargin: 0;\n\t\tmargin-bottom: 5px;\n\t\tmin-height: 48px;\n\n\t\t&.timeslot--start {\n\t\t\tmargin-right: 5px;\n\t\t\twidth: calc(50% - 5px);\n\t\t}\n\t}\n\n\t.invalid-hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const s=r},35784:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".v-select[data-v-1a72d97f],input[type=text][data-v-1a72d97f]{width:100%}input[type=text][data-v-1a72d97f]{min-height:48px}.option__icon[data-v-1a72d97f]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__title[data-v-1a72d97f]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestURL.vue"],names:[],mappings:"AACA,6DAEC,UAAA,CAED,kCACC,eAAA,CAGD,+BACC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA",sourcesContent:["\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\ninput[type='text'] {\n\tmin-height: 48px;\n}\n\n.option__icon {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},53667:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".event[data-v-1825d70e]{margin-bottom:5px}.isComplex img[data-v-1825d70e]{vertical-align:text-top}.isComplex span[data-v-1825d70e]{padding-top:2px;display:inline-block}.multiselect[data-v-1825d70e]{width:100%;max-width:550px;margin-top:4px}.multiselect[data-v-1825d70e] .multiselect__single{display:flex}.multiselect[data-v-1825d70e]:not(.multiselect--active) .multiselect__tags{background-color:var(--color-main-background) !important;border:1px solid rgba(0,0,0,0)}.multiselect[data-v-1825d70e] .multiselect__tags{background-color:var(--color-main-background) !important;height:auto;min-height:34px}.multiselect[data-v-1825d70e]:not(.multiselect--disabled) .multiselect__tags .multiselect__single{background-image:var(--icon-triangle-s-dark);background-repeat:no-repeat;background-position:right center}input[data-v-1825d70e]{border:1px solid rgba(0,0,0,0)}.option__title[data-v-1825d70e]{margin-left:5px;color:var(--color-main-text)}.option__title_single[data-v-1825d70e]{font-weight:900}.option__icon[data-v-1825d70e]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.eventlist img[data-v-1825d70e],.eventlist .text[data-v-1825d70e]{vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Event.vue"],names:[],mappings:"AACA,wBACC,iBAAA,CAGA,gCACC,uBAAA,CAED,iCACC,eAAA,CACA,oBAAA,CAGF,8BACC,UAAA,CACA,eAAA,CACA,cAAA,CAED,mDACC,YAAA,CAED,2EACC,wDAAA,CACA,8BAAA,CAGD,iDACC,wDAAA,CACA,WAAA,CACA,eAAA,CAGD,kGACC,4CAAA,CACA,2BAAA,CACA,gCAAA,CAGD,uBACC,8BAAA,CAGD,gCACC,eAAA,CACA,4BAAA,CAED,uCACC,eAAA,CAGD,+BACC,UAAA,CACA,WAAA,CACA,uCAAA,CAGD,kEAEC,qBAAA",sourcesContent:["\n.event {\n\tmargin-bottom: 5px;\n}\n.isComplex {\n\timg {\n\t\tvertical-align: text-top;\n\t}\n\tspan {\n\t\tpadding-top: 2px;\n\t\tdisplay: inline-block;\n\t}\n}\n.multiselect {\n\twidth: 100%;\n\tmax-width: 550px;\n\tmargin-top: 4px;\n}\n.multiselect::v-deep .multiselect__single {\n\tdisplay: flex;\n}\n.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\n\tbackground-color: var(--color-main-background) !important;\n\tborder: 1px solid transparent;\n}\n\n.multiselect::v-deep .multiselect__tags {\n\tbackground-color: var(--color-main-background) !important;\n\theight: auto;\n\tmin-height: 34px;\n}\n\n.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\n\tbackground-image: var(--icon-triangle-s-dark);\n\tbackground-repeat: no-repeat;\n\tbackground-position: right center;\n}\n\ninput {\n\tborder: 1px solid transparent;\n}\n\n.option__title {\n\tmargin-left: 5px;\n\tcolor: var(--color-main-text);\n}\n.option__title_single {\n\tfont-weight: 900;\n}\n\n.option__icon {\n\twidth: 16px;\n\theight: 16px;\n\tfilter: var(--background-invert-if-dark);\n}\n\n.eventlist img,\n.eventlist .text {\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},67767:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".actions__item[data-v-a0480332]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-a0480332]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-a0480332]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-a0480332]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-a0480332],small[data-v-a0480332]{padding:6px;display:block}h3[data-v-a0480332]{margin:0;padding:0;font-weight:600}small[data-v-a0480332]{font-size:10pt;flex-grow:1}.colored[data-v-a0480332]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-a0480332],.colored:not(.more) small[data-v-a0480332]{color:var(--color-primary-element-text)}.actions__item[data-v-a0480332]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-a0480332]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-a0480332]{padding:0}.actions__item:not(.colored) .icon[data-v-a0480332]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-a0480332]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-a0480332]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/workflowengine/src/styles/operation.scss"],names:[],mappings:"AAAA,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA",sourcesContent:[".actions__item {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: -1px;\n\tpadding: 10px;\n\tborder-radius: var(--border-radius-large);\n\tmargin-right: 20px;\n\tmargin-bottom: 20px;\n}\n.actions__item .icon {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 50px;\n\tbackground-size: 50px 50px;\n\tbackground-position: center center;\n\tmargin-top: 10px;\n\tmargin-bottom: 10px;\n\tbackground-repeat: no-repeat;\n}\n.actions__item__description {\n\ttext-align: center;\n\tflex-grow: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n.actions__item_options {\n\twidth: 100%;\n\tmargin-top: 10px;\n\tpadding-left: 60px;\n}\nh3, small {\n\tpadding: 6px;\n\tdisplay: block;\n}\nh3 {\n\tmargin: 0;\n\tpadding: 0;\n\tfont-weight: 600;\n}\nsmall {\n\tfont-size: 10pt;\n\tflex-grow: 1;\n}\n\n.colored:not(.more) {\n\tbackground-color: var(--color-primary-element);\n\th3, small {\n\t\tcolor: var(--color-primary-element-text)\n\t}\n}\n\n.actions__item:not(.colored) {\n\tflex-direction: row;\n\n\t.actions__item__description {\n\t\tpadding-top: 5px;\n\t\ttext-align: left;\n\t\twidth: calc(100% - 105px);\n\t\tsmall {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\t.icon {\n\t\twidth: 50px;\n\t\tmargin: 0;\n\t\tmargin-right: 10px;\n\t\t&:not(.icon-invert) {\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n}\n\n.colored .icon-invert {\n\tfilter: var(--background-invert-if-bright);\n}\n"],sourceRoot:""}]);const s=r},91372:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".buttons[data-v-3def8966]{display:flex;justify-content:end}.buttons button[data-v-3def8966]{margin-left:5px}.buttons button[data-v-3def8966]:last-child{margin-right:10px}.error-message[data-v-3def8966]{float:right;margin-right:10px}.flow-icon[data-v-3def8966]{width:44px}.rule[data-v-3def8966]{display:flex;flex-wrap:wrap;border-left:5px solid var(--color-primary-element)}.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{flex-grow:1;min-height:100px;max-width:920px}.rule .action[data-v-3def8966]{max-width:400px;position:relative}.rule .icon-confirm[data-v-3def8966]{background-position:right 27px;padding-right:20px;margin-right:20px}.trigger p[data-v-3def8966],.action p[data-v-3def8966]{min-height:34px;display:flex}.trigger p>span[data-v-3def8966],.action p>span[data-v-3def8966]{min-width:50px;text-align:right;color:var(--color-text-maxcontrast);padding-right:10px;padding-top:6px}.trigger p .multiselect[data-v-3def8966],.action p .multiselect[data-v-3def8966]{flex-grow:1;max-width:300px}.trigger p:first-child span[data-v-3def8966]{padding-top:3px}.trigger p[data-v-3def8966]:last-child{padding-top:8px}.check--add[data-v-3def8966]{background-position:7px center;background-color:rgba(0,0,0,0);padding-left:6px;margin:0;width:180px;border-radius:var(--border-radius);color:var(--color-text-maxcontrast);font-weight:normal;text-align:left;font-size:1em}@media(max-width: 1400px){.rule[data-v-3def8966],.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{width:100%;max-width:100%}.rule .flow-icon[data-v-3def8966]{display:none}}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Rule.vue"],names:[],mappings:"AAEA,0BACC,YAAA,CACA,mBAAA,CAEA,iCACC,eAAA,CAED,4CACC,iBAAA,CAIF,gCACC,WAAA,CACA,iBAAA,CAGD,4BACC,UAAA,CAGD,uBACC,YAAA,CACA,cAAA,CACA,kDAAA,CAEA,+DAEC,WAAA,CACA,gBAAA,CACA,eAAA,CAED,+BACC,eAAA,CACA,iBAAA,CAED,qCACC,8BAAA,CACA,kBAAA,CACA,iBAAA,CAGF,uDACC,eAAA,CACA,YAAA,CAEA,iEACC,cAAA,CACA,gBAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CAED,iFACC,WAAA,CACA,eAAA,CAGF,6CACE,eAAA,CAEF,uCACE,eAAA,CAGF,6BACC,8BAAA,CACA,8BAAA,CACA,gBAAA,CACA,QAAA,CACA,WAAA,CACA,kCAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CAGD,0BAEE,sFACC,UAAA,CACA,cAAA,CAED,kCACC,YAAA,CAAA",sourcesContent:["\n\n.buttons {\n\tdisplay: flex;\n\tjustify-content: end;\n\n\tbutton {\n\t\tmargin-left: 5px;\n\t}\n\tbutton:last-child{\n\t\tmargin-right: 10px;\n\t}\n}\n\n.error-message {\n\tfloat: right;\n\tmargin-right: 10px;\n}\n\n.flow-icon {\n\twidth: 44px;\n}\n\n.rule {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tborder-left: 5px solid var(--color-primary-element);\n\n\t.trigger,\n\t.action {\n\t\tflex-grow: 1;\n\t\tmin-height: 100px;\n\t\tmax-width: 920px;\n\t}\n\t.action {\n\t\tmax-width: 400px;\n\t\tposition: relative;\n\t}\n\t.icon-confirm {\n\t\tbackground-position: right 27px;\n\t\tpadding-right: 20px;\n\t\tmargin-right: 20px;\n\t}\n}\n.trigger p, .action p {\n\tmin-height: 34px;\n\tdisplay: flex;\n\n\t& > span {\n\t\tmin-width: 50px;\n\t\ttext-align: right;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-right: 10px;\n\t\tpadding-top: 6px;\n\t}\n\t.multiselect {\n\t\tflex-grow: 1;\n\t\tmax-width: 300px;\n\t}\n}\n.trigger p:first-child span {\n\t\tpadding-top: 3px;\n}\n.trigger p:last-child {\n\t\tpadding-top: 8px;\n}\n\n.check--add {\n\tbackground-position: 7px center;\n\tbackground-color: transparent;\n\tpadding-left: 6px;\n\tmargin: 0;\n\twidth: 180px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-text-maxcontrast);\n\tfont-weight: normal;\n\ttext-align: left;\n\tfont-size: 1em;\n}\n\n@media (max-width:1400px) {\n\t.rule {\n\t\t&, .trigger, .action {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 100%;\n\t\t}\n\t\t.flow-icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const s=r},86504:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"#workflowengine[data-v-4e25e34d]{border-bottom:1px solid var(--color-border)}.section[data-v-4e25e34d]{max-width:100vw}.section h2.configured-flows[data-v-4e25e34d]{margin-top:50px;margin-bottom:0}.actions[data-v-4e25e34d]{display:flex;flex-wrap:wrap;max-width:1200px}.actions .actions__item[data-v-4e25e34d]{max-width:280px;flex-basis:250px}.actions__more[data-v-4e25e34d]{margin-bottom:10px}.slide-enter-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:ease-in;-webkit-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.slide-leave-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-webkit-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-o-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);transition-timing-function:cubic-bezier(0, 1, 0.5, 1)}.slide-enter-to[data-v-4e25e34d],.slide-leave[data-v-4e25e34d]{max-height:500px;overflow:hidden}.slide-enter[data-v-4e25e34d],.slide-leave-to[data-v-4e25e34d]{overflow:hidden;max-height:0;padding-top:0;padding-bottom:0}.actions__item[data-v-4e25e34d]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-4e25e34d]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-4e25e34d]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-4e25e34d]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-4e25e34d],small[data-v-4e25e34d]{padding:6px;display:block}h3[data-v-4e25e34d]{margin:0;padding:0;font-weight:600}small[data-v-4e25e34d]{font-size:10pt;flex-grow:1}.colored[data-v-4e25e34d]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-4e25e34d],.colored:not(.more) small[data-v-4e25e34d]{color:var(--color-primary-element-text)}.actions__item[data-v-4e25e34d]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-4e25e34d]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-4e25e34d]{padding:0}.actions__item:not(.colored) .icon[data-v-4e25e34d]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-4e25e34d]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-4e25e34d]{filter:var(--background-invert-if-bright)}.actions__item.more[data-v-4e25e34d]{background-color:var(--color-background-dark)}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Workflow.vue","webpack://./apps/workflowengine/src/styles/operation.scss"],names:[],mappings:"AACA,iCACC,2CAAA,CAED,0BACC,eAAA,CAEA,8CACC,eAAA,CACA,eAAA,CAGF,0BACC,YAAA,CACA,cAAA,CACA,gBAAA,CACA,yCACC,eAAA,CACA,gBAAA,CAGF,gCACC,kBAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uCAAA,CACA,0CAAA,CACA,qCAAA,CACA,kCAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,0DAAA,CACA,6DAAA,CACA,wDAAA,CACA,qDAAA,CAGD,+DACC,gBAAA,CACA,eAAA,CAGD,+DACC,eAAA,CACA,YAAA,CACA,aAAA,CACA,gBAAA,CCxDD,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA,CDfD,qCACC,6CAAA",sourcesContent:['\n#workflowengine {\n\tborder-bottom: 1px solid var(--color-border);\n}\n.section {\n\tmax-width: 100vw;\n\n\th2.configured-flows {\n\t\tmargin-top: 50px;\n\t\tmargin-bottom: 0;\n\t}\n}\n.actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tmax-width: 1200px;\n\t.actions__item {\n\t\tmax-width: 280px;\n\t\tflex-basis: 250px;\n\t}\n}\n.actions__more {\n\tmargin-bottom: 10px;\n}\n\n.slide-enter-active {\n\t-moz-transition-duration: 0.3s;\n\t-webkit-transition-duration: 0.3s;\n\t-o-transition-duration: 0.3s;\n\ttransition-duration: 0.3s;\n\t-moz-transition-timing-function: ease-in;\n\t-webkit-transition-timing-function: ease-in;\n\t-o-transition-timing-function: ease-in;\n\ttransition-timing-function: ease-in;\n}\n\n.slide-leave-active {\n\t-moz-transition-duration: 0.3s;\n\t-webkit-transition-duration: 0.3s;\n\t-o-transition-duration: 0.3s;\n\ttransition-duration: 0.3s;\n\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n}\n\n.slide-enter-to, .slide-leave {\n\tmax-height: 500px;\n\toverflow: hidden;\n}\n\n.slide-enter, .slide-leave-to {\n\toverflow: hidden;\n\tmax-height: 0;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n}\n\n@import "./../styles/operation";\n\n.actions__item.more {\n\tbackground-color: var(--color-background-dark);\n}\n',".actions__item {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: -1px;\n\tpadding: 10px;\n\tborder-radius: var(--border-radius-large);\n\tmargin-right: 20px;\n\tmargin-bottom: 20px;\n}\n.actions__item .icon {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 50px;\n\tbackground-size: 50px 50px;\n\tbackground-position: center center;\n\tmargin-top: 10px;\n\tmargin-bottom: 10px;\n\tbackground-repeat: no-repeat;\n}\n.actions__item__description {\n\ttext-align: center;\n\tflex-grow: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n.actions__item_options {\n\twidth: 100%;\n\tmargin-top: 10px;\n\tpadding-left: 60px;\n}\nh3, small {\n\tpadding: 6px;\n\tdisplay: block;\n}\nh3 {\n\tmargin: 0;\n\tpadding: 0;\n\tfont-weight: 600;\n}\nsmall {\n\tfont-size: 10pt;\n\tflex-grow: 1;\n}\n\n.colored:not(.more) {\n\tbackground-color: var(--color-primary-element);\n\th3, small {\n\t\tcolor: var(--color-primary-element-text)\n\t}\n}\n\n.actions__item:not(.colored) {\n\tflex-direction: row;\n\n\t.actions__item__description {\n\t\tpadding-top: 5px;\n\t\ttext-align: left;\n\t\twidth: calc(100% - 105px);\n\t\tsmall {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\t.icon {\n\t\twidth: 50px;\n\t\tmargin: 0;\n\t\tmargin-right: 10px;\n\t\t&:not(.icon-invert) {\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n}\n\n.colored .icon-invert {\n\tfilter: var(--background-invert-if-bright);\n}\n"],sourceRoot:""}]);const s=r},47892:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"\n.v-select[data-v-003881d4],\ninput[type='text'][data-v-003881d4] {\n\twidth: 100%;\n}\ninput[type='text'][data-v-003881d4] {\n\tmin-height: 48px;\n}\n.option__icon[data-v-003881d4] {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n.option__title[data-v-003881d4] {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestUserAgent.vue"],names:[],mappings:";AAmJA;;CAEA,WAAA;AACA;AACA;CACA,gBAAA;AACA;AAEA;CACA,qBAAA;CACA,eAAA;CACA,2BAAA;CACA,sBAAA;AACA;AAEA;CACA,oBAAA;CACA,wBAAA;CACA,sBAAA;AACA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a user agent')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.pattern\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestUserAgent',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\n\t\t\t\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n"],sourceRoot:""}]);const s=r},43439:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"\n.v-select[data-v-16d8123e] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestUserGroup.vue"],names:[],mappings:";AA2GA;CACA,WAAA;AACA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:loading=\"status.isLoading && groups.length === 0\"\n\t\t\t:options=\"groups\"\n\t\t\t:clearable=\"false\"\n\t\t\tlabel=\"displayname\"\n\t\t\t@search-change=\"searchAsync\"\n\t\t\t@input=\"(value) => $emit('input', value.id)\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst groups = []\nconst status = {\n\tisLoading: false,\n}\n\nexport default {\n\tname: 'RequestUserGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tstatus,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcurrentValue() {\n\t\t\treturn this.groups.find(group => group.id === this.value) || null\n\t\t},\n\t},\n\tasync mounted() {\n\t\tif (this.groups.length === 0) {\n\t\t\tawait this.searchAsync('')\n\t\t}\n\t\tif (this.currentValue === null) {\n\t\t\tawait this.searchAsync(this.value)\n\t\t}\n\t},\n\tmethods: {\n\t\tsearchAsync(searchQuery) {\n\t\t\tif (this.status.isLoading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.status.isLoading = true\n\t\t\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\n\t\t\t\tresponse.data.ocs.data.groups.forEach((group) => {\n\t\t\t\t\tthis.addGroup({\n\t\t\t\t\t\tid: group.id,\n\t\t\t\t\t\tdisplayname: group.displayname,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\tthis.status.isLoading = false\n\t\t\t}, (error) => {\n\t\t\t\tconsole.error('Error while loading group list', error.response)\n\t\t\t})\n\t\t},\n\t\taddGroup(group) {\n\t\t\tconst index = this.groups.findIndex((item) => item.id === group.id)\n\t\t\tif (index === -1) {\n\t\t\t\tthis.groups.push(group)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n.v-select {\n\twidth: 100%;\n}\n</style>\n"],sourceRoot:""}]);const s=r},46700:(t,e,n)=>{var i={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function o(t){var e=a(t);return n(e)}function a(t){if(!n.o(i,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return i[t]}o.keys=function(){return Object.keys(i)},o.resolve=a,t.exports=o,o.id=46700}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var n=a[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,i,o)=>{if(!n){var a=1/0;for(d=0;d<e.length;d++){n=e[d][0],i=e[d][1],o=e[d][2];for(var s=!0,l=0;l<n.length;l++)(!1&o||a>=o)&&Object.keys(r.O).every((t=>r.O[t](n[l])))?n.splice(l--,1):(s=!1,o<a&&(a=o));if(s){e.splice(d--,1);var c=i();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,i,o]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v=00434e4baa0d8e7b79f1",r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},i="nextcloud:",r.l=(t,e,o,a)=>{if(n[t])n[t].push(e);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var p=c[d];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==i+o){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.setAttribute("data-webpack",i+o),s.src=t),n[t]=[e];var A=(e,i)=>{s.onerror=s.onload=null,clearTimeout(u);var o=n[t];if(delete n[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((t=>t(i))),e)return e(i)},u=setTimeout(A.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=A.bind(null,s.onerror),s.onload=A.bind(null,s.onload),l&&document.head.appendChild(s)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=8318,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={8318:0};r.f.j=(e,n)=>{var i=r.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise(((n,o)=>i=t[e]=[n,o]));n.push(i[2]=o);var a=r.p+r.u(e),s=new Error;r.l(a,(n=>{if(r.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,i[1](s)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var i,o,a=n[0],s=n[1],l=n[2],c=0;if(a.some((e=>0!==t[e]))){for(i in s)r.o(s,i)&&(r.m[i]=s[i]);if(l)var d=l(r)}for(e&&e(n);c<a.length;c++)o=a[c],r.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return r.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),r.nc=void 0;var s=r.O(void 0,[7874],(()=>r(7970)));s=r.O(s)})(); -//# sourceMappingURL=workflowengine-workflowengine.js.map?v=2002689e96a59c8aba00
\ No newline at end of file +(()=>{var e,n,i,o={7970:(e,n,i)=>{"use strict";var o=i(20144),a=i(20629),r=i(4820),s=i(79954),l=i(79753);const c=0===(0,s.j)("workflowengine","scope")?"global":"user",d=t=>(0,l.generateOcsUrl)("apps/workflowengine/api/v1/workflows/{scopeValue}",{scopeValue:c})+t+"?format=json";var p=i(10128);i(65509),o.default.use(a.ZP);const A=new a.yh({state:{rules:[],scope:(0,s.j)("workflowengine","scope"),appstoreEnabled:(0,s.j)("workflowengine","appstoreenabled"),operations:(0,s.j)("workflowengine","operators"),plugins:o.default.observable({checks:{},operators:{}}),entities:(0,s.j)("workflowengine","entities"),events:(0,s.j)("workflowengine","entities").map((t=>t.events.map((e=>({id:"".concat(t.id,"::").concat(e.eventName),entity:t,...e}))))).flat(),checks:(0,s.j)("workflowengine","checks")},mutations:{addRule(t,e){t.rules.push({...e,valid:!0})},updateRule(t,e){const n=t.rules.findIndex((t=>e.id===t.id)),i=Object.assign({},e);o.default.set(t.rules,n,i)},removeRule(t,e){const n=t.rules.findIndex((t=>e.id===t.id));t.rules.splice(n,1)},addPluginCheck(t,e){o.default.set(t.plugins.checks,e.class,e)},addPluginOperator(t,e){e=Object.assign({color:"var(--color-primary-element)"},e,t.operations[e.id]||{}),void 0!==t.operations[e.id]&&o.default.set(t.operations,e.id,e)}},actions:{async fetchRules(t){const{data:e}=await r.default.get(d(""));Object.values(e.ocs.data).flat().forEach((e=>{t.commit("addRule",e)}))},async createNewRule(t,e){await(0,p.confirmPassword)();let n=null,i=[];!1===e.isComplex&&""===e.fixedEntity&&(n=t.state.entities.find((t=>e.entities&&e.entities[0]===t.id)),n=n||Object.values(t.state.entities)[0],i=[n.events[0].eventName]),t.commit("addRule",{id:-(new Date).getTime(),class:e.id,entity:n?n.id:e.fixedEntity,events:i,name:"",checks:[{class:null,operator:null,value:""}],operation:e.operation||""})},updateRule(t,e){t.commit("updateRule",{...e,events:"string"==typeof e.events?JSON.parse(e.events):e.events})},removeRule(t,e){t.commit("removeRule",e)},async pushUpdateRule(t,e){let n;await(0,p.confirmPassword)(),n=e.id<0?await r.default.post(d(""),e):await r.default.put(d("/".concat(e.id)),e),o.default.set(e,"id",n.data.ocs.data.id),t.commit("updateRule",e)},async deleteRule(t,e){await(0,p.confirmPassword)(),await r.default.delete(d("/".concat(e.id))),t.commit("removeRule",e)},setValid(t,e){let{rule:n,valid:i}=e;n.valid=i,t.commit("updateRule",n)}},getters:{getRules:t=>t.rules.filter((e=>void 0!==t.operations[e.class])).sort(((t,e)=>t.id-e.id||e.class-t.class)),getOperationForRule:t=>e=>t.operations[e.class],getEntityForOperation:t=>e=>t.entities.find((t=>e.fixedEntity===t.id)),getEventsForOperation:t=>e=>t.events,getChecksForEntity:t=>e=>Object.values(t.checks).filter((t=>t.supportedEntities.indexOf(e)>-1||0===t.supportedEntities.length)).map((e=>t.plugins.checks[e.id])).reduce(((t,e)=>(t[e.class]=e,t)),{})}});var u=i(15168),m=i.n(u),h=i(12945),g=i.n(h),C=i(45400),f=i.n(C),v=i(10861),w=i.n(v),x=i(39429),k=i(80419),b=i(82675),_=i(98266),y=i.n(_),j=i(64024);const O={name:"Event",components:{NcMultiselect:y()},props:{rule:{type:Object,required:!0}},computed:{entity(){return this.$store.getters.getEntityForOperation(this.operation)},operation(){return this.$store.getters.getOperationForRule(this.rule)},allEvents(){return this.$store.getters.getEventsForOperation(this.operation)},currentEvent(){return this.allEvents.filter((t=>t.entity.id===this.rule.entity&&-1!==this.rule.events.indexOf(t.eventName)))}},methods:{updateEvent(e){if(0===e.length)return void(0,j.K2)(t("workflowengine","At least one event must be selected"));const n=this.rule.entity,i=e.map((t=>t.entity.id)).filter(((t,e,n)=>n.indexOf(t)===e));let o=null;o=i.length>1?i.filter((t=>t!==n))[0]:i[0],this.$set(this.rule,"entity",o),this.$set(this.rule,"events",e.filter((t=>t.entity.id===o)).map((t=>t.eventName))),this.$emit("update",this.rule)}}};var E=i(93379),B=i.n(E),S=i(7795),R=i.n(S),V=i(90569),N=i.n(V),T=i(3565),D=i.n(T),P=i(19216),F=i.n(P),z=i(44589),Z=i.n(z),U=i(53667),G={};G.styleTagTransform=Z(),G.setAttributes=D(),G.insert=N().bind(null,"head"),G.domAPI=R(),G.insertStyleElement=F(),B()(U.Z,G),U.Z&&U.Z.locals&&U.Z.locals;var $=i(51900);const I=(0,$.Z)(O,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"event"},[t.operation.isComplex&&""!==t.operation.fixedEntity?e("div",{staticClass:"isComplex"},[e("img",{staticClass:"option__icon",attrs:{src:t.entity.icon,alt:""}}),t._v(" "),e("span",{staticClass:"option__title option__title_single"},[t._v(t._s(t.operation.triggerHint))])]):e("NcMultiselect",{attrs:{value:t.currentEvent,options:t.allEvents,"track-by":"id",multiple:!0,"auto-limit":!1,disabled:t.allEvents.length<=1},on:{input:t.updateEvent},scopedSlots:t._u([{key:"selection",fn:function(n){let{values:i,isOpen:o}=n;return[i.length&&!o?e("div",{staticClass:"eventlist"},[e("img",{staticClass:"option__icon",attrs:{src:i[0].entity.icon,alt:""}}),t._v(" "),t._l(i,(function(n,o){return e("span",{key:n.id,staticClass:"text option__title option__title_single"},[t._v(t._s(n.displayName)+" "),o+1<i.length?e("span",[t._v(", ")]):t._e()])}))],2):t._e()]}},{key:"option",fn:function(n){return[e("img",{staticClass:"option__icon",attrs:{src:n.option.entity.icon,alt:""}}),t._v(" "),e("span",{staticClass:"option__title"},[t._v(t._s(n.option.displayName))])]}}])})],1)}),[],!1,null,"1825d70e",null).exports;var q=i(36456),W=i.n(q),M=i(2649),L=i.n(M);const Y={name:"Check",components:{NcActionButton:f(),NcActions:g(),NcSelect:W(),CloseIcon:b.default},directives:{ClickOutside:L()},props:{check:{type:Object,required:!0},rule:{type:Object,required:!0}},data:()=>({deleteVisible:!1,currentOption:null,currentOperator:null,options:[],valid:!1}),computed:{checks(){return this.$store.getters.getChecksForEntity(this.rule.entity)},operators(){if(!this.currentOption)return[];const t=this.checks[this.currentOption.class].operators;return"function"==typeof t?t(this.check):t},currentComponent(){return this.currentOption?this.checks[this.currentOption.class].component:[]},valuePlaceholder(){return this.currentOption&&this.currentOption.placeholder?this.currentOption.placeholder(this.check):""}},watch:{"check.operator"(){this.validate()}},mounted(){this.options=Object.values(this.checks),this.currentOption=this.checks[this.check.class],this.currentOperator=this.operators.find((t=>t.operator===this.check.operator)),null===this.check.class&&this.$nextTick((()=>this.$refs.checkSelector.$el.focus())),this.validate()},methods:{showDelete(){this.deleteVisible=!0},hideDelete(){this.deleteVisible=!1},validate(){this.valid=!0,this.currentOption&&this.currentOption.validate&&(this.valid=!!this.currentOption.validate(this.check)),this.check.invalid=!this.valid,this.$emit("validate",this.valid)},updateCheck(){const t=this.operators.findIndex((t=>this.check.operator===t.operator));this.check.class===this.currentOption.class&&-1!==t||(this.currentOperator=this.operators[0]),this.check.class=this.currentOption.class,this.check.operator=this.currentOperator.operator,this.validate(),this.$emit("update",this.check)}}};var H=i(52802),J={};J.styleTagTransform=Z(),J.setAttributes=D(),J.insert=N().bind(null,"head"),J.domAPI=R(),J.insertStyleElement=F(),B()(H.Z,J),H.Z&&H.Z.locals&&H.Z.locals;const Q=(0,$.Z)(Y,(function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.hideDelete,expression:"hideDelete"}],staticClass:"check",on:{click:t.showDelete}},[e("NcSelect",{ref:"checkSelector",attrs:{options:t.options,label:"name",clearable:!1,placeholder:t.t("workflowengine","Select a filter")},on:{input:t.updateCheck},model:{value:t.currentOption,callback:function(e){t.currentOption=e},expression:"currentOption"}}),t._v(" "),e("NcSelect",{staticClass:"comparator",attrs:{disabled:!t.currentOption,options:t.operators,label:"name",clearable:!1,placeholder:t.t("workflowengine","Select a comparator")},on:{input:t.updateCheck},model:{value:t.currentOperator,callback:function(e){t.currentOperator=e},expression:"currentOperator"}}),t._v(" "),t.currentOperator&&t.currentComponent?e(t.currentOption.component,{tag:"component",staticClass:"option",attrs:{disabled:!t.currentOption,check:t.check},on:{input:t.updateCheck,valid:function(e){(t.valid=!0)&&t.validate()},invalid:function(e){!(t.valid=!1)&&t.validate()}},model:{value:t.check.value,callback:function(e){t.$set(t.check,"value",e)},expression:"check.value"}}):e("input",{directives:[{name:"model",rawName:"v-model",value:t.check.value,expression:"check.value"}],staticClass:"option",class:{invalid:!t.valid},attrs:{type:"text",disabled:!t.currentOption,placeholder:t.valuePlaceholder},domProps:{value:t.check.value},on:{input:[function(e){e.target.composing||t.$set(t.check,"value",e.target.value)},t.updateCheck]}}),t._v(" "),t.deleteVisible||!t.currentOption?e("NcActions",[e("NcActionButton",{attrs:{title:t.t("workflowengine","Remove filter")},on:{click:function(e){return t.$emit("remove")}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)})],1):t._e()],1)}),[],!1,null,"07a2739b",null).exports,K={name:"Operation",components:{NcButton:w()},props:{operation:{type:Object,required:!0},colored:{type:Boolean,default:!0}}};var X=i(67767),tt={};tt.styleTagTransform=Z(),tt.setAttributes=D(),tt.insert=N().bind(null,"head"),tt.domAPI=R(),tt.insertStyleElement=F(),B()(X.Z,tt),X.Z&&X.Z.locals&&X.Z.locals;const et=(0,$.Z)(K,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"actions__item",class:{colored:t.colored},style:{backgroundColor:t.colored?t.operation.color:"transparent"}},[e("div",{staticClass:"icon",class:t.operation.iconClass,style:{backgroundImage:t.operation.iconClass?"":"url(".concat(t.operation.icon,")")}}),t._v(" "),e("div",{staticClass:"actions__item__description"},[e("h3",[t._v(t._s(t.operation.name))]),t._v(" "),e("small",[t._v(t._s(t.operation.description))]),t._v(" "),t.colored?e("NcButton",[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Add new flow"))+"\n\t\t")]):t._e()],1),t._v(" "),e("div",{staticClass:"actions__item_options"},[t._t("default")],2)])}),[],!1,null,"a0480332",null).exports;var nt=i(25108);const it={name:"Rule",components:{ArrowRight:x.default,Check:Q,CheckMark:k.default,Close:b.default,Event:I,NcActionButton:f(),NcActions:g(),NcButton:w(),Operation:et},directives:{Tooltip:m()},props:{rule:{type:Object,required:!0}},data(){return{editing:!1,checks:[],error:null,dirty:this.rule.id<0,originalRule:null}},computed:{operation(){return this.$store.getters.getOperationForRule(this.rule)},ruleStatus(){return this.error||!this.rule.valid||0===this.rule.checks.length||this.rule.checks.some((t=>!0===t.invalid))?{title:t("workflowengine","The configuration is invalid"),icon:"Close",type:"warning",tooltip:{placement:"bottom",show:!0,content:this.error}}:this.dirty?{title:t("workflowengine","Save"),icon:"ArrowRight",type:"primary"}:{title:t("workflowengine","Active"),icon:"CheckMark",type:"success"}},lastCheckComplete(){const t=this.rule.checks[this.rule.checks.length-1];return void 0===t||null!==t.class}},mounted(){this.originalRule=JSON.parse(JSON.stringify(this.rule))},methods:{async updateOperation(t){this.$set(this.rule,"operation",t),await this.updateRule()},validate(t){this.error=null,this.$store.dispatch("updateRule",this.rule)},updateRule(){this.dirty||(this.dirty=!0),this.error=null,this.$store.dispatch("updateRule",this.rule)},async saveRule(){try{await this.$store.dispatch("pushUpdateRule",this.rule),this.dirty=!1,this.error=null,this.originalRule=JSON.parse(JSON.stringify(this.rule))}catch(t){nt.error("Failed to save operation"),this.error=t.response.data.ocs.meta.message}},async deleteRule(){try{await this.$store.dispatch("deleteRule",this.rule)}catch(t){nt.error("Failed to delete operation"),this.error=t.response.data.ocs.meta.message}},cancelRule(){this.rule.id<0?this.$store.dispatch("removeRule",this.rule):(this.$store.dispatch("updateRule",this.originalRule),this.originalRule=JSON.parse(JSON.stringify(this.rule)),this.dirty=!1)},async removeCheck(t){const e=this.rule.checks.findIndex((e=>e===t));e>-1&&this.$delete(this.rule.checks,e),this.$store.dispatch("updateRule",this.rule)},onAddFilter(){this.rule.checks.push({class:null,operator:null,value:""})}}};var ot=i(91372),at={};at.styleTagTransform=Z(),at.setAttributes=D(),at.insert=N().bind(null,"head"),at.domAPI=R(),at.insertStyleElement=F(),B()(ot.Z,at),ot.Z&&ot.Z.locals&&ot.Z.locals;const rt=(0,$.Z)(it,(function(){var t=this,e=t._self._c;return t.operation?e("div",{staticClass:"section rule",style:{borderLeftColor:t.operation.color||""}},[e("div",{staticClass:"trigger"},[e("p",[e("span",[t._v(t._s(t.t("workflowengine","When")))]),t._v(" "),e("Event",{attrs:{rule:t.rule},on:{update:t.updateRule}})],1),t._v(" "),t._l(t.rule.checks,(function(n,i){return e("p",{key:i},[e("span",[t._v(t._s(t.t("workflowengine","and")))]),t._v(" "),e("Check",{attrs:{check:n,rule:t.rule},on:{update:t.updateRule,validate:t.validate,remove:function(e){return t.removeCheck(n)}}})],1)})),t._v(" "),e("p",[e("span"),t._v(" "),t.lastCheckComplete?e("input",{staticClass:"check--add",attrs:{type:"button",value:t.t("workflowengine","Add a new filter")},on:{click:t.onAddFilter}}):t._e()])],2),t._v(" "),e("div",{staticClass:"flow-icon icon-confirm"}),t._v(" "),e("div",{staticClass:"action"},[e("Operation",{attrs:{operation:t.operation,colored:!1}},[t.operation.options?e(t.operation.options,{tag:"component",on:{input:t.updateOperation},model:{value:t.rule.operation,callback:function(e){t.$set(t.rule,"operation",e)},expression:"rule.operation"}}):t._e()],1),t._v(" "),e("div",{staticClass:"buttons"},[t.rule.id<-1||t.dirty?e("NcButton",{on:{click:t.cancelRule}},[t._v("\n\t\t\t\t"+t._s(t.t("workflowengine","Cancel"))+"\n\t\t\t")]):t.dirty?t._e():e("NcButton",{on:{click:t.deleteRule}},[t._v("\n\t\t\t\t"+t._s(t.t("workflowengine","Delete"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:t.ruleStatus.type},on:{click:t.saveRule},scopedSlots:t._u([{key:"icon",fn:function(){return[e(t.ruleStatus.icon,{tag:"component",attrs:{size:20}})]},proxy:!0}],null,!1,2383918876)},[t._v("\n\t\t\t\t"+t._s(t.ruleStatus.title)+"\n\t\t\t")])],1),t._v(" "),t.error?e("p",{staticClass:"error-message"},[t._v("\n\t\t\t"+t._s(t.error)+"\n\t\t")]):t._e()],1)]):t._e()}),[],!1,null,"3def8966",null).exports;var st=i(13299),lt=i.n(st),ct=i(23873),dt=i(20404);const pt={name:"Workflow",components:{NcButton:w(),MenuDown:dt.Z,MenuUp:ct.Z,Operation:et,Rule:rt,NcSettingsSection:lt()},data:()=>({showMoreOperations:!1,appstoreUrl:(0,l.generateUrl)("settings/apps/workflow"),workflowDocUrl:(0,s.j)("workflowengine","doc-url")}),computed:{...(0,a.Se)({rules:"getRules"}),...(0,a.rn)({appstoreEnabled:"appstoreEnabled",scope:"scope",operations:"operations"}),hasMoreOperations(){return Object.keys(this.operations).length>3},getMainOperations(){return this.showMoreOperations?Object.values(this.operations):Object.values(this.operations).slice(0,3)},showAppStoreHint(){return 0===this.scope&&this.appstoreEnabled&&OC.isUserAdmin()}},mounted(){this.$store.dispatch("fetchRules")},methods:{createNewRule(t){this.$store.dispatch("createNewRule",t)}}};var At=i(86504),ut={};ut.styleTagTransform=Z(),ut.setAttributes=D(),ut.insert=N().bind(null,"head"),ut.domAPI=R(),ut.insertStyleElement=F(),B()(At.Z,ut),At.Z&&At.Z.locals&&At.Z.locals;const mt=(0,$.Z)(pt,(function(){var t=this,e=t._self._c;return e("div",{attrs:{id:"workflowengine"}},[e("NcSettingsSection",{attrs:{title:t.t("workflowengine","Available flows"),"doc-url":t.workflowDocUrl}},[0===t.scope?e("p",{staticClass:"settings-hint"},[e("a",{attrs:{href:"https://nextcloud.com/developer/"}},[t._v(t._s(t.t("workflowengine","For details on how to write your own flow, check out the development documentation.")))])]):t._e(),t._v(" "),e("transition-group",{staticClass:"actions",attrs:{name:"slide",tag:"div"}},[t._l(t.getMainOperations,(function(n){return e("Operation",{key:n.id,attrs:{operation:n},nativeOn:{click:function(e){return t.createNewRule(n)}}})})),t._v(" "),t.showAppStoreHint?e("a",{key:"add",staticClass:"actions__item colored more",attrs:{href:t.appstoreUrl}},[e("div",{staticClass:"icon icon-add"}),t._v(" "),e("div",{staticClass:"actions__item__description"},[e("h3",[t._v(t._s(t.t("workflowengine","More flows")))]),t._v(" "),e("small",[t._v(t._s(t.t("workflowengine","Browse the App Store")))])])]):t._e()],2),t._v(" "),t.hasMoreOperations?e("div",{staticClass:"actions__more"},[e("NcButton",{on:{click:function(e){t.showMoreOperations=!t.showMoreOperations}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.showMoreOperations?e("MenuUp",{attrs:{size:20}}):e("MenuDown",{attrs:{size:20}})]},proxy:!0}],null,!1,3801522717)},[t._v("\n\t\t\t\t"+t._s(t.showMoreOperations?t.t("workflowengine","Show less"):t.t("workflowengine","Show more"))+"\n\t\t\t")])],1):t._e(),t._v(" "),0===t.scope?e("h2",{staticClass:"configured-flows"},[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Configured flows"))+"\n\t\t")]):e("h2",{staticClass:"configured-flows"},[t._v("\n\t\t\t"+t._s(t.t("workflowengine","Your flows"))+"\n\t\t")])],1),t._v(" "),t.rules.length>0?e("transition-group",{attrs:{name:"slide"}},t._l(t.rules,(function(t){return e("Rule",{key:t.id,attrs:{rule:t}})})),1):t._e()],1)}),[],!1,null,"4e25e34d",null).exports,ht=/^\/(.*)\/([gui]{0,3})$/,gt=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(3[0-2]|[1-2][0-9]|[1-9])$/,Ct=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/;var ft=i(94179),vt=i.n(ft);const wt={props:{value:{type:String,default:""},check:{type:Object,default:()=>({})}},data:()=>({newValue:""}),watch:{value:{immediate:!0,handler(t){this.updateInternalValue(t)}}},methods:{updateInternalValue(t){this.newValue=t}}},xt={name:"FileMimeType",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({predefinedTypes:[{icon:"icon-folder",label:t("workflowengine","Folder"),id:"httpd/unix-directory"},{icon:"icon-picture",label:t("workflowengine","Images"),id:"/image\\/.*/"},{iconUrl:(0,l.imagePath)("core","filetypes/x-office-document"),label:t("workflowengine","Office documents"),id:"/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/"},{iconUrl:(0,l.imagePath)("core","filetypes/application-pdf"),label:t("workflowengine","PDF documents"),id:"application/pdf"}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},isPredefined(){return!!this.predefinedTypes.find((t=>this.newValue===t.id))},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom MIME type"),id:""}),currentValue(){return this.predefinedTypes.find((t=>this.newValue===t.id))||{icon:"icon-settings-dark",label:t("workflowengine","Custom mimetype"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var kt=i(4643),bt={};bt.styleTagTransform=Z(),bt.setAttributes=D(),bt.insert=N().bind(null,"head"),bt.domAPI=R(),bt.insertStyleElement=F(),B()(kt.Z,bt),kt.Z&&kt.Z.locals&&kt.Z.locals;const _t=(0,$.Z)(xt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a file type"),label:"label",options:t.options,clearable:!1},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[n.icon?e("span",{staticClass:"option__icon",class:n.icon}):e("span",{staticClass:"option__icon-img"},[e("img",{attrs:{src:n.iconUrl,alt:""}})]),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[n.icon?e("span",{staticClass:"option__icon",class:n.icon}):e("span",{staticClass:"option__icon-img"},[e("img",{attrs:{src:n.iconUrl,alt:""}})]),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text",placeholder:t.t("workflowengine","e.g. httpd/unix-directory")},domProps:{value:t.currentValue.id},on:{input:t.updateCustom}})],1)}),[],!1,null,"1a11f354",null).exports;var yt=i(11677);const jt={name:"FileSystemTag",components:{NcSelectTags:i.n(yt)()},props:{value:{type:String,default:""}},data:()=>({newValue:[]}),watch:{value(){this.updateValue()}},beforeMount(){this.updateValue()},methods:{updateValue(){""!==this.value?this.newValue=parseInt(this.value):this.newValue=null},update(){this.$emit("input",this.newValue||"")}}},Ot=(0,$.Z)(jt,(function(){var t=this;return(0,t._self._c)("NcSelectTags",{attrs:{multiple:!1},on:{input:t.update},model:{value:t.newValue,callback:function(e){t.newValue=e},expression:"newValue"}})}),[],!1,null,"3bb09106",null).exports,Et=()=>[{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")},{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")}],Bt=[{class:"OCA\\WorkflowEngine\\Check\\FileName",name:t("workflowengine","File name"),operators:Et,placeholder:t=>"matches"===t.operator||"!matches"===t.operator?"/^dummy-.+$/i":"filename.txt",validate:t=>{return"matches"!==t.operator&&"!matches"!==t.operator||!!(e=t.value)&&null!==ht.exec(e);var e}},{class:"OCA\\WorkflowEngine\\Check\\FileMimeType",name:t("workflowengine","File MIME type"),operators:Et,component:_t},{class:"OCA\\WorkflowEngine\\Check\\FileSize",name:t("workflowengine","File size (upload)"),operators:[{operator:"less",name:t("workflowengine","less")},{operator:"!greater",name:t("workflowengine","less or equals")},{operator:"!less",name:t("workflowengine","greater or equals")},{operator:"greater",name:t("workflowengine","greater")}],placeholder:t=>"5 MB",validate:t=>!!t.value&&null!==t.value.match(/^[0-9]+[ ]?[kmgt]?b$/i)},{class:"OCA\\WorkflowEngine\\Check\\RequestRemoteAddress",name:t("workflowengine","Request remote address"),operators:[{operator:"matchesIPv4",name:t("workflowengine","matches IPv4")},{operator:"!matchesIPv4",name:t("workflowengine","does not match IPv4")},{operator:"matchesIPv6",name:t("workflowengine","matches IPv6")},{operator:"!matchesIPv6",name:t("workflowengine","does not match IPv6")}],placeholder:t=>"matchesIPv6"===t.operator||"!matchesIPv6"===t.operator?"::1/128":"127.0.0.1/32",validate:t=>{return"matchesIPv6"===t.operator||"!matchesIPv6"===t.operator?!!(e=t.value)&&null!==Ct.exec(e):function(t){return!!t&&null!==gt.exec(t)}(t.value);var e}},{class:"OCA\\WorkflowEngine\\Check\\FileSystemTags",name:t("workflowengine","File system tag"),operators:[{operator:"is",name:t("workflowengine","is tagged with")},{operator:"!is",name:t("workflowengine","is not tagged with")}],component:Ot}],St={name:"RequestUserAgent",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({newValue:"",predefinedTypes:[{id:"android",label:t("workflowengine","Android client"),icon:"icon-phone"},{id:"ios",label:t("workflowengine","iOS client"),icon:"icon-phone"},{id:"desktop",label:t("workflowengine","Desktop client"),icon:"icon-desktop"},{id:"mail",label:t("workflowengine","Thunderbird & Outlook addons"),icon:"icon-mail"}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},matchingPredefined(){return this.predefinedTypes.find((t=>this.newValue===t.id))},isPredefined(){return!!this.matchingPredefined},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom user agent"),id:""}),currentValue(){return this.matchingPredefined?this.matchingPredefined:{icon:"icon-settings-dark",label:t("workflowengine","Custom user agent"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var Rt=i(47892),Vt={};Vt.styleTagTransform=Z(),Vt.setAttributes=D(),Vt.insert=N().bind(null,"head"),Vt.domAPI=R(),Vt.insertStyleElement=F(),B()(Rt.Z,Vt),Rt.Z&&Rt.Z.locals&&Rt.Z.locals;const Nt=(0,$.Z)(St,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a user agent"),label:"label",options:t.options,clearable:!1},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text"},domProps:{value:t.currentValue.pattern},on:{input:t.updateCustom}})],1)}),[],!1,null,"003881d4",null).exports;var Tt=i(80008),Dt=i.n(Tt);const Pt=Dt().tz.names(),Ft={name:"RequestTime",components:{NcSelect:W()},mixins:[wt],props:{value:{type:String,default:""}},data:()=>({timezones:Pt,valid:!1,newValue:{startTime:null,endTime:null,timezone:Dt().tz.guess()}}),mounted(){this.validate()},methods:{updateInternalValue(t){try{const e=JSON.parse(t);2===e.length&&(this.newValue={startTime:e[0].split(" ",2)[0],endTime:e[1].split(" ",2)[0],timezone:e[0].split(" ",2)[1]})}catch(t){}},validate(){return this.valid=this.newValue.startTime&&null!==this.newValue.startTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i)&&this.newValue.endTime&&null!==this.newValue.endTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i)&&null!==Dt().tz.zone(this.newValue.timezone),this.valid?this.$emit("valid"):this.$emit("invalid"),this.valid},update(){if(null===this.newValue.timezone&&(this.newValue.timezone=Dt().tz.guess()),this.validate()){const t='["'.concat(this.newValue.startTime," ").concat(this.newValue.timezone,'","').concat(this.newValue.endTime," ").concat(this.newValue.timezone,'"]');this.$emit("input",t)}}}};var zt=i(5487),Zt={};Zt.styleTagTransform=Z(),Zt.setAttributes=D(),Zt.insert=N().bind(null,"head"),Zt.domAPI=R(),Zt.insertStyleElement=F(),B()(zt.Z,Zt),zt.Z&&zt.Z.locals&&zt.Z.locals;const Ut=(0,$.Z)(Ft,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"timeslot"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newValue.startTime,expression:"newValue.startTime"}],staticClass:"timeslot--start",attrs:{type:"text",placeholder:"e.g. 08:00"},domProps:{value:t.newValue.startTime},on:{input:[function(e){e.target.composing||t.$set(t.newValue,"startTime",e.target.value)},t.update]}}),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.newValue.endTime,expression:"newValue.endTime"}],attrs:{type:"text",placeholder:"e.g. 18:00"},domProps:{value:t.newValue.endTime},on:{input:[function(e){e.target.composing||t.$set(t.newValue,"endTime",e.target.value)},t.update]}}),t._v(" "),t.valid?t._e():e("p",{staticClass:"invalid-hint"},[t._v("\n\t\t"+t._s(t.t("workflowengine","Please enter a valid time span"))+"\n\t")]),t._v(" "),e("NcSelect",{directives:[{name:"show",rawName:"v-show",value:t.valid,expression:"valid"}],attrs:{clearable:!1,options:t.timezones},on:{input:t.update},model:{value:t.newValue.timezone,callback:function(e){t.$set(t.newValue,"timezone",e)},expression:"newValue.timezone"}})],1)}),[],!1,null,"7a2ecc67",null).exports,Gt={name:"RequestURL",components:{NcEllipsisedOption:vt(),NcSelect:W()},mixins:[wt],data:()=>({newValue:"",predefinedTypes:[{icon:"icon-files-dark",id:"webdav",label:t("workflowengine","Files WebDAV")}]}),computed:{options(){return[...this.predefinedTypes,this.customValue]},placeholder(){return"matches"===this.check.operator||"!matches"===this.check.operator?"/^https\\:\\/\\/localhost\\/index\\.php$/i":"https://localhost/index.php"},matchingPredefined(){return this.predefinedTypes.find((t=>this.newValue===t.id))},isPredefined(){return!!this.matchingPredefined},customValue:()=>({icon:"icon-settings-dark",label:t("workflowengine","Custom URL"),id:""}),currentValue(){return this.matchingPredefined?this.matchingPredefined:{icon:"icon-settings-dark",label:t("workflowengine","Custom URL"),id:this.newValue}}},methods:{validateRegex:t=>null!==/^\/(.*)\/([gui]{0,3})$/.exec(t),setValue(t){null!==t&&(this.newValue=t.id,this.$emit("input",this.newValue))},updateCustom(t){this.newValue=t.target.value,this.$emit("input",this.newValue)}}};var $t=i(35784),It={};It.styleTagTransform=Z(),It.setAttributes=D(),It.insert=N().bind(null,"head"),It.domAPI=R(),It.insertStyleElement=F(),B()($t.Z,It),$t.Z&&$t.Z.locals&&$t.Z.locals;const qt=(0,$.Z)(Gt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,placeholder:t.t("workflowengine","Select a request URL"),label:"label",clearable:!1,options:t.options},on:{input:t.setValue},scopedSlots:t._u([{key:"option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}},{key:"selected-option",fn:function(n){return[e("span",{staticClass:"option__icon",class:n.icon}),t._v(" "),e("span",{staticClass:"option__title"},[e("NcEllipsisedOption",{attrs:{name:String(n.label)}})],1)]}}])}),t._v(" "),t.isPredefined?t._e():e("input",{attrs:{type:"text",placeholder:t.placeholder},domProps:{value:t.currentValue.id},on:{input:t.updateCustom}})],1)}),[],!1,null,"1a72d97f",null).exports;var Wt=i(25108);const Mt=[],Lt={isLoading:!1},Yt={name:"RequestUserGroup",components:{NcSelect:W()},props:{value:{type:String,default:""},check:{type:Object,default:()=>({})}},data:()=>({groups:Mt,status:Lt}),computed:{currentValue(){return this.groups.find((t=>t.id===this.value))||null}},async mounted(){0===this.groups.length&&await this.searchAsync(""),null===this.currentValue&&await this.searchAsync(this.value)},methods:{searchAsync(t){if(!this.status.isLoading)return this.status.isLoading=!0,r.default.get((0,l.generateOcsUrl)("cloud/groups/details?limit=20&search={searchQuery}",{searchQuery:t})).then((t=>{t.data.ocs.data.groups.forEach((t=>{this.addGroup({id:t.id,displayname:t.displayname})})),this.status.isLoading=!1}),(t=>{Wt.error("Error while loading group list",t.response)}))},addGroup(t){-1===this.groups.findIndex((e=>e.id===t.id))&&this.groups.push(t)}}};var Ht=i(43439),Jt={};Jt.styleTagTransform=Z(),Jt.setAttributes=D(),Jt.insert=N().bind(null,"head"),Jt.domAPI=R(),Jt.insertStyleElement=F(),B()(Ht.Z,Jt),Ht.Z&&Ht.Z.locals&&Ht.Z.locals;const Qt=(0,$.Z)(Yt,(function(){var t=this,e=t._self._c;return e("div",[e("NcSelect",{attrs:{value:t.currentValue,loading:t.status.isLoading&&0===t.groups.length,options:t.groups,clearable:!1,label:"displayname"},on:{"search-change":t.searchAsync,input:e=>t.$emit("input",e.id)}})],1)}),[],!1,null,"16d8123e",null).exports,Kt=[...Bt,{class:"OCA\\WorkflowEngine\\Check\\RequestURL",name:t("workflowengine","Request URL"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}],component:qt},{class:"OCA\\WorkflowEngine\\Check\\RequestTime",name:t("workflowengine","Request time"),operators:[{operator:"in",name:t("workflowengine","between")},{operator:"!in",name:t("workflowengine","not between")}],component:Ut},{class:"OCA\\WorkflowEngine\\Check\\RequestUserAgent",name:t("workflowengine","Request user agent"),operators:[{operator:"is",name:t("workflowengine","is")},{operator:"!is",name:t("workflowengine","is not")},{operator:"matches",name:t("workflowengine","matches")},{operator:"!matches",name:t("workflowengine","does not match")}],component:Nt},{class:"OCA\\WorkflowEngine\\Check\\UserGroupMembership",name:t("workflowengine","User group membership"),operators:[{operator:"is",name:t("workflowengine","is member of")},{operator:"!is",name:t("workflowengine","is not member of")}],component:Qt}];window.OCA.WorkflowEngine=Object.assign({},OCA.WorkflowEngine,{registerCheck(t){A.commit("addPluginCheck",t)},registerOperator(t){A.commit("addPluginOperator",t)}}),Kt.forEach((t=>window.OCA.WorkflowEngine.registerCheck(t))),o.default.use(a.ZP),o.default.prototype.t=t,new(o.default.extend(mt))({store:A}).$mount("#workflowengine")},52802:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".check[data-v-07a2739b]{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;padding-right:20px}.check>*[data-v-07a2739b]:not(.close){width:180px}.check>.comparator[data-v-07a2739b]{min-width:200px;width:200px}.check>.option[data-v-07a2739b]{min-width:260px;width:260px;min-height:48px}.check>.option>input[type=text][data-v-07a2739b]{min-height:48px}.check>.v-select[data-v-07a2739b],.check>.button-vue[data-v-07a2739b],.check>input[type=text][data-v-07a2739b]{margin-right:5px;margin-bottom:5px}input[type=text][data-v-07a2739b]{margin:0}.invalid[data-v-07a2739b]{border-color:var(--color-error) !important}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Check.vue"],names:[],mappings:"AACA,wBACC,YAAA,CACA,cAAA,CACA,sBAAA,CACA,UAAA,CACA,kBAAA,CAEA,sCACC,WAAA,CAED,oCACC,eAAA,CACA,WAAA,CAED,gCACC,eAAA,CACA,WAAA,CACA,eAAA,CAEA,iDACC,eAAA,CAGF,+GAGC,gBAAA,CACA,iBAAA,CAGF,kCACC,QAAA,CAED,0BACC,0CAAA",sourcesContent:["\n.check {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start; // to not stretch components vertically\n\twidth: 100%;\n\tpadding-right: 20px;\n\n\t& > *:not(.close) {\n\t\twidth: 180px;\n\t}\n\t& > .comparator {\n\t\tmin-width: 200px;\n\t\twidth: 200px;\n\t}\n\t& > .option {\n\t\tmin-width: 260px;\n\t\twidth: 260px;\n\t\tmin-height: 48px;\n\n\t\t& > input[type=text] {\n\t\t\tmin-height: 48px;\n\t\t}\n\t}\n\t& > .v-select,\n\t& > .button-vue,\n\t& > input[type=text] {\n\t\tmargin-right: 5px;\n\t\tmargin-bottom: 5px;\n\t}\n}\ninput[type=text] {\n\tmargin: 0;\n}\n.invalid {\n\tborder-color: var(--color-error) !important;\n}\n"],sourceRoot:""}]);const s=r},4643:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".v-select[data-v-1a11f354],input[type=text][data-v-1a11f354]{width:100%}input[type=text][data-v-1a11f354]{min-height:48px}.option__icon[data-v-1a11f354],.option__icon-img[data-v-1a11f354]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__icon-img[data-v-1a11f354]{text-align:center}.option__title[data-v-1a11f354]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/FileMimeType.vue"],names:[],mappings:"AACA,6DAEC,UAAA,CAGD,kCACC,eAAA,CAGD,kEAEC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,mCACC,iBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA",sourcesContent:["\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\n\ninput[type=text] {\n\tmin-height: 48px;\n}\n\n.option__icon,\n.option__icon-img {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__icon-img {\n\ttext-align: center;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},5487:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".timeslot[data-v-7a2ecc67]{display:flex;flex-grow:1;flex-wrap:wrap;max-width:180px}.timeslot .multiselect[data-v-7a2ecc67]{width:100%;margin-bottom:5px}.timeslot .multiselect[data-v-7a2ecc67] .multiselect__tags:not(:hover):not(:focus):not(:active){border:1px solid rgba(0,0,0,0)}.timeslot input[type=text][data-v-7a2ecc67]{width:50%;margin:0;margin-bottom:5px;min-height:48px}.timeslot input[type=text].timeslot--start[data-v-7a2ecc67]{margin-right:5px;width:calc(50% - 5px)}.timeslot .invalid-hint[data-v-7a2ecc67]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestTime.vue"],names:[],mappings:"AACA,2BACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAEA,wCACC,UAAA,CACA,iBAAA,CAGD,gGACC,8BAAA,CAGD,4CACC,SAAA,CACA,QAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACC,gBAAA,CACA,qBAAA,CAIF,yCACC,mCAAA",sourcesContent:["\n.timeslot {\n\tdisplay: flex;\n\tflex-grow: 1;\n\tflex-wrap: wrap;\n\tmax-width: 180px;\n\n\t.multiselect {\n\t\twidth: 100%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\n\t\tborder: 1px solid transparent;\n\t}\n\n\tinput[type=text] {\n\t\twidth: 50%;\n\t\tmargin: 0;\n\t\tmargin-bottom: 5px;\n\t\tmin-height: 48px;\n\n\t\t&.timeslot--start {\n\t\t\tmargin-right: 5px;\n\t\t\twidth: calc(50% - 5px);\n\t\t}\n\t}\n\n\t.invalid-hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const s=r},35784:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".v-select[data-v-1a72d97f],input[type=text][data-v-1a72d97f]{width:100%}input[type=text][data-v-1a72d97f]{min-height:48px}.option__icon[data-v-1a72d97f]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__title[data-v-1a72d97f]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestURL.vue"],names:[],mappings:"AACA,6DAEC,UAAA,CAED,kCACC,eAAA,CAGD,+BACC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA",sourcesContent:["\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\ninput[type='text'] {\n\tmin-height: 48px;\n}\n\n.option__icon {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},53667:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".event[data-v-1825d70e]{margin-bottom:5px}.isComplex img[data-v-1825d70e]{vertical-align:text-top}.isComplex span[data-v-1825d70e]{padding-top:2px;display:inline-block}.multiselect[data-v-1825d70e]{width:100%;max-width:550px;margin-top:4px}.multiselect[data-v-1825d70e] .multiselect__single{display:flex}.multiselect[data-v-1825d70e]:not(.multiselect--active) .multiselect__tags{background-color:var(--color-main-background) !important;border:1px solid rgba(0,0,0,0)}.multiselect[data-v-1825d70e] .multiselect__tags{background-color:var(--color-main-background) !important;height:auto;min-height:34px}.multiselect[data-v-1825d70e]:not(.multiselect--disabled) .multiselect__tags .multiselect__single{background-image:var(--icon-triangle-s-dark);background-repeat:no-repeat;background-position:right center}input[data-v-1825d70e]{border:1px solid rgba(0,0,0,0)}.option__title[data-v-1825d70e]{margin-left:5px;color:var(--color-main-text)}.option__title_single[data-v-1825d70e]{font-weight:900}.option__icon[data-v-1825d70e]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.eventlist img[data-v-1825d70e],.eventlist .text[data-v-1825d70e]{vertical-align:middle}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Event.vue"],names:[],mappings:"AACA,wBACC,iBAAA,CAGA,gCACC,uBAAA,CAED,iCACC,eAAA,CACA,oBAAA,CAGF,8BACC,UAAA,CACA,eAAA,CACA,cAAA,CAED,mDACC,YAAA,CAED,2EACC,wDAAA,CACA,8BAAA,CAGD,iDACC,wDAAA,CACA,WAAA,CACA,eAAA,CAGD,kGACC,4CAAA,CACA,2BAAA,CACA,gCAAA,CAGD,uBACC,8BAAA,CAGD,gCACC,eAAA,CACA,4BAAA,CAED,uCACC,eAAA,CAGD,+BACC,UAAA,CACA,WAAA,CACA,uCAAA,CAGD,kEAEC,qBAAA",sourcesContent:["\n.event {\n\tmargin-bottom: 5px;\n}\n.isComplex {\n\timg {\n\t\tvertical-align: text-top;\n\t}\n\tspan {\n\t\tpadding-top: 2px;\n\t\tdisplay: inline-block;\n\t}\n}\n.multiselect {\n\twidth: 100%;\n\tmax-width: 550px;\n\tmargin-top: 4px;\n}\n.multiselect::v-deep .multiselect__single {\n\tdisplay: flex;\n}\n.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\n\tbackground-color: var(--color-main-background) !important;\n\tborder: 1px solid transparent;\n}\n\n.multiselect::v-deep .multiselect__tags {\n\tbackground-color: var(--color-main-background) !important;\n\theight: auto;\n\tmin-height: 34px;\n}\n\n.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\n\tbackground-image: var(--icon-triangle-s-dark);\n\tbackground-repeat: no-repeat;\n\tbackground-position: right center;\n}\n\ninput {\n\tborder: 1px solid transparent;\n}\n\n.option__title {\n\tmargin-left: 5px;\n\tcolor: var(--color-main-text);\n}\n.option__title_single {\n\tfont-weight: 900;\n}\n\n.option__icon {\n\twidth: 16px;\n\theight: 16px;\n\tfilter: var(--background-invert-if-dark);\n}\n\n.eventlist img,\n.eventlist .text {\n\tvertical-align: middle;\n}\n"],sourceRoot:""}]);const s=r},67767:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".actions__item[data-v-a0480332]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-a0480332]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-a0480332]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-a0480332]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-a0480332],small[data-v-a0480332]{padding:6px;display:block}h3[data-v-a0480332]{margin:0;padding:0;font-weight:600}small[data-v-a0480332]{font-size:10pt;flex-grow:1}.colored[data-v-a0480332]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-a0480332],.colored:not(.more) small[data-v-a0480332]{color:var(--color-primary-element-text)}.actions__item[data-v-a0480332]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-a0480332]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-a0480332]{padding:0}.actions__item:not(.colored) .icon[data-v-a0480332]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-a0480332]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-a0480332]{filter:var(--background-invert-if-bright)}","",{version:3,sources:["webpack://./apps/workflowengine/src/styles/operation.scss"],names:[],mappings:"AAAA,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA",sourcesContent:[".actions__item {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: -1px;\n\tpadding: 10px;\n\tborder-radius: var(--border-radius-large);\n\tmargin-right: 20px;\n\tmargin-bottom: 20px;\n}\n.actions__item .icon {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 50px;\n\tbackground-size: 50px 50px;\n\tbackground-position: center center;\n\tmargin-top: 10px;\n\tmargin-bottom: 10px;\n\tbackground-repeat: no-repeat;\n}\n.actions__item__description {\n\ttext-align: center;\n\tflex-grow: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n.actions__item_options {\n\twidth: 100%;\n\tmargin-top: 10px;\n\tpadding-left: 60px;\n}\nh3, small {\n\tpadding: 6px;\n\tdisplay: block;\n}\nh3 {\n\tmargin: 0;\n\tpadding: 0;\n\tfont-weight: 600;\n}\nsmall {\n\tfont-size: 10pt;\n\tflex-grow: 1;\n}\n\n.colored:not(.more) {\n\tbackground-color: var(--color-primary-element);\n\th3, small {\n\t\tcolor: var(--color-primary-element-text)\n\t}\n}\n\n.actions__item:not(.colored) {\n\tflex-direction: row;\n\n\t.actions__item__description {\n\t\tpadding-top: 5px;\n\t\ttext-align: left;\n\t\twidth: calc(100% - 105px);\n\t\tsmall {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\t.icon {\n\t\twidth: 50px;\n\t\tmargin: 0;\n\t\tmargin-right: 10px;\n\t\t&:not(.icon-invert) {\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n}\n\n.colored .icon-invert {\n\tfilter: var(--background-invert-if-bright);\n}\n"],sourceRoot:""}]);const s=r},91372:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,".buttons[data-v-3def8966]{display:flex;justify-content:end}.buttons button[data-v-3def8966]{margin-left:5px}.buttons button[data-v-3def8966]:last-child{margin-right:10px}.error-message[data-v-3def8966]{float:right;margin-right:10px}.flow-icon[data-v-3def8966]{width:44px}.rule[data-v-3def8966]{display:flex;flex-wrap:wrap;border-left:5px solid var(--color-primary-element)}.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{flex-grow:1;min-height:100px;max-width:920px}.rule .action[data-v-3def8966]{max-width:400px;position:relative}.rule .icon-confirm[data-v-3def8966]{background-position:right 27px;padding-right:20px;margin-right:20px}.trigger p[data-v-3def8966],.action p[data-v-3def8966]{min-height:34px;display:flex}.trigger p>span[data-v-3def8966],.action p>span[data-v-3def8966]{min-width:50px;text-align:right;color:var(--color-text-maxcontrast);padding-right:10px;padding-top:6px}.trigger p .multiselect[data-v-3def8966],.action p .multiselect[data-v-3def8966]{flex-grow:1;max-width:300px}.trigger p:first-child span[data-v-3def8966]{padding-top:3px}.trigger p[data-v-3def8966]:last-child{padding-top:8px}.check--add[data-v-3def8966]{background-position:7px center;background-color:rgba(0,0,0,0);padding-left:6px;margin:0;width:180px;border-radius:var(--border-radius);color:var(--color-text-maxcontrast);font-weight:normal;text-align:left;font-size:1em}@media(max-width: 1400px){.rule[data-v-3def8966],.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{width:100%;max-width:100%}.rule .flow-icon[data-v-3def8966]{display:none}}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Rule.vue"],names:[],mappings:"AAEA,0BACC,YAAA,CACA,mBAAA,CAEA,iCACC,eAAA,CAED,4CACC,iBAAA,CAIF,gCACC,WAAA,CACA,iBAAA,CAGD,4BACC,UAAA,CAGD,uBACC,YAAA,CACA,cAAA,CACA,kDAAA,CAEA,+DAEC,WAAA,CACA,gBAAA,CACA,eAAA,CAED,+BACC,eAAA,CACA,iBAAA,CAED,qCACC,8BAAA,CACA,kBAAA,CACA,iBAAA,CAGF,uDACC,eAAA,CACA,YAAA,CAEA,iEACC,cAAA,CACA,gBAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CAED,iFACC,WAAA,CACA,eAAA,CAGF,6CACE,eAAA,CAEF,uCACE,eAAA,CAGF,6BACC,8BAAA,CACA,8BAAA,CACA,gBAAA,CACA,QAAA,CACA,WAAA,CACA,kCAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CAGD,0BAEE,sFACC,UAAA,CACA,cAAA,CAED,kCACC,YAAA,CAAA",sourcesContent:["\n\n.buttons {\n\tdisplay: flex;\n\tjustify-content: end;\n\n\tbutton {\n\t\tmargin-left: 5px;\n\t}\n\tbutton:last-child{\n\t\tmargin-right: 10px;\n\t}\n}\n\n.error-message {\n\tfloat: right;\n\tmargin-right: 10px;\n}\n\n.flow-icon {\n\twidth: 44px;\n}\n\n.rule {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tborder-left: 5px solid var(--color-primary-element);\n\n\t.trigger,\n\t.action {\n\t\tflex-grow: 1;\n\t\tmin-height: 100px;\n\t\tmax-width: 920px;\n\t}\n\t.action {\n\t\tmax-width: 400px;\n\t\tposition: relative;\n\t}\n\t.icon-confirm {\n\t\tbackground-position: right 27px;\n\t\tpadding-right: 20px;\n\t\tmargin-right: 20px;\n\t}\n}\n.trigger p, .action p {\n\tmin-height: 34px;\n\tdisplay: flex;\n\n\t& > span {\n\t\tmin-width: 50px;\n\t\ttext-align: right;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-right: 10px;\n\t\tpadding-top: 6px;\n\t}\n\t.multiselect {\n\t\tflex-grow: 1;\n\t\tmax-width: 300px;\n\t}\n}\n.trigger p:first-child span {\n\t\tpadding-top: 3px;\n}\n.trigger p:last-child {\n\t\tpadding-top: 8px;\n}\n\n.check--add {\n\tbackground-position: 7px center;\n\tbackground-color: transparent;\n\tpadding-left: 6px;\n\tmargin: 0;\n\twidth: 180px;\n\tborder-radius: var(--border-radius);\n\tcolor: var(--color-text-maxcontrast);\n\tfont-weight: normal;\n\ttext-align: left;\n\tfont-size: 1em;\n}\n\n@media (max-width:1400px) {\n\t.rule {\n\t\t&, .trigger, .action {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 100%;\n\t\t}\n\t\t.flow-icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const s=r},86504:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"#workflowengine[data-v-4e25e34d]{border-bottom:1px solid var(--color-border)}.section[data-v-4e25e34d]{max-width:100vw}.section h2.configured-flows[data-v-4e25e34d]{margin-top:50px;margin-bottom:0}.actions[data-v-4e25e34d]{display:flex;flex-wrap:wrap;max-width:1200px}.actions .actions__item[data-v-4e25e34d]{max-width:280px;flex-basis:250px}.actions__more[data-v-4e25e34d]{margin-bottom:10px}.slide-enter-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:ease-in;-webkit-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.slide-leave-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-webkit-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-o-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);transition-timing-function:cubic-bezier(0, 1, 0.5, 1)}.slide-enter-to[data-v-4e25e34d],.slide-leave[data-v-4e25e34d]{max-height:500px;overflow:hidden}.slide-enter[data-v-4e25e34d],.slide-leave-to[data-v-4e25e34d]{overflow:hidden;max-height:0;padding-top:0;padding-bottom:0}.actions__item[data-v-4e25e34d]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-4e25e34d]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-4e25e34d]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-4e25e34d]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-4e25e34d],small[data-v-4e25e34d]{padding:6px;display:block}h3[data-v-4e25e34d]{margin:0;padding:0;font-weight:600}small[data-v-4e25e34d]{font-size:10pt;flex-grow:1}.colored[data-v-4e25e34d]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-4e25e34d],.colored:not(.more) small[data-v-4e25e34d]{color:var(--color-primary-element-text)}.actions__item[data-v-4e25e34d]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-4e25e34d]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-4e25e34d]{padding:0}.actions__item:not(.colored) .icon[data-v-4e25e34d]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-4e25e34d]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-4e25e34d]{filter:var(--background-invert-if-bright)}.actions__item.more[data-v-4e25e34d]{background-color:var(--color-background-dark)}","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Workflow.vue","webpack://./apps/workflowengine/src/styles/operation.scss"],names:[],mappings:"AACA,iCACC,2CAAA,CAED,0BACC,eAAA,CAEA,8CACC,eAAA,CACA,eAAA,CAGF,0BACC,YAAA,CACA,cAAA,CACA,gBAAA,CACA,yCACC,eAAA,CACA,gBAAA,CAGF,gCACC,kBAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uCAAA,CACA,0CAAA,CACA,qCAAA,CACA,kCAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,0DAAA,CACA,6DAAA,CACA,wDAAA,CACA,qDAAA,CAGD,+DACC,gBAAA,CACA,eAAA,CAGD,+DACC,eAAA,CACA,YAAA,CACA,aAAA,CACA,gBAAA,CCxDD,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA,CDfD,qCACC,6CAAA",sourcesContent:['\n#workflowengine {\n\tborder-bottom: 1px solid var(--color-border);\n}\n.section {\n\tmax-width: 100vw;\n\n\th2.configured-flows {\n\t\tmargin-top: 50px;\n\t\tmargin-bottom: 0;\n\t}\n}\n.actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tmax-width: 1200px;\n\t.actions__item {\n\t\tmax-width: 280px;\n\t\tflex-basis: 250px;\n\t}\n}\n.actions__more {\n\tmargin-bottom: 10px;\n}\n\n.slide-enter-active {\n\t-moz-transition-duration: 0.3s;\n\t-webkit-transition-duration: 0.3s;\n\t-o-transition-duration: 0.3s;\n\ttransition-duration: 0.3s;\n\t-moz-transition-timing-function: ease-in;\n\t-webkit-transition-timing-function: ease-in;\n\t-o-transition-timing-function: ease-in;\n\ttransition-timing-function: ease-in;\n}\n\n.slide-leave-active {\n\t-moz-transition-duration: 0.3s;\n\t-webkit-transition-duration: 0.3s;\n\t-o-transition-duration: 0.3s;\n\ttransition-duration: 0.3s;\n\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n}\n\n.slide-enter-to, .slide-leave {\n\tmax-height: 500px;\n\toverflow: hidden;\n}\n\n.slide-enter, .slide-leave-to {\n\toverflow: hidden;\n\tmax-height: 0;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n}\n\n@import "./../styles/operation";\n\n.actions__item.more {\n\tbackground-color: var(--color-background-dark);\n}\n',".actions__item {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-left: -1px;\n\tpadding: 10px;\n\tborder-radius: var(--border-radius-large);\n\tmargin-right: 20px;\n\tmargin-bottom: 20px;\n}\n.actions__item .icon {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 50px;\n\tbackground-size: 50px 50px;\n\tbackground-position: center center;\n\tmargin-top: 10px;\n\tmargin-bottom: 10px;\n\tbackground-repeat: no-repeat;\n}\n.actions__item__description {\n\ttext-align: center;\n\tflex-grow: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n.actions__item_options {\n\twidth: 100%;\n\tmargin-top: 10px;\n\tpadding-left: 60px;\n}\nh3, small {\n\tpadding: 6px;\n\tdisplay: block;\n}\nh3 {\n\tmargin: 0;\n\tpadding: 0;\n\tfont-weight: 600;\n}\nsmall {\n\tfont-size: 10pt;\n\tflex-grow: 1;\n}\n\n.colored:not(.more) {\n\tbackground-color: var(--color-primary-element);\n\th3, small {\n\t\tcolor: var(--color-primary-element-text)\n\t}\n}\n\n.actions__item:not(.colored) {\n\tflex-direction: row;\n\n\t.actions__item__description {\n\t\tpadding-top: 5px;\n\t\ttext-align: left;\n\t\twidth: calc(100% - 105px);\n\t\tsmall {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\t.icon {\n\t\twidth: 50px;\n\t\tmargin: 0;\n\t\tmargin-right: 10px;\n\t\t&:not(.icon-invert) {\n\t\t\tfilter: var(--background-invert-if-bright);\n\t\t}\n\t}\n}\n\n.colored .icon-invert {\n\tfilter: var(--background-invert-if-bright);\n}\n"],sourceRoot:""}]);const s=r},47892:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"\n.v-select[data-v-003881d4],\ninput[type='text'][data-v-003881d4] {\n\twidth: 100%;\n}\ninput[type='text'][data-v-003881d4] {\n\tmin-height: 48px;\n}\n.option__icon[data-v-003881d4] {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n.option__title[data-v-003881d4] {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestUserAgent.vue"],names:[],mappings:";AAmJA;;CAEA,WAAA;AACA;AACA;CACA,gBAAA;AACA;AAEA;CACA,qBAAA;CACA,eAAA;CACA,2BAAA;CACA,sBAAA;AACA;AAEA;CACA,oBAAA;CACA,wBAAA;CACA,sBAAA;AACA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a user agent')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.pattern\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestUserAgent',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\n\t\t\t\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n"],sourceRoot:""}]);const s=r},43439:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(87537),o=n.n(i),a=n(23645),r=n.n(a)()(o());r.push([t.id,"\n.v-select[data-v-16d8123e] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/workflowengine/src/components/Checks/RequestUserGroup.vue"],names:[],mappings:";AA2GA;CACA,WAAA;AACA",sourcesContent:["\x3c!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:loading=\"status.isLoading && groups.length === 0\"\n\t\t\t:options=\"groups\"\n\t\t\t:clearable=\"false\"\n\t\t\tlabel=\"displayname\"\n\t\t\t@search-change=\"searchAsync\"\n\t\t\t@input=\"(value) => $emit('input', value.id)\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst groups = []\nconst status = {\n\tisLoading: false,\n}\n\nexport default {\n\tname: 'RequestUserGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tstatus,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcurrentValue() {\n\t\t\treturn this.groups.find(group => group.id === this.value) || null\n\t\t},\n\t},\n\tasync mounted() {\n\t\tif (this.groups.length === 0) {\n\t\t\tawait this.searchAsync('')\n\t\t}\n\t\tif (this.currentValue === null) {\n\t\t\tawait this.searchAsync(this.value)\n\t\t}\n\t},\n\tmethods: {\n\t\tsearchAsync(searchQuery) {\n\t\t\tif (this.status.isLoading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.status.isLoading = true\n\t\t\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\n\t\t\t\tresponse.data.ocs.data.groups.forEach((group) => {\n\t\t\t\t\tthis.addGroup({\n\t\t\t\t\t\tid: group.id,\n\t\t\t\t\t\tdisplayname: group.displayname,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\tthis.status.isLoading = false\n\t\t\t}, (error) => {\n\t\t\t\tconsole.error('Error while loading group list', error.response)\n\t\t\t})\n\t\t},\n\t\taddGroup(group) {\n\t\t\tconst index = this.groups.findIndex((item) => item.id === group.id)\n\t\t\tif (index === -1) {\n\t\t\t\tthis.groups.push(group)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n.v-select {\n\twidth: 100%;\n}\n</style>\n"],sourceRoot:""}]);const s=r},46700:(t,e,n)=>{var i={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function o(t){var e=a(t);return n(e)}function a(t){if(!n.o(i,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return i[t]}o.keys=function(){return Object.keys(i)},o.resolve=a,t.exports=o,o.id=46700}},a={};function r(t){var e=a[t];if(void 0!==e)return e.exports;var n=a[t]={id:t,loaded:!1,exports:{}};return o[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=o,e=[],r.O=(t,n,i,o)=>{if(!n){var a=1/0;for(d=0;d<e.length;d++){n=e[d][0],i=e[d][1],o=e[d][2];for(var s=!0,l=0;l<n.length;l++)(!1&o||a>=o)&&Object.keys(r.O).every((t=>r.O[t](n[l])))?n.splice(l--,1):(s=!1,o<a&&(a=o));if(s){e.splice(d--,1);var c=i();void 0!==c&&(t=c)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,i,o]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v=00434e4baa0d8e7b79f1",r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},i="nextcloud:",r.l=(t,e,o,a)=>{if(n[t])n[t].push(e);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var p=c[d];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==i+o){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.setAttribute("data-webpack",i+o),s.src=t),n[t]=[e];var A=(e,i)=>{s.onerror=s.onload=null,clearTimeout(u);var o=n[t];if(delete n[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((t=>t(i))),e)return e(i)},u=setTimeout(A.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=A.bind(null,s.onerror),s.onload=A.bind(null,s.onload),l&&document.head.appendChild(s)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=8318,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={8318:0};r.f.j=(e,n)=>{var i=r.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise(((n,o)=>i=t[e]=[n,o]));n.push(i[2]=o);var a=r.p+r.u(e),s=new Error;r.l(a,(n=>{if(r.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,i[1](s)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var i,o,a=n[0],s=n[1],l=n[2],c=0;if(a.some((e=>0!==t[e]))){for(i in s)r.o(s,i)&&(r.m[i]=s[i]);if(l)var d=l(r)}for(e&&e(n);c<a.length;c++)o=a[c],r.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return r.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),r.nc=void 0;var s=r.O(void 0,[7874],(()=>r(7970)));s=r.O(s)})(); +//# sourceMappingURL=workflowengine-workflowengine.js.map?v=40c35cdf83fe35ef1ce5
\ No newline at end of file diff --git a/dist/workflowengine-workflowengine.js.map b/dist/workflowengine-workflowengine.js.map index c71b1bca0ed..97d018640d7 100644 --- a/dist/workflowengine-workflowengine.js.map +++ b/dist/workflowengine-workflowengine.js.map @@ -1 +1 @@ -{"version":3,"file":"workflowengine-workflowengine.js?v=2002689e96a59c8aba00","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/workflowengine/src/helpers/api.js","webpack:///nextcloud/apps/workflowengine/src/store.js","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?de47","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?5144","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?5115","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?3d5a","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?bf90","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?008c","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?3fb8","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?6918","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?3526","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?86d2","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?2d87","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?e711","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?6c53","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?979d","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?17b8","webpack:///nextcloud/apps/workflowengine/src/helpers/validators.js","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?f663","webpack:///nextcloud/apps/workflowengine/src/mixins/valueMixin.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?0d3a","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?c385","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileSystemTag.vue?acab","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileSystemTag.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileSystemTag.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileSystemTag.vue?2d3e","webpack:///nextcloud/apps/workflowengine/src/components/Checks/file.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?f104","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?81d6","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?80f0","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?1af1","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?7391","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?a55a","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?7662","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?eee5","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?b56e","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?f1ec","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?2c5e","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?f6d3","webpack:///nextcloud/apps/workflowengine/src/components/Checks/index.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/request.js","webpack:///nextcloud/apps/workflowengine/src/workflowengine.js","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst scopeValue = loadState('workflowengine', 'scope') === 0 ? 'global' : 'user'\n\nconst getApiUrl = (url) => {\n\treturn generateOcsUrl('apps/workflowengine/api/v1/workflows/{scopeValue}', { scopeValue }) + url + '?format=json'\n}\n\nexport {\n\tgetApiUrl,\n}\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Daniel Kesselberg <mail@danielkesselberg.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport axios from '@nextcloud/axios'\nimport { getApiUrl } from './helpers/api.js'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\nimport { loadState } from '@nextcloud/initial-state'\n\nVue.use(Vuex)\n\nconst store = new Store({\n\tstate: {\n\t\trules: [],\n\t\tscope: loadState('workflowengine', 'scope'),\n\t\tappstoreEnabled: loadState('workflowengine', 'appstoreenabled'),\n\t\toperations: loadState('workflowengine', 'operators'),\n\n\t\tplugins: Vue.observable({\n\t\t\tchecks: {},\n\t\t\toperators: {},\n\t\t}),\n\n\t\tentities: loadState('workflowengine', 'entities'),\n\t\tevents: loadState('workflowengine', 'entities')\n\t\t\t.map((entity) => entity.events.map(event => {\n\t\t\t\treturn {\n\t\t\t\t\tid: `${entity.id}::${event.eventName}`,\n\t\t\t\t\tentity,\n\t\t\t\t\t...event,\n\t\t\t\t}\n\t\t\t})).flat(),\n\t\tchecks: loadState('workflowengine', 'checks'),\n\t},\n\tmutations: {\n\t\taddRule(state, rule) {\n\t\t\tstate.rules.push({ ...rule, valid: true })\n\t\t},\n\t\tupdateRule(state, rule) {\n\t\t\tconst index = state.rules.findIndex((item) => rule.id === item.id)\n\t\t\tconst newRule = Object.assign({}, rule)\n\t\t\tVue.set(state.rules, index, newRule)\n\t\t},\n\t\tremoveRule(state, rule) {\n\t\t\tconst index = state.rules.findIndex((item) => rule.id === item.id)\n\t\t\tstate.rules.splice(index, 1)\n\t\t},\n\t\taddPluginCheck(state, plugin) {\n\t\t\tVue.set(state.plugins.checks, plugin.class, plugin)\n\t\t},\n\t\taddPluginOperator(state, plugin) {\n\t\t\tplugin = Object.assign(\n\t\t\t\t{ color: 'var(--color-primary-element)' },\n\t\t\t\tplugin, state.operations[plugin.id] || {})\n\t\t\tif (typeof state.operations[plugin.id] !== 'undefined') {\n\t\t\t\tVue.set(state.operations, plugin.id, plugin)\n\t\t\t}\n\t\t},\n\t},\n\tactions: {\n\t\tasync fetchRules(context) {\n\t\t\tconst { data } = await axios.get(getApiUrl(''))\n\t\t\tObject.values(data.ocs.data).flat().forEach((rule) => {\n\t\t\t\tcontext.commit('addRule', rule)\n\t\t\t})\n\t\t},\n\t\tcreateNewRule(context, rule) {\n\t\t\tlet entity = null\n\t\t\tlet events = []\n\t\t\tif (rule.isComplex === false && rule.fixedEntity === '') {\n\t\t\t\tentity = context.state.entities.find((item) => rule.entities && rule.entities[0] === item.id)\n\t\t\t\tentity = entity || Object.values(context.state.entities)[0]\n\t\t\t\tevents = [entity.events[0].eventName]\n\t\t\t}\n\n\t\t\tcontext.commit('addRule', {\n\t\t\t\tid: -(new Date().getTime()),\n\t\t\t\tclass: rule.id,\n\t\t\t\tentity: entity ? entity.id : rule.fixedEntity,\n\t\t\t\tevents,\n\t\t\t\tname: '', // unused in the new ui, there for legacy reasons\n\t\t\t\tchecks: [\n\t\t\t\t\t{ class: null, operator: null, value: '' },\n\t\t\t\t],\n\t\t\t\toperation: rule.operation || '',\n\t\t\t})\n\t\t},\n\t\tupdateRule(context, rule) {\n\t\t\tcontext.commit('updateRule', {\n\t\t\t\t...rule,\n\t\t\t\tevents: typeof rule.events === 'string' ? JSON.parse(rule.events) : rule.events,\n\t\t\t})\n\t\t},\n\t\tremoveRule(context, rule) {\n\t\t\tcontext.commit('removeRule', rule)\n\t\t},\n\t\tasync pushUpdateRule(context, rule) {\n\t\t\tif (context.state.scope === 0) {\n\t\t\t\tawait confirmPassword()\n\t\t\t}\n\t\t\tlet result\n\t\t\tif (rule.id < 0) {\n\t\t\t\tresult = await axios.post(getApiUrl(''), rule)\n\t\t\t} else {\n\t\t\t\tresult = await axios.put(getApiUrl(`/${rule.id}`), rule)\n\t\t\t}\n\t\t\tVue.set(rule, 'id', result.data.ocs.data.id)\n\t\t\tcontext.commit('updateRule', rule)\n\t\t},\n\t\tasync deleteRule(context, rule) {\n\t\t\tawait confirmPassword()\n\t\t\tawait axios.delete(getApiUrl(`/${rule.id}`))\n\t\t\tcontext.commit('removeRule', rule)\n\t\t},\n\t\tsetValid(context, { rule, valid }) {\n\t\t\trule.valid = valid\n\t\t\tcontext.commit('updateRule', rule)\n\t\t},\n\t},\n\tgetters: {\n\t\tgetRules(state) {\n\t\t\treturn state.rules.filter((rule) => typeof state.operations[rule.class] !== 'undefined').sort((rule1, rule2) => {\n\t\t\t\treturn rule1.id - rule2.id || rule2.class - rule1.class\n\t\t\t})\n\t\t},\n\t\tgetOperationForRule(state) {\n\t\t\treturn (rule) => state.operations[rule.class]\n\t\t},\n\t\tgetEntityForOperation(state) {\n\t\t\treturn (operation) => state.entities.find((entity) => operation.fixedEntity === entity.id)\n\t\t},\n\t\tgetEventsForOperation(state) {\n\t\t\treturn (operation) => state.events\n\t\t},\n\n\t\t/**\n\t\t * Return all available checker plugins for a given entity class\n\t\t *\n\t\t * @param {object} state the store state\n\t\t * @return {Function} the available plugins\n\t\t */\n\t\tgetChecksForEntity(state) {\n\t\t\treturn (entity) => {\n\t\t\t\treturn Object.values(state.checks)\n\t\t\t\t\t.filter((check) => check.supportedEntities.indexOf(entity) > -1 || check.supportedEntities.length === 0)\n\t\t\t\t\t.map((check) => state.plugins.checks[check.id])\n\t\t\t\t\t.reduce((obj, item) => {\n\t\t\t\t\t\tobj[item.class] = item\n\t\t\t\t\t\treturn obj\n\t\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\t},\n})\n\nexport default store\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"workflowengine\"}},[_c('NcSettingsSection',{attrs:{\"title\":_vm.t('workflowengine', 'Available flows'),\"doc-url\":_vm.workflowDocUrl}},[(_vm.scope === 0)?_c('p',{staticClass:\"settings-hint\"},[_c('a',{attrs:{\"href\":\"https://nextcloud.com/developer/\"}},[_vm._v(_vm._s(_vm.t('workflowengine', 'For details on how to write your own flow, check out the development documentation.')))])]):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"actions\",attrs:{\"name\":\"slide\",\"tag\":\"div\"}},[_vm._l((_vm.getMainOperations),function(operation){return _c('Operation',{key:operation.id,attrs:{\"operation\":operation},nativeOn:{\"click\":function($event){return _vm.createNewRule(operation)}}})}),_vm._v(\" \"),(_vm.showAppStoreHint)?_c('a',{key:'add',staticClass:\"actions__item colored more\",attrs:{\"href\":_vm.appstoreUrl}},[_c('div',{staticClass:\"icon icon-add\"}),_vm._v(\" \"),_c('div',{staticClass:\"actions__item__description\"},[_c('h3',[_vm._v(_vm._s(_vm.t('workflowengine', 'More flows')))]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.t('workflowengine', 'Browse the App Store')))])])]):_vm._e()],2),_vm._v(\" \"),(_vm.hasMoreOperations)?_c('div',{staticClass:\"actions__more\"},[_c('NcButton',{on:{\"click\":function($event){_vm.showMoreOperations = !_vm.showMoreOperations}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.showMoreOperations)?_c('MenuUp',{attrs:{\"size\":20}}):_c('MenuDown',{attrs:{\"size\":20}})]},proxy:true}],null,false,3801522717)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.showMoreOperations ? _vm.t('workflowengine', 'Show less') : _vm.t('workflowengine', 'Show more'))+\"\\n\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),(_vm.scope === 0)?_c('h2',{staticClass:\"configured-flows\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Configured flows'))+\"\\n\\t\\t\")]):_c('h2',{staticClass:\"configured-flows\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Your flows'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.rules.length > 0)?_c('transition-group',{attrs:{\"name\":\"slide\"}},_vm._l((_vm.rules),function(rule){return _c('Rule',{key:rule.id,attrs:{\"rule\":rule}})}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"event\">\n\t\t<div v-if=\"operation.isComplex && operation.fixedEntity !== ''\" class=\"isComplex\">\n\t\t\t<img class=\"option__icon\" :src=\"entity.icon\" alt=\"\">\n\t\t\t<span class=\"option__title option__title_single\">{{ operation.triggerHint }}</span>\n\t\t</div>\n\t\t<NcMultiselect v-else\n\t\t\t:value=\"currentEvent\"\n\t\t\t:options=\"allEvents\"\n\t\t\ttrack-by=\"id\"\n\t\t\t:multiple=\"true\"\n\t\t\t:auto-limit=\"false\"\n\t\t\t:disabled=\"allEvents.length <= 1\"\n\t\t\t@input=\"updateEvent\">\n\t\t\t<template slot=\"selection\" slot-scope=\"{ values, isOpen }\">\n\t\t\t\t<div v-if=\"values.length && !isOpen\" class=\"eventlist\">\n\t\t\t\t\t<img class=\"option__icon\" :src=\"values[0].entity.icon\" alt=\"\">\n\t\t\t\t\t<span v-for=\"(value, index) in values\" :key=\"value.id\" class=\"text option__title option__title_single\">{{ value.displayName }} <span v-if=\"index+1 < values.length\">, </span></span>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template slot=\"option\" slot-scope=\"props\">\n\t\t\t\t<img class=\"option__icon\" :src=\"props.option.entity.icon\" alt=\"\">\n\t\t\t\t<span class=\"option__title\">{{ props.option.displayName }}</span>\n\t\t\t</template>\n\t\t</NcMultiselect>\n\t</div>\n</template>\n\n<script>\nimport NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'\nimport { showWarning } from '@nextcloud/dialogs'\n\nexport default {\n\tname: 'Event',\n\tcomponents: {\n\t\tNcMultiselect,\n\t},\n\tprops: {\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tentity() {\n\t\t\treturn this.$store.getters.getEntityForOperation(this.operation)\n\t\t},\n\t\toperation() {\n\t\t\treturn this.$store.getters.getOperationForRule(this.rule)\n\t\t},\n\t\tallEvents() {\n\t\t\treturn this.$store.getters.getEventsForOperation(this.operation)\n\t\t},\n\t\tcurrentEvent() {\n\t\t\treturn this.allEvents.filter(event => event.entity.id === this.rule.entity && this.rule.events.indexOf(event.eventName) !== -1)\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateEvent(events) {\n\t\t\tif (events.length === 0) {\n\t\t\t\tshowWarning(t('workflowengine', 'At least one event must be selected'))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst existingEntity = this.rule.entity\n\t\t\tconst newEntities = events.map(event => event.entity.id).filter((value, index, self) => self.indexOf(value) === index)\n\t\t\tlet newEntity = null\n\t\t\tif (newEntities.length > 1) {\n\t\t\t\tnewEntity = newEntities.filter(entity => entity !== existingEntity)[0]\n\t\t\t} else {\n\t\t\t\tnewEntity = newEntities[0]\n\t\t\t}\n\n\t\t\tthis.$set(this.rule, 'entity', newEntity)\n\t\t\tthis.$set(this.rule, 'events', events.filter(event => event.entity.id === newEntity).map(event => event.eventName))\n\t\t\tthis.$emit('update', this.rule)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.event {\n\t\tmargin-bottom: 5px;\n\t}\n\t.isComplex {\n\t\timg {\n\t\t\tvertical-align: text-top;\n\t\t}\n\t\tspan {\n\t\t\tpadding-top: 2px;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\t.multiselect {\n\t\twidth: 100%;\n\t\tmax-width: 550px;\n\t\tmargin-top: 4px;\n\t}\n\t.multiselect::v-deep .multiselect__single {\n\t\tdisplay: flex;\n\t}\n\t.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.multiselect::v-deep .multiselect__tags {\n\t\tbackground-color: var(--color-main-background) !important;\n\t\theight: auto;\n\t\tmin-height: 34px;\n\t}\n\n\t.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\n\t\tbackground-image: var(--icon-triangle-s-dark);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: right center;\n\t}\n\n\tinput {\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.option__title {\n\t\tmargin-left: 5px;\n\t\tcolor: var(--color-main-text);\n\t}\n\t.option__title_single {\n\t\tfont-weight: 900;\n\t}\n\n\t.option__icon {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t.eventlist img,\n\t.eventlist .text {\n\t\tvertical-align: middle;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Event.vue?vue&type=template&id=1825d70e&scoped=true&\"\nimport script from \"./Event.vue?vue&type=script&lang=js&\"\nexport * from \"./Event.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1825d70e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"event\"},[(_vm.operation.isComplex && _vm.operation.fixedEntity !== '')?_c('div',{staticClass:\"isComplex\"},[_c('img',{staticClass:\"option__icon\",attrs:{\"src\":_vm.entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"option__title option__title_single\"},[_vm._v(_vm._s(_vm.operation.triggerHint))])]):_c('NcMultiselect',{attrs:{\"value\":_vm.currentEvent,\"options\":_vm.allEvents,\"track-by\":\"id\",\"multiple\":true,\"auto-limit\":false,\"disabled\":_vm.allEvents.length <= 1},on:{\"input\":_vm.updateEvent},scopedSlots:_vm._u([{key:\"selection\",fn:function({ values, isOpen }){return [(values.length && !isOpen)?_c('div',{staticClass:\"eventlist\"},[_c('img',{staticClass:\"option__icon\",attrs:{\"src\":values[0].entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_vm._l((values),function(value,index){return _c('span',{key:value.id,staticClass:\"text option__title option__title_single\"},[_vm._v(_vm._s(value.displayName)+\" \"),(index+1 < values.length)?_c('span',[_vm._v(\", \")]):_vm._e()])})],2):_vm._e()]}},{key:\"option\",fn:function(props){return [_c('img',{staticClass:\"option__icon\",attrs:{\"src\":props.option.entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.displayName))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideDelete),expression:\"hideDelete\"}],staticClass:\"check\",on:{\"click\":_vm.showDelete}},[_c('NcSelect',{ref:\"checkSelector\",attrs:{\"options\":_vm.options,\"label\":\"name\",\"clearable\":false,\"placeholder\":_vm.t('workflowengine', 'Select a filter')},on:{\"input\":_vm.updateCheck},model:{value:(_vm.currentOption),callback:function ($$v) {_vm.currentOption=$$v},expression:\"currentOption\"}}),_vm._v(\" \"),_c('NcSelect',{staticClass:\"comparator\",attrs:{\"disabled\":!_vm.currentOption,\"options\":_vm.operators,\"label\":\"name\",\"clearable\":false,\"placeholder\":_vm.t('workflowengine', 'Select a comparator')},on:{\"input\":_vm.updateCheck},model:{value:(_vm.currentOperator),callback:function ($$v) {_vm.currentOperator=$$v},expression:\"currentOperator\"}}),_vm._v(\" \"),(_vm.currentOperator && _vm.currentComponent)?_c(_vm.currentOption.component,{tag:\"component\",staticClass:\"option\",attrs:{\"disabled\":!_vm.currentOption,\"check\":_vm.check},on:{\"input\":_vm.updateCheck,\"valid\":function($event){(_vm.valid=true) && _vm.validate()},\"invalid\":function($event){!(_vm.valid=false) && _vm.validate()}},model:{value:(_vm.check.value),callback:function ($$v) {_vm.$set(_vm.check, \"value\", $$v)},expression:\"check.value\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.check.value),expression:\"check.value\"}],staticClass:\"option\",class:{ invalid: !_vm.valid },attrs:{\"type\":\"text\",\"disabled\":!_vm.currentOption,\"placeholder\":_vm.valuePlaceholder},domProps:{\"value\":(_vm.check.value)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.check, \"value\", $event.target.value)},_vm.updateCheck]}}),_vm._v(\" \"),(_vm.deleteVisible || !_vm.currentOption)?_c('NcActions',[_c('NcActionButton',{attrs:{\"title\":_vm.t('workflowengine', 'Remove filter')},on:{\"click\":function($event){return _vm.$emit('remove')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div v-click-outside=\"hideDelete\" class=\"check\" @click=\"showDelete\">\n\t\t<NcSelect ref=\"checkSelector\"\n\t\t\tv-model=\"currentOption\"\n\t\t\t:options=\"options\"\n\t\t\tlabel=\"name\"\n\t\t\t:clearable=\"false\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a filter')\"\n\t\t\t@input=\"updateCheck\" />\n\t\t<NcSelect v-model=\"currentOperator\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:options=\"operators\"\n\t\t\tclass=\"comparator\"\n\t\t\tlabel=\"name\"\n\t\t\t:clearable=\"false\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a comparator')\"\n\t\t\t@input=\"updateCheck\" />\n\t\t<component :is=\"currentOption.component\"\n\t\t\tv-if=\"currentOperator && currentComponent\"\n\t\t\tv-model=\"check.value\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:check=\"check\"\n\t\t\tclass=\"option\"\n\t\t\t@input=\"updateCheck\"\n\t\t\t@valid=\"(valid=true) && validate()\"\n\t\t\t@invalid=\"!(valid=false) && validate()\" />\n\t\t<input v-else\n\t\t\tv-model=\"check.value\"\n\t\t\ttype=\"text\"\n\t\t\t:class=\"{ invalid: !valid }\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:placeholder=\"valuePlaceholder\"\n\t\t\tclass=\"option\"\n\t\t\t@input=\"updateCheck\">\n\t\t<NcActions v-if=\"deleteVisible || !currentOption\">\n\t\t\t<NcActionButton :title=\"t('workflowengine', 'Remove filter')\" @click=\"$emit('remove')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nimport ClickOutside from 'vue-click-outside'\n\nexport default {\n\tname: 'Check',\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcSelect,\n\n\t\t// Icons\n\t\tCloseIcon,\n\t},\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tprops: {\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdeleteVisible: false,\n\t\t\tcurrentOption: null,\n\t\t\tcurrentOperator: null,\n\t\t\toptions: [],\n\t\t\tvalid: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tchecks() {\n\t\t\treturn this.$store.getters.getChecksForEntity(this.rule.entity)\n\t\t},\n\t\toperators() {\n\t\t\tif (!this.currentOption) { return [] }\n\t\t\tconst operators = this.checks[this.currentOption.class].operators\n\t\t\tif (typeof operators === 'function') {\n\t\t\t\treturn operators(this.check)\n\t\t\t}\n\t\t\treturn operators\n\t\t},\n\t\tcurrentComponent() {\n\t\t\tif (!this.currentOption) { return [] }\n\t\t\treturn this.checks[this.currentOption.class].component\n\t\t},\n\t\tvaluePlaceholder() {\n\t\t\tif (this.currentOption && this.currentOption.placeholder) {\n\t\t\t\treturn this.currentOption.placeholder(this.check)\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t},\n\twatch: {\n\t\t'check.operator'() {\n\t\t\tthis.validate()\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.options = Object.values(this.checks)\n\t\tthis.currentOption = this.checks[this.check.class]\n\t\tthis.currentOperator = this.operators.find((operator) => operator.operator === this.check.operator)\n\n\t\tif (this.check.class === null) {\n\t\t\tthis.$nextTick(() => this.$refs.checkSelector.$el.focus())\n\t\t}\n\t\tthis.validate()\n\t},\n\tmethods: {\n\t\tshowDelete() {\n\t\t\tthis.deleteVisible = true\n\t\t},\n\t\thideDelete() {\n\t\t\tthis.deleteVisible = false\n\t\t},\n\t\tvalidate() {\n\t\t\tthis.valid = true\n\t\t\tif (this.currentOption && this.currentOption.validate) {\n\t\t\t\tthis.valid = !!this.currentOption.validate(this.check)\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.invalid = !this.valid\n\t\t\tthis.$emit('validate', this.valid)\n\t\t},\n\t\tupdateCheck() {\n\t\t\tconst matchingOperator = this.operators.findIndex((operator) => this.check.operator === operator.operator)\n\t\t\tif (this.check.class !== this.currentOption.class || matchingOperator === -1) {\n\t\t\t\tthis.currentOperator = this.operators[0]\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.class = this.currentOption.class\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.operator = this.currentOperator.operator\n\n\t\t\tthis.validate()\n\n\t\t\tthis.$emit('update', this.check)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.check {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\talign-items: flex-start; // to not stretch components vertically\n\t\twidth: 100%;\n\t\tpadding-right: 20px;\n\n\t\t& > *:not(.close) {\n\t\t\twidth: 180px;\n\t\t}\n\t\t& > .comparator {\n\t\t\tmin-width: 200px;\n\t\t\twidth: 200px;\n\t\t}\n\t\t& > .option {\n\t\t\tmin-width: 260px;\n\t\t\twidth: 260px;\n\t\t\tmin-height: 48px;\n\n\t\t\t& > input[type=text] {\n\t\t\t\tmin-height: 48px;\n\t\t\t}\n\t\t}\n\t\t& > .v-select,\n\t\t& > .button-vue,\n\t\t& > input[type=text] {\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\tinput[type=text] {\n\t\tmargin: 0;\n\t}\n\t.invalid {\n\t\tborder-color: var(--color-error) !important;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Check.vue?vue&type=template&id=07a2739b&scoped=true&\"\nimport script from \"./Check.vue?vue&type=script&lang=js&\"\nexport * from \"./Check.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07a2739b\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=script&lang=js&\"","<template>\n\t<div class=\"actions__item\" :class=\"{'colored': colored}\" :style=\"{ backgroundColor: colored ? operation.color : 'transparent' }\">\n\t\t<div class=\"icon\" :class=\"operation.iconClass\" :style=\"{ backgroundImage: operation.iconClass ? '' : `url(${operation.icon})` }\" />\n\t\t<div class=\"actions__item__description\">\n\t\t\t<h3>{{ operation.name }}</h3>\n\t\t\t<small>{{ operation.description }}</small>\n\t\t\t<NcButton v-if=\"colored\">\n\t\t\t\t{{ t('workflowengine', 'Add new flow') }}\n\t\t\t</NcButton>\n\t\t</div>\n\t\t<div class=\"actions__item_options\">\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'Operation',\n\tcomponents: {\n\t\tNcButton,\n\t},\n\tprops: {\n\t\toperation: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tcolored: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t@import \"./../styles/operation\";\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Operation.vue?vue&type=template&id=a0480332&scoped=true&\"\nimport script from \"./Operation.vue?vue&type=script&lang=js&\"\nexport * from \"./Operation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0480332\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"actions__item\",class:{'colored': _vm.colored},style:({ backgroundColor: _vm.colored ? _vm.operation.color : 'transparent' })},[_c('div',{staticClass:\"icon\",class:_vm.operation.iconClass,style:({ backgroundImage: _vm.operation.iconClass ? '' : `url(${_vm.operation.icon})` })}),_vm._v(\" \"),_c('div',{staticClass:\"actions__item__description\"},[_c('h3',[_vm._v(_vm._s(_vm.operation.name))]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.operation.description))]),_vm._v(\" \"),(_vm.colored)?_c('NcButton',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Add new flow'))+\"\\n\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"actions__item_options\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div v-if=\"operation\" class=\"section rule\" :style=\"{ borderLeftColor: operation.color || '' }\">\n\t\t<div class=\"trigger\">\n\t\t\t<p>\n\t\t\t\t<span>{{ t('workflowengine', 'When') }}</span>\n\t\t\t\t<Event :rule=\"rule\" @update=\"updateRule\" />\n\t\t\t</p>\n\t\t\t<p v-for=\"(check, index) in rule.checks\" :key=\"index\">\n\t\t\t\t<span>{{ t('workflowengine', 'and') }}</span>\n\t\t\t\t<Check :check=\"check\"\n\t\t\t\t\t:rule=\"rule\"\n\t\t\t\t\t@update=\"updateRule\"\n\t\t\t\t\t@validate=\"validate\"\n\t\t\t\t\t@remove=\"removeCheck(check)\" />\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<span />\n\t\t\t\t<input v-if=\"lastCheckComplete\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"check--add\"\n\t\t\t\t\t:value=\"t('workflowengine', 'Add a new filter')\"\n\t\t\t\t\t@click=\"onAddFilter\">\n\t\t\t</p>\n\t\t</div>\n\t\t<div class=\"flow-icon icon-confirm\" />\n\t\t<div class=\"action\">\n\t\t\t<Operation :operation=\"operation\" :colored=\"false\">\n\t\t\t\t<component :is=\"operation.options\"\n\t\t\t\t\tv-if=\"operation.options\"\n\t\t\t\t\tv-model=\"rule.operation\"\n\t\t\t\t\t@input=\"updateOperation\" />\n\t\t\t</Operation>\n\t\t\t<div class=\"buttons\">\n\t\t\t\t<NcButton v-if=\"rule.id < -1 || dirty\" @click=\"cancelRule\">\n\t\t\t\t\t{{ t('workflowengine', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton v-else-if=\"!dirty\" @click=\"deleteRule\">\n\t\t\t\t\t{{ t('workflowengine', 'Delete') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton :type=\"ruleStatus.type\"\n\t\t\t\t\t@click=\"saveRule\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<component :is=\"ruleStatus.icon\" :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ ruleStatus.title }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<p v-if=\"error\" class=\"error-message\">\n\t\t\t\t{{ error }}\n\t\t\t</p>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport CheckMark from 'vue-material-design-icons/Check.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\n\nimport Event from './Event.vue'\nimport Check from './Check.vue'\nimport Operation from './Operation.vue'\n\nexport default {\n\tname: 'Rule',\n\tcomponents: {\n\t\tArrowRight,\n\t\tCheck,\n\t\tCheckMark,\n\t\tClose,\n\t\tEvent,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcButton,\n\t\tOperation,\n\t},\n\tdirectives: {\n\t\tTooltip,\n\t},\n\tprops: {\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tediting: false,\n\t\t\tchecks: [],\n\t\t\terror: null,\n\t\t\tdirty: this.rule.id < 0,\n\t\t\toriginalRule: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\toperation() {\n\t\t\treturn this.$store.getters.getOperationForRule(this.rule)\n\t\t},\n\t\truleStatus() {\n\t\t\tif (this.error || !this.rule.valid || this.rule.checks.length === 0 || this.rule.checks.some((check) => check.invalid === true)) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: t('workflowengine', 'The configuration is invalid'),\n\t\t\t\t\ticon: 'Close',\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttooltip: { placement: 'bottom', show: true, content: this.error },\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!this.dirty) {\n\t\t\t\treturn { title: t('workflowengine', 'Active'), icon: 'CheckMark', type: 'success' }\n\t\t\t}\n\t\t\treturn { title: t('workflowengine', 'Save'), icon: 'ArrowRight', type: 'primary' }\n\n\t\t},\n\t\tlastCheckComplete() {\n\t\t\tconst lastCheck = this.rule.checks[this.rule.checks.length - 1]\n\t\t\treturn typeof lastCheck === 'undefined' || lastCheck.class !== null\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t},\n\tmethods: {\n\t\tasync updateOperation(operation) {\n\t\t\tthis.$set(this.rule, 'operation', operation)\n\t\t\tawait this.updateRule()\n\t\t},\n\t\tvalidate(state) {\n\t\t\tthis.error = null\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\t\tupdateRule() {\n\t\t\tif (!this.dirty) {\n\t\t\t\tthis.dirty = true\n\t\t\t}\n\n\t\t\tthis.error = null\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\t\tasync saveRule() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('pushUpdateRule', this.rule)\n\t\t\t\tthis.dirty = false\n\t\t\t\tthis.error = null\n\t\t\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Failed to save operation')\n\t\t\t\tthis.error = e.response.data.ocs.meta.message\n\t\t\t}\n\t\t},\n\t\tasync deleteRule() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('deleteRule', this.rule)\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Failed to delete operation')\n\t\t\t\tthis.error = e.response.data.ocs.meta.message\n\t\t\t}\n\t\t},\n\t\tcancelRule() {\n\t\t\tif (this.rule.id < 0) {\n\t\t\t\tthis.$store.dispatch('removeRule', this.rule)\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('updateRule', this.originalRule)\n\t\t\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t\t\t\tthis.dirty = false\n\t\t\t}\n\t\t},\n\n\t\tasync removeCheck(check) {\n\t\t\tconst index = this.rule.checks.findIndex(item => item === check)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.$delete(this.rule.checks, index)\n\t\t\t}\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\n\t\tonAddFilter() {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.rule.checks.push({ class: null, operator: null, value: '' })\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\n\t.buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\n\t\tbutton {\n\t\t\tmargin-left: 5px;\n\t\t}\n\t\tbutton:last-child{\n\t\t\tmargin-right: 10px;\n\t\t}\n\t}\n\n\t.error-message {\n\t\tfloat: right;\n\t\tmargin-right: 10px;\n\t}\n\n\t.flow-icon {\n\t\twidth: 44px;\n\t}\n\n\t.rule {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tborder-left: 5px solid var(--color-primary-element);\n\n\t\t.trigger,\n\t\t.action {\n\t\t\tflex-grow: 1;\n\t\t\tmin-height: 100px;\n\t\t\tmax-width: 920px;\n\t\t}\n\t\t.action {\n\t\t\tmax-width: 400px;\n\t\t\tposition: relative;\n\t\t}\n\t\t.icon-confirm {\n\t\t\tbackground-position: right 27px;\n\t\t\tpadding-right: 20px;\n\t\t\tmargin-right: 20px;\n\t\t}\n\t}\n\t.trigger p, .action p {\n\t\tmin-height: 34px;\n\t\tdisplay: flex;\n\n\t\t& > span {\n\t\t\tmin-width: 50px;\n\t\t\ttext-align: right;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tpadding-right: 10px;\n\t\t\tpadding-top: 6px;\n\t\t}\n\t\t.multiselect {\n\t\t\tflex-grow: 1;\n\t\t\tmax-width: 300px;\n\t\t}\n\t}\n\t.trigger p:first-child span {\n\t\t\tpadding-top: 3px;\n\t}\n\t.trigger p:last-child {\n\t\t\tpadding-top: 8px;\n\t}\n\n\t.check--add {\n\t\tbackground-position: 7px center;\n\t\tbackground-color: transparent;\n\t\tpadding-left: 6px;\n\t\tmargin: 0;\n\t\twidth: 180px;\n\t\tborder-radius: var(--border-radius);\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t\ttext-align: left;\n\t\tfont-size: 1em;\n\t}\n\n\t@media (max-width:1400px) {\n\t\t.rule {\n\t\t\t&, .trigger, .action {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t\t.flow-icon {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Rule.vue?vue&type=template&id=3def8966&scoped=true&\"\nimport script from \"./Rule.vue?vue&type=script&lang=js&\"\nexport * from \"./Rule.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3def8966\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.operation)?_c('div',{staticClass:\"section rule\",style:({ borderLeftColor: _vm.operation.color || '' })},[_c('div',{staticClass:\"trigger\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.t('workflowengine', 'When')))]),_vm._v(\" \"),_c('Event',{attrs:{\"rule\":_vm.rule},on:{\"update\":_vm.updateRule}})],1),_vm._v(\" \"),_vm._l((_vm.rule.checks),function(check,index){return _c('p',{key:index},[_c('span',[_vm._v(_vm._s(_vm.t('workflowengine', 'and')))]),_vm._v(\" \"),_c('Check',{attrs:{\"check\":check,\"rule\":_vm.rule},on:{\"update\":_vm.updateRule,\"validate\":_vm.validate,\"remove\":function($event){return _vm.removeCheck(check)}}})],1)}),_vm._v(\" \"),_c('p',[_c('span'),_vm._v(\" \"),(_vm.lastCheckComplete)?_c('input',{staticClass:\"check--add\",attrs:{\"type\":\"button\",\"value\":_vm.t('workflowengine', 'Add a new filter')},on:{\"click\":_vm.onAddFilter}}):_vm._e()])],2),_vm._v(\" \"),_c('div',{staticClass:\"flow-icon icon-confirm\"}),_vm._v(\" \"),_c('div',{staticClass:\"action\"},[_c('Operation',{attrs:{\"operation\":_vm.operation,\"colored\":false}},[(_vm.operation.options)?_c(_vm.operation.options,{tag:\"component\",on:{\"input\":_vm.updateOperation},model:{value:(_vm.rule.operation),callback:function ($$v) {_vm.$set(_vm.rule, \"operation\", $$v)},expression:\"rule.operation\"}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"buttons\"},[(_vm.rule.id < -1 || _vm.dirty)?_c('NcButton',{on:{\"click\":_vm.cancelRule}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Cancel'))+\"\\n\\t\\t\\t\")]):(!_vm.dirty)?_c('NcButton',{on:{\"click\":_vm.deleteRule}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Delete'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":_vm.ruleStatus.type},on:{\"click\":_vm.saveRule},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_vm.ruleStatus.icon,{tag:\"component\",attrs:{\"size\":20}})]},proxy:true}],null,false,2383918876)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.ruleStatus.title)+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.error)?_c('p',{staticClass:\"error-message\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.error)+\"\\n\\t\\t\")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div id=\"workflowengine\">\n\t\t<NcSettingsSection :title=\"t('workflowengine', 'Available flows')\"\n\t\t\t:doc-url=\"workflowDocUrl\">\n\t\t\t<p v-if=\"scope === 0\" class=\"settings-hint\">\n\t\t\t\t<a href=\"https://nextcloud.com/developer/\">{{ t('workflowengine', 'For details on how to write your own flow, check out the development documentation.') }}</a>\n\t\t\t</p>\n\n\t\t\t<transition-group name=\"slide\" tag=\"div\" class=\"actions\">\n\t\t\t\t<Operation v-for=\"operation in getMainOperations\"\n\t\t\t\t\t:key=\"operation.id\"\n\t\t\t\t\t:operation=\"operation\"\n\t\t\t\t\t@click.native=\"createNewRule(operation)\" />\n\n\t\t\t\t<a v-if=\"showAppStoreHint\"\n\t\t\t\t\t:key=\"'add'\"\n\t\t\t\t\t:href=\"appstoreUrl\"\n\t\t\t\t\tclass=\"actions__item colored more\">\n\t\t\t\t\t<div class=\"icon icon-add\" />\n\t\t\t\t\t<div class=\"actions__item__description\">\n\t\t\t\t\t\t<h3>{{ t('workflowengine', 'More flows') }}</h3>\n\t\t\t\t\t\t<small>{{ t('workflowengine', 'Browse the App Store') }}</small>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t</transition-group>\n\n\t\t\t<div v-if=\"hasMoreOperations\" class=\"actions__more\">\n\t\t\t\t<NcButton @click=\"showMoreOperations = !showMoreOperations\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuUp v-if=\"showMoreOperations\" :size=\"20\" />\n\t\t\t\t\t\t<MenuDown v-else :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ showMoreOperations ? t('workflowengine', 'Show less') : t('workflowengine', 'Show more') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\n\t\t\t<h2 v-if=\"scope === 0\" class=\"configured-flows\">\n\t\t\t\t{{ t('workflowengine', 'Configured flows') }}\n\t\t\t</h2>\n\t\t\t<h2 v-else class=\"configured-flows\">\n\t\t\t\t{{ t('workflowengine', 'Your flows') }}\n\t\t\t</h2>\n\t\t</NcSettingsSection>\n\n\t\t<transition-group v-if=\"rules.length > 0\" name=\"slide\">\n\t\t\t<Rule v-for=\"rule in rules\" :key=\"rule.id\" :rule=\"rule\" />\n\t\t</transition-group>\n\t</div>\n</template>\n\n<script>\nimport Rule from './Rule.vue'\nimport Operation from './Operation.vue'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport { mapGetters, mapState } from 'vuex'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport MenuUp from 'vue-material-design-icons/MenuUp.vue'\nimport MenuDown from 'vue-material-design-icons/MenuDown.vue'\n\nconst ACTION_LIMIT = 3\n\nexport default {\n\tname: 'Workflow',\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuDown,\n\t\tMenuUp,\n\t\tOperation,\n\t\tRule,\n\t\tNcSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowMoreOperations: false,\n\t\t\tappstoreUrl: generateUrl('settings/apps/workflow'),\n\t\t\tworkflowDocUrl: loadState('workflowengine', 'doc-url'),\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapGetters({\n\t\t\trules: 'getRules',\n\t\t}),\n\t\t...mapState({\n\t\t\tappstoreEnabled: 'appstoreEnabled',\n\t\t\tscope: 'scope',\n\t\t\toperations: 'operations',\n\t\t}),\n\t\thasMoreOperations() {\n\t\t\treturn Object.keys(this.operations).length > ACTION_LIMIT\n\t\t},\n\t\tgetMainOperations() {\n\t\t\tif (this.showMoreOperations) {\n\t\t\t\treturn Object.values(this.operations)\n\t\t\t}\n\t\t\treturn Object.values(this.operations).slice(0, ACTION_LIMIT)\n\t\t},\n\t\tshowAppStoreHint() {\n\t\t\treturn this.scope === 0 && this.appstoreEnabled && OC.isUserAdmin()\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$store.dispatch('fetchRules')\n\t},\n\tmethods: {\n\t\tcreateNewRule(operation) {\n\t\t\tthis.$store.dispatch('createNewRule', operation)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t#workflowengine {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\t.section {\n\t\tmax-width: 100vw;\n\n\t\th2.configured-flows {\n\t\t\tmargin-top: 50px;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\t.actions {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmax-width: 1200px;\n\t\t.actions__item {\n\t\t\tmax-width: 280px;\n\t\t\tflex-basis: 250px;\n\t\t}\n\t}\n\t.actions__more {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.slide-enter-active {\n\t\t-moz-transition-duration: 0.3s;\n\t\t-webkit-transition-duration: 0.3s;\n\t\t-o-transition-duration: 0.3s;\n\t\ttransition-duration: 0.3s;\n\t\t-moz-transition-timing-function: ease-in;\n\t\t-webkit-transition-timing-function: ease-in;\n\t\t-o-transition-timing-function: ease-in;\n\t\ttransition-timing-function: ease-in;\n\t}\n\n\t.slide-leave-active {\n\t\t-moz-transition-duration: 0.3s;\n\t\t-webkit-transition-duration: 0.3s;\n\t\t-o-transition-duration: 0.3s;\n\t\ttransition-duration: 0.3s;\n\t\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t}\n\n\t.slide-enter-to, .slide-leave {\n\t\tmax-height: 500px;\n\t\toverflow: hidden;\n\t}\n\n\t.slide-enter, .slide-leave-to {\n\t\toverflow: hidden;\n\t\tmax-height: 0;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t}\n\n\t@import \"./../styles/operation\";\n\n\t.actions__item.more {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Workflow.vue?vue&type=template&id=4e25e34d&scoped=true&\"\nimport script from \"./Workflow.vue?vue&type=script&lang=js&\"\nexport * from \"./Workflow.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e25e34d\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\nconst regexIPv4 = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|[1-2][0-9]|[1-9])$/\nconst regexIPv6 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/\n\nconst validateRegex = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexRegex.exec(string) !== null\n}\n\nconst validateIPv4 = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexIPv4.exec(string) !== null\n}\n\nconst validateIPv6 = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexIPv6.exec(string) !== null\n}\n\nconst stringValidator = (check) => {\n\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\treturn validateRegex(check.value)\n\t}\n\treturn true\n}\n\nexport { validateRegex, stringValidator, validateIPv4, validateIPv6 }\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a file type'),\"label\":\"label\",\"options\":_vm.options,\"clearable\":false},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [(option.icon)?_c('span',{staticClass:\"option__icon\",class:option.icon}):_c('span',{staticClass:\"option__icon-img\"},[_c('img',{attrs:{\"src\":option.iconUrl,\"alt\":\"\"}})]),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [(selectedOption.icon)?_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}):_c('span',{staticClass:\"option__icon-img\"},[_c('img',{attrs:{\"src\":selectedOption.iconUrl,\"alt\":\"\"}})]),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\",\"placeholder\":_vm.t('workflowengine', 'e.g. httpd/unix-directory')},domProps:{\"value\":_vm.currentValue.id},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst valueMixin = {\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t}\n\t},\n\twatch: {\n\t\tvalue: {\n\t\t\timmediate: true,\n\t\t\thandler(value) {\n\t\t\t\tthis.updateInternalValue(value)\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateInternalValue(value) {\n\t\t\tthis.newValue = value\n\t\t},\n\t},\n}\n\nexport default valueMixin\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a file type')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span v-if=\"option.icon\" class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span v-else class=\"option__icon-img\">\n\t\t\t\t\t<img :src=\"option.iconUrl\" alt=\"\">\n\t\t\t\t</span>\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span v-if=\"selectedOption.icon\" class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span v-else class=\"option__icon-img\">\n\t\t\t\t\t<img :src=\"selectedOption.iconUrl\" alt=\"\">\n\t\t\t\t</span>\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.id\"\n\t\t\t:placeholder=\"t('workflowengine', 'e.g. httpd/unix-directory')\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from './../../mixins/valueMixin.js'\nimport { imagePath } from '@nextcloud/router'\n\nexport default {\n\tname: 'FileMimeType',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tpredefinedTypes: [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-folder',\n\t\t\t\t\tlabel: t('workflowengine', 'Folder'),\n\t\t\t\t\tid: 'httpd/unix-directory',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-picture',\n\t\t\t\t\tlabel: t('workflowengine', 'Images'),\n\t\t\t\t\tid: '/image\\\\/.*/',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticonUrl: imagePath('core', 'filetypes/x-office-document'),\n\t\t\t\t\tlabel: t('workflowengine', 'Office documents'),\n\t\t\t\t\tid: '/(vnd\\\\.(ms-|openxmlformats-|oasis\\\\.opendocument).*)$/',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticonUrl: imagePath('core', 'filetypes/application-pdf'),\n\t\t\t\t\tlabel: t('workflowengine', 'PDF documents'),\n\t\t\t\t\tid: 'application/pdf',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tisPredefined() {\n\t\t\tconst matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)\n\t\t\tif (matchingPredefined) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom MIME type'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tconst matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)\n\t\t\tif (matchingPredefined) {\n\t\t\t\treturn matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom mimetype'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped lang=\"scss\">\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\n\ninput[type=text] {\n\tmin-height: 48px;\n}\n\n.option__icon,\n.option__icon-img {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__icon-img {\n\ttext-align: center;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileMimeType.vue?vue&type=template&id=1a11f354&scoped=true&\"\nimport script from \"./FileMimeType.vue?vue&type=script&lang=js&\"\nexport * from \"./FileMimeType.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a11f354\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcSelectTags',{attrs:{\"multiple\":false},on:{\"input\":_vm.update},model:{value:(_vm.newValue),callback:function ($$v) {_vm.newValue=$$v},expression:\"newValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcSelectTags v-model=\"newValue\"\n\t\t:multiple=\"false\"\n\t\t@input=\"update\" />\n</template>\n\n<script>\nimport NcSelectTags from '@nextcloud/vue/dist/Components/NcSelectTags.js'\n\nexport default {\n\tname: 'FileSystemTag',\n\tcomponents: {\n\t\tNcSelectTags,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: [],\n\t\t}\n\t},\n\twatch: {\n\t\tvalue() {\n\t\t\tthis.updateValue()\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.updateValue()\n\t},\n\tmethods: {\n\t\tupdateValue() {\n\t\t\tif (this.value !== '') {\n\t\t\t\tthis.newValue = parseInt(this.value)\n\t\t\t} else {\n\t\t\t\tthis.newValue = null\n\t\t\t}\n\t\t},\n\t\tupdate() {\n\t\t\tthis.$emit('input', this.newValue || '')\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSystemTag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSystemTag.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileSystemTag.vue?vue&type=template&id=3bb09106&scoped=true&\"\nimport script from \"./FileSystemTag.vue?vue&type=script&lang=js&\"\nexport * from \"./FileSystemTag.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bb09106\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Arthur Schiwon <blizzz@arthur-schiwon.de>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators.js'\nimport FileMimeType from './FileMimeType.vue'\nimport FileSystemTag from './FileSystemTag.vue'\n\nconst stringOrRegexOperators = () => {\n\treturn [\n\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t]\n}\n\nconst FileChecks = [\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName',\n\t\tname: t('workflowengine', 'File name'),\n\t\toperators: stringOrRegexOperators,\n\t\tplaceholder: (check) => {\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\treturn '/^dummy-.+$/i'\n\t\t\t}\n\t\t\treturn 'filename.txt'\n\t\t},\n\t\tvalidate: stringValidator,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType',\n\t\tname: t('workflowengine', 'File MIME type'),\n\t\toperators: stringOrRegexOperators,\n\t\tcomponent: FileMimeType,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize',\n\t\tname: t('workflowengine', 'File size (upload)'),\n\t\toperators: [\n\t\t\t{ operator: 'less', name: t('workflowengine', 'less') },\n\t\t\t{ operator: '!greater', name: t('workflowengine', 'less or equals') },\n\t\t\t{ operator: '!less', name: t('workflowengine', 'greater or equals') },\n\t\t\t{ operator: 'greater', name: t('workflowengine', 'greater') },\n\t\t],\n\t\tplaceholder: (check) => '5 MB',\n\t\tvalidate: (check) => check.value ? check.value.match(/^[0-9]+[ ]?[kmgt]?b$/i) !== null : false,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress',\n\t\tname: t('workflowengine', 'Request remote address'),\n\t\toperators: [\n\t\t\t{ operator: 'matchesIPv4', name: t('workflowengine', 'matches IPv4') },\n\t\t\t{ operator: '!matchesIPv4', name: t('workflowengine', 'does not match IPv4') },\n\t\t\t{ operator: 'matchesIPv6', name: t('workflowengine', 'matches IPv6') },\n\t\t\t{ operator: '!matchesIPv6', name: t('workflowengine', 'does not match IPv6') },\n\t\t],\n\t\tplaceholder: (check) => {\n\t\t\tif (check.operator === 'matchesIPv6' || check.operator === '!matchesIPv6') {\n\t\t\t\treturn '::1/128'\n\t\t\t}\n\t\t\treturn '127.0.0.1/32'\n\t\t},\n\t\tvalidate: (check) => {\n\t\t\tif (check.operator === 'matchesIPv6' || check.operator === '!matchesIPv6') {\n\t\t\t\treturn validateIPv6(check.value)\n\t\t\t}\n\t\t\treturn validateIPv4(check.value)\n\t\t},\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags',\n\t\tname: t('workflowengine', 'File system tag'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is tagged with') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not tagged with') },\n\t\t],\n\t\tcomponent: FileSystemTag,\n\t},\n]\n\nexport default FileChecks\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a user agent')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.pattern\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestUserAgent',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\n\t\t\t\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestUserAgent.vue?vue&type=template&id=003881d4&scoped=true&\"\nimport script from \"./RequestUserAgent.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestUserAgent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"003881d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a user agent'),\"label\":\"label\",\"options\":_vm.options,\"clearable\":false},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('span',{staticClass:\"option__icon\",class:option.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.currentValue.pattern},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"timeslot\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newValue.startTime),expression:\"newValue.startTime\"}],staticClass:\"timeslot--start\",attrs:{\"type\":\"text\",\"placeholder\":\"e.g. 08:00\"},domProps:{\"value\":(_vm.newValue.startTime)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.newValue, \"startTime\", $event.target.value)},_vm.update]}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newValue.endTime),expression:\"newValue.endTime\"}],attrs:{\"type\":\"text\",\"placeholder\":\"e.g. 18:00\"},domProps:{\"value\":(_vm.newValue.endTime)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.newValue, \"endTime\", $event.target.value)},_vm.update]}}),_vm._v(\" \"),(!_vm.valid)?_c('p',{staticClass:\"invalid-hint\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Please enter a valid time span'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcSelect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valid),expression:\"valid\"}],attrs:{\"clearable\":false,\"options\":_vm.timezones},on:{\"input\":_vm.update},model:{value:(_vm.newValue.timezone),callback:function ($$v) {_vm.$set(_vm.newValue, \"timezone\", $$v)},expression:\"newValue.timezone\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"timeslot\">\n\t\t<input v-model=\"newValue.startTime\"\n\t\t\ttype=\"text\"\n\t\t\tclass=\"timeslot--start\"\n\t\t\tplaceholder=\"e.g. 08:00\"\n\t\t\t@input=\"update\">\n\t\t<input v-model=\"newValue.endTime\"\n\t\t\ttype=\"text\"\n\t\t\tplaceholder=\"e.g. 18:00\"\n\t\t\t@input=\"update\">\n\t\t<p v-if=\"!valid\" class=\"invalid-hint\">\n\t\t\t{{ t('workflowengine', 'Please enter a valid time span') }}\n\t\t</p>\n\t\t<NcSelect v-show=\"valid\"\n\t\t\tv-model=\"newValue.timezone\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"timezones\"\n\t\t\t@input=\"update\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport moment from 'moment-timezone'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nconst zones = moment.tz.names()\nexport default {\n\tname: 'RequestTime',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttimezones: zones,\n\t\t\tvalid: false,\n\t\t\tnewValue: {\n\t\t\t\tstartTime: null,\n\t\t\t\tendTime: null,\n\t\t\t\ttimezone: moment.tz.guess(),\n\t\t\t},\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.validate()\n\t},\n\tmethods: {\n\t\tupdateInternalValue(value) {\n\t\t\ttry {\n\t\t\t\tconst data = JSON.parse(value)\n\t\t\t\tif (data.length === 2) {\n\t\t\t\t\tthis.newValue = {\n\t\t\t\t\t\tstartTime: data[0].split(' ', 2)[0],\n\t\t\t\t\t\tendTime: data[1].split(' ', 2)[0],\n\t\t\t\t\t\ttimezone: data[0].split(' ', 2)[1],\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t// ignore invalid values\n\t\t\t}\n\t\t},\n\t\tvalidate() {\n\t\t\tthis.valid = this.newValue.startTime && this.newValue.startTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i) !== null\n\t\t\t\t&& this.newValue.endTime && this.newValue.endTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i) !== null\n\t\t\t\t&& moment.tz.zone(this.newValue.timezone) !== null\n\t\t\tif (this.valid) {\n\t\t\t\tthis.$emit('valid')\n\t\t\t} else {\n\t\t\t\tthis.$emit('invalid')\n\t\t\t}\n\t\t\treturn this.valid\n\t\t},\n\t\tupdate() {\n\t\t\tif (this.newValue.timezone === null) {\n\t\t\t\tthis.newValue.timezone = moment.tz.guess()\n\t\t\t}\n\t\t\tif (this.validate()) {\n\t\t\t\tconst output = `[\"${this.newValue.startTime} ${this.newValue.timezone}\",\"${this.newValue.endTime} ${this.newValue.timezone}\"]`\n\t\t\t\tthis.$emit('input', output)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.timeslot {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-wrap: wrap;\n\t\tmax-width: 180px;\n\n\t\t.multiselect {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\n\t\t\tborder: 1px solid transparent;\n\t\t}\n\n\t\tinput[type=text] {\n\t\t\twidth: 50%;\n\t\t\tmargin: 0;\n\t\t\tmargin-bottom: 5px;\n\t\t\tmin-height: 48px;\n\n\t\t\t&.timeslot--start {\n\t\t\t\tmargin-right: 5px;\n\t\t\t\twidth: calc(50% - 5px);\n\t\t\t}\n\t\t}\n\n\t\t.invalid-hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestTime.vue?vue&type=template&id=7a2ecc67&scoped=true&\"\nimport script from \"./RequestTime.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestTime.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a2ecc67\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a request URL')\"\n\t\t\tlabel=\"label\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"options\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.id\"\n\t\t\t:placeholder=\"placeholder\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestURL',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-files-dark',\n\t\t\t\t\tid: 'webdav',\n\t\t\t\t\tlabel: t('workflowengine', 'Files WebDAV'),\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tplaceholder() {\n\t\t\tif (this.check.operator === 'matches' || this.check.operator === '!matches') {\n\t\t\t\treturn '/^https\\\\:\\\\/\\\\/localhost\\\\/index\\\\.php$/i'\n\t\t\t}\n\t\t\treturn 'https://localhost/index.php'\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom URL'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom URL'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped lang=\"scss\">\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestURL.vue?vue&type=template&id=1a72d97f&scoped=true&\"\nimport script from \"./RequestURL.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestURL.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a72d97f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a request URL'),\"label\":\"label\",\"clearable\":false,\"options\":_vm.options},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('span',{staticClass:\"option__icon\",class:option.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.currentValue.id},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"loading\":_vm.status.isLoading && _vm.groups.length === 0,\"options\":_vm.groups,\"clearable\":false,\"label\":\"displayname\"},on:{\"search-change\":_vm.searchAsync,\"input\":(value) => _vm.$emit('input', value.id)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:loading=\"status.isLoading && groups.length === 0\"\n\t\t\t:options=\"groups\"\n\t\t\t:clearable=\"false\"\n\t\t\tlabel=\"displayname\"\n\t\t\t@search-change=\"searchAsync\"\n\t\t\t@input=\"(value) => $emit('input', value.id)\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst groups = []\nconst status = {\n\tisLoading: false,\n}\n\nexport default {\n\tname: 'RequestUserGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tstatus,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcurrentValue() {\n\t\t\treturn this.groups.find(group => group.id === this.value) || null\n\t\t},\n\t},\n\tasync mounted() {\n\t\tif (this.groups.length === 0) {\n\t\t\tawait this.searchAsync('')\n\t\t}\n\t\tif (this.currentValue === null) {\n\t\t\tawait this.searchAsync(this.value)\n\t\t}\n\t},\n\tmethods: {\n\t\tsearchAsync(searchQuery) {\n\t\t\tif (this.status.isLoading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.status.isLoading = true\n\t\t\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\n\t\t\t\tresponse.data.ocs.data.groups.forEach((group) => {\n\t\t\t\t\tthis.addGroup({\n\t\t\t\t\t\tid: group.id,\n\t\t\t\t\t\tdisplayname: group.displayname,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\tthis.status.isLoading = false\n\t\t\t}, (error) => {\n\t\t\t\tconsole.error('Error while loading group list', error.response)\n\t\t\t})\n\t\t},\n\t\taddGroup(group) {\n\t\t\tconst index = this.groups.findIndex((item) => item.id === group.id)\n\t\t\tif (index === -1) {\n\t\t\t\tthis.groups.push(group)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n.v-select {\n\twidth: 100%;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestUserGroup.vue?vue&type=template&id=16d8123e&scoped=true&\"\nimport script from \"./RequestUserGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestUserGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16d8123e\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport FileChecks from './file.js'\nimport RequestChecks from './request.js'\n\nexport default [...FileChecks, ...RequestChecks]\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport RequestUserAgent from './RequestUserAgent.vue'\nimport RequestTime from './RequestTime.vue'\nimport RequestURL from './RequestURL.vue'\nimport RequestUserGroup from './RequestUserGroup.vue'\n\nconst RequestChecks = [\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL',\n\t\tname: t('workflowengine', 'Request URL'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t],\n\t\tcomponent: RequestURL,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime',\n\t\tname: t('workflowengine', 'Request time'),\n\t\toperators: [\n\t\t\t{ operator: 'in', name: t('workflowengine', 'between') },\n\t\t\t{ operator: '!in', name: t('workflowengine', 'not between') },\n\t\t],\n\t\tcomponent: RequestTime,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent',\n\t\tname: t('workflowengine', 'Request user agent'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t],\n\t\tcomponent: RequestUserAgent,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership',\n\t\tname: t('workflowengine', 'User group membership'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is member of') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not member of') },\n\t\t],\n\t\tcomponent: RequestUserGroup,\n\t},\n]\n\nexport default RequestChecks\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex from 'vuex'\nimport store from './store.js'\nimport Settings from './components/Workflow.vue'\nimport ShippedChecks from './components/Checks/index.js'\n\n/**\n * A plugin for displaying a custom value field for checks\n *\n * @typedef {object} CheckPlugin\n * @property {string} class - The PHP class name of the check\n * @property {Comparison[]} operators - A list of possible comparison operations running on the check\n * @property {Vue} component - A vue component to handle the rendering of options\n * The component should handle the v-model directive properly,\n * so it needs a value property to receive data and emit an input\n * event once the data has changed\n * @property {Function} placeholder - Return a placeholder of no custom component is used\n * @property {Function} validate - validate a check if no custom component is used\n */\n\n/**\n * A plugin for extending the admin page representation of an operator\n *\n * @typedef {object} OperatorPlugin\n * @property {string} id - The PHP class name of the check\n * @property {string} operation - Default value for the operation field\n * @property {string} color - Custom color code to be applied for the operator selector\n * @property {Vue} component - A vue component to handle the rendering of options\n * The component should handle the v-model directive properly,\n * so it needs a value property to receive data and emit an input\n * event once the data has changed\n */\n\n/**\n * @typedef {object} Comparison\n * @property {string} operator - value the comparison should have, e.g. !less, greater\n * @property {string} name - Translated readable text, e.g. less or equals\n */\n\n/**\n * Public javascript api for apps to register custom plugins\n */\nwindow.OCA.WorkflowEngine = Object.assign({}, OCA.WorkflowEngine, {\n\n\t/**\n\t *\n\t * @param {CheckPlugin} Plugin the plugin to register\n\t */\n\tregisterCheck(Plugin) {\n\t\tstore.commit('addPluginCheck', Plugin)\n\t},\n\t/**\n\t *\n\t * @param {OperatorPlugin} Plugin the plugin to register\n\t */\n\tregisterOperator(Plugin) {\n\t\tstore.commit('addPluginOperator', Plugin)\n\t},\n})\n\n// Register shipped checks\nShippedChecks.forEach((checkPlugin) => window.OCA.WorkflowEngine.registerCheck(checkPlugin))\n\nVue.use(Vuex)\nVue.prototype.t = t\n\nconst View = Vue.extend(Settings)\nconst workflowengine = new View({\n\tstore,\n})\nworkflowengine.$mount('#workflowengine')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".check[data-v-07a2739b]{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;padding-right:20px}.check>*[data-v-07a2739b]:not(.close){width:180px}.check>.comparator[data-v-07a2739b]{min-width:200px;width:200px}.check>.option[data-v-07a2739b]{min-width:260px;width:260px;min-height:48px}.check>.option>input[type=text][data-v-07a2739b]{min-height:48px}.check>.v-select[data-v-07a2739b],.check>.button-vue[data-v-07a2739b],.check>input[type=text][data-v-07a2739b]{margin-right:5px;margin-bottom:5px}input[type=text][data-v-07a2739b]{margin:0}.invalid[data-v-07a2739b]{border-color:var(--color-error) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Check.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,YAAA,CACA,cAAA,CACA,sBAAA,CACA,UAAA,CACA,kBAAA,CAEA,sCACC,WAAA,CAED,oCACC,eAAA,CACA,WAAA,CAED,gCACC,eAAA,CACA,WAAA,CACA,eAAA,CAEA,iDACC,eAAA,CAGF,+GAGC,gBAAA,CACA,iBAAA,CAGF,kCACC,QAAA,CAED,0BACC,0CAAA\",\"sourcesContent\":[\"\\n.check {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\talign-items: flex-start; // to not stretch components vertically\\n\\twidth: 100%;\\n\\tpadding-right: 20px;\\n\\n\\t& > *:not(.close) {\\n\\t\\twidth: 180px;\\n\\t}\\n\\t& > .comparator {\\n\\t\\tmin-width: 200px;\\n\\t\\twidth: 200px;\\n\\t}\\n\\t& > .option {\\n\\t\\tmin-width: 260px;\\n\\t\\twidth: 260px;\\n\\t\\tmin-height: 48px;\\n\\n\\t\\t& > input[type=text] {\\n\\t\\t\\tmin-height: 48px;\\n\\t\\t}\\n\\t}\\n\\t& > .v-select,\\n\\t& > .button-vue,\\n\\t& > input[type=text] {\\n\\t\\tmargin-right: 5px;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\ninput[type=text] {\\n\\tmargin: 0;\\n}\\n.invalid {\\n\\tborder-color: var(--color-error) !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-select[data-v-1a11f354],input[type=text][data-v-1a11f354]{width:100%}input[type=text][data-v-1a11f354]{min-height:48px}.option__icon[data-v-1a11f354],.option__icon-img[data-v-1a11f354]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__icon-img[data-v-1a11f354]{text-align:center}.option__title[data-v-1a11f354]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/FileMimeType.vue\"],\"names\":[],\"mappings\":\"AACA,6DAEC,UAAA,CAGD,kCACC,eAAA,CAGD,kEAEC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,mCACC,iBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA\",\"sourcesContent\":[\"\\n.v-select,\\ninput[type='text'] {\\n\\twidth: 100%;\\n}\\n\\ninput[type=text] {\\n\\tmin-height: 48px;\\n}\\n\\n.option__icon,\\n.option__icon-img {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n\\n.option__icon-img {\\n\\ttext-align: center;\\n}\\n\\n.option__title {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeslot[data-v-7a2ecc67]{display:flex;flex-grow:1;flex-wrap:wrap;max-width:180px}.timeslot .multiselect[data-v-7a2ecc67]{width:100%;margin-bottom:5px}.timeslot .multiselect[data-v-7a2ecc67] .multiselect__tags:not(:hover):not(:focus):not(:active){border:1px solid rgba(0,0,0,0)}.timeslot input[type=text][data-v-7a2ecc67]{width:50%;margin:0;margin-bottom:5px;min-height:48px}.timeslot input[type=text].timeslot--start[data-v-7a2ecc67]{margin-right:5px;width:calc(50% - 5px)}.timeslot .invalid-hint[data-v-7a2ecc67]{color:var(--color-text-maxcontrast)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestTime.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAEA,wCACC,UAAA,CACA,iBAAA,CAGD,gGACC,8BAAA,CAGD,4CACC,SAAA,CACA,QAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACC,gBAAA,CACA,qBAAA,CAIF,yCACC,mCAAA\",\"sourcesContent\":[\"\\n.timeslot {\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tflex-wrap: wrap;\\n\\tmax-width: 180px;\\n\\n\\t.multiselect {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n\\n\\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\\n\\t\\tborder: 1px solid transparent;\\n\\t}\\n\\n\\tinput[type=text] {\\n\\t\\twidth: 50%;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-bottom: 5px;\\n\\t\\tmin-height: 48px;\\n\\n\\t\\t&.timeslot--start {\\n\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\twidth: calc(50% - 5px);\\n\\t\\t}\\n\\t}\\n\\n\\t.invalid-hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-select[data-v-1a72d97f],input[type=text][data-v-1a72d97f]{width:100%}input[type=text][data-v-1a72d97f]{min-height:48px}.option__icon[data-v-1a72d97f]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__title[data-v-1a72d97f]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestURL.vue\"],\"names\":[],\"mappings\":\"AACA,6DAEC,UAAA,CAED,kCACC,eAAA,CAGD,+BACC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA\",\"sourcesContent\":[\"\\n.v-select,\\ninput[type='text'] {\\n\\twidth: 100%;\\n}\\ninput[type='text'] {\\n\\tmin-height: 48px;\\n}\\n\\n.option__icon {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n\\n.option__title {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".event[data-v-1825d70e]{margin-bottom:5px}.isComplex img[data-v-1825d70e]{vertical-align:text-top}.isComplex span[data-v-1825d70e]{padding-top:2px;display:inline-block}.multiselect[data-v-1825d70e]{width:100%;max-width:550px;margin-top:4px}.multiselect[data-v-1825d70e] .multiselect__single{display:flex}.multiselect[data-v-1825d70e]:not(.multiselect--active) .multiselect__tags{background-color:var(--color-main-background) !important;border:1px solid rgba(0,0,0,0)}.multiselect[data-v-1825d70e] .multiselect__tags{background-color:var(--color-main-background) !important;height:auto;min-height:34px}.multiselect[data-v-1825d70e]:not(.multiselect--disabled) .multiselect__tags .multiselect__single{background-image:var(--icon-triangle-s-dark);background-repeat:no-repeat;background-position:right center}input[data-v-1825d70e]{border:1px solid rgba(0,0,0,0)}.option__title[data-v-1825d70e]{margin-left:5px;color:var(--color-main-text)}.option__title_single[data-v-1825d70e]{font-weight:900}.option__icon[data-v-1825d70e]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.eventlist img[data-v-1825d70e],.eventlist .text[data-v-1825d70e]{vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Event.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,iBAAA,CAGA,gCACC,uBAAA,CAED,iCACC,eAAA,CACA,oBAAA,CAGF,8BACC,UAAA,CACA,eAAA,CACA,cAAA,CAED,mDACC,YAAA,CAED,2EACC,wDAAA,CACA,8BAAA,CAGD,iDACC,wDAAA,CACA,WAAA,CACA,eAAA,CAGD,kGACC,4CAAA,CACA,2BAAA,CACA,gCAAA,CAGD,uBACC,8BAAA,CAGD,gCACC,eAAA,CACA,4BAAA,CAED,uCACC,eAAA,CAGD,+BACC,UAAA,CACA,WAAA,CACA,uCAAA,CAGD,kEAEC,qBAAA\",\"sourcesContent\":[\"\\n.event {\\n\\tmargin-bottom: 5px;\\n}\\n.isComplex {\\n\\timg {\\n\\t\\tvertical-align: text-top;\\n\\t}\\n\\tspan {\\n\\t\\tpadding-top: 2px;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n.multiselect {\\n\\twidth: 100%;\\n\\tmax-width: 550px;\\n\\tmargin-top: 4px;\\n}\\n.multiselect::v-deep .multiselect__single {\\n\\tdisplay: flex;\\n}\\n.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\tborder: 1px solid transparent;\\n}\\n\\n.multiselect::v-deep .multiselect__tags {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\theight: auto;\\n\\tmin-height: 34px;\\n}\\n\\n.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\\n\\tbackground-image: var(--icon-triangle-s-dark);\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: right center;\\n}\\n\\ninput {\\n\\tborder: 1px solid transparent;\\n}\\n\\n.option__title {\\n\\tmargin-left: 5px;\\n\\tcolor: var(--color-main-text);\\n}\\n.option__title_single {\\n\\tfont-weight: 900;\\n}\\n\\n.option__icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tfilter: var(--background-invert-if-dark);\\n}\\n\\n.eventlist img,\\n.eventlist .text {\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions__item[data-v-a0480332]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-a0480332]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-a0480332]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-a0480332]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-a0480332],small[data-v-a0480332]{padding:6px;display:block}h3[data-v-a0480332]{margin:0;padding:0;font-weight:600}small[data-v-a0480332]{font-size:10pt;flex-grow:1}.colored[data-v-a0480332]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-a0480332],.colored:not(.more) small[data-v-a0480332]{color:var(--color-primary-element-text)}.actions__item[data-v-a0480332]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-a0480332]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-a0480332]{padding:0}.actions__item:not(.colored) .icon[data-v-a0480332]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-a0480332]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-a0480332]{filter:var(--background-invert-if-bright)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/styles/operation.scss\"],\"names\":[],\"mappings\":\"AAAA,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA\",\"sourcesContent\":[\".actions__item {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tflex-direction: column;\\n\\tflex-grow: 1;\\n\\tmargin-left: -1px;\\n\\tpadding: 10px;\\n\\tborder-radius: var(--border-radius-large);\\n\\tmargin-right: 20px;\\n\\tmargin-bottom: 20px;\\n}\\n.actions__item .icon {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 50px;\\n\\tbackground-size: 50px 50px;\\n\\tbackground-position: center center;\\n\\tmargin-top: 10px;\\n\\tmargin-bottom: 10px;\\n\\tbackground-repeat: no-repeat;\\n}\\n.actions__item__description {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n}\\n.actions__item_options {\\n\\twidth: 100%;\\n\\tmargin-top: 10px;\\n\\tpadding-left: 60px;\\n}\\nh3, small {\\n\\tpadding: 6px;\\n\\tdisplay: block;\\n}\\nh3 {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tfont-weight: 600;\\n}\\nsmall {\\n\\tfont-size: 10pt;\\n\\tflex-grow: 1;\\n}\\n\\n.colored:not(.more) {\\n\\tbackground-color: var(--color-primary-element);\\n\\th3, small {\\n\\t\\tcolor: var(--color-primary-element-text)\\n\\t}\\n}\\n\\n.actions__item:not(.colored) {\\n\\tflex-direction: row;\\n\\n\\t.actions__item__description {\\n\\t\\tpadding-top: 5px;\\n\\t\\ttext-align: left;\\n\\t\\twidth: calc(100% - 105px);\\n\\t\\tsmall {\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\t.icon {\\n\\t\\twidth: 50px;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-right: 10px;\\n\\t\\t&:not(.icon-invert) {\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n}\\n\\n.colored .icon-invert {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".buttons[data-v-3def8966]{display:flex;justify-content:end}.buttons button[data-v-3def8966]{margin-left:5px}.buttons button[data-v-3def8966]:last-child{margin-right:10px}.error-message[data-v-3def8966]{float:right;margin-right:10px}.flow-icon[data-v-3def8966]{width:44px}.rule[data-v-3def8966]{display:flex;flex-wrap:wrap;border-left:5px solid var(--color-primary-element)}.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{flex-grow:1;min-height:100px;max-width:920px}.rule .action[data-v-3def8966]{max-width:400px;position:relative}.rule .icon-confirm[data-v-3def8966]{background-position:right 27px;padding-right:20px;margin-right:20px}.trigger p[data-v-3def8966],.action p[data-v-3def8966]{min-height:34px;display:flex}.trigger p>span[data-v-3def8966],.action p>span[data-v-3def8966]{min-width:50px;text-align:right;color:var(--color-text-maxcontrast);padding-right:10px;padding-top:6px}.trigger p .multiselect[data-v-3def8966],.action p .multiselect[data-v-3def8966]{flex-grow:1;max-width:300px}.trigger p:first-child span[data-v-3def8966]{padding-top:3px}.trigger p[data-v-3def8966]:last-child{padding-top:8px}.check--add[data-v-3def8966]{background-position:7px center;background-color:rgba(0,0,0,0);padding-left:6px;margin:0;width:180px;border-radius:var(--border-radius);color:var(--color-text-maxcontrast);font-weight:normal;text-align:left;font-size:1em}@media(max-width: 1400px){.rule[data-v-3def8966],.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{width:100%;max-width:100%}.rule .flow-icon[data-v-3def8966]{display:none}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Rule.vue\"],\"names\":[],\"mappings\":\"AAEA,0BACC,YAAA,CACA,mBAAA,CAEA,iCACC,eAAA,CAED,4CACC,iBAAA,CAIF,gCACC,WAAA,CACA,iBAAA,CAGD,4BACC,UAAA,CAGD,uBACC,YAAA,CACA,cAAA,CACA,kDAAA,CAEA,+DAEC,WAAA,CACA,gBAAA,CACA,eAAA,CAED,+BACC,eAAA,CACA,iBAAA,CAED,qCACC,8BAAA,CACA,kBAAA,CACA,iBAAA,CAGF,uDACC,eAAA,CACA,YAAA,CAEA,iEACC,cAAA,CACA,gBAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CAED,iFACC,WAAA,CACA,eAAA,CAGF,6CACE,eAAA,CAEF,uCACE,eAAA,CAGF,6BACC,8BAAA,CACA,8BAAA,CACA,gBAAA,CACA,QAAA,CACA,WAAA,CACA,kCAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CAGD,0BAEE,sFACC,UAAA,CACA,cAAA,CAED,kCACC,YAAA,CAAA\",\"sourcesContent\":[\"\\n\\n.buttons {\\n\\tdisplay: flex;\\n\\tjustify-content: end;\\n\\n\\tbutton {\\n\\t\\tmargin-left: 5px;\\n\\t}\\n\\tbutton:last-child{\\n\\t\\tmargin-right: 10px;\\n\\t}\\n}\\n\\n.error-message {\\n\\tfloat: right;\\n\\tmargin-right: 10px;\\n}\\n\\n.flow-icon {\\n\\twidth: 44px;\\n}\\n\\n.rule {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tborder-left: 5px solid var(--color-primary-element);\\n\\n\\t.trigger,\\n\\t.action {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-height: 100px;\\n\\t\\tmax-width: 920px;\\n\\t}\\n\\t.action {\\n\\t\\tmax-width: 400px;\\n\\t\\tposition: relative;\\n\\t}\\n\\t.icon-confirm {\\n\\t\\tbackground-position: right 27px;\\n\\t\\tpadding-right: 20px;\\n\\t\\tmargin-right: 20px;\\n\\t}\\n}\\n.trigger p, .action p {\\n\\tmin-height: 34px;\\n\\tdisplay: flex;\\n\\n\\t& > span {\\n\\t\\tmin-width: 50px;\\n\\t\\ttext-align: right;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-right: 10px;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\t.multiselect {\\n\\t\\tflex-grow: 1;\\n\\t\\tmax-width: 300px;\\n\\t}\\n}\\n.trigger p:first-child span {\\n\\t\\tpadding-top: 3px;\\n}\\n.trigger p:last-child {\\n\\t\\tpadding-top: 8px;\\n}\\n\\n.check--add {\\n\\tbackground-position: 7px center;\\n\\tbackground-color: transparent;\\n\\tpadding-left: 6px;\\n\\tmargin: 0;\\n\\twidth: 180px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tfont-weight: normal;\\n\\ttext-align: left;\\n\\tfont-size: 1em;\\n}\\n\\n@media (max-width:1400px) {\\n\\t.rule {\\n\\t\\t&, .trigger, .action {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t\\t.flow-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#workflowengine[data-v-4e25e34d]{border-bottom:1px solid var(--color-border)}.section[data-v-4e25e34d]{max-width:100vw}.section h2.configured-flows[data-v-4e25e34d]{margin-top:50px;margin-bottom:0}.actions[data-v-4e25e34d]{display:flex;flex-wrap:wrap;max-width:1200px}.actions .actions__item[data-v-4e25e34d]{max-width:280px;flex-basis:250px}.actions__more[data-v-4e25e34d]{margin-bottom:10px}.slide-enter-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:ease-in;-webkit-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.slide-leave-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-webkit-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-o-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);transition-timing-function:cubic-bezier(0, 1, 0.5, 1)}.slide-enter-to[data-v-4e25e34d],.slide-leave[data-v-4e25e34d]{max-height:500px;overflow:hidden}.slide-enter[data-v-4e25e34d],.slide-leave-to[data-v-4e25e34d]{overflow:hidden;max-height:0;padding-top:0;padding-bottom:0}.actions__item[data-v-4e25e34d]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-4e25e34d]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-4e25e34d]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-4e25e34d]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-4e25e34d],small[data-v-4e25e34d]{padding:6px;display:block}h3[data-v-4e25e34d]{margin:0;padding:0;font-weight:600}small[data-v-4e25e34d]{font-size:10pt;flex-grow:1}.colored[data-v-4e25e34d]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-4e25e34d],.colored:not(.more) small[data-v-4e25e34d]{color:var(--color-primary-element-text)}.actions__item[data-v-4e25e34d]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-4e25e34d]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-4e25e34d]{padding:0}.actions__item:not(.colored) .icon[data-v-4e25e34d]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-4e25e34d]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-4e25e34d]{filter:var(--background-invert-if-bright)}.actions__item.more[data-v-4e25e34d]{background-color:var(--color-background-dark)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Workflow.vue\",\"webpack://./apps/workflowengine/src/styles/operation.scss\"],\"names\":[],\"mappings\":\"AACA,iCACC,2CAAA,CAED,0BACC,eAAA,CAEA,8CACC,eAAA,CACA,eAAA,CAGF,0BACC,YAAA,CACA,cAAA,CACA,gBAAA,CACA,yCACC,eAAA,CACA,gBAAA,CAGF,gCACC,kBAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uCAAA,CACA,0CAAA,CACA,qCAAA,CACA,kCAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,0DAAA,CACA,6DAAA,CACA,wDAAA,CACA,qDAAA,CAGD,+DACC,gBAAA,CACA,eAAA,CAGD,+DACC,eAAA,CACA,YAAA,CACA,aAAA,CACA,gBAAA,CCxDD,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA,CDfD,qCACC,6CAAA\",\"sourcesContent\":[\"\\n#workflowengine {\\n\\tborder-bottom: 1px solid var(--color-border);\\n}\\n.section {\\n\\tmax-width: 100vw;\\n\\n\\th2.configured-flows {\\n\\t\\tmargin-top: 50px;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n}\\n.actions {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tmax-width: 1200px;\\n\\t.actions__item {\\n\\t\\tmax-width: 280px;\\n\\t\\tflex-basis: 250px;\\n\\t}\\n}\\n.actions__more {\\n\\tmargin-bottom: 10px;\\n}\\n\\n.slide-enter-active {\\n\\t-moz-transition-duration: 0.3s;\\n\\t-webkit-transition-duration: 0.3s;\\n\\t-o-transition-duration: 0.3s;\\n\\ttransition-duration: 0.3s;\\n\\t-moz-transition-timing-function: ease-in;\\n\\t-webkit-transition-timing-function: ease-in;\\n\\t-o-transition-timing-function: ease-in;\\n\\ttransition-timing-function: ease-in;\\n}\\n\\n.slide-leave-active {\\n\\t-moz-transition-duration: 0.3s;\\n\\t-webkit-transition-duration: 0.3s;\\n\\t-o-transition-duration: 0.3s;\\n\\ttransition-duration: 0.3s;\\n\\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n}\\n\\n.slide-enter-to, .slide-leave {\\n\\tmax-height: 500px;\\n\\toverflow: hidden;\\n}\\n\\n.slide-enter, .slide-leave-to {\\n\\toverflow: hidden;\\n\\tmax-height: 0;\\n\\tpadding-top: 0;\\n\\tpadding-bottom: 0;\\n}\\n\\n@import \\\"./../styles/operation\\\";\\n\\n.actions__item.more {\\n\\tbackground-color: var(--color-background-dark);\\n}\\n\",\".actions__item {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tflex-direction: column;\\n\\tflex-grow: 1;\\n\\tmargin-left: -1px;\\n\\tpadding: 10px;\\n\\tborder-radius: var(--border-radius-large);\\n\\tmargin-right: 20px;\\n\\tmargin-bottom: 20px;\\n}\\n.actions__item .icon {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 50px;\\n\\tbackground-size: 50px 50px;\\n\\tbackground-position: center center;\\n\\tmargin-top: 10px;\\n\\tmargin-bottom: 10px;\\n\\tbackground-repeat: no-repeat;\\n}\\n.actions__item__description {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n}\\n.actions__item_options {\\n\\twidth: 100%;\\n\\tmargin-top: 10px;\\n\\tpadding-left: 60px;\\n}\\nh3, small {\\n\\tpadding: 6px;\\n\\tdisplay: block;\\n}\\nh3 {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tfont-weight: 600;\\n}\\nsmall {\\n\\tfont-size: 10pt;\\n\\tflex-grow: 1;\\n}\\n\\n.colored:not(.more) {\\n\\tbackground-color: var(--color-primary-element);\\n\\th3, small {\\n\\t\\tcolor: var(--color-primary-element-text)\\n\\t}\\n}\\n\\n.actions__item:not(.colored) {\\n\\tflex-direction: row;\\n\\n\\t.actions__item__description {\\n\\t\\tpadding-top: 5px;\\n\\t\\ttext-align: left;\\n\\t\\twidth: calc(100% - 105px);\\n\\t\\tsmall {\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\t.icon {\\n\\t\\twidth: 50px;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-right: 10px;\\n\\t\\t&:not(.icon-invert) {\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n}\\n\\n.colored .icon-invert {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-select[data-v-003881d4],\\ninput[type='text'][data-v-003881d4] {\\n\\twidth: 100%;\\n}\\ninput[type='text'][data-v-003881d4] {\\n\\tmin-height: 48px;\\n}\\n.option__icon[data-v-003881d4] {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n.option__title[data-v-003881d4] {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestUserAgent.vue\"],\"names\":[],\"mappings\":\";AAmJA;;CAEA,WAAA;AACA;AACA;CACA,gBAAA;AACA;AAEA;CACA,qBAAA;CACA,eAAA;CACA,2BAAA;CACA,sBAAA;AACA;AAEA;CACA,oBAAA;CACA,wBAAA;CACA,sBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n -\\n - @author Julius Härtl <jus@bitgrid.net>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<div>\\n\\t\\t<NcSelect :value=\\\"currentValue\\\"\\n\\t\\t\\t:placeholder=\\\"t('workflowengine', 'Select a user agent')\\\"\\n\\t\\t\\tlabel=\\\"label\\\"\\n\\t\\t\\t:options=\\\"options\\\"\\n\\t\\t\\t:clearable=\\\"false\\\"\\n\\t\\t\\t@input=\\\"setValue\\\">\\n\\t\\t\\t<template #option=\\\"option\\\">\\n\\t\\t\\t\\t<span class=\\\"option__icon\\\" :class=\\\"option.icon\\\" />\\n\\t\\t\\t\\t<span class=\\\"option__title\\\">\\n\\t\\t\\t\\t\\t<NcEllipsisedOption :name=\\\"String(option.label)\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</template>\\n\\t\\t\\t<template #selected-option=\\\"selectedOption\\\">\\n\\t\\t\\t\\t<span class=\\\"option__icon\\\" :class=\\\"selectedOption.icon\\\" />\\n\\t\\t\\t\\t<span class=\\\"option__title\\\">\\n\\t\\t\\t\\t\\t<NcEllipsisedOption :name=\\\"String(selectedOption.label)\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</template>\\n\\t\\t</NcSelect>\\n\\t\\t<input v-if=\\\"!isPredefined\\\"\\n\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t:value=\\\"currentValue.pattern\\\"\\n\\t\\t\\t@input=\\\"updateCustom\\\">\\n\\t</div>\\n</template>\\n\\n<script>\\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\\nimport valueMixin from '../../mixins/valueMixin.js'\\n\\nexport default {\\n\\tname: 'RequestUserAgent',\\n\\tcomponents: {\\n\\t\\tNcEllipsisedOption,\\n\\t\\tNcSelect,\\n\\t},\\n\\tmixins: [\\n\\t\\tvalueMixin,\\n\\t],\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tnewValue: '',\\n\\t\\t\\tpredefinedTypes: [\\n\\t\\t\\t\\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\\n\\t\\t\\t\\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\\n\\t\\t\\t\\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\\n\\t\\t\\t\\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\\n\\t\\t\\t],\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\toptions() {\\n\\t\\t\\treturn [...this.predefinedTypes, this.customValue]\\n\\t\\t},\\n\\t\\tmatchingPredefined() {\\n\\t\\t\\treturn this.predefinedTypes\\n\\t\\t\\t\\t.find((type) => this.newValue === type.id)\\n\\t\\t},\\n\\t\\tisPredefined() {\\n\\t\\t\\treturn !!this.matchingPredefined\\n\\t\\t},\\n\\t\\tcustomValue() {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\ticon: 'icon-settings-dark',\\n\\t\\t\\t\\tlabel: t('workflowengine', 'Custom user agent'),\\n\\t\\t\\t\\tid: '',\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tcurrentValue() {\\n\\t\\t\\tif (this.matchingPredefined) {\\n\\t\\t\\t\\treturn this.matchingPredefined\\n\\t\\t\\t}\\n\\t\\t\\treturn {\\n\\t\\t\\t\\ticon: 'icon-settings-dark',\\n\\t\\t\\t\\tlabel: t('workflowengine', 'Custom user agent'),\\n\\t\\t\\t\\tid: this.newValue,\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tvalidateRegex(string) {\\n\\t\\t\\tconst regexRegex = /^\\\\/(.*)\\\\/([gui]{0,3})$/\\n\\t\\t\\tconst result = regexRegex.exec(string)\\n\\t\\t\\treturn result !== null\\n\\t\\t},\\n\\t\\tsetValue(value) {\\n\\t\\t\\t// TODO: check if value requires a regex and set the check operator according to that\\n\\t\\t\\tif (value !== null) {\\n\\t\\t\\t\\tthis.newValue = value.id\\n\\t\\t\\t\\tthis.$emit('input', this.newValue)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tupdateCustom(event) {\\n\\t\\t\\tthis.newValue = event.target.value\\n\\t\\t\\tthis.$emit('input', this.newValue)\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n\\t.v-select,\\n\\tinput[type='text'] {\\n\\t\\twidth: 100%;\\n\\t}\\n\\tinput[type='text'] {\\n\\t\\tmin-height: 48px;\\n\\t}\\n\\n\\t.option__icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tmin-width: 30px;\\n\\t\\tbackground-position: center;\\n\\t\\tvertical-align: middle;\\n\\t}\\n\\n\\t.option__title {\\n\\t\\tdisplay: inline-flex;\\n\\t\\twidth: calc(100% - 36px);\\n\\t\\tvertical-align: middle;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-select[data-v-16d8123e] {\\n\\twidth: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestUserGroup.vue\"],\"names\":[],\"mappings\":\";AA2GA;CACA,WAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n -\\n - @author Julius Härtl <jus@bitgrid.net>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<div>\\n\\t\\t<NcSelect :value=\\\"currentValue\\\"\\n\\t\\t\\t:loading=\\\"status.isLoading && groups.length === 0\\\"\\n\\t\\t\\t:options=\\\"groups\\\"\\n\\t\\t\\t:clearable=\\\"false\\\"\\n\\t\\t\\tlabel=\\\"displayname\\\"\\n\\t\\t\\t@search-change=\\\"searchAsync\\\"\\n\\t\\t\\t@input=\\\"(value) => $emit('input', value.id)\\\" />\\n\\t</div>\\n</template>\\n\\n<script>\\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\\nimport axios from '@nextcloud/axios'\\nimport { generateOcsUrl } from '@nextcloud/router'\\n\\nconst groups = []\\nconst status = {\\n\\tisLoading: false,\\n}\\n\\nexport default {\\n\\tname: 'RequestUserGroup',\\n\\tcomponents: {\\n\\t\\tNcSelect,\\n\\t},\\n\\tprops: {\\n\\t\\tvalue: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: '',\\n\\t\\t},\\n\\t\\tcheck: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\tdefault: () => { return {} },\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tgroups,\\n\\t\\t\\tstatus,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tcurrentValue() {\\n\\t\\t\\treturn this.groups.find(group => group.id === this.value) || null\\n\\t\\t},\\n\\t},\\n\\tasync mounted() {\\n\\t\\tif (this.groups.length === 0) {\\n\\t\\t\\tawait this.searchAsync('')\\n\\t\\t}\\n\\t\\tif (this.currentValue === null) {\\n\\t\\t\\tawait this.searchAsync(this.value)\\n\\t\\t}\\n\\t},\\n\\tmethods: {\\n\\t\\tsearchAsync(searchQuery) {\\n\\t\\t\\tif (this.status.isLoading) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\tthis.status.isLoading = true\\n\\t\\t\\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\\n\\t\\t\\t\\tresponse.data.ocs.data.groups.forEach((group) => {\\n\\t\\t\\t\\t\\tthis.addGroup({\\n\\t\\t\\t\\t\\t\\tid: group.id,\\n\\t\\t\\t\\t\\t\\tdisplayname: group.displayname,\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\tthis.status.isLoading = false\\n\\t\\t\\t}, (error) => {\\n\\t\\t\\t\\tconsole.error('Error while loading group list', error.response)\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\taddGroup(group) {\\n\\t\\t\\tconst index = this.groups.findIndex((item) => item.id === group.id)\\n\\t\\t\\tif (index === -1) {\\n\\t\\t\\t\\tthis.groups.push(group)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n.v-select {\\n\\twidth: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"00434e4baa0d8e7b79f1\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8318;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8318: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(7970)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","scopeValue","loadState","getApiUrl","url","generateOcsUrl","Vue","Vuex","Store","state","rules","scope","appstoreEnabled","operations","plugins","checks","operators","entities","events","map","entity","event","id","concat","eventName","flat","mutations","addRule","rule","push","valid","updateRule","index","findIndex","item","newRule","Object","assign","removeRule","splice","addPluginCheck","plugin","class","addPluginOperator","color","actions","async","context","data","axios","values","ocs","forEach","commit","createNewRule","isComplex","fixedEntity","find","Date","getTime","name","operator","value","operation","JSON","parse","result","confirmPassword","setValid","_ref","getters","getRules","filter","sort","rule1","rule2","getOperationForRule","getEntityForOperation","getEventsForOperation","getChecksForEntity","check","supportedEntities","indexOf","length","reduce","obj","components","NcMultiselect","props","type","required","computed","$store","allEvents","currentEvent","methods","updateEvent","showWarning","t","existingEntity","newEntities","self","newEntity","$set","$emit","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_c","_self","staticClass","attrs","icon","_v","_s","triggerHint","on","scopedSlots","_u","key","fn","isOpen","_l","displayName","_e","option","NcActionButton","NcActions","NcSelect","CloseIcon","directives","ClickOutside","deleteVisible","currentOption","currentOperator","currentComponent","component","valuePlaceholder","placeholder","watch","validate","mounted","$nextTick","$refs","checkSelector","$el","focus","showDelete","hideDelete","invalid","updateCheck","matchingOperator","rawName","expression","ref","model","callback","$$v","tag","$event","domProps","target","composing","proxy","NcButton","colored","Boolean","default","style","backgroundColor","iconClass","backgroundImage","description","_t","ArrowRight","Check","CheckMark","Close","Event","Operation","Tooltip","editing","error","dirty","originalRule","ruleStatus","some","title","tooltip","placement","show","content","lastCheckComplete","lastCheck","stringify","dispatch","e","console","response","meta","message","cancelRule","$delete","onAddFilter","borderLeftColor","removeCheck","updateOperation","deleteRule","saveRule","MenuDown","MenuUp","Rule","NcSettingsSection","showMoreOperations","appstoreUrl","generateUrl","workflowDocUrl","mapGetters","mapState","hasMoreOperations","keys","getMainOperations","slice","showAppStoreHint","OC","isUserAdmin","nativeOn","regexRegex","regexIPv4","regexIPv6","String","newValue","immediate","handler","updateInternalValue","NcEllipsisedOption","mixins","valueMixin","predefinedTypes","label","iconUrl","imagePath","customValue","isPredefined","currentValue","validateRegex","string","exec","setValue","updateCustom","selectedOption","NcSelectTags","updateValue","beforeMount","parseInt","update","stringOrRegexOperators","FileMimeType","match","validateIPv4","FileSystemTag","matchingPredefined","pattern","zones","moment","timezones","startTime","endTime","timezone","split","output","groups","status","isLoading","group","searchAsync","searchQuery","then","addGroup","displayname","FileChecks","RequestURL","RequestTime","RequestUserAgent","RequestUserGroup","window","OCA","WorkflowEngine","registerCheck","Plugin","store","registerOperator","ShippedChecks","checkPlugin","Settings","$mount","___CSS_LOADER_EXPORT___","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","Function","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"workflowengine-workflowengine.js?v=40c35cdf83fe35ef1ce5","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/workflowengine/src/helpers/api.js","webpack:///nextcloud/apps/workflowengine/src/store.js","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?de47","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?5144","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?5115","webpack://nextcloud/./apps/workflowengine/src/components/Event.vue?3d5a","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?bf90","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?008c","webpack://nextcloud/./apps/workflowengine/src/components/Check.vue?3fb8","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?6918","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?3526","webpack://nextcloud/./apps/workflowengine/src/components/Operation.vue?86d2","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?2d87","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?e711","webpack://nextcloud/./apps/workflowengine/src/components/Rule.vue?6c53","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?979d","webpack://nextcloud/./apps/workflowengine/src/components/Workflow.vue?17b8","webpack:///nextcloud/apps/workflowengine/src/helpers/validators.js","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?f663","webpack:///nextcloud/apps/workflowengine/src/mixins/valueMixin.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?0d3a","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileMimeType.vue?c385","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileSystemTag.vue?acab","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileSystemTag.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileSystemTag.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/FileSystemTag.vue?2d3e","webpack:///nextcloud/apps/workflowengine/src/components/Checks/file.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?f104","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?81d6","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserAgent.vue?80f0","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?1af1","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?7391","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestTime.vue?a55a","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?7662","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?eee5","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestURL.vue?b56e","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?f1ec","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?2c5e","webpack://nextcloud/./apps/workflowengine/src/components/Checks/RequestUserGroup.vue?f6d3","webpack:///nextcloud/apps/workflowengine/src/components/Checks/index.js","webpack:///nextcloud/apps/workflowengine/src/components/Checks/request.js","webpack:///nextcloud/apps/workflowengine/src/workflowengine.js","webpack:///nextcloud/apps/workflowengine/src/components/Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&","webpack:///nextcloud/apps/workflowengine/src/components/Checks/RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst scopeValue = loadState('workflowengine', 'scope') === 0 ? 'global' : 'user'\n\nconst getApiUrl = (url) => {\n\treturn generateOcsUrl('apps/workflowengine/api/v1/workflows/{scopeValue}', { scopeValue }) + url + '?format=json'\n}\n\nexport {\n\tgetApiUrl,\n}\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Daniel Kesselberg <mail@danielkesselberg.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex, { Store } from 'vuex'\nimport axios from '@nextcloud/axios'\nimport { getApiUrl } from './helpers/api.js'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\nimport { loadState } from '@nextcloud/initial-state'\n\nVue.use(Vuex)\n\nconst store = new Store({\n\tstate: {\n\t\trules: [],\n\t\tscope: loadState('workflowengine', 'scope'),\n\t\tappstoreEnabled: loadState('workflowengine', 'appstoreenabled'),\n\t\toperations: loadState('workflowengine', 'operators'),\n\n\t\tplugins: Vue.observable({\n\t\t\tchecks: {},\n\t\t\toperators: {},\n\t\t}),\n\n\t\tentities: loadState('workflowengine', 'entities'),\n\t\tevents: loadState('workflowengine', 'entities')\n\t\t\t.map((entity) => entity.events.map(event => {\n\t\t\t\treturn {\n\t\t\t\t\tid: `${entity.id}::${event.eventName}`,\n\t\t\t\t\tentity,\n\t\t\t\t\t...event,\n\t\t\t\t}\n\t\t\t})).flat(),\n\t\tchecks: loadState('workflowengine', 'checks'),\n\t},\n\tmutations: {\n\t\taddRule(state, rule) {\n\t\t\tstate.rules.push({ ...rule, valid: true })\n\t\t},\n\t\tupdateRule(state, rule) {\n\t\t\tconst index = state.rules.findIndex((item) => rule.id === item.id)\n\t\t\tconst newRule = Object.assign({}, rule)\n\t\t\tVue.set(state.rules, index, newRule)\n\t\t},\n\t\tremoveRule(state, rule) {\n\t\t\tconst index = state.rules.findIndex((item) => rule.id === item.id)\n\t\t\tstate.rules.splice(index, 1)\n\t\t},\n\t\taddPluginCheck(state, plugin) {\n\t\t\tVue.set(state.plugins.checks, plugin.class, plugin)\n\t\t},\n\t\taddPluginOperator(state, plugin) {\n\t\t\tplugin = Object.assign(\n\t\t\t\t{ color: 'var(--color-primary-element)' },\n\t\t\t\tplugin, state.operations[plugin.id] || {})\n\t\t\tif (typeof state.operations[plugin.id] !== 'undefined') {\n\t\t\t\tVue.set(state.operations, plugin.id, plugin)\n\t\t\t}\n\t\t},\n\t},\n\tactions: {\n\t\tasync fetchRules(context) {\n\t\t\tconst { data } = await axios.get(getApiUrl(''))\n\t\t\tObject.values(data.ocs.data).flat().forEach((rule) => {\n\t\t\t\tcontext.commit('addRule', rule)\n\t\t\t})\n\t\t},\n\t\tasync createNewRule(context, rule) {\n\t\t\tawait confirmPassword()\n\t\t\tlet entity = null\n\t\t\tlet events = []\n\t\t\tif (rule.isComplex === false && rule.fixedEntity === '') {\n\t\t\t\tentity = context.state.entities.find((item) => rule.entities && rule.entities[0] === item.id)\n\t\t\t\tentity = entity || Object.values(context.state.entities)[0]\n\t\t\t\tevents = [entity.events[0].eventName]\n\t\t\t}\n\n\t\t\tcontext.commit('addRule', {\n\t\t\t\tid: -(new Date().getTime()),\n\t\t\t\tclass: rule.id,\n\t\t\t\tentity: entity ? entity.id : rule.fixedEntity,\n\t\t\t\tevents,\n\t\t\t\tname: '', // unused in the new ui, there for legacy reasons\n\t\t\t\tchecks: [\n\t\t\t\t\t{ class: null, operator: null, value: '' },\n\t\t\t\t],\n\t\t\t\toperation: rule.operation || '',\n\t\t\t})\n\t\t},\n\t\tupdateRule(context, rule) {\n\t\t\tcontext.commit('updateRule', {\n\t\t\t\t...rule,\n\t\t\t\tevents: typeof rule.events === 'string' ? JSON.parse(rule.events) : rule.events,\n\t\t\t})\n\t\t},\n\t\tremoveRule(context, rule) {\n\t\t\tcontext.commit('removeRule', rule)\n\t\t},\n\t\tasync pushUpdateRule(context, rule) {\n\t\t\tawait confirmPassword()\n\t\t\tlet result\n\t\t\tif (rule.id < 0) {\n\t\t\t\tresult = await axios.post(getApiUrl(''), rule)\n\t\t\t} else {\n\t\t\t\tresult = await axios.put(getApiUrl(`/${rule.id}`), rule)\n\t\t\t}\n\t\t\tVue.set(rule, 'id', result.data.ocs.data.id)\n\t\t\tcontext.commit('updateRule', rule)\n\t\t},\n\t\tasync deleteRule(context, rule) {\n\t\t\tawait confirmPassword()\n\t\t\tawait axios.delete(getApiUrl(`/${rule.id}`))\n\t\t\tcontext.commit('removeRule', rule)\n\t\t},\n\t\tsetValid(context, { rule, valid }) {\n\t\t\trule.valid = valid\n\t\t\tcontext.commit('updateRule', rule)\n\t\t},\n\t},\n\tgetters: {\n\t\tgetRules(state) {\n\t\t\treturn state.rules.filter((rule) => typeof state.operations[rule.class] !== 'undefined').sort((rule1, rule2) => {\n\t\t\t\treturn rule1.id - rule2.id || rule2.class - rule1.class\n\t\t\t})\n\t\t},\n\t\tgetOperationForRule(state) {\n\t\t\treturn (rule) => state.operations[rule.class]\n\t\t},\n\t\tgetEntityForOperation(state) {\n\t\t\treturn (operation) => state.entities.find((entity) => operation.fixedEntity === entity.id)\n\t\t},\n\t\tgetEventsForOperation(state) {\n\t\t\treturn (operation) => state.events\n\t\t},\n\n\t\t/**\n\t\t * Return all available checker plugins for a given entity class\n\t\t *\n\t\t * @param {object} state the store state\n\t\t * @return {Function} the available plugins\n\t\t */\n\t\tgetChecksForEntity(state) {\n\t\t\treturn (entity) => {\n\t\t\t\treturn Object.values(state.checks)\n\t\t\t\t\t.filter((check) => check.supportedEntities.indexOf(entity) > -1 || check.supportedEntities.length === 0)\n\t\t\t\t\t.map((check) => state.plugins.checks[check.id])\n\t\t\t\t\t.reduce((obj, item) => {\n\t\t\t\t\t\tobj[item.class] = item\n\t\t\t\t\t\treturn obj\n\t\t\t\t\t}, {})\n\t\t\t}\n\t\t},\n\t},\n})\n\nexport default store\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"workflowengine\"}},[_c('NcSettingsSection',{attrs:{\"title\":_vm.t('workflowengine', 'Available flows'),\"doc-url\":_vm.workflowDocUrl}},[(_vm.scope === 0)?_c('p',{staticClass:\"settings-hint\"},[_c('a',{attrs:{\"href\":\"https://nextcloud.com/developer/\"}},[_vm._v(_vm._s(_vm.t('workflowengine', 'For details on how to write your own flow, check out the development documentation.')))])]):_vm._e(),_vm._v(\" \"),_c('transition-group',{staticClass:\"actions\",attrs:{\"name\":\"slide\",\"tag\":\"div\"}},[_vm._l((_vm.getMainOperations),function(operation){return _c('Operation',{key:operation.id,attrs:{\"operation\":operation},nativeOn:{\"click\":function($event){return _vm.createNewRule(operation)}}})}),_vm._v(\" \"),(_vm.showAppStoreHint)?_c('a',{key:'add',staticClass:\"actions__item colored more\",attrs:{\"href\":_vm.appstoreUrl}},[_c('div',{staticClass:\"icon icon-add\"}),_vm._v(\" \"),_c('div',{staticClass:\"actions__item__description\"},[_c('h3',[_vm._v(_vm._s(_vm.t('workflowengine', 'More flows')))]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.t('workflowengine', 'Browse the App Store')))])])]):_vm._e()],2),_vm._v(\" \"),(_vm.hasMoreOperations)?_c('div',{staticClass:\"actions__more\"},[_c('NcButton',{on:{\"click\":function($event){_vm.showMoreOperations = !_vm.showMoreOperations}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.showMoreOperations)?_c('MenuUp',{attrs:{\"size\":20}}):_c('MenuDown',{attrs:{\"size\":20}})]},proxy:true}],null,false,3801522717)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.showMoreOperations ? _vm.t('workflowengine', 'Show less') : _vm.t('workflowengine', 'Show more'))+\"\\n\\t\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),(_vm.scope === 0)?_c('h2',{staticClass:\"configured-flows\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Configured flows'))+\"\\n\\t\\t\")]):_c('h2',{staticClass:\"configured-flows\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Your flows'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.rules.length > 0)?_c('transition-group',{attrs:{\"name\":\"slide\"}},_vm._l((_vm.rules),function(rule){return _c('Rule',{key:rule.id,attrs:{\"rule\":rule}})}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"event\">\n\t\t<div v-if=\"operation.isComplex && operation.fixedEntity !== ''\" class=\"isComplex\">\n\t\t\t<img class=\"option__icon\" :src=\"entity.icon\" alt=\"\">\n\t\t\t<span class=\"option__title option__title_single\">{{ operation.triggerHint }}</span>\n\t\t</div>\n\t\t<NcMultiselect v-else\n\t\t\t:value=\"currentEvent\"\n\t\t\t:options=\"allEvents\"\n\t\t\ttrack-by=\"id\"\n\t\t\t:multiple=\"true\"\n\t\t\t:auto-limit=\"false\"\n\t\t\t:disabled=\"allEvents.length <= 1\"\n\t\t\t@input=\"updateEvent\">\n\t\t\t<template slot=\"selection\" slot-scope=\"{ values, isOpen }\">\n\t\t\t\t<div v-if=\"values.length && !isOpen\" class=\"eventlist\">\n\t\t\t\t\t<img class=\"option__icon\" :src=\"values[0].entity.icon\" alt=\"\">\n\t\t\t\t\t<span v-for=\"(value, index) in values\" :key=\"value.id\" class=\"text option__title option__title_single\">{{ value.displayName }} <span v-if=\"index+1 < values.length\">, </span></span>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template slot=\"option\" slot-scope=\"props\">\n\t\t\t\t<img class=\"option__icon\" :src=\"props.option.entity.icon\" alt=\"\">\n\t\t\t\t<span class=\"option__title\">{{ props.option.displayName }}</span>\n\t\t\t</template>\n\t\t</NcMultiselect>\n\t</div>\n</template>\n\n<script>\nimport NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'\nimport { showWarning } from '@nextcloud/dialogs'\n\nexport default {\n\tname: 'Event',\n\tcomponents: {\n\t\tNcMultiselect,\n\t},\n\tprops: {\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tentity() {\n\t\t\treturn this.$store.getters.getEntityForOperation(this.operation)\n\t\t},\n\t\toperation() {\n\t\t\treturn this.$store.getters.getOperationForRule(this.rule)\n\t\t},\n\t\tallEvents() {\n\t\t\treturn this.$store.getters.getEventsForOperation(this.operation)\n\t\t},\n\t\tcurrentEvent() {\n\t\t\treturn this.allEvents.filter(event => event.entity.id === this.rule.entity && this.rule.events.indexOf(event.eventName) !== -1)\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateEvent(events) {\n\t\t\tif (events.length === 0) {\n\t\t\t\tshowWarning(t('workflowengine', 'At least one event must be selected'))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst existingEntity = this.rule.entity\n\t\t\tconst newEntities = events.map(event => event.entity.id).filter((value, index, self) => self.indexOf(value) === index)\n\t\t\tlet newEntity = null\n\t\t\tif (newEntities.length > 1) {\n\t\t\t\tnewEntity = newEntities.filter(entity => entity !== existingEntity)[0]\n\t\t\t} else {\n\t\t\t\tnewEntity = newEntities[0]\n\t\t\t}\n\n\t\t\tthis.$set(this.rule, 'entity', newEntity)\n\t\t\tthis.$set(this.rule, 'events', events.filter(event => event.entity.id === newEntity).map(event => event.eventName))\n\t\t\tthis.$emit('update', this.rule)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.event {\n\t\tmargin-bottom: 5px;\n\t}\n\t.isComplex {\n\t\timg {\n\t\t\tvertical-align: text-top;\n\t\t}\n\t\tspan {\n\t\t\tpadding-top: 2px;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\t.multiselect {\n\t\twidth: 100%;\n\t\tmax-width: 550px;\n\t\tmargin-top: 4px;\n\t}\n\t.multiselect::v-deep .multiselect__single {\n\t\tdisplay: flex;\n\t}\n\t.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.multiselect::v-deep .multiselect__tags {\n\t\tbackground-color: var(--color-main-background) !important;\n\t\theight: auto;\n\t\tmin-height: 34px;\n\t}\n\n\t.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\n\t\tbackground-image: var(--icon-triangle-s-dark);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: right center;\n\t}\n\n\tinput {\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.option__title {\n\t\tmargin-left: 5px;\n\t\tcolor: var(--color-main-text);\n\t}\n\t.option__title_single {\n\t\tfont-weight: 900;\n\t}\n\n\t.option__icon {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t.eventlist img,\n\t.eventlist .text {\n\t\tvertical-align: middle;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Event.vue?vue&type=template&id=1825d70e&scoped=true&\"\nimport script from \"./Event.vue?vue&type=script&lang=js&\"\nexport * from \"./Event.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Event.vue?vue&type=style&index=0&id=1825d70e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1825d70e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"event\"},[(_vm.operation.isComplex && _vm.operation.fixedEntity !== '')?_c('div',{staticClass:\"isComplex\"},[_c('img',{staticClass:\"option__icon\",attrs:{\"src\":_vm.entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"option__title option__title_single\"},[_vm._v(_vm._s(_vm.operation.triggerHint))])]):_c('NcMultiselect',{attrs:{\"value\":_vm.currentEvent,\"options\":_vm.allEvents,\"track-by\":\"id\",\"multiple\":true,\"auto-limit\":false,\"disabled\":_vm.allEvents.length <= 1},on:{\"input\":_vm.updateEvent},scopedSlots:_vm._u([{key:\"selection\",fn:function({ values, isOpen }){return [(values.length && !isOpen)?_c('div',{staticClass:\"eventlist\"},[_c('img',{staticClass:\"option__icon\",attrs:{\"src\":values[0].entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_vm._l((values),function(value,index){return _c('span',{key:value.id,staticClass:\"text option__title option__title_single\"},[_vm._v(_vm._s(value.displayName)+\" \"),(index+1 < values.length)?_c('span',[_vm._v(\", \")]):_vm._e()])})],2):_vm._e()]}},{key:\"option\",fn:function(props){return [_c('img',{staticClass:\"option__icon\",attrs:{\"src\":props.option.entity.icon,\"alt\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.displayName))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideDelete),expression:\"hideDelete\"}],staticClass:\"check\",on:{\"click\":_vm.showDelete}},[_c('NcSelect',{ref:\"checkSelector\",attrs:{\"options\":_vm.options,\"label\":\"name\",\"clearable\":false,\"placeholder\":_vm.t('workflowengine', 'Select a filter')},on:{\"input\":_vm.updateCheck},model:{value:(_vm.currentOption),callback:function ($$v) {_vm.currentOption=$$v},expression:\"currentOption\"}}),_vm._v(\" \"),_c('NcSelect',{staticClass:\"comparator\",attrs:{\"disabled\":!_vm.currentOption,\"options\":_vm.operators,\"label\":\"name\",\"clearable\":false,\"placeholder\":_vm.t('workflowengine', 'Select a comparator')},on:{\"input\":_vm.updateCheck},model:{value:(_vm.currentOperator),callback:function ($$v) {_vm.currentOperator=$$v},expression:\"currentOperator\"}}),_vm._v(\" \"),(_vm.currentOperator && _vm.currentComponent)?_c(_vm.currentOption.component,{tag:\"component\",staticClass:\"option\",attrs:{\"disabled\":!_vm.currentOption,\"check\":_vm.check},on:{\"input\":_vm.updateCheck,\"valid\":function($event){(_vm.valid=true) && _vm.validate()},\"invalid\":function($event){!(_vm.valid=false) && _vm.validate()}},model:{value:(_vm.check.value),callback:function ($$v) {_vm.$set(_vm.check, \"value\", $$v)},expression:\"check.value\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.check.value),expression:\"check.value\"}],staticClass:\"option\",class:{ invalid: !_vm.valid },attrs:{\"type\":\"text\",\"disabled\":!_vm.currentOption,\"placeholder\":_vm.valuePlaceholder},domProps:{\"value\":(_vm.check.value)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.check, \"value\", $event.target.value)},_vm.updateCheck]}}),_vm._v(\" \"),(_vm.deleteVisible || !_vm.currentOption)?_c('NcActions',[_c('NcActionButton',{attrs:{\"title\":_vm.t('workflowengine', 'Remove filter')},on:{\"click\":function($event){return _vm.$emit('remove')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div v-click-outside=\"hideDelete\" class=\"check\" @click=\"showDelete\">\n\t\t<NcSelect ref=\"checkSelector\"\n\t\t\tv-model=\"currentOption\"\n\t\t\t:options=\"options\"\n\t\t\tlabel=\"name\"\n\t\t\t:clearable=\"false\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a filter')\"\n\t\t\t@input=\"updateCheck\" />\n\t\t<NcSelect v-model=\"currentOperator\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:options=\"operators\"\n\t\t\tclass=\"comparator\"\n\t\t\tlabel=\"name\"\n\t\t\t:clearable=\"false\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a comparator')\"\n\t\t\t@input=\"updateCheck\" />\n\t\t<component :is=\"currentOption.component\"\n\t\t\tv-if=\"currentOperator && currentComponent\"\n\t\t\tv-model=\"check.value\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:check=\"check\"\n\t\t\tclass=\"option\"\n\t\t\t@input=\"updateCheck\"\n\t\t\t@valid=\"(valid=true) && validate()\"\n\t\t\t@invalid=\"!(valid=false) && validate()\" />\n\t\t<input v-else\n\t\t\tv-model=\"check.value\"\n\t\t\ttype=\"text\"\n\t\t\t:class=\"{ invalid: !valid }\"\n\t\t\t:disabled=\"!currentOption\"\n\t\t\t:placeholder=\"valuePlaceholder\"\n\t\t\tclass=\"option\"\n\t\t\t@input=\"updateCheck\">\n\t\t<NcActions v-if=\"deleteVisible || !currentOption\">\n\t\t\t<NcActionButton :title=\"t('workflowengine', 'Remove filter')\" @click=\"$emit('remove')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nimport ClickOutside from 'vue-click-outside'\n\nexport default {\n\tname: 'Check',\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcSelect,\n\n\t\t// Icons\n\t\tCloseIcon,\n\t},\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tprops: {\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdeleteVisible: false,\n\t\t\tcurrentOption: null,\n\t\t\tcurrentOperator: null,\n\t\t\toptions: [],\n\t\t\tvalid: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tchecks() {\n\t\t\treturn this.$store.getters.getChecksForEntity(this.rule.entity)\n\t\t},\n\t\toperators() {\n\t\t\tif (!this.currentOption) { return [] }\n\t\t\tconst operators = this.checks[this.currentOption.class].operators\n\t\t\tif (typeof operators === 'function') {\n\t\t\t\treturn operators(this.check)\n\t\t\t}\n\t\t\treturn operators\n\t\t},\n\t\tcurrentComponent() {\n\t\t\tif (!this.currentOption) { return [] }\n\t\t\treturn this.checks[this.currentOption.class].component\n\t\t},\n\t\tvaluePlaceholder() {\n\t\t\tif (this.currentOption && this.currentOption.placeholder) {\n\t\t\t\treturn this.currentOption.placeholder(this.check)\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t},\n\twatch: {\n\t\t'check.operator'() {\n\t\t\tthis.validate()\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.options = Object.values(this.checks)\n\t\tthis.currentOption = this.checks[this.check.class]\n\t\tthis.currentOperator = this.operators.find((operator) => operator.operator === this.check.operator)\n\n\t\tif (this.check.class === null) {\n\t\t\tthis.$nextTick(() => this.$refs.checkSelector.$el.focus())\n\t\t}\n\t\tthis.validate()\n\t},\n\tmethods: {\n\t\tshowDelete() {\n\t\t\tthis.deleteVisible = true\n\t\t},\n\t\thideDelete() {\n\t\t\tthis.deleteVisible = false\n\t\t},\n\t\tvalidate() {\n\t\t\tthis.valid = true\n\t\t\tif (this.currentOption && this.currentOption.validate) {\n\t\t\t\tthis.valid = !!this.currentOption.validate(this.check)\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.invalid = !this.valid\n\t\t\tthis.$emit('validate', this.valid)\n\t\t},\n\t\tupdateCheck() {\n\t\t\tconst matchingOperator = this.operators.findIndex((operator) => this.check.operator === operator.operator)\n\t\t\tif (this.check.class !== this.currentOption.class || matchingOperator === -1) {\n\t\t\t\tthis.currentOperator = this.operators[0]\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.class = this.currentOption.class\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.check.operator = this.currentOperator.operator\n\n\t\t\tthis.validate()\n\n\t\t\tthis.$emit('update', this.check)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.check {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\talign-items: flex-start; // to not stretch components vertically\n\t\twidth: 100%;\n\t\tpadding-right: 20px;\n\n\t\t& > *:not(.close) {\n\t\t\twidth: 180px;\n\t\t}\n\t\t& > .comparator {\n\t\t\tmin-width: 200px;\n\t\t\twidth: 200px;\n\t\t}\n\t\t& > .option {\n\t\t\tmin-width: 260px;\n\t\t\twidth: 260px;\n\t\t\tmin-height: 48px;\n\n\t\t\t& > input[type=text] {\n\t\t\t\tmin-height: 48px;\n\t\t\t}\n\t\t}\n\t\t& > .v-select,\n\t\t& > .button-vue,\n\t\t& > input[type=text] {\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\tinput[type=text] {\n\t\tmargin: 0;\n\t}\n\t.invalid {\n\t\tborder-color: var(--color-error) !important;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Check.vue?vue&type=template&id=07a2739b&scoped=true&\"\nimport script from \"./Check.vue?vue&type=script&lang=js&\"\nexport * from \"./Check.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Check.vue?vue&type=style&index=0&id=07a2739b&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07a2739b\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=script&lang=js&\"","<template>\n\t<div class=\"actions__item\" :class=\"{'colored': colored}\" :style=\"{ backgroundColor: colored ? operation.color : 'transparent' }\">\n\t\t<div class=\"icon\" :class=\"operation.iconClass\" :style=\"{ backgroundImage: operation.iconClass ? '' : `url(${operation.icon})` }\" />\n\t\t<div class=\"actions__item__description\">\n\t\t\t<h3>{{ operation.name }}</h3>\n\t\t\t<small>{{ operation.description }}</small>\n\t\t\t<NcButton v-if=\"colored\">\n\t\t\t\t{{ t('workflowengine', 'Add new flow') }}\n\t\t\t</NcButton>\n\t\t</div>\n\t\t<div class=\"actions__item_options\">\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'Operation',\n\tcomponents: {\n\t\tNcButton,\n\t},\n\tprops: {\n\t\toperation: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tcolored: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t@import \"./../styles/operation\";\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Operation.vue?vue&type=template&id=a0480332&scoped=true&\"\nimport script from \"./Operation.vue?vue&type=script&lang=js&\"\nexport * from \"./Operation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Operation.vue?vue&type=style&index=0&id=a0480332&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0480332\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"actions__item\",class:{'colored': _vm.colored},style:({ backgroundColor: _vm.colored ? _vm.operation.color : 'transparent' })},[_c('div',{staticClass:\"icon\",class:_vm.operation.iconClass,style:({ backgroundImage: _vm.operation.iconClass ? '' : `url(${_vm.operation.icon})` })}),_vm._v(\" \"),_c('div',{staticClass:\"actions__item__description\"},[_c('h3',[_vm._v(_vm._s(_vm.operation.name))]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.operation.description))]),_vm._v(\" \"),(_vm.colored)?_c('NcButton',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Add new flow'))+\"\\n\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"actions__item_options\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div v-if=\"operation\" class=\"section rule\" :style=\"{ borderLeftColor: operation.color || '' }\">\n\t\t<div class=\"trigger\">\n\t\t\t<p>\n\t\t\t\t<span>{{ t('workflowengine', 'When') }}</span>\n\t\t\t\t<Event :rule=\"rule\" @update=\"updateRule\" />\n\t\t\t</p>\n\t\t\t<p v-for=\"(check, index) in rule.checks\" :key=\"index\">\n\t\t\t\t<span>{{ t('workflowengine', 'and') }}</span>\n\t\t\t\t<Check :check=\"check\"\n\t\t\t\t\t:rule=\"rule\"\n\t\t\t\t\t@update=\"updateRule\"\n\t\t\t\t\t@validate=\"validate\"\n\t\t\t\t\t@remove=\"removeCheck(check)\" />\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<span />\n\t\t\t\t<input v-if=\"lastCheckComplete\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"check--add\"\n\t\t\t\t\t:value=\"t('workflowengine', 'Add a new filter')\"\n\t\t\t\t\t@click=\"onAddFilter\">\n\t\t\t</p>\n\t\t</div>\n\t\t<div class=\"flow-icon icon-confirm\" />\n\t\t<div class=\"action\">\n\t\t\t<Operation :operation=\"operation\" :colored=\"false\">\n\t\t\t\t<component :is=\"operation.options\"\n\t\t\t\t\tv-if=\"operation.options\"\n\t\t\t\t\tv-model=\"rule.operation\"\n\t\t\t\t\t@input=\"updateOperation\" />\n\t\t\t</Operation>\n\t\t\t<div class=\"buttons\">\n\t\t\t\t<NcButton v-if=\"rule.id < -1 || dirty\" @click=\"cancelRule\">\n\t\t\t\t\t{{ t('workflowengine', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton v-else-if=\"!dirty\" @click=\"deleteRule\">\n\t\t\t\t\t{{ t('workflowengine', 'Delete') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton :type=\"ruleStatus.type\"\n\t\t\t\t\t@click=\"saveRule\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<component :is=\"ruleStatus.icon\" :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ ruleStatus.title }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<p v-if=\"error\" class=\"error-message\">\n\t\t\t\t{{ error }}\n\t\t\t</p>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport CheckMark from 'vue-material-design-icons/Check.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\n\nimport Event from './Event.vue'\nimport Check from './Check.vue'\nimport Operation from './Operation.vue'\n\nexport default {\n\tname: 'Rule',\n\tcomponents: {\n\t\tArrowRight,\n\t\tCheck,\n\t\tCheckMark,\n\t\tClose,\n\t\tEvent,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcButton,\n\t\tOperation,\n\t},\n\tdirectives: {\n\t\tTooltip,\n\t},\n\tprops: {\n\t\trule: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tediting: false,\n\t\t\tchecks: [],\n\t\t\terror: null,\n\t\t\tdirty: this.rule.id < 0,\n\t\t\toriginalRule: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\toperation() {\n\t\t\treturn this.$store.getters.getOperationForRule(this.rule)\n\t\t},\n\t\truleStatus() {\n\t\t\tif (this.error || !this.rule.valid || this.rule.checks.length === 0 || this.rule.checks.some((check) => check.invalid === true)) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: t('workflowengine', 'The configuration is invalid'),\n\t\t\t\t\ticon: 'Close',\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttooltip: { placement: 'bottom', show: true, content: this.error },\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!this.dirty) {\n\t\t\t\treturn { title: t('workflowengine', 'Active'), icon: 'CheckMark', type: 'success' }\n\t\t\t}\n\t\t\treturn { title: t('workflowengine', 'Save'), icon: 'ArrowRight', type: 'primary' }\n\n\t\t},\n\t\tlastCheckComplete() {\n\t\t\tconst lastCheck = this.rule.checks[this.rule.checks.length - 1]\n\t\t\treturn typeof lastCheck === 'undefined' || lastCheck.class !== null\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t},\n\tmethods: {\n\t\tasync updateOperation(operation) {\n\t\t\tthis.$set(this.rule, 'operation', operation)\n\t\t\tawait this.updateRule()\n\t\t},\n\t\tvalidate(state) {\n\t\t\tthis.error = null\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\t\tupdateRule() {\n\t\t\tif (!this.dirty) {\n\t\t\t\tthis.dirty = true\n\t\t\t}\n\n\t\t\tthis.error = null\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\t\tasync saveRule() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('pushUpdateRule', this.rule)\n\t\t\t\tthis.dirty = false\n\t\t\t\tthis.error = null\n\t\t\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Failed to save operation')\n\t\t\t\tthis.error = e.response.data.ocs.meta.message\n\t\t\t}\n\t\t},\n\t\tasync deleteRule() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('deleteRule', this.rule)\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Failed to delete operation')\n\t\t\t\tthis.error = e.response.data.ocs.meta.message\n\t\t\t}\n\t\t},\n\t\tcancelRule() {\n\t\t\tif (this.rule.id < 0) {\n\t\t\t\tthis.$store.dispatch('removeRule', this.rule)\n\t\t\t} else {\n\t\t\t\tthis.$store.dispatch('updateRule', this.originalRule)\n\t\t\t\tthis.originalRule = JSON.parse(JSON.stringify(this.rule))\n\t\t\t\tthis.dirty = false\n\t\t\t}\n\t\t},\n\n\t\tasync removeCheck(check) {\n\t\t\tconst index = this.rule.checks.findIndex(item => item === check)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.$delete(this.rule.checks, index)\n\t\t\t}\n\t\t\tthis.$store.dispatch('updateRule', this.rule)\n\t\t},\n\n\t\tonAddFilter() {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.rule.checks.push({ class: null, operator: null, value: '' })\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\n\t.buttons {\n\t\tdisplay: flex;\n\t\tjustify-content: end;\n\n\t\tbutton {\n\t\t\tmargin-left: 5px;\n\t\t}\n\t\tbutton:last-child{\n\t\t\tmargin-right: 10px;\n\t\t}\n\t}\n\n\t.error-message {\n\t\tfloat: right;\n\t\tmargin-right: 10px;\n\t}\n\n\t.flow-icon {\n\t\twidth: 44px;\n\t}\n\n\t.rule {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tborder-left: 5px solid var(--color-primary-element);\n\n\t\t.trigger,\n\t\t.action {\n\t\t\tflex-grow: 1;\n\t\t\tmin-height: 100px;\n\t\t\tmax-width: 920px;\n\t\t}\n\t\t.action {\n\t\t\tmax-width: 400px;\n\t\t\tposition: relative;\n\t\t}\n\t\t.icon-confirm {\n\t\t\tbackground-position: right 27px;\n\t\t\tpadding-right: 20px;\n\t\t\tmargin-right: 20px;\n\t\t}\n\t}\n\t.trigger p, .action p {\n\t\tmin-height: 34px;\n\t\tdisplay: flex;\n\n\t\t& > span {\n\t\t\tmin-width: 50px;\n\t\t\ttext-align: right;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tpadding-right: 10px;\n\t\t\tpadding-top: 6px;\n\t\t}\n\t\t.multiselect {\n\t\t\tflex-grow: 1;\n\t\t\tmax-width: 300px;\n\t\t}\n\t}\n\t.trigger p:first-child span {\n\t\t\tpadding-top: 3px;\n\t}\n\t.trigger p:last-child {\n\t\t\tpadding-top: 8px;\n\t}\n\n\t.check--add {\n\t\tbackground-position: 7px center;\n\t\tbackground-color: transparent;\n\t\tpadding-left: 6px;\n\t\tmargin: 0;\n\t\twidth: 180px;\n\t\tborder-radius: var(--border-radius);\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t\ttext-align: left;\n\t\tfont-size: 1em;\n\t}\n\n\t@media (max-width:1400px) {\n\t\t.rule {\n\t\t\t&, .trigger, .action {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t\t.flow-icon {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Rule.vue?vue&type=template&id=3def8966&scoped=true&\"\nimport script from \"./Rule.vue?vue&type=script&lang=js&\"\nexport * from \"./Rule.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Rule.vue?vue&type=style&index=0&id=3def8966&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3def8966\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.operation)?_c('div',{staticClass:\"section rule\",style:({ borderLeftColor: _vm.operation.color || '' })},[_c('div',{staticClass:\"trigger\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.t('workflowengine', 'When')))]),_vm._v(\" \"),_c('Event',{attrs:{\"rule\":_vm.rule},on:{\"update\":_vm.updateRule}})],1),_vm._v(\" \"),_vm._l((_vm.rule.checks),function(check,index){return _c('p',{key:index},[_c('span',[_vm._v(_vm._s(_vm.t('workflowengine', 'and')))]),_vm._v(\" \"),_c('Check',{attrs:{\"check\":check,\"rule\":_vm.rule},on:{\"update\":_vm.updateRule,\"validate\":_vm.validate,\"remove\":function($event){return _vm.removeCheck(check)}}})],1)}),_vm._v(\" \"),_c('p',[_c('span'),_vm._v(\" \"),(_vm.lastCheckComplete)?_c('input',{staticClass:\"check--add\",attrs:{\"type\":\"button\",\"value\":_vm.t('workflowengine', 'Add a new filter')},on:{\"click\":_vm.onAddFilter}}):_vm._e()])],2),_vm._v(\" \"),_c('div',{staticClass:\"flow-icon icon-confirm\"}),_vm._v(\" \"),_c('div',{staticClass:\"action\"},[_c('Operation',{attrs:{\"operation\":_vm.operation,\"colored\":false}},[(_vm.operation.options)?_c(_vm.operation.options,{tag:\"component\",on:{\"input\":_vm.updateOperation},model:{value:(_vm.rule.operation),callback:function ($$v) {_vm.$set(_vm.rule, \"operation\", $$v)},expression:\"rule.operation\"}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"buttons\"},[(_vm.rule.id < -1 || _vm.dirty)?_c('NcButton',{on:{\"click\":_vm.cancelRule}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Cancel'))+\"\\n\\t\\t\\t\")]):(!_vm.dirty)?_c('NcButton',{on:{\"click\":_vm.deleteRule}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Delete'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":_vm.ruleStatus.type},on:{\"click\":_vm.saveRule},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_vm.ruleStatus.icon,{tag:\"component\",attrs:{\"size\":20}})]},proxy:true}],null,false,2383918876)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.ruleStatus.title)+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.error)?_c('p',{staticClass:\"error-message\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.error)+\"\\n\\t\\t\")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div id=\"workflowengine\">\n\t\t<NcSettingsSection :title=\"t('workflowengine', 'Available flows')\"\n\t\t\t:doc-url=\"workflowDocUrl\">\n\t\t\t<p v-if=\"scope === 0\" class=\"settings-hint\">\n\t\t\t\t<a href=\"https://nextcloud.com/developer/\">{{ t('workflowengine', 'For details on how to write your own flow, check out the development documentation.') }}</a>\n\t\t\t</p>\n\n\t\t\t<transition-group name=\"slide\" tag=\"div\" class=\"actions\">\n\t\t\t\t<Operation v-for=\"operation in getMainOperations\"\n\t\t\t\t\t:key=\"operation.id\"\n\t\t\t\t\t:operation=\"operation\"\n\t\t\t\t\t@click.native=\"createNewRule(operation)\" />\n\n\t\t\t\t<a v-if=\"showAppStoreHint\"\n\t\t\t\t\t:key=\"'add'\"\n\t\t\t\t\t:href=\"appstoreUrl\"\n\t\t\t\t\tclass=\"actions__item colored more\">\n\t\t\t\t\t<div class=\"icon icon-add\" />\n\t\t\t\t\t<div class=\"actions__item__description\">\n\t\t\t\t\t\t<h3>{{ t('workflowengine', 'More flows') }}</h3>\n\t\t\t\t\t\t<small>{{ t('workflowengine', 'Browse the App Store') }}</small>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t</transition-group>\n\n\t\t\t<div v-if=\"hasMoreOperations\" class=\"actions__more\">\n\t\t\t\t<NcButton @click=\"showMoreOperations = !showMoreOperations\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuUp v-if=\"showMoreOperations\" :size=\"20\" />\n\t\t\t\t\t\t<MenuDown v-else :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ showMoreOperations ? t('workflowengine', 'Show less') : t('workflowengine', 'Show more') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\n\t\t\t<h2 v-if=\"scope === 0\" class=\"configured-flows\">\n\t\t\t\t{{ t('workflowengine', 'Configured flows') }}\n\t\t\t</h2>\n\t\t\t<h2 v-else class=\"configured-flows\">\n\t\t\t\t{{ t('workflowengine', 'Your flows') }}\n\t\t\t</h2>\n\t\t</NcSettingsSection>\n\n\t\t<transition-group v-if=\"rules.length > 0\" name=\"slide\">\n\t\t\t<Rule v-for=\"rule in rules\" :key=\"rule.id\" :rule=\"rule\" />\n\t\t</transition-group>\n\t</div>\n</template>\n\n<script>\nimport Rule from './Rule.vue'\nimport Operation from './Operation.vue'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport { mapGetters, mapState } from 'vuex'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport MenuUp from 'vue-material-design-icons/MenuUp.vue'\nimport MenuDown from 'vue-material-design-icons/MenuDown.vue'\n\nconst ACTION_LIMIT = 3\n\nexport default {\n\tname: 'Workflow',\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuDown,\n\t\tMenuUp,\n\t\tOperation,\n\t\tRule,\n\t\tNcSettingsSection,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowMoreOperations: false,\n\t\t\tappstoreUrl: generateUrl('settings/apps/workflow'),\n\t\t\tworkflowDocUrl: loadState('workflowengine', 'doc-url'),\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapGetters({\n\t\t\trules: 'getRules',\n\t\t}),\n\t\t...mapState({\n\t\t\tappstoreEnabled: 'appstoreEnabled',\n\t\t\tscope: 'scope',\n\t\t\toperations: 'operations',\n\t\t}),\n\t\thasMoreOperations() {\n\t\t\treturn Object.keys(this.operations).length > ACTION_LIMIT\n\t\t},\n\t\tgetMainOperations() {\n\t\t\tif (this.showMoreOperations) {\n\t\t\t\treturn Object.values(this.operations)\n\t\t\t}\n\t\t\treturn Object.values(this.operations).slice(0, ACTION_LIMIT)\n\t\t},\n\t\tshowAppStoreHint() {\n\t\t\treturn this.scope === 0 && this.appstoreEnabled && OC.isUserAdmin()\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$store.dispatch('fetchRules')\n\t},\n\tmethods: {\n\t\tcreateNewRule(operation) {\n\t\t\tthis.$store.dispatch('createNewRule', operation)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t#workflowengine {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\t.section {\n\t\tmax-width: 100vw;\n\n\t\th2.configured-flows {\n\t\t\tmargin-top: 50px;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\t.actions {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmax-width: 1200px;\n\t\t.actions__item {\n\t\t\tmax-width: 280px;\n\t\t\tflex-basis: 250px;\n\t\t}\n\t}\n\t.actions__more {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.slide-enter-active {\n\t\t-moz-transition-duration: 0.3s;\n\t\t-webkit-transition-duration: 0.3s;\n\t\t-o-transition-duration: 0.3s;\n\t\ttransition-duration: 0.3s;\n\t\t-moz-transition-timing-function: ease-in;\n\t\t-webkit-transition-timing-function: ease-in;\n\t\t-o-transition-timing-function: ease-in;\n\t\ttransition-timing-function: ease-in;\n\t}\n\n\t.slide-leave-active {\n\t\t-moz-transition-duration: 0.3s;\n\t\t-webkit-transition-duration: 0.3s;\n\t\t-o-transition-duration: 0.3s;\n\t\ttransition-duration: 0.3s;\n\t\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n\t}\n\n\t.slide-enter-to, .slide-leave {\n\t\tmax-height: 500px;\n\t\toverflow: hidden;\n\t}\n\n\t.slide-enter, .slide-leave-to {\n\t\toverflow: hidden;\n\t\tmax-height: 0;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t}\n\n\t@import \"./../styles/operation\";\n\n\t.actions__item.more {\n\t\tbackground-color: var(--color-background-dark);\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Workflow.vue?vue&type=template&id=4e25e34d&scoped=true&\"\nimport script from \"./Workflow.vue?vue&type=script&lang=js&\"\nexport * from \"./Workflow.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Workflow.vue?vue&type=style&index=0&id=4e25e34d&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e25e34d\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\nconst regexIPv4 = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|[1-2][0-9]|[1-9])$/\nconst regexIPv6 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/\n\nconst validateRegex = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexRegex.exec(string) !== null\n}\n\nconst validateIPv4 = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexIPv4.exec(string) !== null\n}\n\nconst validateIPv6 = function(string) {\n\tif (!string) {\n\t\treturn false\n\t}\n\treturn regexIPv6.exec(string) !== null\n}\n\nconst stringValidator = (check) => {\n\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\treturn validateRegex(check.value)\n\t}\n\treturn true\n}\n\nexport { validateRegex, stringValidator, validateIPv4, validateIPv6 }\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a file type'),\"label\":\"label\",\"options\":_vm.options,\"clearable\":false},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [(option.icon)?_c('span',{staticClass:\"option__icon\",class:option.icon}):_c('span',{staticClass:\"option__icon-img\"},[_c('img',{attrs:{\"src\":option.iconUrl,\"alt\":\"\"}})]),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [(selectedOption.icon)?_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}):_c('span',{staticClass:\"option__icon-img\"},[_c('img',{attrs:{\"src\":selectedOption.iconUrl,\"alt\":\"\"}})]),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\",\"placeholder\":_vm.t('workflowengine', 'e.g. httpd/unix-directory')},domProps:{\"value\":_vm.currentValue.id},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst valueMixin = {\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t}\n\t},\n\twatch: {\n\t\tvalue: {\n\t\t\timmediate: true,\n\t\t\thandler(value) {\n\t\t\t\tthis.updateInternalValue(value)\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateInternalValue(value) {\n\t\t\tthis.newValue = value\n\t\t},\n\t},\n}\n\nexport default valueMixin\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a file type')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span v-if=\"option.icon\" class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span v-else class=\"option__icon-img\">\n\t\t\t\t\t<img :src=\"option.iconUrl\" alt=\"\">\n\t\t\t\t</span>\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span v-if=\"selectedOption.icon\" class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span v-else class=\"option__icon-img\">\n\t\t\t\t\t<img :src=\"selectedOption.iconUrl\" alt=\"\">\n\t\t\t\t</span>\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.id\"\n\t\t\t:placeholder=\"t('workflowengine', 'e.g. httpd/unix-directory')\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from './../../mixins/valueMixin.js'\nimport { imagePath } from '@nextcloud/router'\n\nexport default {\n\tname: 'FileMimeType',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tpredefinedTypes: [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-folder',\n\t\t\t\t\tlabel: t('workflowengine', 'Folder'),\n\t\t\t\t\tid: 'httpd/unix-directory',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-picture',\n\t\t\t\t\tlabel: t('workflowengine', 'Images'),\n\t\t\t\t\tid: '/image\\\\/.*/',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticonUrl: imagePath('core', 'filetypes/x-office-document'),\n\t\t\t\t\tlabel: t('workflowengine', 'Office documents'),\n\t\t\t\t\tid: '/(vnd\\\\.(ms-|openxmlformats-|oasis\\\\.opendocument).*)$/',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticonUrl: imagePath('core', 'filetypes/application-pdf'),\n\t\t\t\t\tlabel: t('workflowengine', 'PDF documents'),\n\t\t\t\t\tid: 'application/pdf',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tisPredefined() {\n\t\t\tconst matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)\n\t\t\tif (matchingPredefined) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom MIME type'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tconst matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)\n\t\t\tif (matchingPredefined) {\n\t\t\t\treturn matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom mimetype'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped lang=\"scss\">\n.v-select,\ninput[type='text'] {\n\twidth: 100%;\n}\n\ninput[type=text] {\n\tmin-height: 48px;\n}\n\n.option__icon,\n.option__icon-img {\n\tdisplay: inline-block;\n\tmin-width: 30px;\n\tbackground-position: center;\n\tvertical-align: middle;\n}\n\n.option__icon-img {\n\ttext-align: center;\n}\n\n.option__title {\n\tdisplay: inline-flex;\n\twidth: calc(100% - 36px);\n\tvertical-align: middle;\n}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileMimeType.vue?vue&type=template&id=1a11f354&scoped=true&\"\nimport script from \"./FileMimeType.vue?vue&type=script&lang=js&\"\nexport * from \"./FileMimeType.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileMimeType.vue?vue&type=style&index=0&id=1a11f354&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a11f354\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcSelectTags',{attrs:{\"multiple\":false},on:{\"input\":_vm.update},model:{value:(_vm.newValue),callback:function ($$v) {_vm.newValue=$$v},expression:\"newValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<NcSelectTags v-model=\"newValue\"\n\t\t:multiple=\"false\"\n\t\t@input=\"update\" />\n</template>\n\n<script>\nimport NcSelectTags from '@nextcloud/vue/dist/Components/NcSelectTags.js'\n\nexport default {\n\tname: 'FileSystemTag',\n\tcomponents: {\n\t\tNcSelectTags,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: [],\n\t\t}\n\t},\n\twatch: {\n\t\tvalue() {\n\t\t\tthis.updateValue()\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.updateValue()\n\t},\n\tmethods: {\n\t\tupdateValue() {\n\t\t\tif (this.value !== '') {\n\t\t\t\tthis.newValue = parseInt(this.value)\n\t\t\t} else {\n\t\t\t\tthis.newValue = null\n\t\t\t}\n\t\t},\n\t\tupdate() {\n\t\t\tthis.$emit('input', this.newValue || '')\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSystemTag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileSystemTag.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileSystemTag.vue?vue&type=template&id=3bb09106&scoped=true&\"\nimport script from \"./FileSystemTag.vue?vue&type=script&lang=js&\"\nexport * from \"./FileSystemTag.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bb09106\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Arthur Schiwon <blizzz@arthur-schiwon.de>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators.js'\nimport FileMimeType from './FileMimeType.vue'\nimport FileSystemTag from './FileSystemTag.vue'\n\nconst stringOrRegexOperators = () => {\n\treturn [\n\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t]\n}\n\nconst FileChecks = [\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName',\n\t\tname: t('workflowengine', 'File name'),\n\t\toperators: stringOrRegexOperators,\n\t\tplaceholder: (check) => {\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\treturn '/^dummy-.+$/i'\n\t\t\t}\n\t\t\treturn 'filename.txt'\n\t\t},\n\t\tvalidate: stringValidator,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType',\n\t\tname: t('workflowengine', 'File MIME type'),\n\t\toperators: stringOrRegexOperators,\n\t\tcomponent: FileMimeType,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize',\n\t\tname: t('workflowengine', 'File size (upload)'),\n\t\toperators: [\n\t\t\t{ operator: 'less', name: t('workflowengine', 'less') },\n\t\t\t{ operator: '!greater', name: t('workflowengine', 'less or equals') },\n\t\t\t{ operator: '!less', name: t('workflowengine', 'greater or equals') },\n\t\t\t{ operator: 'greater', name: t('workflowengine', 'greater') },\n\t\t],\n\t\tplaceholder: (check) => '5 MB',\n\t\tvalidate: (check) => check.value ? check.value.match(/^[0-9]+[ ]?[kmgt]?b$/i) !== null : false,\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress',\n\t\tname: t('workflowengine', 'Request remote address'),\n\t\toperators: [\n\t\t\t{ operator: 'matchesIPv4', name: t('workflowengine', 'matches IPv4') },\n\t\t\t{ operator: '!matchesIPv4', name: t('workflowengine', 'does not match IPv4') },\n\t\t\t{ operator: 'matchesIPv6', name: t('workflowengine', 'matches IPv6') },\n\t\t\t{ operator: '!matchesIPv6', name: t('workflowengine', 'does not match IPv6') },\n\t\t],\n\t\tplaceholder: (check) => {\n\t\t\tif (check.operator === 'matchesIPv6' || check.operator === '!matchesIPv6') {\n\t\t\t\treturn '::1/128'\n\t\t\t}\n\t\t\treturn '127.0.0.1/32'\n\t\t},\n\t\tvalidate: (check) => {\n\t\t\tif (check.operator === 'matchesIPv6' || check.operator === '!matchesIPv6') {\n\t\t\t\treturn validateIPv6(check.value)\n\t\t\t}\n\t\t\treturn validateIPv4(check.value)\n\t\t},\n\t},\n\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags',\n\t\tname: t('workflowengine', 'File system tag'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is tagged with') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not tagged with') },\n\t\t],\n\t\tcomponent: FileSystemTag,\n\t},\n]\n\nexport default FileChecks\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a user agent')\"\n\t\t\tlabel=\"label\"\n\t\t\t:options=\"options\"\n\t\t\t:clearable=\"false\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.pattern\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestUserAgent',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\n\t\t\t\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\n\t\t\t\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom user agent'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestUserAgent.vue?vue&type=template&id=003881d4&scoped=true&\"\nimport script from \"./RequestUserAgent.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestUserAgent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestUserAgent.vue?vue&type=style&index=0&id=003881d4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"003881d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a user agent'),\"label\":\"label\",\"options\":_vm.options,\"clearable\":false},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('span',{staticClass:\"option__icon\",class:option.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.currentValue.pattern},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"timeslot\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newValue.startTime),expression:\"newValue.startTime\"}],staticClass:\"timeslot--start\",attrs:{\"type\":\"text\",\"placeholder\":\"e.g. 08:00\"},domProps:{\"value\":(_vm.newValue.startTime)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.newValue, \"startTime\", $event.target.value)},_vm.update]}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newValue.endTime),expression:\"newValue.endTime\"}],attrs:{\"type\":\"text\",\"placeholder\":\"e.g. 18:00\"},domProps:{\"value\":(_vm.newValue.endTime)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.newValue, \"endTime\", $event.target.value)},_vm.update]}}),_vm._v(\" \"),(!_vm.valid)?_c('p',{staticClass:\"invalid-hint\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('workflowengine', 'Please enter a valid time span'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcSelect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valid),expression:\"valid\"}],attrs:{\"clearable\":false,\"options\":_vm.timezones},on:{\"input\":_vm.update},model:{value:(_vm.newValue.timezone),callback:function ($$v) {_vm.$set(_vm.newValue, \"timezone\", $$v)},expression:\"newValue.timezone\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"timeslot\">\n\t\t<input v-model=\"newValue.startTime\"\n\t\t\ttype=\"text\"\n\t\t\tclass=\"timeslot--start\"\n\t\t\tplaceholder=\"e.g. 08:00\"\n\t\t\t@input=\"update\">\n\t\t<input v-model=\"newValue.endTime\"\n\t\t\ttype=\"text\"\n\t\t\tplaceholder=\"e.g. 18:00\"\n\t\t\t@input=\"update\">\n\t\t<p v-if=\"!valid\" class=\"invalid-hint\">\n\t\t\t{{ t('workflowengine', 'Please enter a valid time span') }}\n\t\t</p>\n\t\t<NcSelect v-show=\"valid\"\n\t\t\tv-model=\"newValue.timezone\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"timezones\"\n\t\t\t@input=\"update\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport moment from 'moment-timezone'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nconst zones = moment.tz.names()\nexport default {\n\tname: 'RequestTime',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttimezones: zones,\n\t\t\tvalid: false,\n\t\t\tnewValue: {\n\t\t\t\tstartTime: null,\n\t\t\t\tendTime: null,\n\t\t\t\ttimezone: moment.tz.guess(),\n\t\t\t},\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.validate()\n\t},\n\tmethods: {\n\t\tupdateInternalValue(value) {\n\t\t\ttry {\n\t\t\t\tconst data = JSON.parse(value)\n\t\t\t\tif (data.length === 2) {\n\t\t\t\t\tthis.newValue = {\n\t\t\t\t\t\tstartTime: data[0].split(' ', 2)[0],\n\t\t\t\t\t\tendTime: data[1].split(' ', 2)[0],\n\t\t\t\t\t\ttimezone: data[0].split(' ', 2)[1],\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t// ignore invalid values\n\t\t\t}\n\t\t},\n\t\tvalidate() {\n\t\t\tthis.valid = this.newValue.startTime && this.newValue.startTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i) !== null\n\t\t\t\t&& this.newValue.endTime && this.newValue.endTime.match(/^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$/i) !== null\n\t\t\t\t&& moment.tz.zone(this.newValue.timezone) !== null\n\t\t\tif (this.valid) {\n\t\t\t\tthis.$emit('valid')\n\t\t\t} else {\n\t\t\t\tthis.$emit('invalid')\n\t\t\t}\n\t\t\treturn this.valid\n\t\t},\n\t\tupdate() {\n\t\t\tif (this.newValue.timezone === null) {\n\t\t\t\tthis.newValue.timezone = moment.tz.guess()\n\t\t\t}\n\t\t\tif (this.validate()) {\n\t\t\t\tconst output = `[\"${this.newValue.startTime} ${this.newValue.timezone}\",\"${this.newValue.endTime} ${this.newValue.timezone}\"]`\n\t\t\t\tthis.$emit('input', output)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n\t.timeslot {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-wrap: wrap;\n\t\tmax-width: 180px;\n\n\t\t.multiselect {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\n\t\t\tborder: 1px solid transparent;\n\t\t}\n\n\t\tinput[type=text] {\n\t\t\twidth: 50%;\n\t\t\tmargin: 0;\n\t\t\tmargin-bottom: 5px;\n\t\t\tmin-height: 48px;\n\n\t\t\t&.timeslot--start {\n\t\t\t\tmargin-right: 5px;\n\t\t\t\twidth: calc(50% - 5px);\n\t\t\t}\n\t\t}\n\n\t\t.invalid-hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestTime.vue?vue&type=template&id=7a2ecc67&scoped=true&\"\nimport script from \"./RequestTime.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestTime.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestTime.vue?vue&type=style&index=0&id=7a2ecc67&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a2ecc67\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:placeholder=\"t('workflowengine', 'Select a request URL')\"\n\t\t\tlabel=\"label\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"options\"\n\t\t\t@input=\"setValue\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<span class=\"option__icon\" :class=\"option.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(option.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #selected-option=\"selectedOption\">\n\t\t\t\t<span class=\"option__icon\" :class=\"selectedOption.icon\" />\n\t\t\t\t<span class=\"option__title\">\n\t\t\t\t\t<NcEllipsisedOption :name=\"String(selectedOption.label)\" />\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<input v-if=\"!isPredefined\"\n\t\t\ttype=\"text\"\n\t\t\t:value=\"currentValue.id\"\n\t\t\t:placeholder=\"placeholder\"\n\t\t\t@input=\"updateCustom\">\n\t</div>\n</template>\n\n<script>\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport valueMixin from '../../mixins/valueMixin.js'\n\nexport default {\n\tname: 'RequestURL',\n\tcomponents: {\n\t\tNcEllipsisedOption,\n\t\tNcSelect,\n\t},\n\tmixins: [\n\t\tvalueMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tnewValue: '',\n\t\t\tpredefinedTypes: [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-files-dark',\n\t\t\t\t\tid: 'webdav',\n\t\t\t\t\tlabel: t('workflowengine', 'Files WebDAV'),\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\treturn [...this.predefinedTypes, this.customValue]\n\t\t},\n\t\tplaceholder() {\n\t\t\tif (this.check.operator === 'matches' || this.check.operator === '!matches') {\n\t\t\t\treturn '/^https\\\\:\\\\/\\\\/localhost\\\\/index\\\\.php$/i'\n\t\t\t}\n\t\t\treturn 'https://localhost/index.php'\n\t\t},\n\t\tmatchingPredefined() {\n\t\t\treturn this.predefinedTypes\n\t\t\t\t.find((type) => this.newValue === type.id)\n\t\t},\n\t\tisPredefined() {\n\t\t\treturn !!this.matchingPredefined\n\t\t},\n\t\tcustomValue() {\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom URL'),\n\t\t\t\tid: '',\n\t\t\t}\n\t\t},\n\t\tcurrentValue() {\n\t\t\tif (this.matchingPredefined) {\n\t\t\t\treturn this.matchingPredefined\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ticon: 'icon-settings-dark',\n\t\t\t\tlabel: t('workflowengine', 'Custom URL'),\n\t\t\t\tid: this.newValue,\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tvalidateRegex(string) {\n\t\t\tconst regexRegex = /^\\/(.*)\\/([gui]{0,3})$/\n\t\t\tconst result = regexRegex.exec(string)\n\t\t\treturn result !== null\n\t\t},\n\t\tsetValue(value) {\n\t\t\t// TODO: check if value requires a regex and set the check operator according to that\n\t\t\tif (value !== null) {\n\t\t\t\tthis.newValue = value.id\n\t\t\t\tthis.$emit('input', this.newValue)\n\t\t\t}\n\t\t},\n\t\tupdateCustom(event) {\n\t\t\tthis.newValue = event.target.value\n\t\t\tthis.$emit('input', this.newValue)\n\t\t},\n\t},\n}\n</script>\n<style scoped lang=\"scss\">\n\t.v-select,\n\tinput[type='text'] {\n\t\twidth: 100%;\n\t}\n\tinput[type='text'] {\n\t\tmin-height: 48px;\n\t}\n\n\t.option__icon {\n\t\tdisplay: inline-block;\n\t\tmin-width: 30px;\n\t\tbackground-position: center;\n\t\tvertical-align: middle;\n\t}\n\n\t.option__title {\n\t\tdisplay: inline-flex;\n\t\twidth: calc(100% - 36px);\n\t\tvertical-align: middle;\n\t}\n</style>\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestURL.vue?vue&type=template&id=1a72d97f&scoped=true&\"\nimport script from \"./RequestURL.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestURL.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestURL.vue?vue&type=style&index=0&id=1a72d97f&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a72d97f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"placeholder\":_vm.t('workflowengine', 'Select a request URL'),\"label\":\"label\",\"clearable\":false,\"options\":_vm.options},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_c('span',{staticClass:\"option__icon\",class:option.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(option.label)}})],1)]}},{key:\"selected-option\",fn:function(selectedOption){return [_c('span',{staticClass:\"option__icon\",class:selectedOption.icon}),_vm._v(\" \"),_c('span',{staticClass:\"option__title\"},[_c('NcEllipsisedOption',{attrs:{\"name\":String(selectedOption.label)}})],1)]}}])}),_vm._v(\" \"),(!_vm.isPredefined)?_c('input',{attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.currentValue.id},on:{\"input\":_vm.updateCustom}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSelect',{attrs:{\"value\":_vm.currentValue,\"loading\":_vm.status.isLoading && _vm.groups.length === 0,\"options\":_vm.groups,\"clearable\":false,\"label\":\"displayname\"},on:{\"search-change\":_vm.searchAsync,\"input\":(value) => _vm.$emit('input', value.id)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div>\n\t\t<NcSelect :value=\"currentValue\"\n\t\t\t:loading=\"status.isLoading && groups.length === 0\"\n\t\t\t:options=\"groups\"\n\t\t\t:clearable=\"false\"\n\t\t\tlabel=\"displayname\"\n\t\t\t@search-change=\"searchAsync\"\n\t\t\t@input=\"(value) => $emit('input', value.id)\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nconst groups = []\nconst status = {\n\tisLoading: false,\n}\n\nexport default {\n\tname: 'RequestUserGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tcheck: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tstatus,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcurrentValue() {\n\t\t\treturn this.groups.find(group => group.id === this.value) || null\n\t\t},\n\t},\n\tasync mounted() {\n\t\tif (this.groups.length === 0) {\n\t\t\tawait this.searchAsync('')\n\t\t}\n\t\tif (this.currentValue === null) {\n\t\t\tawait this.searchAsync(this.value)\n\t\t}\n\t},\n\tmethods: {\n\t\tsearchAsync(searchQuery) {\n\t\t\tif (this.status.isLoading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.status.isLoading = true\n\t\t\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\n\t\t\t\tresponse.data.ocs.data.groups.forEach((group) => {\n\t\t\t\t\tthis.addGroup({\n\t\t\t\t\t\tid: group.id,\n\t\t\t\t\t\tdisplayname: group.displayname,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\tthis.status.isLoading = false\n\t\t\t}, (error) => {\n\t\t\t\tconsole.error('Error while loading group list', error.response)\n\t\t\t})\n\t\t},\n\t\taddGroup(group) {\n\t\t\tconst index = this.groups.findIndex((item) => item.id === group.id)\n\t\t\tif (index === -1) {\n\t\t\t\tthis.groups.push(group)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n.v-select {\n\twidth: 100%;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RequestUserGroup.vue?vue&type=template&id=16d8123e&scoped=true&\"\nimport script from \"./RequestUserGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./RequestUserGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RequestUserGroup.vue?vue&type=style&index=0&id=16d8123e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16d8123e\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport FileChecks from './file.js'\nimport RequestChecks from './request.js'\n\nexport default [...FileChecks, ...RequestChecks]\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport RequestUserAgent from './RequestUserAgent.vue'\nimport RequestTime from './RequestTime.vue'\nimport RequestURL from './RequestURL.vue'\nimport RequestUserGroup from './RequestUserGroup.vue'\n\nconst RequestChecks = [\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL',\n\t\tname: t('workflowengine', 'Request URL'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t],\n\t\tcomponent: RequestURL,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime',\n\t\tname: t('workflowengine', 'Request time'),\n\t\toperators: [\n\t\t\t{ operator: 'in', name: t('workflowengine', 'between') },\n\t\t\t{ operator: '!in', name: t('workflowengine', 'not between') },\n\t\t],\n\t\tcomponent: RequestTime,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent',\n\t\tname: t('workflowengine', 'Request user agent'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not') },\n\t\t\t{ operator: 'matches', name: t('workflowengine', 'matches') },\n\t\t\t{ operator: '!matches', name: t('workflowengine', 'does not match') },\n\t\t],\n\t\tcomponent: RequestUserAgent,\n\t},\n\t{\n\t\tclass: 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership',\n\t\tname: t('workflowengine', 'User group membership'),\n\t\toperators: [\n\t\t\t{ operator: 'is', name: t('workflowengine', 'is member of') },\n\t\t\t{ operator: '!is', name: t('workflowengine', 'is not member of') },\n\t\t],\n\t\tcomponent: RequestUserGroup,\n\t},\n]\n\nexport default RequestChecks\n","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Vuex from 'vuex'\nimport store from './store.js'\nimport Settings from './components/Workflow.vue'\nimport ShippedChecks from './components/Checks/index.js'\n\n/**\n * A plugin for displaying a custom value field for checks\n *\n * @typedef {object} CheckPlugin\n * @property {string} class - The PHP class name of the check\n * @property {Comparison[]} operators - A list of possible comparison operations running on the check\n * @property {Vue} component - A vue component to handle the rendering of options\n * The component should handle the v-model directive properly,\n * so it needs a value property to receive data and emit an input\n * event once the data has changed\n * @property {Function} placeholder - Return a placeholder of no custom component is used\n * @property {Function} validate - validate a check if no custom component is used\n */\n\n/**\n * A plugin for extending the admin page representation of an operator\n *\n * @typedef {object} OperatorPlugin\n * @property {string} id - The PHP class name of the check\n * @property {string} operation - Default value for the operation field\n * @property {string} color - Custom color code to be applied for the operator selector\n * @property {Vue} component - A vue component to handle the rendering of options\n * The component should handle the v-model directive properly,\n * so it needs a value property to receive data and emit an input\n * event once the data has changed\n */\n\n/**\n * @typedef {object} Comparison\n * @property {string} operator - value the comparison should have, e.g. !less, greater\n * @property {string} name - Translated readable text, e.g. less or equals\n */\n\n/**\n * Public javascript api for apps to register custom plugins\n */\nwindow.OCA.WorkflowEngine = Object.assign({}, OCA.WorkflowEngine, {\n\n\t/**\n\t *\n\t * @param {CheckPlugin} Plugin the plugin to register\n\t */\n\tregisterCheck(Plugin) {\n\t\tstore.commit('addPluginCheck', Plugin)\n\t},\n\t/**\n\t *\n\t * @param {OperatorPlugin} Plugin the plugin to register\n\t */\n\tregisterOperator(Plugin) {\n\t\tstore.commit('addPluginOperator', Plugin)\n\t},\n})\n\n// Register shipped checks\nShippedChecks.forEach((checkPlugin) => window.OCA.WorkflowEngine.registerCheck(checkPlugin))\n\nVue.use(Vuex)\nVue.prototype.t = t\n\nconst View = Vue.extend(Settings)\nconst workflowengine = new View({\n\tstore,\n})\nworkflowengine.$mount('#workflowengine')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".check[data-v-07a2739b]{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;padding-right:20px}.check>*[data-v-07a2739b]:not(.close){width:180px}.check>.comparator[data-v-07a2739b]{min-width:200px;width:200px}.check>.option[data-v-07a2739b]{min-width:260px;width:260px;min-height:48px}.check>.option>input[type=text][data-v-07a2739b]{min-height:48px}.check>.v-select[data-v-07a2739b],.check>.button-vue[data-v-07a2739b],.check>input[type=text][data-v-07a2739b]{margin-right:5px;margin-bottom:5px}input[type=text][data-v-07a2739b]{margin:0}.invalid[data-v-07a2739b]{border-color:var(--color-error) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Check.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,YAAA,CACA,cAAA,CACA,sBAAA,CACA,UAAA,CACA,kBAAA,CAEA,sCACC,WAAA,CAED,oCACC,eAAA,CACA,WAAA,CAED,gCACC,eAAA,CACA,WAAA,CACA,eAAA,CAEA,iDACC,eAAA,CAGF,+GAGC,gBAAA,CACA,iBAAA,CAGF,kCACC,QAAA,CAED,0BACC,0CAAA\",\"sourcesContent\":[\"\\n.check {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\talign-items: flex-start; // to not stretch components vertically\\n\\twidth: 100%;\\n\\tpadding-right: 20px;\\n\\n\\t& > *:not(.close) {\\n\\t\\twidth: 180px;\\n\\t}\\n\\t& > .comparator {\\n\\t\\tmin-width: 200px;\\n\\t\\twidth: 200px;\\n\\t}\\n\\t& > .option {\\n\\t\\tmin-width: 260px;\\n\\t\\twidth: 260px;\\n\\t\\tmin-height: 48px;\\n\\n\\t\\t& > input[type=text] {\\n\\t\\t\\tmin-height: 48px;\\n\\t\\t}\\n\\t}\\n\\t& > .v-select,\\n\\t& > .button-vue,\\n\\t& > input[type=text] {\\n\\t\\tmargin-right: 5px;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\ninput[type=text] {\\n\\tmargin: 0;\\n}\\n.invalid {\\n\\tborder-color: var(--color-error) !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-select[data-v-1a11f354],input[type=text][data-v-1a11f354]{width:100%}input[type=text][data-v-1a11f354]{min-height:48px}.option__icon[data-v-1a11f354],.option__icon-img[data-v-1a11f354]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__icon-img[data-v-1a11f354]{text-align:center}.option__title[data-v-1a11f354]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/FileMimeType.vue\"],\"names\":[],\"mappings\":\"AACA,6DAEC,UAAA,CAGD,kCACC,eAAA,CAGD,kEAEC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,mCACC,iBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA\",\"sourcesContent\":[\"\\n.v-select,\\ninput[type='text'] {\\n\\twidth: 100%;\\n}\\n\\ninput[type=text] {\\n\\tmin-height: 48px;\\n}\\n\\n.option__icon,\\n.option__icon-img {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n\\n.option__icon-img {\\n\\ttext-align: center;\\n}\\n\\n.option__title {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".timeslot[data-v-7a2ecc67]{display:flex;flex-grow:1;flex-wrap:wrap;max-width:180px}.timeslot .multiselect[data-v-7a2ecc67]{width:100%;margin-bottom:5px}.timeslot .multiselect[data-v-7a2ecc67] .multiselect__tags:not(:hover):not(:focus):not(:active){border:1px solid rgba(0,0,0,0)}.timeslot input[type=text][data-v-7a2ecc67]{width:50%;margin:0;margin-bottom:5px;min-height:48px}.timeslot input[type=text].timeslot--start[data-v-7a2ecc67]{margin-right:5px;width:calc(50% - 5px)}.timeslot .invalid-hint[data-v-7a2ecc67]{color:var(--color-text-maxcontrast)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestTime.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,eAAA,CAEA,wCACC,UAAA,CACA,iBAAA,CAGD,gGACC,8BAAA,CAGD,4CACC,SAAA,CACA,QAAA,CACA,iBAAA,CACA,eAAA,CAEA,4DACC,gBAAA,CACA,qBAAA,CAIF,yCACC,mCAAA\",\"sourcesContent\":[\"\\n.timeslot {\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tflex-wrap: wrap;\\n\\tmax-width: 180px;\\n\\n\\t.multiselect {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n\\n\\t.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) {\\n\\t\\tborder: 1px solid transparent;\\n\\t}\\n\\n\\tinput[type=text] {\\n\\t\\twidth: 50%;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-bottom: 5px;\\n\\t\\tmin-height: 48px;\\n\\n\\t\\t&.timeslot--start {\\n\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\twidth: calc(50% - 5px);\\n\\t\\t}\\n\\t}\\n\\n\\t.invalid-hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-select[data-v-1a72d97f],input[type=text][data-v-1a72d97f]{width:100%}input[type=text][data-v-1a72d97f]{min-height:48px}.option__icon[data-v-1a72d97f]{display:inline-block;min-width:30px;background-position:center;vertical-align:middle}.option__title[data-v-1a72d97f]{display:inline-flex;width:calc(100% - 36px);vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestURL.vue\"],\"names\":[],\"mappings\":\"AACA,6DAEC,UAAA,CAED,kCACC,eAAA,CAGD,+BACC,oBAAA,CACA,cAAA,CACA,0BAAA,CACA,qBAAA,CAGD,gCACC,mBAAA,CACA,uBAAA,CACA,qBAAA\",\"sourcesContent\":[\"\\n.v-select,\\ninput[type='text'] {\\n\\twidth: 100%;\\n}\\ninput[type='text'] {\\n\\tmin-height: 48px;\\n}\\n\\n.option__icon {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n\\n.option__title {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".event[data-v-1825d70e]{margin-bottom:5px}.isComplex img[data-v-1825d70e]{vertical-align:text-top}.isComplex span[data-v-1825d70e]{padding-top:2px;display:inline-block}.multiselect[data-v-1825d70e]{width:100%;max-width:550px;margin-top:4px}.multiselect[data-v-1825d70e] .multiselect__single{display:flex}.multiselect[data-v-1825d70e]:not(.multiselect--active) .multiselect__tags{background-color:var(--color-main-background) !important;border:1px solid rgba(0,0,0,0)}.multiselect[data-v-1825d70e] .multiselect__tags{background-color:var(--color-main-background) !important;height:auto;min-height:34px}.multiselect[data-v-1825d70e]:not(.multiselect--disabled) .multiselect__tags .multiselect__single{background-image:var(--icon-triangle-s-dark);background-repeat:no-repeat;background-position:right center}input[data-v-1825d70e]{border:1px solid rgba(0,0,0,0)}.option__title[data-v-1825d70e]{margin-left:5px;color:var(--color-main-text)}.option__title_single[data-v-1825d70e]{font-weight:900}.option__icon[data-v-1825d70e]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.eventlist img[data-v-1825d70e],.eventlist .text[data-v-1825d70e]{vertical-align:middle}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Event.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,iBAAA,CAGA,gCACC,uBAAA,CAED,iCACC,eAAA,CACA,oBAAA,CAGF,8BACC,UAAA,CACA,eAAA,CACA,cAAA,CAED,mDACC,YAAA,CAED,2EACC,wDAAA,CACA,8BAAA,CAGD,iDACC,wDAAA,CACA,WAAA,CACA,eAAA,CAGD,kGACC,4CAAA,CACA,2BAAA,CACA,gCAAA,CAGD,uBACC,8BAAA,CAGD,gCACC,eAAA,CACA,4BAAA,CAED,uCACC,eAAA,CAGD,+BACC,UAAA,CACA,WAAA,CACA,uCAAA,CAGD,kEAEC,qBAAA\",\"sourcesContent\":[\"\\n.event {\\n\\tmargin-bottom: 5px;\\n}\\n.isComplex {\\n\\timg {\\n\\t\\tvertical-align: text-top;\\n\\t}\\n\\tspan {\\n\\t\\tpadding-top: 2px;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n}\\n.multiselect {\\n\\twidth: 100%;\\n\\tmax-width: 550px;\\n\\tmargin-top: 4px;\\n}\\n.multiselect::v-deep .multiselect__single {\\n\\tdisplay: flex;\\n}\\n.multiselect:not(.multiselect--active)::v-deep .multiselect__tags {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\tborder: 1px solid transparent;\\n}\\n\\n.multiselect::v-deep .multiselect__tags {\\n\\tbackground-color: var(--color-main-background) !important;\\n\\theight: auto;\\n\\tmin-height: 34px;\\n}\\n\\n.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {\\n\\tbackground-image: var(--icon-triangle-s-dark);\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: right center;\\n}\\n\\ninput {\\n\\tborder: 1px solid transparent;\\n}\\n\\n.option__title {\\n\\tmargin-left: 5px;\\n\\tcolor: var(--color-main-text);\\n}\\n.option__title_single {\\n\\tfont-weight: 900;\\n}\\n\\n.option__icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tfilter: var(--background-invert-if-dark);\\n}\\n\\n.eventlist img,\\n.eventlist .text {\\n\\tvertical-align: middle;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".actions__item[data-v-a0480332]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-a0480332]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-a0480332]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-a0480332]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-a0480332],small[data-v-a0480332]{padding:6px;display:block}h3[data-v-a0480332]{margin:0;padding:0;font-weight:600}small[data-v-a0480332]{font-size:10pt;flex-grow:1}.colored[data-v-a0480332]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-a0480332],.colored:not(.more) small[data-v-a0480332]{color:var(--color-primary-element-text)}.actions__item[data-v-a0480332]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-a0480332]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-a0480332]{padding:0}.actions__item:not(.colored) .icon[data-v-a0480332]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-a0480332]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-a0480332]{filter:var(--background-invert-if-bright)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/styles/operation.scss\"],\"names\":[],\"mappings\":\"AAAA,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA\",\"sourcesContent\":[\".actions__item {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tflex-direction: column;\\n\\tflex-grow: 1;\\n\\tmargin-left: -1px;\\n\\tpadding: 10px;\\n\\tborder-radius: var(--border-radius-large);\\n\\tmargin-right: 20px;\\n\\tmargin-bottom: 20px;\\n}\\n.actions__item .icon {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 50px;\\n\\tbackground-size: 50px 50px;\\n\\tbackground-position: center center;\\n\\tmargin-top: 10px;\\n\\tmargin-bottom: 10px;\\n\\tbackground-repeat: no-repeat;\\n}\\n.actions__item__description {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n}\\n.actions__item_options {\\n\\twidth: 100%;\\n\\tmargin-top: 10px;\\n\\tpadding-left: 60px;\\n}\\nh3, small {\\n\\tpadding: 6px;\\n\\tdisplay: block;\\n}\\nh3 {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tfont-weight: 600;\\n}\\nsmall {\\n\\tfont-size: 10pt;\\n\\tflex-grow: 1;\\n}\\n\\n.colored:not(.more) {\\n\\tbackground-color: var(--color-primary-element);\\n\\th3, small {\\n\\t\\tcolor: var(--color-primary-element-text)\\n\\t}\\n}\\n\\n.actions__item:not(.colored) {\\n\\tflex-direction: row;\\n\\n\\t.actions__item__description {\\n\\t\\tpadding-top: 5px;\\n\\t\\ttext-align: left;\\n\\t\\twidth: calc(100% - 105px);\\n\\t\\tsmall {\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\t.icon {\\n\\t\\twidth: 50px;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-right: 10px;\\n\\t\\t&:not(.icon-invert) {\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n}\\n\\n.colored .icon-invert {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".buttons[data-v-3def8966]{display:flex;justify-content:end}.buttons button[data-v-3def8966]{margin-left:5px}.buttons button[data-v-3def8966]:last-child{margin-right:10px}.error-message[data-v-3def8966]{float:right;margin-right:10px}.flow-icon[data-v-3def8966]{width:44px}.rule[data-v-3def8966]{display:flex;flex-wrap:wrap;border-left:5px solid var(--color-primary-element)}.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{flex-grow:1;min-height:100px;max-width:920px}.rule .action[data-v-3def8966]{max-width:400px;position:relative}.rule .icon-confirm[data-v-3def8966]{background-position:right 27px;padding-right:20px;margin-right:20px}.trigger p[data-v-3def8966],.action p[data-v-3def8966]{min-height:34px;display:flex}.trigger p>span[data-v-3def8966],.action p>span[data-v-3def8966]{min-width:50px;text-align:right;color:var(--color-text-maxcontrast);padding-right:10px;padding-top:6px}.trigger p .multiselect[data-v-3def8966],.action p .multiselect[data-v-3def8966]{flex-grow:1;max-width:300px}.trigger p:first-child span[data-v-3def8966]{padding-top:3px}.trigger p[data-v-3def8966]:last-child{padding-top:8px}.check--add[data-v-3def8966]{background-position:7px center;background-color:rgba(0,0,0,0);padding-left:6px;margin:0;width:180px;border-radius:var(--border-radius);color:var(--color-text-maxcontrast);font-weight:normal;text-align:left;font-size:1em}@media(max-width: 1400px){.rule[data-v-3def8966],.rule .trigger[data-v-3def8966],.rule .action[data-v-3def8966]{width:100%;max-width:100%}.rule .flow-icon[data-v-3def8966]{display:none}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Rule.vue\"],\"names\":[],\"mappings\":\"AAEA,0BACC,YAAA,CACA,mBAAA,CAEA,iCACC,eAAA,CAED,4CACC,iBAAA,CAIF,gCACC,WAAA,CACA,iBAAA,CAGD,4BACC,UAAA,CAGD,uBACC,YAAA,CACA,cAAA,CACA,kDAAA,CAEA,+DAEC,WAAA,CACA,gBAAA,CACA,eAAA,CAED,+BACC,eAAA,CACA,iBAAA,CAED,qCACC,8BAAA,CACA,kBAAA,CACA,iBAAA,CAGF,uDACC,eAAA,CACA,YAAA,CAEA,iEACC,cAAA,CACA,gBAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CAED,iFACC,WAAA,CACA,eAAA,CAGF,6CACE,eAAA,CAEF,uCACE,eAAA,CAGF,6BACC,8BAAA,CACA,8BAAA,CACA,gBAAA,CACA,QAAA,CACA,WAAA,CACA,kCAAA,CACA,mCAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CAGD,0BAEE,sFACC,UAAA,CACA,cAAA,CAED,kCACC,YAAA,CAAA\",\"sourcesContent\":[\"\\n\\n.buttons {\\n\\tdisplay: flex;\\n\\tjustify-content: end;\\n\\n\\tbutton {\\n\\t\\tmargin-left: 5px;\\n\\t}\\n\\tbutton:last-child{\\n\\t\\tmargin-right: 10px;\\n\\t}\\n}\\n\\n.error-message {\\n\\tfloat: right;\\n\\tmargin-right: 10px;\\n}\\n\\n.flow-icon {\\n\\twidth: 44px;\\n}\\n\\n.rule {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tborder-left: 5px solid var(--color-primary-element);\\n\\n\\t.trigger,\\n\\t.action {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-height: 100px;\\n\\t\\tmax-width: 920px;\\n\\t}\\n\\t.action {\\n\\t\\tmax-width: 400px;\\n\\t\\tposition: relative;\\n\\t}\\n\\t.icon-confirm {\\n\\t\\tbackground-position: right 27px;\\n\\t\\tpadding-right: 20px;\\n\\t\\tmargin-right: 20px;\\n\\t}\\n}\\n.trigger p, .action p {\\n\\tmin-height: 34px;\\n\\tdisplay: flex;\\n\\n\\t& > span {\\n\\t\\tmin-width: 50px;\\n\\t\\ttext-align: right;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-right: 10px;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\t.multiselect {\\n\\t\\tflex-grow: 1;\\n\\t\\tmax-width: 300px;\\n\\t}\\n}\\n.trigger p:first-child span {\\n\\t\\tpadding-top: 3px;\\n}\\n.trigger p:last-child {\\n\\t\\tpadding-top: 8px;\\n}\\n\\n.check--add {\\n\\tbackground-position: 7px center;\\n\\tbackground-color: transparent;\\n\\tpadding-left: 6px;\\n\\tmargin: 0;\\n\\twidth: 180px;\\n\\tborder-radius: var(--border-radius);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tfont-weight: normal;\\n\\ttext-align: left;\\n\\tfont-size: 1em;\\n}\\n\\n@media (max-width:1400px) {\\n\\t.rule {\\n\\t\\t&, .trigger, .action {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t\\t.flow-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#workflowengine[data-v-4e25e34d]{border-bottom:1px solid var(--color-border)}.section[data-v-4e25e34d]{max-width:100vw}.section h2.configured-flows[data-v-4e25e34d]{margin-top:50px;margin-bottom:0}.actions[data-v-4e25e34d]{display:flex;flex-wrap:wrap;max-width:1200px}.actions .actions__item[data-v-4e25e34d]{max-width:280px;flex-basis:250px}.actions__more[data-v-4e25e34d]{margin-bottom:10px}.slide-enter-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:ease-in;-webkit-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.slide-leave-active[data-v-4e25e34d]{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-moz-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-webkit-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);-o-transition-timing-function:cubic-bezier(0, 1, 0.5, 1);transition-timing-function:cubic-bezier(0, 1, 0.5, 1)}.slide-enter-to[data-v-4e25e34d],.slide-leave[data-v-4e25e34d]{max-height:500px;overflow:hidden}.slide-enter[data-v-4e25e34d],.slide-leave-to[data-v-4e25e34d]{overflow:hidden;max-height:0;padding-top:0;padding-bottom:0}.actions__item[data-v-4e25e34d]{display:flex;flex-wrap:wrap;flex-direction:column;flex-grow:1;margin-left:-1px;padding:10px;border-radius:var(--border-radius-large);margin-right:20px;margin-bottom:20px}.actions__item .icon[data-v-4e25e34d]{display:block;width:100%;height:50px;background-size:50px 50px;background-position:center center;margin-top:10px;margin-bottom:10px;background-repeat:no-repeat}.actions__item__description[data-v-4e25e34d]{text-align:center;flex-grow:1;display:flex;flex-direction:column;align-items:center}.actions__item_options[data-v-4e25e34d]{width:100%;margin-top:10px;padding-left:60px}h3[data-v-4e25e34d],small[data-v-4e25e34d]{padding:6px;display:block}h3[data-v-4e25e34d]{margin:0;padding:0;font-weight:600}small[data-v-4e25e34d]{font-size:10pt;flex-grow:1}.colored[data-v-4e25e34d]:not(.more){background-color:var(--color-primary-element)}.colored:not(.more) h3[data-v-4e25e34d],.colored:not(.more) small[data-v-4e25e34d]{color:var(--color-primary-element-text)}.actions__item[data-v-4e25e34d]:not(.colored){flex-direction:row}.actions__item:not(.colored) .actions__item__description[data-v-4e25e34d]{padding-top:5px;text-align:left;width:calc(100% - 105px)}.actions__item:not(.colored) .actions__item__description small[data-v-4e25e34d]{padding:0}.actions__item:not(.colored) .icon[data-v-4e25e34d]{width:50px;margin:0;margin-right:10px}.actions__item:not(.colored) .icon[data-v-4e25e34d]:not(.icon-invert){filter:var(--background-invert-if-bright)}.colored .icon-invert[data-v-4e25e34d]{filter:var(--background-invert-if-bright)}.actions__item.more[data-v-4e25e34d]{background-color:var(--color-background-dark)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Workflow.vue\",\"webpack://./apps/workflowengine/src/styles/operation.scss\"],\"names\":[],\"mappings\":\"AACA,iCACC,2CAAA,CAED,0BACC,eAAA,CAEA,8CACC,eAAA,CACA,eAAA,CAGF,0BACC,YAAA,CACA,cAAA,CACA,gBAAA,CACA,yCACC,eAAA,CACA,gBAAA,CAGF,gCACC,kBAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,uCAAA,CACA,0CAAA,CACA,qCAAA,CACA,kCAAA,CAGD,qCACC,4BAAA,CACA,+BAAA,CACA,0BAAA,CACA,uBAAA,CACA,0DAAA,CACA,6DAAA,CACA,wDAAA,CACA,qDAAA,CAGD,+DACC,gBAAA,CACA,eAAA,CAGD,+DACC,eAAA,CACA,YAAA,CACA,aAAA,CACA,gBAAA,CCxDD,gCACC,YAAA,CACA,cAAA,CACA,qBAAA,CACA,WAAA,CACA,gBAAA,CACA,YAAA,CACA,wCAAA,CACA,iBAAA,CACA,kBAAA,CAED,sCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,yBAAA,CACA,iCAAA,CACA,eAAA,CACA,kBAAA,CACA,2BAAA,CAED,6CACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAED,wCACC,UAAA,CACA,eAAA,CACA,iBAAA,CAED,2CACC,WAAA,CACA,aAAA,CAED,oBACC,QAAA,CACA,SAAA,CACA,eAAA,CAED,uBACC,cAAA,CACA,WAAA,CAGD,qCACC,6CAAA,CACA,mFACC,uCAAA,CAIF,8CACC,kBAAA,CAEA,0EACC,eAAA,CACA,eAAA,CACA,wBAAA,CACA,gFACC,SAAA,CAGF,oDACC,UAAA,CACA,QAAA,CACA,iBAAA,CACA,sEACC,yCAAA,CAKH,uCACC,yCAAA,CDfD,qCACC,6CAAA\",\"sourcesContent\":[\"\\n#workflowengine {\\n\\tborder-bottom: 1px solid var(--color-border);\\n}\\n.section {\\n\\tmax-width: 100vw;\\n\\n\\th2.configured-flows {\\n\\t\\tmargin-top: 50px;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n}\\n.actions {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tmax-width: 1200px;\\n\\t.actions__item {\\n\\t\\tmax-width: 280px;\\n\\t\\tflex-basis: 250px;\\n\\t}\\n}\\n.actions__more {\\n\\tmargin-bottom: 10px;\\n}\\n\\n.slide-enter-active {\\n\\t-moz-transition-duration: 0.3s;\\n\\t-webkit-transition-duration: 0.3s;\\n\\t-o-transition-duration: 0.3s;\\n\\ttransition-duration: 0.3s;\\n\\t-moz-transition-timing-function: ease-in;\\n\\t-webkit-transition-timing-function: ease-in;\\n\\t-o-transition-timing-function: ease-in;\\n\\ttransition-timing-function: ease-in;\\n}\\n\\n.slide-leave-active {\\n\\t-moz-transition-duration: 0.3s;\\n\\t-webkit-transition-duration: 0.3s;\\n\\t-o-transition-duration: 0.3s;\\n\\ttransition-duration: 0.3s;\\n\\t-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\t-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\t-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n\\ttransition-timing-function: cubic-bezier(0, 1, 0.5, 1);\\n}\\n\\n.slide-enter-to, .slide-leave {\\n\\tmax-height: 500px;\\n\\toverflow: hidden;\\n}\\n\\n.slide-enter, .slide-leave-to {\\n\\toverflow: hidden;\\n\\tmax-height: 0;\\n\\tpadding-top: 0;\\n\\tpadding-bottom: 0;\\n}\\n\\n@import \\\"./../styles/operation\\\";\\n\\n.actions__item.more {\\n\\tbackground-color: var(--color-background-dark);\\n}\\n\",\".actions__item {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tflex-direction: column;\\n\\tflex-grow: 1;\\n\\tmargin-left: -1px;\\n\\tpadding: 10px;\\n\\tborder-radius: var(--border-radius-large);\\n\\tmargin-right: 20px;\\n\\tmargin-bottom: 20px;\\n}\\n.actions__item .icon {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 50px;\\n\\tbackground-size: 50px 50px;\\n\\tbackground-position: center center;\\n\\tmargin-top: 10px;\\n\\tmargin-bottom: 10px;\\n\\tbackground-repeat: no-repeat;\\n}\\n.actions__item__description {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n}\\n.actions__item_options {\\n\\twidth: 100%;\\n\\tmargin-top: 10px;\\n\\tpadding-left: 60px;\\n}\\nh3, small {\\n\\tpadding: 6px;\\n\\tdisplay: block;\\n}\\nh3 {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tfont-weight: 600;\\n}\\nsmall {\\n\\tfont-size: 10pt;\\n\\tflex-grow: 1;\\n}\\n\\n.colored:not(.more) {\\n\\tbackground-color: var(--color-primary-element);\\n\\th3, small {\\n\\t\\tcolor: var(--color-primary-element-text)\\n\\t}\\n}\\n\\n.actions__item:not(.colored) {\\n\\tflex-direction: row;\\n\\n\\t.actions__item__description {\\n\\t\\tpadding-top: 5px;\\n\\t\\ttext-align: left;\\n\\t\\twidth: calc(100% - 105px);\\n\\t\\tsmall {\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\t.icon {\\n\\t\\twidth: 50px;\\n\\t\\tmargin: 0;\\n\\t\\tmargin-right: 10px;\\n\\t\\t&:not(.icon-invert) {\\n\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t}\\n\\t}\\n}\\n\\n.colored .icon-invert {\\n\\tfilter: var(--background-invert-if-bright);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-select[data-v-003881d4],\\ninput[type='text'][data-v-003881d4] {\\n\\twidth: 100%;\\n}\\ninput[type='text'][data-v-003881d4] {\\n\\tmin-height: 48px;\\n}\\n.option__icon[data-v-003881d4] {\\n\\tdisplay: inline-block;\\n\\tmin-width: 30px;\\n\\tbackground-position: center;\\n\\tvertical-align: middle;\\n}\\n.option__title[data-v-003881d4] {\\n\\tdisplay: inline-flex;\\n\\twidth: calc(100% - 36px);\\n\\tvertical-align: middle;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestUserAgent.vue\"],\"names\":[],\"mappings\":\";AAmJA;;CAEA,WAAA;AACA;AACA;CACA,gBAAA;AACA;AAEA;CACA,qBAAA;CACA,eAAA;CACA,2BAAA;CACA,sBAAA;AACA;AAEA;CACA,oBAAA;CACA,wBAAA;CACA,sBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n -\\n - @author Julius Härtl <jus@bitgrid.net>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<div>\\n\\t\\t<NcSelect :value=\\\"currentValue\\\"\\n\\t\\t\\t:placeholder=\\\"t('workflowengine', 'Select a user agent')\\\"\\n\\t\\t\\tlabel=\\\"label\\\"\\n\\t\\t\\t:options=\\\"options\\\"\\n\\t\\t\\t:clearable=\\\"false\\\"\\n\\t\\t\\t@input=\\\"setValue\\\">\\n\\t\\t\\t<template #option=\\\"option\\\">\\n\\t\\t\\t\\t<span class=\\\"option__icon\\\" :class=\\\"option.icon\\\" />\\n\\t\\t\\t\\t<span class=\\\"option__title\\\">\\n\\t\\t\\t\\t\\t<NcEllipsisedOption :name=\\\"String(option.label)\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</template>\\n\\t\\t\\t<template #selected-option=\\\"selectedOption\\\">\\n\\t\\t\\t\\t<span class=\\\"option__icon\\\" :class=\\\"selectedOption.icon\\\" />\\n\\t\\t\\t\\t<span class=\\\"option__title\\\">\\n\\t\\t\\t\\t\\t<NcEllipsisedOption :name=\\\"String(selectedOption.label)\\\" />\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</template>\\n\\t\\t</NcSelect>\\n\\t\\t<input v-if=\\\"!isPredefined\\\"\\n\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t:value=\\\"currentValue.pattern\\\"\\n\\t\\t\\t@input=\\\"updateCustom\\\">\\n\\t</div>\\n</template>\\n\\n<script>\\nimport NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'\\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\\nimport valueMixin from '../../mixins/valueMixin.js'\\n\\nexport default {\\n\\tname: 'RequestUserAgent',\\n\\tcomponents: {\\n\\t\\tNcEllipsisedOption,\\n\\t\\tNcSelect,\\n\\t},\\n\\tmixins: [\\n\\t\\tvalueMixin,\\n\\t],\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tnewValue: '',\\n\\t\\t\\tpredefinedTypes: [\\n\\t\\t\\t\\t{ id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },\\n\\t\\t\\t\\t{ id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },\\n\\t\\t\\t\\t{ id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },\\n\\t\\t\\t\\t{ id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },\\n\\t\\t\\t],\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\toptions() {\\n\\t\\t\\treturn [...this.predefinedTypes, this.customValue]\\n\\t\\t},\\n\\t\\tmatchingPredefined() {\\n\\t\\t\\treturn this.predefinedTypes\\n\\t\\t\\t\\t.find((type) => this.newValue === type.id)\\n\\t\\t},\\n\\t\\tisPredefined() {\\n\\t\\t\\treturn !!this.matchingPredefined\\n\\t\\t},\\n\\t\\tcustomValue() {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\ticon: 'icon-settings-dark',\\n\\t\\t\\t\\tlabel: t('workflowengine', 'Custom user agent'),\\n\\t\\t\\t\\tid: '',\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tcurrentValue() {\\n\\t\\t\\tif (this.matchingPredefined) {\\n\\t\\t\\t\\treturn this.matchingPredefined\\n\\t\\t\\t}\\n\\t\\t\\treturn {\\n\\t\\t\\t\\ticon: 'icon-settings-dark',\\n\\t\\t\\t\\tlabel: t('workflowengine', 'Custom user agent'),\\n\\t\\t\\t\\tid: this.newValue,\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tvalidateRegex(string) {\\n\\t\\t\\tconst regexRegex = /^\\\\/(.*)\\\\/([gui]{0,3})$/\\n\\t\\t\\tconst result = regexRegex.exec(string)\\n\\t\\t\\treturn result !== null\\n\\t\\t},\\n\\t\\tsetValue(value) {\\n\\t\\t\\t// TODO: check if value requires a regex and set the check operator according to that\\n\\t\\t\\tif (value !== null) {\\n\\t\\t\\t\\tthis.newValue = value.id\\n\\t\\t\\t\\tthis.$emit('input', this.newValue)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tupdateCustom(event) {\\n\\t\\t\\tthis.newValue = event.target.value\\n\\t\\t\\tthis.$emit('input', this.newValue)\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n\\t.v-select,\\n\\tinput[type='text'] {\\n\\t\\twidth: 100%;\\n\\t}\\n\\tinput[type='text'] {\\n\\t\\tmin-height: 48px;\\n\\t}\\n\\n\\t.option__icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tmin-width: 30px;\\n\\t\\tbackground-position: center;\\n\\t\\tvertical-align: middle;\\n\\t}\\n\\n\\t.option__title {\\n\\t\\tdisplay: inline-flex;\\n\\t\\twidth: calc(100% - 36px);\\n\\t\\tvertical-align: middle;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-select[data-v-16d8123e] {\\n\\twidth: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/workflowengine/src/components/Checks/RequestUserGroup.vue\"],\"names\":[],\"mappings\":\";AA2GA;CACA,WAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n -\\n - @author Julius Härtl <jus@bitgrid.net>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n\\n<template>\\n\\t<div>\\n\\t\\t<NcSelect :value=\\\"currentValue\\\"\\n\\t\\t\\t:loading=\\\"status.isLoading && groups.length === 0\\\"\\n\\t\\t\\t:options=\\\"groups\\\"\\n\\t\\t\\t:clearable=\\\"false\\\"\\n\\t\\t\\tlabel=\\\"displayname\\\"\\n\\t\\t\\t@search-change=\\\"searchAsync\\\"\\n\\t\\t\\t@input=\\\"(value) => $emit('input', value.id)\\\" />\\n\\t</div>\\n</template>\\n\\n<script>\\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\\nimport axios from '@nextcloud/axios'\\nimport { generateOcsUrl } from '@nextcloud/router'\\n\\nconst groups = []\\nconst status = {\\n\\tisLoading: false,\\n}\\n\\nexport default {\\n\\tname: 'RequestUserGroup',\\n\\tcomponents: {\\n\\t\\tNcSelect,\\n\\t},\\n\\tprops: {\\n\\t\\tvalue: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: '',\\n\\t\\t},\\n\\t\\tcheck: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\tdefault: () => { return {} },\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tgroups,\\n\\t\\t\\tstatus,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tcurrentValue() {\\n\\t\\t\\treturn this.groups.find(group => group.id === this.value) || null\\n\\t\\t},\\n\\t},\\n\\tasync mounted() {\\n\\t\\tif (this.groups.length === 0) {\\n\\t\\t\\tawait this.searchAsync('')\\n\\t\\t}\\n\\t\\tif (this.currentValue === null) {\\n\\t\\t\\tawait this.searchAsync(this.value)\\n\\t\\t}\\n\\t},\\n\\tmethods: {\\n\\t\\tsearchAsync(searchQuery) {\\n\\t\\t\\tif (this.status.isLoading) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\n\\t\\t\\tthis.status.isLoading = true\\n\\t\\t\\treturn axios.get(generateOcsUrl('cloud/groups/details?limit=20&search={searchQuery}', { searchQuery })).then((response) => {\\n\\t\\t\\t\\tresponse.data.ocs.data.groups.forEach((group) => {\\n\\t\\t\\t\\t\\tthis.addGroup({\\n\\t\\t\\t\\t\\t\\tid: group.id,\\n\\t\\t\\t\\t\\t\\tdisplayname: group.displayname,\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\tthis.status.isLoading = false\\n\\t\\t\\t}, (error) => {\\n\\t\\t\\t\\tconsole.error('Error while loading group list', error.response)\\n\\t\\t\\t})\\n\\t\\t},\\n\\t\\taddGroup(group) {\\n\\t\\t\\tconst index = this.groups.findIndex((item) => item.id === group.id)\\n\\t\\t\\tif (index === -1) {\\n\\t\\t\\t\\tthis.groups.push(group)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n.v-select {\\n\\twidth: 100%;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"00434e4baa0d8e7b79f1\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8318;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8318: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(7970)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","scopeValue","loadState","getApiUrl","url","generateOcsUrl","Vue","Vuex","Store","state","rules","scope","appstoreEnabled","operations","plugins","checks","operators","entities","events","map","entity","event","id","concat","eventName","flat","mutations","addRule","rule","push","valid","updateRule","index","findIndex","item","newRule","Object","assign","removeRule","splice","addPluginCheck","plugin","class","addPluginOperator","color","actions","async","context","data","axios","values","ocs","forEach","commit","confirmPassword","isComplex","fixedEntity","find","Date","getTime","name","operator","value","operation","JSON","parse","result","setValid","_ref","getters","getRules","filter","sort","rule1","rule2","getOperationForRule","getEntityForOperation","getEventsForOperation","getChecksForEntity","check","supportedEntities","indexOf","length","reduce","obj","components","NcMultiselect","props","type","required","computed","$store","allEvents","currentEvent","methods","updateEvent","showWarning","t","existingEntity","newEntities","self","newEntity","$set","$emit","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_c","_self","staticClass","attrs","icon","_v","_s","triggerHint","on","scopedSlots","_u","key","fn","isOpen","_l","displayName","_e","option","NcActionButton","NcActions","NcSelect","CloseIcon","directives","ClickOutside","deleteVisible","currentOption","currentOperator","currentComponent","component","valuePlaceholder","placeholder","watch","validate","mounted","$nextTick","$refs","checkSelector","$el","focus","showDelete","hideDelete","invalid","updateCheck","matchingOperator","rawName","expression","ref","model","callback","$$v","tag","$event","domProps","target","composing","proxy","NcButton","colored","Boolean","default","style","backgroundColor","iconClass","backgroundImage","description","_t","ArrowRight","Check","CheckMark","Close","Event","Operation","Tooltip","editing","error","dirty","originalRule","ruleStatus","some","title","tooltip","placement","show","content","lastCheckComplete","lastCheck","stringify","dispatch","e","console","response","meta","message","cancelRule","$delete","onAddFilter","borderLeftColor","removeCheck","updateOperation","deleteRule","saveRule","MenuDown","MenuUp","Rule","NcSettingsSection","showMoreOperations","appstoreUrl","generateUrl","workflowDocUrl","mapGetters","mapState","hasMoreOperations","keys","getMainOperations","slice","showAppStoreHint","OC","isUserAdmin","createNewRule","nativeOn","regexRegex","regexIPv4","regexIPv6","String","newValue","immediate","handler","updateInternalValue","NcEllipsisedOption","mixins","valueMixin","predefinedTypes","label","iconUrl","imagePath","customValue","isPredefined","currentValue","validateRegex","string","exec","setValue","updateCustom","selectedOption","NcSelectTags","updateValue","beforeMount","parseInt","update","stringOrRegexOperators","FileMimeType","match","validateIPv4","FileSystemTag","matchingPredefined","pattern","zones","moment","timezones","startTime","endTime","timezone","split","output","groups","status","isLoading","group","searchAsync","searchQuery","then","addGroup","displayname","FileChecks","RequestURL","RequestTime","RequestUserAgent","RequestUserGroup","window","OCA","WorkflowEngine","registerCheck","Plugin","store","registerOperator","ShippedChecks","checkPlugin","Settings","$mount","___CSS_LOADER_EXPORT___","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","Function","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js index 70f14a7bbff..8351155d3b6 100644 --- a/lib/l10n/cs.js +++ b/lib/l10n/cs.js @@ -136,7 +136,7 @@ OC.L10N.register( "Set an admin password." : "Nastavte heslo pro účet správce.", "Cannot create or write into the data directory %s" : "Nedaří se vytvořit nebo zapisovat do datového adresáře %s", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Je třeba, aby podpůrná vrstva pro sdílení %s implementovala rozhraní OCP\\Share_Backend", - "Sharing backend %s not found" : "Úložiště sdílení %s nenalezeno", + "Sharing backend %s not found" : "Podpůrná vrstva pro sdílení %s nenalezena", "Sharing backend for %s not found" : "Úložiště sdílení pro %s nenalezeno", "%1$s shared »%2$s« with you and wants to add:" : "%1$s sdílí „%2$s“ a dodává:", "%1$s shared »%2$s« with you and wants to add" : "%1$s sdílí „%2$s“ a dodává", @@ -240,7 +240,7 @@ OC.L10N.register( "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Pro nápravu nastavte v souboru php.ini parametr <code>mbstring.func_overload</code> na <code>0</code>.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek znepřístupnění mnoha důležitých aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", - "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?", + "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, přesto jsou uváděny jako chybějící?", "Please ask your server administrator to restart the web server." : "Požádejte správce serveru, který využíváte o restart webového serveru.", "The required %s config variable is not configured in the config.php file." : "Požadovaná proměnná nastavení %s není v souboru s nastaveními config.php nastavena.", "Please ask your server administrator to check the Nextcloud configuration." : "Požádejte správce serveru, který využíváte, aby zkontroloval nastavení serveru.", diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json index 975de1cb0e6..f0381ab1a60 100644 --- a/lib/l10n/cs.json +++ b/lib/l10n/cs.json @@ -134,7 +134,7 @@ "Set an admin password." : "Nastavte heslo pro účet správce.", "Cannot create or write into the data directory %s" : "Nedaří se vytvořit nebo zapisovat do datového adresáře %s", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Je třeba, aby podpůrná vrstva pro sdílení %s implementovala rozhraní OCP\\Share_Backend", - "Sharing backend %s not found" : "Úložiště sdílení %s nenalezeno", + "Sharing backend %s not found" : "Podpůrná vrstva pro sdílení %s nenalezena", "Sharing backend for %s not found" : "Úložiště sdílení pro %s nenalezeno", "%1$s shared »%2$s« with you and wants to add:" : "%1$s sdílí „%2$s“ a dodává:", "%1$s shared »%2$s« with you and wants to add" : "%1$s sdílí „%2$s“ a dodává", @@ -238,7 +238,7 @@ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Pro nápravu nastavte v souboru php.ini parametr <code>mbstring.func_overload</code> na <code>0</code>.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek znepřístupnění mnoha důležitých aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", - "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?", + "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, přesto jsou uváděny jako chybějící?", "Please ask your server administrator to restart the web server." : "Požádejte správce serveru, který využíváte o restart webového serveru.", "The required %s config variable is not configured in the config.php file." : "Požadovaná proměnná nastavení %s není v souboru s nastaveními config.php nastavena.", "Please ask your server administrator to check the Nextcloud configuration." : "Požádejte správce serveru, který využíváte, aby zkontroloval nastavení serveru.", diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js index 57036bfaba2..c325c87649b 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -24,18 +24,18 @@ OC.L10N.register( "Groupware bundle" : "Paquete de software colaborativo", "Hub bundle" : "Paquete de concentradores", "Social sharing bundle" : "Paquete para compartir en redes sociais", - "PHP %s or higher is required." : "Precisase PHP %s ou superior.", - "PHP with a version lower than %s is required." : "Precisase PHP cunha versión inferior a %s.", - "%sbit or higher PHP required." : "Precisase PHP para %sbits ou superior.", + "PHP %s or higher is required." : "Precísase de PHP %s ou superior.", + "PHP with a version lower than %s is required." : "Precísase de PHP cunha versión inferior a %s.", + "%sbit or higher PHP required." : "Precísase de PHP para %s bits ou superior.", "The following architectures are supported: %s" : "Admítense as seguintes arquitecturas: %s", "The following databases are supported: %s" : "Admítense as seguintes bases de datos: %s", "The command line tool %s could not be found" : "Non foi posíbel atopar a ferramenta de liña de ordes %s", "The library %s is not available." : "Non está dispoñíbel a biblioteca %s.", - "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Precisase a biblioteca %1$s cunha versión superior a %2$s - dispoñíbel a versión %3$s.", - "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Precisase a biblioteca %1$s cunha versión inferior a %2$s - dispoñíbel a versión %3$s.", + "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Precísase da biblioteca %1$s cunha versión superior a %2$s - dispoñíbel a versión %3$s.", + "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Precísase da biblioteca %1$s cunha versión inferior a %2$s - dispoñíbel a versión %3$s.", "The following platforms are supported: %s" : "Admítense as seguintes plataformas: %s", - "Server version %s or higher is required." : "Precisase a versión %s ou superior do servidor.", - "Server version %s or lower is required." : "Precisase a versión %s ou inferior do servidor.", + "Server version %s or higher is required." : "Precísase da versión %s ou superior do servidor.", + "Server version %s or lower is required." : "Precísase da versión %s ou inferior do servidor.", "Logged in user must be an admin, a sub admin or gotten special right to access this setting" : "O usuario que accede debe ser un administrador, un subadministrador ou ter un dereito especial para acceder a esta configuración", "Logged in user must be an admin or sub admin" : "O usuario autenticado debe ser un administrador ou subadministrador", "Logged in user must be an admin" : "O usuario conectado debe ser un administrador", @@ -242,7 +242,7 @@ OC.L10N.register( "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?", "Please ask your server administrator to restart the web server." : "Pídalle á administración do seu servidor que reinicie o servidor web.", - "The required %s config variable is not configured in the config.php file." : "Precísase a variábel de configuración %s e non está configurada no ficheiro config.php.", + "The required %s config variable is not configured in the config.php file." : "Precísase da variábel de configuración %s e non está configurada no ficheiro config.php.", "Please ask your server administrator to check the Nextcloud configuration." : "Pídalle á administración do seu servidor que verifique a configuración de Nextcloud.", "Your data directory is readable by other users." : "Outros usuarios poden leer o seu directorio de datos.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida ser listado por outros usuarios.", @@ -273,9 +273,9 @@ OC.L10N.register( "Full name" : "Nome completo", "The user limit has been reached and the user was not created. Check your notifications to learn more." : "Acadouse o límite de usuarios e non se creou o usuario. Consulte as súas notificacións para obter máis información.", "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Só os seguintes caracteres están permitidos nos nomes de usuario: «a-z», «A-Z», «0-9» e «_.@-'»", - "libxml2 2.7.0 is at least required. Currently %s is installed." : "Precisase, cando menos, libxml2 2.7.0. Actualmente esta instalado %s.", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Precísase, cando menos, de libxml2 2.7.0. Actualmente esta instalado %s.", "To fix this issue update your libxml2 version and restart your web server." : "Para arranxar esta incidencia, actualice a versión de libxml2 e reinicie o servidor web. ", - "PostgreSQL >= 9 required." : "Precisase PostgreSQL >= 9.", + "PostgreSQL >= 9 required." : "Precísase de PostgreSQL >= 9.", "Please upgrade your database version." : "Anove a versión da súa base de datos", "404" : "404" }, diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index 7c6bf5ca0ea..aa8ec0bc4ee 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -22,18 +22,18 @@ "Groupware bundle" : "Paquete de software colaborativo", "Hub bundle" : "Paquete de concentradores", "Social sharing bundle" : "Paquete para compartir en redes sociais", - "PHP %s or higher is required." : "Precisase PHP %s ou superior.", - "PHP with a version lower than %s is required." : "Precisase PHP cunha versión inferior a %s.", - "%sbit or higher PHP required." : "Precisase PHP para %sbits ou superior.", + "PHP %s or higher is required." : "Precísase de PHP %s ou superior.", + "PHP with a version lower than %s is required." : "Precísase de PHP cunha versión inferior a %s.", + "%sbit or higher PHP required." : "Precísase de PHP para %s bits ou superior.", "The following architectures are supported: %s" : "Admítense as seguintes arquitecturas: %s", "The following databases are supported: %s" : "Admítense as seguintes bases de datos: %s", "The command line tool %s could not be found" : "Non foi posíbel atopar a ferramenta de liña de ordes %s", "The library %s is not available." : "Non está dispoñíbel a biblioteca %s.", - "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Precisase a biblioteca %1$s cunha versión superior a %2$s - dispoñíbel a versión %3$s.", - "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Precisase a biblioteca %1$s cunha versión inferior a %2$s - dispoñíbel a versión %3$s.", + "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Precísase da biblioteca %1$s cunha versión superior a %2$s - dispoñíbel a versión %3$s.", + "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Precísase da biblioteca %1$s cunha versión inferior a %2$s - dispoñíbel a versión %3$s.", "The following platforms are supported: %s" : "Admítense as seguintes plataformas: %s", - "Server version %s or higher is required." : "Precisase a versión %s ou superior do servidor.", - "Server version %s or lower is required." : "Precisase a versión %s ou inferior do servidor.", + "Server version %s or higher is required." : "Precísase da versión %s ou superior do servidor.", + "Server version %s or lower is required." : "Precísase da versión %s ou inferior do servidor.", "Logged in user must be an admin, a sub admin or gotten special right to access this setting" : "O usuario que accede debe ser un administrador, un subadministrador ou ter un dereito especial para acceder a esta configuración", "Logged in user must be an admin or sub admin" : "O usuario autenticado debe ser un administrador ou subadministrador", "Logged in user must be an admin" : "O usuario conectado debe ser un administrador", @@ -240,7 +240,7 @@ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?", "Please ask your server administrator to restart the web server." : "Pídalle á administración do seu servidor que reinicie o servidor web.", - "The required %s config variable is not configured in the config.php file." : "Precísase a variábel de configuración %s e non está configurada no ficheiro config.php.", + "The required %s config variable is not configured in the config.php file." : "Precísase da variábel de configuración %s e non está configurada no ficheiro config.php.", "Please ask your server administrator to check the Nextcloud configuration." : "Pídalle á administración do seu servidor que verifique a configuración de Nextcloud.", "Your data directory is readable by other users." : "Outros usuarios poden leer o seu directorio de datos.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida ser listado por outros usuarios.", @@ -271,9 +271,9 @@ "Full name" : "Nome completo", "The user limit has been reached and the user was not created. Check your notifications to learn more." : "Acadouse o límite de usuarios e non se creou o usuario. Consulte as súas notificacións para obter máis información.", "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Só os seguintes caracteres están permitidos nos nomes de usuario: «a-z», «A-Z», «0-9» e «_.@-'»", - "libxml2 2.7.0 is at least required. Currently %s is installed." : "Precisase, cando menos, libxml2 2.7.0. Actualmente esta instalado %s.", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Precísase, cando menos, de libxml2 2.7.0. Actualmente esta instalado %s.", "To fix this issue update your libxml2 version and restart your web server." : "Para arranxar esta incidencia, actualice a versión de libxml2 e reinicie o servidor web. ", - "PostgreSQL >= 9 required." : "Precisase PostgreSQL >= 9.", + "PostgreSQL >= 9 required." : "Precísase de PostgreSQL >= 9.", "Please upgrade your database version." : "Anove a versión da súa base de datos", "404" : "404" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 62fbf06d75d..3dbae410a38 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -5,6 +5,7 @@ OC.L10N.register( "This can usually be fixed by giving the web server write access to the config directory." : "Zwykle można to naprawić, nadając serwerowi WWW dostęp do zapisu do katalogu config.", "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Ale jeśli wolisz, aby plik config.php był tylko do odczytu, ustaw w nim opcję \"config_is_read_only\" na true.", "See %s" : "Zobacz %s", + "Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Aplikacja %1$s nie jest dostępna lub ma wersję niekompatybilną z tym serwerem. Sprawdź katalog aplikacji.", "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto, że przykładowa konfiguracja została skopiowana. Może to spowodować przerwanie instalacji, która nie jest wspierana. Przeczytaj dokumentację przed dokonaniem zmian w pliku config.php", "The page could not be found on the server." : "Nie znaleziono strony na serwerze.", @@ -112,6 +113,7 @@ OC.L10N.register( "Address" : "Adres", "Profile picture" : "Zdjęcie profilowe", "About" : "Informacje", + "Display name" : "Wyświetlana nazwa", "Headline" : "Nagłówek", "Organisation" : "Organizacja", "Role" : "Rola społeczna", @@ -153,6 +155,7 @@ OC.L10N.register( "%1$s shared »%2$s« with you." : "%1$s udostępnił Tobie »%2$s«.", "Click the button below to open it." : "Kliknij przycisk poniżej, aby otworzyć.", "The requested share does not exist anymore" : "Żądane udostępnienie już nie istnieje", + "The requested share comes from a disabled user" : "Żądane udostępnienie pochodzi od wyłączonego użytkownika", "The user was not created because the user limit has been reached. Check your notifications to learn more." : "Użytkownik nie został utworzony, ponieważ osiągnięto limit użytkowników. Sprawdź swoje powiadomienia, aby dowiedzieć się więcej.", "Could not find category \"%s\"" : "Nie można znaleźć kategorii \"%s\"", "Sunday" : "Niedziela", @@ -258,6 +261,14 @@ OC.L10N.register( "Storage connection error. %s" : "Błąd połączenia z magazynem. %s", "Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny", "Storage connection timeout. %s" : "Limit czasu połączenia do magazynu. %s", + "Free prompt" : "Monit bezpłatny", + "Runs an arbitrary prompt through the language model." : "Uruchamia dowolny monit w modelu języka.", + "Generate headline" : "Wygeneruj nagłówek", + "Generates a possible headline for a text." : "Generuje możliwy nagłówek tekstu.", + "Summarize" : "Podsumuj", + "Summarizes text by reducing its length without losing key information." : "Podsumowuje tekst, zmniejszając jego długość bez utraty kluczowych informacji.", + "Extract topics" : "Wyodrębnij tematy", + "Extracts topics from a text and outputs them separated by commas." : "Wyodrębnia tematy z tekstu i wyświetla je oddzielone przecinkami.", "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Pliki aplikacji %1$s nie zostały poprawnie zastąpione. Upewnij się, że jest to wersja zgodna z serwerem.", "Full name" : "Pełna nazwa", "The user limit has been reached and the user was not created. Check your notifications to learn more." : "Osiągnięto limit użytkowników i użytkownik nie został utworzony. Sprawdź swoje powiadomienia, aby dowiedzieć się więcej.", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index f09679895af..2e5188eba18 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -3,6 +3,7 @@ "This can usually be fixed by giving the web server write access to the config directory." : "Zwykle można to naprawić, nadając serwerowi WWW dostęp do zapisu do katalogu config.", "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Ale jeśli wolisz, aby plik config.php był tylko do odczytu, ustaw w nim opcję \"config_is_read_only\" na true.", "See %s" : "Zobacz %s", + "Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Aplikacja %1$s nie jest dostępna lub ma wersję niekompatybilną z tym serwerem. Sprawdź katalog aplikacji.", "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto, że przykładowa konfiguracja została skopiowana. Może to spowodować przerwanie instalacji, która nie jest wspierana. Przeczytaj dokumentację przed dokonaniem zmian w pliku config.php", "The page could not be found on the server." : "Nie znaleziono strony na serwerze.", @@ -110,6 +111,7 @@ "Address" : "Adres", "Profile picture" : "Zdjęcie profilowe", "About" : "Informacje", + "Display name" : "Wyświetlana nazwa", "Headline" : "Nagłówek", "Organisation" : "Organizacja", "Role" : "Rola społeczna", @@ -151,6 +153,7 @@ "%1$s shared »%2$s« with you." : "%1$s udostępnił Tobie »%2$s«.", "Click the button below to open it." : "Kliknij przycisk poniżej, aby otworzyć.", "The requested share does not exist anymore" : "Żądane udostępnienie już nie istnieje", + "The requested share comes from a disabled user" : "Żądane udostępnienie pochodzi od wyłączonego użytkownika", "The user was not created because the user limit has been reached. Check your notifications to learn more." : "Użytkownik nie został utworzony, ponieważ osiągnięto limit użytkowników. Sprawdź swoje powiadomienia, aby dowiedzieć się więcej.", "Could not find category \"%s\"" : "Nie można znaleźć kategorii \"%s\"", "Sunday" : "Niedziela", @@ -256,6 +259,14 @@ "Storage connection error. %s" : "Błąd połączenia z magazynem. %s", "Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny", "Storage connection timeout. %s" : "Limit czasu połączenia do magazynu. %s", + "Free prompt" : "Monit bezpłatny", + "Runs an arbitrary prompt through the language model." : "Uruchamia dowolny monit w modelu języka.", + "Generate headline" : "Wygeneruj nagłówek", + "Generates a possible headline for a text." : "Generuje możliwy nagłówek tekstu.", + "Summarize" : "Podsumuj", + "Summarizes text by reducing its length without losing key information." : "Podsumowuje tekst, zmniejszając jego długość bez utraty kluczowych informacji.", + "Extract topics" : "Wyodrębnij tematy", + "Extracts topics from a text and outputs them separated by commas." : "Wyodrębnia tematy z tekstu i wyświetla je oddzielone przecinkami.", "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Pliki aplikacji %1$s nie zostały poprawnie zastąpione. Upewnij się, że jest to wersja zgodna z serwerem.", "Full name" : "Pełna nazwa", "The user limit has been reached and the user was not created. Check your notifications to learn more." : "Osiągnięto limit użytkowników i użytkownik nie został utworzony. Sprawdź swoje powiadomienia, aby dowiedzieć się więcej.", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index d5fe9f7b3fe..4d26f0a4786 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -63,12 +63,12 @@ OC.L10N.register( "yesterday" : "dün", "_in %n day_::_in %n days_" : ["%n gün içinde","%n gün içinde"], "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"], - "next month" : "gelecek ay", - "last month" : "geçen ay", + "next month" : "sonraki ay", + "last month" : "önceki ay", "_in %n month_::_in %n months_" : ["%n ay içinde","%n ay içinde"], "_%n month ago_::_%n months ago_" : ["%n ay önce","%n ay önce"], - "next year" : "gelecek yıl", - "last year" : "geçen yıl", + "next year" : "sonraki yıl", + "last year" : "önceki yıl", "_in %n year_::_in %n years_" : ["%n yıl içinde","%n yıl içinde"], "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_in %n hour_::_in %n hours_" : ["%n saat içinde","%n saat içinde"], diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index 4c5ec5c1f08..a9582fda366 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -61,12 +61,12 @@ "yesterday" : "dün", "_in %n day_::_in %n days_" : ["%n gün içinde","%n gün içinde"], "_%n day ago_::_%n days ago_" : ["%n gün önce","%n gün önce"], - "next month" : "gelecek ay", - "last month" : "geçen ay", + "next month" : "sonraki ay", + "last month" : "önceki ay", "_in %n month_::_in %n months_" : ["%n ay içinde","%n ay içinde"], "_%n month ago_::_%n months ago_" : ["%n ay önce","%n ay önce"], - "next year" : "gelecek yıl", - "last year" : "geçen yıl", + "next year" : "sonraki yıl", + "last year" : "önceki yıl", "_in %n year_::_in %n years_" : ["%n yıl içinde","%n yıl içinde"], "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_in %n hour_::_in %n hours_" : ["%n saat içinde","%n saat içinde"], diff --git a/lib/private/AppFramework/Http/Request.php b/lib/private/AppFramework/Http/Request.php index 52abb909b60..fdc475bd165 100644 --- a/lib/private/AppFramework/Http/Request.php +++ b/lib/private/AppFramework/Http/Request.php @@ -597,9 +597,11 @@ class Request implements \ArrayAccess, \Countable, IRequest { // only have one default, so we cannot ship an insecure product out of the box ]); - foreach ($forwardedForHeaders as $header) { + // Read the x-forwarded-for headers and values in reverse order as per + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#selecting_an_ip_address + foreach (array_reverse($forwardedForHeaders) as $header) { if (isset($this->server[$header])) { - foreach (explode(',', $this->server[$header]) as $IP) { + foreach (array_reverse(explode(',', $this->server[$header])) as $IP) { $IP = trim($IP); // remove brackets from IPv6 addresses @@ -607,6 +609,10 @@ class Request implements \ArrayAccess, \Countable, IRequest { $IP = substr($IP, 1, -1); } + if ($this->isTrustedProxy($trustedProxies, $IP)) { + continue; + } + if (filter_var($IP, FILTER_VALIDATE_IP) !== false) { return $IP; } diff --git a/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php b/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php index 19d80218562..66bb9df8271 100644 --- a/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php +++ b/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php @@ -25,8 +25,6 @@ declare(strict_types=1); */ namespace OC\Authentication\TwoFactorAuth\Db; -use Doctrine\DBAL\Exception\UniqueConstraintViolationException; -use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use function array_map; @@ -70,25 +68,24 @@ class ProviderUserAssignmentDao { * Persist a new/updated (provider_id, uid, enabled) tuple */ public function persist(string $providerId, string $uid, int $enabled) { - $qb = $this->conn->getQueryBuilder(); - - try { - // Insert a new entry - $insertQuery = $qb->insert(self::TABLE_NAME)->values([ - 'provider_id' => $qb->createNamedParameter($providerId), - 'uid' => $qb->createNamedParameter($uid), - 'enabled' => $qb->createNamedParameter($enabled, IQueryBuilder::PARAM_INT), - ]); - - $insertQuery->execute(); - } catch (UniqueConstraintViolationException $ex) { - // There is already an entry -> update it - $updateQuery = $qb->update(self::TABLE_NAME) - ->set('enabled', $qb->createNamedParameter($enabled)) - ->where($qb->expr()->eq('provider_id', $qb->createNamedParameter($providerId))) - ->andWhere($qb->expr()->eq('uid', $qb->createNamedParameter($uid))); - $updateQuery->execute(); + $conn = $this->conn; + + // Insert a new entry + if ($conn->insertIgnoreConflict(self::TABLE_NAME, [ + 'provider_id' => $providerId, + 'uid' => $uid, + 'enabled' => $enabled, + ])) { + return; } + + // There is already an entry -> update it + $qb = $conn->getQueryBuilder(); + $updateQuery = $qb->update(self::TABLE_NAME) + ->set('enabled', $qb->createNamedParameter($enabled)) + ->where($qb->expr()->eq('provider_id', $qb->createNamedParameter($providerId))) + ->andWhere($qb->expr()->eq('uid', $qb->createNamedParameter($uid))); + $updateQuery->executeStatement(); } /** diff --git a/lib/private/BackgroundJob/JobList.php b/lib/private/BackgroundJob/JobList.php index 36cccbd4eab..ae214f69509 100644 --- a/lib/private/BackgroundJob/JobList.php +++ b/lib/private/BackgroundJob/JobList.php @@ -406,7 +406,7 @@ class JobList implements IJobList { $query = $this->connection->getQueryBuilder(); $query->select('*') ->from('jobs') - ->where($query->expr()->neq('reserved_at', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT))) + ->where($query->expr()->gt('reserved_at', $query->createNamedParameter($this->timeFactory->getTime() - 6 * 3600, IQueryBuilder::PARAM_INT))) ->setMaxResults(1); if ($className !== null) { diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index 43ed68f5616..039596a8fba 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -866,7 +866,7 @@ class QueryBuilder implements IQueryBuilder { public function where(...$predicates) { if ($this->getQueryPart('where') !== null && $this->systemConfig->getValue('debug', false)) { // Only logging a warning, not throwing for now. - $e = new QueryException('Using where() on non-empty WHERE part, please verify it is intentional to not call whereAnd() or whereOr() instead. Otherwise consider creating a new query builder object or call resetQueryPart(\'where\') first.'); + $e = new QueryException('Using where() on non-empty WHERE part, please verify it is intentional to not call andWhere() or orWhere() instead. Otherwise consider creating a new query builder object or call resetQueryPart(\'where\') first.'); $this->logger->warning($e->getMessage(), ['exception' => $e]); } diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index e9c52f11936..217e1a1a2ff 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -191,6 +191,11 @@ trait S3ObjectTrait { } public function copyObject($from, $to, array $options = []) { + $sourceMetadata = $this->getConnection()->headObject([ + 'Bucket' => $this->getBucket(), + 'Key' => $from, + ] + $this->getSSECParameters()); + $copy = new MultipartCopy($this->getConnection(), [ "source_bucket" => $this->getBucket(), "source_key" => $from @@ -198,7 +203,8 @@ trait S3ObjectTrait { "bucket" => $this->getBucket(), "key" => $to, "acl" => "private", - "params" => $this->getSSECParameters() + $this->getSSECParameters(true) + "params" => $this->getSSECParameters() + $this->getSSECParameters(true), + "source_metadata" => $sourceMetadata ], $options)); $copy->copy(); } diff --git a/lib/private/Log.php b/lib/private/Log.php index ff13e039024..019d1427fcb 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -338,7 +338,7 @@ class Log implements ILogger, IDataLogger { unset($data['app']); unset($data['level']); $data = array_merge($serializer->serializeException($exception), $data); - $data = $this->interpolateMessage($data, $context['message'] ?? '--', 'CustomMessage'); + $data = $this->interpolateMessage($data, isset($context['message']) && $context['message'] !== '' ? $context['message'] : ('Exception thrown: ' . get_class($exception)), 'CustomMessage'); array_walk($context, [$this->normalizer, 'format']); diff --git a/lib/private/Preview/Imaginary.php b/lib/private/Preview/Imaginary.php index 16b16470078..ba5bd25a018 100644 --- a/lib/private/Preview/Imaginary.php +++ b/lib/private/Preview/Imaginary.php @@ -149,7 +149,7 @@ class Imaginary extends ProviderV2 { 'timeout' => 120, 'connect_timeout' => 3, ]); - } catch (\Exception $e) { + } catch (\Throwable $e) { $this->logger->info('Imaginary preview generation failed: ' . $e->getMessage(), [ 'exception' => $e, ]); diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index ccc82085d2c..b607a6441a4 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -781,7 +781,7 @@ class Session implements IUserSession, Emitter { try { $dbToken = $this->tokenProvider->getToken($token); } catch (InvalidTokenException $ex) { - $this->logger->warning('Session token is invalid because it does not exist', [ + $this->logger->debug('Session token is invalid because it does not exist', [ 'app' => 'core', 'user' => $user, 'exception' => $ex, @@ -914,9 +914,10 @@ class Session implements IUserSession, Emitter { ]); return false; } catch (InvalidTokenException $ex) { - $this->logger->error('Renewing session token failed', [ + $this->logger->error('Renewing session token failed: ' . $ex->getMessage(), [ 'app' => 'core', 'user' => $uid, + 'exception' => $ex, ]); return false; } diff --git a/lib/public/BackgroundJob/IJobList.php b/lib/public/BackgroundJob/IJobList.php index 65e2f5b6250..a0f32cb0359 100644 --- a/lib/public/BackgroundJob/IJobList.php +++ b/lib/public/BackgroundJob/IJobList.php @@ -147,7 +147,8 @@ interface IJobList { public function resetBackgroundJob(IJob $job): void; /** - * Checks whether a job of the passed class is reserved to run + * Checks whether a job of the passed class was reserved to run + * in the last 6h * * @param string|null $className * @return bool diff --git a/tests/lib/AppFramework/Http/RequestTest.php b/tests/lib/AppFramework/Http/RequestTest.php index 839c7ad4338..e042d933871 100644 --- a/tests/lib/AppFramework/Http/RequestTest.php +++ b/tests/lib/AppFramework/Http/RequestTest.php @@ -628,7 +628,33 @@ class RequestTest extends \Test\TestCase { $this->stream ); - $this->assertSame('10.4.0.5', $request->getRemoteAddress()); + $this->assertSame('10.4.0.4', $request->getRemoteAddress()); + } + + public function testGetRemoteAddressWithMultipleTrustedRemotes() { + $this->config + ->expects($this->exactly(2)) + ->method('getSystemValue') + ->willReturnMap([ + ['trusted_proxies', [], ['10.0.0.2', '::1']], + ['forwarded_for_headers', ['HTTP_X_FORWARDED_FOR'], ['HTTP_X_FORWARDED']], + ]); + + $request = new Request( + [ + 'server' => [ + 'REMOTE_ADDR' => '10.0.0.2', + 'HTTP_X_FORWARDED' => '10.4.0.5, 10.4.0.4, ::1', + 'HTTP_X_FORWARDED_FOR' => '192.168.0.233' + ], + ], + $this->requestId, + $this->config, + $this->csrfTokenManager, + $this->stream + ); + + $this->assertSame('10.4.0.4', $request->getRemoteAddress()); } public function testGetRemoteAddressIPv6WithSingleTrustedRemote() { @@ -657,7 +683,7 @@ class RequestTest extends \Test\TestCase { $this->stream ); - $this->assertSame('10.4.0.5', $request->getRemoteAddress()); + $this->assertSame('10.4.0.4', $request->getRemoteAddress()); } public function testGetRemoteAddressVerifyPriorityHeader() { @@ -670,9 +696,9 @@ class RequestTest extends \Test\TestCase { )-> willReturnOnConsecutiveCalls( ['10.0.0.2'], [ - 'HTTP_CLIENT_IP', - 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', + 'HTTP_X_FORWARDED_FOR', + 'HTTP_CLIENT_IP', ], ); @@ -703,9 +729,9 @@ class RequestTest extends \Test\TestCase { )-> willReturnOnConsecutiveCalls( ['2001:db8:85a3:8d3:1319:8a2e:370:7348'], [ - 'HTTP_CLIENT_IP', + 'HTTP_X_FORWARDED', 'HTTP_X_FORWARDED_FOR', - 'HTTP_X_FORWARDED' + 'HTTP_CLIENT_IP', ], ); |