diff options
69 files changed, 603 insertions, 170 deletions
diff --git a/apps/accessibility/l10n/ca.js b/apps/accessibility/l10n/ca.js new file mode 100644 index 00000000000..8645ec52e8c --- /dev/null +++ b/apps/accessibility/l10n/ca.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "accessibility", + { + "High contrast theme" : "Tema de contrast alt", + "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un tema de contrast alt per facilitar la navegació. La qualitat visual es reduirà però s'incrementarà la claredat.", + "Dark theme (beta)" : "Tema fosc (beta)", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un tema fosc per ajudar els ulls reduint la lluminositat i la brillantor totals. És sota desenvolupament, de manera que si us plau informeu de les errades que pugueu trobar. ", + "Dyslexia font" : "Font Dyslexia", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic és una font/tipus dissenyada per mitigar alguns dels errors comuns de lectura causats per la dislexia.", + "Accessibility" : "Accessibilitat", + "Accessibility options for nextcloud" : "Opcions d'accessibilitat per nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Proveeix múltiples opcions d'accessibilitats per facilitar-vos l'ús de Nextcloud", + "Web Content Accessibility Guidelines" : "Pautes d'accessibilitat de continguts web", + "our issue tracker" : "el nostre seguidor de problemes", + "our design team" : "el nostre equip de disseny", + "Enable" : "Activa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/accessibility/l10n/ca.json b/apps/accessibility/l10n/ca.json new file mode 100644 index 00000000000..73a7ddaba16 --- /dev/null +++ b/apps/accessibility/l10n/ca.json @@ -0,0 +1,16 @@ +{ "translations": { + "High contrast theme" : "Tema de contrast alt", + "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un tema de contrast alt per facilitar la navegació. La qualitat visual es reduirà però s'incrementarà la claredat.", + "Dark theme (beta)" : "Tema fosc (beta)", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un tema fosc per ajudar els ulls reduint la lluminositat i la brillantor totals. És sota desenvolupament, de manera que si us plau informeu de les errades que pugueu trobar. ", + "Dyslexia font" : "Font Dyslexia", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic és una font/tipus dissenyada per mitigar alguns dels errors comuns de lectura causats per la dislexia.", + "Accessibility" : "Accessibilitat", + "Accessibility options for nextcloud" : "Opcions d'accessibilitat per nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Proveeix múltiples opcions d'accessibilitats per facilitar-vos l'ús de Nextcloud", + "Web Content Accessibility Guidelines" : "Pautes d'accessibilitat de continguts web", + "our issue tracker" : "el nostre seguidor de problemes", + "our design team" : "el nostre equip de disseny", + "Enable" : "Activa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/accessibility/l10n/es.js b/apps/accessibility/l10n/es.js index 005a83e94d9..2297b40bf7f 100644 --- a/apps/accessibility/l10n/es.js +++ b/apps/accessibility/l10n/es.js @@ -5,8 +5,13 @@ OC.L10N.register( "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tema de alto contraste para facilitar la navegación. Se reducirá la calidad visual pero se aumentará la claridad.", "Dark theme (beta)" : "Tema oscuro (beta)", "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación redeciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, por favor comunique cualquier problema que encuentre.", + "Dyslexia font" : "Tipo de letra para dislexia", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra/fuente libre diseñado para mitigar algunos de los errores de lectura comunes causados por la dislexia.", "Accessibility" : "Accesibilidad", "Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Ofrece múltiples opciones de accesibilidad para facilitarte el uso de Nextcloud", + "Web Content Accessibility Guidelines" : "Guía de estilo de accesibilidad del contenido web", + "our issue tracker" : "nuestro rastreador de problemas", "our design team" : "nuestro equipo de diseño", "Enable" : "Activa" }, diff --git a/apps/accessibility/l10n/es.json b/apps/accessibility/l10n/es.json index 258436eafcb..166f56b022f 100644 --- a/apps/accessibility/l10n/es.json +++ b/apps/accessibility/l10n/es.json @@ -3,8 +3,13 @@ "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Tema de alto contraste para facilitar la navegación. Se reducirá la calidad visual pero se aumentará la claridad.", "Dark theme (beta)" : "Tema oscuro (beta)", "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación redeciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, por favor comunique cualquier problema que encuentre.", + "Dyslexia font" : "Tipo de letra para dislexia", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra/fuente libre diseñado para mitigar algunos de los errores de lectura comunes causados por la dislexia.", "Accessibility" : "Accesibilidad", "Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Ofrece múltiples opciones de accesibilidad para facilitarte el uso de Nextcloud", + "Web Content Accessibility Guidelines" : "Guía de estilo de accesibilidad del contenido web", + "our issue tracker" : "nuestro rastreador de problemas", "our design team" : "nuestro equipo de diseño", "Enable" : "Activa" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/accessibility/l10n/nl.js b/apps/accessibility/l10n/nl.js new file mode 100644 index 00000000000..0b42b55e9f3 --- /dev/null +++ b/apps/accessibility/l10n/nl.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "accessibility", + { + "High contrast theme" : "Hoog contrast theme", + "Dark theme (beta)" : "Donker theme (beta)", + "Dyslexia font" : "Dyslexia font", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic is een vrij lettertype/font dat is ontwikkeld om de meest voorkomende leesfouten te voorkomen die worden veroorzaakt door dyslexie.", + "Accessibility" : "Toegankelijkheid", + "Accessibility options for nextcloud" : "Toegankelijkheidsopties voor nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Biedt meerdere toegankelijkheidsopties voor het makkelijk gebruiken van Nextcloud", + "Web Content Accessibility Guidelines" : "Web Content toegankelijkheidsrichtlijnen", + "our issue tracker" : "onze issue tracker", + "our design team" : "ons ontwerpteam", + "Enable" : "Inschakelen" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/accessibility/l10n/nl.json b/apps/accessibility/l10n/nl.json new file mode 100644 index 00000000000..c56bd773ffd --- /dev/null +++ b/apps/accessibility/l10n/nl.json @@ -0,0 +1,14 @@ +{ "translations": { + "High contrast theme" : "Hoog contrast theme", + "Dark theme (beta)" : "Donker theme (beta)", + "Dyslexia font" : "Dyslexia font", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic is een vrij lettertype/font dat is ontwikkeld om de meest voorkomende leesfouten te voorkomen die worden veroorzaakt door dyslexie.", + "Accessibility" : "Toegankelijkheid", + "Accessibility options for nextcloud" : "Toegankelijkheidsopties voor nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Biedt meerdere toegankelijkheidsopties voor het makkelijk gebruiken van Nextcloud", + "Web Content Accessibility Guidelines" : "Web Content toegankelijkheidsrichtlijnen", + "our issue tracker" : "onze issue tracker", + "our design team" : "ons ontwerpteam", + "Enable" : "Inschakelen" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/accessibility/l10n/sv.js b/apps/accessibility/l10n/sv.js index b3baff5d37b..e5745e16aaf 100644 --- a/apps/accessibility/l10n/sv.js +++ b/apps/accessibility/l10n/sv.js @@ -9,6 +9,7 @@ OC.L10N.register( "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic är ett fritt typsnitt/font som är utformad för att mildra några av de vanliga läsfel som orsakas av dyslexi.", "Accessibility" : "Tillgänglighet", "Accessibility options for nextcloud" : "Tillgänglighetsalternativ för Nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Ger flera åtkomstalternativ för att underlätta din användning av Nextcloud", "Web Content Accessibility Guidelines" : "Riktlinjer för webbinnehåll", "our issue tracker" : "vår felrapportering", "our design team" : "vårt designteam", diff --git a/apps/accessibility/l10n/sv.json b/apps/accessibility/l10n/sv.json index f86e086bf8d..d14baf6c5a7 100644 --- a/apps/accessibility/l10n/sv.json +++ b/apps/accessibility/l10n/sv.json @@ -7,6 +7,7 @@ "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic är ett fritt typsnitt/font som är utformad för att mildra några av de vanliga läsfel som orsakas av dyslexi.", "Accessibility" : "Tillgänglighet", "Accessibility options for nextcloud" : "Tillgänglighetsalternativ för Nextcloud", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Ger flera åtkomstalternativ för att underlätta din användning av Nextcloud", "Web Content Accessibility Guidelines" : "Riktlinjer för webbinnehåll", "our issue tracker" : "vår felrapportering", "our design team" : "vårt designteam", diff --git a/apps/accessibility/l10n/zh_CN.js b/apps/accessibility/l10n/zh_CN.js new file mode 100644 index 00000000000..b213bf2e112 --- /dev/null +++ b/apps/accessibility/l10n/zh_CN.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "accessibility", + { + "High contrast theme" : "高对比度主题", + "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "便于您浏览的高对比度主题。图像质量会下降但清晰度会提升。", + "Dark theme (beta)" : "暗色主题(beta)", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的暗色主题。它仍在开发中,所以请报告您可能遇到的问题。", + "Dyslexia font" : "阅读障碍字体", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic是一款免费的字样/字体,这款字体的设计目的是缓解由阅读障碍引起的一些常见阅读错误。", + "Accessibility" : "易用性", + "Accessibility options for nextcloud" : "nextcloud的易用性选项", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "提供多种易用性选项以便于您使用Nextcloud", + "Web Content Accessibility Guidelines" : "万维网内容易用性指导原则", + "our issue tracker" : "我们的问题跟踪", + "our design team" : "我们的设计团队", + "Enable" : "启用" +}, +"nplurals=1; plural=0;"); diff --git a/apps/accessibility/l10n/zh_CN.json b/apps/accessibility/l10n/zh_CN.json new file mode 100644 index 00000000000..6018b45fbb1 --- /dev/null +++ b/apps/accessibility/l10n/zh_CN.json @@ -0,0 +1,16 @@ +{ "translations": { + "High contrast theme" : "高对比度主题", + "A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "便于您浏览的高对比度主题。图像质量会下降但清晰度会提升。", + "Dark theme (beta)" : "暗色主题(beta)", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的暗色主题。它仍在开发中,所以请报告您可能遇到的问题。", + "Dyslexia font" : "阅读障碍字体", + "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic是一款免费的字样/字体,这款字体的设计目的是缓解由阅读障碍引起的一些常见阅读错误。", + "Accessibility" : "易用性", + "Accessibility options for nextcloud" : "nextcloud的易用性选项", + "Provides multiple accessibilities options to ease your use of Nextcloud" : "提供多种易用性选项以便于您使用Nextcloud", + "Web Content Accessibility Guidelines" : "万维网内容易用性指导原则", + "our issue tracker" : "我们的问题跟踪", + "our design team" : "我们的设计团队", + "Enable" : "启用" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/comments/l10n/el.js b/apps/comments/l10n/el.js index 8089be68b73..eb8a84250cc 100644 --- a/apps/comments/l10n/el.js +++ b/apps/comments/l10n/el.js @@ -10,7 +10,9 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s", "{author} commented on {file}" : "Ο {author} σχολίασε στο {file}", "<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί", "{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”", + "Files app plugin to add comments to files" : "Επέκταση της εφαρμογής αρχείων που επιτρέπει την προσθήκη σχολίων σε αρχεία.", "Edit comment" : "Επεξεργασία σχολίου", "Delete comment" : "Διαγραφή σχολίου", "New comment …" : "Νέο σχόλιο ...", @@ -26,6 +28,7 @@ OC.L10N.register( "Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου", "_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"], "Comment" : "Σχόλιο", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο \"%s\", σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί", "%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/el.json b/apps/comments/l10n/el.json index 4ad44c99c5e..94e62bf9501 100644 --- a/apps/comments/l10n/el.json +++ b/apps/comments/l10n/el.json @@ -8,7 +8,9 @@ "%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s", "{author} commented on {file}" : "Ο {author} σχολίασε στο {file}", "<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί", "{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”", + "Files app plugin to add comments to files" : "Επέκταση της εφαρμογής αρχείων που επιτρέπει την προσθήκη σχολίων σε αρχεία.", "Edit comment" : "Επεξεργασία σχολίου", "Delete comment" : "Διαγραφή σχολίου", "New comment …" : "Νέο σχόλιο ...", @@ -24,6 +26,7 @@ "Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου", "_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"], "Comment" : "Σχόλιο", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο \"%s\", σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί", "%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/zh_CN.js b/apps/dav/l10n/zh_CN.js index 8997099b0ba..2d2cda6977f 100644 --- a/apps/dav/l10n/zh_CN.js +++ b/apps/dav/l10n/zh_CN.js @@ -44,9 +44,13 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "日历中<strong>事件</strong>已经修改", "A calendar <strong>todo</strong> was modified" : "列表中<strong>待办事项</strong>已经修改", "Contact birthdays" : "联系人生日", + "%1$s via %2$s" : "%1$s 通过 %2$s", "Invitation canceled" : "邀请已取消", "Hello %s," : "您好,%s,", + "The meeting »%1$s« with %2$s was canceled." : "与%2$s的会议 »%1$s« 已取消。", "Invitation updated" : "邀请已更新", + "The meeting »%1$s« with %2$s was updated." : "与%2$s的会议 »%1$s« 已更新。", + "%1$s invited you to »%2$s«" : "%1$s 邀请您加入 »%2$s«", "When:" : "时间:", "Where:" : "地点:", "Description:" : "描述:", @@ -54,18 +58,33 @@ OC.L10N.register( "Accept" : "接受", "Decline" : "拒绝", "More options …" : "更多选项", + "More options at %s" : "在%s的更多选项", "Contacts" : "联系人", + "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "您的%s 需要配置使用HTTPS以在iOS/macOS中使用CalDAV和CardDAV。", "Configures a CalDAV account" : "设置一个 CalDAV 账户", "Configures a CardDAV account" : "设置一个 CardDAV 账户", "WebDAV" : "WebDAV", + "WebDAV endpoint" : "WebDAV端点", "Technical details" : "技术细节", "Remote Address: %s" : "远程地址:%s", "Request ID: %s" : "请求 ID:%s", + "There was an error updating your attendance status." : "更新您的出席状态时出错。", + "Please contact the organizer directly." : "请直接联系组织者。", + "Are you accepting the invitation?" : "您是否接受邀请?", + "Tentative" : "暂定", "Save" : "保存", + "Your attendance was updated successfully." : "您的出席状态更新成功。", + "Calendar server" : "日历服务器", + "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "也安装 {calendarappstoreopen}日历应用{linkclose},或者 {calendardocopen}连接您的桌面和移动端同步日历 ↗{linkclose}。", "Send invitations to attendees" : "向参与者发送邀请", + "Please make sure to properly set up {emailopen}the email server{linkclose}." : "请确保正确设置 {emailopen}邮件服务器{linkclose}。", "Automatically generate a birthday calendar" : "自动生成生日日历", "Birthday calendars will be generated by a background job." : "生日日历将由后台作业生成。", "Hence they will not be available immediately after enabling but will show up after some time." : "因此,它们在启用后不会立即可用,但会在一段时间后显示出来。", + "%s via %s" : "%s通过%s", + "The meeting »%s« with %s was canceled." : "与%s的会议 »%s« 已取消。", + "The meeting »%s« with %s was updated." : "与%s的会议 »%s« 已更新。", + "%s invited you to »%s«" : "%s 邀请您加入 »%s«", "CalDAV server" : "日历服务", "Please make sure to properly set up the email settings above." : "请确保正确设置上面的电子邮件设置。" }, diff --git a/apps/dav/l10n/zh_CN.json b/apps/dav/l10n/zh_CN.json index ef357f7b03a..7fa4881040b 100644 --- a/apps/dav/l10n/zh_CN.json +++ b/apps/dav/l10n/zh_CN.json @@ -42,9 +42,13 @@ "A calendar <strong>event</strong> was modified" : "日历中<strong>事件</strong>已经修改", "A calendar <strong>todo</strong> was modified" : "列表中<strong>待办事项</strong>已经修改", "Contact birthdays" : "联系人生日", + "%1$s via %2$s" : "%1$s 通过 %2$s", "Invitation canceled" : "邀请已取消", "Hello %s," : "您好,%s,", + "The meeting »%1$s« with %2$s was canceled." : "与%2$s的会议 »%1$s« 已取消。", "Invitation updated" : "邀请已更新", + "The meeting »%1$s« with %2$s was updated." : "与%2$s的会议 »%1$s« 已更新。", + "%1$s invited you to »%2$s«" : "%1$s 邀请您加入 »%2$s«", "When:" : "时间:", "Where:" : "地点:", "Description:" : "描述:", @@ -52,18 +56,33 @@ "Accept" : "接受", "Decline" : "拒绝", "More options …" : "更多选项", + "More options at %s" : "在%s的更多选项", "Contacts" : "联系人", + "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "您的%s 需要配置使用HTTPS以在iOS/macOS中使用CalDAV和CardDAV。", "Configures a CalDAV account" : "设置一个 CalDAV 账户", "Configures a CardDAV account" : "设置一个 CardDAV 账户", "WebDAV" : "WebDAV", + "WebDAV endpoint" : "WebDAV端点", "Technical details" : "技术细节", "Remote Address: %s" : "远程地址:%s", "Request ID: %s" : "请求 ID:%s", + "There was an error updating your attendance status." : "更新您的出席状态时出错。", + "Please contact the organizer directly." : "请直接联系组织者。", + "Are you accepting the invitation?" : "您是否接受邀请?", + "Tentative" : "暂定", "Save" : "保存", + "Your attendance was updated successfully." : "您的出席状态更新成功。", + "Calendar server" : "日历服务器", + "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "也安装 {calendarappstoreopen}日历应用{linkclose},或者 {calendardocopen}连接您的桌面和移动端同步日历 ↗{linkclose}。", "Send invitations to attendees" : "向参与者发送邀请", + "Please make sure to properly set up {emailopen}the email server{linkclose}." : "请确保正确设置 {emailopen}邮件服务器{linkclose}。", "Automatically generate a birthday calendar" : "自动生成生日日历", "Birthday calendars will be generated by a background job." : "生日日历将由后台作业生成。", "Hence they will not be available immediately after enabling but will show up after some time." : "因此,它们在启用后不会立即可用,但会在一段时间后显示出来。", + "%s via %s" : "%s通过%s", + "The meeting »%s« with %s was canceled." : "与%s的会议 »%s« 已取消。", + "The meeting »%s« with %s was updated." : "与%s的会议 »%s« 已更新。", + "%s invited you to »%s«" : "%s 邀请您加入 »%s«", "CalDAV server" : "日历服务", "Please make sure to properly set up the email settings above." : "请确保正确设置上面的电子邮件设置。" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/apps/federatedfilesharing/l10n/zh_CN.js b/apps/federatedfilesharing/l10n/zh_CN.js index 3e4da36a841..72944a3f9ed 100644 --- a/apps/federatedfilesharing/l10n/zh_CN.js +++ b/apps/federatedfilesharing/l10n/zh_CN.js @@ -17,8 +17,12 @@ OC.L10N.register( "Couldn't establish a federated share." : "无法建立一个远程共享", "Couldn't establish a federated share, maybe the password was wrong." : "无法建立共享,可能密码是错误的。", "Federated Share request sent, you will receive an invitation. Check your notifications." : "共享协作请求发送成功!您将收到邀请。注意留意您的通知提醒。", + "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "无法建立联合共享,可能是要联合的服务器版本太旧(Nextcloud <= 9)。", + "It is not allowed to send federated group shares from this server." : "不允许从此服务器发送联合分组共享。", + "Sharing %1$s failed, because this item is already shared with %2$s" : "共享 %1$s 失败,因为该项已经共享给 %2$s", "Not allowed to create a federated share with the same user" : "不能给您自己共享文件", "File is already shared with %s" : "文件已经共享与 %s", + "Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "共享 %1$s 失败,无法找到 %2$s,可能该服务器当前无法访问或者使用了自签名证书。", "Could not find share" : "没有发现共享", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "您收到“%3$s\"做为远程共享从”%1$s(代表\"%2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "您得到 {share} 是从 {user} 做为远程共享(代替 {behalf} )", @@ -30,14 +34,18 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "通过我的 #Nextcloud 联合云 ID 与我共享", "Sharing" : "共享", "Federated file sharing" : "联合文件共享", + "Provide federated file sharing across servers" : "在服务器间提供联合文件共享", "Federated Cloud Sharing" : "联合云共享", "Open documentation" : "打开文档", "Adjust how people can share between servers." : "调整人们如何在服务器之间共享。", "Allow users on this server to send shares to other servers" : "允许用户共享文件给其他服务器上的用户", "Allow users on this server to receive shares from other servers" : "允许用户从其他服务器接收共享", + "Allow users on this server to send shares to groups on other servers" : "允许此服务器上的用户向其他服务器上的分组发送共享", + "Allow users on this server to receive group shares from other servers" : "允许此服务器上的用户接收其他服务器的分组共享", "Search global and public address book for users" : "在全局和公开地址簿中寻找用户", "Allow users to publish their data to a global and public address book" : "允许用户将其数据发布到全球和公共通讯录", "Federated Cloud" : "联合云", + "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "您可以和使用了Nextcloud服务器或其他兼容Open Cloud Mesh(OCM)的服务器和服务的任何人共享!只需将他们的联合云 ID 放在共享对话框中。联合云 ID 看起来像 person@cloud.example.com", "Your Federated Cloud ID:" : "您的联合云 ID:", "Share it so your friends can share files with you:" : "使用共享,以便您的朋友可以与您共享文件:", "Add to your website" : "添加到您的网站", diff --git a/apps/federatedfilesharing/l10n/zh_CN.json b/apps/federatedfilesharing/l10n/zh_CN.json index ea8929b883d..385e3100b1b 100644 --- a/apps/federatedfilesharing/l10n/zh_CN.json +++ b/apps/federatedfilesharing/l10n/zh_CN.json @@ -15,8 +15,12 @@ "Couldn't establish a federated share." : "无法建立一个远程共享", "Couldn't establish a federated share, maybe the password was wrong." : "无法建立共享,可能密码是错误的。", "Federated Share request sent, you will receive an invitation. Check your notifications." : "共享协作请求发送成功!您将收到邀请。注意留意您的通知提醒。", + "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "无法建立联合共享,可能是要联合的服务器版本太旧(Nextcloud <= 9)。", + "It is not allowed to send federated group shares from this server." : "不允许从此服务器发送联合分组共享。", + "Sharing %1$s failed, because this item is already shared with %2$s" : "共享 %1$s 失败,因为该项已经共享给 %2$s", "Not allowed to create a federated share with the same user" : "不能给您自己共享文件", "File is already shared with %s" : "文件已经共享与 %s", + "Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "共享 %1$s 失败,无法找到 %2$s,可能该服务器当前无法访问或者使用了自签名证书。", "Could not find share" : "没有发现共享", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "您收到“%3$s\"做为远程共享从”%1$s(代表\"%2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "您得到 {share} 是从 {user} 做为远程共享(代替 {behalf} )", @@ -28,14 +32,18 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "通过我的 #Nextcloud 联合云 ID 与我共享", "Sharing" : "共享", "Federated file sharing" : "联合文件共享", + "Provide federated file sharing across servers" : "在服务器间提供联合文件共享", "Federated Cloud Sharing" : "联合云共享", "Open documentation" : "打开文档", "Adjust how people can share between servers." : "调整人们如何在服务器之间共享。", "Allow users on this server to send shares to other servers" : "允许用户共享文件给其他服务器上的用户", "Allow users on this server to receive shares from other servers" : "允许用户从其他服务器接收共享", + "Allow users on this server to send shares to groups on other servers" : "允许此服务器上的用户向其他服务器上的分组发送共享", + "Allow users on this server to receive group shares from other servers" : "允许此服务器上的用户接收其他服务器的分组共享", "Search global and public address book for users" : "在全局和公开地址簿中寻找用户", "Allow users to publish their data to a global and public address book" : "允许用户将其数据发布到全球和公共通讯录", "Federated Cloud" : "联合云", + "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "您可以和使用了Nextcloud服务器或其他兼容Open Cloud Mesh(OCM)的服务器和服务的任何人共享!只需将他们的联合云 ID 放在共享对话框中。联合云 ID 看起来像 person@cloud.example.com", "Your Federated Cloud ID:" : "您的联合云 ID:", "Share it so your friends can share files with you:" : "使用共享,以便您的朋友可以与您共享文件:", "Add to your website" : "添加到您的网站", diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js index 141135d4d62..db76901d3ac 100644 --- a/apps/files_sharing/l10n/eo.js +++ b/apps/files_sharing/l10n/eo.js @@ -111,6 +111,10 @@ OC.L10N.register( "Share API is disabled" : "Kunhavo-API estas malebligita", "File sharing" : "Kunhavigo de dosieroj", "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.", + "Add to a collection" : "Aldoni al kolekto", + "Details" : "Detaloj", + "Rename collection" : "Alinomi kolekton", + "file" : "dosiero", "Share" : "Kunhavigi", "Sharing" : "Kunhavigo", "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo", diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json index d8fb87b5778..24a2f86aa8a 100644 --- a/apps/files_sharing/l10n/eo.json +++ b/apps/files_sharing/l10n/eo.json @@ -109,6 +109,10 @@ "Share API is disabled" : "Kunhavo-API estas malebligita", "File sharing" : "Kunhavigo de dosieroj", "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.", + "Add to a collection" : "Aldoni al kolekto", + "Details" : "Detaloj", + "Rename collection" : "Alinomi kolekton", + "file" : "dosiero", "Share" : "Kunhavigi", "Sharing" : "Kunhavigo", "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo", diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index 447998c7be2..00c24cdb446 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -111,6 +111,10 @@ OC.L10N.register( "Share API is disabled" : "共享 API 已被禁用", "File sharing" : "文件共享", "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "这个应用程序允许用户在 Nextcloud 内部共享文件。如果启用,管理员能够选择哪个组可以共享文件。然后,可用的用户能够共享文件和文件夹给 Nextcloud 中的其他用户和组。另外,如果管理员启用了共享链接功能,能够使用外部链接将文件共享给 Nextcloud 之外的其他用户。管理员也可以强制设置密码,过期日期,并且可以通过共享链接启用服务器到服务器的共享,以及从移动设备共享。\n关闭该功能将删除服务器上所有共享接收者以用同步客户端和移动应用上的共享文件和文件夹。更多信息可查阅 Nextcloud 文档。", + "Add to a collection" : "添加到专辑", + "Details" : "详情", + "Rename collection" : "重命名专辑", + "file" : "文件", "Share" : "共享", "Sharing" : "共享", "No entries found in this folder" : "此文件夹中无项目", diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 4aedabe343b..031a6f71c33 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -109,6 +109,10 @@ "Share API is disabled" : "共享 API 已被禁用", "File sharing" : "文件共享", "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "这个应用程序允许用户在 Nextcloud 内部共享文件。如果启用,管理员能够选择哪个组可以共享文件。然后,可用的用户能够共享文件和文件夹给 Nextcloud 中的其他用户和组。另外,如果管理员启用了共享链接功能,能够使用外部链接将文件共享给 Nextcloud 之外的其他用户。管理员也可以强制设置密码,过期日期,并且可以通过共享链接启用服务器到服务器的共享,以及从移动设备共享。\n关闭该功能将删除服务器上所有共享接收者以用同步客户端和移动应用上的共享文件和文件夹。更多信息可查阅 Nextcloud 文档。", + "Add to a collection" : "添加到专辑", + "Details" : "详情", + "Rename collection" : "重命名专辑", + "file" : "文件", "Share" : "共享", "Sharing" : "共享", "No entries found in this folder" : "此文件夹中无项目", diff --git a/apps/files_trashbin/js/files_trashbin.js b/apps/files_trashbin/js/files_trashbin.js index d2412553bc7..fc63cf06a38 100644 --- a/apps/files_trashbin/js/files_trashbin.js +++ b/apps/files_trashbin/js/files_trashbin.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);n(1),n(2),n(3);window.OCA.Trashbin=OCA.Trashbin},function(e,n){OCA.Trashbin={},OCA.Trashbin.App={_initialized:!1,client:null,initialize:function(e){if(!this._initialized){this._initialized=!0,this.client=new OC.Files.Client({host:OC.getHost(),port:OC.getPort(),root:OC.linkToRemoteBase("dav")+"/trashbin/"+OC.getCurrentUser().uid,useHTTPS:"https"===OC.getProtocol()});var n=OC.Util.History.parseUrlQuery();this.fileList=new OCA.Trashbin.FileList($("#app-content-trashbin"),{fileActions:this._createFileActions(),detailsViewEnabled:!1,scrollTo:n.scrollto,config:OCA.Files.App.getFilesConfig(),multiSelectMenu:[{name:"restore",displayName:t("files_trashbin","Restore"),iconClass:"icon-history"},{name:"delete",displayName:t("files","Delete"),iconClass:"icon-delete"}],client:this.client,shown:!0})}},_createFileActions:function(){var e=this.client,n=new OCA.Files.FileActions;return n.register("dir","Open",OC.PERMISSION_READ,"",function(e,t){var n=t.fileList.getCurrentDirectory();t.fileList.changeDirectory(OC.joinPaths(n,e))}),n.setDefault("dir","Open"),n.registerAction({name:"Restore",displayName:t("files_trashbin","Restore"),type:OCA.Files.FileActions.TYPE_INLINE,mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-history",actionHandler:function(n,i){var r=i.fileList,o=r.findFileEl(n);r.showFileBusyState(o,!0);var s=i.fileList.getCurrentDirectory();e.move(OC.joinPaths("trash",s,n),OC.joinPaths("restore",n),!0).then(r._removeCallback.bind(r,[n]),function(){r.showFileBusyState(o,!1),OC.Notification.show(t("files_trashbin","Error while restoring file from trashbin"))})}}),n.registerAction({name:"Delete",displayName:t("files","Delete"),mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-delete",render:function(e,i,r){var o=n._makeActionLink(e,r);return o.attr("original-title",t("files_trashbin","Delete permanently")),o.children("img").attr("alt",t("files_trashbin","Delete permanently")),r.$file.find("td:last").append(o),o},actionHandler:function(n,i){var r=i.fileList;$(".tipsy").remove();var o=r.findFileEl(n);r.showFileBusyState(o,!0);var s=i.fileList.getCurrentDirectory();e.remove(OC.joinPaths("trash",s,n)).then(r._removeCallback.bind(r,[n]),function(){r.showFileBusyState(o,!1),OC.Notification.show(t("files_trashbin","Error while removing file from trashbin"))})}}),n}},$(document).ready(function(){$("#app-content-trashbin").one("show",function(){OCA.Trashbin.App.initialize($("#app-content-trashbin"))})})},function(e,n){!function(){var e=new RegExp(/^(.+)\.d[0-9]+$/),n="{http://nextcloud.org/ns}trashbin-filename",i="{http://nextcloud.org/ns}trashbin-deletion-time",r="{http://nextcloud.org/ns}trashbin-original-location";function o(t){t=OC.basename(t);var n=e.exec(t);return n&&n.length>1&&(t=n[1]),t}var s=function(e,t){this.client=t.client,this.initialize(e,t)};s.prototype=_.extend({},OCA.Files.FileList.prototype,{id:"trashbin",appName:t("files_trashbin","Deleted files"),client:null,initialize:function(){this.client.addFileInfoParser(function(e,t){var o=e.propStat[0].properties,s=o[r];return{displayName:o[n],mtime:1e3*parseInt(o[i],10),hasPreview:!0,path:s,extraData:s}});var e=OCA.Files.FileList.prototype.initialize.apply(this,arguments);return this.$el.find(".undelete").click("click",_.bind(this._onClickRestoreSelected,this)),this.setSort("mtime","desc"),this.breadcrumb._makeCrumbs=function(){for(var e=OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this,arguments),t=1;t<e.length;t++)e[t].name=o(e[t].name);return e},OC.Plugins.attach("OCA.Trashbin.FileList",this),e},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},_setCurrentDir:function(e){OCA.Files.FileList.prototype._setCurrentDir.apply(this,arguments);var t=OC.basename(e);""!==t&&this.setPageTitle(o(t))},_createRow:function(){var e=OCA.Files.FileList.prototype._createRow.apply(this,arguments);return e.find("td.filesize").remove(),e},getAjaxUrl:function(e,t){var n="";return t&&(n="?"+OC.buildQueryString(t)),OC.filePath("files_trashbin","ajax",e+".php")+n},setupUploadEvents:function(){},linkTo:function(e){return OC.linkTo("files","index.php")+"?view=trashbin&dir="+encodeURIComponent(e).replace(/%2F/g,"/")},elementToFile:function(e){var t=OCA.Files.FileList.prototype.elementToFile(e);return"/"===this.getCurrentDirectory()&&(t.displayName=o(t.name)),delete t.size,t},updateEmptyContent:function(){var e=this.$fileList.find("tr:first").exists();this.$el.find("#emptycontent").toggleClass("hidden",e),this.$el.find("#filestable th").toggleClass("hidden",!e)},_removeCallback:function(e){for(var t,n=0;n<e.length;n++)t=this.remove(OC.basename(e[n]),{updateSummary:!1}),this.fileSummary.remove({type:t.attr("data-type"),size:t.attr("data-size")});this.fileSummary.update(),this.updateEmptyContent()},_onClickRestoreSelected:function(e){e.preventDefault();for(var n=this,i=_.pluck(this.getSelectedFiles(),"name"),r=0;r<i.length;r++){var o=this.findFileEl(i[r]);this.showFileBusyState(o,!0)}this.fileMultiSelectMenu.toggleLoading("restore",!0);var s=i.map(function(e){return n.client.move(OC.joinPaths("trash",n.getCurrentDirectory(),e),OC.joinPaths("restore",e),!0).then(function(){n._removeCallback([e])})});return Promise.all(s).then(function(){n.fileMultiSelectMenu.toggleLoading("restore",!1)},function(){OC.Notification.show(t("files_trashbin","Error while restoring files from trashbin"))})},_onClickDeleteSelected:function(e){e.preventDefault();for(var n=this,i=this.$el.find(".select-all").is(":checked"),r=_.pluck(this.getSelectedFiles(),"name"),o=0;o<r.length;o++){var s=this.findFileEl(r[o]);this.showFileBusyState(s,!0)}if(i)return this.client.remove(OC.joinPaths("trash",this.getCurrentDirectory())).then(function(){n.hideMask(),n.setFiles([])},function(){OC.Notification.show(t("files_trashbin","Error while emptying trashbin"))});this.fileMultiSelectMenu.toggleLoading("delete",!0);var a=r.map(function(e){return n.client.remove(OC.joinPaths("trash",n.getCurrentDirectory(),e)).then(function(){n._removeCallback([e])})});return Promise.all(a).then(function(){n.fileMultiSelectMenu.toggleLoading("delete",!1)},function(){OC.Notification.show(t("files_trashbin","Error while removing files from trashbin"))})},_onClickFile:function(e){return"httpd/unix-directory"!==$(this).parent().parent().data("mime")&&e.preventDefault(),OCA.Files.FileList.prototype._onClickFile.apply(this,arguments)},generatePreviewUrl:function(e){return OC.generateUrl("/apps/files_trashbin/preview?")+$.param(e)},getDownloadUrl:function(){return"#"},updateStorageStatistics:function(){},isSelectedDeletable:function(){return!0},_getWebdavProperties:function(){return[n,i,r].concat(this.filesClient.getPropfindProperties())},reload:function(){this._selectedFiles={},this._selectionSummary.clear(),this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall&&this._reloadCall.abort(),this._reloadCall=this.client.getFolderContents("trash/"+this.getCurrentDirectory(),{includeParent:!1,properties:this._getWebdavProperties()});var e=this.reloadCallback.bind(this);return this._reloadCall.then(e,e)},reloadCallback:function(e,n){return delete this._reloadCall,this.hideMask(),401!==e&&(403===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This operation is forbidden")),!1):500===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This directory is unavailable, please check the logs or contact the administrator")),!1):404===e?(this.changeDirectory("/"),!1):0===e||(this.setFiles(n),!0))}}),OCA.Trashbin.FileList=s}()},function(e,t,n){var i=n(4);"string"==typeof i&&(i=[[e.i,i,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};n(6)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(5)(!1)).push([e.i,'/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#app-content-trashbin tbody tr[data-type="file"] td a.name,\n#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext,\n#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext span {\n cursor: default; }\n\n#app-content-trashbin .summary :last-child {\n padding: 0; }\n\n#app-content-trashbin #filestable .summary .filesize {\n display: none; }\n',""])},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=(s=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),o=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[n].concat(o).concat([r]).join("\n")}var s;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var o=this[r][0];null!=o&&(i[o]=!0)}for(r=0;r<e.length;r++){var s=e[r];null!=s[0]&&i[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),t.push(s))}},t}},function(e,t,n){var i,r,o={},s=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===r&&(r=i.apply(this,arguments)),r}),a=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var i=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}}(),l=null,c=0,u=[],f=n(7);function h(e,t){for(var n=0;n<e.length;n++){var i=e[n],r=o[i.id];if(r){r.refs++;for(var s=0;s<r.parts.length;s++)r.parts[s](i.parts[s]);for(;s<i.parts.length;s++)r.parts.push(y(i.parts[s],t))}else{var a=[];for(s=0;s<i.parts.length;s++)a.push(y(i.parts[s],t));o[i.id]={id:i.id,refs:1,parts:a}}}}function p(e,t){for(var n=[],i={},r=0;r<e.length;r++){var o=e[r],s=t.base?o[0]+t.base:o[0],a={css:o[1],media:o[2],sourceMap:o[3]};i[s]?i[s].parts.push(a):n.push(i[s]={id:s,parts:[a]})}return n}function d(e,t){var n=a(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var i=u[u.length-1];if("top"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),u.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var r=a(e.insertAt.before,n);n.insertBefore(t,r)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=u.indexOf(e);t>=0&&u.splice(t,1)}function b(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var i=function(){0;return n.nc}();i&&(e.attrs.nonce=i)}return v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,i,r,o;if(t.transform&&e.css){if(!(o="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=o}if(t.singleton){var s=c++;n=l||(l=b(t)),i=O.bind(null,n,s,!1),r=O.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),i=function(e,t,n){var i=n.css,r=n.sourceMap,o=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||o)&&(i=f(i));r&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var s=new Blob([i],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}.bind(null,n,t),r=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(t),i=function(e,t){var n=t.css,i=t.media;i&&e.setAttribute("media",i);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),r=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=s()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return h(n,t),function(e){for(var i=[],r=0;r<n.length;r++){var s=n[r];(a=o[s.id]).refs--,i.push(a)}e&&h(p(e,t),t);for(r=0;r<i.length;r++){var a;if(0===(a=i[r]).refs){for(var l=0;l<a.parts.length;l++)a.parts[l]();delete o[a.id]}}}};var C,g=(C=[],function(e,t){return C[e]=t,C.filter(Boolean).join("\n")});function O(e,t,n,i){var r=n?"":i.css;if(e.styleSheet)e.styleSheet.cssText=g(t,r);else{var o=document.createTextNode(r),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,i=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,o=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?e:(r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}}]); +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);n(1),n(2),n(3);window.OCA.Trashbin=OCA.Trashbin},function(e,n){OCA.Trashbin={},OCA.Trashbin.App={_initialized:!1,client:null,initialize:function(e){if(!this._initialized){this._initialized=!0,this.client=new OC.Files.Client({host:OC.getHost(),port:OC.getPort(),root:OC.linkToRemoteBase("dav")+"/trashbin/"+OC.getCurrentUser().uid,useHTTPS:"https"===OC.getProtocol()});var n=OC.Util.History.parseUrlQuery();this.fileList=new OCA.Trashbin.FileList($("#app-content-trashbin"),{fileActions:this._createFileActions(),detailsViewEnabled:!1,scrollTo:n.scrollto,config:OCA.Files.App.getFilesConfig(),multiSelectMenu:[{name:"restore",displayName:t("files_trashbin","Restore"),iconClass:"icon-history"},{name:"delete",displayName:t("files_trashbin","Delete permanently"),iconClass:"icon-delete"}],client:this.client,shown:!0})}},_createFileActions:function(){var e=this.client,n=new OCA.Files.FileActions;return n.register("dir","Open",OC.PERMISSION_READ,"",function(e,t){var n=t.fileList.getCurrentDirectory();t.fileList.changeDirectory(OC.joinPaths(n,e))}),n.setDefault("dir","Open"),n.registerAction({name:"Restore",displayName:t("files_trashbin","Restore"),type:OCA.Files.FileActions.TYPE_INLINE,mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-history",actionHandler:function(n,i){var r=i.fileList,o=r.findFileEl(n);r.showFileBusyState(o,!0);var s=i.fileList.getCurrentDirectory();e.move(OC.joinPaths("trash",s,n),OC.joinPaths("restore",n),!0).then(r._removeCallback.bind(r,[n]),function(){r.showFileBusyState(o,!1),OC.Notification.show(t("files_trashbin","Error while restoring file from trashbin"))})}}),n.registerAction({name:"Delete",displayName:t("files_trashbin","Delete permanently"),mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-delete",render:function(e,i,r){var o=n._makeActionLink(e,r);return o.attr("original-title",t("files_trashbin","Delete permanently")),o.children("img").attr("alt",t("files_trashbin","Delete permanently")),r.$file.find("td:last").append(o),o},actionHandler:function(n,i){var r=i.fileList;$(".tipsy").remove();var o=r.findFileEl(n);r.showFileBusyState(o,!0);var s=i.fileList.getCurrentDirectory();e.remove(OC.joinPaths("trash",s,n)).then(r._removeCallback.bind(r,[n]),function(){r.showFileBusyState(o,!1),OC.Notification.show(t("files_trashbin","Error while removing file from trashbin"))})}}),n}},$(document).ready(function(){$("#app-content-trashbin").one("show",function(){OCA.Trashbin.App.initialize($("#app-content-trashbin"))})})},function(e,n){!function(){var e=new RegExp(/^(.+)\.d[0-9]+$/),n="{http://nextcloud.org/ns}trashbin-filename",i="{http://nextcloud.org/ns}trashbin-deletion-time",r="{http://nextcloud.org/ns}trashbin-original-location";function o(t){t=OC.basename(t);var n=e.exec(t);return n&&n.length>1&&(t=n[1]),t}var s=function(e,t){this.client=t.client,this.initialize(e,t)};s.prototype=_.extend({},OCA.Files.FileList.prototype,{id:"trashbin",appName:t("files_trashbin","Deleted files"),client:null,initialize:function(){this.client.addFileInfoParser(function(e,t){var o=e.propStat[0].properties,s=o[r];return{displayName:o[n],mtime:1e3*parseInt(o[i],10),hasPreview:!0,path:s,extraData:s}});var e=OCA.Files.FileList.prototype.initialize.apply(this,arguments);return this.$el.find(".undelete").click("click",_.bind(this._onClickRestoreSelected,this)),this.setSort("mtime","desc"),this.breadcrumb._makeCrumbs=function(){for(var e=OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this,arguments),t=1;t<e.length;t++)e[t].name=o(e[t].name);return e},OC.Plugins.attach("OCA.Trashbin.FileList",this),e},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},_setCurrentDir:function(e){OCA.Files.FileList.prototype._setCurrentDir.apply(this,arguments);var t=OC.basename(e);""!==t&&this.setPageTitle(o(t))},_createRow:function(){var e=OCA.Files.FileList.prototype._createRow.apply(this,arguments);return e.find("td.filesize").remove(),e},getAjaxUrl:function(e,t){var n="";return t&&(n="?"+OC.buildQueryString(t)),OC.filePath("files_trashbin","ajax",e+".php")+n},setupUploadEvents:function(){},linkTo:function(e){return OC.linkTo("files","index.php")+"?view=trashbin&dir="+encodeURIComponent(e).replace(/%2F/g,"/")},elementToFile:function(e){var t=OCA.Files.FileList.prototype.elementToFile(e);return"/"===this.getCurrentDirectory()&&(t.displayName=o(t.name)),delete t.size,t},updateEmptyContent:function(){var e=this.$fileList.find("tr:first").exists();this.$el.find("#emptycontent").toggleClass("hidden",e),this.$el.find("#filestable th").toggleClass("hidden",!e)},_removeCallback:function(e){for(var t,n=0;n<e.length;n++)t=this.remove(OC.basename(e[n]),{updateSummary:!1}),this.fileSummary.remove({type:t.attr("data-type"),size:t.attr("data-size")});this.fileSummary.update(),this.updateEmptyContent()},_onClickRestoreSelected:function(e){e.preventDefault();for(var n=this,i=_.pluck(this.getSelectedFiles(),"name"),r=0;r<i.length;r++){var o=this.findFileEl(i[r]);this.showFileBusyState(o,!0)}this.fileMultiSelectMenu.toggleLoading("restore",!0);var s=i.map(function(e){return n.client.move(OC.joinPaths("trash",n.getCurrentDirectory(),e),OC.joinPaths("restore",e),!0).then(function(){n._removeCallback([e])})});return Promise.all(s).then(function(){n.fileMultiSelectMenu.toggleLoading("restore",!1)},function(){OC.Notification.show(t("files_trashbin","Error while restoring files from trashbin"))})},_onClickDeleteSelected:function(e){e.preventDefault();for(var n=this,i=this.$el.find(".select-all").is(":checked"),r=_.pluck(this.getSelectedFiles(),"name"),o=0;o<r.length;o++){var s=this.findFileEl(r[o]);this.showFileBusyState(s,!0)}if(i)return this.client.remove(OC.joinPaths("trash",this.getCurrentDirectory())).then(function(){n.hideMask(),n.setFiles([])},function(){OC.Notification.show(t("files_trashbin","Error while emptying trashbin"))});this.fileMultiSelectMenu.toggleLoading("delete",!0);var a=r.map(function(e){return n.client.remove(OC.joinPaths("trash",n.getCurrentDirectory(),e)).then(function(){n._removeCallback([e])})});return Promise.all(a).then(function(){n.fileMultiSelectMenu.toggleLoading("delete",!1)},function(){OC.Notification.show(t("files_trashbin","Error while removing files from trashbin"))})},_onClickFile:function(e){return"httpd/unix-directory"!==$(this).parent().parent().data("mime")&&e.preventDefault(),OCA.Files.FileList.prototype._onClickFile.apply(this,arguments)},generatePreviewUrl:function(e){return OC.generateUrl("/apps/files_trashbin/preview?")+$.param(e)},getDownloadUrl:function(){return"#"},updateStorageStatistics:function(){},isSelectedDeletable:function(){return!0},_getWebdavProperties:function(){return[n,i,r].concat(this.filesClient.getPropfindProperties())},reload:function(){this._selectedFiles={},this._selectionSummary.clear(),this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall&&this._reloadCall.abort(),this._reloadCall=this.client.getFolderContents("trash/"+this.getCurrentDirectory(),{includeParent:!1,properties:this._getWebdavProperties()});var e=this.reloadCallback.bind(this);return this._reloadCall.then(e,e)},reloadCallback:function(e,n){return delete this._reloadCall,this.hideMask(),401!==e&&(403===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This operation is forbidden")),!1):500===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This directory is unavailable, please check the logs or contact the administrator")),!1):404===e?(this.changeDirectory("/"),!1):0===e||(this.setFiles(n),!0))}}),OCA.Trashbin.FileList=s}()},function(e,t,n){var i=n(4);"string"==typeof i&&(i=[[e.i,i,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};n(6)(i,r);i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(5)(!1)).push([e.i,'/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#app-content-trashbin tbody tr[data-type="file"] td a.name,\n#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext,\n#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext span {\n cursor: default; }\n\n#app-content-trashbin .summary :last-child {\n padding: 0; }\n\n#app-content-trashbin #filestable .summary .filesize {\n display: none; }\n',""])},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=(s=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),o=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[n].concat(o).concat([r]).join("\n")}var s;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var o=this[r][0];null!=o&&(i[o]=!0)}for(r=0;r<e.length;r++){var s=e[r];null!=s[0]&&i[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),t.push(s))}},t}},function(e,t,n){var i,r,o={},s=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===r&&(r=i.apply(this,arguments)),r}),a=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var i=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}}(),l=null,c=0,u=[],f=n(7);function h(e,t){for(var n=0;n<e.length;n++){var i=e[n],r=o[i.id];if(r){r.refs++;for(var s=0;s<r.parts.length;s++)r.parts[s](i.parts[s]);for(;s<i.parts.length;s++)r.parts.push(y(i.parts[s],t))}else{var a=[];for(s=0;s<i.parts.length;s++)a.push(y(i.parts[s],t));o[i.id]={id:i.id,refs:1,parts:a}}}}function p(e,t){for(var n=[],i={},r=0;r<e.length;r++){var o=e[r],s=t.base?o[0]+t.base:o[0],a={css:o[1],media:o[2],sourceMap:o[3]};i[s]?i[s].parts.push(a):n.push(i[s]={id:s,parts:[a]})}return n}function d(e,t){var n=a(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var i=u[u.length-1];if("top"===e.insertAt)i?i.nextSibling?n.insertBefore(t,i.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),u.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var r=a(e.insertAt.before,n);n.insertBefore(t,r)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=u.indexOf(e);t>=0&&u.splice(t,1)}function b(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var i=function(){0;return n.nc}();i&&(e.attrs.nonce=i)}return v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,i,r,o;if(t.transform&&e.css){if(!(o="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=o}if(t.singleton){var s=c++;n=l||(l=b(t)),i=O.bind(null,n,s,!1),r=O.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),i=function(e,t,n){var i=n.css,r=n.sourceMap,o=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||o)&&(i=f(i));r&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var s=new Blob([i],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}.bind(null,n,t),r=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(t),i=function(e,t){var n=t.css,i=t.media;i&&e.setAttribute("media",i);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),r=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=s()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return h(n,t),function(e){for(var i=[],r=0;r<n.length;r++){var s=n[r];(a=o[s.id]).refs--,i.push(a)}e&&h(p(e,t),t);for(r=0;r<i.length;r++){var a;if(0===(a=i[r]).refs){for(var l=0;l<a.parts.length;l++)a.parts[l]();delete o[a.id]}}}};var C,g=(C=[],function(e,t){return C[e]=t,C.filter(Boolean).join("\n")});function O(e,t,n,i){var r=n?"":i.css;if(e.styleSheet)e.styleSheet.cssText=g(t,r);else{var o=document.createTextNode(r),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,i=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,o=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?e:(r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}}]); //# sourceMappingURL=files_trashbin.js.map
\ No newline at end of file diff --git a/apps/files_trashbin/js/files_trashbin.js.map b/apps/files_trashbin/js/files_trashbin.js.map index 9c14a1a6f70..cde6e111b01 100644 --- a/apps/files_trashbin/js/files_trashbin.js.map +++ b/apps/files_trashbin/js/files_trashbin.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_trashbin/src/files_trashbin.js","webpack:///./apps/files_trashbin/src/app.js","webpack:///./apps/files_trashbin/src/filelist.js","webpack:///./apps/files_trashbin/src/trash.scss?0bc9","webpack:///./apps/files_trashbin/src/trash.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","window","OCA","Trashbin","App","_initialized","client","initialize","$el","this","OC","Files","Client","host","getHost","port","getPort","root","linkToRemoteBase","getCurrentUser","uid","useHTTPS","getProtocol","urlParams","Util","History","parseUrlQuery","fileList","FileList","$","fileActions","_createFileActions","detailsViewEnabled","scrollTo","scrollto","config","getFilesConfig","multiSelectMenu","displayName","iconClass","shown","FileActions","register","PERMISSION_READ","filename","context","dir","getCurrentDirectory","changeDirectory","joinPaths","setDefault","registerAction","type","TYPE_INLINE","mime","permissions","actionHandler","tr","findFileEl","showFileBusyState","move","then","_removeCallback","Notification","show","render","actionSpec","isDefault","$actionLink","_makeActionLink","attr","children","$file","find","append","remove","document","ready","one","DELETED_REGEXP","RegExp","FILENAME_PROP","DELETION_TIME_PROP","TRASHBIN_ORIGINAL_LOCATION","getDeletedFileName","basename","match","exec","length","options","_","extend","id","appName","addFileInfoParser","response","data","props","propStat","properties","path","mtime","parseInt","hasPreview","extraData","result","apply","arguments","click","_onClickRestoreSelected","setSort","breadcrumb","_makeCrumbs","parts","BreadCrumb","Plugins","attach","getDirectoryPermissions","PERMISSION_DELETE","_setCurrentDir","targetDir","baseDir","setPageTitle","_createRow","getAjaxUrl","action","params","q","buildQueryString","filePath","setupUploadEvents","linkTo","encodeURIComponent","replace","elementToFile","fileInfo","size","updateEmptyContent","exists","$fileList","toggleClass","files","updateSummary","fileSummary","update","event","preventDefault","self","pluck","getSelectedFiles","fileMultiSelectMenu","toggleLoading","restorePromises","map","file","Promise","all","_onClickDeleteSelected","allFiles","is","hideMask","setFiles","deletePromises","_onClickFile","parent","generatePreviewUrl","urlSpec","generateUrl","param","getDownloadUrl","updateStorageStatistics","isSelectedDeletable","_getWebdavProperties","concat","filesClient","getPropfindProperties","reload","_selectedFiles","_selectionSummary","clear","prop","showMask","_reloadCall","abort","getFolderContents","includeParent","callBack","reloadCallback","status","content","hmr","transform","insertInto","undefined","locals","push","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","unescape","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","fn","memo","stylesInDom","isOldIE","atob","getElement","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","createElement","attrs","nonce","nc","getNonce","addAttrs","el","keys","forEach","setAttribute","obj","default","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","styleSheet","cssText","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","location","baseUrl","protocol","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","trim","$1","test"],"mappings":"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","file":"files_trashbin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './app'\nimport './filelist'\nimport './trash.scss'\n\nwindow.OCA.Trashbin = OCA.Trashbin\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/**\n * @namespace OCA.Trashbin\n */\nOCA.Trashbin = {};\n/**\n * @namespace OCA.Trashbin.App\n */\nOCA.Trashbin.App = {\n\t_initialized: false,\n\t/** @type {OC.Files.Client} */\n\tclient: null,\n\n\tinitialize: function ($el) {\n\t\tif (this._initialized) {\n\t\t\treturn;\n\t\t}\n\t\tthis._initialized = true;\n\n\t\tthis.client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/trashbin/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https'\n\t\t});\n\t\tvar urlParams = OC.Util.History.parseUrlQuery();\n\t\tthis.fileList = new OCA.Trashbin.FileList(\n\t\t\t$('#app-content-trashbin'), {\n\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\tdetailsViewEnabled: false,\n\t\t\t\tscrollTo: urlParams.scrollto,\n\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\tmultiSelectMenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'restore',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\t\t\t\ticonClass: 'icon-history',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'delete',\n\t\t\t\t\t\tdisplayName: t('files', 'Delete'),\n\t\t\t\t\t\ticonClass: 'icon-delete',\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tclient: this.client,\n\t\t\t\t// The file list is created when a \"show\" event is handled, so\n\t\t\t\t// it should be marked as \"shown\" like it would have been done\n\t\t\t\t// if handling the event with the file list already created.\n\t\t\t\tshown: true\n\t\t\t}\n\t\t);\n\t},\n\n\t_createFileActions: function () {\n\t\tvar client = this.client;\n\t\tvar fileActions = new OCA.Files.FileActions();\n\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {\n\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\tcontext.fileList.changeDirectory(OC.joinPaths(dir, filename));\n\t\t});\n\n\t\tfileActions.setDefault('dir', 'Open');\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Restore',\n\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-history',\n\t\t\tactionHandler: function (filename, context) {\n\t\t\t\tvar fileList = context.fileList;\n\t\t\t\tvar tr = fileList.findFileEl(filename);\n\t\t\t\tfileList.showFileBusyState(tr, true);\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\t\tclient.move(OC.joinPaths('trash', dir, filename), OC.joinPaths('restore', filename), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false);\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring file from trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Delete',\n\t\t\tdisplayName: t('files', 'Delete'),\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-delete',\n\t\t\trender: function (actionSpec, isDefault, context) {\n\t\t\t\tvar $actionLink = fileActions._makeActionLink(actionSpec, context);\n\t\t\t\t$actionLink.attr('original-title', t('files_trashbin', 'Delete permanently'));\n\t\t\t\t$actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently'));\n\t\t\t\tcontext.$file.find('td:last').append($actionLink);\n\t\t\t\treturn $actionLink;\n\t\t\t},\n\t\t\tactionHandler: function (filename, context) {\n\t\t\t\tvar fileList = context.fileList;\n\t\t\t\t$('.tipsy').remove();\n\t\t\t\tvar tr = fileList.findFileEl(filename);\n\t\t\t\tfileList.showFileBusyState(tr, true);\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\t\tclient.remove(OC.joinPaths('trash', dir, filename))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false);\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing file from trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn fileActions;\n\t}\n};\n\n$(document).ready(function () {\n\t$('#app-content-trashbin').one('show', function () {\n\t\tvar App = OCA.Trashbin.App;\n\t\tApp.initialize($('#app-content-trashbin'));\n\t\t// force breadcrumb init\n\t\t// App.fileList.changeDirectory(App.fileList.getCurrentDirectory(), false, true);\n\t});\n});\n\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function() {\n\tvar DELETED_REGEXP = new RegExp(/^(.+)\\.d[0-9]+$/);\n\tvar FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename';\n\tvar DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time';\n\tvar TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location';\n\n\t/**\n\t * Convert a file name in the format filename.d12345 to the real file name.\n\t * This will use basename.\n\t * The name will not be changed if it has no \".d12345\" suffix.\n\t * @param {String} name file name\n\t * @return {String} converted file name\n\t */\n\tfunction getDeletedFileName(name) {\n\t\tname = OC.basename(name);\n\t\tvar match = DELETED_REGEXP.exec(name);\n\t\tif (match && match.length > 1) {\n\t\t\tname = match[1];\n\t\t}\n\t\treturn name;\n\t}\n\n\t/**\n\t * @class OCA.Trashbin.FileList\n\t * @augments OCA.Files.FileList\n\t * @classdesc List of deleted files\n\t *\n\t * @param $el container element with existing markup for the #controls\n\t * and a table\n\t * @param [options] map of options\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.client = options.client;\n\t\tthis.initialize($el, options);\n\t};\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.Trashbin.FileList.prototype */ {\n\t\tid: 'trashbin',\n\t\tappName: t('files_trashbin', 'Deleted files'),\n\t\t/** @type {OC.Files.Client} */\n\t\tclient: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tthis.client.addFileInfoParser(function(response, data) {\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar path = props[TRASHBIN_ORIGINAL_LOCATION];\n\t\t\t\treturn {\n\t\t\t\t\tdisplayName: props[FILENAME_PROP],\n\t\t\t\t\tmtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,\n\t\t\t\t\thasPreview: true,\n\t\t\t\t\tpath: path,\n\t\t\t\t\textraData: path\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar result = OCA.Files.FileList.prototype.initialize.apply(this, arguments);\n\t\t\tthis.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this));\n\n\t\t\tthis.setSort('mtime', 'desc');\n\t\t\t/**\n\t\t\t * Override crumb making to add \"Deleted Files\" entry\n\t\t\t * and convert files with \".d\" extensions to a more\n\t\t\t * user friendly name.\n\t\t\t */\n\t\t\tthis.breadcrumb._makeCrumbs = function() {\n\t\t\t\tvar parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, arguments);\n\t\t\t\tfor (var i = 1; i < parts.length; i++) {\n\t\t\t\t\tparts[i].name = getDeletedFileName(parts[i].name);\n\t\t\t\t}\n\t\t\t\treturn parts;\n\t\t\t};\n\n\t\t\tOC.Plugins.attach('OCA.Trashbin.FileList', this);\n\t\t\treturn result;\n\t\t},\n\n\t\t/**\n\t\t * Override to only return read permissions\n\t\t */\n\t\tgetDirectoryPermissions: function() {\n\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE;\n\t\t},\n\n\t\t_setCurrentDir: function(targetDir) {\n\t\t\tOCA.Files.FileList.prototype._setCurrentDir.apply(this, arguments);\n\n\t\t\tvar baseDir = OC.basename(targetDir);\n\t\t\tif (baseDir !== '') {\n\t\t\t\tthis.setPageTitle(getDeletedFileName(baseDir));\n\t\t\t}\n\t\t},\n\n\t\t_createRow: function() {\n\t\t\t// FIXME: MEGAHACK until we find a better solution\n\t\t\tvar tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments);\n\t\t\ttr.find('td.filesize').remove();\n\t\t\treturn tr;\n\t\t},\n\n\t\tgetAjaxUrl: function(action, params) {\n\t\t\tvar q = '';\n\t\t\tif (params) {\n\t\t\t\tq = '?' + OC.buildQueryString(params);\n\t\t\t}\n\t\t\treturn OC.filePath('files_trashbin', 'ajax', action + '.php') + q;\n\t\t},\n\n\t\tsetupUploadEvents: function() {\n\t\t\t// override and do nothing\n\t\t},\n\n\t\tlinkTo: function(dir){\n\t\t\treturn OC.linkTo('files', 'index.php')+\"?view=trashbin&dir=\"+ encodeURIComponent(dir).replace(/%2F/g, '/');\n\t\t},\n\n\t\telementToFile: function($el) {\n\t\t\tvar fileInfo = OCA.Files.FileList.prototype.elementToFile($el);\n\t\t\tif (this.getCurrentDirectory() === '/') {\n\t\t\t\tfileInfo.displayName = getDeletedFileName(fileInfo.name);\n\t\t\t}\n\t\t\t// no size available\n\t\t\tdelete fileInfo.size;\n\t\t\treturn fileInfo;\n\t\t},\n\n\t\tupdateEmptyContent: function(){\n\t\t\tvar exists = this.$fileList.find('tr:first').exists();\n\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', exists);\n\t\t\tthis.$el.find('#filestable th').toggleClass('hidden', !exists);\n\t\t},\n\n\t\t_removeCallback: function(files) {\n\t\t\tvar $el;\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t$el = this.remove(OC.basename(files[i]), {updateSummary: false});\n\t\t\t\tthis.fileSummary.remove({type: $el.attr('data-type'), size: $el.attr('data-size')});\n\t\t\t}\n\t\t\tthis.fileSummary.update();\n\t\t\tthis.updateEmptyContent();\n\t\t},\n\n\t\t_onClickRestoreSelected: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name');\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tvar tr = this.findFileEl(files[i]);\n\t\t\t\tthis.showFileBusyState(tr, true);\n\t\t\t}\n\n\t\t\tthis.fileMultiSelectMenu.toggleLoading('restore', true);\n\t\t\tvar restorePromises = files.map(function(file) {\n\t\t\t\treturn self.client.move(OC.joinPaths('trash', self.getCurrentDirectory(), file), OC.joinPaths('restore', file), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself._removeCallback([file]);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t});\n\t\t\treturn Promise.all(restorePromises).then(\n\t\t\t\tfunction() {\n\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('restore', false);\n\t\t\t\t},\n\t\t\t\tfunction() {\n\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring files from trashbin'));\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t_onClickDeleteSelected: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar allFiles = this.$el.find('.select-all').is(':checked');\n\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name');\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tvar tr = this.findFileEl(files[i]);\n\t\t\t\tthis.showFileBusyState(tr, true);\n\t\t\t}\n\n\t\t\tif (allFiles) {\n\t\t\t\treturn this.client.remove(OC.joinPaths('trash', this.getCurrentDirectory()))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.hideMask();\n\t\t\t\t\t\t\tself.setFiles([]);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while emptying trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('delete', true);\n\t\t\t\tvar deletePromises = files.map(function(file) {\n\t\t\t\t\treturn self.client.remove(OC.joinPaths('trash', self.getCurrentDirectory(), file))\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself._removeCallback([file]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\treturn Promise.all(deletePromises).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('delete', false);\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing files from trashbin'));\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t_onClickFile: function(event) {\n\t\t\tvar mime = $(this).parent().parent().data('mime');\n\t\t\tif (mime !== 'httpd/unix-directory') {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\treturn OCA.Files.FileList.prototype._onClickFile.apply(this, arguments);\n\t\t},\n\n\t\tgeneratePreviewUrl: function(urlSpec) {\n\t\t\treturn OC.generateUrl('/apps/files_trashbin/preview?') + $.param(urlSpec);\n\t\t},\n\n\t\tgetDownloadUrl: function() {\n\t\t\t// no downloads\n\t\t\treturn '#';\n\t\t},\n\n\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because the trashbin doesn't have\n\t\t\t// storage info like free space / used space\n\t\t},\n\n\t\tisSelectedDeletable: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\t/**\n\t\t * Returns list of webdav properties to request\n\t\t */\n\t\t_getWebdavProperties: function() {\n\t\t\treturn [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION].concat(this.filesClient.getPropfindProperties());\n\t\t},\n\n\t\t/**\n\t\t * Reloads the file list using ajax call\n\t\t *\n\t\t * @return ajax call object\n\t\t */\n\t\treload: function() {\n\t\t\tthis._selectedFiles = {};\n\t\t\tthis._selectionSummary.clear();\n\t\t\tthis.$el.find('.select-all').prop('checked', false);\n\t\t\tthis.showMask();\n\t\t\tif (this._reloadCall) {\n\t\t\t\tthis._reloadCall.abort();\n\t\t\t}\n\t\t\tthis._reloadCall = this.client.getFolderContents(\n\t\t\t\t'trash/' + this.getCurrentDirectory(), {\n\t\t\t\t\tincludeParent: false,\n\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t}\n\t\t\t);\n\t\t\tvar callBack = this.reloadCallback.bind(this);\n\t\t\treturn this._reloadCall.then(callBack, callBack);\n\t\t},\n\t\treloadCallback: function(status, result) {\n\t\t\tdelete this._reloadCall;\n\t\t\tthis.hideMask();\n\n\t\t\tif (status === 401) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Firewall Blocked request?\n\t\t\tif (status === 403) {\n\t\t\t\t// Go home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\tOC.Notification.show(t('files', 'This operation is forbidden'));\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Did share service die or something else fail?\n\t\t\tif (status === 500) {\n\t\t\t\t// Go home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\tOC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'));\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (status === 404) {\n\t\t\t\t// go back home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// aborted ?\n\t\t\tif (status === 0){\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.setFiles(result);\n\t\t\treturn true;\n\t\t},\n\n\t});\n\n\tOCA.Trashbin.FileList = FileList;\n})();\n\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2014\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name,\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext,\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext span {\\n cursor: default; }\\n\\n#app-content-trashbin .summary :last-child {\\n padding: 0; }\\n\\n#app-content-trashbin #filestable .summary .filesize {\\n display: none; }\\n\", \"\"]);\n\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_trashbin/src/files_trashbin.js","webpack:///./apps/files_trashbin/src/app.js","webpack:///./apps/files_trashbin/src/filelist.js","webpack:///./apps/files_trashbin/src/trash.scss?0bc9","webpack:///./apps/files_trashbin/src/trash.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","window","OCA","Trashbin","App","_initialized","client","initialize","$el","this","OC","Files","Client","host","getHost","port","getPort","root","linkToRemoteBase","getCurrentUser","uid","useHTTPS","getProtocol","urlParams","Util","History","parseUrlQuery","fileList","FileList","$","fileActions","_createFileActions","detailsViewEnabled","scrollTo","scrollto","config","getFilesConfig","multiSelectMenu","displayName","iconClass","shown","FileActions","register","PERMISSION_READ","filename","context","dir","getCurrentDirectory","changeDirectory","joinPaths","setDefault","registerAction","type","TYPE_INLINE","mime","permissions","actionHandler","tr","findFileEl","showFileBusyState","move","then","_removeCallback","Notification","show","render","actionSpec","isDefault","$actionLink","_makeActionLink","attr","children","$file","find","append","remove","document","ready","one","DELETED_REGEXP","RegExp","FILENAME_PROP","DELETION_TIME_PROP","TRASHBIN_ORIGINAL_LOCATION","getDeletedFileName","basename","match","exec","length","options","_","extend","id","appName","addFileInfoParser","response","data","props","propStat","properties","path","mtime","parseInt","hasPreview","extraData","result","apply","arguments","click","_onClickRestoreSelected","setSort","breadcrumb","_makeCrumbs","parts","BreadCrumb","Plugins","attach","getDirectoryPermissions","PERMISSION_DELETE","_setCurrentDir","targetDir","baseDir","setPageTitle","_createRow","getAjaxUrl","action","params","q","buildQueryString","filePath","setupUploadEvents","linkTo","encodeURIComponent","replace","elementToFile","fileInfo","size","updateEmptyContent","exists","$fileList","toggleClass","files","updateSummary","fileSummary","update","event","preventDefault","self","pluck","getSelectedFiles","fileMultiSelectMenu","toggleLoading","restorePromises","map","file","Promise","all","_onClickDeleteSelected","allFiles","is","hideMask","setFiles","deletePromises","_onClickFile","parent","generatePreviewUrl","urlSpec","generateUrl","param","getDownloadUrl","updateStorageStatistics","isSelectedDeletable","_getWebdavProperties","concat","filesClient","getPropfindProperties","reload","_selectedFiles","_selectionSummary","clear","prop","showMask","_reloadCall","abort","getFolderContents","includeParent","callBack","reloadCallback","status","content","hmr","transform","insertInto","undefined","locals","push","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","unescape","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","fn","memo","stylesInDom","isOldIE","atob","getElement","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","createElement","attrs","nonce","nc","getNonce","addAttrs","el","keys","forEach","setAttribute","obj","default","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","styleSheet","cssText","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","location","baseUrl","protocol","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","trim","$1","test"],"mappings":"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","file":"files_trashbin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './app'\nimport './filelist'\nimport './trash.scss'\n\nwindow.OCA.Trashbin = OCA.Trashbin\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/**\n * @namespace OCA.Trashbin\n */\nOCA.Trashbin = {};\n/**\n * @namespace OCA.Trashbin.App\n */\nOCA.Trashbin.App = {\n\t_initialized: false,\n\t/** @type {OC.Files.Client} */\n\tclient: null,\n\n\tinitialize: function ($el) {\n\t\tif (this._initialized) {\n\t\t\treturn;\n\t\t}\n\t\tthis._initialized = true;\n\n\t\tthis.client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/trashbin/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https'\n\t\t});\n\t\tvar urlParams = OC.Util.History.parseUrlQuery();\n\t\tthis.fileList = new OCA.Trashbin.FileList(\n\t\t\t$('#app-content-trashbin'), {\n\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\tdetailsViewEnabled: false,\n\t\t\t\tscrollTo: urlParams.scrollto,\n\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\tmultiSelectMenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'restore',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\t\t\t\ticonClass: 'icon-history',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'delete',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\t\t\t\ticonClass: 'icon-delete',\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tclient: this.client,\n\t\t\t\t// The file list is created when a \"show\" event is handled, so\n\t\t\t\t// it should be marked as \"shown\" like it would have been done\n\t\t\t\t// if handling the event with the file list already created.\n\t\t\t\tshown: true\n\t\t\t}\n\t\t);\n\t},\n\n\t_createFileActions: function () {\n\t\tvar client = this.client;\n\t\tvar fileActions = new OCA.Files.FileActions();\n\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {\n\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\tcontext.fileList.changeDirectory(OC.joinPaths(dir, filename));\n\t\t});\n\n\t\tfileActions.setDefault('dir', 'Open');\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Restore',\n\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-history',\n\t\t\tactionHandler: function (filename, context) {\n\t\t\t\tvar fileList = context.fileList;\n\t\t\t\tvar tr = fileList.findFileEl(filename);\n\t\t\t\tfileList.showFileBusyState(tr, true);\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\t\tclient.move(OC.joinPaths('trash', dir, filename), OC.joinPaths('restore', filename), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false);\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring file from trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Delete',\n\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-delete',\n\t\t\trender: function (actionSpec, isDefault, context) {\n\t\t\t\tvar $actionLink = fileActions._makeActionLink(actionSpec, context);\n\t\t\t\t$actionLink.attr('original-title', t('files_trashbin', 'Delete permanently'));\n\t\t\t\t$actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently'));\n\t\t\t\tcontext.$file.find('td:last').append($actionLink);\n\t\t\t\treturn $actionLink;\n\t\t\t},\n\t\t\tactionHandler: function (filename, context) {\n\t\t\t\tvar fileList = context.fileList;\n\t\t\t\t$('.tipsy').remove();\n\t\t\t\tvar tr = fileList.findFileEl(filename);\n\t\t\t\tfileList.showFileBusyState(tr, true);\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory();\n\t\t\t\tclient.remove(OC.joinPaths('trash', dir, filename))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false);\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing file from trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn fileActions;\n\t}\n};\n\n$(document).ready(function () {\n\t$('#app-content-trashbin').one('show', function () {\n\t\tvar App = OCA.Trashbin.App;\n\t\tApp.initialize($('#app-content-trashbin'));\n\t\t// force breadcrumb init\n\t\t// App.fileList.changeDirectory(App.fileList.getCurrentDirectory(), false, true);\n\t});\n});\n\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function() {\n\tvar DELETED_REGEXP = new RegExp(/^(.+)\\.d[0-9]+$/);\n\tvar FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename';\n\tvar DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time';\n\tvar TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location';\n\n\t/**\n\t * Convert a file name in the format filename.d12345 to the real file name.\n\t * This will use basename.\n\t * The name will not be changed if it has no \".d12345\" suffix.\n\t * @param {String} name file name\n\t * @return {String} converted file name\n\t */\n\tfunction getDeletedFileName(name) {\n\t\tname = OC.basename(name);\n\t\tvar match = DELETED_REGEXP.exec(name);\n\t\tif (match && match.length > 1) {\n\t\t\tname = match[1];\n\t\t}\n\t\treturn name;\n\t}\n\n\t/**\n\t * @class OCA.Trashbin.FileList\n\t * @augments OCA.Files.FileList\n\t * @classdesc List of deleted files\n\t *\n\t * @param $el container element with existing markup for the #controls\n\t * and a table\n\t * @param [options] map of options\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.client = options.client;\n\t\tthis.initialize($el, options);\n\t};\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.Trashbin.FileList.prototype */ {\n\t\tid: 'trashbin',\n\t\tappName: t('files_trashbin', 'Deleted files'),\n\t\t/** @type {OC.Files.Client} */\n\t\tclient: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tthis.client.addFileInfoParser(function(response, data) {\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar path = props[TRASHBIN_ORIGINAL_LOCATION];\n\t\t\t\treturn {\n\t\t\t\t\tdisplayName: props[FILENAME_PROP],\n\t\t\t\t\tmtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,\n\t\t\t\t\thasPreview: true,\n\t\t\t\t\tpath: path,\n\t\t\t\t\textraData: path\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar result = OCA.Files.FileList.prototype.initialize.apply(this, arguments);\n\t\t\tthis.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this));\n\n\t\t\tthis.setSort('mtime', 'desc');\n\t\t\t/**\n\t\t\t * Override crumb making to add \"Deleted Files\" entry\n\t\t\t * and convert files with \".d\" extensions to a more\n\t\t\t * user friendly name.\n\t\t\t */\n\t\t\tthis.breadcrumb._makeCrumbs = function() {\n\t\t\t\tvar parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, arguments);\n\t\t\t\tfor (var i = 1; i < parts.length; i++) {\n\t\t\t\t\tparts[i].name = getDeletedFileName(parts[i].name);\n\t\t\t\t}\n\t\t\t\treturn parts;\n\t\t\t};\n\n\t\t\tOC.Plugins.attach('OCA.Trashbin.FileList', this);\n\t\t\treturn result;\n\t\t},\n\n\t\t/**\n\t\t * Override to only return read permissions\n\t\t */\n\t\tgetDirectoryPermissions: function() {\n\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE;\n\t\t},\n\n\t\t_setCurrentDir: function(targetDir) {\n\t\t\tOCA.Files.FileList.prototype._setCurrentDir.apply(this, arguments);\n\n\t\t\tvar baseDir = OC.basename(targetDir);\n\t\t\tif (baseDir !== '') {\n\t\t\t\tthis.setPageTitle(getDeletedFileName(baseDir));\n\t\t\t}\n\t\t},\n\n\t\t_createRow: function() {\n\t\t\t// FIXME: MEGAHACK until we find a better solution\n\t\t\tvar tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments);\n\t\t\ttr.find('td.filesize').remove();\n\t\t\treturn tr;\n\t\t},\n\n\t\tgetAjaxUrl: function(action, params) {\n\t\t\tvar q = '';\n\t\t\tif (params) {\n\t\t\t\tq = '?' + OC.buildQueryString(params);\n\t\t\t}\n\t\t\treturn OC.filePath('files_trashbin', 'ajax', action + '.php') + q;\n\t\t},\n\n\t\tsetupUploadEvents: function() {\n\t\t\t// override and do nothing\n\t\t},\n\n\t\tlinkTo: function(dir){\n\t\t\treturn OC.linkTo('files', 'index.php')+\"?view=trashbin&dir=\"+ encodeURIComponent(dir).replace(/%2F/g, '/');\n\t\t},\n\n\t\telementToFile: function($el) {\n\t\t\tvar fileInfo = OCA.Files.FileList.prototype.elementToFile($el);\n\t\t\tif (this.getCurrentDirectory() === '/') {\n\t\t\t\tfileInfo.displayName = getDeletedFileName(fileInfo.name);\n\t\t\t}\n\t\t\t// no size available\n\t\t\tdelete fileInfo.size;\n\t\t\treturn fileInfo;\n\t\t},\n\n\t\tupdateEmptyContent: function(){\n\t\t\tvar exists = this.$fileList.find('tr:first').exists();\n\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', exists);\n\t\t\tthis.$el.find('#filestable th').toggleClass('hidden', !exists);\n\t\t},\n\n\t\t_removeCallback: function(files) {\n\t\t\tvar $el;\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t$el = this.remove(OC.basename(files[i]), {updateSummary: false});\n\t\t\t\tthis.fileSummary.remove({type: $el.attr('data-type'), size: $el.attr('data-size')});\n\t\t\t}\n\t\t\tthis.fileSummary.update();\n\t\t\tthis.updateEmptyContent();\n\t\t},\n\n\t\t_onClickRestoreSelected: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name');\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tvar tr = this.findFileEl(files[i]);\n\t\t\t\tthis.showFileBusyState(tr, true);\n\t\t\t}\n\n\t\t\tthis.fileMultiSelectMenu.toggleLoading('restore', true);\n\t\t\tvar restorePromises = files.map(function(file) {\n\t\t\t\treturn self.client.move(OC.joinPaths('trash', self.getCurrentDirectory(), file), OC.joinPaths('restore', file), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself._removeCallback([file]);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t});\n\t\t\treturn Promise.all(restorePromises).then(\n\t\t\t\tfunction() {\n\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('restore', false);\n\t\t\t\t},\n\t\t\t\tfunction() {\n\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring files from trashbin'));\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t_onClickDeleteSelected: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar allFiles = this.$el.find('.select-all').is(':checked');\n\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name');\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tvar tr = this.findFileEl(files[i]);\n\t\t\t\tthis.showFileBusyState(tr, true);\n\t\t\t}\n\n\t\t\tif (allFiles) {\n\t\t\t\treturn this.client.remove(OC.joinPaths('trash', this.getCurrentDirectory()))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.hideMask();\n\t\t\t\t\t\t\tself.setFiles([]);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while emptying trashbin'));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('delete', true);\n\t\t\t\tvar deletePromises = files.map(function(file) {\n\t\t\t\t\treturn self.client.remove(OC.joinPaths('trash', self.getCurrentDirectory(), file))\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself._removeCallback([file]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t\treturn Promise.all(deletePromises).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('delete', false);\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing files from trashbin'));\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t_onClickFile: function(event) {\n\t\t\tvar mime = $(this).parent().parent().data('mime');\n\t\t\tif (mime !== 'httpd/unix-directory') {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\treturn OCA.Files.FileList.prototype._onClickFile.apply(this, arguments);\n\t\t},\n\n\t\tgeneratePreviewUrl: function(urlSpec) {\n\t\t\treturn OC.generateUrl('/apps/files_trashbin/preview?') + $.param(urlSpec);\n\t\t},\n\n\t\tgetDownloadUrl: function() {\n\t\t\t// no downloads\n\t\t\treturn '#';\n\t\t},\n\n\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because the trashbin doesn't have\n\t\t\t// storage info like free space / used space\n\t\t},\n\n\t\tisSelectedDeletable: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\t/**\n\t\t * Returns list of webdav properties to request\n\t\t */\n\t\t_getWebdavProperties: function() {\n\t\t\treturn [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION].concat(this.filesClient.getPropfindProperties());\n\t\t},\n\n\t\t/**\n\t\t * Reloads the file list using ajax call\n\t\t *\n\t\t * @return ajax call object\n\t\t */\n\t\treload: function() {\n\t\t\tthis._selectedFiles = {};\n\t\t\tthis._selectionSummary.clear();\n\t\t\tthis.$el.find('.select-all').prop('checked', false);\n\t\t\tthis.showMask();\n\t\t\tif (this._reloadCall) {\n\t\t\t\tthis._reloadCall.abort();\n\t\t\t}\n\t\t\tthis._reloadCall = this.client.getFolderContents(\n\t\t\t\t'trash/' + this.getCurrentDirectory(), {\n\t\t\t\t\tincludeParent: false,\n\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t}\n\t\t\t);\n\t\t\tvar callBack = this.reloadCallback.bind(this);\n\t\t\treturn this._reloadCall.then(callBack, callBack);\n\t\t},\n\t\treloadCallback: function(status, result) {\n\t\t\tdelete this._reloadCall;\n\t\t\tthis.hideMask();\n\n\t\t\tif (status === 401) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Firewall Blocked request?\n\t\t\tif (status === 403) {\n\t\t\t\t// Go home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\tOC.Notification.show(t('files', 'This operation is forbidden'));\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Did share service die or something else fail?\n\t\t\tif (status === 500) {\n\t\t\t\t// Go home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\tOC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'));\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (status === 404) {\n\t\t\t\t// go back home\n\t\t\t\tthis.changeDirectory('/');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// aborted ?\n\t\t\tif (status === 0){\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.setFiles(result);\n\t\t\treturn true;\n\t\t},\n\n\t});\n\n\tOCA.Trashbin.FileList = FileList;\n})();\n\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/lib/loader.js!./trash.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2014\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name,\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext,\\n#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext span {\\n cursor: default; }\\n\\n#app-content-trashbin .summary :last-child {\\n padding: 0; }\\n\\n#app-content-trashbin #filestable .summary .filesize {\\n display: none; }\\n\", \"\"]);\n\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n"],"sourceRoot":""}
\ No newline at end of file diff --git a/apps/files_trashbin/lib/Controller/PreviewController.php b/apps/files_trashbin/lib/Controller/PreviewController.php index f79e19a463e..ace3d10bf98 100644 --- a/apps/files_trashbin/lib/Controller/PreviewController.php +++ b/apps/files_trashbin/lib/Controller/PreviewController.php @@ -85,8 +85,8 @@ class PreviewController extends Controller { */ public function getPreview( int $fileId, - int $x = 44, - int $y = 44 + int $x = 128, + int $y = 128 ) { if ($x === 0 || $y === 0) { diff --git a/apps/files_trashbin/src/app.js b/apps/files_trashbin/src/app.js index 3f6fd011238..2bc8e08b812 100644 --- a/apps/files_trashbin/src/app.js +++ b/apps/files_trashbin/src/app.js @@ -47,7 +47,7 @@ OCA.Trashbin.App = { }, { name: 'delete', - displayName: t('files', 'Delete'), + displayName: t('files_trashbin', 'Delete permanently'), iconClass: 'icon-delete', } ], @@ -95,7 +95,7 @@ OCA.Trashbin.App = { fileActions.registerAction({ name: 'Delete', - displayName: t('files', 'Delete'), + displayName: t('files_trashbin', 'Delete permanently'), mime: 'all', permissions: OC.PERMISSION_READ, iconClass: 'icon-delete', diff --git a/apps/theming/l10n/zh_CN.js b/apps/theming/l10n/zh_CN.js index c86be6f881a..a8fb5b1f8cb 100644 --- a/apps/theming/l10n/zh_CN.js +++ b/apps/theming/l10n/zh_CN.js @@ -13,7 +13,7 @@ OC.L10N.register( "The given slogan is too long" : "输入的标语过长", "The given color is invalid" : "提供的颜色无效", "The file was uploaded" : "文件已上传", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "上传的文件超过了php.ini中指定的upload_max_filesize指令配置", + "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 指令", "The file was only partially uploaded" : "文件仅部分上传", "No file was uploaded" : "没有上传文件", diff --git a/apps/theming/l10n/zh_CN.json b/apps/theming/l10n/zh_CN.json index e37808584e4..064852a19c1 100644 --- a/apps/theming/l10n/zh_CN.json +++ b/apps/theming/l10n/zh_CN.json @@ -11,7 +11,7 @@ "The given slogan is too long" : "输入的标语过长", "The given color is invalid" : "提供的颜色无效", "The file was uploaded" : "文件已上传", - "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "上传的文件超过了php.ini中指定的upload_max_filesize指令配置", + "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 指令", "The file was only partially uploaded" : "文件仅部分上传", "No file was uploaded" : "没有上传文件", diff --git a/core/l10n/cs.js b/core/l10n/cs.js index c6b4a05eee7..57d1c38ef40 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Stroj na kterém se nachází databáze", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Zadejte port spolu s názvem hostitele (t. j., localhost:5432).", "Performance warning" : "Varování o výkonu", + "You chose SQLite as database." : "Zvolíte jako databázi SQLite.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite by mělo být použito pouze pro opravdu malé a vývojové instance. Pro produkční použití doporučujeme použít robustnější databázové řešení.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Pokud používáte klienty pro synchronizaci souborů, je použití SQLite silně nedoporučeno.", "Finish setup" : "Dokončit nastavení", "Finishing …" : "Dokončování…", "Need help?" : "Potřebujete nápovědu?", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index 7165ab07c26..bf05b769d37 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -307,6 +307,9 @@ "Database host" : "Stroj na kterém se nachází databáze", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Zadejte port spolu s názvem hostitele (t. j., localhost:5432).", "Performance warning" : "Varování o výkonu", + "You chose SQLite as database." : "Zvolíte jako databázi SQLite.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite by mělo být použito pouze pro opravdu malé a vývojové instance. Pro produkční použití doporučujeme použít robustnější databázové řešení.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Pokud používáte klienty pro synchronizaci souborů, je použití SQLite silně nedoporučeno.", "Finish setup" : "Dokončit nastavení", "Finishing …" : "Dokončování…", "Need help?" : "Potřebujete nápovědu?", diff --git a/core/l10n/de.js b/core/l10n/de.js index 974a412d729..5d20dbee6ed 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Datenbank-Host", "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.", + "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.", "Finish setup" : "Installation abschließen", "Finishing …" : "Abschließen…", "Need help?" : "Hilfe nötig?", diff --git a/core/l10n/de.json b/core/l10n/de.json index 0a01ce01af9..71272503fd5 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -307,6 +307,9 @@ "Database host" : "Datenbank-Host", "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.", + "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.", "Finish setup" : "Installation abschließen", "Finishing …" : "Abschließen…", "Need help?" : "Hilfe nötig?", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index a9ea1780ed0..25ff879df9e 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Datenbank-Host", "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." : "Sie haben 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.", + "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.", "Finish setup" : "Installation abschließen", "Finishing …" : "Abschließen…", "Need help?" : "Hilfe nötig?", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 63a7e15d688..2f0068c7720 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -307,6 +307,9 @@ "Database host" : "Datenbank-Host", "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." : "Sie haben 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.", + "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.", "Finish setup" : "Installation abschließen", "Finishing …" : "Abschließen…", "Need help?" : "Hilfe nötig?", diff --git a/core/l10n/el.js b/core/l10n/el.js index 5ceb5bdc26a..738aab3782a 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -59,6 +59,7 @@ OC.L10N.register( "Failed to authenticate, try again" : "Αποτυχία πιστοποίησης, δοκιμάστε πάλι", "seconds ago" : "δευτερόλεπτα πριν", "View changelog" : "Εμφάνιση αλλαγών", + "Could not load your contacts" : "Αδυναμία φόρτωσης των επαφών σας", "Search contacts …" : "Αναζήτηση επαφών ...", "No contacts found" : "Δεν βρέθηκαν επαφές", "Show all contacts …" : "Εμφάνιση όλων των επαφών ...", @@ -74,10 +75,12 @@ OC.L10N.register( "Choose a password for the public link" : "Επιλέξτε συνθηματικό για τον δημόσιο σύνδεσμο", "Choose a password for the public link or press the \"Enter\" key" : "Επιλέξτε ένα συνθηματικό για την δημόσια διεύθυνση ή πατήστε το \"Enter\" πλήκτρο", "Copied!" : "Αντιγράφτηκε!", + "Copy link" : "Αντιγραφή συνδέσμου", "Not supported!" : "Δεν υποστηρίζεται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", "Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.", "Copy" : "Αντιγραφή", + "Unable to create a link share" : "Αδυναμία δημιουργίας συνδέσμου κοινοποίησης", "Resharing is not allowed" : "Δεν επιτρέπεται να διαμοιραστεί ξανά", "Link" : "Σύνδεσμος", "Hide download" : "Απόκρυψη λήψης", @@ -92,7 +95,9 @@ OC.L10N.register( "Set expiration date" : "Ορισμός ημερομηνίας λήξης", "Expiration" : "Λήξη", "Expiration date" : "Ημερομηνία λήξης", + "Note to recipient" : "Σημείωση προς τον παραλήπτη", "Unshare" : "Αναίρεση διαμοιρασμού", + "Delete share link" : "Διαγραφή συνδέσμου κοινοποίησης", "Share to {name}" : "Διαμοιρασμός με {name}", "Share link" : "Διαμοιρασμός συνδέσμου", "Could not unshare" : "Δεν μπορεί να γίνει αναίρεση διαμοιρασμού", diff --git a/core/l10n/el.json b/core/l10n/el.json index 8011730a552..4009339d44c 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -57,6 +57,7 @@ "Failed to authenticate, try again" : "Αποτυχία πιστοποίησης, δοκιμάστε πάλι", "seconds ago" : "δευτερόλεπτα πριν", "View changelog" : "Εμφάνιση αλλαγών", + "Could not load your contacts" : "Αδυναμία φόρτωσης των επαφών σας", "Search contacts …" : "Αναζήτηση επαφών ...", "No contacts found" : "Δεν βρέθηκαν επαφές", "Show all contacts …" : "Εμφάνιση όλων των επαφών ...", @@ -72,10 +73,12 @@ "Choose a password for the public link" : "Επιλέξτε συνθηματικό για τον δημόσιο σύνδεσμο", "Choose a password for the public link or press the \"Enter\" key" : "Επιλέξτε ένα συνθηματικό για την δημόσια διεύθυνση ή πατήστε το \"Enter\" πλήκτρο", "Copied!" : "Αντιγράφτηκε!", + "Copy link" : "Αντιγραφή συνδέσμου", "Not supported!" : "Δεν υποστηρίζεται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", "Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.", "Copy" : "Αντιγραφή", + "Unable to create a link share" : "Αδυναμία δημιουργίας συνδέσμου κοινοποίησης", "Resharing is not allowed" : "Δεν επιτρέπεται να διαμοιραστεί ξανά", "Link" : "Σύνδεσμος", "Hide download" : "Απόκρυψη λήψης", @@ -90,7 +93,9 @@ "Set expiration date" : "Ορισμός ημερομηνίας λήξης", "Expiration" : "Λήξη", "Expiration date" : "Ημερομηνία λήξης", + "Note to recipient" : "Σημείωση προς τον παραλήπτη", "Unshare" : "Αναίρεση διαμοιρασμού", + "Delete share link" : "Διαγραφή συνδέσμου κοινοποίησης", "Share to {name}" : "Διαμοιρασμός με {name}", "Share link" : "Διαμοιρασμός συνδέσμου", "Could not unshare" : "Δεν μπορεί να γίνει αναίρεση διαμοιρασμού", diff --git a/core/l10n/eo.js b/core/l10n/eo.js index 67bd4a9e438..05d6c04e52b 100644 --- a/core/l10n/eo.js +++ b/core/l10n/eo.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Datumbaza gastigo", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Bv. entajpi la pordan numeron kune kun la gastiga nomo (ekzemple: localhost:5432).", "Performance warning" : "Rendimenta averto", + "You chose SQLite as database." : "Vi elektis datumbazon „SQLite“.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite estu nur uzita por minimuma kaj programista servilo. Por produkta medio, ni rekomendas uzi alian tipon de datumbazo.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se vi uzas klientojn por sinkronigi dosierojn, oni ne rekomendas datumbazon SQLite.", "Finish setup" : "Fini la instalon", "Finishing …" : "Finante...", "Need help?" : "Ĉu necesas helpo?", diff --git a/core/l10n/eo.json b/core/l10n/eo.json index 91a0ff714ff..35fa5d36d81 100644 --- a/core/l10n/eo.json +++ b/core/l10n/eo.json @@ -307,6 +307,9 @@ "Database host" : "Datumbaza gastigo", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Bv. entajpi la pordan numeron kune kun la gastiga nomo (ekzemple: localhost:5432).", "Performance warning" : "Rendimenta averto", + "You chose SQLite as database." : "Vi elektis datumbazon „SQLite“.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite estu nur uzita por minimuma kaj programista servilo. Por produkta medio, ni rekomendas uzi alian tipon de datumbazo.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se vi uzas klientojn por sinkronigi dosierojn, oni ne rekomendas datumbazon SQLite.", "Finish setup" : "Fini la instalon", "Finishing …" : "Finante...", "Need help?" : "Ĉu necesas helpo?", diff --git a/core/l10n/es.js b/core/l10n/es.js index c39c8e9428d..51796c38c87 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -241,6 +241,7 @@ OC.L10N.register( "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">the documentation page about this</a>." : "Se usa 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 está la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">página de documentación sobre esto</a>.", + "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.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "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." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", @@ -308,6 +309,9 @@ OC.L10N.register( "Database host" : "Host de la base de datos", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique el numero del puerto junto al nombre del host (p.e., localhost:5432).", "Performance warning" : "Advertencia de rendimiento", + "You chose SQLite as database." : "Has elegido SQLite como base de datos.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite solo debería usarse para instancias mínimas y de desarrollo. Para producción recomendamos un motor de bases de datos diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "SI usas clientes para sincronizar archivos, el uso del SQLite está fuertemente desaconsejado.", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", "Need help?" : "¿Necesita ayuda?", diff --git a/core/l10n/es.json b/core/l10n/es.json index c42f37c9d57..13974ed610d 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -239,6 +239,7 @@ "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">the documentation page about this</a>." : "Se usa 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 está la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">página de documentación sobre esto</a>.", + "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.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "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." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", @@ -306,6 +307,9 @@ "Database host" : "Host de la base de datos", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique el numero del puerto junto al nombre del host (p.e., localhost:5432).", "Performance warning" : "Advertencia de rendimiento", + "You chose SQLite as database." : "Has elegido SQLite como base de datos.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite solo debería usarse para instancias mínimas y de desarrollo. Para producción recomendamos un motor de bases de datos diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "SI usas clientes para sincronizar archivos, el uso del SQLite está fuertemente desaconsejado.", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", "Need help?" : "¿Necesita ayuda?", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index b5c2f4d488b..21461765260 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -306,6 +306,7 @@ OC.L10N.register( "Database host" : "Hôte de la base de données", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", "Performance warning" : "Avertissement à propos des performances", + "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", "Finish setup" : "Terminer l'installation", "Finishing …" : "Finalisation …", "Need help?" : "Besoin d'aide ?", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index faff62f0e80..401a23ecb51 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -304,6 +304,7 @@ "Database host" : "Hôte de la base de données", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", "Performance warning" : "Avertissement à propos des performances", + "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", "Finish setup" : "Terminer l'installation", "Finishing …" : "Finalisation …", "Need help?" : "Besoin d'aide ?", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 30e41edcda7..1c278dd84cf 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Servidor da base de datos", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Especifique o numero do porto xunto co nome do anfitrión (p. ex. localhost:5432)", "Performance warning" : "Aviso de rendemento", + "You chose SQLite as database." : "Escolleu SQLite como base de datos.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite só debería empregarse para instancias mínimas e de desenvolvemento. Para produción recomendámoslle que empregue unha infraestrutura de base de datos diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se emprega clientes para a sincronización dos ficheiros, desaconséllase encarecidamente o uso de SQLite.", "Finish setup" : "Rematar a configuración", "Finishing …" : "Rematando …", "Need help?" : "Precisa axuda?", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index 7214821952a..799e4d9b813 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -307,6 +307,9 @@ "Database host" : "Servidor da base de datos", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Especifique o numero do porto xunto co nome do anfitrión (p. ex. localhost:5432)", "Performance warning" : "Aviso de rendemento", + "You chose SQLite as database." : "Escolleu SQLite como base de datos.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite só debería empregarse para instancias mínimas e de desenvolvemento. Para produción recomendámoslle que empregue unha infraestrutura de base de datos diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se emprega clientes para a sincronización dos ficheiros, desaconséllase encarecidamente o uso de SQLite.", "Finish setup" : "Rematar a configuración", "Finishing …" : "Rematando …", "Need help?" : "Precisa axuda?", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index d90bac3432e..9d63ce9a963 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -8,18 +8,20 @@ OC.L10N.register( "Invalid file provided" : "Pateiktas neteisingas failas", "No image or file provided" : "Nenurodytas paveikslas ar failas", "Unknown filetype" : "Nežinomas failo tipas", - "Invalid image" : "Netinkamas paveikslėlis", + "Invalid image" : "Netinkamas paveikslas", "An error occurred. Please contact your admin." : "Įvyko klaida. Susisiekite su savo administratoriumi.", "No temporary profile picture available, try again" : "Nėra laikino profilio paveikslo, bandykite dar kartą", "No crop data provided" : "Nenurodyti apkirpimo duomenys", "No valid crop data provided" : "Pateikti neteisingi apkirpimo duomenys", "Crop is not square" : "Apkirpimo plotas nėra kvadratas", "State token does not match" : "Išorinės sistemos leidimai nesutampa su turimais.", - "Password reset is disabled" : "Slaptažodžio atkūrimas išjungtas", + "Could not complete login" : "Nepavyko užbaigti prisijungimo", + "Your login token is invalid or has expired" : "Jūsų prieigos raktas yra neteisingas arba pasibaigė jo galiojimo laikas", + "Password reset is disabled" : "Slaptažodžio atstatymas išjungtas", "Couldn't reset password because the token is invalid" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos raktas yra neteisingas", "Couldn't reset password because the token is expired" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos rakto galiojimas yra pasibaigęs", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško dėl to, kad šiam naudotojo vardui nėra nustatytas joks el. pašto adresas. Susisiekite su savo administratoriumi.", - "%s password reset" : "%s slaptažodžio atkūrimas", + "%s password reset" : "%s slaptažodžio atstatymas", "Password reset" : "Slaptažodžio atstatymas", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite mygtuką slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite nuorodą slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", @@ -36,7 +38,6 @@ OC.L10N.register( "Updating database schema" : "Atnaujinama duomenų bazės struktūra", "Updated database" : "Atnaujinta duomenų bazė", "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Tikrinama ar duomenų bazės struktūra gali būti atnaujinta (priklausomai nuo duomenų bazės dydžio, operacija gali ilgai užtrukti)", - "Checked database schema update" : "Tikrinama duomenų bazės struktūra", "Checking updates of apps" : "Tikrinami programėlių atnaujinimai", "Checking for update of app \"%s\" in appstore" : "Ieškomas įskiepio %s atnaujinimas programinės įrangos saugykloje", "Update app \"%s\" from appstore" : "Atnaujinkite \"%s\" įskiepį iš programinės įrangos saugyklos", @@ -68,12 +69,8 @@ OC.L10N.register( "No action available" : "Jokie veiksmai negalimi", "Error fetching contact actions" : "Klaida gaunant veiksmus darbui su adresatais", "Error" : "Klaida", - "Error while sharing" : "Klaida, dalijimosi metu", + "Error while sharing" : "Klaida bendrinant", "Error removing share" : "Klaida šalinant viešinį", - "Shared with you and the group {group} by {owner}" : "{owner} pasidalino su Jumis ir {group} grupe", - "Shared with you by {owner}" : "{owner} pasidalino su Jumis ", - "Choose a password for the public link" : "Pasirinkite slaptažodį, skirtą nuorodai atidaryti", - "Choose a password for the public link or press the \"Enter\" key" : "Pasirinkite slaptažodį, skirtą nuorodai atidaryti arba paspauskite \"Enter\" klavišą", "Copied!" : "Nukopijuota!", "Copy link" : "Kopijuoti nuorodą", "Not supported!" : "Nepalaikoma!", @@ -99,8 +96,6 @@ OC.L10N.register( "remote" : "nuotolinis", "remote group" : "nuotolinė grupė", "email" : "elektroninis paštas", - "shared by {sharer}" : "pasidalino {sharer}", - "Can reshare" : "Galima dalintis su kitais", "Can edit" : "Galima redaguoti", "Can create" : "Galima kurti nauja", "Can change" : "Galima keisti", @@ -120,15 +115,15 @@ OC.L10N.register( "Name, federated cloud ID or email address..." : "Vardas, federacinės debesijos ID arba el. pašto adresas...", "Name..." : "Vardas...", "Shared" : "Bendrinama", - "Shared with" : "Pasidalinta su", - "Shared by" : "Dalinasi", + "Shared with" : "Bendrinama su", + "Shared by" : "Bendrina", "Non-existing tag #{tag}" : "Neegzistuojanti žymė #{tag}", "restricted" : "apribota", "invisible" : "nematoma", "({scope})" : "({scope})", "Delete" : "Ištrinti", "Rename" : "Pervadinti", - "Collaborative tags" : "Žymes skirtos dalinimuisi su kitais asmenimis", + "Collaborative tags" : "Bendradarbiavimo žymės", "No tags found" : "Nerasta jokių žymių", "Settings" : "Nustatymai", "Connection to server lost" : "Ryšys su serveriu nutrūko", @@ -152,9 +147,9 @@ OC.L10N.register( "read-only" : "tik skaitymui", "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai","{count} nesuderinami rinkmenų pakeitimai"], "New Files" : "Nauji failai", - "Already existing files" : "Egzistuojančios rinkmenos saugykloje", - "Which files do you want to keep?" : "Kurias rinkmenas norite pasilikti?", - "If you select both versions, the copied file will have a number added to its name." : "Jei pasiliekate abi rinkmenų versijas, nukopijuota rinkmena turės papildomą numerį pavadinime.", + "Already existing files" : "Jau esami failai", + "Which files do you want to keep?" : "Kuriuos failus norite pasilikti?", + "If you select both versions, the copied file will have a number added to its name." : "Jei pasiliekate abi versijas, prie nukopijuoto failo pavadinimo bus pridėtas skaičius.", "Cancel" : "Atsisakyti", "Continue" : "Tęsti", "(all selected)" : "(visi pažymėti)", @@ -175,22 +170,19 @@ OC.L10N.register( "unknown text" : "nežinomas tekstas", "Hello world!" : "Sveikas, pasauli!", "sunny" : "saulėta", - "Hello {name}, the weather is {weather}" : "Sveiki {name}, šiandienos oras yra {weather}", + "Hello {name}, the weather is {weather}" : "Sveiki {name}, šiandien yra {weather}", "Hello {name}" : "Sveiki, {name},", "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Paieškos rezultatai:<script>alert(1)</script></strong>", - "new" : "Naujas", - "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, jei šis puslapis bus neuždarytas, yra tikimybė, kad sistemos atnaujinimas nepavyks.", + "The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, palikus šį puslapį atvertą, kai kuriose aplinkose šis procesas gali būti nutrauktas.", "Update to {version}" : "Atnaujinti į versiją {version}", "An error occurred." : "Įvyko klaida.", - "Please reload the page." : "Prašome iš naujo įkelti puslapį.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas nebuvo sėkmingas. Detalesnę problemos sprendimo informaciją rasite <a href=\"{url}\">forumo puslapyje</a>.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">NextCloud bendruomenei</a>.", + "Please reload the page." : "Prašome įkelti puslapį iš naujo.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas buvo nesėkmingas. Išsamesnei informacijai apie šią problemą, <a href=\"{url}\">žiūrėkite įrašą mūsų forume</a>.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie šią problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud bendruomenei</a>.", "Continue to Nextcloud" : "Eiti į NextCloud", - "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."], + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Atnaujinimas buvo sėkmingas. Po %n sekundės būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundžių būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundžių būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundės būsite nukreipti į Nextcloud."], "Searching other places" : "Ieškoma kitose vietose", - "No search results in other folders for {tag}{filter}{endtag}" : "Nėra paieškos rezultatų kituose aplankuose naudojat paieškos kriterijus: {tag}{filter}{endtag}", - "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"], + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatas kitame aplanke","{count} paieškos rezultatai kitame aplanke","{count} paieškos rezultatų kitame aplanke","{count} paieškos rezultatas kitame aplanke"], "Personal" : "Asmeniniai", "Users" : "Naudotojai", "Apps" : "Programėlės", @@ -198,6 +190,7 @@ OC.L10N.register( "Help" : "Pagalba", "Access forbidden" : "Prieiga uždrausta", "File not found" : "Failas nerastas", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Nepavyko rasti dokumento serveryje. Galbūt, viešinys buvo ištrintas arba pasibaigė jo galiojimo laikas?", "Back to %s" : "Atgal į %s", "Internal Server Error" : "Vidinė serverio klaida", "The server was unable to complete your request." : "Serveriui nepavyko įvykdyti jūsų užklausos.", @@ -228,8 +221,6 @@ OC.L10N.register( "Database name" : "Duomenų bazės pavadinimas", "Database tablespace" : "Duomenų bazės loginis saugojimas", "Database host" : "Duomenų bazės serveris", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Prašome nurodyti domeno vardą ir protokolo numerį, pavyzdžiui: \"localhost:5432\".", - "Performance warning" : "Sistemos našumo problemos perspėjimas", "Finish setup" : "Užbaigti sąranką", "Finishing …" : "Užbaigiama …", "Need help?" : "Reikia pagalbos?", @@ -249,6 +240,7 @@ OC.L10N.register( "Please try again or contact your administrator." : "Pabandykite dar kartą arba susisiekite su savo administratoriumi.", "Username or email" : "Naudotojo vardas ar el. paštas", "Log in" : "Prisijungti", + "Wrong username or password." : "Neteisingas naudotojo vardas ar slaptažodis.", "User disabled" : "Naudotojas išjungtas", "Forgot password?" : "Pamiršote slaptažodį?", "Back to login" : "Grįžti prie prisijungimo", @@ -257,24 +249,23 @@ OC.L10N.register( "Account access" : "Paskyros prieiga", "New password" : "Naujas slaptažodis", "New Password" : "Naujas slaptažodis", + "This share is password-protected" : "Šis viešinys yra apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", "Two-factor authentication" : "Dviejų žingsnių prisijungimas", "Use backup code" : "Naudoti atsarginį kodą", - "Cancel log in" : "Atšaukti prisijungimą", + "Cancel log in" : "Atsisakyti prisijungimo", "Error while validating your second factor" : "Klaida antrame prisijungimo žingsnyje", "Access through untrusted domain" : "Prieiga iš nepatikimo domeno", "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." : "Susisiekite su savo administratoriumi. Jeigu jūs esate administratorius, pataisykite \"trusted_domains\" nustatymą config/config.php faile, kaip tai parodyta pavyzdyje config.sample.php faile.", "App update required" : "Reikalingas įskiepio atnaujinimas", "%1$s will be updated to version %2$s" : "%1$s bus atnaujinta į versiją %2$s", - "These apps will be updated:" : "Šie įskiepiai bus atnaujinti:", - "These incompatible apps will be disabled:" : "Šie nesuderinami įskiepiai bus išjungti:", - "The theme %s has been disabled." : "Spalvų tema %s buvo panaikinta.", + "These apps will be updated:" : "Bus atnaujintos šios programėlės:", + "These incompatible apps will be disabled:" : "Bus išjungtos šios nesuderinamos programėlės:", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Prie pradedant, užtikrinkite, kad duomenų bazė, konfigūracijos aplankas ir duomenų aplankas turi atsarginę kopiją.", "Start update" : "Pradėti atnaujinimą", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Norėdami sutaupyti laiko, galite paleisti šią komandą diegimo aplanke:", - "Detailed logs" : "Tikslus žurnalas", + "Detailed logs" : "Išsamūs žurnalai", "Update needed" : "Reikalingas atnaujinimas", - "Please use the command line updater because you have a big instance with more than 50 users." : "Naudokite komandinę eilutę atnaujinimui, nes sistema turi daugiau nei 50 vartotojų.", "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Prireikus pagalbos, žiūrėkite <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">dokumentaciją</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." : "Suprantu, kad atnaujinimui naudodamas vartotojo aplinką, rizikuoju, kad sistemos darbas sutriks ir prisijungę vartotojai gali netekti duomenų, turiu atsarginę duomenų kopiją ir žinau, kaip atstatyti duomenis nesėkmės atveju.", "Upgrade via web on my own risk" : "Atnaujinti per interneto naršyklę prisiimant riziką", @@ -289,7 +280,6 @@ OC.L10N.register( "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Buvo problemų su kodo vientisumo patikrinimu. Daugiau informacijos…</a>", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Slaptažodžio atkūrimo nuoroda buvo išsiųsta nurodytu elektroninio pašto adresu. Jei greitu laiku negausite laiško, patikrinkite \"šlamšto\" skyrių elektroniniame pašte. <br> Jei laiško vis tiek nerandate, susiekite su sistemos administratoriumi.", "Error setting expiration date" : "Klaida nustatant dalinimosi pabaigos laiką", - "The public link will expire no later than {days} days after it is created" : "Nuoroda veiks ne mažiau kaip {days} dienas nuo sukūrimo", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} pasidalino per nuorodą", "{sharee} (group)" : "{sharee} (grupė)", "{sharee} (remote)" : "{sharee} (nuotolinis)", @@ -316,6 +306,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "Šis puslapis bus įkeltas iš naujo, kai %s egzempliorius bus ir vėl prieinamas.", "Thank you for your patience." : "Dėkojame už jūsų kantrumą.", "Copy URL" : "Kopijuoti URL", - "Enable" : "Įjungti" + "Enable" : "Įjungti", + "Further information how to configure this can be found in the %sdocumentation%s." : "Tolimesnę informaciją apie tai, kaip tai konfigūruoti, galite rasti %sdokumentacijoje%s." }, "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index 1660b41d05f..ee4ced59da5 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -6,18 +6,20 @@ "Invalid file provided" : "Pateiktas neteisingas failas", "No image or file provided" : "Nenurodytas paveikslas ar failas", "Unknown filetype" : "Nežinomas failo tipas", - "Invalid image" : "Netinkamas paveikslėlis", + "Invalid image" : "Netinkamas paveikslas", "An error occurred. Please contact your admin." : "Įvyko klaida. Susisiekite su savo administratoriumi.", "No temporary profile picture available, try again" : "Nėra laikino profilio paveikslo, bandykite dar kartą", "No crop data provided" : "Nenurodyti apkirpimo duomenys", "No valid crop data provided" : "Pateikti neteisingi apkirpimo duomenys", "Crop is not square" : "Apkirpimo plotas nėra kvadratas", "State token does not match" : "Išorinės sistemos leidimai nesutampa su turimais.", - "Password reset is disabled" : "Slaptažodžio atkūrimas išjungtas", + "Could not complete login" : "Nepavyko užbaigti prisijungimo", + "Your login token is invalid or has expired" : "Jūsų prieigos raktas yra neteisingas arba pasibaigė jo galiojimo laikas", + "Password reset is disabled" : "Slaptažodžio atstatymas išjungtas", "Couldn't reset password because the token is invalid" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos raktas yra neteisingas", "Couldn't reset password because the token is expired" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos rakto galiojimas yra pasibaigęs", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško dėl to, kad šiam naudotojo vardui nėra nustatytas joks el. pašto adresas. Susisiekite su savo administratoriumi.", - "%s password reset" : "%s slaptažodžio atkūrimas", + "%s password reset" : "%s slaptažodžio atstatymas", "Password reset" : "Slaptažodžio atstatymas", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite mygtuką slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite nuorodą slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", @@ -34,7 +36,6 @@ "Updating database schema" : "Atnaujinama duomenų bazės struktūra", "Updated database" : "Atnaujinta duomenų bazė", "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Tikrinama ar duomenų bazės struktūra gali būti atnaujinta (priklausomai nuo duomenų bazės dydžio, operacija gali ilgai užtrukti)", - "Checked database schema update" : "Tikrinama duomenų bazės struktūra", "Checking updates of apps" : "Tikrinami programėlių atnaujinimai", "Checking for update of app \"%s\" in appstore" : "Ieškomas įskiepio %s atnaujinimas programinės įrangos saugykloje", "Update app \"%s\" from appstore" : "Atnaujinkite \"%s\" įskiepį iš programinės įrangos saugyklos", @@ -66,12 +67,8 @@ "No action available" : "Jokie veiksmai negalimi", "Error fetching contact actions" : "Klaida gaunant veiksmus darbui su adresatais", "Error" : "Klaida", - "Error while sharing" : "Klaida, dalijimosi metu", + "Error while sharing" : "Klaida bendrinant", "Error removing share" : "Klaida šalinant viešinį", - "Shared with you and the group {group} by {owner}" : "{owner} pasidalino su Jumis ir {group} grupe", - "Shared with you by {owner}" : "{owner} pasidalino su Jumis ", - "Choose a password for the public link" : "Pasirinkite slaptažodį, skirtą nuorodai atidaryti", - "Choose a password for the public link or press the \"Enter\" key" : "Pasirinkite slaptažodį, skirtą nuorodai atidaryti arba paspauskite \"Enter\" klavišą", "Copied!" : "Nukopijuota!", "Copy link" : "Kopijuoti nuorodą", "Not supported!" : "Nepalaikoma!", @@ -97,8 +94,6 @@ "remote" : "nuotolinis", "remote group" : "nuotolinė grupė", "email" : "elektroninis paštas", - "shared by {sharer}" : "pasidalino {sharer}", - "Can reshare" : "Galima dalintis su kitais", "Can edit" : "Galima redaguoti", "Can create" : "Galima kurti nauja", "Can change" : "Galima keisti", @@ -118,15 +113,15 @@ "Name, federated cloud ID or email address..." : "Vardas, federacinės debesijos ID arba el. pašto adresas...", "Name..." : "Vardas...", "Shared" : "Bendrinama", - "Shared with" : "Pasidalinta su", - "Shared by" : "Dalinasi", + "Shared with" : "Bendrinama su", + "Shared by" : "Bendrina", "Non-existing tag #{tag}" : "Neegzistuojanti žymė #{tag}", "restricted" : "apribota", "invisible" : "nematoma", "({scope})" : "({scope})", "Delete" : "Ištrinti", "Rename" : "Pervadinti", - "Collaborative tags" : "Žymes skirtos dalinimuisi su kitais asmenimis", + "Collaborative tags" : "Bendradarbiavimo žymės", "No tags found" : "Nerasta jokių žymių", "Settings" : "Nustatymai", "Connection to server lost" : "Ryšys su serveriu nutrūko", @@ -150,9 +145,9 @@ "read-only" : "tik skaitymui", "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai","{count} nesuderinami rinkmenų pakeitimai"], "New Files" : "Nauji failai", - "Already existing files" : "Egzistuojančios rinkmenos saugykloje", - "Which files do you want to keep?" : "Kurias rinkmenas norite pasilikti?", - "If you select both versions, the copied file will have a number added to its name." : "Jei pasiliekate abi rinkmenų versijas, nukopijuota rinkmena turės papildomą numerį pavadinime.", + "Already existing files" : "Jau esami failai", + "Which files do you want to keep?" : "Kuriuos failus norite pasilikti?", + "If you select both versions, the copied file will have a number added to its name." : "Jei pasiliekate abi versijas, prie nukopijuoto failo pavadinimo bus pridėtas skaičius.", "Cancel" : "Atsisakyti", "Continue" : "Tęsti", "(all selected)" : "(visi pažymėti)", @@ -173,22 +168,19 @@ "unknown text" : "nežinomas tekstas", "Hello world!" : "Sveikas, pasauli!", "sunny" : "saulėta", - "Hello {name}, the weather is {weather}" : "Sveiki {name}, šiandienos oras yra {weather}", + "Hello {name}, the weather is {weather}" : "Sveiki {name}, šiandien yra {weather}", "Hello {name}" : "Sveiki, {name},", "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Paieškos rezultatai:<script>alert(1)</script></strong>", - "new" : "Naujas", - "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, jei šis puslapis bus neuždarytas, yra tikimybė, kad sistemos atnaujinimas nepavyks.", + "The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, palikus šį puslapį atvertą, kai kuriose aplinkose šis procesas gali būti nutrauktas.", "Update to {version}" : "Atnaujinti į versiją {version}", "An error occurred." : "Įvyko klaida.", - "Please reload the page." : "Prašome iš naujo įkelti puslapį.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas nebuvo sėkmingas. Detalesnę problemos sprendimo informaciją rasite <a href=\"{url}\">forumo puslapyje</a>.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">NextCloud bendruomenei</a>.", + "Please reload the page." : "Prašome įkelti puslapį iš naujo.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas buvo nesėkmingas. Išsamesnei informacijai apie šią problemą, <a href=\"{url}\">žiūrėkite įrašą mūsų forume</a>.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie šią problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud bendruomenei</a>.", "Continue to Nextcloud" : "Eiti į NextCloud", - "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."], + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Atnaujinimas buvo sėkmingas. Po %n sekundės būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundžių būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundžių būsite nukreipti į Nextcloud.","Atnaujinimas buvo sėkmingas. Po %n sekundės būsite nukreipti į Nextcloud."], "Searching other places" : "Ieškoma kitose vietose", - "No search results in other folders for {tag}{filter}{endtag}" : "Nėra paieškos rezultatų kituose aplankuose naudojat paieškos kriterijus: {tag}{filter}{endtag}", - "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"], + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatas kitame aplanke","{count} paieškos rezultatai kitame aplanke","{count} paieškos rezultatų kitame aplanke","{count} paieškos rezultatas kitame aplanke"], "Personal" : "Asmeniniai", "Users" : "Naudotojai", "Apps" : "Programėlės", @@ -196,6 +188,7 @@ "Help" : "Pagalba", "Access forbidden" : "Prieiga uždrausta", "File not found" : "Failas nerastas", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Nepavyko rasti dokumento serveryje. Galbūt, viešinys buvo ištrintas arba pasibaigė jo galiojimo laikas?", "Back to %s" : "Atgal į %s", "Internal Server Error" : "Vidinė serverio klaida", "The server was unable to complete your request." : "Serveriui nepavyko įvykdyti jūsų užklausos.", @@ -226,8 +219,6 @@ "Database name" : "Duomenų bazės pavadinimas", "Database tablespace" : "Duomenų bazės loginis saugojimas", "Database host" : "Duomenų bazės serveris", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Prašome nurodyti domeno vardą ir protokolo numerį, pavyzdžiui: \"localhost:5432\".", - "Performance warning" : "Sistemos našumo problemos perspėjimas", "Finish setup" : "Užbaigti sąranką", "Finishing …" : "Užbaigiama …", "Need help?" : "Reikia pagalbos?", @@ -247,6 +238,7 @@ "Please try again or contact your administrator." : "Pabandykite dar kartą arba susisiekite su savo administratoriumi.", "Username or email" : "Naudotojo vardas ar el. paštas", "Log in" : "Prisijungti", + "Wrong username or password." : "Neteisingas naudotojo vardas ar slaptažodis.", "User disabled" : "Naudotojas išjungtas", "Forgot password?" : "Pamiršote slaptažodį?", "Back to login" : "Grįžti prie prisijungimo", @@ -255,24 +247,23 @@ "Account access" : "Paskyros prieiga", "New password" : "Naujas slaptažodis", "New Password" : "Naujas slaptažodis", + "This share is password-protected" : "Šis viešinys yra apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", "Two-factor authentication" : "Dviejų žingsnių prisijungimas", "Use backup code" : "Naudoti atsarginį kodą", - "Cancel log in" : "Atšaukti prisijungimą", + "Cancel log in" : "Atsisakyti prisijungimo", "Error while validating your second factor" : "Klaida antrame prisijungimo žingsnyje", "Access through untrusted domain" : "Prieiga iš nepatikimo domeno", "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." : "Susisiekite su savo administratoriumi. Jeigu jūs esate administratorius, pataisykite \"trusted_domains\" nustatymą config/config.php faile, kaip tai parodyta pavyzdyje config.sample.php faile.", "App update required" : "Reikalingas įskiepio atnaujinimas", "%1$s will be updated to version %2$s" : "%1$s bus atnaujinta į versiją %2$s", - "These apps will be updated:" : "Šie įskiepiai bus atnaujinti:", - "These incompatible apps will be disabled:" : "Šie nesuderinami įskiepiai bus išjungti:", - "The theme %s has been disabled." : "Spalvų tema %s buvo panaikinta.", + "These apps will be updated:" : "Bus atnaujintos šios programėlės:", + "These incompatible apps will be disabled:" : "Bus išjungtos šios nesuderinamos programėlės:", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Prie pradedant, užtikrinkite, kad duomenų bazė, konfigūracijos aplankas ir duomenų aplankas turi atsarginę kopiją.", "Start update" : "Pradėti atnaujinimą", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Norėdami sutaupyti laiko, galite paleisti šią komandą diegimo aplanke:", - "Detailed logs" : "Tikslus žurnalas", + "Detailed logs" : "Išsamūs žurnalai", "Update needed" : "Reikalingas atnaujinimas", - "Please use the command line updater because you have a big instance with more than 50 users." : "Naudokite komandinę eilutę atnaujinimui, nes sistema turi daugiau nei 50 vartotojų.", "For help, see the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">documentation</a>." : "Prireikus pagalbos, žiūrėkite <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">dokumentaciją</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." : "Suprantu, kad atnaujinimui naudodamas vartotojo aplinką, rizikuoju, kad sistemos darbas sutriks ir prisijungę vartotojai gali netekti duomenų, turiu atsarginę duomenų kopiją ir žinau, kaip atstatyti duomenis nesėkmės atveju.", "Upgrade via web on my own risk" : "Atnaujinti per interneto naršyklę prisiimant riziką", @@ -287,7 +278,6 @@ "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Buvo problemų su kodo vientisumo patikrinimu. Daugiau informacijos…</a>", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Slaptažodžio atkūrimo nuoroda buvo išsiųsta nurodytu elektroninio pašto adresu. Jei greitu laiku negausite laiško, patikrinkite \"šlamšto\" skyrių elektroniniame pašte. <br> Jei laiško vis tiek nerandate, susiekite su sistemos administratoriumi.", "Error setting expiration date" : "Klaida nustatant dalinimosi pabaigos laiką", - "The public link will expire no later than {days} days after it is created" : "Nuoroda veiks ne mažiau kaip {days} dienas nuo sukūrimo", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} pasidalino per nuorodą", "{sharee} (group)" : "{sharee} (grupė)", "{sharee} (remote)" : "{sharee} (nuotolinis)", @@ -314,6 +304,7 @@ "This page will refresh itself when the %s instance is available again." : "Šis puslapis bus įkeltas iš naujo, kai %s egzempliorius bus ir vėl prieinamas.", "Thank you for your patience." : "Dėkojame už jūsų kantrumą.", "Copy URL" : "Kopijuoti URL", - "Enable" : "Įjungti" + "Enable" : "Įjungti", + "Further information how to configure this can be found in the %sdocumentation%s." : "Tolimesnę informaciją apie tai, kaip tai konfigūruoti, galite rasti %sdokumentacijoje%s." },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 9b959d2bfc9..7b1a72f2a08 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Databaseserver", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Geef het poortnummer en servernaam op (bijv. localhost:5432).", "Performance warning" : "Prestatiewaarschuwing", + "You chose SQLite as database." : "Je koos SQLite als database.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite zou alleen moeten worden gebruikt voor minimale en ontwikkelomgevingen. Voor productie raden we aan om een andere database backend te gebruiken.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Als je clients gebruikt voor bestandssynchronisatie wordt het gebruik van SQLite sterk ontraden.", "Finish setup" : "Installatie afronden", "Finishing …" : "Afronden ...", "Need help?" : "Hulp nodig?", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 58ebb4a03e2..fc44b7a88e8 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -307,6 +307,9 @@ "Database host" : "Databaseserver", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Geef het poortnummer en servernaam op (bijv. localhost:5432).", "Performance warning" : "Prestatiewaarschuwing", + "You chose SQLite as database." : "Je koos SQLite als database.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite zou alleen moeten worden gebruikt voor minimale en ontwikkelomgevingen. Voor productie raden we aan om een andere database backend te gebruiken.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Als je clients gebruikt voor bestandssynchronisatie wordt het gebruik van SQLite sterk ontraden.", "Finish setup" : "Installatie afronden", "Finishing …" : "Afronden ...", "Need help?" : "Hulp nodig?", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 9e913e85173..3c83086a6c8 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -152,7 +152,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nazwa lub ID chmury federalnej…", "Name, federated cloud ID or email address..." : "Nazwa, ID chmury federalnej lub adres e-mail…", "Name..." : "Nazwa…", - "Shared" : "Udostępnione", + "Shared" : "Udostępnianie", "Shared with" : "Współdzielone z", "Shared by" : "Udostępnione przez", "Non-existing tag #{tag}" : "Etykieta #{tag} nie istnieje", @@ -175,9 +175,9 @@ OC.L10N.register( "Sending email …" : "Wysyłanie e-mail…", "No" : "Nie", "Yes" : "Tak", - "No files in here" : "Nie ma tu żadnych plików", + "No files in here" : "Brak plików", "New folder" : "Nowy katalog", - "No more subfolders in here" : "Brak tutaj podkatalogów", + "No more subfolders in here" : "Brak podkatalogów", "{newName} already exists" : "{newName} już istnieje", "Choose" : "Wybierz", "Move" : "Przenieś", @@ -185,18 +185,18 @@ OC.L10N.register( "OK" : "OK", "Error loading message template: {error}" : "Błąd podczas ładowania szablonu wiadomości: {error}", "read-only" : "tylko odczyt", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"], + "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt pliku","{count} konflikty plików","{count} konfliktów plików","{count} konfliktów plików"], "One file conflict" : "Konflikt pliku", "New Files" : "Nowe pliki", "Already existing files" : "Już istniejące pliki", "Which files do you want to keep?" : "Które pliki chcesz zachować?", - "If you select both versions, the copied file will have a number added to its name." : "Jeśli wybierzesz obie wersje, skopiowany plik będzie miał dodany numerek w nazwie", + "If you select both versions, the copied file will have a number added to its name." : "Jeśli wybierzesz obie wersje, skopiowany plik będzie miał dodany numer w nazwie", "Cancel" : "Anuluj", - "Continue" : "Kontynuuj ", - "(all selected)" : "(wszystkie zaznaczone)", - "({count} selected)" : "({count} zaznaczonych)", - "Error loading file exists template" : "Błąd podczas ładowania szablonu istniejącego pliku", - "Pending" : "W oczekiwaniu", + "Continue" : "Kontynuuj", + "(all selected)" : "(wybrano wszystkie)", + "({count} selected)" : "(wybrano {count})", + "Error loading file exists template" : "Błąd podczas ładowania pliku istniejącego szablonu", + "Pending" : "Oczekuje", "Copy to {folder}" : "Kopiuj do {folder}", "Move to {folder}" : "Przenieś do {folder}", "Very weak password" : "Bardzo słabe hasło", @@ -204,19 +204,19 @@ OC.L10N.register( "So-so password" : "Mało skomplikowane hasło", "Good password" : "Dobre hasło", "Strong password" : "Silne hasło", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer WWW nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Twój serwer WWW nie jest poprawnie skonfigurowany aby poprawnie wyświetlić \"{url}\". Więcej informacji można znaleźć w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", - "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation page</a>. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Twój serwer internetowy nie jest prawidłowo skonfigurowany, aby rozwiązać problem \"{url}\". Jest to najprawdopodobniej związane z konfiguracją serwera www, który nie został zaktualizowany do bezpośredniego dostępu tego katalogu. Proszę porównać swoją konfigurację z dostarczonymi regułami przepisywania w \".htaccess\" dla Apache lub podanym w dokumentacji dla Nginx na <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">stronie dokumentacji</a>. W Nginx zazwyczaj są to linie zaczynające się od \"location ~\", które wymagają aktualizacji.", - "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Twój serwer internetowy nie jest poprawnie skonfigurowany do dostarczania plików .woff2. Zazwyczaj jest to problem z konfiguracją Nginx. W przypadku usługi Nextcloud 15 wymagana jest korekta w celu dostarczenia plików .woff2. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP wydaje się być błędnie skonfigurowane odnośnie zapytania o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca pustą wartość.", - "Please check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sprawdź proszę <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację instalacji ↗</a> dla konfiguracji PHP Twojego serwera względem informacji konfiguracyjnych dokumentacji, zwłaszcza kiedy używasz php-fpm.", - "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." : "Konfiguracja tylko do odczytu została włączona. Zapobiega to ustawianiu niektórych konfiguracji za pośrednictwem interfejsu internetowego. Ponadto, plik musi być zapisywalny ręcznie dla każdej aktualizacji.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Twoja baza danych nie działa z poziomem izolacji transakcji \"READ COMMITTED\". Może to powodować problemy kiedy wiele akcji będzie wykonywanych równolegle.", - "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Brak modułu PHP 'fileinfo'. Zalecamy włączenie tego modułu, aby uzyskać najlepsze wyniki przy rozpoznawaniu typów 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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation ↗</a> for more information." : "Transakcyjne blokowanie plików jest wyłączone. Może to powodować problemy w działaniu. Włącz 'filelocking.enabled' w config.php, aby rozwiązać te problemy. Sprawdź <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację ↗</a>, aby uzyskać więcej informacji.", - "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Twoja instancja nie jest zainstalowana w katalogu głównym dla domeny, a używasz systemowego Cron'a, zatem mogą wystąpić kłopoty w poprawnym generowaniu URL'a. Aby zapobiec problemów ustaw proszę opcję \"overwrite.cli.url\" w Twoim pliku config.php do katalogu głównego Twojej instalacji (sugerowany: \"{suggestedOverwriteCliURL}\")", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nie było możliwe uruchomienie zadania cron przy pomocy CLI. Pojawił się następujący błąd techniczny: ", - "Last background job execution ran {relativeTime}. Something seems wrong." : "Ostatnie zadanie w tle trwało {relativeTime}. Coś jest nie tak.", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer internetowy nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV może być uszkodzony.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Serwer internetowy nie został poprawnie skonfigurowany do rozwiązania problemu z \"{url}\". Więcej informacji można znaleźć w <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", + "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation page</a>. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Serwer internetowy nie został poprawnie skonfigurowany do rozwiązania problemu z \"{url}\". Jest to najprawdopodobniej związane z konfiguracją serwera, który nie został zaktualizowany do bezpośredniego dostępu tego katalogu. Proszę porównać swoją konfigurację z dostarczonymi regułami przepisywania w \".htaccess\" dla Apache lub podanymi w dokumentacji dla Nginx na <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">stronie dokumentacji</a>. W Nginx są to zazwyczaj linie zaczynające się od \"location ~\", które wymagają aktualizacji.", + "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Serwer internetowy nie został poprawnie skonfigurowany do dostarczania plików .woff2. Zazwyczaj jest to problem z konfiguracją Nginx. Dla Nextcloud 15 wymagane jest dostosowanie jej, aby dostarczać pliki .woff2. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Wygląda na to, że PHP nie jest poprawnie skonfigurowany do wysyłania zapytań o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca tylko pustą wartość.", + "Please check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sprawdź <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację instalacji ↗</a> w celu uzyskania informacji o konfiguracji PHP dla Twojego serwera, szczególnie przy użyciu php-fpm.", + "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." : "Włączono konfigurację tylko do odczytu. Zapobiega to ustawianiu niektórych konfiguracji przez interfejs internetowy. Ponadto plik musi być zapisany ręcznie przy każdej aktualizacji.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza danych nie działa z poziomem izolacji transakcji „READ COMMITTED”. Może to powodować problemy, gdy wiele akcji jest wykonywanych równolegle.", + "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Brak modułu PHP 'fileinfo'. Zdecydowanie zaleca się, aby ten moduł mógł uzyskać najlepsze wyniki przy wykrywaniu typu 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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation ↗</a> for more information." : "Transakcyjne blokowanie plików jest wyłączone, co może prowadzić do problemów z prędkością działania. Włącz „filelocking.enabled” w config.php, aby uniknąć tych problemów. Więcej informacji można znaleźć w <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji ↗</a>.", + "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Jeśli instalacja nie jest zainstalowana w katalogu głównym domeny i używa systemu Cron, mogą wystąpić problemy z generowaniem adresu URL. Aby uniknąć tych problemów, ustaw opcję „overwrite.cli.url” w pliku config.php na ścieżkę do katalogu głównego instalacji (sugestia: „{suggestedOverwriteCliURL}”).", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nie można było wykonać zadania cron przez CLI. Pojawiły się następujące błędy techniczne:", + "Last background job execution ran {relativeTime}. Something seems wrong." : "Ostatnie zadanie wykonane w tle trwało {relativeTime}. Coś jest nie tak.", "Check the background job settings" : "Sprawdź ustawienia zadań w tle", "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." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być osiągniętych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będą działać. Dostęp zdalny do plików oraz wysyłanie powiadomień mailowych również może nie działać. Sugerujemy udostępnienie połączenia z Internetem temu serwerowi, jeśli chcesz mieć pełną funkcjonalność.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Nie skonfigurowano pamięci cache. Jeśli to możliwe skonfiguruj pamięć cache, aby zwiększyć wydajność. Więcej informacji można znaleźć w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", @@ -255,16 +255,16 @@ OC.L10N.register( "sunny" : "słoneczna", "Hello {name}, the weather is {weather}" : "Cześć {name}, dzisiejsza pogoda jest {weather}", "Hello {name}" : "Witaj {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>To są twoje wyniki wyszukiwania<script>ostrzeżenie(1)</script></strong>", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>To są twoje wyniki wyszukiwania<script>alert(1)</script></strong>", "new" : "nowy", - "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n plików","pobrano %n plików","pobrano %n plików"], + "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n pliki","pobrano %n plików","pobrano %n plików"], "The update is in progress, leaving this page might interrupt the process in some environments." : "Trwa aktualizacja. W niektórych przypadkach, opuszczenie tej strony może przerwać ten proces.", "Update to {version}" : "Uaktualnij do {version}", - "An error occurred." : "Wystąpił błąd", - "Please reload the page." : "Proszę przeładować stronę", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizacja nie powiodła się. Aby uzyskać więcej informacji, <a href=\"{url}\">sprawdź nasz post na forum</a> omawiający ten problem.", - "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ę. Prosimy, zgłoś ten problem do<a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">społeczności Nextcloud</a>.", - "Continue to Nextcloud" : "Kontynuuj w Nextcloud", + "An error occurred." : "Wystąpił błąd.", + "Please reload the page." : "Proszę odświeżyć stronę.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizacja nie powiodła się. Aby uzyskać więcej informacji, <a href=\"{url}\">zapoznaj się z naszym postem na forum</a> dotyczącym tego problemu.", + "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 Nextcloud" : "Kontynuuj na Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundę.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundy.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekund.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundy."], "Searching other places" : "Przeszukaj inne miejsca", "No search results in other folders for {tag}{filter}{endtag}" : "Brak wyników wyszukiwania w innych katalogach dla {tag}{filter}{endtag}", @@ -272,15 +272,15 @@ OC.L10N.register( "Personal" : "Osobiste", "Users" : "Użytkownicy", "Apps" : "Aplikacje", - "Admin" : "Administracja", + "Admin" : "Administrator", "Help" : "Pomoc", "Access forbidden" : "Dostęp zabroniony", - "File not found" : "Nie odnaleziono pliku", - "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Dokument nie został odnaleziony na serwerze. Udostępnienie mogło wygasnąć lub zostało usunięte.", + "File not found" : "Nie znaleziono pliku", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Dokument nie został odnaleziony na serwerze. Może udostępnienie zostało usunięte lub wygasło?", "Back to %s" : "Powrót do %s", "Internal Server Error" : "Błąd wewnętrzny serwera", - "The server was unable to complete your request." : "Serwer nie był w stanie dokończyć Twojego żądania.", - "If this happens again, please send the technical details below to the server administrator." : "Jeśli to się powtórzy, wyślij proszę szczegóły techniczne administratorowi serwera.", + "The server was unable to complete your request." : "Serwer nie mógł zakończyć żądania.", + "If this happens again, please send the technical details below to the server administrator." : "Jeśli to się powtórzy, wyślij poniższe szczegóły techniczne administratorowi serwera.", "More details can be found in the server log." : "Więcej szczegółów można znaleźć w logu serwera.", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Komputer bazy danych", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Wskaż proszę numer portu wraz z adresem (np. localhost:5432).", "Performance warning" : "Ostrzeżenie o wydajności", + "You chose SQLite as database." : "Wybrałeś SQLite jako bazę danych.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite powinien być używany tylko dla instancji minimalnych i rozwojowych. Dla rozwiniętej zalecamy inne zaplecze bazy danych.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Jeśli używasz klientów do synchronizacji plików, używanie SQLite jest mocno odradzane.", "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę…", "Need help?" : "Potrzebujesz pomocy?", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index b1fe1e1dcdd..618a94eac0c 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -150,7 +150,7 @@ "Name or federated cloud ID..." : "Nazwa lub ID chmury federalnej…", "Name, federated cloud ID or email address..." : "Nazwa, ID chmury federalnej lub adres e-mail…", "Name..." : "Nazwa…", - "Shared" : "Udostępnione", + "Shared" : "Udostępnianie", "Shared with" : "Współdzielone z", "Shared by" : "Udostępnione przez", "Non-existing tag #{tag}" : "Etykieta #{tag} nie istnieje", @@ -173,9 +173,9 @@ "Sending email …" : "Wysyłanie e-mail…", "No" : "Nie", "Yes" : "Tak", - "No files in here" : "Nie ma tu żadnych plików", + "No files in here" : "Brak plików", "New folder" : "Nowy katalog", - "No more subfolders in here" : "Brak tutaj podkatalogów", + "No more subfolders in here" : "Brak podkatalogów", "{newName} already exists" : "{newName} już istnieje", "Choose" : "Wybierz", "Move" : "Przenieś", @@ -183,18 +183,18 @@ "OK" : "OK", "Error loading message template: {error}" : "Błąd podczas ładowania szablonu wiadomości: {error}", "read-only" : "tylko odczyt", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"], + "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt pliku","{count} konflikty plików","{count} konfliktów plików","{count} konfliktów plików"], "One file conflict" : "Konflikt pliku", "New Files" : "Nowe pliki", "Already existing files" : "Już istniejące pliki", "Which files do you want to keep?" : "Które pliki chcesz zachować?", - "If you select both versions, the copied file will have a number added to its name." : "Jeśli wybierzesz obie wersje, skopiowany plik będzie miał dodany numerek w nazwie", + "If you select both versions, the copied file will have a number added to its name." : "Jeśli wybierzesz obie wersje, skopiowany plik będzie miał dodany numer w nazwie", "Cancel" : "Anuluj", - "Continue" : "Kontynuuj ", - "(all selected)" : "(wszystkie zaznaczone)", - "({count} selected)" : "({count} zaznaczonych)", - "Error loading file exists template" : "Błąd podczas ładowania szablonu istniejącego pliku", - "Pending" : "W oczekiwaniu", + "Continue" : "Kontynuuj", + "(all selected)" : "(wybrano wszystkie)", + "({count} selected)" : "(wybrano {count})", + "Error loading file exists template" : "Błąd podczas ładowania pliku istniejącego szablonu", + "Pending" : "Oczekuje", "Copy to {folder}" : "Kopiuj do {folder}", "Move to {folder}" : "Przenieś do {folder}", "Very weak password" : "Bardzo słabe hasło", @@ -202,19 +202,19 @@ "So-so password" : "Mało skomplikowane hasło", "Good password" : "Dobre hasło", "Strong password" : "Silne hasło", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer WWW nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Twój serwer WWW nie jest poprawnie skonfigurowany aby poprawnie wyświetlić \"{url}\". Więcej informacji można znaleźć w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", - "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation page</a>. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Twój serwer internetowy nie jest prawidłowo skonfigurowany, aby rozwiązać problem \"{url}\". Jest to najprawdopodobniej związane z konfiguracją serwera www, który nie został zaktualizowany do bezpośredniego dostępu tego katalogu. Proszę porównać swoją konfigurację z dostarczonymi regułami przepisywania w \".htaccess\" dla Apache lub podanym w dokumentacji dla Nginx na <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">stronie dokumentacji</a>. W Nginx zazwyczaj są to linie zaczynające się od \"location ~\", które wymagają aktualizacji.", - "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Twój serwer internetowy nie jest poprawnie skonfigurowany do dostarczania plików .woff2. Zazwyczaj jest to problem z konfiguracją Nginx. W przypadku usługi Nextcloud 15 wymagana jest korekta w celu dostarczenia plików .woff2. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP wydaje się być błędnie skonfigurowane odnośnie zapytania o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca pustą wartość.", - "Please check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sprawdź proszę <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację instalacji ↗</a> dla konfiguracji PHP Twojego serwera względem informacji konfiguracyjnych dokumentacji, zwłaszcza kiedy używasz php-fpm.", - "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." : "Konfiguracja tylko do odczytu została włączona. Zapobiega to ustawianiu niektórych konfiguracji za pośrednictwem interfejsu internetowego. Ponadto, plik musi być zapisywalny ręcznie dla każdej aktualizacji.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Twoja baza danych nie działa z poziomem izolacji transakcji \"READ COMMITTED\". Może to powodować problemy kiedy wiele akcji będzie wykonywanych równolegle.", - "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Brak modułu PHP 'fileinfo'. Zalecamy włączenie tego modułu, aby uzyskać najlepsze wyniki przy rozpoznawaniu typów 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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation ↗</a> for more information." : "Transakcyjne blokowanie plików jest wyłączone. Może to powodować problemy w działaniu. Włącz 'filelocking.enabled' w config.php, aby rozwiązać te problemy. Sprawdź <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację ↗</a>, aby uzyskać więcej informacji.", - "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Twoja instancja nie jest zainstalowana w katalogu głównym dla domeny, a używasz systemowego Cron'a, zatem mogą wystąpić kłopoty w poprawnym generowaniu URL'a. Aby zapobiec problemów ustaw proszę opcję \"overwrite.cli.url\" w Twoim pliku config.php do katalogu głównego Twojej instalacji (sugerowany: \"{suggestedOverwriteCliURL}\")", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nie było możliwe uruchomienie zadania cron przy pomocy CLI. Pojawił się następujący błąd techniczny: ", - "Last background job execution ran {relativeTime}. Something seems wrong." : "Ostatnie zadanie w tle trwało {relativeTime}. Coś jest nie tak.", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer internetowy nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV może być uszkodzony.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Serwer internetowy nie został poprawnie skonfigurowany do rozwiązania problemu z \"{url}\". Więcej informacji można znaleźć w <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", + "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation page</a>. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Serwer internetowy nie został poprawnie skonfigurowany do rozwiązania problemu z \"{url}\". Jest to najprawdopodobniej związane z konfiguracją serwera, który nie został zaktualizowany do bezpośredniego dostępu tego katalogu. Proszę porównać swoją konfigurację z dostarczonymi regułami przepisywania w \".htaccess\" dla Apache lub podanymi w dokumentacji dla Nginx na <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">stronie dokumentacji</a>. W Nginx są to zazwyczaj linie zaczynające się od \"location ~\", które wymagają aktualizacji.", + "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Serwer internetowy nie został poprawnie skonfigurowany do dostarczania plików .woff2. Zazwyczaj jest to problem z konfiguracją Nginx. Dla Nextcloud 15 wymagane jest dostosowanie jej, aby dostarczać pliki .woff2. Porównaj swoją konfigurację Nginx z zalecaną konfiguracją w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Wygląda na to, że PHP nie jest poprawnie skonfigurowany do wysyłania zapytań o zmienne środowiskowe systemu. Test gentenv(\"PATH\") zwraca tylko pustą wartość.", + "Please check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sprawdź <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentację instalacji ↗</a> w celu uzyskania informacji o konfiguracji PHP dla Twojego serwera, szczególnie przy użyciu php-fpm.", + "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." : "Włączono konfigurację tylko do odczytu. Zapobiega to ustawianiu niektórych konfiguracji przez interfejs internetowy. Ponadto plik musi być zapisany ręcznie przy każdej aktualizacji.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza danych nie działa z poziomem izolacji transakcji „READ COMMITTED”. Może to powodować problemy, gdy wiele akcji jest wykonywanych równolegle.", + "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Brak modułu PHP 'fileinfo'. Zdecydowanie zaleca się, aby ten moduł mógł uzyskać najlepsze wyniki przy wykrywaniu typu 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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation ↗</a> for more information." : "Transakcyjne blokowanie plików jest wyłączone, co może prowadzić do problemów z prędkością działania. Włącz „filelocking.enabled” w config.php, aby uniknąć tych problemów. Więcej informacji można znaleźć w <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji ↗</a>.", + "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Jeśli instalacja nie jest zainstalowana w katalogu głównym domeny i używa systemu Cron, mogą wystąpić problemy z generowaniem adresu URL. Aby uniknąć tych problemów, ustaw opcję „overwrite.cli.url” w pliku config.php na ścieżkę do katalogu głównego instalacji (sugestia: „{suggestedOverwriteCliURL}”).", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nie można było wykonać zadania cron przez CLI. Pojawiły się następujące błędy techniczne:", + "Last background job execution ran {relativeTime}. Something seems wrong." : "Ostatnie zadanie wykonane w tle trwało {relativeTime}. Coś jest nie tak.", "Check the background job settings" : "Sprawdź ustawienia zadań w tle", "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." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być osiągniętych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będą działać. Dostęp zdalny do plików oraz wysyłanie powiadomień mailowych również może nie działać. Sugerujemy udostępnienie połączenia z Internetem temu serwerowi, jeśli chcesz mieć pełną funkcjonalność.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Nie skonfigurowano pamięci cache. Jeśli to możliwe skonfiguruj pamięć cache, aby zwiększyć wydajność. Więcej informacji można znaleźć w naszej <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">dokumentacji</a>.", @@ -253,16 +253,16 @@ "sunny" : "słoneczna", "Hello {name}, the weather is {weather}" : "Cześć {name}, dzisiejsza pogoda jest {weather}", "Hello {name}" : "Witaj {name}", - "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>To są twoje wyniki wyszukiwania<script>ostrzeżenie(1)</script></strong>", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>To są twoje wyniki wyszukiwania<script>alert(1)</script></strong>", "new" : "nowy", - "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n plików","pobrano %n plików","pobrano %n plików"], + "_download %n file_::_download %n files_" : ["pobrano %n plik","pobrano %n pliki","pobrano %n plików","pobrano %n plików"], "The update is in progress, leaving this page might interrupt the process in some environments." : "Trwa aktualizacja. W niektórych przypadkach, opuszczenie tej strony może przerwać ten proces.", "Update to {version}" : "Uaktualnij do {version}", - "An error occurred." : "Wystąpił błąd", - "Please reload the page." : "Proszę przeładować stronę", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizacja nie powiodła się. Aby uzyskać więcej informacji, <a href=\"{url}\">sprawdź nasz post na forum</a> omawiający ten problem.", - "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ę. Prosimy, zgłoś ten problem do<a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">społeczności Nextcloud</a>.", - "Continue to Nextcloud" : "Kontynuuj w Nextcloud", + "An error occurred." : "Wystąpił błąd.", + "Please reload the page." : "Proszę odświeżyć stronę.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizacja nie powiodła się. Aby uzyskać więcej informacji, <a href=\"{url}\">zapoznaj się z naszym postem na forum</a> dotyczącym tego problemu.", + "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 Nextcloud" : "Kontynuuj na Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundę.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundy.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekund.","Aktualizacja przebiegła pomyślnie. Przekieruję Ciebie do Nextcloud w %n sekundy."], "Searching other places" : "Przeszukaj inne miejsca", "No search results in other folders for {tag}{filter}{endtag}" : "Brak wyników wyszukiwania w innych katalogach dla {tag}{filter}{endtag}", @@ -270,15 +270,15 @@ "Personal" : "Osobiste", "Users" : "Użytkownicy", "Apps" : "Aplikacje", - "Admin" : "Administracja", + "Admin" : "Administrator", "Help" : "Pomoc", "Access forbidden" : "Dostęp zabroniony", - "File not found" : "Nie odnaleziono pliku", - "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Dokument nie został odnaleziony na serwerze. Udostępnienie mogło wygasnąć lub zostało usunięte.", + "File not found" : "Nie znaleziono pliku", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Dokument nie został odnaleziony na serwerze. Może udostępnienie zostało usunięte lub wygasło?", "Back to %s" : "Powrót do %s", "Internal Server Error" : "Błąd wewnętrzny serwera", - "The server was unable to complete your request." : "Serwer nie był w stanie dokończyć Twojego żądania.", - "If this happens again, please send the technical details below to the server administrator." : "Jeśli to się powtórzy, wyślij proszę szczegóły techniczne administratorowi serwera.", + "The server was unable to complete your request." : "Serwer nie mógł zakończyć żądania.", + "If this happens again, please send the technical details below to the server administrator." : "Jeśli to się powtórzy, wyślij poniższe szczegóły techniczne administratorowi serwera.", "More details can be found in the server log." : "Więcej szczegółów można znaleźć w logu serwera.", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", @@ -307,6 +307,9 @@ "Database host" : "Komputer bazy danych", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Wskaż proszę numer portu wraz z adresem (np. localhost:5432).", "Performance warning" : "Ostrzeżenie o wydajności", + "You chose SQLite as database." : "Wybrałeś SQLite jako bazę danych.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite powinien być używany tylko dla instancji minimalnych i rozwojowych. Dla rozwiniętej zalecamy inne zaplecze bazy danych.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Jeśli używasz klientów do synchronizacji plików, używanie SQLite jest mocno odradzane.", "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę…", "Need help?" : "Potrzebujesz pomocy?", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 3d8576c712d..2f1f0db8b5f 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Host do banco de dados", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique o nome do host e porta (ex., localhost:5432).", "Performance warning" : "Alerta de performance", + "You chose SQLite as database." : "Você escolheu o SQLite como banco de dados.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "O SQLite deve ser usado apenas para instâncias mínimas e de desenvolvimento. Para produção, recomendamos um banco de dados diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se você usa clientes para sincronização de arquivos, o SQLite é altamente desencorajado.", "Finish setup" : "Concluir configuração", "Finishing …" : "Finalizando...", "Need help?" : "Precisa de ajuda?", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index e45c72cbf59..7cc37d01c75 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -307,6 +307,9 @@ "Database host" : "Host do banco de dados", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique o nome do host e porta (ex., localhost:5432).", "Performance warning" : "Alerta de performance", + "You chose SQLite as database." : "Você escolheu o SQLite como banco de dados.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "O SQLite deve ser usado apenas para instâncias mínimas e de desenvolvimento. Para produção, recomendamos um banco de dados diferente.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Se você usa clientes para sincronização de arquivos, o SQLite é altamente desencorajado.", "Finish setup" : "Concluir configuração", "Finishing …" : "Finalizando...", "Need help?" : "Precisa de ajuda?", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index 22c435606c0..b2c944253b8 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Домаћин базе", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Наведите и број порта у имену домаћина (нпр. localhost:5432).", "Performance warning" : "Упозорење о перформансама", + "You chose SQLite as database." : "Одабрали сте SQLite за базу података.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite треба да се користи само за најмање инстанце или за инстанце за развој. За продукцију, препоручујемо други тип база података.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Коришћење SQLite базе података нарочите није препоручљиво ако користите клијенте за синхронизацију фајлова.", "Finish setup" : "Заврши подешавање", "Finishing …" : "Завршавам…", "Need help?" : "Треба Вам помоћ?", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index cb37b108433..6019af518f1 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -307,6 +307,9 @@ "Database host" : "Домаћин базе", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Наведите и број порта у имену домаћина (нпр. localhost:5432).", "Performance warning" : "Упозорење о перформансама", + "You chose SQLite as database." : "Одабрали сте SQLite за базу података.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite треба да се користи само за најмање инстанце или за инстанце за развој. За продукцију, препоручујемо други тип база података.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Коришћење SQLite базе података нарочите није препоручљиво ако користите клијенте за синхронизацију фајлова.", "Finish setup" : "Заврши подешавање", "Finishing …" : "Завршавам…", "Need help?" : "Треба Вам помоћ?", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 95cd32e63f7..34cae0b9510 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -309,6 +309,9 @@ OC.L10N.register( "Database host" : "Veritabanı sunucusu", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Lütfen sunucu adının yanında kapı numarasını da belirtin (Örnek: localhost:5432).", "Performance warning" : "Başarım uyarısı", + "You chose SQLite as database." : "Veritabanı olarak SQLite seçtiniz.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite yalnız küçük ve geliştirme ortamları için seçilmelidir. Üretim ortamları için farklı bir veritabanı kullanmanız önerilir.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Dosya eşitlemesi için istemcileri kullanıyorsanız SQLite kullanımından kaçınmalısınız.", "Finish setup" : "Kurulumu tamamla", "Finishing …" : "Tamamlanıyor ...", "Need help?" : "Yardım gerekiyor mu?", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 47197cdc3f5..9e4c8a22f72 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -307,6 +307,9 @@ "Database host" : "Veritabanı sunucusu", "Please specify the port number along with the host name (e.g., localhost:5432)." : "Lütfen sunucu adının yanında kapı numarasını da belirtin (Örnek: localhost:5432).", "Performance warning" : "Başarım uyarısı", + "You chose SQLite as database." : "Veritabanı olarak SQLite seçtiniz.", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite yalnız küçük ve geliştirme ortamları için seçilmelidir. Üretim ortamları için farklı bir veritabanı kullanmanız önerilir.", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Dosya eşitlemesi için istemcileri kullanıyorsanız SQLite kullanımından kaçınmalısınız.", "Finish setup" : "Kurulumu tamamla", "Finishing …" : "Tamamlanıyor ...", "Need help?" : "Yardım gerekiyor mu?", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index b39972dc22d..c2b67ab68ac 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -65,6 +65,7 @@ OC.L10N.register( "Password" : "密码", "Failed to authenticate, try again" : "授权失败,请重试", "seconds ago" : "几秒前", + "Link to a {label}" : "链接到 {label}", "New in" : "新品", "View changelog" : "查看更新记录", "Could not load your contacts" : "无法加载您的联系人", @@ -240,6 +241,7 @@ OC.L10N.register( "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">the documentation page about this</a>." : "所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持。详细信息请阅读<a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">相关文档页面</a>。", + "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文件中的临时目录路径或增加该路径的可用空间。", "Error occurred while checking server setup" : "检查服务器设置时出错", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。", "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}\"。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。", @@ -307,6 +309,9 @@ OC.L10N.register( "Database host" : "数据库主机", "Please specify the port number along with the host name (e.g., localhost:5432)." : "请填写主机名称和端口号(例如,localhost:5432)。", "Performance warning" : "性能警告", + "You chose SQLite as database." : "您选择SQLite作为数据库。", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite应只用于最小化和开发实例。生产环境我们推荐使用不同的数据库后端。", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "如果您使用文件同步客户端,强烈不建议使用SQLite。", "Finish setup" : "安装完成", "Finishing …" : "正在完成 …", "Need help?" : "需要帮助?", @@ -330,6 +335,7 @@ OC.L10N.register( "Please try again or contact your administrator." : "请重试或联系您的管理员。", "Username or email" : "用户名或邮箱", "Log in" : "登录", + "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 秒之后再尝试。", "Forgot password?" : "忘记密码?", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index f2b09fa967d..6f1bc9c2857 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -63,6 +63,7 @@ "Password" : "密码", "Failed to authenticate, try again" : "授权失败,请重试", "seconds ago" : "几秒前", + "Link to a {label}" : "链接到 {label}", "New in" : "新品", "View changelog" : "查看更新记录", "Could not load your contacts" : "无法加载您的联系人", @@ -238,6 +239,7 @@ "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 <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">the documentation page about this</a>." : "所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持。详细信息请阅读<a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">相关文档页面</a>。", + "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文件中的临时目录路径或增加该路径的可用空间。", "Error occurred while checking server setup" : "检查服务器设置时出错", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。", "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}\"。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。", @@ -305,6 +307,9 @@ "Database host" : "数据库主机", "Please specify the port number along with the host name (e.g., localhost:5432)." : "请填写主机名称和端口号(例如,localhost:5432)。", "Performance warning" : "性能警告", + "You chose SQLite as database." : "您选择SQLite作为数据库。", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite应只用于最小化和开发实例。生产环境我们推荐使用不同的数据库后端。", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "如果您使用文件同步客户端,强烈不建议使用SQLite。", "Finish setup" : "安装完成", "Finishing …" : "正在完成 …", "Need help?" : "需要帮助?", @@ -328,6 +333,7 @@ "Please try again or contact your administrator." : "请重试或联系您的管理员。", "Username or email" : "用户名或邮箱", "Log in" : "登录", + "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 秒之后再尝试。", "Forgot password?" : "忘记密码?", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 6b2db30da97..6903c6ebcb0 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -17,7 +17,7 @@ OC.L10N.register( "Education Edition" : "Wersja edukacyjna", "Enterprise bundle" : "Zestaw biznesowy", "Groupware bundle" : "Zestaw pracy grupowej", - "Social sharing bundle" : "Zestaw współdzielenia społecznościowego", + "Social sharing bundle" : "Pakiet udostępniania społecznego", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", "PHP with a version lower than %s is required." : "Wersja PHP jest niższa niż %s, która jest wymagana.", "%sbit or higher PHP required." : "%sbit lub wyższe PHP jest wymagane.", @@ -74,12 +74,12 @@ OC.L10N.register( "Share" : "Udostępnianie", "Overview" : "Przegląd", "Basic settings" : "Ustawienia podstawowe", - "Sharing" : "Udostępnianie", + "Sharing" : "Współdzielenie", "Security" : "Bepieczeństwo", "Theming" : "Motyw", "Groupware" : "Praca grupowa", "Additional settings" : "Ustawienia dodatkowe", - "Personal info" : "Informacje Osobiste", + "Personal info" : "Informacje osobiste", "Mobile & desktop" : "Mobilne i stacjonarne", "Unlimited" : "Nielimitowane", "Verifying" : "Weryfikacja", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index d4593e13117..3b0565d0f42 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -15,7 +15,7 @@ "Education Edition" : "Wersja edukacyjna", "Enterprise bundle" : "Zestaw biznesowy", "Groupware bundle" : "Zestaw pracy grupowej", - "Social sharing bundle" : "Zestaw współdzielenia społecznościowego", + "Social sharing bundle" : "Pakiet udostępniania społecznego", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", "PHP with a version lower than %s is required." : "Wersja PHP jest niższa niż %s, która jest wymagana.", "%sbit or higher PHP required." : "%sbit lub wyższe PHP jest wymagane.", @@ -72,12 +72,12 @@ "Share" : "Udostępnianie", "Overview" : "Przegląd", "Basic settings" : "Ustawienia podstawowe", - "Sharing" : "Udostępnianie", + "Sharing" : "Współdzielenie", "Security" : "Bepieczeństwo", "Theming" : "Motyw", "Groupware" : "Praca grupowa", "Additional settings" : "Ustawienia dodatkowe", - "Personal info" : "Informacje Osobiste", + "Personal info" : "Informacje osobiste", "Mobile & desktop" : "Mobilne i stacjonarne", "Unlimited" : "Nielimitowane", "Verifying" : "Weryfikacja", diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js index 1995f215992..75b663a434a 100644 --- a/lib/l10n/zh_CN.js +++ b/lib/l10n/zh_CN.js @@ -195,6 +195,7 @@ OC.L10N.register( "Could not create user" : "无法创建用户", "User disabled" : "用户已禁用", "Login canceled by app" : "已通过应用取消登录", + "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "应用 \"%1$s\" 无法安装,因为不能满足以下依赖: %2$s", "a safe home for all your data" : "给您所有数据一个安全的家", "File is currently busy, please try again later" : "文件当前正忙,请稍后再试", "Can't read file" : "无法读取文件", @@ -231,6 +232,10 @@ OC.L10N.register( "Your data directory is invalid" : "您的数据目录无效", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "请确定在根目录下有一个名为\".ocdata\"的文件。", "Action \"%s\" not supported or implemented." : "操作 \"%s\" 不支持或未实现。", + "Authentication failed, wrong token or provider ID given" : "认证失败,提供了错误的token或提供者ID", + "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "缺少参数来完成请求。缺少的参数为:\"%s\"", + "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" 已被云联合提供商 \"%2$s\" 使用", + "Cloud Federation Provider with ID: \"%s\" does not exist." : "ID为 \"%s\" 的云联合提供商不存在。", "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d。", "Storage unauthorized. %s" : "存储认证失败。%s", "Storage incomplete configuration. %s" : "存储未完成配置。%s", @@ -259,6 +264,7 @@ OC.L10N.register( "%s via %s" : "%s 通过 %s", "No app name specified" : "没有指定的 App 名称", "App '%s' could not be installed!" : "应用 '%s' 无法被安装!", - "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系:%s" + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系:%s", + "ID \"%s\" already used by cloud federation provider \"%s\"" : "ID \"%s\" 已被云联合提供商 \"%s\" 使用" }, "nplurals=1; plural=0;"); diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json index b729038c92e..5eb1458eca3 100644 --- a/lib/l10n/zh_CN.json +++ b/lib/l10n/zh_CN.json @@ -193,6 +193,7 @@ "Could not create user" : "无法创建用户", "User disabled" : "用户已禁用", "Login canceled by app" : "已通过应用取消登录", + "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "应用 \"%1$s\" 无法安装,因为不能满足以下依赖: %2$s", "a safe home for all your data" : "给您所有数据一个安全的家", "File is currently busy, please try again later" : "文件当前正忙,请稍后再试", "Can't read file" : "无法读取文件", @@ -229,6 +230,10 @@ "Your data directory is invalid" : "您的数据目录无效", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "请确定在根目录下有一个名为\".ocdata\"的文件。", "Action \"%s\" not supported or implemented." : "操作 \"%s\" 不支持或未实现。", + "Authentication failed, wrong token or provider ID given" : "认证失败,提供了错误的token或提供者ID", + "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "缺少参数来完成请求。缺少的参数为:\"%s\"", + "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" 已被云联合提供商 \"%2$s\" 使用", + "Cloud Federation Provider with ID: \"%s\" does not exist." : "ID为 \"%s\" 的云联合提供商不存在。", "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d。", "Storage unauthorized. %s" : "存储认证失败。%s", "Storage incomplete configuration. %s" : "存储未完成配置。%s", @@ -257,6 +262,7 @@ "%s via %s" : "%s 通过 %s", "No app name specified" : "没有指定的 App 名称", "App '%s' could not be installed!" : "应用 '%s' 无法被安装!", - "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系:%s" + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系:%s", + "ID \"%s\" already used by cloud federation provider \"%s\"" : "ID \"%s\" 已被云联合提供商 \"%s\" 使用" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/settings/l10n/eo.js b/settings/l10n/eo.js index 62f7da32e64..66d7fb8b6be 100644 --- a/settings/l10n/eo.js +++ b/settings/l10n/eo.js @@ -1,6 +1,17 @@ OC.L10N.register( "settings", { + "{actor} added you to group {group}" : "{actor} aldonis vin al grupo {group}", + "You added {user} to group {group}" : "Vi aldonis uzanton {user} al grupo {group}", + "{actor} added {user} to group {group}" : "{actor} aldonis uzanton {user} al grupo {group}", + "An administrator added you to group {group}" : "Administranto aldonis vin al grupo {group}", + "An administrator added {user} to group {group}" : "Administranto aldonis uzanton {user} al grupo {group}", + "{actor} removed you from group {group}" : "{actor} forigis vin el grupo {group}", + "You removed {user} from group {group}" : "Vi forigis uzanton {user} el grupo {group}", + "{actor} removed {user} from group {group}" : "{actor} forigi uzanton {user} el grupo {group}", + "An administrator removed you from group {group}" : "Administranto forigis vin el grupo {group}", + "An administrator removed {user} from group {group}" : "Administranto forigis uzanton {user} el grupo {group}", + "Your <strong>group memberships</strong> were modified" : "Viaj <strong>grupaj membrecoj</strong> modifiĝis", "{actor} changed your password" : "{actor} ŝanĝis vian pasvorton", "You changed your password" : "Vi ŝanĝis vian pasvorton", "Your password was reset by an administrator" : "Vian pasvorton restarigis administranton", @@ -125,6 +136,8 @@ OC.L10N.register( "Devices & sessions" : "Aparatoj kaj seancoj", "Web, desktop and mobile clients currently logged in to your account." : "Reta, surtabla kaj portebla klientoj nun konektitaj al via konto.", "Error while creating device token" : "Eraro dum kreo de aparata ĵetono", + "Error while updating device token scope" : "Eraro dum ĝisdatigo de la amplekso de la aparataj ĵetonoj", + "Error while updating device token name" : "Eraro dum ĝisdatigo de la nomo de la aparataj ĵetonoj", "Error while deleting the token" : "Eraro dum forigado de la ĵetono", "App name" : "Aplikaĵa nomo", "Create new app password" : "Krei novan aplikaĵan pasvorton", @@ -133,6 +146,7 @@ OC.L10N.register( "Username" : "Uzantonomo", "Password" : "Pasvorto", "Done" : "Farita", + "Show QR code for mobile apps" : "Montri rapidrespondan (QR) kodon por porteblaj aplikaĵoj", "Copied!" : "Kopiita!", "Copy" : "Kopii", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficialaj aplikaĵoj estas programataj de kaj ene de la komunumo. Ili alportas kernajn trajtojn kaj ili povas tuj uziĝi.", diff --git a/settings/l10n/eo.json b/settings/l10n/eo.json index 2e693a7afc2..43c4f8aa919 100644 --- a/settings/l10n/eo.json +++ b/settings/l10n/eo.json @@ -1,4 +1,15 @@ { "translations": { + "{actor} added you to group {group}" : "{actor} aldonis vin al grupo {group}", + "You added {user} to group {group}" : "Vi aldonis uzanton {user} al grupo {group}", + "{actor} added {user} to group {group}" : "{actor} aldonis uzanton {user} al grupo {group}", + "An administrator added you to group {group}" : "Administranto aldonis vin al grupo {group}", + "An administrator added {user} to group {group}" : "Administranto aldonis uzanton {user} al grupo {group}", + "{actor} removed you from group {group}" : "{actor} forigis vin el grupo {group}", + "You removed {user} from group {group}" : "Vi forigis uzanton {user} el grupo {group}", + "{actor} removed {user} from group {group}" : "{actor} forigi uzanton {user} el grupo {group}", + "An administrator removed you from group {group}" : "Administranto forigis vin el grupo {group}", + "An administrator removed {user} from group {group}" : "Administranto forigis uzanton {user} el grupo {group}", + "Your <strong>group memberships</strong> were modified" : "Viaj <strong>grupaj membrecoj</strong> modifiĝis", "{actor} changed your password" : "{actor} ŝanĝis vian pasvorton", "You changed your password" : "Vi ŝanĝis vian pasvorton", "Your password was reset by an administrator" : "Vian pasvorton restarigis administranton", @@ -123,6 +134,8 @@ "Devices & sessions" : "Aparatoj kaj seancoj", "Web, desktop and mobile clients currently logged in to your account." : "Reta, surtabla kaj portebla klientoj nun konektitaj al via konto.", "Error while creating device token" : "Eraro dum kreo de aparata ĵetono", + "Error while updating device token scope" : "Eraro dum ĝisdatigo de la amplekso de la aparataj ĵetonoj", + "Error while updating device token name" : "Eraro dum ĝisdatigo de la nomo de la aparataj ĵetonoj", "Error while deleting the token" : "Eraro dum forigado de la ĵetono", "App name" : "Aplikaĵa nomo", "Create new app password" : "Krei novan aplikaĵan pasvorton", @@ -131,6 +144,7 @@ "Username" : "Uzantonomo", "Password" : "Pasvorto", "Done" : "Farita", + "Show QR code for mobile apps" : "Montri rapidrespondan (QR) kodon por porteblaj aplikaĵoj", "Copied!" : "Kopiita!", "Copy" : "Kopii", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficialaj aplikaĵoj estas programataj de kaj ene de la komunumo. Ili alportas kernajn trajtojn kaj ili povas tuj uziĝi.", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 45692cab007..532f2cb10fa 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -134,7 +134,7 @@ OC.L10N.register( "Device" : "Urządzenie", "Last activity" : "Ostatnia aktywność", "Devices & sessions" : "Urządzenia i sesje", - "Web, desktop and mobile clients currently logged in to your account." : "Do twojego konta zalogowane są następujące klienty www, desktopowe i mobilne.", + "Web, desktop and mobile clients currently logged in to your account." : "Klienci internetowi, desktopowi i mobilni są obecnie zalogowani na Twoim koncie.", "Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia.", "Error while updating device token scope" : "Błąd podczas aktualizowania zakresu tokena urządzenia", "Error while updating device token name" : "Błąd podczas aktualizowania tokena nazwy urządzenia", @@ -337,7 +337,7 @@ OC.L10N.register( "Default share permissions" : "Domyślne uprawnienia do udostępniania", "Personal" : "Osobiste", "Administration" : "Administracja", - "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Wytworzone przez {communityopen}społeczność Nextclouda{linkclose}. {githubopen}Kod źródłowy{linkclose} jest udostępniony pod licencją {licenseopen}AGPL{linkclose}.", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Opracowane przez {communityopen}społeczność Nextcloud{linkclose}, {githubopen}kod źródłowy{linkclose} jest objęty licencją {licenseopen}AGPL{linkclose}.", "Like our Facebook page" : "Polub nas na Facebook'u", "Follow us on Twitter" : "Bądź z nami na Twitterze", "Follow us on Mastodon" : "Śledź nas na Mastodonie", @@ -371,7 +371,7 @@ OC.L10N.register( "Your phone number" : "Twój numer telefonu", "Address" : "Adres", "Your postal address" : "Twój adres pocztowy", - "Website" : "Strona WWW", + "Website" : "Strona internetowa", "It can take up to 24 hours before the account is displayed as verified." : "24 godziny mogą minąć zanim konto będzie widoczne jako zweryfikowane.", "Link https://…" : "Odnośnik https://…", "Twitter" : "Twitter", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index 00943b3e950..0d9ac978e0a 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -132,7 +132,7 @@ "Device" : "Urządzenie", "Last activity" : "Ostatnia aktywność", "Devices & sessions" : "Urządzenia i sesje", - "Web, desktop and mobile clients currently logged in to your account." : "Do twojego konta zalogowane są następujące klienty www, desktopowe i mobilne.", + "Web, desktop and mobile clients currently logged in to your account." : "Klienci internetowi, desktopowi i mobilni są obecnie zalogowani na Twoim koncie.", "Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia.", "Error while updating device token scope" : "Błąd podczas aktualizowania zakresu tokena urządzenia", "Error while updating device token name" : "Błąd podczas aktualizowania tokena nazwy urządzenia", @@ -335,7 +335,7 @@ "Default share permissions" : "Domyślne uprawnienia do udostępniania", "Personal" : "Osobiste", "Administration" : "Administracja", - "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Wytworzone przez {communityopen}społeczność Nextclouda{linkclose}. {githubopen}Kod źródłowy{linkclose} jest udostępniony pod licencją {licenseopen}AGPL{linkclose}.", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Opracowane przez {communityopen}społeczność Nextcloud{linkclose}, {githubopen}kod źródłowy{linkclose} jest objęty licencją {licenseopen}AGPL{linkclose}.", "Like our Facebook page" : "Polub nas na Facebook'u", "Follow us on Twitter" : "Bądź z nami na Twitterze", "Follow us on Mastodon" : "Śledź nas na Mastodonie", @@ -369,7 +369,7 @@ "Your phone number" : "Twój numer telefonu", "Address" : "Adres", "Your postal address" : "Twój adres pocztowy", - "Website" : "Strona WWW", + "Website" : "Strona internetowa", "It can take up to 24 hours before the account is displayed as verified." : "24 godziny mogą minąć zanim konto będzie widoczne jako zweryfikowane.", "Link https://…" : "Odnośnik https://…", "Twitter" : "Twitter", diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 636ed1d016b..bfb9b95678d 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -1,6 +1,17 @@ OC.L10N.register( "settings", { + "{actor} added you to group {group}" : "{actor} adderade dig till gruppen {group}", + "You added {user} to group {group}" : "Du adderade {user} till gruppen {group}", + "{actor} added {user} to group {group}" : "{actor} adderade {user} till gruppen {group}", + "An administrator added you to group {group}" : "En administratör adderade dig till gruppen {group}", + "An administrator added {user} to group {group}" : "En administratör adderade {user} till gruppen {group}", + "{actor} removed you from group {group}" : "{actor} tog bort dig från gruppen {group}", + "You removed {user} from group {group}" : "Du tog bort {user} från gruppen {group}", + "{actor} removed {user} from group {group}" : "{actor} tog bort {user} från gruppen {group}", + "An administrator removed you from group {group}" : "En administratör tog bort dig från gruppen {group}", + "An administrator removed {user} from group {group}" : "En administratör tog bort {user} från gruppen {group}", + "Your <strong>group memberships</strong> were modified" : "Dina <strong>gruppmedlemskaper</strong> har ändrats", "{actor} changed your password" : "{actor} ändrade ditt lösenord", "You changed your password" : "Du ändrade ditt lösenord", "Your password was reset by an administrator" : "Ditt lösenord återställdes av en administratör", @@ -28,6 +39,7 @@ OC.L10N.register( "Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.", "installing and updating apps via the app store or Federated Cloud Sharing" : "installering och uppdatering av applikationer eller Federerad Moln-delning.", "Federated Cloud Sharing" : "Federerad Moln-delning", + "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL använder en föråldrad %1$s version (%2$s). Uppdatera ditt operativsystem annars kommer inte funktioner som %3$s fungera pålitligt.", "Invalid SMTP password." : "Ogiltigt SMTP-lösenord.", "Email setting test" : "E-postinställningar test", "Well done, %s!" : "Bra gjort, %s!", @@ -60,6 +72,7 @@ OC.L10N.register( "Set your password" : "Ställ in ditt lösenord", "Go to %s" : "Gå till %s", "Install Client" : "Installera Klient", + "Logged in user must be a subadmin" : "Inloggad användare måste vara en del-administratör", "Migration in progress. Please wait until the migration is finished" : "Migrering pågår. Var god vänta tills migreringen är färdigställd.", "Migration started …" : "Migrering påbörjad ...", "Not saved" : "Inte sparad", @@ -90,7 +103,15 @@ OC.L10N.register( "Groups" : "Grupper", "Group list is empty" : "Grupplistan är tom", "Unable to retrieve the group list" : "Kan inte hämta grupplistan", + "Two-factor authentication can be enforced for all\tusers and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tvåfaktorsautentisering kan påtvingas för alla\tanvändare och specifika grupper. Om de inte har en tvåfaktorsleverantör konfigurerad kommer de inte att kunna logga in i systemet.", + "Enforce two-factor authentication" : "Påtvinga tvåfaktorsautentisering", "Limit to groups" : "Begränsa till grupper", + "Enforcement of two-factor authentication can be set for certain groups only." : "Påtvingad tvåfaktorsautentisering kan bara aktiveras för vissa grupper.", + "Two-factor authentication is enforced for all\tmembers of the following groups." : "Tvåfaktorsautentisering är påtvingad för alla\tmedlemmar i följande grupper.", + "Enforced groups" : "Påtvingade grupper", + "Two-factor authentication is not enforced for\tmembers of the following groups." : "Tvåfaktorsautentisering är inte påtvingad för\tmedlemmar i följande grupper.", + "Excluded groups" : "Exkluderade grupper", + "When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "När grupper väljs/exkluderas används följande logik för att avgöra om en användare har 2FA påtvingad: Om inga grupper väljs är 2FA aktiverat för alla förutom medlemmar i exkluderade grupper. Om grupper väljs är 2FA aktiverat för alla medlemmar i dessa grupper. Om en användare är medlem i både en vald och exkluderad grupp, har den valda företräde och 2FA påtvingas.", "Save changes" : "Spara ändringar", "Device settings" : "Enhetsinställningar", "Internet Explorer" : "Internet Explorer", @@ -115,6 +136,8 @@ OC.L10N.register( "Devices & sessions" : "Enheter & sessioner", "Web, desktop and mobile clients currently logged in to your account." : "Webb, skrivbordsklienter och mobila klienter som är inloggade på ditt konto just nu.", "Error while creating device token" : "Fel vid skapande av enhetstoken", + "Error while updating device token scope" : "Fel vid uppdatering av enhetstokens omfång", + "Error while updating device token name" : "Fel vid uppdatering av enhetstokens namn", "Error while deleting the token" : "Fel vid borttagning av token", "App name" : "Appnamn", "Create new app password" : "Skapa nytt applösenord", @@ -123,8 +146,10 @@ OC.L10N.register( "Username" : "Användarnamn", "Password" : "Lösenord", "Done" : "Färdig", + "Show QR code for mobile apps" : "Visa QR-kod för mobila appar", "Copied!" : "Kopierad!", "Copy" : "Kopiera", + "Could not copy app password. Please copy it manually." : "Det gick inte att kopiera app-lösenordet. Kopiera det manuellt.", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av och inom gemenskapen. De erbjuder central funktionalitet och är redo för att användas i produktion.", "Official" : "Officiell", "by" : "av", @@ -152,6 +177,7 @@ OC.L10N.register( "Enable" : "Aktivera", "The app will be downloaded from the app store" : "Appen kommer hämtas från appstore", "You do not have permissions to see the details of this user" : "Du har inte behörighet att se detaljerna för den här användaren", + "The backend does not support changing the display name" : "Servern stöder inte ändring av visningsnamn", "New password" : "Nytt lösenord", "Add user in group" : "Lägg till användare i grupp", "Set user as admin for" : "Gör användare till admin för", @@ -188,9 +214,13 @@ OC.L10N.register( "{license}-licensed" : "{license}-licensierad", "New user" : "Ny användare", "Default quota:" : "Standardkvot:", + "Select default quota" : "Välj förvalt lagringsutrymme", "Show Languages" : "Visa språk", "Show last login" : "Visa senaste inloggning", "Show user backend" : "Visa användar-backend", + "Show storage path" : "Visa lagringsväg", + "You are about to remove the group {group}. The users will NOT be deleted." : "Du håller på att ta bort gruppen {group}. Användarna kommer INTE att raderas.", + "Please confirm the group removal " : "Bekräfta borttagning av gruppen", "Remove group" : "Radera grupp", "Admins" : "Administratörer", "Disabled users" : "Inaktiva användare", @@ -220,6 +250,7 @@ OC.L10N.register( "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Det är viktigt att sätta upp denna server för att kunna sända e-post, exempelvis lösenordsåterställningar och notifieringar.", "Send mode" : "Sändningsläge", "Encryption" : "Kryptering", + "Sendmail mode" : "Sendmail-läge", "From address" : "Från adress", "mail" : "e-post", "Authentication method" : "Autentiseringsmetod", @@ -233,9 +264,12 @@ OC.L10N.register( "Test email settings" : "Testa e-postinställningar", "Send email" : "Skicka e-post", "Security & setup warnings" : "Säkerhet & systemvarningar", + "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." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Se den länkade dokumentationen för mer information.", "All checks passed." : "Alla kontroller lyckades!", "There are some errors regarding your setup." : "Det finns några fel angående din inställning.", "There are some warnings regarding your setup." : "Det finns några varningar angående din inställning.", + "Checking for system and security issues." : "Kontrollerar system och säkerhetsproblem.", + "Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%2$s\">log</a>." : "Dubbelkolla <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installationsguiderna ↗</a>, och kontrollera eventuella fel eller varningar i <a href=\"%2$s\">logggen</a>.", "Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "Kontrollera säkerheten för ditt Nextcloud över <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">vår säkerhetsgenomsökning ↗</a>.", "Version" : "Version", "Two-Factor Authentication" : "Tvåfaktorsautentisering", @@ -255,14 +289,27 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya.", "Start migration" : "Starta migrering", "Server info" : "Serverinfo", + "Enter common info about your Nextcloud instance here. These info are visible to all users." : "Ange allmän information om din Nextcloud-instans här. Dessa uppgifter är synliga för alla användare.", + "Server location" : "Serverns plats", + "country" : "land", + "Service provider" : "Tjänsteleverantör", + "company or person" : "företag eller person", + "Provider website" : "Leverantörs webbplats", + "link to website" : "länk till webbplats", + "Link to privacy policy" : "Länk till integritetspolicy", + "link to privacy policy" : "länk till integritetspolicy", + "Admin contact" : "Admin-kontakt", + "choose admin contact" : "välj admin-kontakt", "save" : "spara", "saving" : "sparar", "saved" : "sparad", + "error saving settings" : "fel när inställningar skulle sparas", "Background jobs" : "Bakgrundsjobb", "Last job ran %s." : "Sista jobbet kördes %s.", "Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.", "Background job didn’t run yet!" : "Bakgrundsjobb har inte kört ännu!", "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "För optimal prestanda är det viktigt att konfigurera bakgrundsjobb korrekt. För större instanser 'Cron' är den rekommenderade inställningen. Vänligen se dokumentationen för mer information.", + "Pick background job setting" : "Välj inställning för bakgrundsjobb", "Execute one task with each page loaded" : "Exekvera en uppgift vid varje sidladdning", "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php är registrerat hos en webcron-tjänst att köra cron.php varje kvart över HTTP.", "Use system cron service to call the cron.php file every 15 minutes." : "Använd systemets cron-tjänst för att anropa cron.php varje kvart.", @@ -296,6 +343,13 @@ OC.L10N.register( "Follow us on Mastodon" : "Följ oss på Mastodon", "Check out our blog" : "Kolla in vår blogg", "Subscribe to our newsletter" : "Prenumerera på vårt nyhetsbrev", + "Where is your data?" : "Var är din data?", + "Your data is located in <b>%s</b>." : "Din data finns i <b>%s</b>.", + "Your provider is %s%s%s." : "Din leverantör är %s%s%s.", + "Your provider is %s." : "Din leverantör är %s.", + "Read the %sprivacy policy%s now." : "Läs %sintegritetspolicy%s nu.", + "Your files are encrypted with %sserver side encryption%s." : "Dina filer är krypterade på %sservern%s.", + "%s%s%s is your admin. If you have any issues, %scontact them%s." : "%s%s%s är din administratör. Om du har några problem så %skontakta dem%s.", "Profile picture" : "Profilbild", "Upload new" : "Ladda upp ny", "Select from Files" : "Välj från Filer", @@ -326,6 +380,7 @@ OC.L10N.register( "Locale" : "Plats", "Current password" : "Nuvarande lösenord", "Change password" : "Ändra lösenord", + "Use a second factor besides your password to increase security for your account." : "Använd en andra faktor förutom ditt lösenord för att öka säkerheten för ditt konto.", "Enabled apps" : "Aktiverade appar", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL använder en föråldrad %s version (%s). Var god uppdatera ditt operativsystem annars kan funktioner som %s sluta fungera pålitligt.", "A problem occurred, please check your log files (Error: %s)" : "Ett problem uppstod, var god kontrollera loggfiler (Fel: %s)", @@ -450,6 +505,7 @@ OC.L10N.register( "change full name" : "ändra namn", "set new password" : "ange nytt lösenord", "change email address" : "ändra e-postadress", - "Default" : "Förvald" + "Default" : "Förvald", + "Default quota :" : "Förvalt lagringsutrymme:" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index e68750be5a1..575516d534d 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -1,4 +1,15 @@ { "translations": { + "{actor} added you to group {group}" : "{actor} adderade dig till gruppen {group}", + "You added {user} to group {group}" : "Du adderade {user} till gruppen {group}", + "{actor} added {user} to group {group}" : "{actor} adderade {user} till gruppen {group}", + "An administrator added you to group {group}" : "En administratör adderade dig till gruppen {group}", + "An administrator added {user} to group {group}" : "En administratör adderade {user} till gruppen {group}", + "{actor} removed you from group {group}" : "{actor} tog bort dig från gruppen {group}", + "You removed {user} from group {group}" : "Du tog bort {user} från gruppen {group}", + "{actor} removed {user} from group {group}" : "{actor} tog bort {user} från gruppen {group}", + "An administrator removed you from group {group}" : "En administratör tog bort dig från gruppen {group}", + "An administrator removed {user} from group {group}" : "En administratör tog bort {user} från gruppen {group}", + "Your <strong>group memberships</strong> were modified" : "Dina <strong>gruppmedlemskaper</strong> har ändrats", "{actor} changed your password" : "{actor} ändrade ditt lösenord", "You changed your password" : "Du ändrade ditt lösenord", "Your password was reset by an administrator" : "Ditt lösenord återställdes av en administratör", @@ -26,6 +37,7 @@ "Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.", "installing and updating apps via the app store or Federated Cloud Sharing" : "installering och uppdatering av applikationer eller Federerad Moln-delning.", "Federated Cloud Sharing" : "Federerad Moln-delning", + "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL använder en föråldrad %1$s version (%2$s). Uppdatera ditt operativsystem annars kommer inte funktioner som %3$s fungera pålitligt.", "Invalid SMTP password." : "Ogiltigt SMTP-lösenord.", "Email setting test" : "E-postinställningar test", "Well done, %s!" : "Bra gjort, %s!", @@ -58,6 +70,7 @@ "Set your password" : "Ställ in ditt lösenord", "Go to %s" : "Gå till %s", "Install Client" : "Installera Klient", + "Logged in user must be a subadmin" : "Inloggad användare måste vara en del-administratör", "Migration in progress. Please wait until the migration is finished" : "Migrering pågår. Var god vänta tills migreringen är färdigställd.", "Migration started …" : "Migrering påbörjad ...", "Not saved" : "Inte sparad", @@ -88,7 +101,15 @@ "Groups" : "Grupper", "Group list is empty" : "Grupplistan är tom", "Unable to retrieve the group list" : "Kan inte hämta grupplistan", + "Two-factor authentication can be enforced for all\tusers and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tvåfaktorsautentisering kan påtvingas för alla\tanvändare och specifika grupper. Om de inte har en tvåfaktorsleverantör konfigurerad kommer de inte att kunna logga in i systemet.", + "Enforce two-factor authentication" : "Påtvinga tvåfaktorsautentisering", "Limit to groups" : "Begränsa till grupper", + "Enforcement of two-factor authentication can be set for certain groups only." : "Påtvingad tvåfaktorsautentisering kan bara aktiveras för vissa grupper.", + "Two-factor authentication is enforced for all\tmembers of the following groups." : "Tvåfaktorsautentisering är påtvingad för alla\tmedlemmar i följande grupper.", + "Enforced groups" : "Påtvingade grupper", + "Two-factor authentication is not enforced for\tmembers of the following groups." : "Tvåfaktorsautentisering är inte påtvingad för\tmedlemmar i följande grupper.", + "Excluded groups" : "Exkluderade grupper", + "When groups are selected/excluded, they use the following logic to determine if a user has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If a user is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "När grupper väljs/exkluderas används följande logik för att avgöra om en användare har 2FA påtvingad: Om inga grupper väljs är 2FA aktiverat för alla förutom medlemmar i exkluderade grupper. Om grupper väljs är 2FA aktiverat för alla medlemmar i dessa grupper. Om en användare är medlem i både en vald och exkluderad grupp, har den valda företräde och 2FA påtvingas.", "Save changes" : "Spara ändringar", "Device settings" : "Enhetsinställningar", "Internet Explorer" : "Internet Explorer", @@ -113,6 +134,8 @@ "Devices & sessions" : "Enheter & sessioner", "Web, desktop and mobile clients currently logged in to your account." : "Webb, skrivbordsklienter och mobila klienter som är inloggade på ditt konto just nu.", "Error while creating device token" : "Fel vid skapande av enhetstoken", + "Error while updating device token scope" : "Fel vid uppdatering av enhetstokens omfång", + "Error while updating device token name" : "Fel vid uppdatering av enhetstokens namn", "Error while deleting the token" : "Fel vid borttagning av token", "App name" : "Appnamn", "Create new app password" : "Skapa nytt applösenord", @@ -121,8 +144,10 @@ "Username" : "Användarnamn", "Password" : "Lösenord", "Done" : "Färdig", + "Show QR code for mobile apps" : "Visa QR-kod för mobila appar", "Copied!" : "Kopierad!", "Copy" : "Kopiera", + "Could not copy app password. Please copy it manually." : "Det gick inte att kopiera app-lösenordet. Kopiera det manuellt.", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av och inom gemenskapen. De erbjuder central funktionalitet och är redo för att användas i produktion.", "Official" : "Officiell", "by" : "av", @@ -150,6 +175,7 @@ "Enable" : "Aktivera", "The app will be downloaded from the app store" : "Appen kommer hämtas från appstore", "You do not have permissions to see the details of this user" : "Du har inte behörighet att se detaljerna för den här användaren", + "The backend does not support changing the display name" : "Servern stöder inte ändring av visningsnamn", "New password" : "Nytt lösenord", "Add user in group" : "Lägg till användare i grupp", "Set user as admin for" : "Gör användare till admin för", @@ -186,9 +212,13 @@ "{license}-licensed" : "{license}-licensierad", "New user" : "Ny användare", "Default quota:" : "Standardkvot:", + "Select default quota" : "Välj förvalt lagringsutrymme", "Show Languages" : "Visa språk", "Show last login" : "Visa senaste inloggning", "Show user backend" : "Visa användar-backend", + "Show storage path" : "Visa lagringsväg", + "You are about to remove the group {group}. The users will NOT be deleted." : "Du håller på att ta bort gruppen {group}. Användarna kommer INTE att raderas.", + "Please confirm the group removal " : "Bekräfta borttagning av gruppen", "Remove group" : "Radera grupp", "Admins" : "Administratörer", "Disabled users" : "Inaktiva användare", @@ -218,6 +248,7 @@ "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Det är viktigt att sätta upp denna server för att kunna sända e-post, exempelvis lösenordsåterställningar och notifieringar.", "Send mode" : "Sändningsläge", "Encryption" : "Kryptering", + "Sendmail mode" : "Sendmail-läge", "From address" : "Från adress", "mail" : "e-post", "Authentication method" : "Autentiseringsmetod", @@ -231,9 +262,12 @@ "Test email settings" : "Testa e-postinställningar", "Send email" : "Skicka e-post", "Security & setup warnings" : "Säkerhet & systemvarningar", + "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." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Se den länkade dokumentationen för mer information.", "All checks passed." : "Alla kontroller lyckades!", "There are some errors regarding your setup." : "Det finns några fel angående din inställning.", "There are some warnings regarding your setup." : "Det finns några varningar angående din inställning.", + "Checking for system and security issues." : "Kontrollerar system och säkerhetsproblem.", + "Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%2$s\">log</a>." : "Dubbelkolla <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%1$s\">installationsguiderna ↗</a>, och kontrollera eventuella fel eller varningar i <a href=\"%2$s\">logggen</a>.", "Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "Kontrollera säkerheten för ditt Nextcloud över <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">vår säkerhetsgenomsökning ↗</a>.", "Version" : "Version", "Two-Factor Authentication" : "Tvåfaktorsautentisering", @@ -253,14 +287,27 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya.", "Start migration" : "Starta migrering", "Server info" : "Serverinfo", + "Enter common info about your Nextcloud instance here. These info are visible to all users." : "Ange allmän information om din Nextcloud-instans här. Dessa uppgifter är synliga för alla användare.", + "Server location" : "Serverns plats", + "country" : "land", + "Service provider" : "Tjänsteleverantör", + "company or person" : "företag eller person", + "Provider website" : "Leverantörs webbplats", + "link to website" : "länk till webbplats", + "Link to privacy policy" : "Länk till integritetspolicy", + "link to privacy policy" : "länk till integritetspolicy", + "Admin contact" : "Admin-kontakt", + "choose admin contact" : "välj admin-kontakt", "save" : "spara", "saving" : "sparar", "saved" : "sparad", + "error saving settings" : "fel när inställningar skulle sparas", "Background jobs" : "Bakgrundsjobb", "Last job ran %s." : "Sista jobbet kördes %s.", "Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.", "Background job didn’t run yet!" : "Bakgrundsjobb har inte kört ännu!", "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "För optimal prestanda är det viktigt att konfigurera bakgrundsjobb korrekt. För större instanser 'Cron' är den rekommenderade inställningen. Vänligen se dokumentationen för mer information.", + "Pick background job setting" : "Välj inställning för bakgrundsjobb", "Execute one task with each page loaded" : "Exekvera en uppgift vid varje sidladdning", "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php är registrerat hos en webcron-tjänst att köra cron.php varje kvart över HTTP.", "Use system cron service to call the cron.php file every 15 minutes." : "Använd systemets cron-tjänst för att anropa cron.php varje kvart.", @@ -294,6 +341,13 @@ "Follow us on Mastodon" : "Följ oss på Mastodon", "Check out our blog" : "Kolla in vår blogg", "Subscribe to our newsletter" : "Prenumerera på vårt nyhetsbrev", + "Where is your data?" : "Var är din data?", + "Your data is located in <b>%s</b>." : "Din data finns i <b>%s</b>.", + "Your provider is %s%s%s." : "Din leverantör är %s%s%s.", + "Your provider is %s." : "Din leverantör är %s.", + "Read the %sprivacy policy%s now." : "Läs %sintegritetspolicy%s nu.", + "Your files are encrypted with %sserver side encryption%s." : "Dina filer är krypterade på %sservern%s.", + "%s%s%s is your admin. If you have any issues, %scontact them%s." : "%s%s%s är din administratör. Om du har några problem så %skontakta dem%s.", "Profile picture" : "Profilbild", "Upload new" : "Ladda upp ny", "Select from Files" : "Välj från Filer", @@ -324,6 +378,7 @@ "Locale" : "Plats", "Current password" : "Nuvarande lösenord", "Change password" : "Ändra lösenord", + "Use a second factor besides your password to increase security for your account." : "Använd en andra faktor förutom ditt lösenord för att öka säkerheten för ditt konto.", "Enabled apps" : "Aktiverade appar", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL använder en föråldrad %s version (%s). Var god uppdatera ditt operativsystem annars kan funktioner som %s sluta fungera pålitligt.", "A problem occurred, please check your log files (Error: %s)" : "Ett problem uppstod, var god kontrollera loggfiler (Fel: %s)", @@ -448,6 +503,7 @@ "change full name" : "ändra namn", "set new password" : "ange nytt lösenord", "change email address" : "ändra e-postadress", - "Default" : "Förvald" + "Default" : "Förvald", + "Default quota :" : "Förvalt lagringsutrymme:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/templates/settings/frame.php b/settings/templates/settings/frame.php index 1734a92b064..e32c4ed2fc9 100644 --- a/settings/templates/settings/frame.php +++ b/settings/templates/settings/frame.php @@ -30,8 +30,10 @@ script('files', 'jquery.fileupload'); <div id="app-navigation"> <ul> - <li class="app-navigation-caption"><?php p($l->t('Personal')); ?></li> + <?php if(!empty($_['forms']['admin'])) { ?> + <li class="app-navigation-caption"><?php p($l->t('Personal')); ?></li> <?php + } foreach($_['forms']['personal'] as $form) { if (isset($form['anchor'])) { $anchor = \OC::$server->getURLGenerator()->linkToRoute('settings.PersonalSettings.index', ['section' => $form['anchor']]); diff --git a/tests/acceptance/features/access-levels.feature b/tests/acceptance/features/access-levels.feature index fb6b180be7e..9d5695897c0 100644 --- a/tests/acceptance/features/access-levels.feature +++ b/tests/acceptance/features/access-levels.feature @@ -12,7 +12,8 @@ Feature: access-levels Scenario: regular users cannot see admin-level items on the Settings page Given I am logged in When I visit the settings page - Then I see that the "Personal" settings panel is shown + Then I see that the "Personal info" entry in the settings panel is shown + And I see that the "Personal" settings panel is not shown And I see that the "Administration" settings panel is not shown Scenario: admin users can see admin-level items on the Settings page diff --git a/tests/acceptance/features/bootstrap/SettingsMenuContext.php b/tests/acceptance/features/bootstrap/SettingsMenuContext.php index 3dd5022ecc9..e4e20997fc2 100644 --- a/tests/acceptance/features/bootstrap/SettingsMenuContext.php +++ b/tests/acceptance/features/bootstrap/SettingsMenuContext.php @@ -94,6 +94,15 @@ class SettingsMenuContext implements Context, ActorAwareInterface { } /** + * @param string $itemText + * @return Locator + */ + private static function settingsPanelEntryFor($itemText) { + return Locator::forThe()->xpath("//div[@id = 'app-navigation']//ul//li[normalize-space() = '$itemText']")-> + describedAs($itemText . " entry in Settings panel"); + } + + /** * @return array */ public function menuItems() { @@ -189,6 +198,15 @@ class SettingsMenuContext implements Context, ActorAwareInterface { } /** + * @Then I see that the :itemText entry in the settings panel is shown + */ + public function iSeeThatTheItemEntryInTheSettingsPanelIsShown($itemText) { + PHPUnit_Framework_Assert::assertTrue( + $this->actor->find(self::settingsPanelEntryFor($itemText), 10)->isVisible() + ); + } + + /** * @Then I see that the :itemText settings panel is not shown */ public function iSeeThatTheItemSettingsPanelIsNotShown($itemText) { |