diff options
Diffstat (limited to 'apps')
349 files changed, 1602 insertions, 1761 deletions
diff --git a/apps/comments/l10n/nl.js b/apps/comments/l10n/nl.js index bcd7d47fbda..ab1c88ceb9f 100644 --- a/apps/comments/l10n/nl.js +++ b/apps/comments/l10n/nl.js @@ -10,23 +10,27 @@ OC.L10N.register( "{author} commented on {file}" : "{author} reageerde op {file}", "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "Files" : "Bestanden", + "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd", "{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"", "Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen", - "Edit comment" : "Bewerk reactie", - "Delete comment" : "Verwijder reactie", - "Cancel edit" : "Annuleer bewerking", + "Edit comment" : "Reactie bewerken", + "Delete comment" : "Reactie verwijderen", + "Cancel edit" : "Bewerking annuleren", "New comment" : "Nieuwe reactie", - "Post comment" : "Plaats reactie", + "Write a comment …" : "Schrijf een reactie…", + "Post comment" : "Reactie plaatsen", "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker", + "Could not reload comments" : "Kon reactie niet opnieuw laden", + "Failed to mark comments as read" : "Kon reacties niet als gelezen markeren", "Unable to load the comments list" : "Kan reactielijst niet laden", "No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!", "No more messages" : "Geen berichten meer", "Retry" : "Opnieuw proberen", "_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"], "Comment" : "Reactie", - "An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie", + "An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie", "Comment deleted" : "Reactie verwijderd", - "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie", - "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie" + "An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie", + "An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/nl.json b/apps/comments/l10n/nl.json index 89026ab81f0..5d40bb6ee35 100644 --- a/apps/comments/l10n/nl.json +++ b/apps/comments/l10n/nl.json @@ -8,23 +8,27 @@ "{author} commented on {file}" : "{author} reageerde op {file}", "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "Files" : "Bestanden", + "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd", "{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"", "Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen", - "Edit comment" : "Bewerk reactie", - "Delete comment" : "Verwijder reactie", - "Cancel edit" : "Annuleer bewerking", + "Edit comment" : "Reactie bewerken", + "Delete comment" : "Reactie verwijderen", + "Cancel edit" : "Bewerking annuleren", "New comment" : "Nieuwe reactie", - "Post comment" : "Plaats reactie", + "Write a comment …" : "Schrijf een reactie…", + "Post comment" : "Reactie plaatsen", "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker", + "Could not reload comments" : "Kon reactie niet opnieuw laden", + "Failed to mark comments as read" : "Kon reacties niet als gelezen markeren", "Unable to load the comments list" : "Kan reactielijst niet laden", "No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!", "No more messages" : "Geen berichten meer", "Retry" : "Opnieuw proberen", "_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"], "Comment" : "Reactie", - "An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie", + "An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie", "Comment deleted" : "Reactie verwijderd", - "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie", - "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie" + "An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie", + "An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/comments/l10n/tr.js b/apps/comments/l10n/tr.js index 25ff8844a18..723bcffbd39 100644 --- a/apps/comments/l10n/tr.js +++ b/apps/comments/l10n/tr.js @@ -19,7 +19,7 @@ OC.L10N.register( "New comment" : "Yorum ekle", "Write a comment …" : "Bir yorum yazın…", "Post comment" : "Yorum gönder", - "@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /", + "@ for mentions, : for emoji, / for smart picker" : "Bahsetmeler için @, emojiler için :, akıllı seçici için /", "Could not reload comments" : "Yorumlar yeniden yüklenemedi", "Failed to mark comments as read" : "Yorumlar okunmuş olarak işaretlenemedi", "Unable to load the comments list" : "Yorum listesi yüklenemedi", diff --git a/apps/comments/l10n/tr.json b/apps/comments/l10n/tr.json index 097cbb5543c..079748fb613 100644 --- a/apps/comments/l10n/tr.json +++ b/apps/comments/l10n/tr.json @@ -17,7 +17,7 @@ "New comment" : "Yorum ekle", "Write a comment …" : "Bir yorum yazın…", "Post comment" : "Yorum gönder", - "@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /", + "@ for mentions, : for emoji, / for smart picker" : "Bahsetmeler için @, emojiler için :, akıllı seçici için /", "Could not reload comments" : "Yorumlar yeniden yüklenemedi", "Failed to mark comments as read" : "Yorumlar okunmuş olarak işaretlenemedi", "Unable to load the comments list" : "Yorum listesi yüklenemedi", diff --git a/apps/comments/src/comments-activity-tab.ts b/apps/comments/src/comments-activity-tab.ts index f092f2b8f5b..77f6c9bca04 100644 --- a/apps/comments/src/comments-activity-tab.ts +++ b/apps/comments/src/comments-activity-tab.ts @@ -19,7 +19,7 @@ let ActivityTabPluginInstance */ export function registerCommentsPlugins() { window.OCA.Activity.registerSidebarAction({ - mount: async (el, { context, fileInfo, reload }) => { + mount: async (el, { fileInfo, reload }) => { const pinia = createPinia() if (!ActivityTabPluginView) { @@ -29,7 +29,6 @@ export function registerCommentsPlugins() { } ActivityTabPluginInstance = new ActivityTabPluginView({ el, - parent: context, pinia, propsData: { reloadCallback: reload, @@ -58,10 +57,9 @@ export function registerCommentsPlugins() { timestamp: moment(comment.props?.creationDateTime).toDate().getTime(), - mount(element: HTMLElement, { context, reload }) { + mount(element: HTMLElement, { reload }) { this._CommentsViewInstance = new CommentsViewObject({ el: element, - parent: context, propsData: { comment, resourceId: fileInfo.id, diff --git a/apps/contactsinteraction/l10n/nl.js b/apps/contactsinteraction/l10n/nl.js index b351704e257..3c33fb3c464 100644 --- a/apps/contactsinteraction/l10n/nl.js +++ b/apps/contactsinteraction/l10n/nl.js @@ -2,6 +2,8 @@ OC.L10N.register( "contactsinteraction", { "Recently contacted" : "Recentelijk gecontacteerd", - "Contacts Interaction" : "Contactpersoneninteractie" + "Contacts Interaction" : "Contactpersoneninteractie", + "Manages interaction between accounts and contacts" : "Beheert de interactie tussen accounts en contacten", + "Collect data about accounts and contacts interactions and provide an address book for the data" : "Verzamel gegevens over interacties van accounts en contacten en bied een adresboek voor de gegevens" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/contactsinteraction/l10n/nl.json b/apps/contactsinteraction/l10n/nl.json index b573d989642..648a52aa99d 100644 --- a/apps/contactsinteraction/l10n/nl.json +++ b/apps/contactsinteraction/l10n/nl.json @@ -1,5 +1,7 @@ { "translations": { "Recently contacted" : "Recentelijk gecontacteerd", - "Contacts Interaction" : "Contactpersoneninteractie" + "Contacts Interaction" : "Contactpersoneninteractie", + "Manages interaction between accounts and contacts" : "Beheert de interactie tussen accounts en contacten", + "Collect data about accounts and contacts interactions and provide an address book for the data" : "Verzamel gegevens over interacties van accounts en contacten en bied een adresboek voor de gegevens" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ar.js b/apps/dashboard/l10n/ar.js index abe91d4bf28..0f470b39637 100644 --- a/apps/dashboard/l10n/ar.js +++ b/apps/dashboard/l10n/ar.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية.", "Weather data from Met.no" : "بيانات الطقس من Met.no", "geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim", - "elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData", - "\"{title} icon\"" : "\"{title} أيقونة\"" + "elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData" }, "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/dashboard/l10n/ar.json b/apps/dashboard/l10n/ar.json index caad4cc7e32..45a0facbe46 100644 --- a/apps/dashboard/l10n/ar.json +++ b/apps/dashboard/l10n/ar.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية.", "Weather data from Met.no" : "بيانات الطقس من Met.no", "geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim", - "elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData", - "\"{title} icon\"" : "\"{title} أيقونة\"" + "elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData" },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ast.js b/apps/dashboard/l10n/ast.js index 2817983e456..30325efa25e 100644 --- a/apps/dashboard/l10n/ast.js +++ b/apps/dashboard/l10n/ast.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal.", "Weather data from Met.no" : "datos del clima de Met.no", "geocoding with Nominatim" : "xeocodificación con Nominatim", - "elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData", - "\"{title} icon\"" : "«Iconu de: {title}»" + "elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/ast.json b/apps/dashboard/l10n/ast.json index 1f194cf8b54..65ddc086f24 100644 --- a/apps/dashboard/l10n/ast.json +++ b/apps/dashboard/l10n/ast.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal.", "Weather data from Met.no" : "datos del clima de Met.no", "geocoding with Nominatim" : "xeocodificación con Nominatim", - "elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData", - "\"{title} icon\"" : "«Iconu de: {title}»" + "elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/bg.js b/apps/dashboard/l10n/bg.js index aa438921262..52bf79b3acc 100644 --- a/apps/dashboard/l10n/bg.js +++ b/apps/dashboard/l10n/bg.js @@ -20,7 +20,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация.", "Weather data from Met.no" : "Данни за времето от Met.no", "geocoding with Nominatim" : "геокодиране с Nominatim", - "elevation data from OpenTopoData" : " кота данни от OpenTopoData", - "\"{title} icon\"" : "„икона {title}“" + "elevation data from OpenTopoData" : " кота данни от OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/bg.json b/apps/dashboard/l10n/bg.json index 4917c61e5f2..1d240b3440e 100644 --- a/apps/dashboard/l10n/bg.json +++ b/apps/dashboard/l10n/bg.json @@ -18,7 +18,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация.", "Weather data from Met.no" : "Данни за времето от Met.no", "geocoding with Nominatim" : "геокодиране с Nominatim", - "elevation data from OpenTopoData" : " кота данни от OpenTopoData", - "\"{title} icon\"" : "„икона {title}“" + "elevation data from OpenTopoData" : " кота данни от OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ca.js b/apps/dashboard/l10n/ca.js index 333cdbac223..e1c49734018 100644 --- a/apps/dashboard/l10n/ca.js +++ b/apps/dashboard/l10n/ca.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal.", "Weather data from Met.no" : "Dades meteorològiques de Met.no", "geocoding with Nominatim" : "codis geogràfics amb Nominatim", - "elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData", - "\"{title} icon\"" : "\"icona de {title}\"" + "elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/ca.json b/apps/dashboard/l10n/ca.json index 0c54b9c57ad..1a96361720c 100644 --- a/apps/dashboard/l10n/ca.json +++ b/apps/dashboard/l10n/ca.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal.", "Weather data from Met.no" : "Dades meteorològiques de Met.no", "geocoding with Nominatim" : "codis geogràfics amb Nominatim", - "elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData", - "\"{title} icon\"" : "\"icona de {title}\"" + "elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/cs.js b/apps/dashboard/l10n/cs.js index 6c390e5a041..a50199ce469 100644 --- a/apps/dashboard/l10n/cs.js +++ b/apps/dashboard/l10n/cs.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.", "Weather data from Met.no" : "Údaje o počasí z Met.no", "geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim", - "elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData", - "\"{title} icon\"" : "„ikona {title}“" + "elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/apps/dashboard/l10n/cs.json b/apps/dashboard/l10n/cs.json index 6252d433e6f..8e0d2b79295 100644 --- a/apps/dashboard/l10n/cs.json +++ b/apps/dashboard/l10n/cs.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.", "Weather data from Met.no" : "Údaje o počasí z Met.no", "geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim", - "elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData", - "\"{title} icon\"" : "„ikona {title}“" + "elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/da.js b/apps/dashboard/l10n/da.js index c118af726c4..b3ca5bae9a2 100644 --- a/apps/dashboard/l10n/da.js +++ b/apps/dashboard/l10n/da.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.", "Weather data from Met.no" : "Vejr-data leveres af Met.no", "geocoding with Nominatim" : "Geocoding med Nominatim", - "elevation data from OpenTopoData" : "Højde-data fra OpenTopoData", - "\"{title} icon\"" : "\"{title} ikon\"" + "elevation data from OpenTopoData" : "Højde-data fra OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/da.json b/apps/dashboard/l10n/da.json index 71fcc7bc9c9..5b729416648 100644 --- a/apps/dashboard/l10n/da.json +++ b/apps/dashboard/l10n/da.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.", "Weather data from Met.no" : "Vejr-data leveres af Met.no", "geocoding with Nominatim" : "Geocoding med Nominatim", - "elevation data from OpenTopoData" : "Højde-data fra OpenTopoData", - "\"{title} icon\"" : "\"{title} ikon\"" + "elevation data from OpenTopoData" : "Højde-data fra OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/de.js b/apps/dashboard/l10n/de.js index 2885e6a657a..b7cbd1adb43 100644 --- a/apps/dashboard/l10n/de.js +++ b/apps/dashboard/l10n/de.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.", "Weather data from Met.no" : "Wetterdaten von Met.no", "geocoding with Nominatim" : "Geokodierung mit Nominatim", - "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData", - "\"{title} icon\"" : "\"{title}-Symbol\"" + "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/de.json b/apps/dashboard/l10n/de.json index d3ff6b42dda..bb44568bf30 100644 --- a/apps/dashboard/l10n/de.json +++ b/apps/dashboard/l10n/de.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.", "Weather data from Met.no" : "Wetterdaten von Met.no", "geocoding with Nominatim" : "Geokodierung mit Nominatim", - "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData", - "\"{title} icon\"" : "\"{title}-Symbol\"" + "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/de_DE.js b/apps/dashboard/l10n/de_DE.js index 3d18e6f7837..4b9b21e1a34 100644 --- a/apps/dashboard/l10n/de_DE.js +++ b/apps/dashboard/l10n/de_DE.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.", "Weather data from Met.no" : "Wetterdaten von Met.no", "geocoding with Nominatim" : "Geokodierung mit Nominatim", - "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData", - "\"{title} icon\"" : "\"{title}-Symbol\"" + "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/de_DE.json b/apps/dashboard/l10n/de_DE.json index edfbc1c1273..4c8ffbec68d 100644 --- a/apps/dashboard/l10n/de_DE.json +++ b/apps/dashboard/l10n/de_DE.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.", "Weather data from Met.no" : "Wetterdaten von Met.no", "geocoding with Nominatim" : "Geokodierung mit Nominatim", - "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData", - "\"{title} icon\"" : "\"{title}-Symbol\"" + "elevation data from OpenTopoData" : "Höhendaten von OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/en_GB.js b/apps/dashboard/l10n/en_GB.js index 9c160f2b279..0a277fddf96 100644 --- a/apps/dashboard/l10n/en_GB.js +++ b/apps/dashboard/l10n/en_GB.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.", "Weather data from Met.no" : "Weather data from Met.no", "geocoding with Nominatim" : "geocoding with Nominatim", - "elevation data from OpenTopoData" : "elevation data from OpenTopoData", - "\"{title} icon\"" : "\"{title} icon\"" + "elevation data from OpenTopoData" : "elevation data from OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/en_GB.json b/apps/dashboard/l10n/en_GB.json index 5ca0a16478b..456645e9a65 100644 --- a/apps/dashboard/l10n/en_GB.json +++ b/apps/dashboard/l10n/en_GB.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.", "Weather data from Met.no" : "Weather data from Met.no", "geocoding with Nominatim" : "geocoding with Nominatim", - "elevation data from OpenTopoData" : "elevation data from OpenTopoData", - "\"{title} icon\"" : "\"{title} icon\"" + "elevation data from OpenTopoData" : "elevation data from OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/es.js b/apps/dashboard/l10n/es.js index 850943a86de..e8c266813f6 100644 --- a/apps/dashboard/l10n/es.js +++ b/apps/dashboard/l10n/es.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"icono {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/es.json b/apps/dashboard/l10n/es.json index 44bda12c440..07776366228 100644 --- a/apps/dashboard/l10n/es.json +++ b/apps/dashboard/l10n/es.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"icono {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/es_EC.js b/apps/dashboard/l10n/es_EC.js index 215599661a9..4a68faffe73 100644 --- a/apps/dashboard/l10n/es_EC.js +++ b/apps/dashboard/l10n/es_EC.js @@ -20,7 +20,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"icono {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/es_EC.json b/apps/dashboard/l10n/es_EC.json index 1a5496448e0..fd17cc8eb02 100644 --- a/apps/dashboard/l10n/es_EC.json +++ b/apps/dashboard/l10n/es_EC.json @@ -18,7 +18,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"icono {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/es_MX.js b/apps/dashboard/l10n/es_MX.js index 641db816eaa..48520d3066e 100644 --- a/apps/dashboard/l10n/es_MX.js +++ b/apps/dashboard/l10n/es_MX.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"ícono de {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/es_MX.json b/apps/dashboard/l10n/es_MX.json index 6f86e0dad2c..737d4e16add 100644 --- a/apps/dashboard/l10n/es_MX.json +++ b/apps/dashboard/l10n/es_MX.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.", "Weather data from Met.no" : "Datos meteorológicos de Met.no", "geocoding with Nominatim" : "geocoding con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "\"ícono de {title}\"" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/et_EE.js b/apps/dashboard/l10n/et_EE.js index 1b5d84af336..79a06f64026 100644 --- a/apps/dashboard/l10n/et_EE.js +++ b/apps/dashboard/l10n/et_EE.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Sinu privaatsuse huvides küsib su nimel ilmaandmeid Nextcloudi server, nii et ilmateenistus ei saa isiklikku teavet.", "Weather data from Met.no" : "Ilmaandmed Met.no-st", "geocoding with Nominatim" : "geoprogrammeerimine Nominatimiga", - "elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast", - "\"{title} icon\"" : "„{title} ikoon“" + "elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/et_EE.json b/apps/dashboard/l10n/et_EE.json index 39bd54a58fa..377fdae425e 100644 --- a/apps/dashboard/l10n/et_EE.json +++ b/apps/dashboard/l10n/et_EE.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Sinu privaatsuse huvides küsib su nimel ilmaandmeid Nextcloudi server, nii et ilmateenistus ei saa isiklikku teavet.", "Weather data from Met.no" : "Ilmaandmed Met.no-st", "geocoding with Nominatim" : "geoprogrammeerimine Nominatimiga", - "elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast", - "\"{title} icon\"" : "„{title} ikoon“" + "elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/eu.js b/apps/dashboard/l10n/eu.js index 7a911ec279f..b448a10cc77 100644 --- a/apps/dashboard/l10n/eu.js +++ b/apps/dashboard/l10n/eu.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zure pribatutasunaren mesedetan, eguraldiaren datuak Nextcloud zerbitzariak eskatzen ditu zure izenean, eguraldi zerbitzuak informazio pertsonalik ez jasotzeko.", "Weather data from Met.no" : "Met.no-ko eguraldiaren datuak", "geocoding with Nominatim" : "geokodetzea Nominatim-ekin", - "elevation data from OpenTopoData" : "altitude datuak OpenTopoData-tik", - "\"{title} icon\"" : "\"{title} ikonoa\"" + "elevation data from OpenTopoData" : "altitude datuak OpenTopoData-tik" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/eu.json b/apps/dashboard/l10n/eu.json index 9d3c3d08214..7aa15665f4a 100644 --- a/apps/dashboard/l10n/eu.json +++ b/apps/dashboard/l10n/eu.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zure pribatutasunaren mesedetan, eguraldiaren datuak Nextcloud zerbitzariak eskatzen ditu zure izenean, eguraldi zerbitzuak informazio pertsonalik ez jasotzeko.", "Weather data from Met.no" : "Met.no-ko eguraldiaren datuak", "geocoding with Nominatim" : "geokodetzea Nominatim-ekin", - "elevation data from OpenTopoData" : "altitude datuak OpenTopoData-tik", - "\"{title} icon\"" : "\"{title} ikonoa\"" + "elevation data from OpenTopoData" : "altitude datuak OpenTopoData-tik" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/fa.js b/apps/dashboard/l10n/fa.js index e184f76c85c..919a62e38b7 100644 --- a/apps/dashboard/l10n/fa.js +++ b/apps/dashboard/l10n/fa.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "برای محرمانگیتان، دادههای آب و هوا از طرف کارساز نکستکلودتان درخواست میشود تا خدمت آب و هوا هیچ اطّلاعات شخصیای دریافت نکند.", "Weather data from Met.no" : "اطلاعات هواشناسی از Met.no", "geocoding with Nominatim" : "کدگذاری جغرافیایی با Nominatim", - "elevation data from OpenTopoData" : "دادههای ارتفاع از OpenTopoData", - "\"{title} icon\"" : "«نقشک {title}»" + "elevation data from OpenTopoData" : "دادههای ارتفاع از OpenTopoData" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/dashboard/l10n/fa.json b/apps/dashboard/l10n/fa.json index 6120f6657c4..4f199569778 100644 --- a/apps/dashboard/l10n/fa.json +++ b/apps/dashboard/l10n/fa.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "برای محرمانگیتان، دادههای آب و هوا از طرف کارساز نکستکلودتان درخواست میشود تا خدمت آب و هوا هیچ اطّلاعات شخصیای دریافت نکند.", "Weather data from Met.no" : "اطلاعات هواشناسی از Met.no", "geocoding with Nominatim" : "کدگذاری جغرافیایی با Nominatim", - "elevation data from OpenTopoData" : "دادههای ارتفاع از OpenTopoData", - "\"{title} icon\"" : "«نقشک {title}»" + "elevation data from OpenTopoData" : "دادههای ارتفاع از OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/fr.js b/apps/dashboard/l10n/fr.js index 3a1afaf8326..1d4000fb4da 100644 --- a/apps/dashboard/l10n/fr.js +++ b/apps/dashboard/l10n/fr.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Afin de protéger votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud à votre place afin que le service météo ne reçoive aucune information personnelle.", "Weather data from Met.no" : "Données météo fournies par Met.no", "geocoding with Nominatim" : "Géocodage avec Nominatim", - "elevation data from OpenTopoData" : "Données d’altitude provenant d’OpenTopoData", - "\"{title} icon\"" : "« Icône {title} »" + "elevation data from OpenTopoData" : "Données d’altitude provenant d’OpenTopoData" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/fr.json b/apps/dashboard/l10n/fr.json index 8ca7aff83f4..d8a3a6c2a3d 100644 --- a/apps/dashboard/l10n/fr.json +++ b/apps/dashboard/l10n/fr.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Afin de protéger votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud à votre place afin que le service météo ne reçoive aucune information personnelle.", "Weather data from Met.no" : "Données météo fournies par Met.no", "geocoding with Nominatim" : "Géocodage avec Nominatim", - "elevation data from OpenTopoData" : "Données d’altitude provenant d’OpenTopoData", - "\"{title} icon\"" : "« Icône {title} »" + "elevation data from OpenTopoData" : "Données d’altitude provenant d’OpenTopoData" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ga.js b/apps/dashboard/l10n/ga.js index 9fbee59ddd1..822af0b13b6 100644 --- a/apps/dashboard/l10n/ga.js +++ b/apps/dashboard/l10n/ga.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ar mhaithe le do phríobháideachas, iarrann do fhreastalaí Nextcloud na sonraí aimsire ar do shon agus mar sin ní fhaigheann an tseirbhís aimsire aon fhaisnéis phearsanta.", "Weather data from Met.no" : "Sonraí aimsire ó Met.no", "geocoding with Nominatim" : "geochódú le Nominatim", - "elevation data from OpenTopoData" : "sonraí ardaithe ó OpenTopoData", - "\"{title} icon\"" : "\"{title} deilbhín\"" + "elevation data from OpenTopoData" : "sonraí ardaithe ó OpenTopoData" }, "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"); diff --git a/apps/dashboard/l10n/ga.json b/apps/dashboard/l10n/ga.json index 69e239a1d01..15a81edad3a 100644 --- a/apps/dashboard/l10n/ga.json +++ b/apps/dashboard/l10n/ga.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ar mhaithe le do phríobháideachas, iarrann do fhreastalaí Nextcloud na sonraí aimsire ar do shon agus mar sin ní fhaigheann an tseirbhís aimsire aon fhaisnéis phearsanta.", "Weather data from Met.no" : "Sonraí aimsire ó Met.no", "geocoding with Nominatim" : "geochódú le Nominatim", - "elevation data from OpenTopoData" : "sonraí ardaithe ó OpenTopoData", - "\"{title} icon\"" : "\"{title} deilbhín\"" + "elevation data from OpenTopoData" : "sonraí ardaithe ó OpenTopoData" },"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/gl.js b/apps/dashboard/l10n/gl.js index c332320e538..7fadf650ba6 100644 --- a/apps/dashboard/l10n/gl.js +++ b/apps/dashboard/l10n/gl.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Para a súa privacidade, o servidor de Nextcloud solicita os datos meteorolóxicos no seu nome para que o servizo meteorolóxico non reciba información persoal.", "Weather data from Met.no" : "Datos meteorolóxicos de Met.no", "geocoding with Nominatim" : "xeocodificación con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "«icona {title}»" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/gl.json b/apps/dashboard/l10n/gl.json index 9a3d57da111..16691d49cf4 100644 --- a/apps/dashboard/l10n/gl.json +++ b/apps/dashboard/l10n/gl.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Para a súa privacidade, o servidor de Nextcloud solicita os datos meteorolóxicos no seu nome para que o servizo meteorolóxico non reciba información persoal.", "Weather data from Met.no" : "Datos meteorolóxicos de Met.no", "geocoding with Nominatim" : "xeocodificación con Nominatim", - "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData", - "\"{title} icon\"" : "«icona {title}»" + "elevation data from OpenTopoData" : "datos de elevación de OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/hu.js b/apps/dashboard/l10n/hu.js index b4564e6a2ce..1d0666068f2 100644 --- a/apps/dashboard/l10n/hu.js +++ b/apps/dashboard/l10n/hu.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Az adatvédelem érdekében az információt a Nextcloud kiszolgáló kéri le az Ön nevében, így az Ön személyes adatai nem kerülnek az időjárási adatok szolgáltatójához.", "Weather data from Met.no" : "Időjárási adatok a Met.no-tól", "geocoding with Nominatim" : "geokódolás a Nominatimmal", - "elevation data from OpenTopoData" : "magassági adatok az OpenTopoDatától", - "\"{title} icon\"" : "„{title} ikon”" + "elevation data from OpenTopoData" : "magassági adatok az OpenTopoDatától" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/hu.json b/apps/dashboard/l10n/hu.json index 36b2b3de0de..97fa9de655c 100644 --- a/apps/dashboard/l10n/hu.json +++ b/apps/dashboard/l10n/hu.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Az adatvédelem érdekében az információt a Nextcloud kiszolgáló kéri le az Ön nevében, így az Ön személyes adatai nem kerülnek az időjárási adatok szolgáltatójához.", "Weather data from Met.no" : "Időjárási adatok a Met.no-tól", "geocoding with Nominatim" : "geokódolás a Nominatimmal", - "elevation data from OpenTopoData" : "magassági adatok az OpenTopoDatától", - "\"{title} icon\"" : "„{title} ikon”" + "elevation data from OpenTopoData" : "magassági adatok az OpenTopoDatától" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/is.js b/apps/dashboard/l10n/is.js index 16e91b972a2..dd76d9f206b 100644 --- a/apps/dashboard/l10n/is.js +++ b/apps/dashboard/l10n/is.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Til að vernda friðhelgi þína, eru veðurgögn sótt af Nextcloud-þjóninum fyrir þína hönd, þannig að veðurþjónustan fær engin persónuleg gögn.", "Weather data from Met.no" : "Veðurgögn frá Met.no", "geocoding with Nominatim" : "staðsetningarkóðun með Nominatim", - "elevation data from OpenTopoData" : "hæðargögn frá OpenTopoData", - "\"{title} icon\"" : "\"{title} táknmynd\"" + "elevation data from OpenTopoData" : "hæðargögn frá OpenTopoData" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/dashboard/l10n/is.json b/apps/dashboard/l10n/is.json index 1e5c30add7d..3ff21287fd0 100644 --- a/apps/dashboard/l10n/is.json +++ b/apps/dashboard/l10n/is.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Til að vernda friðhelgi þína, eru veðurgögn sótt af Nextcloud-þjóninum fyrir þína hönd, þannig að veðurþjónustan fær engin persónuleg gögn.", "Weather data from Met.no" : "Veðurgögn frá Met.no", "geocoding with Nominatim" : "staðsetningarkóðun með Nominatim", - "elevation data from OpenTopoData" : "hæðargögn frá OpenTopoData", - "\"{title} icon\"" : "\"{title} táknmynd\"" + "elevation data from OpenTopoData" : "hæðargögn frá OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/it.js b/apps/dashboard/l10n/it.js index c77e8a25ec5..99e14e72265 100644 --- a/apps/dashboard/l10n/it.js +++ b/apps/dashboard/l10n/it.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server Nextcloud per tuo conto, per cui il servizio meteo non riceve informazioni personali.", "Weather data from Met.no" : "Dati meteo da Met.no", "geocoding with Nominatim" : "geocodifica conh Nominatim", - "elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData", - "\"{title} icon\"" : "\"Icona {title}\"" + "elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/it.json b/apps/dashboard/l10n/it.json index ff05385033a..bd8d7040eb5 100644 --- a/apps/dashboard/l10n/it.json +++ b/apps/dashboard/l10n/it.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server Nextcloud per tuo conto, per cui il servizio meteo non riceve informazioni personali.", "Weather data from Met.no" : "Dati meteo da Met.no", "geocoding with Nominatim" : "geocodifica conh Nominatim", - "elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData", - "\"{title} icon\"" : "\"Icona {title}\"" + "elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ja.js b/apps/dashboard/l10n/ja.js index 2ed45a7ac08..68bd7d2c15c 100644 --- a/apps/dashboard/l10n/ja.js +++ b/apps/dashboard/l10n/ja.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "あなたのプライバシーを保護するため、あなたに変わって Nextcloud サーバーが気象データをウェザーサービスに要求します。そのため、ウェザーサービスはあなたの個人情報を受け取ることはありません。", "Weather data from Met.no" : "気象データ提供元は Met.no", "geocoding with Nominatim" : "Nominatim でジオコーディング", - "elevation data from OpenTopoData" : "標高データ提供元は OpenTopoData です", - "\"{title} icon\"" : "\"{title} アイコン\"" + "elevation data from OpenTopoData" : "標高データ提供元は OpenTopoData です" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/ja.json b/apps/dashboard/l10n/ja.json index eb5f9a75715..a62e26cdddd 100644 --- a/apps/dashboard/l10n/ja.json +++ b/apps/dashboard/l10n/ja.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "あなたのプライバシーを保護するため、あなたに変わって Nextcloud サーバーが気象データをウェザーサービスに要求します。そのため、ウェザーサービスはあなたの個人情報を受け取ることはありません。", "Weather data from Met.no" : "気象データ提供元は Met.no", "geocoding with Nominatim" : "Nominatim でジオコーディング", - "elevation data from OpenTopoData" : "標高データ提供元は OpenTopoData です", - "\"{title} icon\"" : "\"{title} アイコン\"" + "elevation data from OpenTopoData" : "標高データ提供元は OpenTopoData です" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/lt_LT.js b/apps/dashboard/l10n/lt_LT.js index 04c14b11924..7552e456c5d 100644 --- a/apps/dashboard/l10n/lt_LT.js +++ b/apps/dashboard/l10n/lt_LT.js @@ -22,7 +22,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Dėl jūsų privatumo, orų duomenys yra jūsų vardu užklausiami jūsų Nextcloud serverio, todėl orų tarnyba negauna jokios asmeninės informacijos.", "Weather data from Met.no" : "Orų duomenys iš Met.no", "geocoding with Nominatim" : "geografinis kodavimas naudojant Nominatim", - "elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData", - "\"{title} icon\"" : "„{title} piktograma“" + "elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData" }, "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/apps/dashboard/l10n/lt_LT.json b/apps/dashboard/l10n/lt_LT.json index d3711e0f743..535d6f28253 100644 --- a/apps/dashboard/l10n/lt_LT.json +++ b/apps/dashboard/l10n/lt_LT.json @@ -20,7 +20,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Dėl jūsų privatumo, orų duomenys yra jūsų vardu užklausiami jūsų Nextcloud serverio, todėl orų tarnyba negauna jokios asmeninės informacijos.", "Weather data from Met.no" : "Orų duomenys iš Met.no", "geocoding with Nominatim" : "geografinis kodavimas naudojant Nominatim", - "elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData", - "\"{title} icon\"" : "„{title} piktograma“" + "elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData" },"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/apps/dashboard/l10n/mk.js b/apps/dashboard/l10n/mk.js index 5c985bcdcc8..576e9a45c02 100644 --- a/apps/dashboard/l10n/mk.js +++ b/apps/dashboard/l10n/mk.js @@ -20,7 +20,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.", "Weather data from Met.no" : "Податоци за временето од Met.no", "geocoding with Nominatim" : "Геокодирање со Nominatim", - "elevation data from OpenTopoData" : "Податоци за височина од OpenTopoData", - "\"{title} icon\"" : "\"{title} икона\"" + "elevation data from OpenTopoData" : "Податоци за височина од OpenTopoData" }, "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/dashboard/l10n/mk.json b/apps/dashboard/l10n/mk.json index f225e912978..c3c5e0e1f68 100644 --- a/apps/dashboard/l10n/mk.json +++ b/apps/dashboard/l10n/mk.json @@ -18,7 +18,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.", "Weather data from Met.no" : "Податоци за временето од Met.no", "geocoding with Nominatim" : "Геокодирање со Nominatim", - "elevation data from OpenTopoData" : "Податоци за височина од OpenTopoData", - "\"{title} icon\"" : "\"{title} икона\"" + "elevation data from OpenTopoData" : "Податоци за височина од OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/nb.js b/apps/dashboard/l10n/nb.js index 7091be8f0ee..4bcb04b188d 100644 --- a/apps/dashboard/l10n/nb.js +++ b/apps/dashboard/l10n/nb.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Av hensyn til personvernet ditt blir værdataene bedt om av Nextcloud-serveren din på dine vegne, slik at værtjenesten ikke mottar personlig informasjon.", "Weather data from Met.no" : "Værmelding fra Met.no", "geocoding with Nominatim" : "geokoding med Nominatim", - "elevation data from OpenTopoData" : "høydedata fra OpenTopoData", - "\"{title} icon\"" : "\"{title} ikon\"" + "elevation data from OpenTopoData" : "høydedata fra OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/nb.json b/apps/dashboard/l10n/nb.json index 95f68c74a9c..9f1ad8bc524 100644 --- a/apps/dashboard/l10n/nb.json +++ b/apps/dashboard/l10n/nb.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Av hensyn til personvernet ditt blir værdataene bedt om av Nextcloud-serveren din på dine vegne, slik at værtjenesten ikke mottar personlig informasjon.", "Weather data from Met.no" : "Værmelding fra Met.no", "geocoding with Nominatim" : "geokoding med Nominatim", - "elevation data from OpenTopoData" : "høydedata fra OpenTopoData", - "\"{title} icon\"" : "\"{title} ikon\"" + "elevation data from OpenTopoData" : "høydedata fra OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/nl.js b/apps/dashboard/l10n/nl.js index bc4ca77bd69..7fc3bdc2177 100644 --- a/apps/dashboard/l10n/nl.js +++ b/apps/dashboard/l10n/nl.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Dashboard", "Dashboard app" : "Dashboard-app", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Begin je dag geïnformeerd\n\nHet Nextcloud Dashboard is je startpunt van de dag en biedt je een overzicht van je aankomende afspraken, dringende e-mails, chatberichten, binnenkomende tickets, laatste tweets en nog veel meer! Mensen kunnen de widgets toevoegen die ze leuk vinden en de achtergrond naar wens aanpassen.", "Weather" : "Weer", "Status" : "Status", "Good morning" : "Goedemorgen", @@ -13,6 +14,8 @@ OC.L10N.register( "Good evening, {name}" : "Goedenavond, {name}", "Hello" : "Hallo", "Hello, {name}" : "Hallo, {name}", + "Happy birthday 🥳🤩🎂🎉" : "Fijne verjaardag 🥳🤩🎂🎉", + "Happy birthday, {name} 🥳🤩🎂🎉" : "Fijne verjaardag, {name} 🥳🤩🎂🎉", "Customize" : "Aanpassen", "Edit widgets" : "Widgets bewerken", "Get more widgets from the App Store" : "Haal meer widgets op uit de App Store", diff --git a/apps/dashboard/l10n/nl.json b/apps/dashboard/l10n/nl.json index bce68caa408..5b56e7b0cb9 100644 --- a/apps/dashboard/l10n/nl.json +++ b/apps/dashboard/l10n/nl.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Dashboard", "Dashboard app" : "Dashboard-app", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Begin je dag geïnformeerd\n\nHet Nextcloud Dashboard is je startpunt van de dag en biedt je een overzicht van je aankomende afspraken, dringende e-mails, chatberichten, binnenkomende tickets, laatste tweets en nog veel meer! Mensen kunnen de widgets toevoegen die ze leuk vinden en de achtergrond naar wens aanpassen.", "Weather" : "Weer", "Status" : "Status", "Good morning" : "Goedemorgen", @@ -11,6 +12,8 @@ "Good evening, {name}" : "Goedenavond, {name}", "Hello" : "Hallo", "Hello, {name}" : "Hallo, {name}", + "Happy birthday 🥳🤩🎂🎉" : "Fijne verjaardag 🥳🤩🎂🎉", + "Happy birthday, {name} 🥳🤩🎂🎉" : "Fijne verjaardag, {name} 🥳🤩🎂🎉", "Customize" : "Aanpassen", "Edit widgets" : "Widgets bewerken", "Get more widgets from the App Store" : "Haal meer widgets op uit de App Store", diff --git a/apps/dashboard/l10n/pl.js b/apps/dashboard/l10n/pl.js index 8c0dd99508f..e82dafdff97 100644 --- a/apps/dashboard/l10n/pl.js +++ b/apps/dashboard/l10n/pl.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ze względu na Twoją prywatność dane pogodowe są pobierane przez serwer Nextcloud w Twoim imieniu. Usługa pogodowa nie otrzymuje żadnych danych osobowych.", "Weather data from Met.no" : "Dane pogodowe z Met.no", "geocoding with Nominatim" : "geokodowanie z Nominatim", - "elevation data from OpenTopoData" : "dane wysokościowe z OpenTopoData", - "\"{title} icon\"" : "\"ikona {title}\"" + "elevation data from OpenTopoData" : "dane wysokościowe z OpenTopoData" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/dashboard/l10n/pl.json b/apps/dashboard/l10n/pl.json index cdd254abf25..5659df99fc7 100644 --- a/apps/dashboard/l10n/pl.json +++ b/apps/dashboard/l10n/pl.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ze względu na Twoją prywatność dane pogodowe są pobierane przez serwer Nextcloud w Twoim imieniu. Usługa pogodowa nie otrzymuje żadnych danych osobowych.", "Weather data from Met.no" : "Dane pogodowe z Met.no", "geocoding with Nominatim" : "geokodowanie z Nominatim", - "elevation data from OpenTopoData" : "dane wysokościowe z OpenTopoData", - "\"{title} icon\"" : "\"ikona {title}\"" + "elevation data from OpenTopoData" : "dane wysokościowe z OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/pt_BR.js b/apps/dashboard/l10n/pt_BR.js index dbfe53359f7..ebdafb1859f 100644 --- a/apps/dashboard/l10n/pt_BR.js +++ b/apps/dashboard/l10n/pt_BR.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Para sua privacidade, as informações de Tempo são solicitadas pelo servidor Nextcloud de forma que o serviço de Tempo não receba suas informações pessoais.", "Weather data from Met.no" : "Dados de Tempo do Met.no", "geocoding with Nominatim" : "geocodificado com Nominatim", - "elevation data from OpenTopoData" : "dados topográficos de OpenTopoData", - "\"{title} icon\"" : "\"ícone de {title} \"" + "elevation data from OpenTopoData" : "dados topográficos de OpenTopoData" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/dashboard/l10n/pt_BR.json b/apps/dashboard/l10n/pt_BR.json index a9715dc07f2..d0f5b67d72f 100644 --- a/apps/dashboard/l10n/pt_BR.json +++ b/apps/dashboard/l10n/pt_BR.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Para sua privacidade, as informações de Tempo são solicitadas pelo servidor Nextcloud de forma que o serviço de Tempo não receba suas informações pessoais.", "Weather data from Met.no" : "Dados de Tempo do Met.no", "geocoding with Nominatim" : "geocodificado com Nominatim", - "elevation data from OpenTopoData" : "dados topográficos de OpenTopoData", - "\"{title} icon\"" : "\"ícone de {title} \"" + "elevation data from OpenTopoData" : "dados topográficos de OpenTopoData" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ru.js b/apps/dashboard/l10n/ru.js index 724f9c70712..6666ebdcf6c 100644 --- a/apps/dashboard/l10n/ru.js +++ b/apps/dashboard/l10n/ru.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "В целях вашей конфиденциальности данные о погоде запрашиваются вашим сервером Nextcloud от вашего имени, поэтому служба погоды не получает никакой личной информации.", "Weather data from Met.no" : "Погода от Met.no", "geocoding with Nominatim" : "геокодирование с Nominatim", - "elevation data from OpenTopoData" : "данные о высоте из OpenTopoData", - "\"{title} icon\"" : "\"{title} иконка\"" + "elevation data from OpenTopoData" : "данные о высоте из OpenTopoData" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/dashboard/l10n/ru.json b/apps/dashboard/l10n/ru.json index f2949da650b..4f8a58f2d7c 100644 --- a/apps/dashboard/l10n/ru.json +++ b/apps/dashboard/l10n/ru.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "В целях вашей конфиденциальности данные о погоде запрашиваются вашим сервером Nextcloud от вашего имени, поэтому служба погоды не получает никакой личной информации.", "Weather data from Met.no" : "Погода от Met.no", "geocoding with Nominatim" : "геокодирование с Nominatim", - "elevation data from OpenTopoData" : "данные о высоте из OpenTopoData", - "\"{title} icon\"" : "\"{title} иконка\"" + "elevation data from OpenTopoData" : "данные о высоте из OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/sk.js b/apps/dashboard/l10n/sk.js index d254adbb5b5..2716325c7e8 100644 --- a/apps/dashboard/l10n/sk.js +++ b/apps/dashboard/l10n/sk.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.", "Weather data from Met.no" : "Dáta počasia z Met.no", "geocoding with Nominatim" : "geokódovanie pomocou Nominatim", - "elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData", - "\"{title} icon\"" : "\"{title} ikona\"" + "elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData" }, "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/dashboard/l10n/sk.json b/apps/dashboard/l10n/sk.json index 0193916f3e3..c74b055cb5d 100644 --- a/apps/dashboard/l10n/sk.json +++ b/apps/dashboard/l10n/sk.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.", "Weather data from Met.no" : "Dáta počasia z Met.no", "geocoding with Nominatim" : "geokódovanie pomocou Nominatim", - "elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData", - "\"{title} icon\"" : "\"{title} ikona\"" + "elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/sl.js b/apps/dashboard/l10n/sl.js index 9422670f2ed..9ee87af3e6e 100644 --- a/apps/dashboard/l10n/sl.js +++ b/apps/dashboard/l10n/sl.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Za večjo zasebnost so podatki vremena pridobljeni prek strežnika Nextcloud, zato tretje osebe ne pridobijo nobenega vašega osebnega podatka.", "Weather data from Met.no" : "Podatke vremena omogoča Met.no", "geocoding with Nominatim" : "geokodiranje Nominatim", - "elevation data from OpenTopoData" : "podatke nadmorske višine OpenTopoData", - "\"{title} icon\"" : "»Ikona {title}«" + "elevation data from OpenTopoData" : "podatke nadmorske višine OpenTopoData" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/dashboard/l10n/sl.json b/apps/dashboard/l10n/sl.json index 7d3de876695..fd64b0e1b56 100644 --- a/apps/dashboard/l10n/sl.json +++ b/apps/dashboard/l10n/sl.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Za večjo zasebnost so podatki vremena pridobljeni prek strežnika Nextcloud, zato tretje osebe ne pridobijo nobenega vašega osebnega podatka.", "Weather data from Met.no" : "Podatke vremena omogoča Met.no", "geocoding with Nominatim" : "geokodiranje Nominatim", - "elevation data from OpenTopoData" : "podatke nadmorske višine OpenTopoData", - "\"{title} icon\"" : "»Ikona {title}«" + "elevation data from OpenTopoData" : "podatke nadmorske višine OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/sr.js b/apps/dashboard/l10n/sr.js index 7ba1ba4ed65..e647f915fe7 100644 --- a/apps/dashboard/l10n/sr.js +++ b/apps/dashboard/l10n/sr.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ради чувања ваше приватности, временске податке са метеоролошког сервиса у ваше име захтева Nextcloud сервер, тако да се метеоролошком сервису не шаљу лични подаци.", "Weather data from Met.no" : "Метеоролошки подаци са Met.no", "geocoding with Nominatim" : "геокодирање са Nominatim", - "elevation data from OpenTopoData" : "висински подаци са OpenTopoData", - "\"{title} icon\"" : "„{title} икона”" + "elevation data from OpenTopoData" : "висински подаци са OpenTopoData" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/dashboard/l10n/sr.json b/apps/dashboard/l10n/sr.json index d835955518a..05f1f7dda72 100644 --- a/apps/dashboard/l10n/sr.json +++ b/apps/dashboard/l10n/sr.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Ради чувања ваше приватности, временске податке са метеоролошког сервиса у ваше име захтева Nextcloud сервер, тако да се метеоролошком сервису не шаљу лични подаци.", "Weather data from Met.no" : "Метеоролошки подаци са Met.no", "geocoding with Nominatim" : "геокодирање са Nominatim", - "elevation data from OpenTopoData" : "висински подаци са OpenTopoData", - "\"{title} icon\"" : "„{title} икона”" + "elevation data from OpenTopoData" : "висински подаци са OpenTopoData" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/sv.js b/apps/dashboard/l10n/sv.js index ed82166c66d..8e7c46e93c4 100644 --- a/apps/dashboard/l10n/sv.js +++ b/apps/dashboard/l10n/sv.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "För din integritet skull hämtas väderdata av din Nextcloud-server på dina vägnar så att vädertjänsten inte får någon personlig information.", "Weather data from Met.no" : "Väderdata från Met.no", "geocoding with Nominatim" : "geokodning med Nominatim", - "elevation data from OpenTopoData" : "höjddata från OpenTopoData", - "\"{title} icon\"" : "\"{title}-ikon\"" + "elevation data from OpenTopoData" : "höjddata från OpenTopoData" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/sv.json b/apps/dashboard/l10n/sv.json index 0b06dcbcccc..4c6b6d239c4 100644 --- a/apps/dashboard/l10n/sv.json +++ b/apps/dashboard/l10n/sv.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "För din integritet skull hämtas väderdata av din Nextcloud-server på dina vägnar så att vädertjänsten inte får någon personlig information.", "Weather data from Met.no" : "Väderdata från Met.no", "geocoding with Nominatim" : "geokodning med Nominatim", - "elevation data from OpenTopoData" : "höjddata från OpenTopoData", - "\"{title} icon\"" : "\"{title}-ikon\"" + "elevation data from OpenTopoData" : "höjddata från OpenTopoData" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/tr.js b/apps/dashboard/l10n/tr.js index 1cd70679514..0ca94d0a5d0 100644 --- a/apps/dashboard/l10n/tr.js +++ b/apps/dashboard/l10n/tr.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Kişisel gizliliğinizi korumak için Nextcloud sunucunuz hava durumu verilerini sizin adınıza ister. Böylece hava durumu hizmetine hiçbir kişisel bilgi aktarılmaz.", "Weather data from Met.no" : "Hava durumu verileri Met.no tarafından sağlanıyor", "geocoding with Nominatim" : "Nominatim ile coğrafi kodlama", - "elevation data from OpenTopoData" : "yükseklik verileri OpenTopoData tarafından sağlanıyor", - "\"{title} icon\"" : "\"{title} simgesi\"" + "elevation data from OpenTopoData" : "yükseklik verileri OpenTopoData tarafından sağlanıyor" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/dashboard/l10n/tr.json b/apps/dashboard/l10n/tr.json index 4f8759f5261..714f1c70745 100644 --- a/apps/dashboard/l10n/tr.json +++ b/apps/dashboard/l10n/tr.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Kişisel gizliliğinizi korumak için Nextcloud sunucunuz hava durumu verilerini sizin adınıza ister. Böylece hava durumu hizmetine hiçbir kişisel bilgi aktarılmaz.", "Weather data from Met.no" : "Hava durumu verileri Met.no tarafından sağlanıyor", "geocoding with Nominatim" : "Nominatim ile coğrafi kodlama", - "elevation data from OpenTopoData" : "yükseklik verileri OpenTopoData tarafından sağlanıyor", - "\"{title} icon\"" : "\"{title} simgesi\"" + "elevation data from OpenTopoData" : "yükseklik verileri OpenTopoData tarafından sağlanıyor" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/ug.js b/apps/dashboard/l10n/ug.js index 75ca90442a9..40ef3144e77 100644 --- a/apps/dashboard/l10n/ug.js +++ b/apps/dashboard/l10n/ug.js @@ -21,7 +21,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "شەخسىي مەخپىيەتلىكىڭىز ئۈچۈن ھاۋارايى سانلىق مەلۇماتلىرىڭىزنى Nextcloud مۇلازىمېتىرىڭىز تەلەپ قىلىدۇ ، شۇڭا ھاۋارايى مۇلازىمىتى ھېچقانداق شەخسىي ئۇچۇرغا ئېرىشەلمەيدۇ.", "Weather data from Met.no" : "Met.no دىن كەلگەن ھاۋارايى سانلىق مەلۇماتلىرى", "geocoding with Nominatim" : "Nominatim بىلەن جۇغراپىيىلىك كودلاش", - "elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى", - "\"{title} icon\"" : "\"{title} سىنبەلگىسى\"" + "elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dashboard/l10n/ug.json b/apps/dashboard/l10n/ug.json index cecbee79dbc..3b551538828 100644 --- a/apps/dashboard/l10n/ug.json +++ b/apps/dashboard/l10n/ug.json @@ -19,7 +19,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "شەخسىي مەخپىيەتلىكىڭىز ئۈچۈن ھاۋارايى سانلىق مەلۇماتلىرىڭىزنى Nextcloud مۇلازىمېتىرىڭىز تەلەپ قىلىدۇ ، شۇڭا ھاۋارايى مۇلازىمىتى ھېچقانداق شەخسىي ئۇچۇرغا ئېرىشەلمەيدۇ.", "Weather data from Met.no" : "Met.no دىن كەلگەن ھاۋارايى سانلىق مەلۇماتلىرى", "geocoding with Nominatim" : "Nominatim بىلەن جۇغراپىيىلىك كودلاش", - "elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى", - "\"{title} icon\"" : "\"{title} سىنبەلگىسى\"" + "elevation data from OpenTopoData" : "OpenTopoData دىن ئېگىزلىك سانلىق مەلۇماتلىرى" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/uk.js b/apps/dashboard/l10n/uk.js index 7cccfefbc78..c611c807349 100644 --- a/apps/dashboard/l10n/uk.js +++ b/apps/dashboard/l10n/uk.js @@ -22,7 +22,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Для забезпечення вашої конфіденційності дані про погоду запитуються вашим сервером Nextcloud від вашого імені, тому служба погоди не отримує особисту інформацію.", "Weather data from Met.no" : "Дані про погоду з Met.no", "geocoding with Nominatim" : "геокодування за допомогою Nominatim", - "elevation data from OpenTopoData" : "дані про висоту з OpenTopoData", - "\"{title} icon\"" : "\"{title} \"іконка\"" + "elevation data from OpenTopoData" : "дані про висоту з OpenTopoData" }, "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); diff --git a/apps/dashboard/l10n/uk.json b/apps/dashboard/l10n/uk.json index 09438fdc22c..d3f3c712dc3 100644 --- a/apps/dashboard/l10n/uk.json +++ b/apps/dashboard/l10n/uk.json @@ -20,7 +20,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Для забезпечення вашої конфіденційності дані про погоду запитуються вашим сервером Nextcloud від вашого імені, тому служба погоди не отримує особисту інформацію.", "Weather data from Met.no" : "Дані про погоду з Met.no", "geocoding with Nominatim" : "геокодування за допомогою Nominatim", - "elevation data from OpenTopoData" : "дані про висоту з OpenTopoData", - "\"{title} icon\"" : "\"{title} \"іконка\"" + "elevation data from OpenTopoData" : "дані про висоту з OpenTopoData" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/uz.js b/apps/dashboard/l10n/uz.js index 2140c308e7d..23282080b47 100644 --- a/apps/dashboard/l10n/uz.js +++ b/apps/dashboard/l10n/uz.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Maxfiyligingiz uchun ob-havo maʼlumotlari sizning nomingizdan Nextcloud serveringiz tomonidan soʻraladi, shuning uchun ob-havo xizmati shaxsiy maʼlumotlarni olmaydi.", "Weather data from Met.no" : "Met.no dan ob-havo ma'lumotlari", "geocoding with Nominatim" : "Nominatim bilan geokodlash", - "elevation data from OpenTopoData" : "OpenTopoData dan balandlik ma'lumotlari", - "\"{title} icon\"" : "\"{title} belgisi\"" + "elevation data from OpenTopoData" : "OpenTopoData dan balandlik ma'lumotlari" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/uz.json b/apps/dashboard/l10n/uz.json index 912c35d409f..b2b24b7dcdb 100644 --- a/apps/dashboard/l10n/uz.json +++ b/apps/dashboard/l10n/uz.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Maxfiyligingiz uchun ob-havo maʼlumotlari sizning nomingizdan Nextcloud serveringiz tomonidan soʻraladi, shuning uchun ob-havo xizmati shaxsiy maʼlumotlarni olmaydi.", "Weather data from Met.no" : "Met.no dan ob-havo ma'lumotlari", "geocoding with Nominatim" : "Nominatim bilan geokodlash", - "elevation data from OpenTopoData" : "OpenTopoData dan balandlik ma'lumotlari", - "\"{title} icon\"" : "\"{title} belgisi\"" + "elevation data from OpenTopoData" : "OpenTopoData dan balandlik ma'lumotlari" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/vi.js b/apps/dashboard/l10n/vi.js index 05d2d143c9c..dbe1b126d44 100644 --- a/apps/dashboard/l10n/vi.js +++ b/apps/dashboard/l10n/vi.js @@ -20,7 +20,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vì quyền riêng tư của bạn, dữ liệu thời tiết được yêu cầu bởi máy chủ Nextcloud thay mặt bạn để dịch vụ thời tiết không nhận được thông tin cá nhân.", "Weather data from Met.no" : "Dữ liệu thời tiết từ Met.no", "geocoding with Nominatim" : "mã hóa địa lý với Nominatim", - "elevation data from OpenTopoData" : "dữ liệu độ cao từ OpenTopoData", - "\"{title} icon\"" : "\"{title} icon\"" + "elevation data from OpenTopoData" : "dữ liệu độ cao từ OpenTopoData" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/vi.json b/apps/dashboard/l10n/vi.json index d3da5f426e8..7b302629c4a 100644 --- a/apps/dashboard/l10n/vi.json +++ b/apps/dashboard/l10n/vi.json @@ -18,7 +18,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vì quyền riêng tư của bạn, dữ liệu thời tiết được yêu cầu bởi máy chủ Nextcloud thay mặt bạn để dịch vụ thời tiết không nhận được thông tin cá nhân.", "Weather data from Met.no" : "Dữ liệu thời tiết từ Met.no", "geocoding with Nominatim" : "mã hóa địa lý với Nominatim", - "elevation data from OpenTopoData" : "dữ liệu độ cao từ OpenTopoData", - "\"{title} icon\"" : "\"{title} icon\"" + "elevation data from OpenTopoData" : "dữ liệu độ cao từ OpenTopoData" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/zh_CN.js b/apps/dashboard/l10n/zh_CN.js index dcaad44161e..0f6c8dcd4c3 100644 --- a/apps/dashboard/l10n/zh_CN.js +++ b/apps/dashboard/l10n/zh_CN.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "为了您的隐私,天气数据由您的 Nextcloud 服务器为您获取,这样天气服务就无法获得您的个人信息。", "Weather data from Met.no" : "天气数据来自 Met.no", "geocoding with Nominatim" : "使用 Nominatim 地理编码", - "elevation data from OpenTopoData" : "海拔数据来自 OpenTopoData", - "\"{title} icon\"" : "{title} 图标" + "elevation data from OpenTopoData" : "海拔数据来自 OpenTopoData" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/zh_CN.json b/apps/dashboard/l10n/zh_CN.json index 4569ab5ec98..49d2e660723 100644 --- a/apps/dashboard/l10n/zh_CN.json +++ b/apps/dashboard/l10n/zh_CN.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "为了您的隐私,天气数据由您的 Nextcloud 服务器为您获取,这样天气服务就无法获得您的个人信息。", "Weather data from Met.no" : "天气数据来自 Met.no", "geocoding with Nominatim" : "使用 Nominatim 地理编码", - "elevation data from OpenTopoData" : "海拔数据来自 OpenTopoData", - "\"{title} icon\"" : "{title} 图标" + "elevation data from OpenTopoData" : "海拔数据来自 OpenTopoData" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/zh_HK.js b/apps/dashboard/l10n/zh_HK.js index 557ec2bedc0..3ec3def4cc4 100644 --- a/apps/dashboard/l10n/zh_HK.js +++ b/apps/dashboard/l10n/zh_HK.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。", "Weather data from Met.no" : "氣象資訊來自 Met.no", "geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼", - "elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料", - "\"{title} icon\"" : "\"{title} 圖示\"" + "elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/zh_HK.json b/apps/dashboard/l10n/zh_HK.json index a7cede02590..6efb17e03a4 100644 --- a/apps/dashboard/l10n/zh_HK.json +++ b/apps/dashboard/l10n/zh_HK.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。", "Weather data from Met.no" : "氣象資訊來自 Met.no", "geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼", - "elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料", - "\"{title} icon\"" : "\"{title} 圖示\"" + "elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dashboard/l10n/zh_TW.js b/apps/dashboard/l10n/zh_TW.js index 10aa30c9fe7..274caee814d 100644 --- a/apps/dashboard/l10n/zh_TW.js +++ b/apps/dashboard/l10n/zh_TW.js @@ -23,7 +23,6 @@ OC.L10N.register( "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 伺服器會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。", "Weather data from Met.no" : "氣象資訊來自 Met.no", "geocoding with Nominatim" : "地理編碼使用 Nominatim", - "elevation data from OpenTopoData" : "海拔資料來自 OpenTopoData", - "\"{title} icon\"" : "「{title} 圖示」" + "elevation data from OpenTopoData" : "海拔資料來自 OpenTopoData" }, "nplurals=1; plural=0;"); diff --git a/apps/dashboard/l10n/zh_TW.json b/apps/dashboard/l10n/zh_TW.json index 3b8a8776418..381dc1b6254 100644 --- a/apps/dashboard/l10n/zh_TW.json +++ b/apps/dashboard/l10n/zh_TW.json @@ -21,7 +21,6 @@ "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 伺服器會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。", "Weather data from Met.no" : "氣象資訊來自 Met.no", "geocoding with Nominatim" : "地理編碼使用 Nominatim", - "elevation data from OpenTopoData" : "海拔資料來自 OpenTopoData", - "\"{title} icon\"" : "「{title} 圖示」" + "elevation data from OpenTopoData" : "海拔資料來自 OpenTopoData" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dav/l10n/et_EE.js b/apps/dav/l10n/et_EE.js index 54ba6f5a401..25cf3b104a1 100644 --- a/apps/dav/l10n/et_EE.js +++ b/apps/dav/l10n/et_EE.js @@ -72,6 +72,20 @@ OC.L10N.register( "Description: %s" : "Kirjeldus: %s", "Where: %s" : "Kus: %s", "%1$s via %2$s" : "%1$s %2$s kaudu", + "In the past on %1$s for the entire day" : "Minevikus kogu päeva: %1$s", + "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["%n minuti pärast kogu päeva: %1$s","%n minuti pärast kogu päeva: %1$s"], + "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["%n tunni pärast kogu päeva: %1$s","%n tunni pärast kogu päeva: %1$s"], + "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["%n päeva pärast kogu päeva: %1$s","%n päeva pärast kogu päeva: %1$s"], + "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["%n nädala pärast kogu päeva: %1$s","%n nädala pärast kogu päeva: %1$s"], + "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["%n kuu pärast kogu päeva: %1$s","%n kuu pärast kogu päeva: %1$s"], + "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["%n aasta pärast kogu päeva: %1$s","%n aasta pärast kogu päeva: %1$s"], + "In the past on %1$s between %2$s - %3$s" : "Minevikus: %1$s ajavahemikus %2$s - %3$s", + "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], "Could not generate when statement" : "Ei õnnestunud koostada tingimuslikku „when“ lausendit", "Every Day for the entire day" : "Iga päev kogu päeva jooksul", "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s", @@ -108,6 +122,27 @@ OC.L10N.register( "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Igal %1$d-l aastal kuni %6$s ajavahemikus %4$s - %5$s: %2$s, %3$s", "On specific dates for the entire day until %1$s" : "Kindlatel päevadel kogu päeva jooksul kuni %1$s", "On specific dates between %1$s - %2$s until %3$s" : "Kindlatel päevadel ajavahemikus %1$s - %2$s kuni %3$s", + "In the past on %1$s" : "Minevikus %1$s", + "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Ühe minuti pärast: %1$s","%n minuti pärast: %1$s"], + "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Tunni pärast: %1$s","%n tunni pärast: %1$s"], + "_In a day on %1$s_::_In %n days on %1$s_" : ["Päeva möödudes: %1$s","%n päeva möödudes: %1$s"], + "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Nädala möödudes: %1$s","%n nädala möödudes: %1$s"], + "_In a month on %1$s_::_In %n months on %1$s_" : ["Kuu möödudes: %1$s","%n kuu möödudes: %1$s"], + "_In a year on %1$s_::_In %n years on %1$s_" : ["Aasta möödudes: %1$s","%n aasta möödudes: %1$s"], + "In the past on %1$s then on %2$s" : "Minevikus: %1$s ja siis %2$s", + "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Minuti pärast: %1$s ja siis %2$s","%n minuti pärast: %1$s ja siis %2$s"], + "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Tunni pärast: %1$s ja siis %2$s","%n tunni pärast: %1$s ja siis %2$s"], + "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Päeva möödudes: %1$s ja siis %2$s","%n päeva möödudes: %1$s ja siis %2$s"], + "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Nädala möödudes: %1$s ja siis %2$s","%n nädala möödudes: %1$s ja siis %2$s"], + "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Kuu möödudes: %1$s ja siis %2$s","%n kuu möödudes: %1$s ja siis %2$s"], + "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Aasta möödudes: %1$s ja siis %2$s","%n aasta möödudes: %1$s ja siis %2$s"], + "In the past on %1$s then on %2$s and %3$s" : "Minevikus: %1$s ja siis %2$s ning %3$s", + "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Minuti pärast: %1$s ja siis %2$s ning %3$s","%n minuti pärast: %1$s ja siis %2$s ning %3$s"], + "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Tunni pärast: %1$s ja siis %2$s ning %3$s","%n tunni pärast: %1$s ja siis %2$s ning %3$s"], + "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Päeva möödudes: %1$s ja siis %2$s ning %3$s","%n päeva möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Nädala möödudes: %1$s ja siis %2$s ning %3$s","%n nädala möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Kuu möödudes: %1$s ja siis %2$s ning %3$s","%n kuu möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Aasta möödudes: %1$s ja siis %2$s ning %3$s","%n aasta möödudes: %1$s ja siis %2$s ning %3$s"], "Could not generate next recurrence statement" : "Ei õnnestunud koostada korduva ürituse järgmise toimumise lausendit", "Cancelled: %1$s" : "Tühistatud: %1$s", "\"%1$s\" has been canceled" : "„%1$s“ on tühistatud", @@ -126,6 +161,7 @@ OC.L10N.register( "When:" : "Millal:", "Location:" : "Asukoht:", "Link:" : "Link:", + "Occurring:" : "Toimub:", "Accept" : "Nõustu", "Decline" : "Keeldu", "More options …" : "Täiendavad valikud…", @@ -155,20 +191,46 @@ OC.L10N.register( "Fourth" : "Neljas", "Fifth" : "Viies", "Last" : "Viimane", + "Second Last" : "Teiseks viimane", + "Third Last" : "Kolmandks viimane", + "Fourth Last" : "Neljandaks viimane", + "Fifth Last" : "Viiendaks viimane", "Contacts" : "Kontaktid", + "{actor} created address book {addressbook}" : "{actor} lõi aadressiraamatu „{addressbook}“", "You created address book {addressbook}" : "Sa lõid aadressiraamatu „{addressbook}“", "{actor} deleted address book {addressbook}" : "„{actor}“ kustutas „{addressbook}“ aadressiraamatu", "You deleted address book {addressbook}" : "Sa kustutasid aadressiraamatu „{addressbook}“", + "{actor} updated address book {addressbook}" : "{actor} uuendasaadressiraamatut „{addressbook}“", + "You updated address book {addressbook}" : "Sa uuendasid aadressiraamatut „{addressbook}“", + "{actor} shared address book {addressbook} with you" : "{actor} jagas „{addressbook}“ aadressiraamatut sinuga", "You shared address book {addressbook} with {user}" : "Sa jagasid „{addressbook}“ aadressiraamatut kasutajaga „{user}“", + "{actor} shared address book {addressbook} with {user}" : "{actor} jagas „{addressbook}“ aadressiraamatut kasutajaga „{user}“", + "{actor} unshared address book {addressbook} from you" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise sinult", + "You unshared address book {addressbook} from {user}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise kasutajalt {user}", + "{actor} unshared address book {addressbook} from {user}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu kasutajalt {user}", + "{actor} unshared address book {addressbook} from themselves" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise iseendalt", + "You shared address book {addressbook} with group {group}" : "Sina jagasid „{addressbook}“ aadressiraamatut grupiga {group}", + "{actor} shared address book {addressbook} with group {group}" : "{actor} jagas „{addressbook}“ aadressiraamatut grupiga {group}", + "You unshared address book {addressbook} from group {group}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise grupiga {group}", + "{actor} unshared address book {addressbook} from group {group}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise grupiga {group}", + "{actor} created contact {card} in address book {addressbook}" : "{actor} lisas „{card}“ kontakti „{addressbook}“ aadressiraamatusse", + "You created contact {card} in address book {addressbook}" : "Sina lisasid „{card}“ kontakti „{addressbook}“ aadressiraamatusse", + "{actor} deleted contact {card} from address book {addressbook}" : "{actor} kustutas „{card}“ kontakti „{addressbook}“ aadressiraamatus", "You deleted contact {card} from address book {addressbook}" : "Sa kustutasid „{card}“ kontakti „{addressbook}“ aadressiraamatus", + "{actor} updated contact {card} in address book {addressbook}" : "{actor} uuendas „{card}“ kontakti „{addressbook}“ aadressiraamatus", "You updated contact {card} in address book {addressbook}" : "Sa uuendasid „{card}“ kontakti „{addressbook}“ aadressiraamatus", "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Kontakti</strong> või <strong>aadressiraamatut</strong> muudeti", "Accounts" : "Kasutajakontod", "System address book which holds all accounts" : "Süsteemne aadressiraamat, kus leiduvad kõik kasutajakontod", "File is not updatable: %1$s" : "Fail pole uuendatav: %1$s", "Failed to get storage for file" : "Failile ei õnnestunud eraldada andmeruumi", + "Could not write to final file, canceled by hook" : "Lõppfaili kirjutamine ei õnnestunud, selle katkestas programmi haak", "Could not write file contents" : "Ei õnnestunud kirjutada faili sisu", "_%n byte_::_%n bytes_" : ["%n bait","%n baiti"], + "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Viga faili kopeerimisel sihtkausta (kopeerisin %1$s, aga suuruseks eeldasin %2$s)", + "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Eeldasin faili suuruseks %1$s, aga lugesin (Nextcloudi kliendilt) ja kirjutasin (Nextcloudi andmeruumi) %2$s. Tegemist võib olla võrguühenduse veaga saatja poolel või andmeruumi kirjutamise veaga serveri poolel.", + "Could not rename part file to final file, canceled by hook" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud, selle katkestas programmi haak", + "Could not rename part file to final file" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud", "Failed to check file size: %1$s" : "Faili suuruse kontrollimine ei õnnestunud: %1$s", "Could not open file: %1$s, file does seem to exist" : "„%1$s“ faili avamine ei õnnestunud - aga tundub, et ta on olemas", "Could not open file: %1$s, file doesn't seem to exist" : "„%1$s“ faili avamine ei õnnestunud - tundub, et teda pole olemas", @@ -192,10 +254,13 @@ OC.L10N.register( "The system address book contains contact information for all users in your instance." : "Süsteemses aadressiraamatus leiduvad kõikde selle serveri kasutajate kontaktteave.", "Enable System Address Book" : "Kasuta süsteemset aadressiraamatut", "DAV system address book" : "DAV-i süsteemne aadressiraamat", + "No outstanding DAV system address book sync." : "Pole DAV-i süsteemse aadressiraamatu sünkroniseerimist.", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Kuna selles serveris on üle 1000 kasutaja, siis DAV-i süsteemse aadressiraamatu sünkroonomist poel veel toimunud. Aga võis ka juhtuda viga. Palun käivita ta käsurealt ise käsuga „occ dav:sync-system-addressbook“.", "WebDAV endpoint" : "WebDAV-i teenuse otspunkt", "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Ei õnnestunud kontrollida, kas sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel. Palun kontrolli seda käsitsi.", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel failide sünkroniseerimiseks vajalikult seadistatud, kuna WebDAV liides paistab olevat katki.", "Your web server is properly set up to allow file synchronization over WebDAV." : "Sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel.", + "Migrated calendar (%1$s)" : "Ümberkolitud kalender (%1$s)", "Calendars including events, details and attendees" : "Kalendrid, sealhulgas sündmused, üksikasjad ja osalejad", "Contacts and groups" : "Kontaktid ja grupid", "WebDAV" : "WebDAV", @@ -222,15 +287,24 @@ OC.L10N.register( "No working hours set" : "Tööajad on sisestamata", "Add slot" : "Lisa ajavahemik", "Weekdays" : "Nädalapäevad", + "Pick a start time for {dayName}" : "Vali algusaeg: {dayName}", + "Pick a end time for {dayName}" : "Vali lõpuaeg: {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Kõikide teavituste summutamiseks määra automaatselt kasutajale olek „Ära sega“ nendele aegadele, kus ta vaba ei ole.", "Availability" : "Saadavus", + "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.", "Absence" : "Äraolek", "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.", + "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.", + "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.", "Calendar server" : "Kalendriserver", "Send invitations to attendees" : "Saada osalejatele kutsed", "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt", "Birthday calendars will be generated by a background job." : "Sünnipäevade kalender luuakse automaatselt taustateenuse poolt.", + "Hence they will not be available immediately after enabling but will show up after some time." : "Seega pole need andmed kohe saadaval, vaid ilmuvad mingi aja pärast.", "Send notifications for events" : "Saada sündmuste teavitusi", + "Notifications are sent via background jobs, so these must occur often enough." : "Teavitused saadetakse taustateenuste poolt. See eeldab, et vastavaid skripte käivitatakse piisavalt tihti.", + "Send reminder notifications to calendar sharees as well" : "Saada meeldetuletused ka neile, kes ürituse on lisanud oma kalendrisse", + "Reminders are always sent to organizers and attendees." : "Meeldetuletused on alati saadetud korraldajatele ja osalejatele.", "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused", "Cancel" : "Tühista", "Import" : "Impordi", diff --git a/apps/dav/l10n/et_EE.json b/apps/dav/l10n/et_EE.json index 060e60c7b21..72a36787328 100644 --- a/apps/dav/l10n/et_EE.json +++ b/apps/dav/l10n/et_EE.json @@ -70,6 +70,20 @@ "Description: %s" : "Kirjeldus: %s", "Where: %s" : "Kus: %s", "%1$s via %2$s" : "%1$s %2$s kaudu", + "In the past on %1$s for the entire day" : "Minevikus kogu päeva: %1$s", + "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["%n minuti pärast kogu päeva: %1$s","%n minuti pärast kogu päeva: %1$s"], + "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["%n tunni pärast kogu päeva: %1$s","%n tunni pärast kogu päeva: %1$s"], + "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["%n päeva pärast kogu päeva: %1$s","%n päeva pärast kogu päeva: %1$s"], + "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["%n nädala pärast kogu päeva: %1$s","%n nädala pärast kogu päeva: %1$s"], + "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["%n kuu pärast kogu päeva: %1$s","%n kuu pärast kogu päeva: %1$s"], + "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["%n aasta pärast kogu päeva: %1$s","%n aasta pärast kogu päeva: %1$s"], + "In the past on %1$s between %2$s - %3$s" : "Minevikus: %1$s ajavahemikus %2$s - %3$s", + "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], + "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"], "Could not generate when statement" : "Ei õnnestunud koostada tingimuslikku „when“ lausendit", "Every Day for the entire day" : "Iga päev kogu päeva jooksul", "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s", @@ -106,6 +120,27 @@ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Igal %1$d-l aastal kuni %6$s ajavahemikus %4$s - %5$s: %2$s, %3$s", "On specific dates for the entire day until %1$s" : "Kindlatel päevadel kogu päeva jooksul kuni %1$s", "On specific dates between %1$s - %2$s until %3$s" : "Kindlatel päevadel ajavahemikus %1$s - %2$s kuni %3$s", + "In the past on %1$s" : "Minevikus %1$s", + "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Ühe minuti pärast: %1$s","%n minuti pärast: %1$s"], + "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Tunni pärast: %1$s","%n tunni pärast: %1$s"], + "_In a day on %1$s_::_In %n days on %1$s_" : ["Päeva möödudes: %1$s","%n päeva möödudes: %1$s"], + "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Nädala möödudes: %1$s","%n nädala möödudes: %1$s"], + "_In a month on %1$s_::_In %n months on %1$s_" : ["Kuu möödudes: %1$s","%n kuu möödudes: %1$s"], + "_In a year on %1$s_::_In %n years on %1$s_" : ["Aasta möödudes: %1$s","%n aasta möödudes: %1$s"], + "In the past on %1$s then on %2$s" : "Minevikus: %1$s ja siis %2$s", + "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Minuti pärast: %1$s ja siis %2$s","%n minuti pärast: %1$s ja siis %2$s"], + "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Tunni pärast: %1$s ja siis %2$s","%n tunni pärast: %1$s ja siis %2$s"], + "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Päeva möödudes: %1$s ja siis %2$s","%n päeva möödudes: %1$s ja siis %2$s"], + "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Nädala möödudes: %1$s ja siis %2$s","%n nädala möödudes: %1$s ja siis %2$s"], + "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Kuu möödudes: %1$s ja siis %2$s","%n kuu möödudes: %1$s ja siis %2$s"], + "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Aasta möödudes: %1$s ja siis %2$s","%n aasta möödudes: %1$s ja siis %2$s"], + "In the past on %1$s then on %2$s and %3$s" : "Minevikus: %1$s ja siis %2$s ning %3$s", + "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Minuti pärast: %1$s ja siis %2$s ning %3$s","%n minuti pärast: %1$s ja siis %2$s ning %3$s"], + "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Tunni pärast: %1$s ja siis %2$s ning %3$s","%n tunni pärast: %1$s ja siis %2$s ning %3$s"], + "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Päeva möödudes: %1$s ja siis %2$s ning %3$s","%n päeva möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Nädala möödudes: %1$s ja siis %2$s ning %3$s","%n nädala möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Kuu möödudes: %1$s ja siis %2$s ning %3$s","%n kuu möödudes: %1$s ja siis %2$s ning %3$s"], + "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Aasta möödudes: %1$s ja siis %2$s ning %3$s","%n aasta möödudes: %1$s ja siis %2$s ning %3$s"], "Could not generate next recurrence statement" : "Ei õnnestunud koostada korduva ürituse järgmise toimumise lausendit", "Cancelled: %1$s" : "Tühistatud: %1$s", "\"%1$s\" has been canceled" : "„%1$s“ on tühistatud", @@ -124,6 +159,7 @@ "When:" : "Millal:", "Location:" : "Asukoht:", "Link:" : "Link:", + "Occurring:" : "Toimub:", "Accept" : "Nõustu", "Decline" : "Keeldu", "More options …" : "Täiendavad valikud…", @@ -153,20 +189,46 @@ "Fourth" : "Neljas", "Fifth" : "Viies", "Last" : "Viimane", + "Second Last" : "Teiseks viimane", + "Third Last" : "Kolmandks viimane", + "Fourth Last" : "Neljandaks viimane", + "Fifth Last" : "Viiendaks viimane", "Contacts" : "Kontaktid", + "{actor} created address book {addressbook}" : "{actor} lõi aadressiraamatu „{addressbook}“", "You created address book {addressbook}" : "Sa lõid aadressiraamatu „{addressbook}“", "{actor} deleted address book {addressbook}" : "„{actor}“ kustutas „{addressbook}“ aadressiraamatu", "You deleted address book {addressbook}" : "Sa kustutasid aadressiraamatu „{addressbook}“", + "{actor} updated address book {addressbook}" : "{actor} uuendasaadressiraamatut „{addressbook}“", + "You updated address book {addressbook}" : "Sa uuendasid aadressiraamatut „{addressbook}“", + "{actor} shared address book {addressbook} with you" : "{actor} jagas „{addressbook}“ aadressiraamatut sinuga", "You shared address book {addressbook} with {user}" : "Sa jagasid „{addressbook}“ aadressiraamatut kasutajaga „{user}“", + "{actor} shared address book {addressbook} with {user}" : "{actor} jagas „{addressbook}“ aadressiraamatut kasutajaga „{user}“", + "{actor} unshared address book {addressbook} from you" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise sinult", + "You unshared address book {addressbook} from {user}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise kasutajalt {user}", + "{actor} unshared address book {addressbook} from {user}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu kasutajalt {user}", + "{actor} unshared address book {addressbook} from themselves" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise iseendalt", + "You shared address book {addressbook} with group {group}" : "Sina jagasid „{addressbook}“ aadressiraamatut grupiga {group}", + "{actor} shared address book {addressbook} with group {group}" : "{actor} jagas „{addressbook}“ aadressiraamatut grupiga {group}", + "You unshared address book {addressbook} from group {group}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise grupiga {group}", + "{actor} unshared address book {addressbook} from group {group}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise grupiga {group}", + "{actor} created contact {card} in address book {addressbook}" : "{actor} lisas „{card}“ kontakti „{addressbook}“ aadressiraamatusse", + "You created contact {card} in address book {addressbook}" : "Sina lisasid „{card}“ kontakti „{addressbook}“ aadressiraamatusse", + "{actor} deleted contact {card} from address book {addressbook}" : "{actor} kustutas „{card}“ kontakti „{addressbook}“ aadressiraamatus", "You deleted contact {card} from address book {addressbook}" : "Sa kustutasid „{card}“ kontakti „{addressbook}“ aadressiraamatus", + "{actor} updated contact {card} in address book {addressbook}" : "{actor} uuendas „{card}“ kontakti „{addressbook}“ aadressiraamatus", "You updated contact {card} in address book {addressbook}" : "Sa uuendasid „{card}“ kontakti „{addressbook}“ aadressiraamatus", "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Kontakti</strong> või <strong>aadressiraamatut</strong> muudeti", "Accounts" : "Kasutajakontod", "System address book which holds all accounts" : "Süsteemne aadressiraamat, kus leiduvad kõik kasutajakontod", "File is not updatable: %1$s" : "Fail pole uuendatav: %1$s", "Failed to get storage for file" : "Failile ei õnnestunud eraldada andmeruumi", + "Could not write to final file, canceled by hook" : "Lõppfaili kirjutamine ei õnnestunud, selle katkestas programmi haak", "Could not write file contents" : "Ei õnnestunud kirjutada faili sisu", "_%n byte_::_%n bytes_" : ["%n bait","%n baiti"], + "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Viga faili kopeerimisel sihtkausta (kopeerisin %1$s, aga suuruseks eeldasin %2$s)", + "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Eeldasin faili suuruseks %1$s, aga lugesin (Nextcloudi kliendilt) ja kirjutasin (Nextcloudi andmeruumi) %2$s. Tegemist võib olla võrguühenduse veaga saatja poolel või andmeruumi kirjutamise veaga serveri poolel.", + "Could not rename part file to final file, canceled by hook" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud, selle katkestas programmi haak", + "Could not rename part file to final file" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud", "Failed to check file size: %1$s" : "Faili suuruse kontrollimine ei õnnestunud: %1$s", "Could not open file: %1$s, file does seem to exist" : "„%1$s“ faili avamine ei õnnestunud - aga tundub, et ta on olemas", "Could not open file: %1$s, file doesn't seem to exist" : "„%1$s“ faili avamine ei õnnestunud - tundub, et teda pole olemas", @@ -190,10 +252,13 @@ "The system address book contains contact information for all users in your instance." : "Süsteemses aadressiraamatus leiduvad kõikde selle serveri kasutajate kontaktteave.", "Enable System Address Book" : "Kasuta süsteemset aadressiraamatut", "DAV system address book" : "DAV-i süsteemne aadressiraamat", + "No outstanding DAV system address book sync." : "Pole DAV-i süsteemse aadressiraamatu sünkroniseerimist.", + "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Kuna selles serveris on üle 1000 kasutaja, siis DAV-i süsteemse aadressiraamatu sünkroonomist poel veel toimunud. Aga võis ka juhtuda viga. Palun käivita ta käsurealt ise käsuga „occ dav:sync-system-addressbook“.", "WebDAV endpoint" : "WebDAV-i teenuse otspunkt", "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Ei õnnestunud kontrollida, kas sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel. Palun kontrolli seda käsitsi.", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel failide sünkroniseerimiseks vajalikult seadistatud, kuna WebDAV liides paistab olevat katki.", "Your web server is properly set up to allow file synchronization over WebDAV." : "Sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel.", + "Migrated calendar (%1$s)" : "Ümberkolitud kalender (%1$s)", "Calendars including events, details and attendees" : "Kalendrid, sealhulgas sündmused, üksikasjad ja osalejad", "Contacts and groups" : "Kontaktid ja grupid", "WebDAV" : "WebDAV", @@ -220,15 +285,24 @@ "No working hours set" : "Tööajad on sisestamata", "Add slot" : "Lisa ajavahemik", "Weekdays" : "Nädalapäevad", + "Pick a start time for {dayName}" : "Vali algusaeg: {dayName}", + "Pick a end time for {dayName}" : "Vali lõpuaeg: {dayName}", "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Kõikide teavituste summutamiseks määra automaatselt kasutajale olek „Ära sega“ nendele aegadele, kus ta vaba ei ole.", "Availability" : "Saadavus", + "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.", "Absence" : "Äraolek", "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.", + "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.", + "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.", "Calendar server" : "Kalendriserver", "Send invitations to attendees" : "Saada osalejatele kutsed", "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt", "Birthday calendars will be generated by a background job." : "Sünnipäevade kalender luuakse automaatselt taustateenuse poolt.", + "Hence they will not be available immediately after enabling but will show up after some time." : "Seega pole need andmed kohe saadaval, vaid ilmuvad mingi aja pärast.", "Send notifications for events" : "Saada sündmuste teavitusi", + "Notifications are sent via background jobs, so these must occur often enough." : "Teavitused saadetakse taustateenuste poolt. See eeldab, et vastavaid skripte käivitatakse piisavalt tihti.", + "Send reminder notifications to calendar sharees as well" : "Saada meeldetuletused ka neile, kes ürituse on lisanud oma kalendrisse", + "Reminders are always sent to organizers and attendees." : "Meeldetuletused on alati saadetud korraldajatele ja osalejatele.", "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused", "Cancel" : "Tühista", "Import" : "Impordi", diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index 7789bdc8ed0..62ff9546e67 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -299,12 +299,12 @@ OC.L10N.register( "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara davet gönder", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", - "Birthday calendars will be generated by a background job." : "Bu seçenek kullanıma alındığında, doğum günü takvimi arka plan görevi olarak oluşturulur.", - "Hence they will not be available immediately after enabling but will show up after some time." : "Kullanıma alındıktan hemen sonra görüntülenmez, bir süre sonra görüntülenir.", + "Birthday calendars will be generated by a background job." : "Bu seçenek etkinleştirildiğinde, doğum günü takvimi arka plan görevi olarak oluşturulur.", + "Hence they will not be available immediately after enabling but will show up after some time." : "Etkinleştirildikten hemen sonra görüntülenmez, bir süre sonra görüntülenir.", "Send notifications for events" : "Etkinlik bildirimleri gönderilsin", "Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.", "Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin", - "Reminders are always sent to organizers and attendees." : "Bu seçenek kullanıma alındığında, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", + "Reminders are always sent to organizers and attendees." : "Bu seçenek etkinleştirildiğinde, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", "Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç", "Cancel" : "İptal", "Import" : "İçe aktar", diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index 2d87784f335..dafc8d490e2 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -297,12 +297,12 @@ "Calendar server" : "Takvim sunucusu", "Send invitations to attendees" : "Katılımcılara davet gönder", "Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun", - "Birthday calendars will be generated by a background job." : "Bu seçenek kullanıma alındığında, doğum günü takvimi arka plan görevi olarak oluşturulur.", - "Hence they will not be available immediately after enabling but will show up after some time." : "Kullanıma alındıktan hemen sonra görüntülenmez, bir süre sonra görüntülenir.", + "Birthday calendars will be generated by a background job." : "Bu seçenek etkinleştirildiğinde, doğum günü takvimi arka plan görevi olarak oluşturulur.", + "Hence they will not be available immediately after enabling but will show up after some time." : "Etkinleştirildikten hemen sonra görüntülenmez, bir süre sonra görüntülenir.", "Send notifications for events" : "Etkinlik bildirimleri gönderilsin", "Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.", "Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin", - "Reminders are always sent to organizers and attendees." : "Bu seçenek kullanıma alındığında, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", + "Reminders are always sent to organizers and attendees." : "Bu seçenek etkinleştirildiğinde, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.", "Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç", "Cancel" : "İptal", "Import" : "İçe aktar", diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php index 41b610542df..f498a47a0b4 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php @@ -78,14 +78,9 @@ class Event extends Base { // as seen from the affected user. $objectId = base64_encode($this->url->getWebroot() . '/remote.php/dav/calendars/' . $affectedUser . '/' . $calendarUri . '_shared_by_' . $linkData['owner'] . '/' . $linkData['object_uri']); } - $link = [ - 'view' => 'dayGridMonth', - 'timeRange' => 'now', - 'mode' => 'sidebar', + $params['link'] = $this->url->linkToRouteAbsolute('calendar.view.indexdirect.edit', [ 'objectId' => $objectId, - 'recurrenceId' => 'next' - ]; - $params['link'] = $this->url->linkToRouteAbsolute('calendar.view.indexview.timerange.edit', $link); + ]); } catch (\Exception $error) { // Do nothing } diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 5643e89d797..c49e843d2b9 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -212,15 +212,13 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } /** - * Return the number of calendars for a principal + * Return the number of calendars owned by the given principal. * - * By default this excludes the automatically generated birthday calendar + * Calendars shared with the given principal are not counted! * - * @param $principalUri - * @param bool $excludeBirthday - * @return int + * By default, this excludes the automatically generated birthday calendar. */ - public function getCalendarsForUserCount($principalUri, $excludeBirthday = true) { + public function getCalendarsForUserCount(string $principalUri, bool $excludeBirthday = true): int { $principalUri = $this->convertPrincipal($principalUri, true); $query = $this->db->getQueryBuilder(); $query->select($query->func()->count('*')) @@ -1040,7 +1038,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $rs->closeCursor(); } } - + /** * Returns all calendar objects with limited metadata for a calendar * @@ -1538,25 +1536,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription }, $this->db); } - - /** - * @param int $calendarObjectId - * @param int $classification - */ - public function setClassification($calendarObjectId, $classification) { - $this->cachedObjects = []; - if (!in_array($classification, [ - self::CLASSIFICATION_PUBLIC, self::CLASSIFICATION_PRIVATE, self::CLASSIFICATION_CONFIDENTIAL - ])) { - throw new \InvalidArgumentException(); - } - $query = $this->db->getQueryBuilder(); - $query->update('calendarobjects') - ->set('classification', $query->createNamedParameter($classification)) - ->where($query->expr()->eq('id', $query->createNamedParameter($calendarObjectId))) - ->executeStatement(); - } - /** * Deletes an existing calendar object. * diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php index 0ce8e28ab9e..9df7c1cd492 100644 --- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php +++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php @@ -186,7 +186,7 @@ class IMipPlugin extends SabreIMipPlugin { switch (strtolower($iTipMessage->method)) { case self::METHOD_REPLY: $method = self::METHOD_REPLY; - $data = $this->imipService->buildBodyData($vEvent, $oldVevent); + $data = $this->imipService->buildReplyBodyData($vEvent); $replyingAttendee = $this->imipService->getReplyingAttendee($iTipMessage); break; case self::METHOD_CANCEL: diff --git a/apps/dav/lib/CalDAV/Schedule/IMipService.php b/apps/dav/lib/CalDAV/Schedule/IMipService.php index 078b10abd23..42042c45b97 100644 --- a/apps/dav/lib/CalDAV/Schedule/IMipService.php +++ b/apps/dav/lib/CalDAV/Schedule/IMipService.php @@ -159,7 +159,35 @@ class IMipService { if ($eventReaderCurrent->recurs()) { $data['meeting_occurring'] = $this->generateOccurringString($eventReaderCurrent); } - + return $data; + } + + /** + * @param VEvent $vEvent + * @return array + */ + public function buildReplyBodyData(VEvent $vEvent): array { + // construct event reader + $eventReader = new EventReader($vEvent); + $defaultVal = ''; + $data = []; + $data['meeting_when'] = $this->generateWhenString($eventReader); + + foreach (self::STRING_DIFF as $key => $property) { + $data[$key] = self::readPropertyWithDefault($vEvent, $property, $defaultVal); + } + + if (($locationHtml = $this->linkify($data['meeting_location'])) !== null) { + $data['meeting_location_html'] = $locationHtml; + } + + $data['meeting_url_html'] = $data['meeting_url'] ? sprintf('<a href="%1$s">%1$s</a>', $data['meeting_url']) : ''; + + // generate occurring next string + if ($eventReader->recurs()) { + $data['meeting_occurring'] = $this->generateOccurringString($eventReader); + } + return $data; } diff --git a/apps/dav/lib/CalDAV/UpcomingEventsService.php b/apps/dav/lib/CalDAV/UpcomingEventsService.php index 9c054deb4e0..6614d937ff7 100644 --- a/apps/dav/lib/CalDAV/UpcomingEventsService.php +++ b/apps/dav/lib/CalDAV/UpcomingEventsService.php @@ -47,20 +47,36 @@ class UpcomingEventsService { $this->userManager->get($userId), ); - return array_map(fn (array $event) => new UpcomingEvent( - $event['uri'], - ($event['objects'][0]['RECURRENCE-ID'][0] ?? null)?->getTimeStamp(), - $event['calendar-uri'], - $event['objects'][0]['DTSTART'][0]?->getTimestamp(), - $event['objects'][0]['SUMMARY'][0] ?? null, - $event['objects'][0]['LOCATION'][0] ?? null, - match ($calendarAppEnabled) { - // TODO: create a named, deep route in calendar - // TODO: it's a code smell to just assume this route exists, find an abstraction - true => $this->urlGenerator->linkToRouteAbsolute('calendar.view.index'), - false => null, - }, - ), $events); + return array_map(function (array $event) use ($userId, $calendarAppEnabled) { + $calendarAppUrl = null; + + if ($calendarAppEnabled) { + $arguments = [ + 'objectId' => base64_encode($this->urlGenerator->getWebroot() . '/remote.php/dav/calendars/' . $userId . '/' . $event['calendar-uri'] . '/' . $event['uri']), + ]; + + if (isset($event['RECURRENCE-ID'])) { + $arguments['recurrenceId'] = $event['RECURRENCE-ID'][0]; + } + /** + * TODO: create a named, deep route in calendar (it's a code smell to just assume this route exists, find an abstraction) + * When changing, also adjust for: + * - spreed/lib/Service/CalendarIntegrationService.php#getDashboardEvents + * - spreed/lib/Service/CalendarIntegrationService.php#getMutualEvents + */ + $calendarAppUrl = $this->urlGenerator->linkToRouteAbsolute('calendar.view.indexdirect.edit', $arguments); + } + + return new UpcomingEvent( + $event['uri'], + ($event['objects'][0]['RECURRENCE-ID'][0] ?? null)?->getTimeStamp(), + $event['calendar-uri'], + $event['objects'][0]['DTSTART'][0]?->getTimestamp(), + $event['objects'][0]['SUMMARY'][0] ?? null, + $event['objects'][0]['LOCATION'][0] ?? null, + $calendarAppUrl, + ); + }, $events); } } diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index de209754ae4..d874ca2ce2b 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -127,7 +127,6 @@ class CardDavBackend implements BackendInterface, SyncSupport { // query for shared addressbooks $principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true); - $principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal)); $principals[] = $principalUri; diff --git a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php index 9aee5283ea9..3bdd273189f 100644 --- a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php +++ b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php @@ -8,6 +8,7 @@ namespace OCA\DAV\Files\Sharing; use OCP\Files\Folder; use OCP\Files\NotFoundException; use OCP\Share\IShare; +use Sabre\DAV\Exception\BadRequest; use Sabre\DAV\Exception\MethodNotAllowed; use Sabre\DAV\ServerPlugin; use Sabre\HTTP\RequestInterface; @@ -71,13 +72,12 @@ class FilesDropPlugin extends ServerPlugin { ? trim(urldecode($request->getHeader('X-NC-Nickname'))) : null; - // if ($request->getMethod() !== 'PUT') { // If uploading subfolders we need to ensure they get created // within the nickname folder if ($request->getMethod() === 'MKCOL') { if (!$nickname) { - throw new MethodNotAllowed('A nickname header is required when uploading subfolders'); + throw new BadRequest('A nickname header is required when uploading subfolders'); } } else { throw new MethodNotAllowed('Only PUT is allowed on files drop'); @@ -113,7 +113,7 @@ class FilesDropPlugin extends ServerPlugin { // We need a valid nickname for file requests if ($isFileRequest && !$nickname) { - throw new MethodNotAllowed('A nickname header is required for file requests'); + throw new BadRequest('A nickname header is required for file requests'); } // We're only allowing the upload of @@ -121,12 +121,24 @@ class FilesDropPlugin extends ServerPlugin { // This prevents confusion when uploading files and help // classify them by uploaders. if (!$nickname && !$isRootUpload) { - throw new MethodNotAllowed('A nickname header is required when uploading subfolders'); + throw new BadRequest('A nickname header is required when uploading subfolders'); } - // If we have a nickname, let's put everything inside if ($nickname) { - // Put all files in the subfolder + try { + $node->verifyPath($nickname); + } catch (\Exception $e) { + // If the path is not valid, we throw an exception + throw new BadRequest('Invalid nickname: ' . $nickname); + } + + // Forbid nicknames starting with a dot + if (str_starts_with($nickname, '.')) { + throw new BadRequest('Invalid nickname: ' . $nickname); + } + + // If we have a nickname, let's put + // all files in the subfolder $relativePath = '/' . $nickname . '/' . $relativePath; $relativePath = str_replace('//', '/', $relativePath); } diff --git a/apps/dav/openapi.json b/apps/dav/openapi.json index 48d6ae03ee0..27904636def 100644 --- a/apps/dav/openapi.json +++ b/apps/dav/openapi.json @@ -399,7 +399,8 @@ "description": "location/URL to filter by", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php index 748360adf79..52d3dfa64cb 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php @@ -75,11 +75,7 @@ class EventTest extends TestCase { if ($link) { $affectedUser = $link['owner']; $generatedLink = [ - 'view' => 'dayGridMonth', - 'timeRange' => 'now', - 'mode' => 'sidebar', 'objectId' => base64_encode('/remote.php/dav/calendars/' . $link['owner'] . '/' . $link['calendar_uri'] . '/' . $link['object_uri']), - 'recurrenceId' => 'next' ]; $this->appManager->expects($this->once()) ->method('isEnabledForUser') @@ -90,7 +86,7 @@ class EventTest extends TestCase { ->method('getWebroot'); $this->url->expects($this->once()) ->method('linkToRouteAbsolute') - ->with('calendar.view.indexview.timerange.edit', $generatedLink) + ->with('calendar.view.indexdirect.edit', $generatedLink) ->willReturn('fullLink'); } } @@ -159,11 +155,7 @@ class EventTest extends TestCase { */ public function testGenerateObjectParameterLinkEncoding(array $link, string $objectId): void { $generatedLink = [ - 'view' => 'dayGridMonth', - 'timeRange' => 'now', - 'mode' => 'sidebar', 'objectId' => $objectId, - 'recurrenceId' => 'next' ]; $this->appManager->expects($this->once()) ->method('isEnabledForUser') @@ -173,7 +165,7 @@ class EventTest extends TestCase { ->method('getWebroot'); $this->url->expects($this->once()) ->method('linkToRouteAbsolute') - ->with('calendar.view.indexview.timerange.edit', $generatedLink) + ->with('calendar.view.indexdirect.edit', $generatedLink) ->willReturn('fullLink'); $objectParameter = ['id' => 42, 'name' => 'calendar', 'link' => $link]; $result = [ diff --git a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php index 545bea9a406..1a7ab7179e1 100644 --- a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php +++ b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php @@ -13,7 +13,7 @@ use OCP\Files\NotFoundException; use OCP\Share\IAttributes; use OCP\Share\IShare; use PHPUnit\Framework\MockObject\MockObject; -use Sabre\DAV\Exception\MethodNotAllowed; +use Sabre\DAV\Exception\BadRequest; use Sabre\DAV\Server; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; @@ -119,7 +119,7 @@ class FilesDropPluginTest extends TestCase { $this->request->method('getMethod') ->willReturn('MKCOL'); - $this->expectException(MethodNotAllowed::class); + $this->expectException(BadRequest::class); $this->plugin->beforeMethod($this->request, $this->response); } diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js index 40b44b02bd7..fd62a7cea4d 100644 --- a/apps/encryption/l10n/tr.js +++ b/apps/encryption/l10n/tr.js @@ -4,43 +4,43 @@ OC.L10N.register( "Missing recovery key password" : "Geri yükleme anahtarı parolası eksik", "Please repeat the recovery key password" : "Geri yükleme anahtarı parolasını yeniden yazın", "Repeated recovery key password does not match the provided recovery key password" : "Geri yükleme anahtarı parolası ile onayı aynı değil", - "Recovery key successfully enabled" : "Geri yükleme anahtarı kullanıma alındı", - "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanıma alınamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", - "Recovery key successfully disabled" : "Geri yükleme anahtarı kullanımdan kaldırıldı", - "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanımdan kaldırılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", + "Recovery key successfully enabled" : "Geri yükleme anahtarı başarıyla etkinleştirildi", + "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı etkinleştirilemedi. Lütfen geri yükleme anahtarı parolanızı denetleyin!", + "Recovery key successfully disabled" : "Geri yükleme anahtarı devre dışı bırakıldı", + "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı devre dışı bırakılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", "Missing parameters" : "Parametreler eksik", "Please provide the old recovery password" : "Lütfen eski geri yükleme parolasını yazın", "Please provide a new recovery password" : "Lütfen yeni geri yükleme parolasını yazın", "Please repeat the new recovery password" : "Lütfen yeni geri yükleme parolasını yeniden yazın", "Password successfully changed." : "Parola değiştirildi.", "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanızı doğru yazmamış olabilirsiniz.", - "Recovery Key disabled" : "Geri yükleme anahtarı kullanımdan kaldırılmış", - "Recovery Key enabled" : "Geri yükleme anahtarı kullanıma alındı", - "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı kullanıma alınamadı, yeniden deneyin ya da BT yöneticisi ile görüşün", + "Recovery Key disabled" : "Geri yükleme anahtarı devre dışı bırakılmış", + "Recovery Key enabled" : "Geri Yükleme Anahtarı etkinleştirildi", + "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı etkinleştirilemedi, yeniden deneyin ya da BT yöneticisi ile görüşün", "Could not update the private key password." : "Kişisel anahtar parolası güncellenemedi", "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", "The current log-in password was not correct, please try again." : "Geçerli oturum açma parolası doğru değil, lütfen yeniden deneyin.", "Private key password successfully updated." : "Kişisel anahtar parolası güncellendi.", "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme uygulaması kişisel anahtarı geçersiz. Şifrelenmiş dosyalarınıza erişebilmek için kişisel ayarlarınızdaki kişisel anahtar parolanızı güncelleyin.", - "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın", - "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini kullanıma alın.", - "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alınmış ve hazır", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması etkinleştirilmiş ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini etkinleştirin.", + "Encryption app is enabled and ready" : "Şifreleme uygulaması etkin ve hazır", "Bad Signature" : "İmza bozuk", "Missing Signature" : "İmza eksik", "one-time password for server-side-encryption" : "sunucu tarafında şifreleme için tek kullanımlık parola", "Encryption password" : "Şifreleme parolası", - "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.", - "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.", + "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi etkinleştirmiş. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.", + "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi etkinleştirmiş. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.", "Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Lütfen yönetim bölümünden oturum açarak kişisel ayarlarınızdaki \"Güvenlik\" bölümüne gidin ve \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.", "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosyanın şifresi çözülemedi ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.", "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.", "Default encryption module" : "Varsayılan şifreleme modülü", "Default encryption module for server-side encryption" : "Sunucu tarafında şifreleme için varsayılan şifreleme modülü", - "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül kullanıma alındıktan sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.", - "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", + "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül etkinleştirildikten sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması etkinleştirilmiş ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", "Encrypt the home storage" : "Ana depolama şifrelensin", - "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek kullanıma alındığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kullanımdan kaldırıldığında yalnızca dış depolama alanındaki dosyalar şifrelenir", - "Enable recovery key" : "Kurtarma anahtarını kullanıma al", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek etkinleştirildiğinde, ana depolama alanındaki tüm dosyalar şifrelenir. Devre dışı bırakılırsa, yalnızca dış depolama alanındaki dosyalar şifrelenir", + "Enable recovery key" : "Kurtarma anahtarını etkinleştir", "Disable recovery key" : "Kurtarma anahtarını kullanımdan kaldır", "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Kurtarma anahtarı, dosyaları şifrelemek için kullanılan ek bir şifreleme anahtarıdır. Parolanın unutulması durumunda hesaptaki dosyaları kurtarmak için kullanılır.", "Recovery key password" : "Kurtarma anahtarı parolası", @@ -57,9 +57,9 @@ OC.L10N.register( "Old log-in password" : "Eski oturum açma parolası", "Current log-in password" : "Geçerli oturum açma parolası", "Update Private Key Password" : "Kişisel anahtar parolasını güncelle", - "Enable password recovery:" : "Parola kurtarma özelliğini kullanıma al:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek kullanıma alındığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz", - "Enabled" : "Kullanıma alınmış", - "Disabled" : "Kullanımdan kaldırılmış" + "Enable password recovery:" : "Parola kurtarma özelliğini etkinleştir:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek etkinleştirildiğinde, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz", + "Enabled" : "Etkin", + "Disabled" : "Devre Dışı" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json index 52e0006e72b..720b74bd057 100644 --- a/apps/encryption/l10n/tr.json +++ b/apps/encryption/l10n/tr.json @@ -2,43 +2,43 @@ "Missing recovery key password" : "Geri yükleme anahtarı parolası eksik", "Please repeat the recovery key password" : "Geri yükleme anahtarı parolasını yeniden yazın", "Repeated recovery key password does not match the provided recovery key password" : "Geri yükleme anahtarı parolası ile onayı aynı değil", - "Recovery key successfully enabled" : "Geri yükleme anahtarı kullanıma alındı", - "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanıma alınamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", - "Recovery key successfully disabled" : "Geri yükleme anahtarı kullanımdan kaldırıldı", - "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanımdan kaldırılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", + "Recovery key successfully enabled" : "Geri yükleme anahtarı başarıyla etkinleştirildi", + "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı etkinleştirilemedi. Lütfen geri yükleme anahtarı parolanızı denetleyin!", + "Recovery key successfully disabled" : "Geri yükleme anahtarı devre dışı bırakıldı", + "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı devre dışı bırakılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!", "Missing parameters" : "Parametreler eksik", "Please provide the old recovery password" : "Lütfen eski geri yükleme parolasını yazın", "Please provide a new recovery password" : "Lütfen yeni geri yükleme parolasını yazın", "Please repeat the new recovery password" : "Lütfen yeni geri yükleme parolasını yeniden yazın", "Password successfully changed." : "Parola değiştirildi.", "Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanızı doğru yazmamış olabilirsiniz.", - "Recovery Key disabled" : "Geri yükleme anahtarı kullanımdan kaldırılmış", - "Recovery Key enabled" : "Geri yükleme anahtarı kullanıma alındı", - "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı kullanıma alınamadı, yeniden deneyin ya da BT yöneticisi ile görüşün", + "Recovery Key disabled" : "Geri yükleme anahtarı devre dışı bırakılmış", + "Recovery Key enabled" : "Geri Yükleme Anahtarı etkinleştirildi", + "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı etkinleştirilemedi, yeniden deneyin ya da BT yöneticisi ile görüşün", "Could not update the private key password." : "Kişisel anahtar parolası güncellenemedi", "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.", "The current log-in password was not correct, please try again." : "Geçerli oturum açma parolası doğru değil, lütfen yeniden deneyin.", "Private key password successfully updated." : "Kişisel anahtar parolası güncellendi.", "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme uygulaması kişisel anahtarı geçersiz. Şifrelenmiş dosyalarınıza erişebilmek için kişisel ayarlarınızdaki kişisel anahtar parolanızı güncelleyin.", - "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın", - "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini kullanıma alın.", - "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alınmış ve hazır", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması etkinleştirilmiş ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini etkinleştirin.", + "Encryption app is enabled and ready" : "Şifreleme uygulaması etkin ve hazır", "Bad Signature" : "İmza bozuk", "Missing Signature" : "İmza eksik", "one-time password for server-side-encryption" : "sunucu tarafında şifreleme için tek kullanımlık parola", "Encryption password" : "Şifreleme parolası", - "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.", - "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.", + "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi etkinleştirmiş. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.", + "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi etkinleştirmiş. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.", "Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Lütfen yönetim bölümünden oturum açarak kişisel ayarlarınızdaki \"Güvenlik\" bölümüne gidin ve \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.", "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosyanın şifresi çözülemedi ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.", "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.", "Default encryption module" : "Varsayılan şifreleme modülü", "Default encryption module for server-side encryption" : "Sunucu tarafında şifreleme için varsayılan şifreleme modülü", - "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül kullanıma alındıktan sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.", - "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", + "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül etkinleştirildikten sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması etkinleştirilmiş ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.", "Encrypt the home storage" : "Ana depolama şifrelensin", - "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek kullanıma alındığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kullanımdan kaldırıldığında yalnızca dış depolama alanındaki dosyalar şifrelenir", - "Enable recovery key" : "Kurtarma anahtarını kullanıma al", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek etkinleştirildiğinde, ana depolama alanındaki tüm dosyalar şifrelenir. Devre dışı bırakılırsa, yalnızca dış depolama alanındaki dosyalar şifrelenir", + "Enable recovery key" : "Kurtarma anahtarını etkinleştir", "Disable recovery key" : "Kurtarma anahtarını kullanımdan kaldır", "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Kurtarma anahtarı, dosyaları şifrelemek için kullanılan ek bir şifreleme anahtarıdır. Parolanın unutulması durumunda hesaptaki dosyaları kurtarmak için kullanılır.", "Recovery key password" : "Kurtarma anahtarı parolası", @@ -55,9 +55,9 @@ "Old log-in password" : "Eski oturum açma parolası", "Current log-in password" : "Geçerli oturum açma parolası", "Update Private Key Password" : "Kişisel anahtar parolasını güncelle", - "Enable password recovery:" : "Parola kurtarma özelliğini kullanıma al:", - "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek kullanıma alındığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz", - "Enabled" : "Kullanıma alınmış", - "Disabled" : "Kullanımdan kaldırılmış" + "Enable password recovery:" : "Parola kurtarma özelliğini etkinleştir:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek etkinleştirildiğinde, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz", + "Enabled" : "Etkin", + "Disabled" : "Devre Dışı" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/fa.js b/apps/federatedfilesharing/l10n/fa.js index 08abe157524..a50cb263c88 100644 --- a/apps/federatedfilesharing/l10n/fa.js +++ b/apps/federatedfilesharing/l10n/fa.js @@ -8,6 +8,7 @@ OC.L10N.register( "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 the account %2$s" : "اشتراکگذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است", "Federated shares require read permissions" : "سهام فدرال به مجوز خواندن نیاز دارد", "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، شاید سرور در حال حاضر غیرقابل دسترسی باشد یا از گواهی امضا شده استفاده میکند.", diff --git a/apps/federatedfilesharing/l10n/fa.json b/apps/federatedfilesharing/l10n/fa.json index f2cbe156d59..60e78b275c8 100644 --- a/apps/federatedfilesharing/l10n/fa.json +++ b/apps/federatedfilesharing/l10n/fa.json @@ -6,6 +6,7 @@ "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 the account %2$s" : "اشتراکگذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است", "Federated shares require read permissions" : "سهام فدرال به مجوز خواندن نیاز دارد", "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، شاید سرور در حال حاضر غیرقابل دسترسی باشد یا از گواهی امضا شده استفاده میکند.", diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js index 7f9022ee881..65e4da152b4 100644 --- a/apps/federatedfilesharing/l10n/pl.js +++ b/apps/federatedfilesharing/l10n/pl.js @@ -22,7 +22,7 @@ OC.L10N.register( "Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej", "Sharing" : "Udostępnianie", "Federated file sharing" : "Udostępnianie federacyjne plików", - "Provide federated file sharing across servers" : "Zezwól na udostępnianie federacyjne plików na serwerach", + "Provide federated file sharing across servers" : "Zezwalaj na udostępnianie federacyjne plików na serwerach", "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Służy do pobierania ID Chmury Federacyjnej, aby ułatwić udostępnianie federacyjne.", "Unable to update federated files sharing config" : "Nie można zaktualizować konfiguracji udostępniania federacyjnego plików", "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Dostosuj sposób udostępniania między serwerami. Obejmuje to również udostępnianie między ludźmi na tym serwerze, jeśli korzystają z udostępniania federacyjnego.", diff --git a/apps/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json index af0c9d9c059..4136a53d1cd 100644 --- a/apps/federatedfilesharing/l10n/pl.json +++ b/apps/federatedfilesharing/l10n/pl.json @@ -20,7 +20,7 @@ "Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej", "Sharing" : "Udostępnianie", "Federated file sharing" : "Udostępnianie federacyjne plików", - "Provide federated file sharing across servers" : "Zezwól na udostępnianie federacyjne plików na serwerach", + "Provide federated file sharing across servers" : "Zezwalaj na udostępnianie federacyjne plików na serwerach", "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Służy do pobierania ID Chmury Federacyjnej, aby ułatwić udostępnianie federacyjne.", "Unable to update federated files sharing config" : "Nie można zaktualizować konfiguracji udostępniania federacyjnego plików", "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Dostosuj sposób udostępniania między serwerami. Obejmuje to również udostępnianie między ludźmi na tym serwerze, jeśli korzystają z udostępniania federacyjnego.", diff --git a/apps/federatedfilesharing/l10n/tr.js b/apps/federatedfilesharing/l10n/tr.js index 7ad2baf4edf..7167f726042 100644 --- a/apps/federatedfilesharing/l10n/tr.js +++ b/apps/federatedfilesharing/l10n/tr.js @@ -2,7 +2,7 @@ OC.L10N.register( "federatedfilesharing", { "Invalid Federated Cloud ID" : "Birleşik bulut kimliği geçersiz", - "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kullanıma alınmamış", + "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği etkin değil", "Couldn't establish a federated share." : "Birleşik bir paylaşım oluşturulamadı.", "Couldn't establish a federated share, maybe the password was wrong." : "Birleşik bir paylaşım oluşturulamadı. Parola yanlış olabilir.", "Federated Share request sent, you will receive an invitation. Check your notifications." : "Birleşik paylaşım isteği gönderildi. Bir davet alacaksınız. Bildirimlerinizi denetleyin.", diff --git a/apps/federatedfilesharing/l10n/tr.json b/apps/federatedfilesharing/l10n/tr.json index 98cf82cc291..8e4a208335a 100644 --- a/apps/federatedfilesharing/l10n/tr.json +++ b/apps/federatedfilesharing/l10n/tr.json @@ -1,6 +1,6 @@ { "translations": { "Invalid Federated Cloud ID" : "Birleşik bulut kimliği geçersiz", - "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kullanıma alınmamış", + "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği etkin değil", "Couldn't establish a federated share." : "Birleşik bir paylaşım oluşturulamadı.", "Couldn't establish a federated share, maybe the password was wrong." : "Birleşik bir paylaşım oluşturulamadı. Parola yanlış olabilir.", "Federated Share request sent, you will receive an invitation. Check your notifications." : "Birleşik paylaşım isteği gönderildi. Bir davet alacaksınız. Bildirimlerinizi denetleyin.", diff --git a/apps/federatedfilesharing/openapi.json b/apps/federatedfilesharing/openapi.json index 990cbf50bfa..411ff856b18 100644 --- a/apps/federatedfilesharing/openapi.json +++ b/apps/federatedfilesharing/openapi.json @@ -158,47 +158,56 @@ "remote": { "type": "string", "nullable": true, + "default": null, "description": "Address of the remote" }, "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" }, "name": { "type": "string", "nullable": true, + "default": null, "description": "Name of the shared resource" }, "owner": { "type": "string", "nullable": true, + "default": null, "description": "Display name of the receiver" }, "sharedBy": { "type": "string", "nullable": true, + "default": null, "description": "Display name of the sender" }, "shareWith": { "type": "string", "nullable": true, + "default": null, "description": "ID of the user that receives the share" }, "remoteId": { "type": "integer", "format": "int64", "nullable": true, + "default": null, "description": "ID of the remote" }, "sharedByFederatedId": { "type": "string", "nullable": true, + "default": null, "description": "Federated ID of the sender" }, "ownerFederatedId": { "type": "string", "nullable": true, + "default": null, "description": "Federated ID of the receiver" } } @@ -276,11 +285,13 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" }, "shareWith": { "type": "string", "nullable": true, + "default": null, "description": "ID of the user that receives the share" }, "remoteId": { @@ -417,12 +428,14 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" }, "permissions": { "type": "integer", "format": "int64", "nullable": true, + "default": null, "description": "New permissions" } } @@ -538,6 +551,7 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" } } @@ -635,6 +649,7 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" } } @@ -722,6 +737,7 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" } } @@ -809,6 +825,7 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" } } @@ -924,16 +941,19 @@ "token": { "type": "string", "nullable": true, + "default": null, "description": "Shared secret between servers" }, "remote": { "type": "string", "nullable": true, + "default": null, "description": "Address of the remote" }, "remote_id": { "type": "string", "nullable": true, + "default": null, "description": "ID of the remote" } } diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js index 2966ea64b30..f1fbee6212f 100644 --- a/apps/files/l10n/ar.js +++ b/apps/files/l10n/ar.js @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ", "Submitting fields…" : "إرسال الحقول...", "Filter filenames…" : "تصفية باسم الملف...", - "Edit file locally" : "تحرير الملف محلياً", - "Edit online" : "التحرير عبر الإنترنت", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلدات","{folderCount} مجلد","{folderCount} مجلد"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ملف","{fileCount} ملف","{fileCount} ملف","{fileCount} ملفات","{fileCount} ملف","{fileCount} ملف"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و{folderCount} مجلدات","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد"], diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json index 44bf401f1ec..35d8957f85e 100644 --- a/apps/files/l10n/ar.json +++ b/apps/files/l10n/ar.json @@ -433,8 +433,6 @@ "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ", "Submitting fields…" : "إرسال الحقول...", "Filter filenames…" : "تصفية باسم الملف...", - "Edit file locally" : "تحرير الملف محلياً", - "Edit online" : "التحرير عبر الإنترنت", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلدات","{folderCount} مجلد","{folderCount} مجلد"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ملف","{fileCount} ملف","{fileCount} ملف","{fileCount} ملفات","{fileCount} ملف","{fileCount} ملف"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و{folderCount} مجلدات","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد"], diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index 0c0eb111936..165d9f4db58 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "Puja (màx. %s)", "Submitting fields…" : "S'estan enviant camps…", "Filter filenames…" : "Filtra els noms de fitxer…", - "Edit file locally" : "Edició del fitxer localment", - "Edit online" : "Edició en remot", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fitxer","{fileCount} fitxers"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fitxer i {folderCount} carpeta","1 fitxer i {folderCount} carpetes"], diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index a29248f26e9..785f02ffb75 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -433,8 +433,6 @@ "Upload (max. %s)" : "Puja (màx. %s)", "Submitting fields…" : "S'estan enviant camps…", "Filter filenames…" : "Filtra els noms de fitxer…", - "Edit file locally" : "Edició del fitxer localment", - "Edit online" : "Edició en remot", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fitxer","{fileCount} fitxers"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fitxer i {folderCount} carpeta","1 fitxer i {folderCount} carpetes"], diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index c4db8c2ebc9..e3739719ee2 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Nahrát (max. %s)", "Submitting fields…" : "Odesílání kolonek…", "Filter filenames…" : "Filtrovat názvy souborů…", - "Edit file locally" : "Upravit soubor lokálně", - "Edit online" : "Upravit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} složka","{folderCount} složky","{folderCount} složek","{folderCount} složky"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} soubor","{fileCount} soubory","{fileCount} souborů","{fileCount} soubory"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"], diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index b3ab9d87ded..1f5d8646df1 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Nahrát (max. %s)", "Submitting fields…" : "Odesílání kolonek…", "Filter filenames…" : "Filtrovat názvy souborů…", - "Edit file locally" : "Upravit soubor lokálně", - "Edit online" : "Upravit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} složka","{folderCount} složky","{folderCount} složek","{folderCount} složky"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} soubor","{fileCount} soubory","{fileCount} souborů","{fileCount} soubory"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"], diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 4c22f5a4cfe..1bd3dad4599 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Sender felter...", "Filter filenames…" : "Filtrer filnavne...", - "Edit file locally" : "Rediger fil lokalt", - "Edit online" : "Rediger online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mapper","1 fil og {folderCount} mapper"], diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index b791f81d82e..cce400a7144 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -433,8 +433,6 @@ "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Sender felter...", "Filter filenames…" : "Filtrer filnavne...", - "Edit file locally" : "Rediger fil lokalt", - "Edit online" : "Rediger online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mapper","1 fil og {folderCount} mapper"], diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index b201407f4c7..7d0d105072c 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Hochladen (max. %s)", "Submitting fields…" : "Felder werden übermittelt…", "Filter filenames…" : "Dateinamen filtern…", - "Edit file locally" : "Datei lokal bearbeiten", - "Edit online" : "Online bearbeiten", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 8b16a6cf288..7dca82a027c 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Hochladen (max. %s)", "Submitting fields…" : "Felder werden übermittelt…", "Filter filenames…" : "Dateinamen filtern…", - "Edit file locally" : "Datei lokal bearbeiten", - "Edit online" : "Online bearbeiten", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 4eb6dbf8fdc..c0f58b2e1eb 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Hochladen (max. %s)", "Submitting fields…" : "Felder werden übermittelt…", "Filter filenames…" : "Dateinamen filtern…", - "Edit file locally" : "Datei lokal bearbeiten", - "Edit online" : "Online bearbeiten", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 6303adcd035..5f3c56b5943 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Hochladen (max. %s)", "Submitting fields…" : "Felder werden übermittelt…", "Filter filenames…" : "Dateinamen filtern…", - "Edit file locally" : "Datei lokal bearbeiten", - "Edit online" : "Online bearbeiten", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js index fbeb47e932e..b80ca51fce8 100644 --- a/apps/files/l10n/el.js +++ b/apps/files/l10n/el.js @@ -335,7 +335,6 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών", "Upload (max. %s)" : "Μεταφόρτωση (max. %s)", "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...", - "Edit file locally" : "Επεξεργασία αρχείου τοπικά", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"], diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json index 7ee25f99471..517397b07c1 100644 --- a/apps/files/l10n/el.json +++ b/apps/files/l10n/el.json @@ -333,7 +333,6 @@ "An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών", "Upload (max. %s)" : "Μεταφόρτωση (max. %s)", "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...", - "Edit file locally" : "Επεξεργασία αρχείου τοπικά", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"], diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index c49fcc464f8..8c048258500 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Submitting fields…", "Filter filenames…" : "Filter filenames…", - "Edit file locally" : "Edit file locally", - "Edit online" : "Edit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"], diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 640b2b24d64..111c36b99b0 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Submitting fields…", "Filter filenames…" : "Filter filenames…", - "Edit file locally" : "Edit file locally", - "Edit online" : "Edit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"], diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 04e9c3a8dc4..052bcaa2aa0 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -437,8 +437,6 @@ OC.L10N.register( "Upload (max. %s)" : "Subida (máx. %s)", "Submitting fields…" : "Enviando campos…", "Filter filenames…" : "Filtrar nombres de archivo…", - "Edit file locally" : "Editar archivo localmente", - "Edit online" : "Editar en línea", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"], diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index a8ee83caba0..3a9fa3af3e5 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -435,8 +435,6 @@ "Upload (max. %s)" : "Subida (máx. %s)", "Submitting fields…" : "Enviando campos…", "Filter filenames…" : "Filtrar nombres de archivo…", - "Edit file locally" : "Editar archivo localmente", - "Edit online" : "Editar en línea", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"], diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 1825c108261..7ad14b22bbb 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -380,8 +380,6 @@ OC.L10N.register( "Upload (max. %s)" : "Cargar (max. %s)", "Submitting fields…" : "Enviando campos...", "Filter filenames…" : "Filtrar nombres de archivos...", - "Edit file locally" : "Editar el archivo localmente", - "Edit online" : "Editar en línea", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"], diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index c15bb55f569..93aee529828 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -378,8 +378,6 @@ "Upload (max. %s)" : "Cargar (max. %s)", "Submitting fields…" : "Enviando campos...", "Filter filenames…" : "Filtrar nombres de archivos...", - "Edit file locally" : "Editar el archivo localmente", - "Edit online" : "Editar en línea", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"], diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index 95ffdc76632..dad0e8a3e1b 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Üleslaadimine (max. %s)", "Submitting fields…" : "Saadan välju…", "Filter filenames…" : "Otsi failinimesid…", - "Edit file locally" : "Muuda faili kohalikus seadmes", - "Edit online" : "Muuda võrgus", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kaust","{folderCount} kausta"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fail","{fileCount} faili"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fail ja {folderCount} kaust","1 fail ja {folderCount} kausta"], diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index 80c27615d01..a909ea33670 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Üleslaadimine (max. %s)", "Submitting fields…" : "Saadan välju…", "Filter filenames…" : "Otsi failinimesid…", - "Edit file locally" : "Muuda faili kohalikus seadmes", - "Edit online" : "Muuda võrgus", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kaust","{folderCount} kausta"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fail","{fileCount} faili"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fail ja {folderCount} kaust","1 fail ja {folderCount} kausta"], diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js index 5c5863a131d..51ed660a406 100644 --- a/apps/files/l10n/eu.js +++ b/apps/files/l10n/eu.js @@ -406,8 +406,6 @@ OC.L10N.register( "Upload (max. %s)" : "Igo (%s gehienez)", "Submitting fields…" : "Eremuak bidaltzen…", "Filter filenames…" : "Iragazi fitxategi-izenak...", - "Edit file locally" : "Editatu fitxategia lokalean", - "Edit online" : "Editatu sarean", "_{folderCount} folder_::_{folderCount} folders_" : ["Karpeta {folderCount}","{folderCount} karpeta"], "_{fileCount} file_::_{fileCount} files_" : ["Fitxategi {fileCount}","{fileCount} fitxategi"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["Fitxategi 1 eta karpeta {folderCount}","Fitxategi 1 eta {folderCount} karpeta"], diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json index d285b0d0339..f050ebc9124 100644 --- a/apps/files/l10n/eu.json +++ b/apps/files/l10n/eu.json @@ -404,8 +404,6 @@ "Upload (max. %s)" : "Igo (%s gehienez)", "Submitting fields…" : "Eremuak bidaltzen…", "Filter filenames…" : "Iragazi fitxategi-izenak...", - "Edit file locally" : "Editatu fitxategia lokalean", - "Edit online" : "Editatu sarean", "_{folderCount} folder_::_{folderCount} folders_" : ["Karpeta {folderCount}","{folderCount} karpeta"], "_{fileCount} file_::_{fileCount} files_" : ["Fitxategi {fileCount}","{fileCount} fitxategi"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["Fitxategi 1 eta karpeta {folderCount}","Fitxategi 1 eta {folderCount} karpeta"], diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js index a30878c6cf0..38d47a69821 100644 --- a/apps/files/l10n/fa.js +++ b/apps/files/l10n/fa.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "آپلود (بیشترین سایز %s)", "Submitting fields…" : "Submitting fields…", "Filter filenames…" : "Filter filenames…", - "Edit file locally" : "Edit file locally", - "Edit online" : "Edit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} پوشه","{folderCount} پوشه"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} پرونده","{fileCount} پرونده"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"], diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json index 98bfc9a30a4..d4cca468374 100644 --- a/apps/files/l10n/fa.json +++ b/apps/files/l10n/fa.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "آپلود (بیشترین سایز %s)", "Submitting fields…" : "Submitting fields…", "Filter filenames…" : "Filter filenames…", - "Edit file locally" : "Edit file locally", - "Edit online" : "Edit online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} پوشه","{folderCount} پوشه"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} پرونده","{fileCount} پرونده"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"], diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js index 6e6fd348feb..91ff67eb0e2 100644 --- a/apps/files/l10n/fi.js +++ b/apps/files/l10n/fi.js @@ -87,6 +87,11 @@ OC.L10N.register( "Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"", "Rename file" : "Nimeä tiedosto uudelleen", "Folder" : "Kansio", + "Unknown file type" : "Tuntematon tiedostotyyppi", + "{ext} image" : "{ext} kuva", + "{ext} video" : "{ext} video", + "{ext} audio" : "{ext} ääni", + "{ext} text" : "{ext} teksti", "Pending" : "Odottaa", "Unknown date" : "Tuntematon päivämäärä", "Clear filter" : "Tyhjennä suodatin", @@ -95,6 +100,7 @@ OC.L10N.register( "Active filters" : "Aktiiviset suodattimet", "Remove filter" : "Poista suodatin", "Name" : "Nimi", + "File type" : "Tiedoston tyyppi", "Size" : "Koko", "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu", "Actions" : "Toiminnot", @@ -164,6 +170,7 @@ OC.L10N.register( "Sort favorites first" : "Järjestä suosikit ensiksi", "Sort folders before files" : "Järjestä kansiot ennen tiedostoja", "Show hidden files" : "Näytä piilotetut tiedostot", + "Show file type column" : "Näytä tiedostotyypin sarake", "Crop image previews" : "Rajaa kuvien esikatseluja", "Enable the grid view" : "Käytä ruudukkonäkymää", "Enable folder tree" : "Ota kansiopuu käyttöön", @@ -290,6 +297,7 @@ OC.L10N.register( "Unexpected error: {error}" : "Odottamaton virhe: {error}", "_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"], "_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"], + "_%n hidden_::_%n hidden_" : ["%n piilotettu","%n piilotettua"], "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", "\"{char}\" is not allowed inside a filename." : "\"{char}\" ei ole sallittu tiedoston nimessä.", "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.", @@ -393,7 +401,6 @@ OC.L10N.register( "Upload (max. %s)" : "Lähetys (enintään %s)", "Submitting fields…" : "Lähetetään tietoja...", "Filter filenames…" : "Suodata tiedostonimiä...", - "Edit file locally" : "Muokkaa tiedostoa paikallisesti", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"], @@ -402,6 +409,7 @@ OC.L10N.register( "Personal Files" : "Henkilökohtaiset tiedostot", "Text file" : "Tekstitiedosto", "New text file.txt" : "Uusi tekstitiedosto.txt", + "%1$s (renamed)" : "%1$s (nimetty uudelleen)", "{count} files could not be converted" : "{count} tiedostoa ei voitu muuntaa", "{count} files successfully converted" : "{count} tiedostoa muunnettu onnistuneesti" }, diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json index c40fef57d23..86e0f1dd414 100644 --- a/apps/files/l10n/fi.json +++ b/apps/files/l10n/fi.json @@ -85,6 +85,11 @@ "Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"", "Rename file" : "Nimeä tiedosto uudelleen", "Folder" : "Kansio", + "Unknown file type" : "Tuntematon tiedostotyyppi", + "{ext} image" : "{ext} kuva", + "{ext} video" : "{ext} video", + "{ext} audio" : "{ext} ääni", + "{ext} text" : "{ext} teksti", "Pending" : "Odottaa", "Unknown date" : "Tuntematon päivämäärä", "Clear filter" : "Tyhjennä suodatin", @@ -93,6 +98,7 @@ "Active filters" : "Aktiiviset suodattimet", "Remove filter" : "Poista suodatin", "Name" : "Nimi", + "File type" : "Tiedoston tyyppi", "Size" : "Koko", "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu", "Actions" : "Toiminnot", @@ -162,6 +168,7 @@ "Sort favorites first" : "Järjestä suosikit ensiksi", "Sort folders before files" : "Järjestä kansiot ennen tiedostoja", "Show hidden files" : "Näytä piilotetut tiedostot", + "Show file type column" : "Näytä tiedostotyypin sarake", "Crop image previews" : "Rajaa kuvien esikatseluja", "Enable the grid view" : "Käytä ruudukkonäkymää", "Enable folder tree" : "Ota kansiopuu käyttöön", @@ -288,6 +295,7 @@ "Unexpected error: {error}" : "Odottamaton virhe: {error}", "_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"], "_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"], + "_%n hidden_::_%n hidden_" : ["%n piilotettu","%n piilotettua"], "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", "\"{char}\" is not allowed inside a filename." : "\"{char}\" ei ole sallittu tiedoston nimessä.", "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.", @@ -391,7 +399,6 @@ "Upload (max. %s)" : "Lähetys (enintään %s)", "Submitting fields…" : "Lähetetään tietoja...", "Filter filenames…" : "Suodata tiedostonimiä...", - "Edit file locally" : "Muokkaa tiedostoa paikallisesti", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"], @@ -400,6 +407,7 @@ "Personal Files" : "Henkilökohtaiset tiedostot", "Text file" : "Tekstitiedosto", "New text file.txt" : "Uusi tekstitiedosto.txt", + "%1$s (renamed)" : "%1$s (nimetty uudelleen)", "{count} files could not be converted" : "{count} tiedostoa ei voitu muuntaa", "{count} files successfully converted" : "{count} tiedostoa muunnettu onnistuneesti" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 6d7ffb9200a..7a03d199e85 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Envoi (max. %s)", "Submitting fields…" : "Validation des champs...", "Filter filenames…" : "Filtrer par nom de fichier…", - "Edit file locally" : "Éditer le fichier localement", - "Edit online" : "Éditer en ligne", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} dossier","{folderCount} dossiers","{folderCount} dossiers"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fichier","{fileCount} fichiers","{fileCount} fichiers"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fichier et {folderCount} dossier","1 fichier et {folderCount} dossiers","1 fichier et {folderCount} dossiers"], diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index d7e622dd9c6..7485b1c5749 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Envoi (max. %s)", "Submitting fields…" : "Validation des champs...", "Filter filenames…" : "Filtrer par nom de fichier…", - "Edit file locally" : "Éditer le fichier localement", - "Edit online" : "Éditer en ligne", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} dossier","{folderCount} dossiers","{folderCount} dossiers"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fichier","{fileCount} fichiers","{fileCount} fichiers"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fichier et {folderCount} dossier","1 fichier et {folderCount} dossiers","1 fichier et {folderCount} dossiers"], diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js index 5e71dfac609..0aca93f958f 100644 --- a/apps/files/l10n/ga.js +++ b/apps/files/l10n/ga.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)", "Submitting fields…" : "Réimsí á gcur isteach…", "Filter filenames…" : "Scag ainmneacha comhaid…", - "Edit file locally" : "Cuir an comhad in eagar go háitiúil", - "Edit online" : "Cuir in eagar ar líne", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} fillteán","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} comhad","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"], @@ -457,6 +455,7 @@ OC.L10N.register( "New text file.txt" : "Comhad téacs nua.txt", "%1$s (renamed)" : "%1$s (athainmnithe)", "renamed file" : "comhad athainmnithe", + "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí.", "{count} files could not be converted" : "{count} níorbh fhéidir comhaid a thiontú", "{count} files successfully converted" : "{count} comhaid a thiontú go rathúil" }, diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json index 3d2e164a6f3..d8fa2048c0a 100644 --- a/apps/files/l10n/ga.json +++ b/apps/files/l10n/ga.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)", "Submitting fields…" : "Réimsí á gcur isteach…", "Filter filenames…" : "Scag ainmneacha comhaid…", - "Edit file locally" : "Cuir an comhad in eagar go háitiúil", - "Edit online" : "Cuir in eagar ar líne", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} fillteán","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} comhad","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"], @@ -455,6 +453,7 @@ "New text file.txt" : "Comhad téacs nua.txt", "%1$s (renamed)" : "%1$s (athainmnithe)", "renamed file" : "comhad athainmnithe", + "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí.", "{count} files could not be converted" : "{count} níorbh fhéidir comhaid a thiontú", "{count} files successfully converted" : "{count} comhaid a thiontú go rathúil" },"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js index 4a73f0d8785..bcd590765b6 100644 --- a/apps/files/l10n/gl.js +++ b/apps/files/l10n/gl.js @@ -433,8 +433,6 @@ OC.L10N.register( "Upload (max. %s)" : "Envío (máx. %s)", "Submitting fields…" : "Enviando os campos...", "Filter filenames…" : "Filtrar os nomes de ficheiro…", - "Edit file locally" : "Editar o ficheiro localmente", - "Edit online" : "Editar en liña", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartafol","{folderCount} cartafoles"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheiro","{fileCount} ficheiros"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheiro e {folderCount} cartafol","1 ficheiro e {folderCount} cartafoles"], diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json index 7911fe7ed11..bcb6369d52d 100644 --- a/apps/files/l10n/gl.json +++ b/apps/files/l10n/gl.json @@ -431,8 +431,6 @@ "Upload (max. %s)" : "Envío (máx. %s)", "Submitting fields…" : "Enviando os campos...", "Filter filenames…" : "Filtrar os nomes de ficheiro…", - "Edit file locally" : "Editar o ficheiro localmente", - "Edit online" : "Editar en liña", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartafol","{folderCount} cartafoles"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheiro","{fileCount} ficheiros"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheiro e {folderCount} cartafol","1 ficheiro e {folderCount} cartafoles"], diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index b9c8dbb0aba..eaed162caac 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -419,8 +419,6 @@ OC.L10N.register( "Upload (max. %s)" : "Feltöltés (legfeljebb %s)", "Submitting fields…" : "Mezők beküldése…", "Filter filenames…" : "Fájlnevek szűrése…", - "Edit file locally" : "Fájl helyi szerkesztése", - "Edit online" : "Online szerkesztés", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} mappa"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fájl","{fileCount} fájl"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fájl és {folderCount} mappa","1 fájl és {folderCount} mappa"], diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index 75a19cd5c04..f00a3f35eb3 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -417,8 +417,6 @@ "Upload (max. %s)" : "Feltöltés (legfeljebb %s)", "Submitting fields…" : "Mezők beküldése…", "Filter filenames…" : "Fájlnevek szűrése…", - "Edit file locally" : "Fájl helyi szerkesztése", - "Edit online" : "Online szerkesztés", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} mappa"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fájl","{fileCount} fájl"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fájl és {folderCount} mappa","1 fájl és {folderCount} mappa"], diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index 69a2c015b82..75cccd78118 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -416,8 +416,6 @@ OC.L10N.register( "Upload (max. %s)" : "Senda inn (hám. %s)", "Submitting fields…" : "Sendi inn gögn úr reitum…", "Filter filenames…" : "Sía skráaheiti…", - "Edit file locally" : "Breyta skrá á tölvunni", - "Edit online" : "Breyta á netinu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} möppur"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} skrá","{fileCount} skrár"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 skrá og {folderCount} mappa","1 skrá og {folderCount} möppur"], diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index ebf1c4095bb..0dcd0432f49 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -414,8 +414,6 @@ "Upload (max. %s)" : "Senda inn (hám. %s)", "Submitting fields…" : "Sendi inn gögn úr reitum…", "Filter filenames…" : "Sía skráaheiti…", - "Edit file locally" : "Breyta skrá á tölvunni", - "Edit online" : "Breyta á netinu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} möppur"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} skrá","{fileCount} skrár"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 skrá og {folderCount} mappa","1 skrá og {folderCount} möppur"], diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index c679e500af3..04252175d75 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Carica (massimo %s)", "Submitting fields…" : "Invio dei campi…", "Filter filenames…" : "Filtra nomi di file…", - "Edit file locally" : "Modifica il file localmente", - "Edit online" : "Modifica online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartelle","{folderCount} cartelle"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} file","{fileCount} file"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file e {folderCount} cartella","1 file e {folderCount} cartelle","1 file e {folderCount} cartelle"], diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 22126950860..0c71fc93b41 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Carica (massimo %s)", "Submitting fields…" : "Invio dei campi…", "Filter filenames…" : "Filtra nomi di file…", - "Edit file locally" : "Modifica il file localmente", - "Edit online" : "Modifica online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartelle","{folderCount} cartelle"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} file","{fileCount} file"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file e {folderCount} cartella","1 file e {folderCount} cartelle","1 file e {folderCount} cartelle"], diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index 54b12237bf2..5e262b4f8cd 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "アップロード ( 最大 %s )", "Submitting fields…" : "フィールドを送信中…", "Filter filenames…" : "ファイルネームフィルター…", - "Edit file locally" : "ファイルをローカルで編集", - "Edit online" : "オンラインで編集", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} フォルダ"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ファイル"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ファイルと {folderCount} フォルダ"], diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index 5a03f50eb2e..3b07da7e45e 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "アップロード ( 最大 %s )", "Submitting fields…" : "フィールドを送信中…", "Filter filenames…" : "ファイルネームフィルター…", - "Edit file locally" : "ファイルをローカルで編集", - "Edit online" : "オンラインで編集", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} フォルダ"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ファイル"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ファイルと {folderCount} フォルダ"], diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 296322c3a90..927f765b6f6 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -422,8 +422,6 @@ OC.L10N.register( "Upload (max. %s)" : "업로드(최대 %s)", "Submitting fields…" : "입력란 제출중...", "Filter filenames…" : "파일 이름 필터...", - "Edit file locally" : "로컬에서 파일 편집", - "Edit online" : "온라인으로 편집", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount}개 폴더"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount}개 파일"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1개 파일과 {folderCount}개 폴더"], diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index 94f0888b200..1d8f34484ef 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -420,8 +420,6 @@ "Upload (max. %s)" : "업로드(최대 %s)", "Submitting fields…" : "입력란 제출중...", "Filter filenames…" : "파일 이름 필터...", - "Edit file locally" : "로컬에서 파일 편집", - "Edit online" : "온라인으로 편집", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount}개 폴더"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount}개 파일"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1개 파일과 {folderCount}개 폴더"], diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js index 213f0f96325..7becc5d47ec 100644 --- a/apps/files/l10n/mk.js +++ b/apps/files/l10n/mk.js @@ -319,7 +319,6 @@ OC.L10N.register( "Upload file" : "Прикачи датотека", "An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите", "Upload (max. %s)" : "Префрлање (макс. %s)", - "Edit file locally" : "Уреди ја датотеката локално", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} датотека","{fileCount} датотеки"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 датотека и {folderCount} папки","1 датотека и {folderCount} папки"], diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json index bfb0df09b99..051acd1855b 100644 --- a/apps/files/l10n/mk.json +++ b/apps/files/l10n/mk.json @@ -317,7 +317,6 @@ "Upload file" : "Прикачи датотека", "An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите", "Upload (max. %s)" : "Префрлање (макс. %s)", - "Edit file locally" : "Уреди ја датотеката локално", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} датотека","{fileCount} датотеки"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 датотека и {folderCount} папки","1 датотека и {folderCount} папки"], diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index e7972e34eef..eb260daa93b 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -403,8 +403,6 @@ OC.L10N.register( "Upload (max. %s)" : "Opplasting (maks %s)", "Submitting fields…" : "Sender inn felt...", "Filter filenames…" : "Filtrer filnavn...", - "Edit file locally" : "Rediger fil lokalt", - "Edit online" : "Rediger på nett", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mappe","1 fil og {folderCount} mapper"], diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 3da228e2da7..f92fd8a93d2 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -401,8 +401,6 @@ "Upload (max. %s)" : "Opplasting (maks %s)", "Submitting fields…" : "Sender inn felt...", "Filter filenames…" : "Filtrer filnavn...", - "Edit file locally" : "Rediger fil lokalt", - "Edit online" : "Rediger på nett", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mappe","1 fil og {folderCount} mapper"], diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index fcf1ea0ab6e..0aa38b97286 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -433,8 +433,6 @@ OC.L10N.register( "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Verzenden velden ...", "Filter filenames…" : "Filter bestandsnamen...", - "Edit file locally" : "Bestand lokaal bewerken", - "Edit online" : "Bewerk online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} map","{folderCount} mappen"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} bestand","{fileCount} bestanden"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 bestand en {folderCount} map","1 bestand en {folderCount} mappen"], diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index ae41b7c1376..5ac658a7454 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -431,8 +431,6 @@ "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Verzenden velden ...", "Filter filenames…" : "Filter bestandsnamen...", - "Edit file locally" : "Bestand lokaal bewerken", - "Edit online" : "Bewerk online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} map","{folderCount} mappen"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} bestand","{fileCount} bestanden"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 bestand en {folderCount} map","1 bestand en {folderCount} mappen"], diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index 05c5ed0ce51..dc0e482ea90 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Wysyłanie (maks. %s)", "Submitting fields…" : "Przesyłanie pól…", "Filter filenames…" : "Filtruj nazwy plików…", - "Edit file locally" : "Edytuj plik lokalnie", - "Edit online" : "Edycja online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} katalog","{folderCount} katalogi","{folderCount} katalogów","{folderCount} katalogów"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} plik","{fileCount} pliki","{fileCount} plików","{fileCount} plików"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 plik i {folderCount} katalog","1 plik i {folderCount} katalogi","1 plik i {folderCount} katalogów","1 plik i {folderCount} katalogów"], diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 8cd71406922..e1c31eb98d0 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Wysyłanie (maks. %s)", "Submitting fields…" : "Przesyłanie pól…", "Filter filenames…" : "Filtruj nazwy plików…", - "Edit file locally" : "Edytuj plik lokalnie", - "Edit online" : "Edycja online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} katalog","{folderCount} katalogi","{folderCount} katalogów","{folderCount} katalogów"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} plik","{fileCount} pliki","{fileCount} plików","{fileCount} plików"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 plik i {folderCount} katalog","1 plik i {folderCount} katalogi","1 plik i {folderCount} katalogów","1 plik i {folderCount} katalogów"], diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 1a81b4afd01..94915165618 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -200,7 +200,7 @@ OC.L10N.register( "WebDAV URL" : "URL WebDAV", "Copy to clipboard" : "Copiar para área de transferência", "Use this address to access your Files via WebDAV" : "Use este endereço para acessar seus Arquivos via WebDAV", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "If you have enabled 2FA, you must create and use a new app password by clicking here.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Se tiver ativado a 2FA, você deverá criar e usar uma nova senha do aplicativo clicando aqui.", "Warnings" : "Avisos", "Prevent warning dialogs from open or reenable them." : "Impedir que as caixas de diálogo de aviso sejam abertas ou reativá-las.", "Show a warning dialog when changing a file extension." : "Mostrar uma caixa de diálogo de aviso ao alterar uma extensão de arquivo.", @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Enviando campos…", "Filter filenames…" : "Filtrar nomes de arquivos…", - "Edit file locally" : "Editar arquivo localmente", - "Edit online" : "Editar on-line", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} de pastas","{folderCount} pastas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} de arquivos","{fileCount} arquivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} de pastas","1 arquivo e {folderCount} pastas"], diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 1c53429cdeb..2b679a2df6b 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -198,7 +198,7 @@ "WebDAV URL" : "URL WebDAV", "Copy to clipboard" : "Copiar para área de transferência", "Use this address to access your Files via WebDAV" : "Use este endereço para acessar seus Arquivos via WebDAV", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "If you have enabled 2FA, you must create and use a new app password by clicking here.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Se tiver ativado a 2FA, você deverá criar e usar uma nova senha do aplicativo clicando aqui.", "Warnings" : "Avisos", "Prevent warning dialogs from open or reenable them." : "Impedir que as caixas de diálogo de aviso sejam abertas ou reativá-las.", "Show a warning dialog when changing a file extension." : "Mostrar uma caixa de diálogo de aviso ao alterar uma extensão de arquivo.", @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Upload (max. %s)", "Submitting fields…" : "Enviando campos…", "Filter filenames…" : "Filtrar nomes de arquivos…", - "Edit file locally" : "Editar arquivo localmente", - "Edit online" : "Editar on-line", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} de pastas","{folderCount} pastas"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} de arquivos","{fileCount} arquivos"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} de pastas","1 arquivo e {folderCount} pastas"], diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 18fd0305ef7..8751ef7bf53 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "Загрузка (максимум %s)", "Submitting fields…" : "Отправка полей…", "Filter filenames…" : "Фильтровать имена файлов…", - "Edit file locally" : "Редактировать файл локально", - "Edit online" : "Редактировать онлайн", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки","{folderCount} папок","{folderCount} папки"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файла","{fileCount} файлов","{fileCount} файла"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["один файл и {folderCount} папка","один файл и {folderCount} папки","один файл и {folderCount} папок","один файл и {folderCount} папки"], diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index 67706042b9e..c30d4f4c920 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -433,8 +433,6 @@ "Upload (max. %s)" : "Загрузка (максимум %s)", "Submitting fields…" : "Отправка полей…", "Filter filenames…" : "Фильтровать имена файлов…", - "Edit file locally" : "Редактировать файл локально", - "Edit online" : "Редактировать онлайн", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки","{folderCount} папок","{folderCount} папки"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файла","{fileCount} файлов","{fileCount} файла"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["один файл и {folderCount} папка","один файл и {folderCount} папки","один файл и {folderCount} папок","один файл и {folderCount} папки"], diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index d15bd7dd00e..b4f176d76f9 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "Nahrať (max. %s)", "Submitting fields…" : "Položky sa odosielajú ...", "Filter filenames…" : "Filtrovať názvy súborov...", - "Edit file locally" : "Editovať súbor lokálne", - "Edit online" : "Upraviť online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} priečinok","{folderCount} priečinky","{folderCount} priečinkov","{folderCount} priečinkov"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} súbor","{fileCount} súbory","{fileCount} súborov","{fileCount} súborov"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 súbor a {folderCount} priečinok","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky"], diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 1fe5202ad50..00da3b734a4 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -433,8 +433,6 @@ "Upload (max. %s)" : "Nahrať (max. %s)", "Submitting fields…" : "Položky sa odosielajú ...", "Filter filenames…" : "Filtrovať názvy súborov...", - "Edit file locally" : "Editovať súbor lokálne", - "Edit online" : "Upraviť online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} priečinok","{folderCount} priečinky","{folderCount} priečinkov","{folderCount} priečinkov"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} súbor","{fileCount} súbory","{fileCount} súborov","{fileCount} súborov"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 súbor a {folderCount} priečinok","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky"], diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index 527f11c03d2..19893245a4a 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -436,8 +436,6 @@ OC.L10N.register( "Upload (max. %s)" : "Pošiljanje (omejitev %s)", "Submitting fields…" : "Poteka objavljanje vsebine polj ...", "Filter filenames…" : "Filtriraj imena datotek ...", - "Edit file locally" : "Uredi datoteko krajevno", - "Edit online" : "Uredi na spletu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapa","{folderCount} mapi","{folderCount} mape","{folderCount} map"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} datoteka","{fileCount} datoteki","{fileCount} datoteke","{fileCount} datotek"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 datoteka in {folderCount} mapa","1 datoteka in {folderCount} mapi","1 datoteka in {folderCount} mape","1 datoteka in {folderCount} map"], diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index 2dece4209a8..f738ccdfba6 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -434,8 +434,6 @@ "Upload (max. %s)" : "Pošiljanje (omejitev %s)", "Submitting fields…" : "Poteka objavljanje vsebine polj ...", "Filter filenames…" : "Filtriraj imena datotek ...", - "Edit file locally" : "Uredi datoteko krajevno", - "Edit online" : "Uredi na spletu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapa","{folderCount} mapi","{folderCount} mape","{folderCount} map"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} datoteka","{fileCount} datoteki","{fileCount} datoteke","{fileCount} datotek"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 datoteka in {folderCount} mapa","1 datoteka in {folderCount} mapi","1 datoteka in {folderCount} mape","1 datoteka in {folderCount} map"], diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index f4eb40db0f5..1462028efbd 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Отпремање (макс. %s)", "Submitting fields…" : "Поља се подносе…", "Filter filenames…" : "Филтрирање имена фајлова…", - "Edit file locally" : "Уреди фајл локално", - "Edit online" : "Уреди на мрежи", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} фолдер","{folderCount} фолдера","{folderCount} фолдера"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} фајл","{fileCount} фајла","{fileCount} фајлова"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 фајл и {folderCount} фолдер","1 фајл и {folderCount} фолдера","1 фајл и {folderCount} фолдера"], diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index b5582f24e88..e4cfab160f8 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Отпремање (макс. %s)", "Submitting fields…" : "Поља се подносе…", "Filter filenames…" : "Филтрирање имена фајлова…", - "Edit file locally" : "Уреди фајл локално", - "Edit online" : "Уреди на мрежи", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} фолдер","{folderCount} фолдера","{folderCount} фолдера"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} фајл","{fileCount} фајла","{fileCount} фајлова"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 фајл и {folderCount} фолдер","1 фајл и {folderCount} фолдера","1 фајл и {folderCount} фолдера"], diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index 58c04d50834..bb758578e22 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Ladda upp (högst %s)", "Submitting fields…" : "Skickar fält...", "Filter filenames…" : "Filtrera filnamn...", - "Edit file locally" : "Redigera filen lokalt", - "Edit online" : "Redigera online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapp","{folderCount} mappar"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil och {folderCount} mapp","1 fil och {folderCount} mappar"], diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 07063208aa4..e0ac773057c 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "Ladda upp (högst %s)", "Submitting fields…" : "Skickar fält...", "Filter filenames…" : "Filtrera filnamn...", - "Edit file locally" : "Redigera filen lokalt", - "Edit online" : "Redigera online", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapp","{folderCount} mappar"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil och {folderCount} mapp","1 fil och {folderCount} mappar"], diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 7772be56ed8..129a6d4f178 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -191,7 +191,7 @@ OC.L10N.register( "WebDAV URL" : "WebDAV adresi", "Copy to clipboard" : "Panoya kopyala", "Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV üzerinden erişmek için bu adresi kullanın", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı kullanıma aldıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı etkinleştirdiyseniz buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.", "Warnings" : "Uyarılar", "Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.", "Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.", @@ -435,8 +435,6 @@ OC.L10N.register( "Upload (max. %s)" : "Yükle (en büyük: %s)", "Submitting fields…" : "Alanlar gönderiliyor…", "Filter filenames…" : "Dosya adlarını süz…", - "Edit file locally" : "Dosyayı yerel olarak düzenle", - "Edit online" : "Çevrim içi düzenle", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} klasör","{folderCount} klasör"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} dosya","{fileCount} dosya"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 dosya ve {folderCount} klasör","1 dosya ve {folderCount} klasör"], diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index 84185475ce1..f20a43de5ba 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -189,7 +189,7 @@ "WebDAV URL" : "WebDAV adresi", "Copy to clipboard" : "Panoya kopyala", "Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV üzerinden erişmek için bu adresi kullanın", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı kullanıma aldıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı etkinleştirdiyseniz buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.", "Warnings" : "Uyarılar", "Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.", "Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.", @@ -433,8 +433,6 @@ "Upload (max. %s)" : "Yükle (en büyük: %s)", "Submitting fields…" : "Alanlar gönderiliyor…", "Filter filenames…" : "Dosya adlarını süz…", - "Edit file locally" : "Dosyayı yerel olarak düzenle", - "Edit online" : "Çevrim içi düzenle", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} klasör","{folderCount} klasör"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} dosya","{fileCount} dosya"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 dosya ve {folderCount} klasör","1 dosya ve {folderCount} klasör"], diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js index 77deefc5a0f..b277568a525 100644 --- a/apps/files/l10n/ug.js +++ b/apps/files/l10n/ug.js @@ -365,8 +365,6 @@ OC.L10N.register( "Upload (max. %s)" : "يۈكلەش (max.% S)", "Submitting fields…" : "يول يوللاش…", "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…", - "Edit file locally" : "ھۆججەتنى يەرلىكتە تەھرىرلەڭ", - "Edit online" : "توردا تەھرىرلەڭ", "{fileCount} files and {folderCount} folders" : "{fileCount} ھۆججەتلىرى ۋە {folderCount} ھۆججەت قىسقۇچلىرى", "Personal Files" : "شەخسىي ھۆججەتلەر", "Text file" : "تېكىست ھۆججەت", diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json index e8cf0bf212a..518c039bbce 100644 --- a/apps/files/l10n/ug.json +++ b/apps/files/l10n/ug.json @@ -363,8 +363,6 @@ "Upload (max. %s)" : "يۈكلەش (max.% S)", "Submitting fields…" : "يول يوللاش…", "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…", - "Edit file locally" : "ھۆججەتنى يەرلىكتە تەھرىرلەڭ", - "Edit online" : "توردا تەھرىرلەڭ", "{fileCount} files and {folderCount} folders" : "{fileCount} ھۆججەتلىرى ۋە {folderCount} ھۆججەت قىسقۇچلىرى", "Personal Files" : "شەخسىي ھۆججەتلەر", "Text file" : "تېكىست ھۆججەت", diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index 991e9aef5a1..a800b46858d 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -70,6 +70,8 @@ OC.L10N.register( "Transferred from %1$s on %2$s" : "Перенесено від %1$s до %2$s", "Files compatibility" : "Сумісність файлів", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозволити обмежувати імена файлів для забезпечення сумісності з різними клієнтами. Типово всі імена файлів, які відповідають моделі POSIX (напр., Linux, macOS), дозволені.", + "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Також можлива автоматична міграція файлів після увімкнення цих налаштувань. Ознайомтеся з документацією відповідної команди occ.", "Enforce Windows compatibility" : "Увімкнути сумісність із Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Це унеможливить використання імен файлів, які не сумісні з системами Windows, напр., використанння зарезервованих імен або спеціальних символів. Зауважте, що це не обмежить сумісність за регістром символів.", "File Management" : "Керування файлами", @@ -95,6 +97,11 @@ OC.L10N.register( "Renamed \"{oldName}\" to \"{newName}\"" : "Перейменовано \"{oldName}\" на \"{newName}\"", "Rename file" : "Перейменувати файл", "Folder" : "Каталог", + "Unknown file type" : "Невідомий тип файлу", + "{ext} image" : "{ext} зображення", + "{ext} video" : "{ext} відео", + "{ext} audio" : "{ext} аудіо", + "{ext} text" : "{ext} текст", "Pending" : "Очікування", "Unknown date" : "Невідома дата", "Clear filter" : "Очистити фільтр", @@ -105,6 +112,7 @@ OC.L10N.register( "Total rows summary" : "Загалом рядків", "Toggle selection for all files and folders" : "Перемкнути вибір для всіх файлів та каталогів", "Name" : "Ім'я", + "File type" : "Тип файлу", "Size" : "Розмір", "\"{displayName}\" failed on some elements" : "\"{displayName}\" не спрацював у деяких елементах", "\"{displayName}\" batch action executed successfully" : "Операцію \"{displayName}\" успішно виконано", @@ -183,6 +191,7 @@ OC.L10N.register( "Sort favorites first" : "Спочатку показувати із зірочкою", "Sort folders before files" : "Показувати каталоги перед файлами", "Show hidden files" : "Показувати приховані файли", + "Show file type column" : "Показувати стовпець з типом файлу", "Crop image previews" : "Попередній перегляд перед кадруванням", "Enable the grid view" : "Увімкнути подання сіткою", "Enable folder tree" : "Увімкнути дерево каталогів", @@ -436,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "Завантаження (макс. %s)", "Submitting fields…" : "Поля для надсилання...", "Filter filenames…" : "Вибрати файли за ім'ям ...", - "Edit file locally" : "Редагувати файл на пристрої", - "Edit online" : "Відкрити онлайн", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} каталог","{folderCount} каталоги","{folderCount} каталогів","{folderCount} каталогів"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файли","{fileCount} файлів","{fileCount} файлів"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл та {folderCount} каталог","1 файл та {folderCount} каталоги","1 файл та {folderCount} каталогів","1 файл та {folderCount} каталогів"], @@ -446,6 +453,9 @@ OC.L10N.register( "Personal Files" : "Мої документи", "Text file" : "Текстовий файл", "New text file.txt" : "Новий текстовий файл.txt", + "%1$s (renamed)" : "%1$s (перейменовано)", + "renamed file" : "перейменовано файл", + "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.", "{count} files could not be converted" : "Неможливо конвертувати {count} файлів", "{count} files successfully converted" : "Успішно конвертовано {count} файлів" }, diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index d0b104bac89..0e58cbd39aa 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -68,6 +68,8 @@ "Transferred from %1$s on %2$s" : "Перенесено від %1$s до %2$s", "Files compatibility" : "Сумісність файлів", "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозволити обмежувати імена файлів для забезпечення сумісності з різними клієнтами. Типово всі імена файлів, які відповідають моделі POSIX (напр., Linux, macOS), дозволені.", + "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.", + "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Також можлива автоматична міграція файлів після увімкнення цих налаштувань. Ознайомтеся з документацією відповідної команди occ.", "Enforce Windows compatibility" : "Увімкнути сумісність із Windows", "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Це унеможливить використання імен файлів, які не сумісні з системами Windows, напр., використанння зарезервованих імен або спеціальних символів. Зауважте, що це не обмежить сумісність за регістром символів.", "File Management" : "Керування файлами", @@ -93,6 +95,11 @@ "Renamed \"{oldName}\" to \"{newName}\"" : "Перейменовано \"{oldName}\" на \"{newName}\"", "Rename file" : "Перейменувати файл", "Folder" : "Каталог", + "Unknown file type" : "Невідомий тип файлу", + "{ext} image" : "{ext} зображення", + "{ext} video" : "{ext} відео", + "{ext} audio" : "{ext} аудіо", + "{ext} text" : "{ext} текст", "Pending" : "Очікування", "Unknown date" : "Невідома дата", "Clear filter" : "Очистити фільтр", @@ -103,6 +110,7 @@ "Total rows summary" : "Загалом рядків", "Toggle selection for all files and folders" : "Перемкнути вибір для всіх файлів та каталогів", "Name" : "Ім'я", + "File type" : "Тип файлу", "Size" : "Розмір", "\"{displayName}\" failed on some elements" : "\"{displayName}\" не спрацював у деяких елементах", "\"{displayName}\" batch action executed successfully" : "Операцію \"{displayName}\" успішно виконано", @@ -181,6 +189,7 @@ "Sort favorites first" : "Спочатку показувати із зірочкою", "Sort folders before files" : "Показувати каталоги перед файлами", "Show hidden files" : "Показувати приховані файли", + "Show file type column" : "Показувати стовпець з типом файлу", "Crop image previews" : "Попередній перегляд перед кадруванням", "Enable the grid view" : "Увімкнути подання сіткою", "Enable folder tree" : "Увімкнути дерево каталогів", @@ -434,8 +443,6 @@ "Upload (max. %s)" : "Завантаження (макс. %s)", "Submitting fields…" : "Поля для надсилання...", "Filter filenames…" : "Вибрати файли за ім'ям ...", - "Edit file locally" : "Редагувати файл на пристрої", - "Edit online" : "Відкрити онлайн", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} каталог","{folderCount} каталоги","{folderCount} каталогів","{folderCount} каталогів"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файли","{fileCount} файлів","{fileCount} файлів"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл та {folderCount} каталог","1 файл та {folderCount} каталоги","1 файл та {folderCount} каталогів","1 файл та {folderCount} каталогів"], @@ -444,6 +451,9 @@ "Personal Files" : "Мої документи", "Text file" : "Текстовий файл", "New text file.txt" : "Новий текстовий файл.txt", + "%1$s (renamed)" : "%1$s (перейменовано)", + "renamed file" : "перейменовано файл", + "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.", "{count} files could not be converted" : "Неможливо конвертувати {count} файлів", "{count} files successfully converted" : "Успішно конвертовано {count} файлів" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index a2504192d8d..c7730a797e1 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -362,8 +362,6 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags", "Upload (max. %s)" : "Tải lên (tối đa %s)", "Filter filenames…" : "Lọc tên tệp…", - "Edit file locally" : "Chỉnh sửa tập tin ngoại tuyến", - "Edit online" : "Chỉnh sửa trực tuyến", "_{folderCount} folder_::_{folderCount} folders_" : ["thư mục {folderCount}"], "_{fileCount} file_::_{fileCount} files_" : ["tệp {fileCount}"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tệp và thư mục {folderCount}"], diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index 9ea384d4147..ebb4a3ae9e1 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -360,8 +360,6 @@ "An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags", "Upload (max. %s)" : "Tải lên (tối đa %s)", "Filter filenames…" : "Lọc tên tệp…", - "Edit file locally" : "Chỉnh sửa tập tin ngoại tuyến", - "Edit online" : "Chỉnh sửa trực tuyến", "_{folderCount} folder_::_{folderCount} folders_" : ["thư mục {folderCount}"], "_{fileCount} file_::_{fileCount} files_" : ["tệp {fileCount}"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tệp và thư mục {folderCount}"], diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 36816fb1814..66cd6bc7bdd 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "上传 (最大 %s)", "Submitting fields…" : "提交字段...", "Filter filenames…" : "过滤文件名...", - "Edit file locally" : "本地编辑", - "Edit online" : "在线编辑", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 个文件夹"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 个文件"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 个文件夹及 {folderCount} 个文件夹"], diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index fbd76bc8be9..7fa07ebcbcf 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "上传 (最大 %s)", "Submitting fields…" : "提交字段...", "Filter filenames…" : "过滤文件名...", - "Edit file locally" : "本地编辑", - "Edit online" : "在线编辑", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 个文件夹"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 个文件"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 个文件夹及 {folderCount} 个文件夹"], diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index e4cef2fa393..650ec7a5511 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "上傳(上限 %s)", "Submitting fields…" : "正在遞交欄位 …", "Filter filenames…" : "過濾檔案名 ...", - "Edit file locally" : "在近端編輯檔案", - "Edit online" : "在線編輯", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"], diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index f3cb90bc6d3..60bfa5bab26 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "上傳(上限 %s)", "Submitting fields…" : "正在遞交欄位 …", "Filter filenames…" : "過濾檔案名 ...", - "Edit file locally" : "在近端編輯檔案", - "Edit online" : "在線編輯", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"], diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 20c0848d1e8..960e6ec7a8c 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -445,8 +445,6 @@ OC.L10N.register( "Upload (max. %s)" : "上傳(最多 %s)", "Submitting fields…" : "正在遞交欄位……", "Filter filenames…" : "篩選檔案名稱……", - "Edit file locally" : "本機編輯檔案", - "Edit online" : "線上編輯", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"], diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 1a129a968b9..a331632097a 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -443,8 +443,6 @@ "Upload (max. %s)" : "上傳(最多 %s)", "Submitting fields…" : "正在遞交欄位……", "Filter filenames…" : "篩選檔案名稱……", - "Edit file locally" : "本機編輯檔案", - "Edit online" : "線上編輯", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"], diff --git a/apps/files/openapi.json b/apps/files/openapi.json index c227b12d922..c5d6053075c 100644 --- a/apps/files/openapi.json +++ b/apps/files/openapi.json @@ -847,12 +847,14 @@ "editorId": { "type": "string", "nullable": true, + "default": null, "description": "ID of the editor" }, "fileId": { "type": "integer", "format": "int64", "nullable": true, + "default": null, "description": "ID of the file" } } @@ -1032,6 +1034,7 @@ "templateId": { "type": "string", "nullable": true, + "default": null, "description": "ID of the template" } } @@ -2366,6 +2369,7 @@ "destination": { "type": "string", "nullable": true, + "default": null, "description": "The target path of the converted file. Written to a temporary file if left empty" } } diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts index 13e74c26451..00f08c38d31 100644 --- a/apps/files/src/router/router.ts +++ b/apps/files/src/router/router.ts @@ -3,10 +3,16 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ import type { RawLocation, Route } from 'vue-router' + import { generateUrl } from '@nextcloud/router' +import { relative } from 'path' import queryString from 'query-string' import Router, { isNavigationFailure, NavigationFailureType } from 'vue-router' import Vue from 'vue' + +import { useFilesStore } from '../store/files' +import { useNavigation } from '../composables/useNavigation' +import { usePathsStore } from '../store/paths' import logger from '../logger' Vue.use(Router) @@ -68,4 +74,60 @@ const router = new Router({ }, }) +// If navigating back from a folder to a parent folder, +// we need to keep the current dir fileid so it's highlighted +// and scrolled into view. +router.beforeEach((to, from, next) => { + if (to.params?.parentIntercept) { + delete to.params.parentIntercept + next() + return + } + + const fromDir = (from.query?.dir || '/') as string + const toDir = (to.query?.dir || '/') as string + + // We are going back to a parent directory + if (relative(fromDir, toDir) === '..') { + const { currentView } = useNavigation() + const { getNode } = useFilesStore() + const { getPath } = usePathsStore() + + if (!currentView.value?.id) { + logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir }) + return next() + } + + // Get the previous parent's file id + const fromSource = getPath(currentView.value?.id, fromDir) + if (!fromSource) { + logger.error('No source found for the parent directory', { fromDir, toDir }) + return next() + } + + const fileId = getNode(fromSource)?.fileid + if (!fileId) { + logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource }) + return next() + } + + logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId }) + next({ + name: 'filelist', + query: to.query, + params: { + ...to.params, + fileid: String(fileId), + // Prevents the beforeEach from being called again + parentIntercept: 'true', + }, + // Replace the current history entry + replace: true, + }) + } + + // else, we just continue + next() +}) + export default router diff --git a/apps/files/src/services/HotKeysService.spec.ts b/apps/files/src/services/HotKeysService.spec.ts index c732c728ce5..7bbba77b222 100644 --- a/apps/files/src/services/HotKeysService.spec.ts +++ b/apps/files/src/services/HotKeysService.spec.ts @@ -61,6 +61,7 @@ describe('HotKeysService testing', () => { activeStore.setActiveNode(file) window.OCA = { Files: { Sidebar: { open: () => {}, setActiveTab: () => {} } } } + // We only mock what needed, we do not need Files.Router.goTo or Files.Navigation window.OCP = { Files: { Router: { goToRoute: goToRouteMock, params: {}, query: {} } } } initialState = document.createElement('input') @@ -73,26 +74,26 @@ describe('HotKeysService testing', () => { }) it('Pressing d should open the sidebar once', () => { - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD' })) + dispatchEvent({ key: 'd', code: 'KeyD' }) // Modifier keys should not trigger the action - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', ctrlKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', altKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', shiftKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', metaKey: true })) + dispatchEvent({ key: 'd', code: 'KeyD', ctrlKey: true }) + dispatchEvent({ key: 'd', code: 'KeyD', altKey: true }) + dispatchEvent({ key: 'd', code: 'KeyD', shiftKey: true }) + dispatchEvent({ key: 'd', code: 'KeyD', metaKey: true }) expect(sidebarAction.enabled).toHaveReturnedWith(true) expect(sidebarAction.exec).toHaveBeenCalledOnce() }) it('Pressing F2 should rename the file', () => { - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2' })) + dispatchEvent({ key: 'F2', code: 'F2' }) // Modifier keys should not trigger the action - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', ctrlKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', altKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', shiftKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', metaKey: true })) + dispatchEvent({ key: 'F2', code: 'F2', ctrlKey: true }) + dispatchEvent({ key: 'F2', code: 'F2', altKey: true }) + dispatchEvent({ key: 'F2', code: 'F2', shiftKey: true }) + dispatchEvent({ key: 'F2', code: 'F2', metaKey: true }) expect(renameAction.enabled).toHaveReturnedWith(true) expect(renameAction.exec).toHaveBeenCalledOnce() @@ -100,29 +101,29 @@ describe('HotKeysService testing', () => { it('Pressing s should toggle favorite', () => { vi.spyOn(axios, 'post').mockImplementationOnce(() => Promise.resolve()) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS' })) + dispatchEvent({ key: 's', code: 'KeyS' }) // Modifier keys should not trigger the action - window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', ctrlKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', altKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', shiftKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', metaKey: true })) + dispatchEvent({ key: 's', code: 'KeyS', ctrlKey: true }) + dispatchEvent({ key: 's', code: 'KeyS', altKey: true }) + dispatchEvent({ key: 's', code: 'KeyS', shiftKey: true }) + dispatchEvent({ key: 's', code: 'KeyS', metaKey: true }) expect(favoriteAction.enabled).toHaveReturnedWith(true) expect(favoriteAction.exec).toHaveBeenCalledOnce() }) it('Pressing Delete should delete the file', async () => { - // @ts-expect-error mocking private field + // @ts-expect-error unit testing vi.spyOn(deleteAction._action, 'exec').mockResolvedValue(() => true) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete' })) + dispatchEvent({ key: 'Delete', code: 'Delete' }) // Modifier keys should not trigger the action - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', ctrlKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', altKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', shiftKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', metaKey: true })) + dispatchEvent({ key: 'Delete', code: 'Delete', ctrlKey: true }) + dispatchEvent({ key: 'Delete', code: 'Delete', altKey: true }) + dispatchEvent({ key: 'Delete', code: 'Delete', shiftKey: true }) + dispatchEvent({ key: 'Delete', code: 'Delete', metaKey: true }) expect(deleteAction.enabled).toHaveReturnedWith(true) expect(deleteAction.exec).toHaveBeenCalledOnce() @@ -132,7 +133,7 @@ describe('HotKeysService testing', () => { expect(goToRouteMock).toHaveBeenCalledTimes(0) window.OCP.Files.Router.query = { dir: '/foo/bar' } - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', code: 'ArrowUp', altKey: true })) + dispatchEvent({ key: 'ArrowUp', code: 'ArrowUp', altKey: true }) expect(goToRouteMock).toHaveBeenCalledOnce() expect(goToRouteMock.mock.calls[0][2].dir).toBe('/foo') @@ -145,9 +146,7 @@ describe('HotKeysService testing', () => { userConfigStore.userConfig.grid_view = false expect(userConfigStore.userConfig.grid_view).toBe(false) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV' })) - await nextTick() - + dispatchEvent({ key: 'v', code: 'KeyV' }) expect(userConfigStore.userConfig.grid_view).toBe(true) }) @@ -164,9 +163,19 @@ describe('HotKeysService testing', () => { userConfigStore.userConfig.grid_view = false expect(userConfigStore.userConfig.grid_view).toBe(false) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV', [modifier]: true })) + dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV', [modifier]: true })) + await nextTick() expect(userConfigStore.userConfig.grid_view).toBe(false) }) }) + +/** + * Helper to dispatch the correct event. + * + * @param init - KeyboardEvent options + */ +function dispatchEvent(init: KeyboardEventInit) { + document.body.dispatchEvent(new KeyboardEvent('keydown', { ...init, bubbles: true })) +} diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index 0aa3da144c2..b335737c4dd 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -486,7 +486,7 @@ export default defineComponent({ * Update the window title to match the page heading */ pageHeading() { - document.title = `${this.pageHeading} - ${getCapabilities().theming?.productName ?? 'Nextcloud'}` + document.title = `${this.pageHeading} - ${getCapabilities().theming?.name ?? 'Nextcloud'}` }, /** diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 4df5dddd8db..233814a6abc 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -33,7 +33,7 @@ OC.L10N.register( "Client ID" : "ID do Cliente", "Client secret" : "Segredo do cliente", "OpenStack v2" : "OpenStack v2", - "Login" : "Entrar", + "Login" : "Nome de login", "Password" : "Senha", "Tenant name" : "Nome do inquilino", "Identity endpoint URL" : "URL do destino da identidade", @@ -42,17 +42,17 @@ OC.L10N.register( "Rackspace" : "Espaço no rack", "API key" : "Chave API", "Global credentials" : "Credenciais globais", - "Log-in credentials, save in database" : "Credenciais de acesso, salvas no banco de dados", - "Login and password" : "Login e senha", - "Log-in credentials, save in session" : "Credenciais de login, guardadas em sessão", + "Log-in credentials, save in database" : "Credenciais de acesso, armazenar no banco de dados", + "Login and password" : "Nome de login e senha", + "Log-in credentials, save in session" : "Credenciais de login, armazenar na sessão", "Global credentials, manually entered" : "Credenciais globais, inseridas manualmente", - "Manually entered, store in database" : "Inserido manualmente, armazenado no banco de dados", + "Manually entered, store in database" : "Inseridos manualmente, armazenados no banco de dados", "RSA public key" : "Chave pública RSA", "Public key" : "Chave pública", "RSA private key" : "Chave privada RSA", "Private key" : "Chave privada", - "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"", - "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Reino padrão do Kerberos, o padrão é \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Modo Apache de Ticket Kerberos", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Cesta", @@ -81,13 +81,13 @@ OC.L10N.register( "SMB/CIFS" : "SMB/CIFS", "Share" : "Compartilhar", "Show hidden files" : "Mostrar arquivos ocultos", - "Case sensitive file system" : "Sistema de arquivos sensível a maiúsculas", + "Case sensitive file system" : "Sistema de arquivos diferenciando maiúsculas/minúsculas", "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativá-lo permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho", "Verify ACL access when listing files" : "Verifique o acesso da ACL ao listar arquivos", "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verifique as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, o que acarreta uma penalidade de desempenho", "Timeout" : "Tempo limite", - "SMB/CIFS using OC login" : "SMB/CIFS usandoo login OC", - "Login as share" : "Faça login como compartilhar", + "SMB/CIFS using OC login" : "SMB/CIFS usando login OC", + "Login as share" : "Faça login como compartilhamento", "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", "Service name" : "Nome do serviço", "Request timeout (seconds)" : "Tempo limite para requisição (segundos)", @@ -101,21 +101,21 @@ OC.L10N.register( "Confirm" : "Confirmar", "Storage credentials" : "Credenciais de armazenamento", "To access the storage, you need to provide the authentication credentials." : "Para acessar o armazenamento, você precisa fornecer as credenciais de autenticação.", - "Enter the storage login" : "Digite o login de armazenamento", + "Enter the storage login" : "Digite o nome de login de armazenamento", "Enter the storage password" : "Digite a senha de armazenamento", "Unable to update this external storage config. {statusMessage}" : "Não é possível atualizar esta configuração de armazenamento externo. {statusMessage}", "New configuration successfully saved" : "Nova configuração salva com sucesso", "Enter missing credentials" : "Digite as credenciais ausentes", - "Credentials successfully set" : "Credenciais configuradas com sucesso", - "Error while setting credentials: {error}" : "Erro ao configurar as credenciais: {error}", + "Credentials successfully set" : "Credenciais definidas com sucesso", + "Error while setting credentials: {error}" : "Erro ao definir as credenciais: {error}", "Checking storage …" : "Verificação do armazenamento …", "There was an error with this external storage." : "Ocorreu um erro com este armazenamento externo.", "We were unable to check the external storage {basename}" : "Não foi possível verificar o armazenamento externo {basename}", "Examine this faulty external storage configuration" : "Examine esta configuração de armazenamento externo com falha", - "Open in Files" : "Abrir em arquivos", + "Open in Files" : "Abrir em Arquivos", "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Ocorreu um erro com este armazenamento externo. Deseja revisar esta configuração do ponto de montagem na página de configurações?", "External mount error" : "Erro de montagem externa", - "List of external storage." : "Lista de armazenamento externo.", + "List of external storage." : "Lista de armazenamentos externos.", "There is no external storage configured. You can configure them in your Personal settings." : "Não há armazenamento externo configurado. Você pode configurá-los em suas configurações pessoais.", "There is no external storage configured and you don't have the permission to configure them." : "Não há armazenamento externo configurado e você não tem permissão para configurá-los.", "No external storage" : "Sem armazenamento externo", @@ -135,10 +135,10 @@ OC.L10N.register( "Once every direct access" : "Uma vez a cada acesso direto", "Read only" : "Somente leitura", "Disconnect" : "Desconectar", - "Unknown backend: {backendName}" : "Backend desconhecido: {backendName}", + "Unknown backend: {backendName}" : "Back-end desconhecido: {backendName}", "Admin defined" : "Definido pelo administrador", "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "A verificação automática de status está desabilitada devido ao grande número de armazenamentos configurados, clique para verificar o status", - "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão desses arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta no próprio armazenamento externo.", + "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão destes arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta do armazenamento externo em si.", "Delete storage?" : "Excluir armazenamento?", "Click to recheck the configuration" : "Clique para rechecar a configuração", "Saved" : "Salvo", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index 02fd258d356..6002404e464 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -31,7 +31,7 @@ "Client ID" : "ID do Cliente", "Client secret" : "Segredo do cliente", "OpenStack v2" : "OpenStack v2", - "Login" : "Entrar", + "Login" : "Nome de login", "Password" : "Senha", "Tenant name" : "Nome do inquilino", "Identity endpoint URL" : "URL do destino da identidade", @@ -40,17 +40,17 @@ "Rackspace" : "Espaço no rack", "API key" : "Chave API", "Global credentials" : "Credenciais globais", - "Log-in credentials, save in database" : "Credenciais de acesso, salvas no banco de dados", - "Login and password" : "Login e senha", - "Log-in credentials, save in session" : "Credenciais de login, guardadas em sessão", + "Log-in credentials, save in database" : "Credenciais de acesso, armazenar no banco de dados", + "Login and password" : "Nome de login e senha", + "Log-in credentials, save in session" : "Credenciais de login, armazenar na sessão", "Global credentials, manually entered" : "Credenciais globais, inseridas manualmente", - "Manually entered, store in database" : "Inserido manualmente, armazenado no banco de dados", + "Manually entered, store in database" : "Inseridos manualmente, armazenados no banco de dados", "RSA public key" : "Chave pública RSA", "Public key" : "Chave pública", "RSA private key" : "Chave privada RSA", "Private key" : "Chave privada", - "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"", - "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Reino padrão do Kerberos, o padrão é \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Modo Apache de Ticket Kerberos", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Cesta", @@ -79,13 +79,13 @@ "SMB/CIFS" : "SMB/CIFS", "Share" : "Compartilhar", "Show hidden files" : "Mostrar arquivos ocultos", - "Case sensitive file system" : "Sistema de arquivos sensível a maiúsculas", + "Case sensitive file system" : "Sistema de arquivos diferenciando maiúsculas/minúsculas", "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativá-lo permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho", "Verify ACL access when listing files" : "Verifique o acesso da ACL ao listar arquivos", "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verifique as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, o que acarreta uma penalidade de desempenho", "Timeout" : "Tempo limite", - "SMB/CIFS using OC login" : "SMB/CIFS usandoo login OC", - "Login as share" : "Faça login como compartilhar", + "SMB/CIFS using OC login" : "SMB/CIFS usando login OC", + "Login as share" : "Faça login como compartilhamento", "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", "Service name" : "Nome do serviço", "Request timeout (seconds)" : "Tempo limite para requisição (segundos)", @@ -99,21 +99,21 @@ "Confirm" : "Confirmar", "Storage credentials" : "Credenciais de armazenamento", "To access the storage, you need to provide the authentication credentials." : "Para acessar o armazenamento, você precisa fornecer as credenciais de autenticação.", - "Enter the storage login" : "Digite o login de armazenamento", + "Enter the storage login" : "Digite o nome de login de armazenamento", "Enter the storage password" : "Digite a senha de armazenamento", "Unable to update this external storage config. {statusMessage}" : "Não é possível atualizar esta configuração de armazenamento externo. {statusMessage}", "New configuration successfully saved" : "Nova configuração salva com sucesso", "Enter missing credentials" : "Digite as credenciais ausentes", - "Credentials successfully set" : "Credenciais configuradas com sucesso", - "Error while setting credentials: {error}" : "Erro ao configurar as credenciais: {error}", + "Credentials successfully set" : "Credenciais definidas com sucesso", + "Error while setting credentials: {error}" : "Erro ao definir as credenciais: {error}", "Checking storage …" : "Verificação do armazenamento …", "There was an error with this external storage." : "Ocorreu um erro com este armazenamento externo.", "We were unable to check the external storage {basename}" : "Não foi possível verificar o armazenamento externo {basename}", "Examine this faulty external storage configuration" : "Examine esta configuração de armazenamento externo com falha", - "Open in Files" : "Abrir em arquivos", + "Open in Files" : "Abrir em Arquivos", "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Ocorreu um erro com este armazenamento externo. Deseja revisar esta configuração do ponto de montagem na página de configurações?", "External mount error" : "Erro de montagem externa", - "List of external storage." : "Lista de armazenamento externo.", + "List of external storage." : "Lista de armazenamentos externos.", "There is no external storage configured. You can configure them in your Personal settings." : "Não há armazenamento externo configurado. Você pode configurá-los em suas configurações pessoais.", "There is no external storage configured and you don't have the permission to configure them." : "Não há armazenamento externo configurado e você não tem permissão para configurá-los.", "No external storage" : "Sem armazenamento externo", @@ -133,10 +133,10 @@ "Once every direct access" : "Uma vez a cada acesso direto", "Read only" : "Somente leitura", "Disconnect" : "Desconectar", - "Unknown backend: {backendName}" : "Backend desconhecido: {backendName}", + "Unknown backend: {backendName}" : "Back-end desconhecido: {backendName}", "Admin defined" : "Definido pelo administrador", "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "A verificação automática de status está desabilitada devido ao grande número de armazenamentos configurados, clique para verificar o status", - "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão desses arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta no próprio armazenamento externo.", + "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão destes arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta do armazenamento externo em si.", "Delete storage?" : "Excluir armazenamento?", "Click to recheck the configuration" : "Clique para rechecar a configuração", "Saved" : "Salvo", diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js index f17488f7154..78246635d01 100644 --- a/apps/files_external/l10n/tr.js +++ b/apps/files_external/l10n/tr.js @@ -91,13 +91,13 @@ OC.L10N.register( "OpenStack Object Storage" : "OpenStack nesne depolama", "Service name" : "Hizmet adı", "Request timeout (seconds)" : "İstek zaman aşımı (saniye)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da etkin değil. %s bağlanamaz. Kurulumu için lütfen BT yöneticiniz ile görüşün.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da etkin değil. %s bağlanamaz. Kurulumu için lütfen BT yöneticiniz ile görüşün.", "\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" kurulmamış. %2$s\" bağlanamaz. Lütfen kurulum için BT yöneticiniz ile görüşün.", "External storage" : "Dış depolama", "External storage support" : "Dış depolama desteği", "Adds basic external storage support" : "Temel dış depolama desteği ekler", - "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Bu uygulama yöneticilerin FTP sunucular, S3 ya da SWIFT nesne mağazaları, diğer Nextcloud sunucuları ve WebDAV sunucuları gibi çeşitli dış depolama alanı hizmeti sağlayıcıları ile bağlantı kurmasını sağlar. Yöneticiler, kullanıma almak istedikleri depolama alanı türünü seçebilir ve bu depolama alanı konumlarını belirli bir hesap, bir grup ya da tüm sistem için ekleyebilir. Kullanıcılar bağlanan depolama alanını kök Nextcloud klasörü altında yeni bir klasör olarak görebilir ve diğer Nextcloud klasörleri gibi erişebilir. Dış depolama alanı, bu konumlarda depolanan dosyaların kişiler tarafından paylaşılmasını da sağlar. Bu durumda alıcıların dış dosyaya erişebileceğinden emin olmak için yapılan dosya erişimi isteklerinde, dosya sahibinin kimlik doğrulama bilgileri kullanılır.\n\nDış depolama alanı yapılandırması görsel arayüzden ya da komut satırından yapılabilir. Komut satırı seçeneğinde, yöneticiler için toplu dış depolama alanı bağlama ve bağlama noktası öncelikleri gibi esnek yapılandırma seçenekleri bulunur. Ayrıntılı bilgi almak için dış depolama alanı görsel arayüzü belgeleri ile dış depolama alanı yapılandırma dosyası belgelerine bakabilirsiniz.", + "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Bu uygulama yöneticilerin FTP sunucular, S3 ya da SWIFT nesne mağazaları, diğer Nextcloud sunucuları ve WebDAV sunucuları gibi çeşitli dış depolama alanı hizmeti sağlayıcıları ile bağlantı kurmasını sağlar. Yöneticiler, etkinleştirmek istedikleri depolama alanı türünü seçebilir ve bu depolama alanı konumlarını belirli bir hesap, bir grup ya da tüm sistem için ekleyebilir. Kullanıcılar bağlanan depolama alanını kök Nextcloud klasörü altında yeni bir klasör olarak görebilir ve diğer Nextcloud klasörleri gibi erişebilir. Dış depolama alanı, bu konumlarda depolanan dosyaların kişiler tarafından paylaşılmasını da sağlar. Bu durumda alıcıların dış dosyaya erişebileceğinden emin olmak için yapılan dosya erişimi isteklerinde, dosya sahibinin kimlik doğrulama bilgileri kullanılır.\n\nDış depolama alanı yapılandırması görsel arayüzden ya da komut satırından yapılabilir. Komut satırı seçeneğinde, yöneticiler için toplu dış depolama alanı bağlama ve bağlama noktası öncelikleri gibi esnek yapılandırma seçenekleri bulunur. Ayrıntılı bilgi almak için dış depolama alanı görsel arayüzü belgeleri ile dış depolama alanı yapılandırma dosyası belgelerine bakabilirsiniz.", "Confirm" : "Onayla", "Storage credentials" : "Depolama alanı kimlik doğrulama bilgileri", "To access the storage, you need to provide the authentication credentials." : "Depolama alanına erişebilmek için kimlik doğrulama bilgilerini vermeniz gerekir.", @@ -137,7 +137,7 @@ OC.L10N.register( "Disconnect" : "Bağlantıyı kes", "Unknown backend: {backendName}" : "Bilinmeyen arka uç: {backendName}", "Admin defined" : "Yönetici ayarlamış", - "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi kullanımdan kaldırıldı. Durumu denetlemek için tıklayın", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi devre dışı bırakıldı. Durumu denetlemek için tıklayın", "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Bu dış depolama biriminin bağlantısını kesmek istediğinize emin misiniz? Bu işlem, depolamayı Nextcloud üzerinden kaldırırarak, şu anda bağlı olan ve eşitlenen herhangi bir istemcide bu dosya ve klasörlerin silinmesine yol açar. Ancak dış depolama üzerindeki hiçbir dosya ve klasör silinmez.", "Delete storage?" : "Depolama silinsin mi?", "Click to recheck the configuration" : "Yapılandırmayı yeniden denetlemek için tıklayın", diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json index 20f805c4ea3..01cd0b36417 100644 --- a/apps/files_external/l10n/tr.json +++ b/apps/files_external/l10n/tr.json @@ -89,13 +89,13 @@ "OpenStack Object Storage" : "OpenStack nesne depolama", "Service name" : "Hizmet adı", "Request timeout (seconds)" : "İstek zaman aşımı (saniye)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da etkin değil. %s bağlanamaz. Kurulumu için lütfen BT yöneticiniz ile görüşün.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da etkin değil. %s bağlanamaz. Kurulumu için lütfen BT yöneticiniz ile görüşün.", "\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" kurulmamış. %2$s\" bağlanamaz. Lütfen kurulum için BT yöneticiniz ile görüşün.", "External storage" : "Dış depolama", "External storage support" : "Dış depolama desteği", "Adds basic external storage support" : "Temel dış depolama desteği ekler", - "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Bu uygulama yöneticilerin FTP sunucular, S3 ya da SWIFT nesne mağazaları, diğer Nextcloud sunucuları ve WebDAV sunucuları gibi çeşitli dış depolama alanı hizmeti sağlayıcıları ile bağlantı kurmasını sağlar. Yöneticiler, kullanıma almak istedikleri depolama alanı türünü seçebilir ve bu depolama alanı konumlarını belirli bir hesap, bir grup ya da tüm sistem için ekleyebilir. Kullanıcılar bağlanan depolama alanını kök Nextcloud klasörü altında yeni bir klasör olarak görebilir ve diğer Nextcloud klasörleri gibi erişebilir. Dış depolama alanı, bu konumlarda depolanan dosyaların kişiler tarafından paylaşılmasını da sağlar. Bu durumda alıcıların dış dosyaya erişebileceğinden emin olmak için yapılan dosya erişimi isteklerinde, dosya sahibinin kimlik doğrulama bilgileri kullanılır.\n\nDış depolama alanı yapılandırması görsel arayüzden ya da komut satırından yapılabilir. Komut satırı seçeneğinde, yöneticiler için toplu dış depolama alanı bağlama ve bağlama noktası öncelikleri gibi esnek yapılandırma seçenekleri bulunur. Ayrıntılı bilgi almak için dış depolama alanı görsel arayüzü belgeleri ile dış depolama alanı yapılandırma dosyası belgelerine bakabilirsiniz.", + "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Bu uygulama yöneticilerin FTP sunucular, S3 ya da SWIFT nesne mağazaları, diğer Nextcloud sunucuları ve WebDAV sunucuları gibi çeşitli dış depolama alanı hizmeti sağlayıcıları ile bağlantı kurmasını sağlar. Yöneticiler, etkinleştirmek istedikleri depolama alanı türünü seçebilir ve bu depolama alanı konumlarını belirli bir hesap, bir grup ya da tüm sistem için ekleyebilir. Kullanıcılar bağlanan depolama alanını kök Nextcloud klasörü altında yeni bir klasör olarak görebilir ve diğer Nextcloud klasörleri gibi erişebilir. Dış depolama alanı, bu konumlarda depolanan dosyaların kişiler tarafından paylaşılmasını da sağlar. Bu durumda alıcıların dış dosyaya erişebileceğinden emin olmak için yapılan dosya erişimi isteklerinde, dosya sahibinin kimlik doğrulama bilgileri kullanılır.\n\nDış depolama alanı yapılandırması görsel arayüzden ya da komut satırından yapılabilir. Komut satırı seçeneğinde, yöneticiler için toplu dış depolama alanı bağlama ve bağlama noktası öncelikleri gibi esnek yapılandırma seçenekleri bulunur. Ayrıntılı bilgi almak için dış depolama alanı görsel arayüzü belgeleri ile dış depolama alanı yapılandırma dosyası belgelerine bakabilirsiniz.", "Confirm" : "Onayla", "Storage credentials" : "Depolama alanı kimlik doğrulama bilgileri", "To access the storage, you need to provide the authentication credentials." : "Depolama alanına erişebilmek için kimlik doğrulama bilgilerini vermeniz gerekir.", @@ -135,7 +135,7 @@ "Disconnect" : "Bağlantıyı kes", "Unknown backend: {backendName}" : "Bilinmeyen arka uç: {backendName}", "Admin defined" : "Yönetici ayarlamış", - "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi kullanımdan kaldırıldı. Durumu denetlemek için tıklayın", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi devre dışı bırakıldı. Durumu denetlemek için tıklayın", "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Bu dış depolama biriminin bağlantısını kesmek istediğinize emin misiniz? Bu işlem, depolamayı Nextcloud üzerinden kaldırırarak, şu anda bağlı olan ve eşitlenen herhangi bir istemcide bu dosya ve klasörlerin silinmesine yol açar. Ancak dış depolama üzerindeki hiçbir dosya ve klasör silinmez.", "Delete storage?" : "Depolama silinsin mi?", "Click to recheck the configuration" : "Yapılandırmayı yeniden denetlemek için tıklayın", diff --git a/apps/files_external/lib/Command/Scan.php b/apps/files_external/lib/Command/Scan.php index 4f29dae1ce0..75d98878baa 100644 --- a/apps/files_external/lib/Command/Scan.php +++ b/apps/files_external/lib/Command/Scan.php @@ -54,6 +54,11 @@ class Scan extends StorageAuthBase { InputOption::VALUE_OPTIONAL, 'The path in the storage to scan', '' + )->addOption( + 'unscanned', + '', + InputOption::VALUE_NONE, + 'only scan files which are marked as not fully scanned' ); parent::configure(); } @@ -84,7 +89,15 @@ class Scan extends StorageAuthBase { }); try { - $scanner->scan($path); + if ($input->getOption('unscanned')) { + if ($path !== '') { + $output->writeln('<error>--unscanned is mutually exclusive with --path</error>'); + return 1; + } + $scanner->backgroundScan(); + } else { + $scanner->scan($path); + } } catch (LockedException $e) { if (is_string($e->getReadablePath()) && str_starts_with($e->getReadablePath(), 'scanner::')) { if ($e->getReadablePath() === 'scanner::') { diff --git a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php index c46d3ed5010..b40e9461287 100644 --- a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php +++ b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php @@ -5,7 +5,7 @@ declare(strict_types=1); * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\files_external\tests\Config; +namespace OCA\Files_External\Tests\Config; use OCA\Files_External\Config\UserPlaceholderHandler; use OCP\IRequest; diff --git a/apps/files_external/tests/Service/DBConfigServiceTest.php b/apps/files_external/tests/Service/DBConfigServiceTest.php index c902aa28270..85d8b70fda7 100644 --- a/apps/files_external/tests/Service/DBConfigServiceTest.php +++ b/apps/files_external/tests/Service/DBConfigServiceTest.php @@ -70,7 +70,7 @@ class DBConfigServiceTest extends TestCase { $this->dbConfig->addApplicable($id, DBConfigService::APPLICABLE_TYPE_GLOBAL, null); $mount = $this->dbConfig->getMountById($id); - $this->assertEquals([ + $this->assertEqualsCanonicalizing([ ['type' => DBConfigService::APPLICABLE_TYPE_USER, 'value' => 'test', 'mount_id' => $id], ['type' => DBConfigService::APPLICABLE_TYPE_GROUP, 'value' => 'bar', 'mount_id' => $id], ['type' => DBConfigService::APPLICABLE_TYPE_GLOBAL, 'value' => null, 'mount_id' => $id] diff --git a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php index 1a1754799dc..47be54a02d4 100644 --- a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php +++ b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php @@ -168,7 +168,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTestCase { $this->assertEquals($updatedStorage->getMountPoint(), $newStorage->getMountPoint()); $this->assertEquals($updatedStorage->getBackendOptions()['password'], $newStorage->getBackendOptions()['password']); - $this->assertEquals($updatedStorage->getApplicableUsers(), $newStorage->getApplicableUsers()); + $this->assertEqualsCanonicalizing($updatedStorage->getApplicableUsers(), $newStorage->getApplicableUsers()); $this->assertEquals($updatedStorage->getApplicableGroups(), $newStorage->getApplicableGroups()); $this->assertEquals($updatedStorage->getPriority(), $newStorage->getPriority()); $this->assertEquals(0, $newStorage->getStatus()); diff --git a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php index 641f00d5147..93f2d7bf66e 100644 --- a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php +++ b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php @@ -5,7 +5,7 @@ declare(strict_types=1); * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\files_external\tests\Storage; +namespace OCA\Files_External\Tests\Storage; use OCA\Files_External\Lib\Storage\AmazonS3; diff --git a/apps/files_external/tests/appSpec.js b/apps/files_external/tests/appSpec.js deleted file mode 100644 index 4d150cd36bb..00000000000 --- a/apps/files_external/tests/appSpec.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2014 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -import $ from 'jquery' - -describe('OCA.Files_External.App tests', function() { - const App = OCA.Files_External.App - let fileList - - beforeEach(function() { - $('#testArea').append( - '<div id="app-navigation">' - + '<ul><li data-id="files"><a>Files</a></li>' - + '<li data-id="sharingin"><a></a></li>' - + '<li data-id="sharingout"><a></a></li>' - + '</ul></div>' - + '<div id="app-content">' - + '<div id="app-content-files" class="hidden">' - + '</div>' - + '<div id="app-content-extstoragemounts" class="hidden">' - + '</div>' - + '</div>' - + '</div>', - ) - fileList = App.initList($('#app-content-extstoragemounts')) - }) - afterEach(function() { - App.fileList = null - fileList.destroy() - fileList = null - }) - - describe('initialization', function() { - it('inits external mounts list on show', function() { - expect(App.fileList).toBeDefined() - }) - }) - describe('file actions', function() { - it('provides default file actions', function() { - const fileActions = fileList.fileActions - - expect(fileActions.actions.all).toBeDefined() - expect(fileActions.actions.all.Delete).toBeDefined() - expect(fileActions.actions.all.Rename).toBeDefined() - expect(fileActions.actions.all.Download).toBeDefined() - - expect(fileActions.defaults.dir).toEqual('Open') - }) - it('redirects to files app when opening a directory', function() { - const oldList = OCA.Files.App.fileList - // dummy new list to make sure it exists - OCA.Files.App.fileList = new OCA.Files.FileList($('<table><thead></thead><tbody></tbody></table>')) - - const setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView') - // create dummy table so we can click the dom - const $table = '<table><thead></thead><tbody class="files-fileList"></tbody></table>' - $('#app-content-extstoragemounts').append($table) - - App._inFileList = null - fileList = App.initList($('#app-content-extstoragemounts')) - - fileList.setFiles([{ - name: 'testdir', - type: 'dir', - path: '/somewhere/inside/subdir', - counterParts: ['user2'], - shareOwner: 'user2', - }]) - - fileList.findFileEl('testdir').find('td a.name').click() - - expect(OCA.Files.App.fileList.getCurrentDirectory()).toEqual('/somewhere/inside/subdir/testdir') - - expect(setActiveViewStub.calledOnce).toEqual(true) - expect(setActiveViewStub.calledWith('files')).toEqual(true) - - setActiveViewStub.restore() - - // restore old list - OCA.Files.App.fileList = oldList - }) - }) -}) diff --git a/apps/files_external/tests/js/mountsfilelistSpec.js b/apps/files_external/tests/js/mountsfilelistSpec.js deleted file mode 100644 index fa6de978c81..00000000000 --- a/apps/files_external/tests/js/mountsfilelistSpec.js +++ /dev/null @@ -1,148 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors - * SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc. - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -describe('OCA.Files_External.FileList tests', function() { - var testFiles, alertStub, notificationStub, fileList; - - beforeEach(function() { - alertStub = sinon.stub(OC.dialogs, 'alert'); - notificationStub = sinon.stub(OC.Notification, 'show'); - - // init parameters and test table elements - $('#testArea').append( - '<div id="app-content">' + - // init horrible parameters - '<input type="hidden" id="permissions" value="31"></input>' + - // dummy controls - '<div class="files-controls">' + - ' <div class="actions creatable"></div>' + - ' <div class="notCreatable"></div>' + - '</div>' + - // dummy table - // TODO: at some point this will be rendered by the fileList class itself! - '<table class="files-filestable">' + - '<thead><tr>' + - '<th class="hidden column-name">' + - ' <div id="column-name-container">' + - ' <a class="name sort columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' + - ' </div>' + - '</th>' + - '<th id="headerBackend" class="hidden column-backend">' + - ' <a class="backend sort columntitle" data-sort="backend"><span>Storage type</span><span class="sort-indicator"></span></a>' + - '</th>' + - '<th id="headerScope" class="hidden column-scope column-last">' + - ' <a class="scope sort columntitle" data-sort="scope"><span>Scope</span><span class="sort-indicator"></span></a>' + - '</th>' + - '</tr></thead>' + - '<tbody class="files-fileList"></tbody>' + - '<tfoot></tfoot>' + - '</table>' + - '<div class="emptyfilelist emptycontent">Empty content message</div>' + - '</div>' - ); - }); - afterEach(function() { - testFiles = undefined; - fileList.destroy(); - fileList = undefined; - - notificationStub.restore(); - alertStub.restore(); - }); - - describe('loading file list for external storage', function() { - var ocsResponse; - var reloading; - - beforeEach(function() { - fileList = new OCA.Files_External.FileList( - $('#app-content') - ); - - reloading = fileList.reload(); - - /* jshint camelcase: false */ - ocsResponse = { - ocs: { - meta: { - status: 'ok', - statuscode: 100, - message: null - }, - data: [{ - name: 'smb mount', - path: '/mount points', - type: 'dir', - backend: 'SMB', - scope: 'personal', - permissions: OC.PERMISSION_READ | OC.PERMISSION_DELETE - }, { - name: 'sftp mount', - path: '/another mount points', - type: 'dir', - backend: 'SFTP', - scope: 'system', - permissions: OC.PERMISSION_READ - }] - } - }; - }); - it('render storage list', function(done) { - var request; - var $rows; - var $tr; - - expect(fakeServer.requests.length).toEqual(1); - request = fakeServer.requests[0]; - expect(request.url).toEqual( - OC.linkToOCS('apps/files_external/api/v1') + 'mounts?format=json' - ); - - fakeServer.requests[0].respond( - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify(ocsResponse) - ); - - return reloading.then(function() { - $rows = fileList.$el.find('tbody tr'); - expect($rows.length).toEqual(2); - - $tr = $rows.eq(0); - expect($tr.attr('data-id')).not.toBeDefined(); - expect($tr.attr('data-type')).toEqual('dir'); - expect($tr.attr('data-file')).toEqual('sftp mount'); - expect($tr.attr('data-path')).toEqual('/another mount points'); - expect($tr.attr('data-size')).not.toBeDefined(); - expect($tr.attr('data-permissions')).toEqual('1'); // read only - expect($tr.find('a.name').attr('href')).toEqual( - OC.getRootPath() + - '/index.php/apps/files' + - '?dir=/another%20mount%20points/sftp%20mount' - ); - expect($tr.find('.nametext').text().trim()).toEqual('sftp mount'); - expect($tr.find('.column-scope > span').text().trim()).toEqual('System'); - expect($tr.find('.column-backend').text().trim()).toEqual('SFTP'); - - $tr = $rows.eq(1); - expect($tr.attr('data-id')).not.toBeDefined(); - expect($tr.attr('data-type')).toEqual('dir'); - expect($tr.attr('data-file')).toEqual('smb mount'); - expect($tr.attr('data-path')).toEqual('/mount points'); - expect($tr.attr('data-size')).not.toBeDefined(); - expect($tr.attr('data-permissions')).toEqual('9'); // read and delete - expect($tr.find('a.name').attr('href')).toEqual( - OC.getRootPath() + - '/index.php/apps/files' + - '?dir=/mount%20points/smb%20mount' - ); - expect($tr.find('.nametext').text().trim()).toEqual('smb mount'); - expect($tr.find('.column-scope > span').text().trim()).toEqual('Personal'); - expect($tr.find('.column-backend').text().trim()).toEqual('SMB'); - }).then(done, done); - }); - }); -}); diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js deleted file mode 100644 index f79191151d1..00000000000 --- a/apps/files_external/tests/js/settingsSpec.js +++ /dev/null @@ -1,447 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors - * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -describe('OCA.Files_External.Settings tests', function() { - var clock; - var select2Stub; - var select2ApplicableUsers; - - beforeEach(function() { - clock = sinon.useFakeTimers(); - select2ApplicableUsers = []; - select2Stub = sinon.stub($.fn, 'select2').callsFake(function(args) { - if (args === 'val') { - return select2ApplicableUsers; - } - return { - on: function() { return this; } - }; - }); - - // view still requires an existing DOM table - $('#testArea').append( - '<table id="externalStorage" data-admin="true">' + - '<thead></thead>' + - '<tbody>' + - '<tr id="addMountPoint" data-id="">' + - '<td class="status"></td>' + - '<td class="mountPoint"><input type="text" name="mountPoint"/></td>' + - '<td class="backend">' + - '<select class="selectBackend">' + - '<option disable selected>Add storage</option>' + - '<option value="\\OC\\TestBackend">Test Backend</option>' + - '<option value="\\OC\\AnotherTestBackend">Another Test Backend</option>' + - '<option value="\\OC\\InputsTestBackend">Inputs test backend</option>' + - '</select>' + - '</td>' + - '<td class="authentication"></td>' + - '<td class="configuration"></td>' + - '<td class="applicable">' + - '<input type="checkbox" class="applicableToAllUsers">' + - '<input type="hidden" class="applicableUsers">' + - '</td>' + - '<td class="mountOptionsToggle">'+ - '<div class="icon-more" title="Advanced settings" deluminate_imagetype="unknown"></div>'+ - '<input type="hidden" class="mountOptions"/>'+ - '</td>'+ - '<td class="save">'+ - '<div class="icon-checkmark" title="Save" deluminate_imagetype="unknown"></div>'+ - '</td>'+ - '</tr>' + - '</tbody>' + - '</table>' - ); - // these are usually appended into the data attribute - // within the DOM by the server template - $('#externalStorage .selectBackend:first').data('configurations', { - '\\OC\\TestBackend': { - 'identifier': '\\OC\\TestBackend', - 'name': 'Test Backend', - 'configuration': { - 'field1': { - 'value': 'Display Name 1' - }, - 'field2': { - 'value': 'Display Name 2', - 'flags': 1 - } - }, - 'authSchemes': { - 'builtin': true, - }, - 'priority': 11 - }, - '\\OC\\AnotherTestBackend': { - 'identifier': '\\OC\\AnotherTestBackend', - 'name': 'Another Test Backend', - 'configuration': { - 'field1': { - 'value': 'Display Name 1' - }, - 'field2': { - 'value': 'Display Name 2', - 'flags': 1 - } - }, - 'authSchemes': { - 'builtin': true, - }, - 'priority': 12 - }, - '\\OC\\InputsTestBackend': { - 'identifier': '\\OC\\InputsTestBackend', - 'name': 'Inputs test backend', - 'configuration': { - 'field_text': { - 'value': 'Text field' - }, - 'field_password': { - 'value': ',Password field', - 'type': 2 - }, - 'field_bool': { - 'value': 'Boolean field', - 'type': 1 - }, - 'field_hidden': { - 'value': 'Hidden field', - 'type': 3 - }, - 'field_text_optional': { - 'value': 'Text field optional', - 'flags': 1 - }, - 'field_password_optional': { - 'value': 'Password field optional', - 'flags': 1, - 'type': 2 - } - }, - 'authSchemes': { - 'builtin': true, - }, - 'priority': 13 - } - } - ); - - $('#externalStorage #addMountPoint .authentication:first').data('mechanisms', { - 'mechanism1': { - 'identifier': 'mechanism1', - 'name': 'Mechanism 1', - 'configuration': { - }, - 'scheme': 'builtin', - 'visibility': 3 - }, - }); - - }); - afterEach(function() { - select2Stub.restore(); - clock.restore(); - }); - - describe('storage configuration', function() { - var view; - - function selectBackend(backendName) { - view.$el.find('.selectBackend:first').val(backendName).trigger('change'); - view.$el.find('.applicableToAllUsers').prop('checked', true).trigger('change'); - } - - beforeEach(function() { - var $el = $('#externalStorage'); - view = new OCA.Files_External.Settings.MountConfigListView($el, {encryptionEnabled: false}); - }); - afterEach(function() { - view = null; - }); - describe('selecting backend', function() { - it('populates the row and creates a new empty one', function() { - selectBackend('\\OC\\TestBackend'); - var $firstRow = view.$el.find('tr:first'); - expect($firstRow.find('.backend').text()).toEqual('Test Backend'); - expect($firstRow.find('.selectBackend').length).toEqual(0); - - // TODO: check "remove" button visibility - - // the suggested mount point name - expect($firstRow.find('[name=mountPoint]').val()).toEqual('TestBackend'); - - // TODO: check that the options have been created - - // TODO: check select2 call on the ".applicableUsers" element - - var $emptyRow = $firstRow.next('tr'); - expect($emptyRow.length).toEqual(1); - expect($emptyRow.find('.selectBackend').length).toEqual(1); - expect($emptyRow.find('.applicable select').length).toEqual(0); - - // TODO: check "remove" button visibility - }); - it('shows row even if selection row is hidden', function() { - selectBackend('\\OC\\TestBackend'); - view.$el.find('tr#addMountPoint').hide(); - expect(view.$el.find('tr:first').is(':visible')).toBe(true); - expect(view.$el.find('tr#addMountPoint').is(':visible')).toBe(false); - }); - // TODO: test with personal mounts (no applicable fields) - // TODO: test suggested mount point logic - }); - describe('saving storages', function() { - var $tr; - - beforeEach(function() { - selectBackend('\\OC\\TestBackend'); - $tr = view.$el.find('tr:first'); - }); - it('saves storage after clicking the save button', function() { - var $field1 = $tr.find('input[data-parameter=field1]'); - expect($field1.length).toEqual(1); - $field1.val('test'); - $field1.trigger(new $.Event('keyup', {keyCode: 97})); - - var $mountOptionsField = $tr.find('input.mountOptions'); - expect($mountOptionsField.length).toEqual(1); - $mountOptionsField.val(JSON.stringify({previews:true})); - - var $saveButton = $tr.find('td.save .icon-checkmark'); - $saveButton.click(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.getRootPath() + '/index.php/apps/files_external/globalstorages'); - expect(JSON.parse(request.requestBody)).toEqual({ - backend: '\\OC\\TestBackend', - authMechanism: 'mechanism1', - backendOptions: { - 'field1': 'test', - 'field2': '' - }, - mountPoint: 'TestBackend', - priority: 11, - applicableUsers: [], - applicableGroups: [], - mountOptions: { - 'previews': true - }, - testOnly: true - }); - - // TODO: respond and check data-id - }); - it('saves storage with applicable users', function() { - var $field1 = $tr.find('input[data-parameter=field1]'); - expect($field1.length).toEqual(1); - $field1.val('test'); - $field1.trigger(new $.Event('keyup', {keyCode: 97})); - - $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change'); - select2ApplicableUsers = ['user1', 'user2', 'group1(group)', 'group2(group)']; - - var $saveButton = $tr.find('td.save .icon-checkmark'); - $saveButton.click(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.getRootPath() + '/index.php/apps/files_external/globalstorages'); - expect(JSON.parse(request.requestBody)).toEqual({ - backend: '\\OC\\TestBackend', - authMechanism: 'mechanism1', - backendOptions: { - 'field1': 'test', - 'field2': '' - }, - mountPoint: 'TestBackend', - priority: 11, - applicableUsers: ['user1', 'user2'], - applicableGroups: ['group1', 'group2'], - mountOptions: { - encrypt: true, - previews: true, - enable_sharing: false, - filesystem_check_changes: 1, - encoding_compatibility: false, - readonly: false, - }, - testOnly: true - }); - - // TODO: respond and check data-id - }); - it('does not saves storage without applicable users and unchecked all users checkbox', function() { - var $field1 = $tr.find('input[data-parameter=field1]'); - expect($field1.length).toEqual(1); - $field1.val('test'); - $field1.trigger(new $.Event('keyup', {keyCode: 97})); - - $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change'); - - var $saveButton = $tr.find('td.save .icon-checkmark'); - $saveButton.click(); - - expect(fakeServer.requests.length).toEqual(0); - }); - - it('saves storage after closing mount options popovermenu', function() { - $tr.find('.mountOptionsToggle .icon-more').click(); - $tr.find('[name=previews]').trigger(new $.Event('keyup', {keyCode: 97})); - $tr.find('input[data-parameter=field1]').val('test'); - - // does not save inside the popovermenu - expect(fakeServer.requests.length).toEqual(0); - - $('body').mouseup(); - - // but after closing the popovermenu - expect(fakeServer.requests.length).toEqual(1); - }); - // TODO: status indicator - }); - describe('validate storage configuration', function() { - var $tr; - - beforeEach(function() { - selectBackend('\\OC\\InputsTestBackend'); - $tr = view.$el.find('tr:first'); - }); - - it('lists missing fields in storage errors', function() { - $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change'); - var storage = view.getStorageConfig($tr); - - expect(storage.errors).toEqual({ - backendOptions: ['field_text', 'field_password'], - requiredApplicable: true, - }); - }); - - it('does not list applicable when all users checkbox is ticked', function() { - var storage = view.getStorageConfig($tr); - - expect(storage.errors).toEqual({ - backendOptions: ['field_text', 'field_password'] - }); - }); - - it('highlights missing non-optional fields', function() { - _.each([ - 'field_text', - 'field_password' - ], function(param) { - expect($tr.find('input[data-parameter='+param+']').hasClass('warning-input')).toBe(true); - }); - _.each([ - 'field_bool', - 'field_hidden', - 'field_text_optional', - 'field_password_optional' - ], function(param) { - expect($tr.find('input[data-parameter='+param+']').hasClass('warning-input')).toBe(false); - }); - }); - - it('validates correct storage', function() { - $tr.find('[name=mountPoint]').val('mountpoint'); - - $tr.find('input[data-parameter=field_text]').val('foo'); - $tr.find('input[data-parameter=field_password]').val('bar'); - $tr.find('input[data-parameter=field_text_optional]').val('foobar'); - // don't set field_password_optional - $tr.find('input[data-parameter=field_hidden]').val('baz'); - - var storage = view.getStorageConfig($tr); - - expect(storage.validate()).toBe(true); - }); - - it('checks missing mount point', function() { - $tr.find('[name=mountPoint]').val(''); - - $tr.find('input[data-parameter=field_text]').val('foo'); - $tr.find('input[data-parameter=field_password]').val('bar'); - - var storage = view.getStorageConfig($tr); - - expect(storage.validate()).toBe(false); - }); - }); - describe('update storage', function() { - // TODO - }); - describe('delete storage', function() { - // TODO - }); - describe('recheck storages', function() { - // TODO - }); - describe('mount options popovermenu', function() { - var $tr; - var $td; - - beforeEach(function() { - selectBackend('\\OC\\TestBackend'); - $tr = view.$el.find('tr:first'); - $td = $tr.find('.mountOptionsToggle'); - }); - - it('shows popovermenu when clicking on toggle button, hides when clicking outside', function() { - $td.find('.icon-more').click(); - - expect($td.find('.popovermenu.open').length).toEqual(1); - - $('body').mouseup(); - - expect($td.find('.popovermenu.open').length).toEqual(0); - }); - - it('doesnt show the encryption option when encryption is disabled', function () { - view._encryptionEnabled = false; - $td.find('.icon-more').click(); - - expect($td.find('.popovermenu [name=encrypt]:visible').length).toEqual(0); - - $('body').mouseup(); - - expect($td.find('.popovermenu.open').length).toEqual(0); - }); - - it('reads config from mountOptions field', function() { - $tr.find('input.mountOptions').val(JSON.stringify({previews:false})); - - $td.find('.icon-more').click(); - expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(false); - $('body').mouseup(); - - $tr.find('input.mountOptions').val(JSON.stringify({previews:true})); - $td.find('.icon-more').click(); - expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(true); - }); - - it('writes config into mountOptions field', function() { - $td.find('.icon-more').click(); - // defaults to true - var $field = $td.find('.popovermenu [name=previews]'); - expect($field.prop('checked')).toEqual(true); - $td.find('.popovermenu [name=filesystem_check_changes]').val(0); - $('body').mouseup(); - - expect(JSON.parse($tr.find('input.mountOptions').val())).toEqual({ - encrypt: true, - previews: true, - enable_sharing: false, - filesystem_check_changes: 0, - encoding_compatibility: false, - readonly: false - }); - }); - }); - }); - describe('allow user mounts section', function() { - // TODO: test allowUserMounting section - }); -}); diff --git a/apps/files_reminders/l10n/tr.js b/apps/files_reminders/l10n/tr.js index 08def3387b1..6401ca09301 100644 --- a/apps/files_reminders/l10n/tr.js +++ b/apps/files_reminders/l10n/tr.js @@ -7,7 +7,7 @@ OC.L10N.register( "View folder" : "Klasörü görüntüle", "Files reminder" : "Dosyalar anımsatıcısı", "The \"files_reminders\" app can work properly." : "\"files_reminders\" uygulaması düzgün çalışabilir.", - "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını etkinleştirin ya da files_reminder uygulamasını devre dışı bırakın.", "Set file reminders" : "Dosya anımsatıcıları ayarla", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarlayın.\n\nNot: `Dosya anımsatıcıları` uygulamasını kullanmak için `Bildirimler` uygulamasının kurulmuş ve etkinleştirilmiş olduğundan emin olun. `Bildirimler` uygulaması `Dosya anımsatıcıları` uygulamasının doğru çalışması için gerekli API uygulamalarını sağlar.", "Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla", @@ -32,6 +32,6 @@ OC.L10N.register( "Next week" : "Sonraki hafta", "Set reminder for next week" : "Gelecek hafta için anımsatıcı ayarla", "This files_reminder can work properly." : "Bu files_reminder düzgün çalışabilir.", - "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın." + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını etkinleştirin ya da files_reminder uygulamasını devre dışı bırakın." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_reminders/l10n/tr.json b/apps/files_reminders/l10n/tr.json index c80e7afa9ab..a5c1e321827 100644 --- a/apps/files_reminders/l10n/tr.json +++ b/apps/files_reminders/l10n/tr.json @@ -5,7 +5,7 @@ "View folder" : "Klasörü görüntüle", "Files reminder" : "Dosyalar anımsatıcısı", "The \"files_reminders\" app can work properly." : "\"files_reminders\" uygulaması düzgün çalışabilir.", - "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını etkinleştirin ya da files_reminder uygulamasını devre dışı bırakın.", "Set file reminders" : "Dosya anımsatıcıları ayarla", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarlayın.\n\nNot: `Dosya anımsatıcıları` uygulamasını kullanmak için `Bildirimler` uygulamasının kurulmuş ve etkinleştirilmiş olduğundan emin olun. `Bildirimler` uygulaması `Dosya anımsatıcıları` uygulamasının doğru çalışması için gerekli API uygulamalarını sağlar.", "Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla", @@ -30,6 +30,6 @@ "Next week" : "Sonraki hafta", "Set reminder for next week" : "Gelecek hafta için anımsatıcı ayarla", "This files_reminder can work properly." : "Bu files_reminder düzgün çalışabilir.", - "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın." + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını etkinleştirin ya da files_reminder uygulamasını devre dışı bırakın." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js index 8e82b8d51a8..a81b50bb40b 100644 --- a/apps/files_sharing/l10n/ar.js +++ b/apps/files_sharing/l10n/ar.js @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم", "Share password saved" : "تمّ حفظ كلمة مرور المشاركة", "Share permissions saved" : "تمّ حفظ إذونات المشاركة", + "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً.", "Shared by" : "تمّت مشاركته من قِبَل", "Shared with" : "تمّت مشاركته مع", "Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح", diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json index b405a93ab41..2a0970beab0 100644 --- a/apps/files_sharing/l10n/ar.json +++ b/apps/files_sharing/l10n/ar.json @@ -380,6 +380,7 @@ "Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم", "Share password saved" : "تمّ حفظ كلمة مرور المشاركة", "Share permissions saved" : "تمّ حفظ إذونات المشاركة", + "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً.", "Shared by" : "تمّت مشاركته من قِبَل", "Shared with" : "تمّت مشاركته مع", "Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح", diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js index 5901003ff36..50efa66bfc9 100644 --- a/apps/files_sharing/l10n/ca.js +++ b/apps/files_sharing/l10n/ca.js @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari", "Share password saved" : "S’ha desat la contrasenya de compartició", "Share permissions saved" : "S’han desat els permisos de compartició", + "Filename must not be empty." : "El nom del fitxer no ha d'estar buit.", "Shared by" : "Compartit per", "Shared with" : "S'ha compartit amb", "Password created successfully" : "La contrasenya s'ha creat correctament", diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json index 881762e3e5f..a3f4f9cd9a0 100644 --- a/apps/files_sharing/l10n/ca.json +++ b/apps/files_sharing/l10n/ca.json @@ -380,6 +380,7 @@ "Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari", "Share password saved" : "S’ha desat la contrasenya de compartició", "Share permissions saved" : "S’han desat els permisos de compartició", + "Filename must not be empty." : "El nom del fitxer no ha d'estar buit.", "Shared by" : "Compartit per", "Shared with" : "S'ha compartit amb", "Password created successfully" : "La contrasenya s'ha creat correctament", diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index 97cb49425d6..f68eef6ec4d 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena", "Share password saved" : "Heslo ke sdílení uloženo", "Share permissions saved" : "Oprávnění ke sdílení uložena", + "Filename must not be empty." : "Je třeba vyplnit název souboru.", "Shared by" : "Sdílí", "Shared with" : "Sdíleno s", "Password created successfully" : "Heslo úspěšně vytvořeno", diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index b5f512d20e7..184f34fb0c6 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena", "Share password saved" : "Heslo ke sdílení uloženo", "Share permissions saved" : "Oprávnění ke sdílení uložena", + "Filename must not be empty." : "Je třeba vyplnit název souboru.", "Shared by" : "Sdílí", "Shared with" : "Sdíleno s", "Password created successfully" : "Heslo úspěšně vytvořeno", diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js index 9ca72b6a943..ce3b6ef5490 100644 --- a/apps/files_sharing/l10n/da.js +++ b/apps/files_sharing/l10n/da.js @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "Delingsbemærkning for modtagere gemt", "Share password saved" : "Delingsadgangskode delt", "Share permissions saved" : "Delingsrettigheder gemt", + "Filename must not be empty." : "Filnavnet må ikke være tomt.", "Shared by" : "Delt af", "Shared with" : "Delt med", "Password created successfully" : "Adgangskode oprettet", diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json index 193190e35ed..87d6cf330fb 100644 --- a/apps/files_sharing/l10n/da.json +++ b/apps/files_sharing/l10n/da.json @@ -380,6 +380,7 @@ "Share note for recipient saved" : "Delingsbemærkning for modtagere gemt", "Share password saved" : "Delingsadgangskode delt", "Share permissions saved" : "Delingsrettigheder gemt", + "Filename must not be empty." : "Filnavnet må ikke være tomt.", "Shared by" : "Delt af", "Shared with" : "Delt med", "Password created successfully" : "Adgangskode oprettet", diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index b2fb1dc3159..d0981e12c12 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert", "Share password saved" : "Freigabe-Passwort gespeichert", "Share permissions saved" : "Freigabeberechtigungen gespeichert", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", "Shared by" : "Geteilt von", "Shared with" : "Geteilt mit", "Password created successfully" : "Passwort erstellt", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 5edc31fe79c..8f10682c4e4 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert", "Share password saved" : "Freigabe-Passwort gespeichert", "Share permissions saved" : "Freigabeberechtigungen gespeichert", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", "Shared by" : "Geteilt von", "Shared with" : "Geteilt mit", "Password created successfully" : "Passwort erstellt", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 69abf34bd75..6b28c447adb 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert", "Share password saved" : "Freigabe-Passwort gespeichert", "Share permissions saved" : "Freigabeberechtigungen gespeichert", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", "Shared by" : "Geteilt von", "Shared with" : "Geteilt mit", "Password created successfully" : "Passwort erstellt", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 33b5d08bade..1ea854f52af 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert", "Share password saved" : "Freigabe-Passwort gespeichert", "Share permissions saved" : "Freigabeberechtigungen gespeichert", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", "Shared by" : "Geteilt von", "Shared with" : "Geteilt mit", "Password created successfully" : "Passwort erstellt", diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js index b285913d0b5..6dc5aadbaaa 100644 --- a/apps/files_sharing/l10n/el.js +++ b/apps/files_sharing/l10n/el.js @@ -238,6 +238,7 @@ OC.L10N.register( "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου", "Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ", "Share password saved" : "Διαμοιρασμένο συνθηματικό αποθηκεύτηκε ", + "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό.", "Shared by" : "Διαμοιράστηκε από", "Shared with" : "Διαμοιράστηκε με", "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία", diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json index 7d7c628da45..ea0edab689f 100644 --- a/apps/files_sharing/l10n/el.json +++ b/apps/files_sharing/l10n/el.json @@ -236,6 +236,7 @@ "Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου", "Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ", "Share password saved" : "Διαμοιρασμένο συνθηματικό αποθηκεύτηκε ", + "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό.", "Shared by" : "Διαμοιράστηκε από", "Shared with" : "Διαμοιράστηκε με", "Password created successfully" : "Συνθηματικό δημιουργήθηκε με επιτυχία", diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js index bfef88bf61a..dd033caead8 100644 --- a/apps/files_sharing/l10n/en_GB.js +++ b/apps/files_sharing/l10n/en_GB.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Share note for recipient saved", "Share password saved" : "Share password saved", "Share permissions saved" : "Share permissions saved", + "Filename must not be empty." : "Filename must not be empty.", "Shared by" : "Shared by", "Shared with" : "Shared with", "Password created successfully" : "Password created successfully", diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json index 202aa25d2ad..be24bd277eb 100644 --- a/apps/files_sharing/l10n/en_GB.json +++ b/apps/files_sharing/l10n/en_GB.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Share note for recipient saved", "Share password saved" : "Share password saved", "Share permissions saved" : "Share permissions saved", + "Filename must not be empty." : "Filename must not be empty.", "Shared by" : "Shared by", "Shared with" : "Shared with", "Password created successfully" : "Password created successfully", diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index 3d1d784541d..bdcae5a04da 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada", "Share password saved" : "Se ha guardado la contraseña del recurso compartido", "Share permissions saved" : "Permisos del recurso compartido guardados", + "Filename must not be empty." : "El nombre de archivo no debe estar vacío.", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "Contraseña creada exitosamente", diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 10a9b0db88d..7edde8df64a 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -380,6 +380,7 @@ "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada", "Share password saved" : "Se ha guardado la contraseña del recurso compartido", "Share permissions saved" : "Permisos del recurso compartido guardados", + "Filename must not be empty." : "El nombre de archivo no debe estar vacío.", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "Contraseña creada exitosamente", diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js index ed1ec8ea136..b8f4eb72a43 100644 --- a/apps/files_sharing/l10n/es_MX.js +++ b/apps/files_sharing/l10n/es_MX.js @@ -325,6 +325,7 @@ OC.L10N.register( "Error updating the share" : "Error al actualizar el recurso compartido", "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"", "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"", + "Filename must not be empty." : "El nombre de archivo no puede estar vacío.", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "Contraseña creada exitosamente", diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json index e8ada97c045..e36eeadb718 100644 --- a/apps/files_sharing/l10n/es_MX.json +++ b/apps/files_sharing/l10n/es_MX.json @@ -323,6 +323,7 @@ "Error updating the share" : "Error al actualizar el recurso compartido", "File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"", "Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"", + "Filename must not be empty." : "El nombre de archivo no puede estar vacío.", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "Contraseña creada exitosamente", diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js index 8c090e4c295..b3813b6b0bd 100644 --- a/apps/files_sharing/l10n/et_EE.js +++ b/apps/files_sharing/l10n/et_EE.js @@ -80,11 +80,12 @@ OC.L10N.register( "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist", "Unknown share type" : "Tundmatu jagamise tüüp", "Not a directory" : "Ei ole kaust", - "Could not lock node" : "Sõlme ei õnnestunud lukustada", + "Could not lock node" : "Sõlme lukustamine ei õnnestunud", "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades", "Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused", + "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus", "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud", - "Could not lock path" : "Ei saanud rada lukustada", + "Could not lock path" : "Asukoha lukustamine ei õnnestunud", "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi", "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta", "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", @@ -230,7 +231,7 @@ OC.L10N.register( "Create a new share link" : "Loo uus jagamislink", "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“", "View only" : "Ainult vaatamine", - "Can edit" : "Võib redigeerida", + "Can edit" : "Võib muuta", "Custom permissions" : "Kohandatud õigused", "Resharing is not allowed" : "Edasijagamine pole lubatud", "Name or email …" : "Nimi või e-posti aadress…", @@ -253,6 +254,7 @@ OC.L10N.register( "File drop" : "Failiedastus", "Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.", "By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.", + "Successfully uploaded files" : "Failide üleslaadimine õnnestus", "View terms of service" : "Vaata kasutustingimusi", "Terms of service" : "Kasutustingimused", "Upload files to {folder}" : "Laadi failid üles kausta {folder}", @@ -377,6 +379,7 @@ OC.L10N.register( "Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud", "Share password saved" : "Jaosmeedia salasõna on salvestatud", "Share permissions saved" : "Jaosmeedia õigused on salvestatud", + "Filename must not be empty." : "Failinimi ei saa olla tühi.", "Shared by" : "Jagas", "Shared with" : "Jagatud", "Password created successfully" : "Salasõna loomine õnnestus", diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json index e6110e021b6..96d04274828 100644 --- a/apps/files_sharing/l10n/et_EE.json +++ b/apps/files_sharing/l10n/et_EE.json @@ -78,11 +78,12 @@ "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist", "Unknown share type" : "Tundmatu jagamise tüüp", "Not a directory" : "Ei ole kaust", - "Could not lock node" : "Sõlme ei õnnestunud lukustada", + "Could not lock node" : "Sõlme lukustamine ei õnnestunud", "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades", "Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused", + "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus", "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud", - "Could not lock path" : "Ei saanud rada lukustada", + "Could not lock path" : "Asukoha lukustamine ei õnnestunud", "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi", "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta", "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", @@ -228,7 +229,7 @@ "Create a new share link" : "Loo uus jagamislink", "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“", "View only" : "Ainult vaatamine", - "Can edit" : "Võib redigeerida", + "Can edit" : "Võib muuta", "Custom permissions" : "Kohandatud õigused", "Resharing is not allowed" : "Edasijagamine pole lubatud", "Name or email …" : "Nimi või e-posti aadress…", @@ -251,6 +252,7 @@ "File drop" : "Failiedastus", "Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.", "By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.", + "Successfully uploaded files" : "Failide üleslaadimine õnnestus", "View terms of service" : "Vaata kasutustingimusi", "Terms of service" : "Kasutustingimused", "Upload files to {folder}" : "Laadi failid üles kausta {folder}", @@ -375,6 +377,7 @@ "Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud", "Share password saved" : "Jaosmeedia salasõna on salvestatud", "Share permissions saved" : "Jaosmeedia õigused on salvestatud", + "Filename must not be empty." : "Failinimi ei saa olla tühi.", "Shared by" : "Jagas", "Shared with" : "Jagatud", "Password created successfully" : "Salasõna loomine õnnestus", diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js index 5ff41b708cb..8e09f3dd1be 100644 --- a/apps/files_sharing/l10n/eu.js +++ b/apps/files_sharing/l10n/eu.js @@ -90,6 +90,8 @@ OC.L10N.register( "You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko", "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.", + "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du", + "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki", "Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du", "No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko", "Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"", @@ -97,6 +99,7 @@ OC.L10N.register( "No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta", "Wrong password" : "Pasahitz okerra", "Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean", + "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu", "This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri", "shared by %s" : "%s erabiltzaileak partekatua", "Download" : "Deskargatu", @@ -182,6 +185,8 @@ OC.L10N.register( "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia", "Reset" : "Berrezarri", "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara", + "Share expiration: " : "Partekatzearen iraungitze-data:", + "Share Expiration" : "Partekatzearen iraungitze-data", "group" : "taldea", "conversation" : "elkarrizketa", "remote" : "urrunekoa", @@ -245,11 +250,14 @@ OC.L10N.register( "Deck board" : "Deck mahaia", "ScienceMesh" : "ScienceMesh", "on {server}" : "{server} zerbitzarian", + "Enter external recipients" : "Sartu kanpoko hartzaileak", + "Search for internal recipients" : "Bilatu barruko hartzaileak", "Note from" : "Oharra bidali du", "Note:" : "Oharra:", "File drop" : "Fitxategiak jaregin", "Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.", "By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.", + "Successfully uploaded files" : "Fitxategiak ongi igo dira", "View terms of service" : "Ikusi zerbitzu-balditzak", "Terms of service" : "Erabilera baldintzak", "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra", @@ -272,12 +280,18 @@ OC.L10N.register( "Edit" : "Aldatu", "Share" : "Partekatu", "Delete" : "Ezabatu", + "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon", "Replace current password" : "Aldatu uneko pasahitza", + "Failed to generate a new token" : "Ezin izan da token berri bat sortu", "Allow upload and editing" : "Onartu igotzea eta editatzea", "Allow editing" : "Baimendu editatzea", "Upload only" : "Igoera soilik", "Advanced settings" : "Ezarpen aurreratuak", "Share label" : "Partekatu etiketa", + "Share link token" : "Partekatzeko esteka-tokena", + "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.", + "Generating…" : "Sortzen...", + "Generate new token" : "Sortu token berria", "Set password" : "Pasahitza ezarri", "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da", "Password expired" : "Pasahitza iraungi da", @@ -288,6 +302,7 @@ OC.L10N.register( "Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea", "Note to recipient" : "Oharra hartzailearentzat", "Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat", + "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian", "Delete share" : "Ezabatu partekatzea", "Others with access" : "Sarbidea duten beste erabiltzaileak", "No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik", @@ -296,12 +311,22 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu", "Link shares" : "Lotu partekatzeak", "Shares" : "Partekatzeak", + "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.", + "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.", + "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.", + "Share with accounts, teams, federated cloud IDs" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin", + "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin", + "Email, federated cloud ID" : "Posta elektroniko, federatutako hodeien ID", "Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu", "Expires {relativetime}" : "Iraungitzea: {relativetime}", "this share just expired." : "partekatze hau oraintxe iraungi da.", "Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua", "Internal shares" : "Barneko partekatzeak", + "Internal shares explanation" : "Barneko partekatzeen azalpena ", "External shares" : "Kanpoko sareak", + "External shares explanation" : "Kanpoko partekatzeen azalpena", + "Additional shares" : "Partekatze gehigarriak", + "Additional shares explanation" : "Partekatze gehigarrien azalpena", "Link to a file" : "Esteka fitxategi batera", "_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"], "Open in Files" : "Ireki Fitxategiak aplikazioan", @@ -360,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta", "Share password saved" : "Partekatu pasahitza gorde da", "Share permissions saved" : "Partekatze baimenak gordeta", + "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar.", "Shared by" : "Honek partekatua", "Shared with" : "Honekin partekatua", "Password created successfully" : "Pasahitza ongi sortu da", @@ -395,6 +421,8 @@ OC.L10N.register( "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"], "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"], "Search for share recipients" : "Bilatu partekatze-hartzaileak", - "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten." + "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.", + "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin", + "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json index fd592005648..d61440a6b32 100644 --- a/apps/files_sharing/l10n/eu.json +++ b/apps/files_sharing/l10n/eu.json @@ -88,6 +88,8 @@ "You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko", "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.", + "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du", + "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki", "Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du", "No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko", "Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"", @@ -95,6 +97,7 @@ "No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta", "Wrong password" : "Pasahitz okerra", "Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean", + "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu", "This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri", "shared by %s" : "%s erabiltzaileak partekatua", "Download" : "Deskargatu", @@ -180,6 +183,8 @@ "Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia", "Reset" : "Berrezarri", "Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara", + "Share expiration: " : "Partekatzearen iraungitze-data:", + "Share Expiration" : "Partekatzearen iraungitze-data", "group" : "taldea", "conversation" : "elkarrizketa", "remote" : "urrunekoa", @@ -243,11 +248,14 @@ "Deck board" : "Deck mahaia", "ScienceMesh" : "ScienceMesh", "on {server}" : "{server} zerbitzarian", + "Enter external recipients" : "Sartu kanpoko hartzaileak", + "Search for internal recipients" : "Bilatu barruko hartzaileak", "Note from" : "Oharra bidali du", "Note:" : "Oharra:", "File drop" : "Fitxategiak jaregin", "Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.", "By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.", + "Successfully uploaded files" : "Fitxategiak ongi igo dira", "View terms of service" : "Ikusi zerbitzu-balditzak", "Terms of service" : "Erabilera baldintzak", "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra", @@ -270,12 +278,18 @@ "Edit" : "Aldatu", "Share" : "Partekatu", "Delete" : "Ezabatu", + "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon", "Replace current password" : "Aldatu uneko pasahitza", + "Failed to generate a new token" : "Ezin izan da token berri bat sortu", "Allow upload and editing" : "Onartu igotzea eta editatzea", "Allow editing" : "Baimendu editatzea", "Upload only" : "Igoera soilik", "Advanced settings" : "Ezarpen aurreratuak", "Share label" : "Partekatu etiketa", + "Share link token" : "Partekatzeko esteka-tokena", + "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.", + "Generating…" : "Sortzen...", + "Generate new token" : "Sortu token berria", "Set password" : "Pasahitza ezarri", "Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da", "Password expired" : "Pasahitza iraungi da", @@ -286,6 +300,7 @@ "Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea", "Note to recipient" : "Oharra hartzailearentzat", "Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat", + "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian", "Delete share" : "Ezabatu partekatzea", "Others with access" : "Sarbidea duten beste erabiltzaileak", "No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik", @@ -294,12 +309,22 @@ "Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu", "Link shares" : "Lotu partekatzeak", "Shares" : "Partekatzeak", + "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.", + "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.", + "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.", + "Share with accounts, teams, federated cloud IDs" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin", + "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin", + "Email, federated cloud ID" : "Posta elektroniko, federatutako hodeien ID", "Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu", "Expires {relativetime}" : "Iraungitzea: {relativetime}", "this share just expired." : "partekatze hau oraintxe iraungi da.", "Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua", "Internal shares" : "Barneko partekatzeak", + "Internal shares explanation" : "Barneko partekatzeen azalpena ", "External shares" : "Kanpoko sareak", + "External shares explanation" : "Kanpoko partekatzeen azalpena", + "Additional shares" : "Partekatze gehigarriak", + "Additional shares explanation" : "Partekatze gehigarrien azalpena", "Link to a file" : "Esteka fitxategi batera", "_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"], "Open in Files" : "Ireki Fitxategiak aplikazioan", @@ -358,6 +383,7 @@ "Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta", "Share password saved" : "Partekatu pasahitza gorde da", "Share permissions saved" : "Partekatze baimenak gordeta", + "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar.", "Shared by" : "Honek partekatua", "Shared with" : "Honekin partekatua", "Password created successfully" : "Pasahitza ongi sortu da", @@ -393,6 +419,8 @@ "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"], "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"], "Search for share recipients" : "Bilatu partekatze-hartzaileak", - "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten." + "No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.", + "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin", + "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js index 0981c98e95e..c9f954a870b 100644 --- a/apps/files_sharing/l10n/fa.js +++ b/apps/files_sharing/l10n/fa.js @@ -15,6 +15,7 @@ OC.L10N.register( "You removed yourself" : "شما خدتان را حذف کردید", "Share for {user} expired" : "اشتراک برای {user} منقضی شده است", "Share expired" : "اشتراک منقضی شد", + "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد", "A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد", "Sharing" : "اشتراک گذاری", @@ -193,6 +194,7 @@ OC.L10N.register( "Error updating the share" : "خطایی در به روزرسانی اشتراک", "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared", "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared", + "Filename must not be empty." : "Filename must not be empty.", "Shared by" : "اشتراک گذاشته شده به وسیله", "Shared with" : "مشترک با", "Password created successfully" : "Password created successfully", diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json index 2e243499611..9b8a151e947 100644 --- a/apps/files_sharing/l10n/fa.json +++ b/apps/files_sharing/l10n/fa.json @@ -13,6 +13,7 @@ "You removed yourself" : "شما خدتان را حذف کردید", "Share for {user} expired" : "اشتراک برای {user} منقضی شده است", "Share expired" : "اشتراک منقضی شد", + "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد", "A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد", "Sharing" : "اشتراک گذاری", @@ -191,6 +192,7 @@ "Error updating the share" : "خطایی در به روزرسانی اشتراک", "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared", "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared", + "Filename must not be empty." : "Filename must not be empty.", "Shared by" : "اشتراک گذاشته شده به وسیله", "Shared with" : "مشترک با", "Password created successfully" : "Password created successfully", diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js index 2df3320fb13..9f2cf2fc4a0 100644 --- a/apps/files_sharing/l10n/fi.js +++ b/apps/files_sharing/l10n/fi.js @@ -272,6 +272,7 @@ OC.L10N.register( "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu", "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu", "Share saved" : "Jako tallennettu", + "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", "Shared by" : "Jakanut", "Shared with" : "Jaettu", "Password created successfully" : "Salasana luotu onnistuneesti", diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json index 34c7552c95b..98df9a76f47 100644 --- a/apps/files_sharing/l10n/fi.json +++ b/apps/files_sharing/l10n/fi.json @@ -270,6 +270,7 @@ "File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu", "Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu", "Share saved" : "Jako tallennettu", + "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", "Shared by" : "Jakanut", "Shared with" : "Jaettu", "Password created successfully" : "Salasana luotu onnistuneesti", diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index f99ebfc1530..37d12fc14da 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Partager la note pour le destinataire enregistré", "Share password saved" : "Mot de passe de partage enregistré", "Share permissions saved" : "Permissions de partage sauvegardées", + "Filename must not be empty." : "Le nom du fichier ne doit pas être vide.", "Shared by" : "Partagé par", "Shared with" : "Partagé avec", "Password created successfully" : "Mot de passe créé avec succès", diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index ecec9e15f07..61574093885 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Partager la note pour le destinataire enregistré", "Share password saved" : "Mot de passe de partage enregistré", "Share permissions saved" : "Permissions de partage sauvegardées", + "Filename must not be empty." : "Le nom du fichier ne doit pas être vide.", "Shared by" : "Partagé par", "Shared with" : "Partagé avec", "Password created successfully" : "Mot de passe créé avec succès", diff --git a/apps/files_sharing/l10n/ga.js b/apps/files_sharing/l10n/ga.js index c86a1afe409..db3ee3f36fe 100644 --- a/apps/files_sharing/l10n/ga.js +++ b/apps/files_sharing/l10n/ga.js @@ -257,6 +257,7 @@ OC.L10N.register( "File drop" : "Titim comhad", "Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.", "By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.", + "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil", "View terms of service" : "Féach ar théarmaí seirbhíse", "Terms of service" : "Tearmaí Seirbhís", "Upload files to {folder}" : "Uaslódáil comhaid go {folder}", @@ -384,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte", "Share password saved" : "Comhroinn pasfhocal sábháilte", "Share permissions saved" : "Sábháladh ceadanna comhroinnte", + "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh.", "Shared by" : "Roinnte ag", "Shared with" : "Roinnte le", "Password created successfully" : "Pasfhocal cruthaithe go rathúil", diff --git a/apps/files_sharing/l10n/ga.json b/apps/files_sharing/l10n/ga.json index 11e235012d0..b3510dcbdf4 100644 --- a/apps/files_sharing/l10n/ga.json +++ b/apps/files_sharing/l10n/ga.json @@ -255,6 +255,7 @@ "File drop" : "Titim comhad", "Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.", "By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.", + "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil", "View terms of service" : "Féach ar théarmaí seirbhíse", "Terms of service" : "Tearmaí Seirbhís", "Upload files to {folder}" : "Uaslódáil comhaid go {folder}", @@ -382,6 +383,7 @@ "Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte", "Share password saved" : "Comhroinn pasfhocal sábháilte", "Share permissions saved" : "Sábháladh ceadanna comhroinnte", + "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh.", "Shared by" : "Roinnte ag", "Shared with" : "Roinnte le", "Password created successfully" : "Pasfhocal cruthaithe go rathúil", diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js index b4ad49b06b4..163b9b71db3 100644 --- a/apps/files_sharing/l10n/gl.js +++ b/apps/files_sharing/l10n/gl.js @@ -380,6 +380,7 @@ OC.L10N.register( "Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario", "Share password saved" : "Gardouse o contrasinal para compartir", "Share permissions saved" : "Gardáronse os permisos para compartir", + "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "O contrasinal foi creado correctamente", diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json index f0e48527d98..8c5733dad9c 100644 --- a/apps/files_sharing/l10n/gl.json +++ b/apps/files_sharing/l10n/gl.json @@ -378,6 +378,7 @@ "Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario", "Share password saved" : "Gardouse o contrasinal para compartir", "Share permissions saved" : "Gardáronse os permisos para compartir", + "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro", "Shared by" : "Compartido por", "Shared with" : "Compartido con", "Password created successfully" : "O contrasinal foi creado correctamente", diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js index 35d12f82b3c..18fc9ce2728 100644 --- a/apps/files_sharing/l10n/hu.js +++ b/apps/files_sharing/l10n/hu.js @@ -259,6 +259,7 @@ OC.L10N.register( "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva", "Share label saved" : "A megosztás címkéje mentve", "Share password saved" : "A megosztás jelszava mentve", + "Filename must not be empty." : "A fájlnév nem lehet üres.", "Shared by" : "Megosztotta:", "Shared with" : "Megosztva vele:", "Password created successfully" : "A jelszó sikeresen létrehozva", diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json index 007a0979db6..89b6db9998b 100644 --- a/apps/files_sharing/l10n/hu.json +++ b/apps/files_sharing/l10n/hu.json @@ -257,6 +257,7 @@ "Folder \"{path}\" has been unshared" : "A(z) „{path}” mappa megosztása leállítva", "Share label saved" : "A megosztás címkéje mentve", "Share password saved" : "A megosztás jelszava mentve", + "Filename must not be empty." : "A fájlnév nem lehet üres.", "Shared by" : "Megosztotta:", "Shared with" : "Megosztva vele:", "Password created successfully" : "A jelszó sikeresen létrehozva", diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js index bdf5bed2474..f3990c4279f 100644 --- a/apps/files_sharing/l10n/is.js +++ b/apps/files_sharing/l10n/is.js @@ -354,6 +354,7 @@ OC.L10N.register( "Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður", "Share password saved" : "Lykilorð sameignar vistað", "Share permissions saved" : "Heimildir sameignar vistaðar", + "Filename must not be empty." : "Skráarheiti má ekki vera tómt.", "Shared by" : "Deilt af", "Shared with" : "Deilt með", "Password created successfully" : "Tókst að búa til lykilorð", diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json index 09a189a437c..9ef08e9b16e 100644 --- a/apps/files_sharing/l10n/is.json +++ b/apps/files_sharing/l10n/is.json @@ -352,6 +352,7 @@ "Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður", "Share password saved" : "Lykilorð sameignar vistað", "Share permissions saved" : "Heimildir sameignar vistaðar", + "Filename must not be empty." : "Skráarheiti má ekki vera tómt.", "Shared by" : "Deilt af", "Shared with" : "Deilt með", "Password created successfully" : "Tókst að búa til lykilorð", diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 237433cda2a..ed794e4fdc7 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -384,6 +384,7 @@ OC.L10N.register( "Share note for recipient saved" : "Condividi nota salvata per il destinatario", "Share password saved" : "Condividi la password salvata", "Share permissions saved" : "Condivisione dei permessi salvati", + "Filename must not be empty." : "Il nome del file non può essere vuoto.", "Shared by" : "Condiviso da", "Shared with" : "Condiviso con", "Password created successfully" : "Password creata correttamente", diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index 9fe18f100b2..f0f0026e910 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -382,6 +382,7 @@ "Share note for recipient saved" : "Condividi nota salvata per il destinatario", "Share password saved" : "Condividi la password salvata", "Share permissions saved" : "Condivisione dei permessi salvati", + "Filename must not be empty." : "Il nome del file non può essere vuoto.", "Shared by" : "Condiviso da", "Shared with" : "Condiviso con", "Password created successfully" : "Password creata correttamente", diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index 6185d4fcfc2..afa15d4d2d6 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "共有の受取人への注意が保存されました", "Share password saved" : "共有パスワードが保存されました", "Share permissions saved" : "共有権限が保存されました", + "Filename must not be empty." : "ファイル名は空白にできません。", "Shared by" : "共有者:", "Shared with" : "と共有", "Password created successfully" : "パスワードが正常に作成されました", diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index fe3629aa4da..2f36ebcf832 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "共有の受取人への注意が保存されました", "Share password saved" : "共有パスワードが保存されました", "Share permissions saved" : "共有権限が保存されました", + "Filename must not be empty." : "ファイル名は空白にできません。", "Shared by" : "共有者:", "Shared with" : "と共有", "Password created successfully" : "パスワードが正常に作成されました", diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index 453c11ed892..9d7eb295cd9 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -384,6 +384,7 @@ OC.L10N.register( "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨", "Share password saved" : "공유 암호 저장됨", "Share permissions saved" : "공유 권한 저장됨", + "Filename must not be empty." : "파일 이름을 비울 수 없습니다.", "Shared by" : "공유한 사용자:", "Shared with" : "다음 사용자와 공유함", "Password created successfully" : "암호가 성공적으로 생성됨", diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index 38de0993c90..c4110496def 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -382,6 +382,7 @@ "Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨", "Share password saved" : "공유 암호 저장됨", "Share permissions saved" : "공유 권한 저장됨", + "Filename must not be empty." : "파일 이름을 비울 수 없습니다.", "Shared by" : "공유한 사용자:", "Shared with" : "다음 사용자와 공유함", "Password created successfully" : "암호가 성공적으로 생성됨", diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js index 7ec2789ba80..01e2eb98e30 100644 --- a/apps/files_sharing/l10n/lt_LT.js +++ b/apps/files_sharing/l10n/lt_LT.js @@ -248,6 +248,7 @@ OC.L10N.register( "Share label saved" : "Viešinio etiketė įrašyta", "Share password saved" : "Viešinio slaptažodis įrašytas", "Share permissions saved" : "Viešinio leidimai įrašyti", + "Filename must not be empty." : "Failo pavadinimas negali būti tuščias.", "Shared by" : "Bendrina", "Shared with" : "Bendrinama su", "Password created successfully" : "Slaptažodis sėkmingai sukurtas", diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json index 6a607d58e2c..982bfd8d8b4 100644 --- a/apps/files_sharing/l10n/lt_LT.json +++ b/apps/files_sharing/l10n/lt_LT.json @@ -246,6 +246,7 @@ "Share label saved" : "Viešinio etiketė įrašyta", "Share password saved" : "Viešinio slaptažodis įrašytas", "Share permissions saved" : "Viešinio leidimai įrašyti", + "Filename must not be empty." : "Failo pavadinimas negali būti tuščias.", "Shared by" : "Bendrina", "Shared with" : "Bendrinama su", "Password created successfully" : "Slaptažodis sėkmingai sukurtas", diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js index 3914fe2ce52..f3f3732169b 100644 --- a/apps/files_sharing/l10n/nb.js +++ b/apps/files_sharing/l10n/nb.js @@ -339,6 +339,7 @@ OC.L10N.register( "Error updating the share" : "Feil under oppdatering av delingen", "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd", "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd", + "Filename must not be empty." : "Filnavn kan ikke være tomt.", "Shared by" : "Delt av", "Shared with" : "Delt med", "Password created successfully" : "Passord opprettet", diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json index b4de1bef445..4a4a720610d 100644 --- a/apps/files_sharing/l10n/nb.json +++ b/apps/files_sharing/l10n/nb.json @@ -337,6 +337,7 @@ "Error updating the share" : "Feil under oppdatering av delingen", "File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd", "Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd", + "Filename must not be empty." : "Filnavn kan ikke være tomt.", "Shared by" : "Delt av", "Shared with" : "Delt med", "Password created successfully" : "Passord opprettet", diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index 2d4a4f2ad9a..b1830d4b084 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -328,6 +328,7 @@ OC.L10N.register( "Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen", "Share password saved" : "Share wachtwoord opgeslagen", "Share permissions saved" : "Share machtigingen opgeslagen", + "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn", "Shared by" : "Gedeeld door", "Shared with" : "Gedeeld met", "Password created successfully" : "Wachtwoord succesvol gemaakt", diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index 65eab7781c4..6f70d27f1e4 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -326,6 +326,7 @@ "Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen", "Share password saved" : "Share wachtwoord opgeslagen", "Share permissions saved" : "Share machtigingen opgeslagen", + "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn", "Shared by" : "Gedeeld door", "Shared with" : "Gedeeld met", "Password created successfully" : "Wachtwoord succesvol gemaakt", diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index 5cc16317018..6aa9d5f06db 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -298,7 +298,7 @@ OC.L10N.register( "Expiration date (enforced)" : "Data ważności (wymuszona)", "Set expiration date" : "Ustaw datę wygaśnięcia", "Hide download" : "Ukryj pobieranie", - "Allow download and sync" : "Zezwól na pobieranie i synchronizację", + "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację", "Note to recipient" : "Informacja dla odbiorcy", "Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia", "Show files in grid view" : "Pokaż pliki w widoku siatki", @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy", "Share password saved" : "Hasło udostępnienia zapisane", "Share permissions saved" : "Zapisano uprawnienia udostępniania", + "Filename must not be empty." : "Nazwa pliku nie może być pusta.", "Shared by" : "Udostępnione przez", "Shared with" : "Udostępnione", "Password created successfully" : "Hasło utworzone pomyślnie", diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index f0b204e5e91..72a6f05ce71 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -296,7 +296,7 @@ "Expiration date (enforced)" : "Data ważności (wymuszona)", "Set expiration date" : "Ustaw datę wygaśnięcia", "Hide download" : "Ukryj pobieranie", - "Allow download and sync" : "Zezwól na pobieranie i synchronizację", + "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację", "Note to recipient" : "Informacja dla odbiorcy", "Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia", "Show files in grid view" : "Pokaż pliki w widoku siatki", @@ -380,6 +380,7 @@ "Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy", "Share password saved" : "Hasło udostępnienia zapisane", "Share permissions saved" : "Zapisano uprawnienia udostępniania", + "Filename must not be empty." : "Nazwa pliku nie może być pusta.", "Shared by" : "Udostępnione przez", "Shared with" : "Udostępnione", "Password created successfully" : "Hasło utworzone pomyślnie", diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index b8c05daa750..c70186e95b9 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -116,7 +116,7 @@ OC.L10N.register( "Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.", "Open \"%s\"" : "Abrir \"%s\"", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.", "People" : "Pessoas", "Filter accounts" : "Filtrar contas", "The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.", @@ -172,7 +172,7 @@ OC.L10N.register( "Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.", "To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.", "File request" : "Solicitação de arquivo", - "Previous step" : "Passo anterior", + "Previous step" : "Etapa anterior", "Cancel" : "Cancelar", "Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo", "Close without sending emails" : "Fechar sem enviar e-mails", @@ -209,10 +209,10 @@ OC.L10N.register( "{shareWith} by {initiator}" : "{shareWith} por {initiator}", "Shared via link by {initiator}" : "Compartilhado via link por {initiator}", "File request ({label})" : "Solicitação de arquivo ({label})", - "Mail share ({label})" : "Compartilhar por e-mail ({label})", - "Share link ({label})" : "Compartilhar link ({label})", + "Mail share ({label})" : "Compartilhamento por e-mail ({label})", + "Share link ({label})" : "Link de compartilhamento ({label})", "Mail share" : "Compartilhamento por e-mail", - "Share link ({index})" : "Compartilhar link ({index})", + "Share link ({index})" : "Link de compartilhamento ({index})", "Create public link" : "Criar link público", "Actions for \"{title}\"" : "Ações para \"{title}\"", "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência", @@ -226,14 +226,14 @@ OC.L10N.register( "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)", "Enable link expiration" : "Ativar expiração de link", "Enter expiration date (enforced)" : "Insira a data de expiração (imposta)", - "Enter expiration date" : "Insira a data de validade", + "Enter expiration date" : "Insira a data de expiração", "Create share" : "Criar compartilhamento", "Customize link" : "Personalizar link", "Generate QR code" : "Gerar código QR", "Add another link" : "Adicionar um novo link", "Create a new share link" : "Criar um novo link de compartilhamento", - "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"", - "View only" : "Somente visualização ", + "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"", + "View only" : "Somente visualização", "Can edit" : "Pode editar", "Custom permissions" : "Permissões personalizadas", "Resharing is not allowed" : "Recompartilhamento não é permitido", @@ -251,19 +251,19 @@ OC.L10N.register( "ScienceMesh" : "ScienceMesh", "on {server}" : "em {server}", "Enter external recipients" : "Insira destinatários externos", - "Search for internal recipients" : "Pesquisar por destinatários internos", + "Search for internal recipients" : "Pesquisar destinatários internos", "Note from" : "Nota de", "Note:" : "Nota:", "File drop" : "Depósito de arquivos", - "Upload files to {foldername}." : "Subir arquivos para {foldername}.", - "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.", + "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.", + "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.", "Successfully uploaded files" : "Arquivos carregados com sucesso", "View terms of service" : "Ver os termos de serviço", "Terms of service" : "Termos de serviço", - "Upload files to {folder}" : "Enviar arquivos para {folder}", + "Upload files to {folder}" : "Fazer upload de arquivos para {folder}", "Submit name" : "Enviar nome", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.", - "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, você precisa primeiro fornecer seu nome.", + "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.", "Name" : "Nome", "Enter your name" : "Digite seu nome", "Share with {userName}" : "Compartilhar com {userName}", @@ -275,7 +275,7 @@ OC.L10N.register( "Share with guest" : "Compartilhar com convidado", "Update share" : "Atualizar compartilhamento", "Save share" : "Salvar compartilhamento", - "Read" : "Leitura", + "Read" : "Ler", "Create" : "Criar", "Edit" : "Editar", "Share" : "Compartilhar", @@ -285,10 +285,10 @@ OC.L10N.register( "Failed to generate a new token" : "Falha ao gerar um novo token", "Allow upload and editing" : "Permitir uploads e edição", "Allow editing" : "Permitir edição", - "Upload only" : "Fazer upload apenas", + "Upload only" : "Somente upload", "Advanced settings" : "Configurações avançadas", "Share label" : "Compartilhar etiqueta", - "Share link token" : "Token de link de compartilhamento", + "Share link token" : "Token do link de compartilhamento", "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.", "Generating…" : "Gerando…", "Generate new token" : "Gerar novo token", @@ -302,7 +302,7 @@ OC.L10N.register( "Allow download and sync" : "Permitir baixar e sincronizar", "Note to recipient" : "Observação ao destinatário", "Enter a note for the share recipient" : "Digite uma observação ao destinatário", - "Show files in grid view" : "Mostrar arquivos na visualização de grade", + "Show files in grid view" : "Mostrar arquivos na visualização em grade", "Delete share" : "Excluir compartilhamento", "Others with access" : "Outros com acesso", "No other accounts with access found" : "Nenhuma outra conta com acesso encontrada", @@ -365,10 +365,10 @@ OC.L10N.register( "List of file requests." : "Lista de solicitações de arquivos.", "No file requests" : "Nenhuma solicitação de arquivo", "File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui", - "Deleted shares" : "Compartilhamentos apagados", - "List of shares you left." : "Lista de compartilhamentos que você deixou.", - "No deleted shares" : "Não há compartilhamentos apagados", - "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui", + "Deleted shares" : "Compartilhamentos excluídos", + "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.", + "No deleted shares" : "Não há compartilhamentos excluídos", + "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui", "Pending shares" : "Compartilhamentos pendentes", "List of unapproved shares." : "Lista de compartilhamentos não aprovados.", "No pending shares" : "Não há compartilhamentos pendentes", @@ -381,10 +381,11 @@ OC.L10N.register( "Share saved" : "Compartilhamento salvo", "Share expiry date saved" : "Data de expiração do compartilhamento salva", "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo", - "Share label saved" : "Marcador de compartilhamento salvo", + "Share label saved" : "Rótulo de compartilhamento salvo", "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva", "Share password saved" : "Senha do compartilhamento salva", "Share permissions saved" : "Permissões do compartilhamento salvas", + "Filename must not be empty." : "O nome do arquivo não pode estar vazio.", "Shared by" : "Compartilhado por", "Shared with" : "Compartilhado com", "Password created successfully" : "Senha criada com sucesso", diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 827e07c452b..6afdfb64054 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -114,7 +114,7 @@ "Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.", "Open \"%s\"" : "Abrir \"%s\"", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.", "People" : "Pessoas", "Filter accounts" : "Filtrar contas", "The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.", @@ -170,7 +170,7 @@ "Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.", "To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.", "File request" : "Solicitação de arquivo", - "Previous step" : "Passo anterior", + "Previous step" : "Etapa anterior", "Cancel" : "Cancelar", "Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo", "Close without sending emails" : "Fechar sem enviar e-mails", @@ -207,10 +207,10 @@ "{shareWith} by {initiator}" : "{shareWith} por {initiator}", "Shared via link by {initiator}" : "Compartilhado via link por {initiator}", "File request ({label})" : "Solicitação de arquivo ({label})", - "Mail share ({label})" : "Compartilhar por e-mail ({label})", - "Share link ({label})" : "Compartilhar link ({label})", + "Mail share ({label})" : "Compartilhamento por e-mail ({label})", + "Share link ({label})" : "Link de compartilhamento ({label})", "Mail share" : "Compartilhamento por e-mail", - "Share link ({index})" : "Compartilhar link ({index})", + "Share link ({index})" : "Link de compartilhamento ({index})", "Create public link" : "Criar link público", "Actions for \"{title}\"" : "Ações para \"{title}\"", "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência", @@ -224,14 +224,14 @@ "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)", "Enable link expiration" : "Ativar expiração de link", "Enter expiration date (enforced)" : "Insira a data de expiração (imposta)", - "Enter expiration date" : "Insira a data de validade", + "Enter expiration date" : "Insira a data de expiração", "Create share" : "Criar compartilhamento", "Customize link" : "Personalizar link", "Generate QR code" : "Gerar código QR", "Add another link" : "Adicionar um novo link", "Create a new share link" : "Criar um novo link de compartilhamento", - "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"", - "View only" : "Somente visualização ", + "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"", + "View only" : "Somente visualização", "Can edit" : "Pode editar", "Custom permissions" : "Permissões personalizadas", "Resharing is not allowed" : "Recompartilhamento não é permitido", @@ -249,19 +249,19 @@ "ScienceMesh" : "ScienceMesh", "on {server}" : "em {server}", "Enter external recipients" : "Insira destinatários externos", - "Search for internal recipients" : "Pesquisar por destinatários internos", + "Search for internal recipients" : "Pesquisar destinatários internos", "Note from" : "Nota de", "Note:" : "Nota:", "File drop" : "Depósito de arquivos", - "Upload files to {foldername}." : "Subir arquivos para {foldername}.", - "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.", + "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.", + "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.", "Successfully uploaded files" : "Arquivos carregados com sucesso", "View terms of service" : "Ver os termos de serviço", "Terms of service" : "Termos de serviço", - "Upload files to {folder}" : "Enviar arquivos para {folder}", + "Upload files to {folder}" : "Fazer upload de arquivos para {folder}", "Submit name" : "Enviar nome", "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.", - "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, você precisa primeiro fornecer seu nome.", + "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.", "Name" : "Nome", "Enter your name" : "Digite seu nome", "Share with {userName}" : "Compartilhar com {userName}", @@ -273,7 +273,7 @@ "Share with guest" : "Compartilhar com convidado", "Update share" : "Atualizar compartilhamento", "Save share" : "Salvar compartilhamento", - "Read" : "Leitura", + "Read" : "Ler", "Create" : "Criar", "Edit" : "Editar", "Share" : "Compartilhar", @@ -283,10 +283,10 @@ "Failed to generate a new token" : "Falha ao gerar um novo token", "Allow upload and editing" : "Permitir uploads e edição", "Allow editing" : "Permitir edição", - "Upload only" : "Fazer upload apenas", + "Upload only" : "Somente upload", "Advanced settings" : "Configurações avançadas", "Share label" : "Compartilhar etiqueta", - "Share link token" : "Token de link de compartilhamento", + "Share link token" : "Token do link de compartilhamento", "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.", "Generating…" : "Gerando…", "Generate new token" : "Gerar novo token", @@ -300,7 +300,7 @@ "Allow download and sync" : "Permitir baixar e sincronizar", "Note to recipient" : "Observação ao destinatário", "Enter a note for the share recipient" : "Digite uma observação ao destinatário", - "Show files in grid view" : "Mostrar arquivos na visualização de grade", + "Show files in grid view" : "Mostrar arquivos na visualização em grade", "Delete share" : "Excluir compartilhamento", "Others with access" : "Outros com acesso", "No other accounts with access found" : "Nenhuma outra conta com acesso encontrada", @@ -363,10 +363,10 @@ "List of file requests." : "Lista de solicitações de arquivos.", "No file requests" : "Nenhuma solicitação de arquivo", "File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui", - "Deleted shares" : "Compartilhamentos apagados", - "List of shares you left." : "Lista de compartilhamentos que você deixou.", - "No deleted shares" : "Não há compartilhamentos apagados", - "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui", + "Deleted shares" : "Compartilhamentos excluídos", + "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.", + "No deleted shares" : "Não há compartilhamentos excluídos", + "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui", "Pending shares" : "Compartilhamentos pendentes", "List of unapproved shares." : "Lista de compartilhamentos não aprovados.", "No pending shares" : "Não há compartilhamentos pendentes", @@ -379,10 +379,11 @@ "Share saved" : "Compartilhamento salvo", "Share expiry date saved" : "Data de expiração do compartilhamento salva", "Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo", - "Share label saved" : "Marcador de compartilhamento salvo", + "Share label saved" : "Rótulo de compartilhamento salvo", "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva", "Share password saved" : "Senha do compartilhamento salva", "Share permissions saved" : "Permissões do compartilhamento salvas", + "Filename must not be empty." : "O nome do arquivo não pode estar vazio.", "Shared by" : "Compartilhado por", "Shared with" : "Compartilhado com", "Password created successfully" : "Senha criada com sucesso", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index eadfd9b0ab7..7c826b19290 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -299,6 +299,8 @@ OC.L10N.register( "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.", + "Share with accounts, teams, federated cloud IDs" : "Поделиться с учетными записями, командами, идентификаторами федеративного облака", + "Share with accounts and teams" : "Поделиться с аккаунтами и командами", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", @@ -363,6 +365,7 @@ OC.L10N.register( "Share label saved" : "Метка общего доступа сохранена", "Share password saved" : "Пароль общего доступа сохранен", "Share permissions saved" : "Разрешения общего доступа сохранены", + "Filename must not be empty." : "Имя файла не должно быть пустым.", "Shared by" : "Поделился", "Shared with" : "Общий доступ", "Password created successfully" : "Пароль создан", @@ -397,6 +400,7 @@ OC.L10N.register( "Download all files" : "Скачать все файлы", "Search for share recipients" : "Найти больше получателей общего ресурса", "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", + "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака", "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 5906872ad3c..2d70a065bd0 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -297,6 +297,8 @@ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.", "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.", "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.", + "Share with accounts, teams, federated cloud IDs" : "Поделиться с учетными записями, командами, идентификаторами федеративного облака", + "Share with accounts and teams" : "Поделиться с аккаунтами и командами", "Unable to load the shares list" : "Невозможно загрузить список общих ресурсов", "Expires {relativetime}" : "Истекает {relativetime}", "this share just expired." : "срок действия этого общего ресурса только что истёк.", @@ -361,6 +363,7 @@ "Share label saved" : "Метка общего доступа сохранена", "Share password saved" : "Пароль общего доступа сохранен", "Share permissions saved" : "Разрешения общего доступа сохранены", + "Filename must not be empty." : "Имя файла не должно быть пустым.", "Shared by" : "Поделился", "Shared with" : "Общий доступ", "Password created successfully" : "Пароль создан", @@ -395,6 +398,7 @@ "Download all files" : "Скачать все файлы", "Search for share recipients" : "Найти больше получателей общего ресурса", "No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы", + "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака", "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index 632a12a769a..e1791dead1d 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená", "Share password saved" : "Heslo zdieľania bolo uložené", "Share permissions saved" : "Práva zdieľania boli uložené", + "Filename must not be empty." : "Názov súboru nesmie byť prázdny.", "Shared by" : "Zdieľané od", "Shared with" : "Sprístupnené používateľovi", "Password created successfully" : "Heslo úspešne vytvorené.", diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 4aa9418eb8f..eca5228e102 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -380,6 +380,7 @@ "Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená", "Share password saved" : "Heslo zdieľania bolo uložené", "Share permissions saved" : "Práva zdieľania boli uložené", + "Filename must not be empty." : "Názov súboru nesmie byť prázdny.", "Shared by" : "Zdieľané od", "Shared with" : "Sprístupnené používateľovi", "Password created successfully" : "Heslo úspešne vytvorené.", diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js index 9ea05c3e850..dc0438d744e 100644 --- a/apps/files_sharing/l10n/sl.js +++ b/apps/files_sharing/l10n/sl.js @@ -217,7 +217,7 @@ OC.L10N.register( "Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape", "Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke", "Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe", - "Shares" : "‧ V Souporabi", + "Shares" : "V souporabi", "Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi", "Expires {relativetime}" : "Preteče {relativetime}", "this share just expired." : "to mesto souporabe je ravnokar preteklo.", @@ -242,6 +242,7 @@ OC.L10N.register( "Error updating the share" : "Napaka posodabljanja mesta souporabe", "File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena", "Folder \"{path}\" has been unshared" : "Souporaba mape »{path}« je odstranjena", + "Filename must not be empty." : "Ime datoteke ne sme biti prazno.", "Shared by" : "Souporabo omogoča", "Shared with" : "V skupni rabi z uporabnikom", "Password created successfully" : "Geslo je uspešno ustvarjeno", diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json index 26c32643cf9..2ad96b4fe48 100644 --- a/apps/files_sharing/l10n/sl.json +++ b/apps/files_sharing/l10n/sl.json @@ -215,7 +215,7 @@ "Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape", "Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke", "Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe", - "Shares" : "‧ V Souporabi", + "Shares" : "V souporabi", "Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi", "Expires {relativetime}" : "Preteče {relativetime}", "this share just expired." : "to mesto souporabe je ravnokar preteklo.", @@ -240,6 +240,7 @@ "Error updating the share" : "Napaka posodabljanja mesta souporabe", "File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena", "Folder \"{path}\" has been unshared" : "Souporaba mape »{path}« je odstranjena", + "Filename must not be empty." : "Ime datoteke ne sme biti prazno.", "Shared by" : "Souporabo omogoča", "Shared with" : "V skupni rabi z uporabnikom", "Password created successfully" : "Geslo je uspešno ustvarjeno", diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js index 4a2c7230e0e..058a92ab001 100644 --- a/apps/files_sharing/l10n/sr.js +++ b/apps/files_sharing/l10n/sr.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Сачувана је напомена за примаоца дељења", "Share password saved" : "Сачувана је лозинка дељења", "Share permissions saved" : "Сачуване су дозволе дељења", + "Filename must not be empty." : "Назив фајла не може бити празан.", "Shared by" : "Поделио", "Shared with" : "Подељено са", "Password created successfully" : "Лозинка је успешно креирана", diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json index 64fb1ab2187..714a209e4b4 100644 --- a/apps/files_sharing/l10n/sr.json +++ b/apps/files_sharing/l10n/sr.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Сачувана је напомена за примаоца дељења", "Share password saved" : "Сачувана је лозинка дељења", "Share permissions saved" : "Сачуване су дозволе дељења", + "Filename must not be empty." : "Назив фајла не може бити празан.", "Shared by" : "Поделио", "Shared with" : "Подељено са", "Password created successfully" : "Лозинка је успешно креирана", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index afd677b187b..4bf564d3b40 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "Delningens notering för mottagare sparad", "Share password saved" : "Lösenord för delning sparad", "Share permissions saved" : "Delningsbehörighet sparad", + "Filename must not be empty." : "Filnamn får inte vara tomt.", "Shared by" : "Delad av", "Shared with" : "Delad med", "Password created successfully" : "Lösenordet har skapats", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 89e44650c43..293d796647d 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "Delningens notering för mottagare sparad", "Share password saved" : "Lösenord för delning sparad", "Share permissions saved" : "Delningsbehörighet sparad", + "Filename must not be empty." : "Filnamn får inte vara tomt.", "Shared by" : "Delad av", "Shared with" : "Delad med", "Password created successfully" : "Lösenordet har skapats", diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index ffb65fe56c0..ef9440c870e 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -66,15 +66,15 @@ OC.L10N.register( "Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı", "Could not create share" : "Paylaşılamadı", "Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin", - "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış", + "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından devre dışı bırakılmış", "Please specify a valid group" : "Lütfen geçerli bir grup belirtin", - "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış", + "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından devre dışı bırakılmış", "Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın", - "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş kullanıma alınmamış olduğundan, %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkin olmadığından, %s paylaşım parolası Nextcloud Talk uygulaması ile gönderilemedi", "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı", "Please specify a valid federated account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin", "Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin", - "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamış ise bir Takım ile paylaşamazsınız", + "You cannot share to a Team if the app is not enabled" : "Uygulama etkin değilse bir Takım ile paylaşamazsınız", "Please specify a valid team" : "Lütfen geçerli bir takım belirtin", "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı", "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı", @@ -84,13 +84,13 @@ OC.L10N.register( "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir", "Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır", "Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir", - "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından kullanımdan kaldırılmış", + "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış", "Could not lock path" : "Yol kilitlenemedi", "no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok", "You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok", "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", - "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş kullanıma alınmamış olduğundan, paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.", - "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kullanımdan kaldırılmış", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkin olmadığından, paylaşım parolası Nextcloud Talk uygulaması ile gönderilemedi.", + "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından devre dışı bırakılmış", "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir", "Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır", "No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok", @@ -105,7 +105,7 @@ OC.L10N.register( "Download" : "İndir", "Add to your %s" : "%s uygulamanıza ekleyin", "Direct link" : "Doğrudan bağlantı", - "Share API is disabled" : "Paylaşım API arayüzü kullanımdan kaldırılmış", + "Share API is disabled" : "Paylaşım API arayüzü devre dışı bırakılmış", "File sharing" : "Dosya paylaşımı", "Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak", "Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak", @@ -116,7 +116,7 @@ OC.L10N.register( "Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.", "Open \"%s\"" : "\"%s\" aç", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini kullanıma almış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri kullanıma alabilir.\nBu özellik kullanımdan kaldırıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.", "People" : "Kişiler", "Filter accounts" : "Hesapları süz", "The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.", @@ -246,7 +246,7 @@ OC.L10N.register( "Group" : "Grup", "Email" : "E-posta", "Team" : "Takım", - "Talk conversation" : "Konuş uygulaması görüşmesi", + "Talk conversation" : "Talk görüşmesi", "Deck board" : "Tahta panosu", "ScienceMesh" : "ScienceMesh", "on {server}" : "{server} üzerinde", @@ -382,6 +382,7 @@ OC.L10N.register( "Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi", "Share password saved" : "Paylaşım parolası kaydedildi", "Share permissions saved" : "Paylaşım izinleri kaydedildi", + "Filename must not be empty." : "Dosya adı boş olamaz.", "Shared by" : "Paylaşan", "Shared with" : "Şunlarla paylaşılmış", "Password created successfully" : "Parola oluşturuldu", diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index 0b11f42d0ad..a49d62defa3 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -64,15 +64,15 @@ "Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı", "Could not create share" : "Paylaşılamadı", "Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin", - "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış", + "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından devre dışı bırakılmış", "Please specify a valid group" : "Lütfen geçerli bir grup belirtin", - "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış", + "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından devre dışı bırakılmış", "Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın", - "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş kullanıma alınmamış olduğundan, %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkin olmadığından, %s paylaşım parolası Nextcloud Talk uygulaması ile gönderilemedi", "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı", "Please specify a valid federated account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin", "Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin", - "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamış ise bir Takım ile paylaşamazsınız", + "You cannot share to a Team if the app is not enabled" : "Uygulama etkin değilse bir Takım ile paylaşamazsınız", "Please specify a valid team" : "Lütfen geçerli bir takım belirtin", "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı", "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı", @@ -82,13 +82,13 @@ "Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir", "Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır", "Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir", - "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından kullanımdan kaldırılmış", + "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış", "Could not lock path" : "Yol kilitlenemedi", "no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok", "You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok", "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", - "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş kullanıma alınmamış olduğundan, paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.", - "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kullanımdan kaldırılmış", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkin olmadığından, paylaşım parolası Nextcloud Talk uygulaması ile gönderilemedi.", + "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından devre dışı bırakılmış", "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir", "Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır", "No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok", @@ -103,7 +103,7 @@ "Download" : "İndir", "Add to your %s" : "%s uygulamanıza ekleyin", "Direct link" : "Doğrudan bağlantı", - "Share API is disabled" : "Paylaşım API arayüzü kullanımdan kaldırılmış", + "Share API is disabled" : "Paylaşım API arayüzü devre dışı bırakılmış", "File sharing" : "Dosya paylaşımı", "Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak", "Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak", @@ -114,7 +114,7 @@ "Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.", "Open \"%s\"" : "\"%s\" aç", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini kullanıma almış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri kullanıma alabilir.\nBu özellik kullanımdan kaldırıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts 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 people 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." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Etkinleştirildiğinde, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini etkinleştirmiş ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri etkinleştirebilir.\nBu özellik devre dışı bırakıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.", "People" : "Kişiler", "Filter accounts" : "Hesapları süz", "The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.", @@ -244,7 +244,7 @@ "Group" : "Grup", "Email" : "E-posta", "Team" : "Takım", - "Talk conversation" : "Konuş uygulaması görüşmesi", + "Talk conversation" : "Talk görüşmesi", "Deck board" : "Tahta panosu", "ScienceMesh" : "ScienceMesh", "on {server}" : "{server} üzerinde", @@ -380,6 +380,7 @@ "Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi", "Share password saved" : "Paylaşım parolası kaydedildi", "Share permissions saved" : "Paylaşım izinleri kaydedildi", + "Filename must not be empty." : "Dosya adı boş olamaz.", "Shared by" : "Paylaşan", "Shared with" : "Şunlarla paylaşılmış", "Password created successfully" : "Parola oluşturuldu", diff --git a/apps/files_sharing/l10n/ug.js b/apps/files_sharing/l10n/ug.js index 265c0a4d60e..26a05b02c45 100644 --- a/apps/files_sharing/l10n/ug.js +++ b/apps/files_sharing/l10n/ug.js @@ -345,6 +345,7 @@ OC.L10N.register( "Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ", "Share password saved" : "پارولنى ئورتاقلاشتى", "Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى", + "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك.", "Shared by" : "ھەمبەھىرلىگۈچى", "Shared with" : "بىلەن ئورتاقلاشتى", "Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى", diff --git a/apps/files_sharing/l10n/ug.json b/apps/files_sharing/l10n/ug.json index 073cdd91545..9a5fc9cd384 100644 --- a/apps/files_sharing/l10n/ug.json +++ b/apps/files_sharing/l10n/ug.json @@ -343,6 +343,7 @@ "Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ", "Share password saved" : "پارولنى ئورتاقلاشتى", "Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى", + "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك.", "Shared by" : "ھەمبەھىرلىگۈچى", "Shared with" : "بىلەن ئورتاقلاشتى", "Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى", diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index 7b21bc01420..5e002a545f6 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -381,6 +381,7 @@ OC.L10N.register( "Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу", "Share password saved" : "Пароль до спільного ресурсу збережено", "Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено", + "Filename must not be empty." : "Імена файлів не мають бути порожні.", "Shared by" : "Поділилися", "Shared with" : "Спільний доступ з", "Password created successfully" : "Успішно створено пароль", diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index ca322676107..cbfed6f5f4b 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -379,6 +379,7 @@ "Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу", "Share password saved" : "Пароль до спільного ресурсу збережено", "Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено", + "Filename must not be empty." : "Імена файлів не мають бути порожні.", "Shared by" : "Поділилися", "Shared with" : "Спільний доступ з", "Password created successfully" : "Успішно створено пароль", diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js index cef460aac68..785f0158f5e 100644 --- a/apps/files_sharing/l10n/vi.js +++ b/apps/files_sharing/l10n/vi.js @@ -233,6 +233,7 @@ OC.L10N.register( "Error updating the share" : "Lỗi cập nhật chia sẻ", "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ", "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ", + "Filename must not be empty." : "Tên tập tin không thể trống", "Shared by" : "Chia sẻ bởi", "Shared with" : "Chia sẽ với", "Password created successfully" : "Đã tạo mật khẩu thành công", diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json index d8e1eef3c7e..f272bdfbbd4 100644 --- a/apps/files_sharing/l10n/vi.json +++ b/apps/files_sharing/l10n/vi.json @@ -231,6 +231,7 @@ "Error updating the share" : "Lỗi cập nhật chia sẻ", "File \"{path}\" has been unshared" : "Tệp \"{path}\" đã không được chia sẻ", "Folder \"{path}\" has been unshared" : "Thư mục \"{path}\" đã không được chia sẻ", + "Filename must not be empty." : "Tên tập tin không thể trống", "Shared by" : "Chia sẻ bởi", "Shared with" : "Chia sẽ với", "Password created successfully" : "Đã tạo mật khẩu thành công", diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index 5d051eb9950..8ddfdb27b98 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "接收者的共享备注已保存", "Share password saved" : "共享密码已保存", "Share permissions saved" : "共享权限已保存", + "Filename must not be empty." : "文件名不能为空。", "Shared by" : "共享人", "Shared with" : "共享给", "Password created successfully" : "密码已创建成功", diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 5cd693a66be..c6446ead493 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "接收者的共享备注已保存", "Share password saved" : "共享密码已保存", "Share permissions saved" : "共享权限已保存", + "Filename must not be empty." : "文件名不能为空。", "Shared by" : "共享人", "Shared with" : "共享给", "Password created successfully" : "密码已创建成功", diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js index b06485d52ae..ce16e42612e 100644 --- a/apps/files_sharing/l10n/zh_HK.js +++ b/apps/files_sharing/l10n/zh_HK.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "已儲存給收件者的分享備註", "Share password saved" : "已保存分享密碼", "Share permissions saved" : "已儲存分享權限", + "Filename must not be empty." : "檔案名稱不能為空。", "Shared by" : "分享自", "Shared with" : "分享給", "Password created successfully" : "成功創建了密碼", diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json index 67d1f31894f..a461f998e67 100644 --- a/apps/files_sharing/l10n/zh_HK.json +++ b/apps/files_sharing/l10n/zh_HK.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "已儲存給收件者的分享備註", "Share password saved" : "已保存分享密碼", "Share permissions saved" : "已儲存分享權限", + "Filename must not be empty." : "檔案名稱不能為空。", "Shared by" : "分享自", "Shared with" : "分享給", "Password created successfully" : "成功創建了密碼", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index 9f2a7ae3b85..70cc1b0eade 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -385,6 +385,7 @@ OC.L10N.register( "Share note for recipient saved" : "已儲存給收件者的分享備註", "Share password saved" : "分享密碼已儲存", "Share permissions saved" : "已儲存分享權限", + "Filename must not be empty." : "檔案名稱不能為空。", "Shared by" : "分享者", "Shared with" : "分享給", "Password created successfully" : "成功建立密碼", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index 35e7ec603d5..8645a0c87eb 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -383,6 +383,7 @@ "Share note for recipient saved" : "已儲存給收件者的分享備註", "Share password saved" : "分享密碼已儲存", "Share permissions saved" : "已儲存分享權限", + "Filename must not be empty." : "檔案名稱不能為空。", "Shared by" : "分享者", "Shared with" : "分享給", "Password created successfully" : "成功建立密碼", diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json index 68420dde80e..89c82843939 100644 --- a/apps/files_sharing/openapi.json +++ b/apps/files_sharing/openapi.json @@ -1490,6 +1490,13 @@ 1 ] } + }, + { + "name": "X-NC-Preview", + "in": "header", + "schema": { + "type": "string" + } } ], "responses": { @@ -1574,11 +1581,13 @@ "password": { "type": "string", "nullable": true, + "default": null, "description": "Password of the share" }, "dir": { "type": "string", "nullable": true, + "default": null, "description": "Subdirectory to get info about" }, "depth": { @@ -1782,12 +1791,14 @@ "path": { "type": "string", "nullable": true, + "default": null, "description": "Path of the share" }, "permissions": { "type": "integer", "format": "int64", "nullable": true, + "default": null, "description": "Permissions for the share" }, "shareType": { @@ -1799,11 +1810,13 @@ "shareWith": { "type": "string", "nullable": true, + "default": null, "description": "The entity this should be shared with" }, "publicUpload": { "type": "string", "nullable": true, + "default": null, "enum": [ "true", "false" @@ -1818,11 +1831,13 @@ "sendPasswordByTalk": { "type": "string", "nullable": true, + "default": null, "description": "Send the password for the share over Talk" }, "expireDate": { "type": "string", "nullable": true, + "default": null, "description": "The expiry date of the share in the user's timezone at 00:00. If $expireDate is not supplied or set to `null`, the system default will be used." }, "note": { @@ -1838,11 +1853,13 @@ "attributes": { "type": "string", "nullable": true, + "default": null, "description": "Additional attributes for the share" }, "sendMail": { "type": "string", "nullable": true, + "default": null, "enum": [ "false", "true" @@ -2297,56 +2314,67 @@ "type": "integer", "format": "int64", "nullable": true, + "default": null, "description": "New permissions" }, "password": { "type": "string", "nullable": true, + "default": null, "description": "New password" }, "sendPasswordByTalk": { "type": "string", "nullable": true, + "default": null, "description": "New condition if the password should be send over Talk" }, "publicUpload": { "type": "string", "nullable": true, + "default": null, "description": "New condition if public uploading is allowed" }, "expireDate": { "type": "string", "nullable": true, + "default": null, "description": "New expiry date" }, "note": { "type": "string", "nullable": true, + "default": null, "description": "New note" }, "label": { "type": "string", "nullable": true, + "default": null, "description": "New label" }, "hideDownload": { "type": "string", "nullable": true, + "default": null, "description": "New condition if the download should be hidden" }, "attributes": { "type": "string", "nullable": true, + "default": null, "description": "New additional attributes" }, "sendMail": { "type": "string", "nullable": true, + "default": null, "description": "if the share should be send by mail. Considering the share already exists, no mail will be send after the share is updated. You will have to use the sendMail action to send the mail." }, "token": { "type": "string", "nullable": true, + "default": null, "description": "New token" } } @@ -3099,7 +3127,8 @@ "description": "Limit to specific item types", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { @@ -3128,6 +3157,7 @@ "description": "Limit to specific share types", "schema": { "nullable": true, + "default": null, "oneOf": [ { "type": "integer", @@ -3267,6 +3297,7 @@ "description": "Limit to specific share types", "schema": { "nullable": true, + "default": null, "oneOf": [ { "type": "integer", diff --git a/apps/files_sharing/src/services/GuestNameValidity.ts b/apps/files_sharing/src/services/GuestNameValidity.ts new file mode 100644 index 00000000000..249a1a6fbb4 --- /dev/null +++ b/apps/files_sharing/src/services/GuestNameValidity.ts @@ -0,0 +1,45 @@ +/*! + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files' +import { t } from '@nextcloud/l10n' + +/** + * Get the validity of a filename (empty if valid). + * This can be used for `setCustomValidity` on input elements + * @param name The filename + * @param escape Escape the matched string in the error (only set when used in HTML) + */ +export function getGuestNameValidity(name: string, escape = false): string { + if (name.trim() === '') { + return t('files', 'Filename must not be empty.') + } + + if (name.startsWith('.')) { + return t('files', 'Names must not start with a dot.') + } + + try { + validateFilename(name) + return '' + } catch (error) { + if (!(error instanceof InvalidFilenameError)) { + throw error + } + + switch (error.reason) { + case InvalidFilenameErrorReason.Character: + return t('files', '"{char}" is not allowed inside a name.', { char: error.segment }, undefined, { escape }) + case InvalidFilenameErrorReason.ReservedName: + return t('files', '"{segment}" is a reserved name and not allowed.', { segment: error.segment }, undefined, { escape: false }) + case InvalidFilenameErrorReason.Extension: + if (error.segment.match(/\.[a-z]/i)) { + return t('files', '"{extension}" is not an allowed name.', { extension: error.segment }, undefined, { escape: false }) + } + return t('files', 'Names must not end with "{extension}".', { extension: error.segment }, undefined, { escape: false }) + default: + return t('files', 'Invalid name.') + } + } +} diff --git a/apps/files_sharing/src/views/PublicAuthPrompt.vue b/apps/files_sharing/src/views/PublicAuthPrompt.vue index 39f5adc4650..28955a87154 100644 --- a/apps/files_sharing/src/views/PublicAuthPrompt.vue +++ b/apps/files_sharing/src/views/PublicAuthPrompt.vue @@ -35,12 +35,14 @@ <script lang="ts"> import { defineComponent } from 'vue' +import { loadState } from '@nextcloud/initial-state' import { t } from '@nextcloud/l10n' import NcDialog from '@nextcloud/vue/components/NcDialog' import NcNoteCard from '@nextcloud/vue/components/NcNoteCard' import NcTextField from '@nextcloud/vue/components/NcTextField' -import { loadState } from '@nextcloud/initial-state' + +import { getGuestNameValidity } from '../services/GuestNameValidity' export default defineComponent({ name: 'PublicAuthPrompt', @@ -101,6 +103,19 @@ export default defineComponent({ }, immediate: true, }, + + name() { + // Check validity of the new name + const newName = this.name.trim?.() || '' + const input = (this.$refs.input as Vue|undefined)?.$el.querySelector('input') + if (!input) { + return + } + + const validity = getGuestNameValidity(newName) + input.setCustomValidity(validity) + input.reportValidity() + }, }, }) </script> diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php index 888b2cdd596..769516cda85 100644 --- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php +++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php @@ -11,6 +11,7 @@ use OCP\Federation\ICloudId; use OCP\Federation\ICloudIdManager; use OCP\IDBConnection; use OCP\Server; +use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; @@ -24,20 +25,9 @@ use Test\TestCase; */ class CleanupRemoteStoragesTest extends TestCase { - /** - * @var CleanupRemoteStorages - */ - private $command; - - /** - * @var IDBConnection - */ - private $connection; - - /** - * @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject - */ - private $cloudIdManager; + protected IDBConnection $connection; + protected CleanupRemoteStorages $command; + private ICloudIdManager&MockObject $cloudIdManager; private $storages = [ ['id' => 'shared::7b4a322b22f9d0047c38d77d471ce3cf', 'share_token' => 'f2c69dad1dc0649f26976fd210fc62e1', 'remote' => 'https://hostname.tld/owncloud1', 'user' => 'user1'], @@ -77,7 +67,7 @@ class CleanupRemoteStoragesTest extends TestCase { foreach ($this->storages as &$storage) { if (isset($storage['id'])) { $storageQuery->setParameter('id', $storage['id']); - $storageQuery->execute(); + $storageQuery->executeStatement(); $storage['numeric_id'] = $storageQuery->getLastInsertId(); } @@ -121,13 +111,13 @@ class CleanupRemoteStoragesTest extends TestCase { foreach ($this->storages as $storage) { if (isset($storage['id'])) { $storageQuery->setParameter('id', $storage['id']); - $storageQuery->execute(); + $storageQuery->executeStatement(); } if (isset($storage['share_token'])) { $shareExternalQuery->setParameter('share_token', $storage['share_token']); $shareExternalQuery->setParameter('remote', $storage['remote']); - $shareExternalQuery->execute(); + $shareExternalQuery->executeStatement(); } } @@ -174,14 +164,13 @@ class CleanupRemoteStoragesTest extends TestCase { ->getMock(); // parent folder, `files`, ´test` and `welcome.txt` => 4 elements - + $outputCalls = []; $output ->expects($this->any()) ->method('writeln') - ->withConsecutive( - ['5 remote storage(s) need(s) to be checked'], - ['5 remote share(s) exist'], - ); + ->willReturnCallback(function (string $text) use (&$outputCalls) { + $outputCalls[] = $text; + }); $this->cloudIdManager ->expects($this->any()) @@ -206,5 +195,10 @@ class CleanupRemoteStoragesTest extends TestCase { $this->assertFalse($this->doesStorageExist($this->storages[3]['numeric_id'])); $this->assertTrue($this->doesStorageExist($this->storages[4]['numeric_id'])); $this->assertFalse($this->doesStorageExist($this->storages[5]['numeric_id'])); + + $this->assertEquals([ + '5 remote storage(s) need(s) to be checked', + '5 remote share(s) exist', + ], array_slice($outputCalls, 0, 2)); } } diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 02c133ee5d1..f245f0a25c7 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -1542,84 +1542,129 @@ class ShareAPIControllerTest extends TestCase { $this->assertEquals($expected, $result->getData()); } - public function testCanAccessShare(): void { - $share = $this->getMockBuilder(IShare::class)->getMock(); + public function testCanAccessShareAsOwner(): void { + $share = $this->createMock(IShare::class); $share->method('getShareOwner')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } - $share = $this->getMockBuilder(IShare::class)->getMock(); + public function testCanAccessShareAsSharer(): void { + $share = $this->createMock(IShare::class); $share->method('getSharedBy')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } - $share = $this->getMockBuilder(IShare::class)->getMock(); + public function testCanAccessShareAsSharee(): void { + $share = $this->createMock(IShare::class); $share->method('getShareType')->willReturn(IShare::TYPE_USER); $share->method('getSharedWith')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } - $file = $this->getMockBuilder(File::class)->getMock(); + public function testCannotAccessLinkShare(): void { + $share = $this->createMock(IShare::class); + $share->method('getShareType')->willReturn(IShare::TYPE_LINK); + $share->method('getNodeId')->willReturn(42); - $userFolder = $this->getMockBuilder(Folder::class)->getMock(); + $userFolder = $this->createMock(Folder::class); $this->rootFolder->method('getUserFolder') ->with($this->currentUser) ->willReturn($userFolder); + $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } + + /** + * @dataProvider dataCanAccessShareWithPermissions + */ + public function testCanAccessShareWithPermissions(int $permissions, bool $expected): void { + $share = $this->createMock(IShare::class); + $share->method('getShareType')->willReturn(IShare::TYPE_USER); + $share->method('getSharedWith')->willReturn($this->createMock(IUser::class)); + $share->method('getNodeId')->willReturn(42); + + $file = $this->createMock(File::class); + + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $userFolder->method('getFirstNodeById') ->with($share->getNodeId()) ->willReturn($file); $userFolder->method('getById') ->with($share->getNodeId()) ->willReturn([$file]); + $this->rootFolder->method('getUserFolder') + ->with($this->currentUser) + ->willReturn($userFolder); $file->method('getPermissions') - ->will($this->onConsecutiveCalls(Constants::PERMISSION_SHARE, Constants::PERMISSION_READ)); + ->willReturn($permissions); - // getPermissions -> share - $share = $this->getMockBuilder(IShare::class)->getMock(); - $share->method('getShareType')->willReturn(IShare::TYPE_USER); - $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock()); - $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + if ($expected) { + $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } else { + $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } + } - // getPermissions -> read - $share = $this->getMockBuilder(IShare::class)->getMock(); - $share->method('getShareType')->willReturn(IShare::TYPE_USER); - $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock()); - $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + public static function dataCanAccessShareWithPermissions(): array { + return [ + [Constants::PERMISSION_SHARE, true], + [Constants::PERMISSION_READ, false], + [Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, true], + ]; + } - $share = $this->getMockBuilder(IShare::class)->getMock(); + /** + * @dataProvider dataCanAccessShareAsGroupMember + */ + public function testCanAccessShareAsGroupMember(string $group, bool $expected): void { + $share = $this->createMock(IShare::class); $share->method('getShareType')->willReturn(IShare::TYPE_GROUP); - $share->method('getSharedWith')->willReturn('group'); + $share->method('getSharedWith')->willReturn($group); + $share->method('getNodeId')->willReturn(42); + + $file = $this->createMock(File::class); + + $userFolder = $this->createMock(Folder::class); + $userFolder->method('getFirstNodeById') + ->with($share->getNodeId()) + ->willReturn($file); + $userFolder->method('getById') + ->with($share->getNodeId()) + ->willReturn([$file]); + $this->rootFolder->method('getUserFolder') + ->with($this->currentUser) + ->willReturn($userFolder); $user = $this->createMock(IUser::class); $this->userManager->method('get') ->with($this->currentUser) ->willReturn($user); - $group = $this->getMockBuilder(IGroup::class)->getMock(); + $group = $this->createMock(IGroup::class); $group->method('inGroup')->with($user)->willReturn(true); - $group2 = $this->getMockBuilder(IGroup::class)->getMock(); + $group2 = $this->createMock(IGroup::class); $group2->method('inGroup')->with($user)->willReturn(false); $this->groupManager->method('get')->willReturnMap([ ['group', $group], ['group2', $group2], - ['groupnull', null], + ['group-null', null], ]); - $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - $share = $this->createMock(IShare::class); - $share->method('getShareType')->willReturn(IShare::TYPE_GROUP); - $share->method('getSharedWith')->willReturn('group2'); - $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - - // null group - $share = $this->createMock(IShare::class); - $share->method('getShareType')->willReturn(IShare::TYPE_GROUP); - $share->method('getSharedWith')->willReturn('groupnull'); - $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + if ($expected) { + $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } else { + $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + } + } - $share = $this->createMock(IShare::class); - $share->method('getShareType')->willReturn(IShare::TYPE_LINK); - $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); + public static function dataCanAccessShareAsGroupMember(): array { + return [ + ['group', true], + ['group2', false], + ['group-null', false], + ]; } public function dataCanAccessRoomShare() { @@ -1675,8 +1720,11 @@ class ShareAPIControllerTest extends TestCase { ->with('spreed') ->willReturn(true); - $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') - ->setMethods(['canAccessShare']) + // This is not possible anymore with PHPUnit 10+ + // as `setMethods` was removed and now real reflection is used, thus the class needs to exist. + // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') + $helper = $this->getMockBuilder(\stdClass::class) + ->addMethods(['canAccessShare']) ->getMock(); $helper->method('canAccessShare') ->with($share, $this->currentUser) @@ -2492,8 +2540,11 @@ class ShareAPIControllerTest extends TestCase { ->with('spreed') ->willReturn(true); - $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') - ->setMethods(['createShare']) + // This is not possible anymore with PHPUnit 10+ + // as `setMethods` was removed and now real reflection is used, thus the class needs to exist. + // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') + $helper = $this->getMockBuilder(\stdClass::class) + ->addMethods(['createShare']) ->getMock(); $helper->method('createShare') ->with( @@ -2598,7 +2649,10 @@ class ShareAPIControllerTest extends TestCase { ->with('spreed') ->willReturn(true); - $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') + // This is not possible anymore with PHPUnit 10+ + // as `setMethods` was removed and now real reflection is used, thus the class needs to exist. + // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') + $helper = $this->getMockBuilder(\stdClass::class) ->addMethods(['createShare']) ->getMock(); $helper->method('createShare') @@ -5093,8 +5147,11 @@ class ShareAPIControllerTest extends TestCase { ->with('spreed') ->willReturn(true); - $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') - ->setMethods(['formatShare', 'canAccessShare']) + // This is not possible anymore with PHPUnit 10+ + // as `setMethods` was removed and now real reflection is used, thus the class needs to exist. + // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController') + $helper = $this->getMockBuilder(\stdClass::class) + ->addMethods(['formatShare', 'canAccessShare']) ->getMock(); $helper->method('formatShare') ->with($share) diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php index f2df74fd01b..571647829f2 100644 --- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php @@ -15,15 +15,13 @@ use OCP\IRequest; use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IManager as ShareManager; use OCP\Share\IShare; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class ShareInfoControllerTest extends TestCase { - /** @var ShareInfoController */ - private $controller; - - /** @var ShareManager|\PHPUnit\Framework\MockObject\MockObject */ - private $shareManager; + protected ShareInfoController $controller; + protected ShareManager&MockObject $shareManager; protected function setUp(): void { @@ -31,14 +29,11 @@ class ShareInfoControllerTest extends TestCase { $this->shareManager = $this->createMock(ShareManager::class); - $this->controller = $this->getMockBuilder(ShareInfoController::class) - ->setConstructorArgs([ - 'files_sharing', - $this->createMock(IRequest::class), - $this->shareManager - ]) - ->setMethods(['addROWrapper']) - ->getMock(); + $this->controller = new ShareInfoController( + 'files_sharing', + $this->createMock(IRequest::class), + $this->shareManager + ); } public function testNoShare(): void { diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php index 611392c286e..5314d1ec00f 100644 --- a/apps/files_sharing/tests/External/ManagerTest.php +++ b/apps/files_sharing/tests/External/ManagerTest.php @@ -33,6 +33,7 @@ use OCP\IUserSession; use OCP\OCS\IDiscoveryService; use OCP\Server; use OCP\Share\IShare; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Test\Traits\UserTrait; @@ -46,42 +47,19 @@ use Test\Traits\UserTrait; class ManagerTest extends TestCase { use UserTrait; - /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $contactsManager; - - /** @var Manager|\PHPUnit\Framework\MockObject\MockObject * */ - private $manager; - - /** @var \OC\Files\Mount\Manager */ - private $mountManager; - - /** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */ - private $clientService; - - /** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */ - private $cloudFederationProviderManager; - - /** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */ - private $cloudFederationFactory; - - /** @var \PHPUnit\Framework\MockObject\MockObject|IGroupManager */ - private $groupManager; - - /** @var \PHPUnit\Framework\MockObject\MockObject|IUserManager */ - private $userManager; - - /** @var LoggerInterface */ - private $logger; - - private $uid; - - /** - * @var IUser - */ - private $user; - private $testMountProvider; - /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */ - private $eventDispatcher; + protected string $uid; + protected IUser $user; + protected MountProvider $testMountProvider; + protected IEventDispatcher&MockObject $eventDispatcher; + protected LoggerInterface&MockObject $logger; + protected \OC\Files\Mount\Manager $mountManager; + protected IManager&MockObject $contactsManager; + protected Manager&MockObject $manager; + protected IClientService&MockObject $clientService; + protected ICloudFederationProviderManager&MockObject $cloudFederationProviderManager; + protected ICloudFederationFactory&MockObject $cloudFederationFactory; + protected IGroupManager&MockObject $groupManager; + protected IUserManager&MockObject $userManager; protected function setUp(): void { parent::setUp(); @@ -169,7 +147,7 @@ class ManagerTest extends TestCase { $this->eventDispatcher, $this->logger, ] - )->setMethods(['tryOCMEndPoint'])->getMock(); + )->onlyMethods(['tryOCMEndPoint'])->getMock(); } private function setupMounts() { @@ -222,14 +200,12 @@ class ManagerTest extends TestCase { if ($isGroup) { $this->manager->expects($this->never())->method('tryOCMEndPoint'); } else { - $this->manager->method('tryOCMEndPoint') - ->withConsecutive( - ['http://localhost', 'token1', '2342', 'accept'], - ['http://localhost', 'token3', '2342', 'decline'], - )->willReturnOnConsecutiveCalls( - false, - false, - ); + $this->manager->expects(self::atLeast(2)) + ->method('tryOCMEndPoint') + ->willReturnMap([ + ['http://localhost', 'token1', '2342', 'accept', false], + ['http://localhost', 'token3', '2342', 'decline', false], + ]); } // Add a share for "user" diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php index 285af51f022..4a1eb673a06 100644 --- a/apps/files_sharing/tests/MountProviderTest.php +++ b/apps/files_sharing/tests/MountProviderTest.php @@ -20,29 +20,21 @@ use OCP\IUserManager; use OCP\Share\IAttributes as IShareAttributes; use OCP\Share\IManager; use OCP\Share\IShare; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; /** * @group DB */ class MountProviderTest extends \Test\TestCase { - /** @var MountProvider */ - private $provider; - /** @var IConfig|MockObject */ - private $config; + protected MountProvider $provider; - /** @var IUser|MockObject */ - private $user; - - /** @var IStorageFactory|MockObject */ - private $loader; - - /** @var IManager|MockObject */ - private $shareManager; - - /** @var LoggerInterface|MockObject */ - private $logger; + protected IUser&MockObject $user; + protected IConfig&MockObject $config; + protected IManager&MockObject $shareManager; + protected IStorageFactory&MockObject $loader; + protected LoggerInterface&MockObject $logger; protected function setUp(): void { parent::setUp(); @@ -144,38 +136,34 @@ class MountProviderTest extends \Test\TestCase { ]; // tests regarding circles and sciencemesh are made in the apps themselves. $circleShares = []; - $sciencemeshShares = []; + $scienceMeshShares = []; $this->user->expects($this->any()) ->method('getUID') ->willReturn('user1'); $this->shareManager->expects($this->exactly(6)) ->method('getSharedWith') - ->withConsecutive( - ['user1', IShare::TYPE_USER], - ['user1', IShare::TYPE_GROUP, null, -1], - ['user1', IShare::TYPE_CIRCLE, null, -1], - ['user1', IShare::TYPE_ROOM, null, -1], - ['user1', IShare::TYPE_DECK, null, -1], - ['user1', IShare::TYPE_SCIENCEMESH, null, -1], - )->willReturnOnConsecutiveCalls( - $userShares, - $groupShares, - $circleShares, - $roomShares, - $deckShares, - $sciencemeshShares - ); + ->willReturnMap([ + ['user1', IShare::TYPE_USER, null, -1, 0, $userShares], + ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares], + ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares], + ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares], + ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares], + ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares], + ]); + $this->shareManager->expects($this->any()) ->method('newShare') ->willReturnCallback(function () use ($rootFolder, $userManager) { return new Share($rootFolder, $userManager); }); + $mounts = $this->provider->getMountsForUser($this->user, $this->loader); $this->assertCount(4, $mounts); $this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[0]); $this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[1]); $this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[2]); $this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[3]); + /** @var OCA\Files_Sharing\SharedMount[] $mounts */ $mountedShare1 = $mounts[0]->getShare(); $this->assertEquals('2', $mountedShare1->getId()); $this->assertEquals('user2', $mountedShare1->getShareOwner()); @@ -204,7 +192,7 @@ class MountProviderTest extends \Test\TestCase { $this->assertEquals(31, $mountedShare4->getPermissions()); } - public function mergeSharesDataProvider() { + public static function mergeSharesDataProvider(): array { // note: the user in the specs here is the shareOwner not recipient // the recipient is always "user1" return [ @@ -368,24 +356,18 @@ class MountProviderTest extends \Test\TestCase { $circleShares = []; $roomShares = []; $deckShares = []; - $sciencemeshShares = []; + $scienceMeshShares = []; $this->shareManager->expects($this->exactly(6)) ->method('getSharedWith') - ->withConsecutive( - ['user1', IShare::TYPE_USER], - ['user1', IShare::TYPE_GROUP, null, -1], - ['user1', IShare::TYPE_CIRCLE, null, -1], - ['user1', IShare::TYPE_ROOM, null, -1], - ['user1', IShare::TYPE_DECK, null, -1], - ['user1', IShare::TYPE_SCIENCEMESH, null, -1], - )->willReturnOnConsecutiveCalls( - $userShares, - $groupShares, - $circleShares, - $roomShares, - $deckShares, - $sciencemeshShares - ); + ->willReturnMap([ + ['user1', IShare::TYPE_USER, null, -1, 0, $userShares], + ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares], + ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares], + ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares], + ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares], + ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares], + ]); + $this->shareManager->expects($this->any()) ->method('newShare') ->willReturnCallback(function () use ($rootFolder, $userManager) { @@ -407,6 +389,7 @@ class MountProviderTest extends \Test\TestCase { $this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mount); // supershare + /** @var OCA\Files_Sharing\SharedMount $mount */ $share = $mount->getShare(); $this->assertEquals($expectedShare[0], $share->getId()); diff --git a/apps/files_trashbin/l10n/et_EE.js b/apps/files_trashbin/l10n/et_EE.js index 1ff6f43e96f..5eb18d993e4 100644 --- a/apps/files_trashbin/l10n/et_EE.js +++ b/apps/files_trashbin/l10n/et_EE.js @@ -4,15 +4,15 @@ OC.L10N.register( "restored" : "taastatud", "Deleted files" : "Kustutatud failid", "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Kustutatud failid ja kaustad prügikastis (võivad ekspordi käigus aeguda, kui salvestusruum on otsakorral)", - "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab inimestel taastada faile mis nad süsteemist kustutasid.", + "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab kasutajatel taastada faile, mis nad süsteemist kustutasid.", "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "See rakendus võimaldab inimestel taastada süsteemist kustutatud faile. See kuvab veebiliideses kustutatud failide loendi ja pakub võimalusi kustutatud failide taastamiseks inimeste failikataloogidesse või süsteemist jäädavalt eemaldamiseks. Faili taastamine taastab ka seotud failiversioonid, kui versioonirakendus on lubatud. Kui fail ühiskasutusest kustutatakse, saab selle taastada samal viisil, kuigi seda enam ei jagata. Vaikimisi jäävad need failid prügikasti 30 päevaks.\nKonto kettaruumi tühjenemise vältimiseks ei kasuta rakendus Kustutatud failid rohkem kui 50% praegu saadaolevast kustutatud failide tasuta kvoodist. Kui kustutatud failid ületavad selle limiidi, kustutab rakendus vanimad failid, kuni need jäävad sellest limiidist allapoole. Lisateavet leiate kustutatud failide dokumentatsioonist.", "Restore" : "Taasta", "Not enough free space to restore the file/folder" : "Faili või kausta taastamiseks pole piisavalt vaba ruumi", - "Empty deleted files" : "Tühjenda kustutatud failid", + "Empty deleted files" : "Eemalda kustutatud failid lõplikult", "Confirm permanent deletion" : "Kinnita lõplik kustutamine", - "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda ei saa tagasi keerata.", + "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda tegevust ei saa tagasi keerata.", "Cancel" : "Tühista", - "Deletion cancelled" : "Kustutamine tühistatud", + "Deletion cancelled" : "Kustutamine on tühistatud", "Original location" : "Algasukoht", "Deleted by" : "Kustutas", "Deleted" : "Kustutatud", @@ -22,6 +22,6 @@ OC.L10N.register( "You" : "Sina", "List of files that have been deleted." : "Kustutatud failide loend.", "No deleted files" : "Kustutatud faile pole", - "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, ilmuvad siia" + "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, on nähtavad siin" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json index b678a274fa3..a6659b51be2 100644 --- a/apps/files_trashbin/l10n/et_EE.json +++ b/apps/files_trashbin/l10n/et_EE.json @@ -2,15 +2,15 @@ "restored" : "taastatud", "Deleted files" : "Kustutatud failid", "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Kustutatud failid ja kaustad prügikastis (võivad ekspordi käigus aeguda, kui salvestusruum on otsakorral)", - "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab inimestel taastada faile mis nad süsteemist kustutasid.", + "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab kasutajatel taastada faile, mis nad süsteemist kustutasid.", "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "See rakendus võimaldab inimestel taastada süsteemist kustutatud faile. See kuvab veebiliideses kustutatud failide loendi ja pakub võimalusi kustutatud failide taastamiseks inimeste failikataloogidesse või süsteemist jäädavalt eemaldamiseks. Faili taastamine taastab ka seotud failiversioonid, kui versioonirakendus on lubatud. Kui fail ühiskasutusest kustutatakse, saab selle taastada samal viisil, kuigi seda enam ei jagata. Vaikimisi jäävad need failid prügikasti 30 päevaks.\nKonto kettaruumi tühjenemise vältimiseks ei kasuta rakendus Kustutatud failid rohkem kui 50% praegu saadaolevast kustutatud failide tasuta kvoodist. Kui kustutatud failid ületavad selle limiidi, kustutab rakendus vanimad failid, kuni need jäävad sellest limiidist allapoole. Lisateavet leiate kustutatud failide dokumentatsioonist.", "Restore" : "Taasta", "Not enough free space to restore the file/folder" : "Faili või kausta taastamiseks pole piisavalt vaba ruumi", - "Empty deleted files" : "Tühjenda kustutatud failid", + "Empty deleted files" : "Eemalda kustutatud failid lõplikult", "Confirm permanent deletion" : "Kinnita lõplik kustutamine", - "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda ei saa tagasi keerata.", + "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda tegevust ei saa tagasi keerata.", "Cancel" : "Tühista", - "Deletion cancelled" : "Kustutamine tühistatud", + "Deletion cancelled" : "Kustutamine on tühistatud", "Original location" : "Algasukoht", "Deleted by" : "Kustutas", "Deleted" : "Kustutatud", @@ -20,6 +20,6 @@ "You" : "Sina", "List of files that have been deleted." : "Kustutatud failide loend.", "No deleted files" : "Kustutatud faile pole", - "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, ilmuvad siia" + "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, on nähtavad siin" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_trashbin/l10n/fi.js b/apps/files_trashbin/l10n/fi.js index 20ad0ecdcfb..2ce9a4f2c18 100644 --- a/apps/files_trashbin/l10n/fi.js +++ b/apps/files_trashbin/l10n/fi.js @@ -4,6 +4,7 @@ OC.L10N.register( "restored" : "palautettu", "Deleted files" : "Poistetut tiedostot", "Restore" : "Palauta", + "Not enough free space to restore the file/folder" : "Tiedoston/kansion palauttamiseksi ei ole riittävästi vapaata tilaa", "Empty deleted files" : "Tyhjennä poistetut tiedostot", "Confirm permanent deletion" : "Vahvista lopullinen poistaminen", "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Haluatko varmasti poistaa pysyvästi kaikki roskakorissa olevat tiedostot ja kansiot? Tätä ei voi perua.", diff --git a/apps/files_trashbin/l10n/fi.json b/apps/files_trashbin/l10n/fi.json index cea7d0c42e1..9d2b9fd3a37 100644 --- a/apps/files_trashbin/l10n/fi.json +++ b/apps/files_trashbin/l10n/fi.json @@ -2,6 +2,7 @@ "restored" : "palautettu", "Deleted files" : "Poistetut tiedostot", "Restore" : "Palauta", + "Not enough free space to restore the file/folder" : "Tiedoston/kansion palauttamiseksi ei ole riittävästi vapaata tilaa", "Empty deleted files" : "Tyhjennä poistetut tiedostot", "Confirm permanent deletion" : "Vahvista lopullinen poistaminen", "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Haluatko varmasti poistaa pysyvästi kaikki roskakorissa olevat tiedostot ja kansiot? Tätä ei voi perua.", diff --git a/apps/files_trashbin/l10n/ga.js b/apps/files_trashbin/l10n/ga.js index 5c7a47f5216..f7ef331d8c3 100644 --- a/apps/files_trashbin/l10n/ga.js +++ b/apps/files_trashbin/l10n/ga.js @@ -7,6 +7,7 @@ OC.L10N.register( "This application enables people to restore files that were deleted from the system." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais.", "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais. Taispeánann sé liosta de chomhaid scriosta sa chomhéadan gréasáin, agus tá roghanna ann chun na comhaid sin a scriosadh a chur ar ais go dtí na heolairí comhaid daoine nó iad a bhaint go buan den chóras. Athchóiríonn comhad a athbhunú leaganacha gaolmhara comhaid, má tá feidhmchlár na leaganacha cumasaithe. Nuair a scriostar comhad ó sciar, is féidir é a chur ar ais ar an mbealach céanna, cé nach bhfuil sé roinnte a thuilleadh. De réir réamhshocraithe, fanann na comhaid seo sa bhosca bruscair ar feadh 30 lá.\nChun cosc a chur ar chuntas imeacht as spás diosca, ní úsáidfidh an aip Comhaid Scriosta níos mó ná 50% den chuóta saor in aisce atá ar fáil faoi láthair le haghaidh comhaid scriosta. Má sháraíonn na comhaid scriosta an teorainn seo, scriosann an aip na comhaid is sine go dtí go n-éireoidh sé faoin teorainn seo. Tá tuilleadh faisnéise ar fáil sa doiciméadú Comhaid Scriosta.", "Restore" : "Athchóirigh", + "Not enough free space to restore the file/folder" : "Níl dóthain spáis saor ann chun an comhad/fillteán a athchóiriú", "Empty deleted files" : "Comhaid scriosta folamh", "Confirm permanent deletion" : "Deimhnigh scriosadh buan", "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "An bhfuil tú cinnte gur mian leat gach comhad agus fillteán sa bhruscar a scriosadh go buan? Ní féidir é seo a chealú.", diff --git a/apps/files_trashbin/l10n/ga.json b/apps/files_trashbin/l10n/ga.json index 0a7738a7f1c..7420cb477f0 100644 --- a/apps/files_trashbin/l10n/ga.json +++ b/apps/files_trashbin/l10n/ga.json @@ -5,6 +5,7 @@ "This application enables people to restore files that were deleted from the system." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais.", "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais. Taispeánann sé liosta de chomhaid scriosta sa chomhéadan gréasáin, agus tá roghanna ann chun na comhaid sin a scriosadh a chur ar ais go dtí na heolairí comhaid daoine nó iad a bhaint go buan den chóras. Athchóiríonn comhad a athbhunú leaganacha gaolmhara comhaid, má tá feidhmchlár na leaganacha cumasaithe. Nuair a scriostar comhad ó sciar, is féidir é a chur ar ais ar an mbealach céanna, cé nach bhfuil sé roinnte a thuilleadh. De réir réamhshocraithe, fanann na comhaid seo sa bhosca bruscair ar feadh 30 lá.\nChun cosc a chur ar chuntas imeacht as spás diosca, ní úsáidfidh an aip Comhaid Scriosta níos mó ná 50% den chuóta saor in aisce atá ar fáil faoi láthair le haghaidh comhaid scriosta. Má sháraíonn na comhaid scriosta an teorainn seo, scriosann an aip na comhaid is sine go dtí go n-éireoidh sé faoin teorainn seo. Tá tuilleadh faisnéise ar fáil sa doiciméadú Comhaid Scriosta.", "Restore" : "Athchóirigh", + "Not enough free space to restore the file/folder" : "Níl dóthain spáis saor ann chun an comhad/fillteán a athchóiriú", "Empty deleted files" : "Comhaid scriosta folamh", "Confirm permanent deletion" : "Deimhnigh scriosadh buan", "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "An bhfuil tú cinnte gur mian leat gach comhad agus fillteán sa bhruscar a scriosadh go buan? Ní féidir é seo a chealú.", diff --git a/apps/files_trashbin/l10n/tr.js b/apps/files_trashbin/l10n/tr.js index 334bb9981de..216fc650ccc 100644 --- a/apps/files_trashbin/l10n/tr.js +++ b/apps/files_trashbin/l10n/tr.js @@ -5,7 +5,7 @@ OC.L10N.register( "Deleted files" : "Silinmiş dosyalar", "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Çöp kutusundaki silinmiş dosya ve klasörler (depolama alanınız azsa dışa aktarma sırasında tükenebilir)", "This application enables people to restore files that were deleted from the system." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar.", - "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması kullanıma alınmış ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.", + "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması etkin ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.", "Restore" : "Geri yükle", "Empty deleted files" : "Silinmiş dosyaları yok et", "Confirm permanent deletion" : "Kalıcı olarak silmeyi onaylayın", diff --git a/apps/files_trashbin/l10n/tr.json b/apps/files_trashbin/l10n/tr.json index ec57b977d04..0a5f7c83b66 100644 --- a/apps/files_trashbin/l10n/tr.json +++ b/apps/files_trashbin/l10n/tr.json @@ -3,7 +3,7 @@ "Deleted files" : "Silinmiş dosyalar", "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Çöp kutusundaki silinmiş dosya ve klasörler (depolama alanınız azsa dışa aktarma sırasında tükenebilir)", "This application enables people to restore files that were deleted from the system." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar.", - "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması kullanıma alınmış ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.", + "This application enables people to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the people file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması etkin ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.", "Restore" : "Geri yükle", "Empty deleted files" : "Silinmiş dosyaları yok et", "Confirm permanent deletion" : "Kalıcı olarak silmeyi onaylayın", diff --git a/apps/files_versions/l10n/tr.js b/apps/files_versions/l10n/tr.js index f73c10ecf45..5d4b0ca44de 100644 --- a/apps/files_versions/l10n/tr.js +++ b/apps/files_versions/l10n/tr.js @@ -3,7 +3,7 @@ OC.L10N.register( { "Versions" : "Sürümler", "This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", "Current version" : "Geçerli sürüm", "Initial version" : "İlk sürüm", "You" : "Siz", diff --git a/apps/files_versions/l10n/tr.json b/apps/files_versions/l10n/tr.json index 814e9ea7a97..f0f0aff89f4 100644 --- a/apps/files_versions/l10n/tr.json +++ b/apps/files_versions/l10n/tr.json @@ -1,7 +1,7 @@ { "translations": { "Versions" : "Sürümler", "This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.", - "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", + "This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the account does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the account's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Etkinleştirildiğinde, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.", "Current version" : "Geçerli sürüm", "Initial version" : "İlk sürüm", "You" : "Siz", diff --git a/apps/provisioning_api/l10n/tr.js b/apps/provisioning_api/l10n/tr.js index a8aeb46e790..2c3c00a0f55 100644 --- a/apps/provisioning_api/l10n/tr.js +++ b/apps/provisioning_api/l10n/tr.js @@ -38,6 +38,6 @@ OC.L10N.register( "Email confirmation successful" : "E-posta onaylandı", "Provisioning API" : "Karşılama API", "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.", - "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz." + "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca etkinleştirilmiş Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan etkinleştirilip, devre dışı bırakılabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/provisioning_api/l10n/tr.json b/apps/provisioning_api/l10n/tr.json index cb045906426..d27cf67a1e5 100644 --- a/apps/provisioning_api/l10n/tr.json +++ b/apps/provisioning_api/l10n/tr.json @@ -36,6 +36,6 @@ "Email confirmation successful" : "E-posta onaylandı", "Provisioning API" : "Karşılama API", "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.", - "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz." + "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca etkinleştirilmiş Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan etkinleştirilip, devre dışı bırakılabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php index 4d32584591b..3f6cff7442a 100644 --- a/apps/provisioning_api/lib/Controller/AppsController.php +++ b/apps/provisioning_api/lib/Controller/AppsController.php @@ -8,6 +8,8 @@ declare(strict_types=1); */ namespace OCA\Provisioning_API\Controller; +use OC\App\AppStore\AppNotFoundException; +use OC\Installer; use OC_App; use OCP\App\AppPathNotFoundException; use OCP\App\IAppManager; @@ -16,6 +18,7 @@ use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCSController; +use OCP\IAppConfig; use OCP\IRequest; class AppsController extends OCSController { @@ -23,6 +26,8 @@ class AppsController extends OCSController { string $appName, IRequest $request, private IAppManager $appManager, + private Installer $installer, + private IAppConfig $appConfig, ) { parent::__construct($appName, $request); } @@ -108,10 +113,19 @@ class AppsController extends OCSController { public function enable(string $app): DataResponse { try { $app = $this->verifyAppId($app); + + if (!$this->installer->isDownloaded($app)) { + $this->installer->downloadApp($app); + } + + if ($this->appConfig->getValueString($app, 'installed_version', '') === '') { + $this->installer->installApp($app); + } + $this->appManager->enableApp($app); } catch (\InvalidArgumentException $e) { throw new OCSException($e->getMessage(), OCSController::RESPOND_UNAUTHORISED); - } catch (AppPathNotFoundException $e) { + } catch (AppPathNotFoundException|AppNotFoundException $e) { throw new OCSException('The request app was not found', OCSController::RESPOND_NOT_FOUND); } return new DataResponse(); diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php index 3d9fa6b1cfc..37af51419df 100644 --- a/apps/provisioning_api/lib/Controller/GroupsController.php +++ b/apps/provisioning_api/lib/Controller/GroupsController.php @@ -98,6 +98,7 @@ class GroupsController extends AUserDataOCSController { */ #[NoAdminRequired] #[AuthorizedAdminSetting(settings: Sharing::class)] + #[AuthorizedAdminSetting(settings: Users::class)] public function getGroupsDetails(string $search = '', ?int $limit = null, int $offset = 0): DataResponse { $groups = $this->groupManager->search($search, $limit, $offset); $groups = array_values(array_map(function ($group) { diff --git a/apps/provisioning_api/openapi-administration.json b/apps/provisioning_api/openapi-administration.json index 3c54be68194..84b1a12d2dd 100644 --- a/apps/provisioning_api/openapi-administration.json +++ b/apps/provisioning_api/openapi-administration.json @@ -381,7 +381,8 @@ "description": "Filter for enabled or disabled apps", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { @@ -1003,7 +1004,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { diff --git a/apps/provisioning_api/openapi-full.json b/apps/provisioning_api/openapi-full.json index 9079404c35c..734c588be6b 100644 --- a/apps/provisioning_api/openapi-full.json +++ b/apps/provisioning_api/openapi-full.json @@ -428,7 +428,8 @@ "description": "Filter for enabled or disabled apps", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { @@ -885,7 +886,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -1230,7 +1232,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -2189,7 +2192,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -2438,7 +2442,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -2554,7 +2559,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -2695,6 +2701,7 @@ "manager": { "type": "string", "nullable": true, + "default": null, "description": "Manager of the user" } } @@ -2816,7 +2823,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -2932,7 +2940,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { diff --git a/apps/provisioning_api/openapi.json b/apps/provisioning_api/openapi.json index 59f31a2c25d..d2fd2378488 100644 --- a/apps/provisioning_api/openapi.json +++ b/apps/provisioning_api/openapi.json @@ -437,7 +437,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -538,7 +539,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -787,7 +789,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -986,7 +989,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -1127,6 +1131,7 @@ "manager": { "type": "string", "nullable": true, + "default": null, "description": "Manager of the user" } } @@ -1248,7 +1253,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -1364,7 +1370,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { diff --git a/apps/provisioning_api/tests/Controller/AppsControllerTest.php b/apps/provisioning_api/tests/Controller/AppsControllerTest.php index f56be7c4c36..f95daeae7d3 100644 --- a/apps/provisioning_api/tests/Controller/AppsControllerTest.php +++ b/apps/provisioning_api/tests/Controller/AppsControllerTest.php @@ -7,14 +7,17 @@ */ namespace OCA\Provisioning_API\Tests\Controller; +use OC\Installer; use OCA\Provisioning_API\Controller\AppsController; use OCA\Provisioning_API\Tests\TestCase; use OCP\App\IAppManager; use OCP\AppFramework\OCS\OCSException; +use OCP\IAppConfig; use OCP\IGroupManager; use OCP\IRequest; use OCP\IUserSession; use OCP\Server; +use PHPUnit\Framework\MockObject\MockObject; /** * Class AppsTest @@ -25,6 +28,8 @@ use OCP\Server; */ class AppsControllerTest extends TestCase { private IAppManager $appManager; + private IAppConfig&MockObject $appConfig; + private Installer&MockObject $installer; private AppsController $api; private IUserSession $userSession; @@ -34,13 +39,17 @@ class AppsControllerTest extends TestCase { $this->appManager = Server::get(IAppManager::class); $this->groupManager = Server::get(IGroupManager::class); $this->userSession = Server::get(IUserSession::class); + $this->appConfig = $this->createMock(IAppConfig::class); + $this->installer = $this->createMock(Installer::class); $request = $this->createMock(IRequest::class); $this->api = new AppsController( 'provisioning_api', $request, - $this->appManager + $this->appManager, + $this->installer, + $this->appConfig, ); } diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js index 2d2fd8a8f02..a58a88386d8 100644 --- a/apps/settings/l10n/fa.js +++ b/apps/settings/l10n/fa.js @@ -402,6 +402,7 @@ OC.L10N.register( "Headline" : "عنوان", "Organisation" : "سازمان", "Phone number" : "شماره تلفن", + "Pronouns" : "ضمایر", "Role" : "نقش", "Website" : "وب سایت", "Profile visibility" : "امکان دیده شدن پروفایل", @@ -471,6 +472,7 @@ OC.L10N.register( "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.", "Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.", "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.", + "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "برای اجرای این بررسی، باید مطمئن شوید که وبسرور شما میتواند به خودش متصل شود. بنابراین باید بتواند حداقل یکی از `trusted_domains` یا `overwrite.cli.url` خود را حل و به آن متصل شود. این خطا ممکن است نتیجه عدم تطابق DNS سمت سرور یا قانون فایروال خروجی باشد.", "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید", "Your biography" : "بیوگرافی شما", "You are using <strong>{usage}</strong>" : "فضای مورد استفاده: <strong>{usage}</strong>", diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json index acb5746def6..89a923794ff 100644 --- a/apps/settings/l10n/fa.json +++ b/apps/settings/l10n/fa.json @@ -400,6 +400,7 @@ "Headline" : "عنوان", "Organisation" : "سازمان", "Phone number" : "شماره تلفن", + "Pronouns" : "ضمایر", "Role" : "نقش", "Website" : "وب سایت", "Profile visibility" : "امکان دیده شدن پروفایل", @@ -469,6 +470,7 @@ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.", "Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.", "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.", + "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "برای اجرای این بررسی، باید مطمئن شوید که وبسرور شما میتواند به خودش متصل شود. بنابراین باید بتواند حداقل یکی از `trusted_domains` یا `overwrite.cli.url` خود را حل و به آن متصل شود. این خطا ممکن است نتیجه عدم تطابق DNS سمت سرور یا قانون فایروال خروجی باشد.", "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید", "Your biography" : "بیوگرافی شما", "You are using <strong>{usage}</strong>" : "فضای مورد استفاده: <strong>{usage}</strong>", diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js index dd838928d3c..34e3ac3ba9c 100644 --- a/apps/settings/l10n/fi.js +++ b/apps/settings/l10n/fi.js @@ -122,6 +122,7 @@ OC.L10N.register( "Internet connectivity" : "Internet-yhdistettävyys", "Disabled" : "Pois käytöstä", "The old server-side-encryption format is enabled. We recommend disabling this." : "Vanha palvelinpuolen salausmenetelmä on käytössä. Suosittelemme sen ottamista pois käytöstä.", + "Logging level" : "Lokitustaso", "Maintenance window start" : "Huoltoikkunan alku", "Memcache" : "Memcache", "You are not using MySQL" : "Et käytä MySQL:ää", @@ -209,11 +210,13 @@ OC.L10N.register( "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "_%n app has an update available_::_%n apps have an update available_" : ["%n sovelluksella on päivitys saatavilla","%n sovelluksella on päivitys saatavilla"], "_Update_::_Update all_" : ["Päivitä","Päivitä kaikki"], + "Failed to load groups" : "Ryhmien lataaminen epäonnistui", "Failed to create group" : "Ryhmän luonti epäonnistui", "Creating group…" : "Luodaan ryhmä…", "Create group" : "Luo ryhmä", "Group name" : "Ryhmän nimi", "Please enter a valid group name" : "Kirjoita kelvollinen ryhmän nimi", + "Search groups…" : "Etsi ryhmiä…", "Loading groups…" : "Ladataan ryhmiä…", "Nothing to show" : "Ei mitään näytettävää", "Loading" : "Ladataan", @@ -227,6 +230,7 @@ OC.L10N.register( "Type" : "Tyyppi", "Display Name" : "Näyttönimi", "Learn more" : "Opi lisää", + "Environment variables" : "Ympäristömuuttujat", "Confirm" : "Vahvista", "Cancel" : "Peru", "Description" : "Kuvaus", @@ -258,6 +262,8 @@ OC.L10N.register( "{productName} Talk for iOS" : "{productName} Talk iOS:lle", "{productName} Talk for Android" : "{productName} Talk Androidille", "This session" : "Tämä istunto", + "{client} - {version} ({system})" : "{client} - {version} ({system})", + "{client} - {version}" : "{client} - {version}", "Device name" : "Laitteen nimi", "Save new name" : "Tallenna uusi nimi", "Marked for remote wipe" : "Merkitty etätyhjennettäväksi", @@ -286,6 +292,7 @@ OC.L10N.register( "Use system cron service to call the cron.php file every 5 minutes." : "Käytä järjestelmän cron-palvelua cron.php-skriptin suorittamiseen 5 minuutin välein", "Last job execution ran {time}. Something seems wrong." : "Viimeisimmän työn suoritus {time}. Jokin vaikuttaa olevan pielessä.", "Last job ran {relativeTime}." : "Viimeisin työ ajettiin {relativeTime}.", + "AJAX" : "AJAX", "Cron (Recommended)" : "Cron (suositeltu)", "Unable to update profile default setting" : "Profiilin oletusasetuksen päivittäminen ei onnistunut", "Profile" : "Profiili", @@ -302,9 +309,11 @@ OC.L10N.register( "Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.", "This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?", + "Failed to delete group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui", "Please confirm the group removal" : "Vahvista ryhmän poistaminen", "Submit" : "Lähetä", "Rename group" : "Nimeä ryhmä uudelleen", + "Delete group" : "Poista ryhmä", "Current password" : "Nykyinen salasana", "New password" : "Uusi salasana", "Change password" : "Vaihda salasana", @@ -400,7 +409,9 @@ OC.L10N.register( "Account deletion" : "Tilin poistaminen", "Delete {userid}'s account" : "Poista käyttäjän {userid} tili", "Display name was successfully changed" : "Näyttönimi vaihdettiin onnistuneesti", + "Password can't be empty" : "Salasana ei voi olla tyhjä", "Password was successfully changed" : "Salasana vaihdettiin onnistuneesti", + "Email can't be empty" : "Sähköposti ei voi olla tyhjä", "Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti", "Welcome mail sent!" : "Tervetuloviesti lähetetty!", "Loading account …" : "Ladataan tiliä…", @@ -439,6 +450,8 @@ OC.L10N.register( "Loading categories" : "Ladataan luokkia", "Developer documentation ↗" : "Kehittäjien dokumentaatio ↗", "Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}", + "Version {version}" : "Versio {version}", + "All accounts" : "Kaikki tilit", "Admins" : "Ylläpitäjät", "Account group: {group}" : "Tiliryhmä: {group}", "Account management" : "Tilihallinta", @@ -459,6 +472,7 @@ OC.L10N.register( "Website" : "Verkkosivusto", "Profile visibility" : "Profiilin näkyvyys", "Locale" : "Aluekohtainen asetus", + "First day of week" : "Viikon ensimmäinen päivä", "Your apps" : "Sovelluksesi", "Active apps" : "Aktiiviset sovellukset", "Disabled apps" : "Käytöstä poistetut sovellukset", diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json index 6ce239de38d..d78cfde1069 100644 --- a/apps/settings/l10n/fi.json +++ b/apps/settings/l10n/fi.json @@ -120,6 +120,7 @@ "Internet connectivity" : "Internet-yhdistettävyys", "Disabled" : "Pois käytöstä", "The old server-side-encryption format is enabled. We recommend disabling this." : "Vanha palvelinpuolen salausmenetelmä on käytössä. Suosittelemme sen ottamista pois käytöstä.", + "Logging level" : "Lokitustaso", "Maintenance window start" : "Huoltoikkunan alku", "Memcache" : "Memcache", "You are not using MySQL" : "Et käytä MySQL:ää", @@ -207,11 +208,13 @@ "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "_%n app has an update available_::_%n apps have an update available_" : ["%n sovelluksella on päivitys saatavilla","%n sovelluksella on päivitys saatavilla"], "_Update_::_Update all_" : ["Päivitä","Päivitä kaikki"], + "Failed to load groups" : "Ryhmien lataaminen epäonnistui", "Failed to create group" : "Ryhmän luonti epäonnistui", "Creating group…" : "Luodaan ryhmä…", "Create group" : "Luo ryhmä", "Group name" : "Ryhmän nimi", "Please enter a valid group name" : "Kirjoita kelvollinen ryhmän nimi", + "Search groups…" : "Etsi ryhmiä…", "Loading groups…" : "Ladataan ryhmiä…", "Nothing to show" : "Ei mitään näytettävää", "Loading" : "Ladataan", @@ -225,6 +228,7 @@ "Type" : "Tyyppi", "Display Name" : "Näyttönimi", "Learn more" : "Opi lisää", + "Environment variables" : "Ympäristömuuttujat", "Confirm" : "Vahvista", "Cancel" : "Peru", "Description" : "Kuvaus", @@ -256,6 +260,8 @@ "{productName} Talk for iOS" : "{productName} Talk iOS:lle", "{productName} Talk for Android" : "{productName} Talk Androidille", "This session" : "Tämä istunto", + "{client} - {version} ({system})" : "{client} - {version} ({system})", + "{client} - {version}" : "{client} - {version}", "Device name" : "Laitteen nimi", "Save new name" : "Tallenna uusi nimi", "Marked for remote wipe" : "Merkitty etätyhjennettäväksi", @@ -284,6 +290,7 @@ "Use system cron service to call the cron.php file every 5 minutes." : "Käytä järjestelmän cron-palvelua cron.php-skriptin suorittamiseen 5 minuutin välein", "Last job execution ran {time}. Something seems wrong." : "Viimeisimmän työn suoritus {time}. Jokin vaikuttaa olevan pielessä.", "Last job ran {relativeTime}." : "Viimeisin työ ajettiin {relativeTime}.", + "AJAX" : "AJAX", "Cron (Recommended)" : "Cron (suositeltu)", "Unable to update profile default setting" : "Profiilin oletusasetuksen päivittäminen ei onnistunut", "Profile" : "Profiili", @@ -300,9 +307,11 @@ "Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.", "This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?", + "Failed to delete group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui", "Please confirm the group removal" : "Vahvista ryhmän poistaminen", "Submit" : "Lähetä", "Rename group" : "Nimeä ryhmä uudelleen", + "Delete group" : "Poista ryhmä", "Current password" : "Nykyinen salasana", "New password" : "Uusi salasana", "Change password" : "Vaihda salasana", @@ -398,7 +407,9 @@ "Account deletion" : "Tilin poistaminen", "Delete {userid}'s account" : "Poista käyttäjän {userid} tili", "Display name was successfully changed" : "Näyttönimi vaihdettiin onnistuneesti", + "Password can't be empty" : "Salasana ei voi olla tyhjä", "Password was successfully changed" : "Salasana vaihdettiin onnistuneesti", + "Email can't be empty" : "Sähköposti ei voi olla tyhjä", "Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti", "Welcome mail sent!" : "Tervetuloviesti lähetetty!", "Loading account …" : "Ladataan tiliä…", @@ -437,6 +448,8 @@ "Loading categories" : "Ladataan luokkia", "Developer documentation ↗" : "Kehittäjien dokumentaatio ↗", "Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}", + "Version {version}" : "Versio {version}", + "All accounts" : "Kaikki tilit", "Admins" : "Ylläpitäjät", "Account group: {group}" : "Tiliryhmä: {group}", "Account management" : "Tilihallinta", @@ -457,6 +470,7 @@ "Website" : "Verkkosivusto", "Profile visibility" : "Profiilin näkyvyys", "Locale" : "Aluekohtainen asetus", + "First day of week" : "Viikon ensimmäinen päivä", "Your apps" : "Sovelluksesi", "Active apps" : "Aktiiviset sovellukset", "Disabled apps" : "Käytöstä poistetut sovellukset", diff --git a/apps/settings/l10n/ga.js b/apps/settings/l10n/ga.js index 6459d2a0218..60d2ff22499 100644 --- a/apps/settings/l10n/ga.js +++ b/apps/settings/l10n/ga.js @@ -316,6 +316,7 @@ OC.L10N.register( "64-bit" : "64-giotán", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!", "Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna", + "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas."], "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."], "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."], "Temporary space available" : "Spás sealadach ar fáil", @@ -564,6 +565,7 @@ OC.L10N.register( "Unable to update profile default setting" : "Ní féidir socrú réamhshocraithe na próifíle a nuashonrú", "Profile" : "Próifíl", "Enable or disable profile by default for new accounts." : "Cumasaigh nó díchumasaigh próifíl de réir réamhshocraithe le haghaidh cuntas nua.", + "Password confirmation is required" : "Tá deimhniú pasfhocail ag teastáil", "Failed to save setting" : "Theip ar an socrú a shábháil", "{app}'s declarative setting field: {name}" : "Réimse socruithe dearbhaithe {app}'s: {name}", "Unable to update server side encryption config" : "Ní féidir an chumraíocht chriptiúcháin ar thaobh an fhreastalaí a nuashonrú", @@ -586,9 +588,12 @@ OC.L10N.register( "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.", "Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.", "This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?", + "Failed to delete group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a scriosadh", "Please confirm the group removal" : "Deimhnigh baint an ghrúpa", + "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a scriosadh. NÍ scriosfar na cuntais.", "Submit" : "Cuir isteach", "Rename group" : "Athainmnigh an grúpa", + "Delete group" : "Scrios grúpa", "Current password" : "Pasfhocal reatha", "New password" : "Focal Faire Nua", "Change password" : "Athraigh do phasfhocal", diff --git a/apps/settings/l10n/ga.json b/apps/settings/l10n/ga.json index da9d8291ba6..5610c8bacb4 100644 --- a/apps/settings/l10n/ga.json +++ b/apps/settings/l10n/ga.json @@ -314,6 +314,7 @@ "64-bit" : "64-giotán", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!", "Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna", + "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas."], "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."], "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."], "Temporary space available" : "Spás sealadach ar fáil", @@ -562,6 +563,7 @@ "Unable to update profile default setting" : "Ní féidir socrú réamhshocraithe na próifíle a nuashonrú", "Profile" : "Próifíl", "Enable or disable profile by default for new accounts." : "Cumasaigh nó díchumasaigh próifíl de réir réamhshocraithe le haghaidh cuntas nua.", + "Password confirmation is required" : "Tá deimhniú pasfhocail ag teastáil", "Failed to save setting" : "Theip ar an socrú a shábháil", "{app}'s declarative setting field: {name}" : "Réimse socruithe dearbhaithe {app}'s: {name}", "Unable to update server side encryption config" : "Ní féidir an chumraíocht chriptiúcháin ar thaobh an fhreastalaí a nuashonrú", @@ -584,9 +586,12 @@ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.", "Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.", "This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?", + "Failed to delete group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a scriosadh", "Please confirm the group removal" : "Deimhnigh baint an ghrúpa", + "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a scriosadh. NÍ scriosfar na cuntais.", "Submit" : "Cuir isteach", "Rename group" : "Athainmnigh an grúpa", + "Delete group" : "Scrios grúpa", "Current password" : "Pasfhocal reatha", "New password" : "Focal Faire Nua", "Change password" : "Athraigh do phasfhocal", diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index 81751a36bd0..470368174ef 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -293,6 +293,8 @@ OC.L10N.register( "Enforce password protection" : "Wymuszaj zabezpieczenie hasłem", "Exclude groups from password requirements" : "Wyklucz grupy z wymagań dotyczących haseł", "Exclude groups from creating link shares" : "Wyklucz grupy z tworzenia udostępnień linków", + "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Udostępnienia z niestandardowymi tokenami będą nadal dostępne po wyłączeniu tego ustawienia", + "Shares with guessable tokens may be accessed easily" : "Dostęp do udostępnień z tokenami, które można zgadywać, jest łatwy", "Limit sharing based on groups" : "Ogranicz udostępnianie w oparciu o grupy", "Allow sharing for everyone (default)" : "Zezwalaj wszystkim na udostępnianie (domyślnie)", "Exclude some groups from sharing" : "Wyklucz niektóre grupy z udostępniania", @@ -311,7 +313,7 @@ OC.L10N.register( "Set default expiration date for shares via link or mail" : "Ustaw domyślną datę wygaśnięcia udostępnień za pośrednictwem linku lub poczty", "Default expiration time of shares in days" : "Domyślny czas wygaśnięcia udostępnień w dniach", "Privacy settings for sharing" : "Ustawienia prywatności dotyczące udostępniania", - "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwól na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwól na dostęp do systemowej książki adresowej", + "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej", "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Jeśli automatyczne uzupełnianie \"ta sama grupa\" i \"integracja numeru telefonu\" są włączone, wystarczy dopasowanie w jednej z nich, aby pokazać użytkownikowi.", "Restrict account name autocompletion and system address book access to users within the same groups" : "Ogranicz autouzupełnianie nazwy konta i dostęp do systemowej książki adresowej do użytkowników w tych samych grupach", "Restrict account name autocompletion to users based on phone number integration" : "Ogranicz automatyczne uzupełnianie nazwy konta do użytkowników w oparciu o integrację numeru telefonu", @@ -692,7 +694,7 @@ OC.L10N.register( "Deploy and Enable" : "Wdróż i włącz", "Download and enable" : "Pobierz i włącz", "Disable" : "Wyłącz", - "Allow untested app" : "Zezwól na nietestowane aplikacje", + "Allow untested app" : "Zezwalaj na nietestowane aplikacje", "The app will be downloaded from the App Store" : "Aplikacja zostanie pobrana ze sklepu z aplikacjami", "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta aplikacja jest niezgodna z wersją Nextcloud. Przy dalszej kontynuacji, możesz pozwolić na zainstalowanie tej aplikacji. Pamiętaj, że aplikacja może nie działać zgodnie z oczekiwaniami.", "Unknown" : "Nieznany", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index 975d96f7654..4ae48245ad9 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -291,6 +291,8 @@ "Enforce password protection" : "Wymuszaj zabezpieczenie hasłem", "Exclude groups from password requirements" : "Wyklucz grupy z wymagań dotyczących haseł", "Exclude groups from creating link shares" : "Wyklucz grupy z tworzenia udostępnień linków", + "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Udostępnienia z niestandardowymi tokenami będą nadal dostępne po wyłączeniu tego ustawienia", + "Shares with guessable tokens may be accessed easily" : "Dostęp do udostępnień z tokenami, które można zgadywać, jest łatwy", "Limit sharing based on groups" : "Ogranicz udostępnianie w oparciu o grupy", "Allow sharing for everyone (default)" : "Zezwalaj wszystkim na udostępnianie (domyślnie)", "Exclude some groups from sharing" : "Wyklucz niektóre grupy z udostępniania", @@ -309,7 +311,7 @@ "Set default expiration date for shares via link or mail" : "Ustaw domyślną datę wygaśnięcia udostępnień za pośrednictwem linku lub poczty", "Default expiration time of shares in days" : "Domyślny czas wygaśnięcia udostępnień w dniach", "Privacy settings for sharing" : "Ustawienia prywatności dotyczące udostępniania", - "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwól na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwól na dostęp do systemowej książki adresowej", + "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej", "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Jeśli automatyczne uzupełnianie \"ta sama grupa\" i \"integracja numeru telefonu\" są włączone, wystarczy dopasowanie w jednej z nich, aby pokazać użytkownikowi.", "Restrict account name autocompletion and system address book access to users within the same groups" : "Ogranicz autouzupełnianie nazwy konta i dostęp do systemowej książki adresowej do użytkowników w tych samych grupach", "Restrict account name autocompletion to users based on phone number integration" : "Ogranicz automatyczne uzupełnianie nazwy konta do użytkowników w oparciu o integrację numeru telefonu", @@ -690,7 +692,7 @@ "Deploy and Enable" : "Wdróż i włącz", "Download and enable" : "Pobierz i włącz", "Disable" : "Wyłącz", - "Allow untested app" : "Zezwól na nietestowane aplikacje", + "Allow untested app" : "Zezwalaj na nietestowane aplikacje", "The app will be downloaded from the App Store" : "Aplikacja zostanie pobrana ze sklepu z aplikacjami", "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta aplikacja jest niezgodna z wersją Nextcloud. Przy dalszej kontynuacji, możesz pozwolić na zainstalowanie tej aplikacji. Pamiętaj, że aplikacja może nie działać zgodnie z oczekiwaniami.", "Unknown" : "Nieznany", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index f1308a79a80..be2c6795126 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -2,7 +2,7 @@ OC.L10N.register( "settings", { "Private" : "Kişisel", - "Only visible to people matched via phone number integration through Talk on mobile" : "Yalnızca mobil aygıt üzerinde Konuş uygulaması telefon numarası bütünleştirmesi ile eşleşen kişiler görebilir", + "Only visible to people matched via phone number integration through Talk on mobile" : "Yalnızca mobil aygıt üzerinde Talk uygulaması telefon numarası bütünleştirmesi ile eşleşen kişiler görebilir", "Local" : "Yerel", "Only visible to people on this instance and guests" : "Yalnızca bu kopyadaki kişiler ve konuklar görebilir", "Federated" : "Birleşik", @@ -73,7 +73,7 @@ OC.L10N.register( "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posta gönderilirken bir sorun çıktı. Lütfen ayarlarınızı gözden geçirin. (Hata: %s)", "You need to set your account email before being able to send test emails. Go to %s for that." : "Sınama e-postaları göndermeden önce hesap e-postanızı ayarlamalısınız. Bunun için %s bölümüne gidin.", "Recently active" : "Son kullanılanlar", - "Disabled accounts" : "Kullanımdan kaldırılmış hesaplar", + "Disabled accounts" : "Devre dışı hesaplar", "Invalid account" : "Hesap geçersiz", "Invalid mail address" : "E-posta adresi geçersiz", "Settings saved" : "Ayarlar kaydedildi", @@ -164,24 +164,24 @@ OC.L10N.register( "Database missing indices" : "Veri tabanında dizinler eksik", "Missing indices:" : "Dizinler eksik:", "\"%s\" in table \"%s\"" : "\"%s\", \"%s\" tablosunda", - "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.", + "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veritabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.", "Database missing primary keys" : "Veri tabanında birincil anahtarlar eksik", "Missing primary key on table \"%s\"." : "\"%s\" tablosunda birincil dizin anahtarı eksik.", "The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "Veri tabanında bazı birincil dizin anahtarları eksik. Büyük tablolara birincil anahtarların eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik birincil anahtarları el ile eklemek için \"occ db:add-missing-primary-keys\" komutunu yürütün.", - "Database pending bigint migrations" : "Veri tabanı büyük tam sayı dönüşümleri bekliyor", + "Database pending bigint migrations" : "Veritabanı büyük tam sayı dönüşümleri bekliyor", "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline." : "Veri tabanında büyük tam sayıya dönüştürülecek bazı sütunlar eksik. Sütun türlerini büyük tablolara dönüştürme işlemi uzun sürebileceğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken bekleyen değişiklikleri el ile uygulamak için \"occ db:convert-filecache-bigint\" komutunu yürütün. Bu işlem yapılırken Nextcloud kopyası çevrim dışı olur.", "Debug mode" : "Hata ayıklama kipi", - "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında kullanıma alın, üretim ortamlarında kullanmayın.", - "Debug mode is disabled." : "Hata ayıklama kipi kullanımdan kaldırıldı.", + "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında etkinleştirin, üretim ortamlarında kullanmayın.", + "Debug mode is disabled." : "Hata ayıklama kipi devre dışı bırakıldı.", "Default phone region" : "Varsayılan telefon alan kodu", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Kurulumunuz için bir varsayılan telefon bölgesi ayarlanmamış. Bu bölge telefon numaralarının bir ülke kodu belirtilmeden doğrulanmasını sağlar. Telefon numaralarının ülke kodu olmadan yazılabilmesini istiyorsanız, yapılandırma dosyasına \"default_phone_region\" seçeneğini ekleyerek ilgili ISO 3166-1 bölge kodunu yazın.", "Email test" : "E-posta sınaması", - "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından kullanımdan kaldırılmış \"%s\".", + "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından devre dışı bırakılmış \"%s\".", "Email test was successfully sent" : "E-posta sınaması gönderildi", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "E-posta sunucusu yapılandırmanızı henüz ayarlamadınız veya doğrulamadınız. Ayarları yapmak için \"Temel ayarlar\" bölümüne gidin. Ardından, ayarlarınızı doğrulamak için formun altındaki \"E-posta gönder\" düğmesine tıklayın.", "Transactional File Locking" : "İşlemsel dosya kilidi", - "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.", - "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veri tabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.", + "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi devre dışı bırakılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veritabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.", "Forwarded for headers" : "Üst bilgi yönlendirmesi", "Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "\"trusted_proxies\" ayarınız düzgün yapılmamış. Bu bir dizi olmalıdır.", "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation." : "\"Trusted_proxies\" ayarınız doğru şekilde yapılmamış. İsteğe bağlı olarak CIDR gösterimindeki aralıkla birlikte bir IP adresi aralığı olmalıdır.", @@ -195,7 +195,7 @@ OC.L10N.register( "Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Kopyanız güvenli olmayan adresler üretiyor. Kopyanıza HTTPS üzerinden erişiyorsanız, bu durum genellikle bir ters vekil sunucunun arkasında bulunmanızdan ve Nextcloud `overwrite*` yapılandırma değerlerinin doğru olarak ayarlanmamış olmasından kaynaklanır.", "You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Kopyanıza güvenli bir bağlantı üzerinden erişiyorsunuz ve kopyanız güvenli adresler oluşturuyor.", "Internet connectivity" : "İnternet bağlantısı", - "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kullanımdan kaldırılmış.", + "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında devre dışı bırakılmış.", "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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", "JavaScript modules support" : "JavaScript modülleri desteği", "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript desteği denetlenemedi. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.", @@ -203,8 +203,8 @@ OC.L10N.register( "JavaScript source map support" : "JavaScript kaynak haritası desteği", "Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise." : "Site sunucunuz `.js.map` dosyalarını sunacak şekilde ayarlanmamış. Bu dosyalar olmadan, JavaScript kaynak haritaları düzgün çalışmaz. Bu durum ortaya çıkabilecek sorunların giderilmesini ve hata ayıklamasını zorlaştırır.", "Old server-side-encryption" : "Eski sunucu tarafı şifreleme", - "Disabled" : "Kullanımdan kaldırılmış", - "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi kullanıma alınmış. Bu seçeneği kullanımdan kaldırmanız önerilir.", + "Disabled" : "Devre Dışı", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi etkinleştirilmiş. Bu seçeneği devre dışı bırakmanız önerilir.", "Logging level" : "Günlük kaydı düzeyi", "The %1$s configuration option must be a valid integer value." : "%1$s yapılandırma seçeneği geçerli bir tam sayı olmalıdır.", "The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Günlük kaydı hata ayıklama düzeyine ayarlanmış. Hata ayıklama düzeyini yalnızca bulmanız gereken bir sorununuz olduğunda kullanın ve ardından daha az ayrıntılı bir düzeye döndürün. Bu düzey çok fazla bilgi kaydeder ve sunucunuzun başarımını etkileyebilir.", @@ -223,11 +223,11 @@ OC.L10N.register( "One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations." : "Bir veya birkaç mimetype aktarımı var. Bazen belirli dosya türlerini daha iyi işlemek için yeni mimetype seçenekleri eklenir. Büyük kopyalarda mimetype aktarımları uzun zaman alır. Bu nedenle aktarım, yükseltmeler sırasında otomatik olarak yapılmaz. Bu durumda aktarımları gerçekleştirmek için `occ maintenance:repair --include-expensive` komutunu kullanın.", "MySQL row format" : "MySQL satır biçimi", "You are not using MySQL" : "MySQL kullanmıyorsunuz", - "None of your tables use ROW_FORMAT=Compressed" : "Hiç bir tablonuzda ROW_FORMAT=Compressed kullanılmıyor", - "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veri tabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.", + "None of your tables use ROW_FORMAT=Compressed" : "Hiçbir tablonuzda ROW_FORMAT=Compressed kullanılmıyor", + "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veritabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.", "MySQL Unicode support" : "MySQL Unikod desteği", - "MySQL is used as database and does support 4-byte characters" : "Veri tabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor", - "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." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin kullanıma alınması önerilir.", + "MySQL is used as database and does support 4-byte characters" : "Veritabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor", + "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." : "Veritabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir.", "OCS provider resolving" : "OCS hizmet sağlayıcısı çözümleniyor", "Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Site sunucunuzun OCM ve OCS hizmet sağlayıcı adreslerini doğru şekilde çözümleyip çözümlemediği denetlenemedi.", "Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update." : "Site sunucunuz %1$s adresini doğru olarak çözümleyecek şekilde yapılandırılmamış.\nBu sorun genellikle site sunucusu yapılandırmasının bu klasörü doğrudan aktaracak şekilde güncellenmemiş olmamasından kaynaklanır.\nLütfen kendi yapılandırmanızı, Apache için uygulama ile gelen \".htaccess\" dosyasındaki rewrite komutları ile ya da Nginx için belgeler bölümünde bulunan ayarlar ile karşılaştırın.\nNginx üzerinde genellikle \"location ~\" ile başlayan satırların güncellenmesi gerekir.", @@ -242,7 +242,7 @@ OC.L10N.register( "PHP configuration option \"default_charset\" should be UTF-8" : "PHP \"default_charset\" yapılandırma seçeneği UTF-8 olmalı", "PHP set_time_limit" : "PHP set_time_limit", "The function is available." : "Özellik kullanılabilir.", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin kullanıma alınması önemle önerilir.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin etkinleştirilmesi önemle önerilir.", "Freetype" : "Freetype", "Supported" : "Destekleniyor", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP kurulumunuzda FreeType desteği yok. Bu durum profil görsellerinin ve ayarlar bölümünün bozuk görüntülenmesine neden olur.", @@ -264,14 +264,14 @@ OC.L10N.register( "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir:\n%s", "PHP opcache" : "PHP opcache", "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.", - "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanımdan kaldırılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.", - "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanımdan kaldırılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.", + "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache devre dışı bırakılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.", + "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache devre dışı bırakılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.", "OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache olması gerektiği gibi çalışmıyor, opcache_get_status() işlevi false değerini döndürüyor. Lütfen yapılandırmayı denetleyin.", "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.max_accelerated_files\" uygulamanız önerilir.", "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.memory_consumption\" uygulamanız önerilir.", "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\"." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.interned_strings_buffer\" uygulamanız önerilir.", - "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache kullanıma alındığında Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.", - "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kullanımdan kaldırmak için bu ayarı kaldırmanız önemle önerilir.", + "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache etkinleştirildiğinde Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache etkinleştirildiğinde, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", "Checking from CLI, OPcache checks have been skipped." : "Komut satırından denetleniyor, OPcache denetimleri atlanmış.", "The PHP OPcache module is not properly configured. %s." : "PHP OPcache modülü doğru yapılandırılmamış. %s.", "Correctly configured" : "Doğru yapılandırılmış", @@ -279,7 +279,7 @@ OC.L10N.register( "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %1$s kullanıyorsunuz. PHP %2$s son olarak Nextcloud %3$s sürümünde destekleniyor. Nextcloud %4$s için en az PHP %5$s gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.", "You are currently running PHP %s." : "Şu anda PHP %s kullanıyorsunuz.", "PHP \"output_buffering\" option" : "PHP \"output_buffering\" seçeneği", - "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kullanımdan kaldırılmalıdır", + "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği devre dışı bırakılmalıdır", "Push service" : "Anında bildirim hizmeti", "Valid enterprise license" : "Geçerli Enterprise lisansı", "Free push service" : "Ücretsiz anında bildirim hizmeti", @@ -288,7 +288,7 @@ OC.L10N.register( "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP tarafında uygun bir rastgelelik kaynağı bulunamadı. Güvenlik nedeniyle kesinlikle önerilir.", "Secure" : "Güvenli", "Configuration file access rights" : "Yapılandırma dosyasının erişim izinleri", - "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." : "Salt okunur yapılandırma kullanıma alınmış. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.", + "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." : "Salt okunur yapılandırma etkinleştirilmiş. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.", "Nextcloud configuration file is writable" : "Nextcloud yapılandırma dosyası yazılabilir", "Scheduling objects table size" : "Zamanlama nesneler tablosu boyutu", "You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "Zamanlama nesneleri tablosunda %s üzerinde satır var. Lütfen büyük onarım işlerini occ maintenance:repair --include-expensive komutu ile yapın", @@ -305,26 +305,26 @@ OC.L10N.register( "Could not check that your web server serves security headers correctly. Please check manually." : "Site sunucunuzun güvenlik üst bilgilerini doğru şekilde sunup sunmadığı denetlenemedi. Lütfen el ile denetleyin.", "Could not check that your web server serves security headers correctly, unable to query `%s`" : "Site sunucunuzun güvenlik üst bilgilerini doğru şekilde sunup sunmadığı denetlenemedi. `%s` sorgulanamadı.", "Your server is correctly configured to send security headers." : "Sunucunuz, güvenlik üst bilgilerini göndermek üzere doğru şekilde yapılandırılmış.", - "Database version" : "Veri tabanı sürümü", + "Database version" : "Veritabanı sürümü", "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB 10.3 sürümü bulundu. Bu sürüm ömrünün sonuna geldi ve yalnızca Ubuntu 20.04 sürümünün bir parçası. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %1$s ile %2$s arasında olması önerilir.", "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %2$s ile %3$s arasında olması önerilir.", "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MySQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MySQL sürümünün %2$s ile %3$s arasında olması önerilir.", "PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün %2$s ile %3$s arasında olması önerilir.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".", - "Unknown database platform" : "Veri tabanı platformu bilinmiyor", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veritabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veritabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".", + "Unknown database platform" : "Veritabanı platformu bilinmiyor", "Architecture" : "Mimari", "64-bit" : "64-bit", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin!", "Temporary space available" : "Geçici alan kullanılabilir", "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Geçici PHP yolu denetlenirken sorun çıktı. Doğru şekilde bir klasöre ayarlanmamış. Döndürülen değer: %s", - "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanımdan kaldırıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.", + "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi devre dışı bırakıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.", "Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Geçici PHP yolunun kullanılabilir disk alanı denetlenirken sorun çıktı veya boş disk alanı döndürülmedi. Geçici yol: %s", "- %.1f GiB available in %s (PHP temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (PHP geçici klasörü)", "- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (Nextcloud geçici klasörü)", "Temporary directory is correctly configured:\n%s" : "Geçici klasör doğru şekilde yapılandırılmış:\n%s", "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s" : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposunu kullanıyor ve geçici klasörde yeterli alan var.\n%s", "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 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s" : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposu kullanıyor. Yüklenen dosyalar geçici olarak sunucuya kaydedildiğinden PHP geçici klasöründe 50 GiB boş alan bulunması önerilir. Bu durumu düzeltmek için php.ini içindeki geçici klasör yolunu değiştirin ya da kullanılan geçici klasörde daha fazla yer açın.\nGeçici yoldaki kullanılabilir alanın denetlenmesi önerilen 50 GiB yerine %.1f GiB sonucu verdi. Yol: %s", - "Database transaction isolation level" : "Veri tabanı işlemsel yalıtım düzeyi", + "Database transaction isolation level" : "Veritabanı işlemsel yalıtım düzeyi", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Veri tabanınız \"READ COMMITTED\" işlem yalıtma düzeyinde çalışmıyor. Bu durum aynı anda birden çok işlem yapıldığında sorun çıkmasına yol açabilir.", "Was not able to get transaction isolation level: %s" : "İşlemsel yalıtım düzeyi alınamadı: %s", ".well-known URLs" : ".well-known adresler", @@ -336,21 +336,21 @@ OC.L10N.register( "Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "{extension} yükleme desteği denetlenemedi. Lütfen site sunucunuzun `.{extension}` dosyalarını sunup sunmadığını el ile denetleyin.", "Your web server is not properly set up to deliver .{extension} files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustment to also deliver .{extension} files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Site sunucunuz .{extension} dosyalarını aktaracak şekilde yapılandırılmamış. Bu sık karşılaşılan bir Nginx yapılandırma sorunudur. Nextcloud 15 için .{extension} dosyalarını da aktaracak ek bir ayar yapılması gereklidir. Kullandığınız Nginx yapılandırmasını belgeler bölümünde bulunan önerilen yapılandırma dosyası ile karşılaştırın.", "Profile information" : "Profil bilgileri", - "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanıma alınmış diğer bilgiler", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde etkinleştirilmiş diğer bilgiler", "Nextcloud settings" : "Nextcloud ayarları", "Unified task processing" : "Birleştirilmiş görev işleme", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", "Task:" : "Görev:", - "Enable" : "Kullanıma al", - "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiç birinde görev işleme özelliği yok", + "Enable" : "Etkinleştir", + "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiçbirinde görev işleme özelliği yok", "Machine translation" : "Makine çevirisi", "Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment." : "Makine çevirisi, farklı uygulamalardan sağlanabilir. Buradan, şu anda kurulu makine çevirisi uygulamalarının önceliğini belirtebilirsiniz.", "Image generation" : "Görsel oluşturma", "Image generation can be implemented by different apps. Here you can set which app should be used." : "Görsel oluşturma özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", - "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiç birinde görsel oluşturma özelliği yok", + "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiçbirinde görsel oluşturma özelliği yok", "Text processing" : "Metin işleme", "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Metin işleme özelliği farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", - "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiç birinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok", + "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiçbirinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok", "Here you can decide which group can access certain sections of the administration settings." : "Hangi yönetici ayarlarına hangi grubun erişebileceğini bu bölümden belirleyebilirsiniz.", "Unable to modify setting" : "Ayar değiştirilemedi", "None" : "Yok", @@ -390,7 +390,7 @@ OC.L10N.register( "Default expiration time of shares in days" : "Paylaşımların gün olarak varsayılan geçerlilik süresi", "Privacy settings for sharing" : "Paylaşım için gizlilik ayarı", "Allow account name autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde hesap adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin", - "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" kullanıma alınmış ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.", + "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" etkinleştirilmişse, kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.", "Restrict account name autocompletion and system address book access to users within the same groups" : "Hesap adının otomatik tamamlanması ve sistem adres defterine erişim aynı gruplardaki kullanıcılarla kısıtlansın", "Restrict account name autocompletion to users based on phone number integration" : "Hesap adlarının telefon numarası bütünleştirmesi eşleşmelerine göre otomatik olarak tamamlanması kısıtlansın", "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tam ad ya da e-posta adresi yazılırken otomatik olarak tamamlanabilsin (aynı grupta olma ya da telefon defteri eşleşmesi yok sayılarak)", @@ -417,7 +417,7 @@ OC.L10N.register( "Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Öne çıkarılmış uygulamalar topluluk tarafından geliştirilmiştir. Temel işlevleri yerine getirirler ve üretim ortamında kullanılabilirler.", "Community rating: {score}/5" : "Topluluk değerlendirmesi: {score}/5", "Disable all" : "Tümünü kullanımdan kaldır", - "Download and enable all" : "İndir ve tümünü kullanıma al", + "Download and enable all" : "İndir ve tümünü etkinleştir", "All apps are up-to-date." : "Tüm uygulamalar güncel", "Icon" : "Simge", "Name" : "Ad", @@ -511,8 +511,8 @@ OC.L10N.register( "Google Chrome for Android" : "Android için Google Chrome", "{productName} iOS app" : "{productName} iOS uygulaması", "{productName} Android app" : "{productName} Android uygulaması", - "{productName} Talk for iOS" : "{productName} iOS için Konuş", - "{productName} Talk for Android" : "{productName} Android için Konuş", + "{productName} Talk for iOS" : "iOS için {productName} Talk", + "{productName} Talk for Android" : "Android için {productName} Talk", "Sync client" : "İstemciyi eşitle", "This session" : "Bu oturum", "{client} - {version} ({system})" : "{client} - {version} ({system})", @@ -560,30 +560,30 @@ OC.L10N.register( "Cron (Recommended)" : "Cron (önerilen)", "Unable to update profile default setting" : "Profil varsayılan ayarı güncellenemedi", "Profile" : "Profil", - "Enable or disable profile by default for new accounts." : "Bu seçenek kullanıma alındığında, profil yeni hesaplar için varsayılan olur.", + "Enable or disable profile by default for new accounts." : "Yeni hesaplar için varsayılan olarak profilleri etkinleştir veya devre dışı bırak.", "Password confirmation is required" : "Parola onayının yazılması zorunludur", "Failed to save setting" : "Ayar kaydedilemedi", "{app}'s declarative setting field: {name}" : "{app} uygulamasının bildirdiği ayar alanı: {name}", "Unable to update server side encryption config" : "Sunucu tarafı şifreleme yapılandırması güncellenemedi", "Server-side encryption" : "Sunucu tarafı şifreleme", - "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa kullanıma alın.", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa etkinleştirin.", "To encrypt all existing files run this OCC command:" : "Var olan tüm dosyaları şifrelemek için şu OCC komutunu kullanın:", "Enable server-side encryption" : "Sunucu tarafı şifreleme kullanılsın", "Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Sunucu tarafındaki şifreleme yalnızca OCC ile kapatılabilir. Lütfen belgelere bakın.", - "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü kullanıma alın.", + "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü etkinleştirin.", "Select default encryption module:" : "Varsayılan şifreleme modülünü seçin:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü kullanıma alıp {command} komutunu yürütün", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü etkinleştirip {command} komutunu yürütün", "Cancel encryption" : "Şifrelemeyi kapat", "Enable encryption" : "Şifreleme kullanılsın", "Confirm enabling encryption" : "Şifrelemeyi açmayı onayla", - "Please read carefully before activating server-side encryption:" : "Lütfen sunucu tarafında şifrelemeyi kullanıma almadan önce dikkatlice okuyun:", - "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme kullanıma alındığında, kullanıma alma anından sonra sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kullanımdan kaldırılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.", + "Please read carefully before activating server-side encryption:" : "Sunucu tarafında şifrelemeyi etkinleştirmeden önce lütfen dikkatlice okuyun:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme etkinleştirildiğinde, bu andan itibaren sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra devre dışı bırakılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.", "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Varsayılan olarak tüm kopya için bir ana anahtar oluşturulur. Lütfen bu erişim düzeyinin gereksinimlerinize uygun olup olmadığını kontrol edin.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Şifreleme tek başına sistemin güvenliğini garanti etmez. Lütfen şifreleme uygulamasının nasıl çalıştığı ve desteklenen kullanım şekilleri hakkında ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "Be aware that encryption always increases the file size." : "Şifreleme işleminin dosya boyutlarını büyüteceğini unutmayın.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Verilerinizi düzenli yedekleyin ve şifreleme kullanıyorsanız şifreleme anahtarlarınızın da verilerinizle birlikte yedeklendiğinden emin olun.", "Refer to the admin documentation on how to manually also encrypt existing files." : "Var olan dosyaların el ile nasıl şifreleneceğini öğrenmek için yönetici belgelerine bakın.", - "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi kullanıma almak istiyor musunuz?", + "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi etkinleştirmek istiyor musunuz?", "Please confirm the group removal" : "Grubu silme işlemini onaylayın", "Submit" : "Gönder", "Rename group" : "Grubu yeniden adlandır", @@ -643,8 +643,8 @@ OC.L10N.register( "Your organisation" : "Kuruluşunuz", "Your phone number" : "Telefon numaranız", "Edit your Profile visibility" : "Profilinizin görünürlüğü değiştirin", - "Unable to update profile enabled state" : "Profilin kullanıma alınma durumu güncellenemedi", - "Enable profile" : "Profili kullanıma al", + "Unable to update profile enabled state" : "Profilin etkinleştirme durumu güncellenemedi", + "Enable profile" : "Profili etkinleştir", "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.", "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi", "she/her" : "hanım", @@ -668,7 +668,7 @@ OC.L10N.register( "Default language" : "Varsayılan dil", "Common languages" : "Sık kullanılan diller", "Other languages" : "Diğer diller", - "Password change is disabled because the master key is disabled" : "Ana anahtar kullanımdan kaldırıldığından parola değişikliği kullanımdan kaldırıldı.", + "Password change is disabled because the master key is disabled" : "Ana anahtar devre dışı bırakıldığından parola değişikliği devre dışı bırakıldı.", "No accounts" : "Henüz bir hesap yok", "Loading accounts …" : "Hesaplar yükleniyor...", "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Hesap listesi. Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe diğer hesaplar görüntülenecek.", @@ -710,7 +710,7 @@ OC.L10N.register( "Delete account" : "Hesabı sil", "Disconnect all devices and delete local data" : "Tüm aygıtların bağlantısını kes ve yerel verileri sil", "Disable account" : "Hesabı kullanımdan kaldır", - "Enable account" : "Hesabı kullanıma al", + "Enable account" : "Hesabı etkinleştir", "Resend welcome email" : "Karşılama e-postasını yeniden gönder", "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Aygıt kaybedildiğinde ya da kuruluş ile çalışma sona erdirildiğinde, bu özellik {userid} ile ilişkili tüm aygıtlardaki Nextcloud verilerini silebilir. Bu özellik yalnızca aygıtların İnternet bağlantısı olduğunda kullanılabilir.", "Remote wipe of devices" : "Uzaktan aygıt temizleme", @@ -770,7 +770,7 @@ OC.L10N.register( "The following devices are configured for your account:" : "Hesabınız için şu aygıtlar yapılandırılmış:", "Your browser does not support WebAuthn." : "Tarayıcınız WebAuthn desteklemiyor.", "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Yönetici olarak paylaşma davranışı ile ilgili ince ayarları yapabilirsiniz. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", - "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını kullanıma almalısınız.", + "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını etkinleştirmelisiniz.", "App Store" : "Uygulama mağazası", "Loading app list" : "Uygulama listesi yükleniyor", "Loading categories" : "Kategoriler yükleniyor", @@ -806,8 +806,8 @@ OC.L10N.register( "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Hesaba özel verilerin arama sunucusunda yayınlanmasına izin verilmediğinden kullanılamıyor. Herhangi bir sorunuz varsa sistem yönetimi ile görüşün.", "Discover" : "Keşfedin", "Your apps" : "Uygulamalarınız", - "Active apps" : "Kullanıma alınmış uygulamalar", - "Disabled apps" : "Kullanımdan kaldırılmış uygulamalar", + "Active apps" : "Etkin uygulamalar", + "Disabled apps" : "Devre dışı uygulamalar", "Updates" : "Güncellemeler", "App bundles" : "Uygulama Paketleri", "Featured apps" : "Öne çıkarılmış uygulamalar", @@ -819,8 +819,8 @@ OC.L10N.register( "{progress}% Deploying …" : "Dağıtılıyor %{progress}…", "{progress}% Initializing …" : "Hazırlanıyor %{progress}…", "Health checking" : "Sağlık denetimi", - "Deploy and Enable" : "Dağıt ve kullanıma al", - "Download and enable" : "İndir ve kullanıma al", + "Deploy and Enable" : "Dağıt ve Etkinleştir", + "Download and enable" : "İndir ve etkinleştir", "Disable" : "Kullanımdan kaldır", "Allow untested app" : "Denenmemiş uygulamalar kullanılabilsin", "The app will be downloaded from the App Store" : "Uygulama uygulama mağazasından indirilecek", @@ -831,9 +831,9 @@ OC.L10N.register( "Could not register device: Probably already registered" : "Aygıt kaydedilemedi: Büyük olasılıkla zaten kayıtlı", "Could not register device" : "Aygıt kaydedilemedi", "An error occurred during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.", - "The app has been enabled but needs to be updated." : "Uygulama kullanıma alındı ancak güncellenmesi gerekiyor.", - "Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından kullanıma alınamaz", - "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama kullanıma alındı fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.", + "The app has been enabled but needs to be updated." : "Uygulama etkinleştirildi ancak güncellenmesi gerekiyor.", + "Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama etkinleştirildi fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.", "Do you really want to wipe your data from this device?" : "Bu aygıt üzerindeki verilerinizi silmek istediğinize emin misiniz?", "Confirm wipe" : "Silmeyi onayla", "Could not delete the app token" : "Uygulama kodu silinemedi", @@ -884,11 +884,11 @@ OC.L10N.register( "Subscribe to our newsletter" : "Bültenimize abone olun", "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Bu Nextcloud topluluk sürümü desteklenmiyor ve anlık bildirimler kullanılamıyor.", "Use a second factor besides your password to increase security for your account." : "Parolanızın yanında ikinci bir doğrulama kullanarak hesabınızın güvenliğini arttırabilirsiniz.", - "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı kullanıma almadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.", + "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı etkinleştirmeden önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.", "Logged in account must be a subadmin" : "Oturum açmış hesap bir alt yönetici olmalıdır", "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.", "File locking" : "Dosya kilitleme", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini kullanıma alın.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi devre dışı. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini etkinleştirin.", "The PHP memory limit is below the recommended value of %s." : "PHP bellek sınırı önerilen %s değerinden küçük.", "for WebAuthn passwordless login" : "WebAuthn parolasız oturum açma için", "for WebAuthn passwordless login, and SFTP storage" : "WebAuthn parolasız oturum açma ve SFTP depolama alanı için", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index 740c010553e..eecac8fc2a3 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -1,6 +1,6 @@ { "translations": { "Private" : "Kişisel", - "Only visible to people matched via phone number integration through Talk on mobile" : "Yalnızca mobil aygıt üzerinde Konuş uygulaması telefon numarası bütünleştirmesi ile eşleşen kişiler görebilir", + "Only visible to people matched via phone number integration through Talk on mobile" : "Yalnızca mobil aygıt üzerinde Talk uygulaması telefon numarası bütünleştirmesi ile eşleşen kişiler görebilir", "Local" : "Yerel", "Only visible to people on this instance and guests" : "Yalnızca bu kopyadaki kişiler ve konuklar görebilir", "Federated" : "Birleşik", @@ -71,7 +71,7 @@ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posta gönderilirken bir sorun çıktı. Lütfen ayarlarınızı gözden geçirin. (Hata: %s)", "You need to set your account email before being able to send test emails. Go to %s for that." : "Sınama e-postaları göndermeden önce hesap e-postanızı ayarlamalısınız. Bunun için %s bölümüne gidin.", "Recently active" : "Son kullanılanlar", - "Disabled accounts" : "Kullanımdan kaldırılmış hesaplar", + "Disabled accounts" : "Devre dışı hesaplar", "Invalid account" : "Hesap geçersiz", "Invalid mail address" : "E-posta adresi geçersiz", "Settings saved" : "Ayarlar kaydedildi", @@ -162,24 +162,24 @@ "Database missing indices" : "Veri tabanında dizinler eksik", "Missing indices:" : "Dizinler eksik:", "\"%s\" in table \"%s\"" : "\"%s\", \"%s\" tablosunda", - "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.", + "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veritabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.", "Database missing primary keys" : "Veri tabanında birincil anahtarlar eksik", "Missing primary key on table \"%s\"." : "\"%s\" tablosunda birincil dizin anahtarı eksik.", "The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "Veri tabanında bazı birincil dizin anahtarları eksik. Büyük tablolara birincil anahtarların eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik birincil anahtarları el ile eklemek için \"occ db:add-missing-primary-keys\" komutunu yürütün.", - "Database pending bigint migrations" : "Veri tabanı büyük tam sayı dönüşümleri bekliyor", + "Database pending bigint migrations" : "Veritabanı büyük tam sayı dönüşümleri bekliyor", "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline." : "Veri tabanında büyük tam sayıya dönüştürülecek bazı sütunlar eksik. Sütun türlerini büyük tablolara dönüştürme işlemi uzun sürebileceğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken bekleyen değişiklikleri el ile uygulamak için \"occ db:convert-filecache-bigint\" komutunu yürütün. Bu işlem yapılırken Nextcloud kopyası çevrim dışı olur.", "Debug mode" : "Hata ayıklama kipi", - "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında kullanıma alın, üretim ortamlarında kullanmayın.", - "Debug mode is disabled." : "Hata ayıklama kipi kullanımdan kaldırıldı.", + "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında etkinleştirin, üretim ortamlarında kullanmayın.", + "Debug mode is disabled." : "Hata ayıklama kipi devre dışı bırakıldı.", "Default phone region" : "Varsayılan telefon alan kodu", "Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Kurulumunuz için bir varsayılan telefon bölgesi ayarlanmamış. Bu bölge telefon numaralarının bir ülke kodu belirtilmeden doğrulanmasını sağlar. Telefon numaralarının ülke kodu olmadan yazılabilmesini istiyorsanız, yapılandırma dosyasına \"default_phone_region\" seçeneğini ekleyerek ilgili ISO 3166-1 bölge kodunu yazın.", "Email test" : "E-posta sınaması", - "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından kullanımdan kaldırılmış \"%s\".", + "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından devre dışı bırakılmış \"%s\".", "Email test was successfully sent" : "E-posta sınaması gönderildi", "You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "E-posta sunucusu yapılandırmanızı henüz ayarlamadınız veya doğrulamadınız. Ayarları yapmak için \"Temel ayarlar\" bölümüne gidin. Ardından, ayarlarınızı doğrulamak için formun altındaki \"E-posta gönder\" düğmesine tıklayın.", "Transactional File Locking" : "İşlemsel dosya kilidi", - "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.", - "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veri tabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.", + "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi devre dışı bırakılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.", + "The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veritabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.", "Forwarded for headers" : "Üst bilgi yönlendirmesi", "Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "\"trusted_proxies\" ayarınız düzgün yapılmamış. Bu bir dizi olmalıdır.", "Your \"trusted_proxies\" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation." : "\"Trusted_proxies\" ayarınız doğru şekilde yapılmamış. İsteğe bağlı olarak CIDR gösterimindeki aralıkla birlikte bir IP adresi aralığı olmalıdır.", @@ -193,7 +193,7 @@ "Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Kopyanız güvenli olmayan adresler üretiyor. Kopyanıza HTTPS üzerinden erişiyorsanız, bu durum genellikle bir ters vekil sunucunun arkasında bulunmanızdan ve Nextcloud `overwrite*` yapılandırma değerlerinin doğru olarak ayarlanmamış olmasından kaynaklanır.", "You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Kopyanıza güvenli bir bağlantı üzerinden erişiyorsunuz ve kopyanız güvenli adresler oluşturuyor.", "Internet connectivity" : "İnternet bağlantısı", - "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kullanımdan kaldırılmış.", + "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında devre dışı bırakılmış.", "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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", "JavaScript modules support" : "JavaScript modülleri desteği", "Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript desteği denetlenemedi. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.", @@ -201,8 +201,8 @@ "JavaScript source map support" : "JavaScript kaynak haritası desteği", "Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise." : "Site sunucunuz `.js.map` dosyalarını sunacak şekilde ayarlanmamış. Bu dosyalar olmadan, JavaScript kaynak haritaları düzgün çalışmaz. Bu durum ortaya çıkabilecek sorunların giderilmesini ve hata ayıklamasını zorlaştırır.", "Old server-side-encryption" : "Eski sunucu tarafı şifreleme", - "Disabled" : "Kullanımdan kaldırılmış", - "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi kullanıma alınmış. Bu seçeneği kullanımdan kaldırmanız önerilir.", + "Disabled" : "Devre Dışı", + "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi etkinleştirilmiş. Bu seçeneği devre dışı bırakmanız önerilir.", "Logging level" : "Günlük kaydı düzeyi", "The %1$s configuration option must be a valid integer value." : "%1$s yapılandırma seçeneği geçerli bir tam sayı olmalıdır.", "The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Günlük kaydı hata ayıklama düzeyine ayarlanmış. Hata ayıklama düzeyini yalnızca bulmanız gereken bir sorununuz olduğunda kullanın ve ardından daha az ayrıntılı bir düzeye döndürün. Bu düzey çok fazla bilgi kaydeder ve sunucunuzun başarımını etkileyebilir.", @@ -221,11 +221,11 @@ "One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations." : "Bir veya birkaç mimetype aktarımı var. Bazen belirli dosya türlerini daha iyi işlemek için yeni mimetype seçenekleri eklenir. Büyük kopyalarda mimetype aktarımları uzun zaman alır. Bu nedenle aktarım, yükseltmeler sırasında otomatik olarak yapılmaz. Bu durumda aktarımları gerçekleştirmek için `occ maintenance:repair --include-expensive` komutunu kullanın.", "MySQL row format" : "MySQL satır biçimi", "You are not using MySQL" : "MySQL kullanmıyorsunuz", - "None of your tables use ROW_FORMAT=Compressed" : "Hiç bir tablonuzda ROW_FORMAT=Compressed kullanılmıyor", - "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veri tabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.", + "None of your tables use ROW_FORMAT=Compressed" : "Hiçbir tablonuzda ROW_FORMAT=Compressed kullanılmıyor", + "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veritabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.", "MySQL Unicode support" : "MySQL Unikod desteği", - "MySQL is used as database and does support 4-byte characters" : "Veri tabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor", - "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." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin kullanıma alınması önerilir.", + "MySQL is used as database and does support 4-byte characters" : "Veritabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor", + "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." : "Veritabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir.", "OCS provider resolving" : "OCS hizmet sağlayıcısı çözümleniyor", "Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Site sunucunuzun OCM ve OCS hizmet sağlayıcı adreslerini doğru şekilde çözümleyip çözümlemediği denetlenemedi.", "Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update." : "Site sunucunuz %1$s adresini doğru olarak çözümleyecek şekilde yapılandırılmamış.\nBu sorun genellikle site sunucusu yapılandırmasının bu klasörü doğrudan aktaracak şekilde güncellenmemiş olmamasından kaynaklanır.\nLütfen kendi yapılandırmanızı, Apache için uygulama ile gelen \".htaccess\" dosyasındaki rewrite komutları ile ya da Nginx için belgeler bölümünde bulunan ayarlar ile karşılaştırın.\nNginx üzerinde genellikle \"location ~\" ile başlayan satırların güncellenmesi gerekir.", @@ -240,7 +240,7 @@ "PHP configuration option \"default_charset\" should be UTF-8" : "PHP \"default_charset\" yapılandırma seçeneği UTF-8 olmalı", "PHP set_time_limit" : "PHP set_time_limit", "The function is available." : "Özellik kullanılabilir.", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin kullanıma alınması önemle önerilir.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin etkinleştirilmesi önemle önerilir.", "Freetype" : "Freetype", "Supported" : "Destekleniyor", "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP kurulumunuzda FreeType desteği yok. Bu durum profil görsellerinin ve ayarlar bölümünün bozuk görüntülenmesine neden olur.", @@ -262,14 +262,14 @@ "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir:\n%s", "PHP opcache" : "PHP opcache", "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.", - "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanımdan kaldırılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.", - "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanımdan kaldırılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.", + "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache devre dışı bırakılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.", + "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache devre dışı bırakılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.", "OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache olması gerektiği gibi çalışmıyor, opcache_get_status() işlevi false değerini döndürüyor. Lütfen yapılandırmayı denetleyin.", "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.max_accelerated_files\" uygulamanız önerilir.", "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.memory_consumption\" uygulamanız önerilir.", "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\"." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.interned_strings_buffer\" uygulamanız önerilir.", - "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache kullanıma alındığında Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.", - "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kullanımdan kaldırmak için bu ayarı kaldırmanız önemle önerilir.", + "OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache etkinleştirildiğinde Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache etkinleştirildiğinde, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", "Checking from CLI, OPcache checks have been skipped." : "Komut satırından denetleniyor, OPcache denetimleri atlanmış.", "The PHP OPcache module is not properly configured. %s." : "PHP OPcache modülü doğru yapılandırılmamış. %s.", "Correctly configured" : "Doğru yapılandırılmış", @@ -277,7 +277,7 @@ "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %1$s kullanıyorsunuz. PHP %2$s son olarak Nextcloud %3$s sürümünde destekleniyor. Nextcloud %4$s için en az PHP %5$s gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.", "You are currently running PHP %s." : "Şu anda PHP %s kullanıyorsunuz.", "PHP \"output_buffering\" option" : "PHP \"output_buffering\" seçeneği", - "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kullanımdan kaldırılmalıdır", + "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği devre dışı bırakılmalıdır", "Push service" : "Anında bildirim hizmeti", "Valid enterprise license" : "Geçerli Enterprise lisansı", "Free push service" : "Ücretsiz anında bildirim hizmeti", @@ -286,7 +286,7 @@ "No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP tarafında uygun bir rastgelelik kaynağı bulunamadı. Güvenlik nedeniyle kesinlikle önerilir.", "Secure" : "Güvenli", "Configuration file access rights" : "Yapılandırma dosyasının erişim izinleri", - "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." : "Salt okunur yapılandırma kullanıma alınmış. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.", + "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." : "Salt okunur yapılandırma etkinleştirilmiş. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.", "Nextcloud configuration file is writable" : "Nextcloud yapılandırma dosyası yazılabilir", "Scheduling objects table size" : "Zamanlama nesneler tablosu boyutu", "You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "Zamanlama nesneleri tablosunda %s üzerinde satır var. Lütfen büyük onarım işlerini occ maintenance:repair --include-expensive komutu ile yapın", @@ -303,26 +303,26 @@ "Could not check that your web server serves security headers correctly. Please check manually." : "Site sunucunuzun güvenlik üst bilgilerini doğru şekilde sunup sunmadığı denetlenemedi. Lütfen el ile denetleyin.", "Could not check that your web server serves security headers correctly, unable to query `%s`" : "Site sunucunuzun güvenlik üst bilgilerini doğru şekilde sunup sunmadığı denetlenemedi. `%s` sorgulanamadı.", "Your server is correctly configured to send security headers." : "Sunucunuz, güvenlik üst bilgilerini göndermek üzere doğru şekilde yapılandırılmış.", - "Database version" : "Veri tabanı sürümü", + "Database version" : "Veritabanı sürümü", "MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB 10.3 sürümü bulundu. Bu sürüm ömrünün sonuna geldi ve yalnızca Ubuntu 20.04 sürümünün bir parçası. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %1$s ile %2$s arasında olması önerilir.", "MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %2$s ile %3$s arasında olması önerilir.", "MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MySQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MySQL sürümünün %2$s ile %3$s arasında olması önerilir.", "PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün %2$s ile %3$s arasında olması önerilir.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".", - "Unknown database platform" : "Veri tabanı platformu bilinmiyor", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veritabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veritabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".", + "Unknown database platform" : "Veritabanı platformu bilinmiyor", "Architecture" : "Mimari", "64-bit" : "64-bit", "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin!", "Temporary space available" : "Geçici alan kullanılabilir", "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Geçici PHP yolu denetlenirken sorun çıktı. Doğru şekilde bir klasöre ayarlanmamış. Döndürülen değer: %s", - "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanımdan kaldırıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.", + "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi devre dışı bırakıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.", "Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Geçici PHP yolunun kullanılabilir disk alanı denetlenirken sorun çıktı veya boş disk alanı döndürülmedi. Geçici yol: %s", "- %.1f GiB available in %s (PHP temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (PHP geçici klasörü)", "- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (Nextcloud geçici klasörü)", "Temporary directory is correctly configured:\n%s" : "Geçici klasör doğru şekilde yapılandırılmış:\n%s", "This instance uses an S3 based object store as primary storage, and has enough space in the temporary directory.\n%s" : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposunu kullanıyor ve geçici klasörde yeterli alan var.\n%s", "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 GiB of free space available in the temp directory of PHP. To improve this please change the temporary directory in the php.ini or make more space available in that path. \nChecking the available space in the temporary path resulted in %.1f GiB instead of the recommended 50 GiB. Path: %s" : "Bu kopya, birincil depolama olarak S3 tabanlı bir nesne deposu kullanıyor. Yüklenen dosyalar geçici olarak sunucuya kaydedildiğinden PHP geçici klasöründe 50 GiB boş alan bulunması önerilir. Bu durumu düzeltmek için php.ini içindeki geçici klasör yolunu değiştirin ya da kullanılan geçici klasörde daha fazla yer açın.\nGeçici yoldaki kullanılabilir alanın denetlenmesi önerilen 50 GiB yerine %.1f GiB sonucu verdi. Yol: %s", - "Database transaction isolation level" : "Veri tabanı işlemsel yalıtım düzeyi", + "Database transaction isolation level" : "Veritabanı işlemsel yalıtım düzeyi", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Veri tabanınız \"READ COMMITTED\" işlem yalıtma düzeyinde çalışmıyor. Bu durum aynı anda birden çok işlem yapıldığında sorun çıkmasına yol açabilir.", "Was not able to get transaction isolation level: %s" : "İşlemsel yalıtım düzeyi alınamadı: %s", ".well-known URLs" : ".well-known adresler", @@ -334,21 +334,21 @@ "Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "{extension} yükleme desteği denetlenemedi. Lütfen site sunucunuzun `.{extension}` dosyalarını sunup sunmadığını el ile denetleyin.", "Your web server is not properly set up to deliver .{extension} files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustment to also deliver .{extension} files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Site sunucunuz .{extension} dosyalarını aktaracak şekilde yapılandırılmamış. Bu sık karşılaşılan bir Nginx yapılandırma sorunudur. Nextcloud 15 için .{extension} dosyalarını da aktaracak ek bir ayar yapılması gereklidir. Kullandığınız Nginx yapılandırmasını belgeler bölümünde bulunan önerilen yapılandırma dosyası ile karşılaştırın.", "Profile information" : "Profil bilgileri", - "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanıma alınmış diğer bilgiler", + "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde etkinleştirilmiş diğer bilgiler", "Nextcloud settings" : "Nextcloud ayarları", "Unified task processing" : "Birleştirilmiş görev işleme", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", "Task:" : "Görev:", - "Enable" : "Kullanıma al", - "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiç birinde görev işleme özelliği yok", + "Enable" : "Etkinleştir", + "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiçbirinde görev işleme özelliği yok", "Machine translation" : "Makine çevirisi", "Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment." : "Makine çevirisi, farklı uygulamalardan sağlanabilir. Buradan, şu anda kurulu makine çevirisi uygulamalarının önceliğini belirtebilirsiniz.", "Image generation" : "Görsel oluşturma", "Image generation can be implemented by different apps. Here you can set which app should be used." : "Görsel oluşturma özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", - "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiç birinde görsel oluşturma özelliği yok", + "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiçbirinde görsel oluşturma özelliği yok", "Text processing" : "Metin işleme", "Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Metin işleme özelliği farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", - "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiç birinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok", + "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiçbirinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok", "Here you can decide which group can access certain sections of the administration settings." : "Hangi yönetici ayarlarına hangi grubun erişebileceğini bu bölümden belirleyebilirsiniz.", "Unable to modify setting" : "Ayar değiştirilemedi", "None" : "Yok", @@ -388,7 +388,7 @@ "Default expiration time of shares in days" : "Paylaşımların gün olarak varsayılan geçerlilik süresi", "Privacy settings for sharing" : "Paylaşım için gizlilik ayarı", "Allow account name autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde hesap adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin", - "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" kullanıma alınmış ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.", + "If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" etkinleştirilmişse, kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.", "Restrict account name autocompletion and system address book access to users within the same groups" : "Hesap adının otomatik tamamlanması ve sistem adres defterine erişim aynı gruplardaki kullanıcılarla kısıtlansın", "Restrict account name autocompletion to users based on phone number integration" : "Hesap adlarının telefon numarası bütünleştirmesi eşleşmelerine göre otomatik olarak tamamlanması kısıtlansın", "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tam ad ya da e-posta adresi yazılırken otomatik olarak tamamlanabilsin (aynı grupta olma ya da telefon defteri eşleşmesi yok sayılarak)", @@ -415,7 +415,7 @@ "Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Öne çıkarılmış uygulamalar topluluk tarafından geliştirilmiştir. Temel işlevleri yerine getirirler ve üretim ortamında kullanılabilirler.", "Community rating: {score}/5" : "Topluluk değerlendirmesi: {score}/5", "Disable all" : "Tümünü kullanımdan kaldır", - "Download and enable all" : "İndir ve tümünü kullanıma al", + "Download and enable all" : "İndir ve tümünü etkinleştir", "All apps are up-to-date." : "Tüm uygulamalar güncel", "Icon" : "Simge", "Name" : "Ad", @@ -509,8 +509,8 @@ "Google Chrome for Android" : "Android için Google Chrome", "{productName} iOS app" : "{productName} iOS uygulaması", "{productName} Android app" : "{productName} Android uygulaması", - "{productName} Talk for iOS" : "{productName} iOS için Konuş", - "{productName} Talk for Android" : "{productName} Android için Konuş", + "{productName} Talk for iOS" : "iOS için {productName} Talk", + "{productName} Talk for Android" : "Android için {productName} Talk", "Sync client" : "İstemciyi eşitle", "This session" : "Bu oturum", "{client} - {version} ({system})" : "{client} - {version} ({system})", @@ -558,30 +558,30 @@ "Cron (Recommended)" : "Cron (önerilen)", "Unable to update profile default setting" : "Profil varsayılan ayarı güncellenemedi", "Profile" : "Profil", - "Enable or disable profile by default for new accounts." : "Bu seçenek kullanıma alındığında, profil yeni hesaplar için varsayılan olur.", + "Enable or disable profile by default for new accounts." : "Yeni hesaplar için varsayılan olarak profilleri etkinleştir veya devre dışı bırak.", "Password confirmation is required" : "Parola onayının yazılması zorunludur", "Failed to save setting" : "Ayar kaydedilemedi", "{app}'s declarative setting field: {name}" : "{app} uygulamasının bildirdiği ayar alanı: {name}", "Unable to update server side encryption config" : "Sunucu tarafı şifreleme yapılandırması güncellenemedi", "Server-side encryption" : "Sunucu tarafı şifreleme", - "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa kullanıma alın.", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa etkinleştirin.", "To encrypt all existing files run this OCC command:" : "Var olan tüm dosyaları şifrelemek için şu OCC komutunu kullanın:", "Enable server-side encryption" : "Sunucu tarafı şifreleme kullanılsın", "Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Sunucu tarafındaki şifreleme yalnızca OCC ile kapatılabilir. Lütfen belgelere bakın.", - "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü kullanıma alın.", + "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü etkinleştirin.", "Select default encryption module:" : "Varsayılan şifreleme modülünü seçin:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü kullanıma alıp {command} komutunu yürütün", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü etkinleştirip {command} komutunu yürütün", "Cancel encryption" : "Şifrelemeyi kapat", "Enable encryption" : "Şifreleme kullanılsın", "Confirm enabling encryption" : "Şifrelemeyi açmayı onayla", - "Please read carefully before activating server-side encryption:" : "Lütfen sunucu tarafında şifrelemeyi kullanıma almadan önce dikkatlice okuyun:", - "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme kullanıma alındığında, kullanıma alma anından sonra sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kullanımdan kaldırılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.", + "Please read carefully before activating server-side encryption:" : "Sunucu tarafında şifrelemeyi etkinleştirmeden önce lütfen dikkatlice okuyun:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme etkinleştirildiğinde, bu andan itibaren sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra devre dışı bırakılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.", "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Varsayılan olarak tüm kopya için bir ana anahtar oluşturulur. Lütfen bu erişim düzeyinin gereksinimlerinize uygun olup olmadığını kontrol edin.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Şifreleme tek başına sistemin güvenliğini garanti etmez. Lütfen şifreleme uygulamasının nasıl çalıştığı ve desteklenen kullanım şekilleri hakkında ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "Be aware that encryption always increases the file size." : "Şifreleme işleminin dosya boyutlarını büyüteceğini unutmayın.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Verilerinizi düzenli yedekleyin ve şifreleme kullanıyorsanız şifreleme anahtarlarınızın da verilerinizle birlikte yedeklendiğinden emin olun.", "Refer to the admin documentation on how to manually also encrypt existing files." : "Var olan dosyaların el ile nasıl şifreleneceğini öğrenmek için yönetici belgelerine bakın.", - "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi kullanıma almak istiyor musunuz?", + "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi etkinleştirmek istiyor musunuz?", "Please confirm the group removal" : "Grubu silme işlemini onaylayın", "Submit" : "Gönder", "Rename group" : "Grubu yeniden adlandır", @@ -641,8 +641,8 @@ "Your organisation" : "Kuruluşunuz", "Your phone number" : "Telefon numaranız", "Edit your Profile visibility" : "Profilinizin görünürlüğü değiştirin", - "Unable to update profile enabled state" : "Profilin kullanıma alınma durumu güncellenemedi", - "Enable profile" : "Profili kullanıma al", + "Unable to update profile enabled state" : "Profilin etkinleştirme durumu güncellenemedi", + "Enable profile" : "Profili etkinleştir", "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.", "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi", "she/her" : "hanım", @@ -666,7 +666,7 @@ "Default language" : "Varsayılan dil", "Common languages" : "Sık kullanılan diller", "Other languages" : "Diğer diller", - "Password change is disabled because the master key is disabled" : "Ana anahtar kullanımdan kaldırıldığından parola değişikliği kullanımdan kaldırıldı.", + "Password change is disabled because the master key is disabled" : "Ana anahtar devre dışı bırakıldığından parola değişikliği devre dışı bırakıldı.", "No accounts" : "Henüz bir hesap yok", "Loading accounts …" : "Hesaplar yükleniyor...", "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Hesap listesi. Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe diğer hesaplar görüntülenecek.", @@ -708,7 +708,7 @@ "Delete account" : "Hesabı sil", "Disconnect all devices and delete local data" : "Tüm aygıtların bağlantısını kes ve yerel verileri sil", "Disable account" : "Hesabı kullanımdan kaldır", - "Enable account" : "Hesabı kullanıma al", + "Enable account" : "Hesabı etkinleştir", "Resend welcome email" : "Karşılama e-postasını yeniden gönder", "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Aygıt kaybedildiğinde ya da kuruluş ile çalışma sona erdirildiğinde, bu özellik {userid} ile ilişkili tüm aygıtlardaki Nextcloud verilerini silebilir. Bu özellik yalnızca aygıtların İnternet bağlantısı olduğunda kullanılabilir.", "Remote wipe of devices" : "Uzaktan aygıt temizleme", @@ -768,7 +768,7 @@ "The following devices are configured for your account:" : "Hesabınız için şu aygıtlar yapılandırılmış:", "Your browser does not support WebAuthn." : "Tarayıcınız WebAuthn desteklemiyor.", "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Yönetici olarak paylaşma davranışı ile ilgili ince ayarları yapabilirsiniz. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", - "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını kullanıma almalısınız.", + "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını etkinleştirmelisiniz.", "App Store" : "Uygulama mağazası", "Loading app list" : "Uygulama listesi yükleniyor", "Loading categories" : "Kategoriler yükleniyor", @@ -804,8 +804,8 @@ "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Hesaba özel verilerin arama sunucusunda yayınlanmasına izin verilmediğinden kullanılamıyor. Herhangi bir sorunuz varsa sistem yönetimi ile görüşün.", "Discover" : "Keşfedin", "Your apps" : "Uygulamalarınız", - "Active apps" : "Kullanıma alınmış uygulamalar", - "Disabled apps" : "Kullanımdan kaldırılmış uygulamalar", + "Active apps" : "Etkin uygulamalar", + "Disabled apps" : "Devre dışı uygulamalar", "Updates" : "Güncellemeler", "App bundles" : "Uygulama Paketleri", "Featured apps" : "Öne çıkarılmış uygulamalar", @@ -817,8 +817,8 @@ "{progress}% Deploying …" : "Dağıtılıyor %{progress}…", "{progress}% Initializing …" : "Hazırlanıyor %{progress}…", "Health checking" : "Sağlık denetimi", - "Deploy and Enable" : "Dağıt ve kullanıma al", - "Download and enable" : "İndir ve kullanıma al", + "Deploy and Enable" : "Dağıt ve Etkinleştir", + "Download and enable" : "İndir ve etkinleştir", "Disable" : "Kullanımdan kaldır", "Allow untested app" : "Denenmemiş uygulamalar kullanılabilsin", "The app will be downloaded from the App Store" : "Uygulama uygulama mağazasından indirilecek", @@ -829,9 +829,9 @@ "Could not register device: Probably already registered" : "Aygıt kaydedilemedi: Büyük olasılıkla zaten kayıtlı", "Could not register device" : "Aygıt kaydedilemedi", "An error occurred during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.", - "The app has been enabled but needs to be updated." : "Uygulama kullanıma alındı ancak güncellenmesi gerekiyor.", - "Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından kullanıma alınamaz", - "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama kullanıma alındı fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.", + "The app has been enabled but needs to be updated." : "Uygulama etkinleştirildi ancak güncellenmesi gerekiyor.", + "Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama etkinleştirildi fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.", "Do you really want to wipe your data from this device?" : "Bu aygıt üzerindeki verilerinizi silmek istediğinize emin misiniz?", "Confirm wipe" : "Silmeyi onayla", "Could not delete the app token" : "Uygulama kodu silinemedi", @@ -882,11 +882,11 @@ "Subscribe to our newsletter" : "Bültenimize abone olun", "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Bu Nextcloud topluluk sürümü desteklenmiyor ve anlık bildirimler kullanılamıyor.", "Use a second factor besides your password to increase security for your account." : "Parolanızın yanında ikinci bir doğrulama kullanarak hesabınızın güvenliğini arttırabilirsiniz.", - "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı kullanıma almadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.", + "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı etkinleştirmeden önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.", "Logged in account must be a subadmin" : "Oturum açmış hesap bir alt yönetici olmalıdır", "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.", "File locking" : "Dosya kilitleme", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini kullanıma alın.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi devre dışı. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini etkinleştirin.", "The PHP memory limit is below the recommended value of %s." : "PHP bellek sınırı önerilen %s değerinden küçük.", "for WebAuthn passwordless login" : "WebAuthn parolasız oturum açma için", "for WebAuthn passwordless login, and SFTP storage" : "WebAuthn parolasız oturum açma ve SFTP depolama alanı için", diff --git a/apps/settings/src/components/AppNavigationGroupList.vue b/apps/settings/src/components/AppNavigationGroupList.vue index 5c648a17098..2be7cce2f8b 100644 --- a/apps/settings/src/components/AppNavigationGroupList.vue +++ b/apps/settings/src/components/AppNavigationGroupList.vue @@ -42,7 +42,7 @@ <NcAppNavigationList class="account-management__group-list" aria-describedby="group-list-desc" data-cy-users-settings-navigation-groups="custom"> - <GroupListItem v-for="group in userGroups" + <GroupListItem v-for="group in filteredGroups" :id="group.id" ref="groupListItems" :key="group.id" @@ -96,7 +96,11 @@ const selectedGroup = computed(() => route.params?.selectedGroup) /** Current active group - URL decoded */ const selectedGroupDecoded = computed(() => selectedGroup.value ? decodeURIComponent(selectedGroup.value) : null) /** All available groups */ -const groups = computed(() => store.getters.getSortedGroups) +const groups = computed(() => { + return isAdminOrDelegatedAdmin.value + ? store.getters.getSortedGroups + : store.getters.getSubAdminGroups +}) /** User groups */ const { userGroups } = useFormatGroups(groups) /** Server settings for current user */ @@ -119,6 +123,14 @@ const loadingGroups = ref(false) const offset = ref(0) /** Search query for groups */ const groupsSearchQuery = ref('') +const filteredGroups = computed(() => { + if (isAdminOrDelegatedAdmin.value) { + return userGroups.value + } + + const substring = groupsSearchQuery.value.toLowerCase() + return userGroups.value.filter(group => group.id.toLowerCase().search(substring) !== -1 || group.title.toLowerCase().search(substring) !== -1) +}) const groupListItems = ref([]) const lastGroupListItem = computed(() => { diff --git a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue index 8cdde6b7d9a..d039641ec72 100644 --- a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue +++ b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue @@ -155,6 +155,7 @@ export default { methods: { async updateProperty(value) { try { + this.hasError = false const responseData = await savePrimaryAccountProperty( this.name, value, @@ -180,10 +181,8 @@ export default { this.isSuccess = true setTimeout(() => { this.isSuccess = false }, 2000) } else { - this.$emit('update:value', this.initialValue) handleError(error, errorMessage) this.hasError = true - setTimeout(() => { this.hasError = false }, 2000) } }, }, diff --git a/apps/settings/src/components/Users/NewUserDialog.vue b/apps/settings/src/components/Users/NewUserDialog.vue index 19445bc187e..ef401b565fa 100644 --- a/apps/settings/src/components/Users/NewUserDialog.vue +++ b/apps/settings/src/components/Users/NewUserDialog.vue @@ -86,7 +86,7 @@ :input-label="t('settings', 'Admin of the following groups')" :placeholder="t('settings', 'Set account as admin for …')" :disabled="loading.groups || loading.all" - :options="subAdminsGroups" + :options="availableGroups" :close-on-select="false" :multiple="true" label="name" @@ -179,7 +179,6 @@ export default { data() { return { - availableGroups: [], possibleManagers: [], // TRANSLATORS This string describes a manager in the context of an organization managerInputLabel: t('settings', 'Manager'), @@ -210,9 +209,12 @@ export default { return this.$store.getters.getPasswordPolicyMinLength }, - subAdminsGroups() { - // data provided php side - return this.availableGroups.filter(group => group.id !== 'admin' && group.id !== '__nc_internal_recent' && group.id !== 'disabled') + availableGroups() { + const groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin) + ? this.$store.getters.getSortedGroups + : this.$store.getters.getSubAdminGroups + + return groups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled') }, languages() { @@ -236,13 +238,6 @@ export default { }, mounted() { - // admins also can assign the system groups - if (this.isAdmin || this.isDelegatedAdmin) { - this.availableGroups = this.$store.getters.getSortedGroups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled') - } else { - this.availableGroups = [...this.$store.getters.getSubAdminGroups] - } - this.$refs.username?.focus?.() }, @@ -281,7 +276,7 @@ export default { }, async searchGroups(query, toggleLoading) { - if (!this.isAdmin && !this.isDelegatedAdmin) { + if (!this.settings.isAdmin && !this.settings.isDelegatedAdmin) { // managers cannot search for groups return } @@ -297,7 +292,10 @@ export default { limit: 25, }) const groups = await this.promise - this.availableGroups = groups + // Populate store from server request + for (const group of groups) { + this.$store.commit('addGroup', group) + } } catch (error) { logger.error(t('settings', 'Failed to search groups'), { error }) } @@ -315,7 +313,6 @@ export default { this.loading.groups = true try { await this.$store.dispatch('addGroup', gid) - this.availableGroups.push({ id: gid, name: gid }) this.newUser.groups.push({ id: gid, name: gid }) } catch (error) { logger.error(t('settings', 'Failed to create group'), { error }) @@ -349,7 +346,7 @@ export default { const validQuota = OC.Util.computerFileSize(quota) if (validQuota !== null && validQuota >= 0) { // unify format output - quota = formatFileSize(parseFileSize(quota)) + quota = formatFileSize(parseFileSize(quota, true)) this.newUser.quota = { id: quota, label: quota } return this.newUser.quota } diff --git a/apps/settings/src/components/Users/UserRow.vue b/apps/settings/src/components/Users/UserRow.vue index ed63c2beb8f..d17d684efb4 100644 --- a/apps/settings/src/components/Users/UserRow.vue +++ b/apps/settings/src/components/Users/UserRow.vue @@ -411,6 +411,18 @@ export default { return encodeURIComponent(this.user.id + this.rand) }, + availableGroups() { + const groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin) + ? this.$store.getters.getSortedGroups + : this.$store.getters.getSubAdminGroups + + return groups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled') + }, + + availableSubAdminGroups() { + return this.availableGroups.filter(group => group.id !== 'admin') + }, + userGroupsLabels() { return this.userGroups .map(group => group.name ?? group.id) @@ -559,7 +571,11 @@ export default { this.loading.groupsDetails = true try { const groups = await loadUserGroups({ userId: this.user.id }) - this.availableGroups = this.availableGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup) + // Populate store from server request + for (const group of groups) { + this.$store.commit('addGroup', group) + } + this.selectedGroups = this.selectedGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup) } catch (error) { logger.error(t('settings', 'Failed to load groups with details'), { error }) } @@ -572,7 +588,11 @@ export default { this.loading.subAdminGroupsDetails = true try { const groups = await loadUserSubAdminGroups({ userId: this.user.id }) - this.availableSubAdminGroups = this.availableSubAdminGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup) + // Populate store from server request + for (const group of groups) { + this.$store.commit('addGroup', group) + } + this.selectedSubAdminGroups = this.selectedSubAdminGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup) } catch (error) { logger.error(t('settings', 'Failed to load sub admin groups with details'), { error }) } @@ -595,8 +615,10 @@ export default { limit: 25, }) const groups = await this.promise - this.availableGroups = groups - this.availableSubAdminGroups = groups.filter(group => group.id !== 'admin') + // Populate store from server request + for (const group of groups) { + this.$store.commit('addGroup', group) + } } catch (error) { logger.error(t('settings', 'Failed to search groups'), { error }) } @@ -757,8 +779,6 @@ export default { this.loading.groups = true try { await this.$store.dispatch('addGroup', gid) - this.availableGroups.push({ id: gid, name: gid }) - this.availableSubAdminGroups.push({ id: gid, name: gid }) const userid = this.user.id await this.$store.dispatch('addUserGroup', { userid, gid }) this.userGroups.push({ id: gid, name: gid }) diff --git a/apps/settings/src/composables/useGroupsNavigation.ts b/apps/settings/src/composables/useGroupsNavigation.ts index 6235088f944..d9f0637843b 100644 --- a/apps/settings/src/composables/useGroupsNavigation.ts +++ b/apps/settings/src/composables/useGroupsNavigation.ts @@ -17,14 +17,12 @@ function formatGroupMenu(group?: IGroup) { return null } - const item = { + return { id: group.id, title: group.name, - usercount: group.usercount, - count: Math.max(0, group.usercount - group.disabled), + usercount: group.usercount ?? 0, + count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)), } - - return item } export const useFormatGroups = (groups: Ref<IGroup[]>|ComputedRef<IGroup[]>) => { diff --git a/apps/settings/src/mixins/UserRowMixin.js b/apps/settings/src/mixins/UserRowMixin.js index 2cb69ff2e96..9e46d8e25d7 100644 --- a/apps/settings/src/mixins/UserRowMixin.js +++ b/apps/settings/src/mixins/UserRowMixin.js @@ -43,8 +43,8 @@ export default { }, data() { return { - availableGroups: this.user.groups.map(id => ({ id, name: id })), - availableSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })), + selectedGroups: this.user.groups.map(id => ({ id, name: id })), + selectedSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })), userGroups: this.user.groups.map(id => ({ id, name: id })), userSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })), } diff --git a/apps/sharebymail/l10n/fa.js b/apps/sharebymail/l10n/fa.js index aabadad2fb0..e9328c5b102 100644 --- a/apps/sharebymail/l10n/fa.js +++ b/apps/sharebymail/l10n/fa.js @@ -14,12 +14,18 @@ OC.L10N.register( "Password to access {file} was sent to {email}" : "رمز عبور برای دسترسی به {file} به {email} ارسال شد", "Password to access {file} was sent to you" : "رمز ورود برای دسترسی به {file} برای شما ارسال شد", "Share by mail" : "اشتراک از طریق پست", + "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراکگذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ما نمی توانیم رمز عبور ایجاد شده به صورت خودکار را برای شما ارسال کنیم. لطفاً یک آدرس ایمیل معتبر در تنظیمات شخصی خود تنظیم کنید و دوباره امتحان کنید.", "Failed to send share by email. Got an invalid email address" : "اشتراک از طریق ایمیل ارسال نشد. یک آدرس ایمیل نامعتبر دریافت کردم", "Failed to send share by email" : "ارسال اشتراک از طریق ایمیل انجام نشد", + "%1$s shared %2$s with you" : "%1$s %2$s را با شما به اشتراک گذاشت", + "Open %s" : "باز کردن %s", "%1$s via %2$s" : "%1$s از طریق %2$s", "It is protected with the following password:" : "با رمز عبور زیر محافظت می شود:", "This password will expire at %s" : "این رمز عبور در تاریخ منقضی می شود %s", + "%1$s shared %2$s with you and wants to add:" : "%1$s %2$s را با شما به اشتراک گذاشت و میخواهد اضافه کند:", + "%1$s shared %2$s with you and wants to add" : "%1$s %2$s را با شما به اشتراک گذاشت و میخواهد اضافه کند", + "%s added a note to a file shared with you" : "%s یک یادداشت به فایلی که با شما به اشتراک گذاشته شده است اضافه کرد", "This is the password:" : "این رمز عبور است:", "You can choose a different password at any time in the share dialog." : "می توانید در هر زمان و در گفتگوی اشتراک ، رمزعبور دیگری را انتخاب کنید.", "Could not find share" : "اشتراک یافت نشد", diff --git a/apps/sharebymail/l10n/fa.json b/apps/sharebymail/l10n/fa.json index e585745bdb2..4459f308770 100644 --- a/apps/sharebymail/l10n/fa.json +++ b/apps/sharebymail/l10n/fa.json @@ -12,12 +12,18 @@ "Password to access {file} was sent to {email}" : "رمز عبور برای دسترسی به {file} به {email} ارسال شد", "Password to access {file} was sent to you" : "رمز ورود برای دسترسی به {file} برای شما ارسال شد", "Share by mail" : "اشتراک از طریق پست", + "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراکگذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ما نمی توانیم رمز عبور ایجاد شده به صورت خودکار را برای شما ارسال کنیم. لطفاً یک آدرس ایمیل معتبر در تنظیمات شخصی خود تنظیم کنید و دوباره امتحان کنید.", "Failed to send share by email. Got an invalid email address" : "اشتراک از طریق ایمیل ارسال نشد. یک آدرس ایمیل نامعتبر دریافت کردم", "Failed to send share by email" : "ارسال اشتراک از طریق ایمیل انجام نشد", + "%1$s shared %2$s with you" : "%1$s %2$s را با شما به اشتراک گذاشت", + "Open %s" : "باز کردن %s", "%1$s via %2$s" : "%1$s از طریق %2$s", "It is protected with the following password:" : "با رمز عبور زیر محافظت می شود:", "This password will expire at %s" : "این رمز عبور در تاریخ منقضی می شود %s", + "%1$s shared %2$s with you and wants to add:" : "%1$s %2$s را با شما به اشتراک گذاشت و میخواهد اضافه کند:", + "%1$s shared %2$s with you and wants to add" : "%1$s %2$s را با شما به اشتراک گذاشت و میخواهد اضافه کند", + "%s added a note to a file shared with you" : "%s یک یادداشت به فایلی که با شما به اشتراک گذاشته شده است اضافه کرد", "This is the password:" : "این رمز عبور است:", "You can choose a different password at any time in the share dialog." : "می توانید در هر زمان و در گفتگوی اشتراک ، رمزعبور دیگری را انتخاب کنید.", "Could not find share" : "اشتراک یافت نشد", diff --git a/apps/systemtags/l10n/tr.js b/apps/systemtags/l10n/tr.js index 930e4ec2475..601490cb965 100644 --- a/apps/systemtags/l10n/tr.js +++ b/apps/systemtags/l10n/tr.js @@ -44,7 +44,7 @@ OC.L10N.register( "tagged %s" : "%s etiketli", "Collaborative tags" : "İş birlikli etiketler", "Collaborative tagging functionality which shares tags among people." : "Etiketlerin kişiler arasında paylaşılabilmesini sağlayan iş birlikli etiketleme özelliği.", - "Collaborative tagging functionality which shares tags among people. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "İş birlikli etiketler özelliği etiketlerin kişiler arasında paylaşılabilmesini sağlar. Takımlar için harikadır.\n\t(Birden çok kuruluşun olduğu bir kurulumda etiketler zaten paylaşıldığı için bu uygulamanın kullanımdan kaldırılması önerilir).", + "Collaborative tagging functionality which shares tags among people. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "İş birlikli etiketler özelliği etiketlerin kişiler arasında paylaşılabilmesini sağlar. Takımlar için harikadır.\n\t(Birden çok kuruluşun olduğu bir kurulumda etiketler zaten paylaşıldığı için bu uygulamanın devre dışı bırakılması önerilir).", "Public" : "Herkese açık", "Restricted" : "Kısıtlanmış", "Invisible" : "Gizli", @@ -96,7 +96,7 @@ OC.L10N.register( "System tag creation is now restricted to administrators" : "Sistem etiketlerini yalnızca yöneticiler oluşturabilir", "System tag creation is now allowed for everybody" : "Sistem etiketlerini tüm kullanıcılar oluşturabilir", "System tag management" : "Sistem etiket yönetimi", - "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek kullanıma alındığında, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.", + "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek etkinse, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.", "Restrict tag creation and editing to administrators" : "Etiket ekleme ve düzenleme yöneticilerle sınırlansın", "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "İş birlikli etiketleri tüm kullanıcılar kullanabilir. Kısıtlanmış etiketleri kullanıcılar görebilir ancak atayamaz. Görünmeyen etiketler iç kullanım içindir ve kullanıcılar tarafından görülüp ve atanamaz.", "Assigned collaborative tags" : "Atanmış iş birlikli etiketler", diff --git a/apps/systemtags/l10n/tr.json b/apps/systemtags/l10n/tr.json index 8e618794ff0..7e395da8dc5 100644 --- a/apps/systemtags/l10n/tr.json +++ b/apps/systemtags/l10n/tr.json @@ -42,7 +42,7 @@ "tagged %s" : "%s etiketli", "Collaborative tags" : "İş birlikli etiketler", "Collaborative tagging functionality which shares tags among people." : "Etiketlerin kişiler arasında paylaşılabilmesini sağlayan iş birlikli etiketleme özelliği.", - "Collaborative tagging functionality which shares tags among people. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "İş birlikli etiketler özelliği etiketlerin kişiler arasında paylaşılabilmesini sağlar. Takımlar için harikadır.\n\t(Birden çok kuruluşun olduğu bir kurulumda etiketler zaten paylaşıldığı için bu uygulamanın kullanımdan kaldırılması önerilir).", + "Collaborative tagging functionality which shares tags among people. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "İş birlikli etiketler özelliği etiketlerin kişiler arasında paylaşılabilmesini sağlar. Takımlar için harikadır.\n\t(Birden çok kuruluşun olduğu bir kurulumda etiketler zaten paylaşıldığı için bu uygulamanın devre dışı bırakılması önerilir).", "Public" : "Herkese açık", "Restricted" : "Kısıtlanmış", "Invisible" : "Gizli", @@ -94,7 +94,7 @@ "System tag creation is now restricted to administrators" : "Sistem etiketlerini yalnızca yöneticiler oluşturabilir", "System tag creation is now allowed for everybody" : "Sistem etiketlerini tüm kullanıcılar oluşturabilir", "System tag management" : "Sistem etiket yönetimi", - "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek kullanıma alındığında, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.", + "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek etkinse, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.", "Restrict tag creation and editing to administrators" : "Etiket ekleme ve düzenleme yöneticilerle sınırlansın", "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "İş birlikli etiketleri tüm kullanıcılar kullanabilir. Kısıtlanmış etiketleri kullanıcılar görebilir ancak atayamaz. Görünmeyen etiketler iç kullanım içindir ve kullanıcılar tarafından görülüp ve atanamaz.", "Assigned collaborative tags" : "Atanmış iş birlikli etiketler", diff --git a/apps/systemtags/src/components/SystemTagsCreationControl.vue b/apps/systemtags/src/components/SystemTagsCreationControl.vue index 1b69983839f..2133387ec06 100644 --- a/apps/systemtags/src/components/SystemTagsCreationControl.vue +++ b/apps/systemtags/src/components/SystemTagsCreationControl.vue @@ -6,17 +6,17 @@ <template> <div id="system-tags-creation-control"> <h4 class="inlineblock"> - {{ t('settings', 'System tag management') }} + {{ t('systemtags', 'System tag management') }} </h4> <p class="settings-hint"> - {{ t('settings', 'If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files.') }} + {{ t('systemtags', 'If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files.') }} </p> <NcCheckboxRadioSwitch type="switch" :checked.sync="systemTagsCreationRestrictedToAdmin" @update:checked="updateSystemTagsDefault"> - {{ t('settings', 'Restrict tag creation and editing to administrators') }} + {{ t('systemtags', 'Restrict tag creation and editing to administrators') }} </NcCheckboxRadioSwitch> </div> </template> @@ -47,7 +47,7 @@ export default { data() { return { // By default, system tags creation is not restricted to admins - systemTagsCreationRestrictedToAdmin: loadState('settings', 'restrictSystemTagsCreationToAdmin', false), + systemTagsCreationRestrictedToAdmin: loadState('systemtags', 'restrictSystemTagsCreationToAdmin', false), } }, methods: { @@ -61,7 +61,7 @@ export default { }) } catch (e) { this.handleResponse({ - errorMessage: t('settings', 'Unable to update setting'), + errorMessage: t('systemtags', 'Unable to update setting'), error: e, }) } @@ -71,8 +71,8 @@ export default { if (status === 'ok') { this.systemTagsCreationRestrictedToAdmin = isRestricted showSuccess(isRestricted - ? t('settings', 'System tag creation is now restricted to administrators') - : t('settings', 'System tag creation is now allowed for everybody'), + ? t('systemtags', 'System tag creation is now restricted to administrators') + : t('systemtags', 'System tag creation is now allowed for everybody'), ) return } diff --git a/apps/systemtags/src/services/HotKeysService.spec.ts b/apps/systemtags/src/services/HotKeysService.spec.ts index 2e329444f54..92d9f56f56d 100644 --- a/apps/systemtags/src/services/HotKeysService.spec.ts +++ b/apps/systemtags/src/services/HotKeysService.spec.ts @@ -42,15 +42,24 @@ describe('HotKeysService testing', () => { }) it('Pressing t should open the tag management dialog', () => { - window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT' })) + dispatchEvent({ key: 't', code: 'KeyT' }) // Modifier keys should not trigger the action - window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', ctrlKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', altKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', shiftKey: true })) - window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', metaKey: true })) + dispatchEvent({ key: 't', code: 'KeyT', ctrlKey: true }) + dispatchEvent({ key: 't', code: 'KeyT', altKey: true }) + dispatchEvent({ key: 't', code: 'KeyT', shiftKey: true }) + dispatchEvent({ key: 't', code: 'KeyT', metaKey: true }) expect(bulkSystemTagsAction.enabled).toHaveReturnedWith(true) expect(bulkSystemTagsAction.exec).toHaveBeenCalledOnce() }) }) + +/** + * Helper to dispatch the correct event. + * + * @param init - KeyboardEvent options + */ +function dispatchEvent(init: KeyboardEventInit) { + document.body.dispatchEvent(new KeyboardEvent('keydown', { ...init, bubbles: true })) +} diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js index 11fc3447b1e..46a95ffa9d6 100644 --- a/apps/theming/l10n/nl.js +++ b/apps/theming/l10n/nl.js @@ -54,8 +54,8 @@ OC.L10N.register( "Privacy policy link" : "Privacybeleid link", "Header logo" : "Top logo", "Upload new header logo" : "Upload een nieuwe top afbeelding", - "Favicon" : "Favorietenpictogram", - "Upload new favicon" : "Upload een nieuwe favorietenpictogram", + "Favicon" : "Favicon", + "Upload new favicon" : "Nieuw favicon uploaden", "User settings" : "Instellingen gebruiker", "Disable user theming" : "Gebruiker thema's uitschakelen", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json index 272ce9ff916..9871f78bbf2 100644 --- a/apps/theming/l10n/nl.json +++ b/apps/theming/l10n/nl.json @@ -52,8 +52,8 @@ "Privacy policy link" : "Privacybeleid link", "Header logo" : "Top logo", "Upload new header logo" : "Upload een nieuwe top afbeelding", - "Favicon" : "Favorietenpictogram", - "Upload new favicon" : "Upload een nieuwe favorietenpictogram", + "Favicon" : "Favicon", + "Upload new favicon" : "Nieuw favicon uploaden", "User settings" : "Instellingen gebruiker", "Disable user theming" : "Gebruiker thema's uitschakelen", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index 5e88f16e47b..6e455a29922 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -29,9 +29,9 @@ OC.L10N.register( "Appearance and accessibility" : "Aparência e acessibilidade", "PHP Imagick module" : "Módulo PHP Imagick", "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "O módulo PHP \"imagick\" não está habilitado, embora o aplicativo de temas esteja. Para que a geração de favicon funcione corretamente, você precisa instalar e habilitar este módulo.", - "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" neste caso não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.", + "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" nesta instância não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.", "Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste", - "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste", + "Enable dark high contrast mode" : "Ativar o modo escuro de alto contraste", "Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.", "Dark theme" : "Tema escuro", "Enable dark theme" : "Ativar o tema escuro", @@ -71,16 +71,16 @@ OC.L10N.register( "Background color" : "Cor de fundo", "Upload new logo" : "Enviar novo logotipo", "Logo" : "Logotipo", - "Upload new background and login image" : "Envie um novo papel de parede e imagem de login", + "Upload new background and login image" : "Carregar nova imagem de fundo e de login", "Background and login image" : "Plano de fundo e imagem de login", "Advanced options" : "Opções avançadas", "Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP ImageMagick com suporte para imagens SVG para gerar automaticamente favicons com base no logotipo carregado e na cor.", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 no nível AA, com o tema de alto contraste até mesmo no nível AAA.", - "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste até mesmo no nível AAA.", + "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em relatá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!", "Unable to apply the setting." : "Não foi possível aplicar a configuração.", "Appearance and accessibility settings" : "Configurações de aparência e acessibilidade", "Misc accessibility options" : "Opções de acessibilidade diversas", - "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de fundo de desfoque (pode aumentar a carga da GPU)", + "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de desfoque de fundo (pode aumentar a carga da GPU)", "Customization has been disabled by your administrator" : "A personalização foi desativada por seu administrador", "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Defina uma cor primária para destacar elementos importantes. A cor usada para elementos como botões primários pode ser um pouco diferente, pois é ajustada para atender aos requisitos de acessibilidade.", "Background and color" : "Plano de fundo e cor", @@ -91,35 +91,35 @@ OC.L10N.register( "Current selected app: {app}, position {position} of {total}" : "Aplicativo atualmente selecionado: {app}, posição {position} de {total}", "Move up" : "Mover para cima", "Move down" : "Mover para baixo", - "Select a background from your files" : "Selecione o papel de parede de seus arquivos", - "Select background" : "Selecione o plano de fundo", + "Select a background from your files" : "Selecione um plano de fundo de seus arquivos", + "Select background" : "Selecione plano de fundo", "No background has been selected" : "Nenhum plano de fundo foi selecionado", "Custom background" : "Plano de fundo personalizado", "Plain background" : "Plano de fundo liso", "Default background" : "Plano de fundo padrão", - "Theme selection is enforced" : "A seleção do tema é aplicada", - "Could not set the app order" : "Não foi possível definir a ordem do aplicativo", - "Could not reset the app order" : "Não foi possível redefinir a ordem do aplicativo", + "Theme selection is enforced" : "A seleção do tema é imposta", + "Could not set the app order" : "Não foi possível definir a ordem dos aplicativos", + "Could not reset the app order" : "Não foi possível redefinir a ordem dos aplicativos", "Navigation bar settings" : "Configurações da barra de navegação", - "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem do aplicativo usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem dos aplicativos usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.", "The default app can not be changed because it was configured by the administrator." : "O aplicativo padrão não pode ser alterado porque foi configurado pelo administrador.", - "The app order was changed, to see it in action you have to reload the page." : "A ordem do aplicativo foi alterada, para vê-lo em ação é necessário recarregar a página.", + "The app order was changed, to see it in action you have to reload the page." : "A ordem dos aplicativos foi alterada, para vê-la em ação é necessário recarregar a página.", "Reset default app order" : "Redefinir a ordem padrão dos aplicativos", "Could not set primary color" : "Não foi possível definir a cor primária", "Reset primary color" : "Redefinir cor primária", "Could not set global default apps" : "Não foi possível definir aplicativos padrão globais", "Default app" : "Aplicativo padrão", - "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, por exemplo. aberto após o login ou quando o logotipo no menu é clicado.", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, p. ex., aberto após o login ou quando o logotipo no menu é clicado.", "Use custom default app" : "Usar aplicativo padrão personalizado", "Global default app" : "Aplicativo padrão global", "Global default apps" : "Aplicativos padrão globais", - "Default app priority" : "Prioridade padrão do aplicativo", + "Default app priority" : "Prioridade padrão de aplicativos", "If an app is not enabled for a user, the next app with lower priority is used." : "Se um aplicativo não estiver habilitado para um usuário, o próximo aplicativo com prioridade mais baixa será usado.", "Select a custom color" : "Selecione uma cor personalizada", "Reset to default" : "Redefinir para o padrão", - "Upload" : "Enviar", + "Upload" : "Carregar", "Remove background image" : "Excluir a imagem de fundo", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste, mesmo no nível AAA.", ". Unable to apply the setting." : ". Não foi possível aplicar a configuração." }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 81828028924..18160e12ccf 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -27,9 +27,9 @@ "Appearance and accessibility" : "Aparência e acessibilidade", "PHP Imagick module" : "Módulo PHP Imagick", "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "O módulo PHP \"imagick\" não está habilitado, embora o aplicativo de temas esteja. Para que a geração de favicon funcione corretamente, você precisa instalar e habilitar este módulo.", - "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" neste caso não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.", + "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" nesta instância não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.", "Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste", - "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste", + "Enable dark high contrast mode" : "Ativar o modo escuro de alto contraste", "Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.", "Dark theme" : "Tema escuro", "Enable dark theme" : "Ativar o tema escuro", @@ -69,16 +69,16 @@ "Background color" : "Cor de fundo", "Upload new logo" : "Enviar novo logotipo", "Logo" : "Logotipo", - "Upload new background and login image" : "Envie um novo papel de parede e imagem de login", + "Upload new background and login image" : "Carregar nova imagem de fundo e de login", "Background and login image" : "Plano de fundo e imagem de login", "Advanced options" : "Opções avançadas", "Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP ImageMagick com suporte para imagens SVG para gerar automaticamente favicons com base no logotipo carregado e na cor.", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 no nível AA, com o tema de alto contraste até mesmo no nível AAA.", - "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste até mesmo no nível AAA.", + "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em relatá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!", "Unable to apply the setting." : "Não foi possível aplicar a configuração.", "Appearance and accessibility settings" : "Configurações de aparência e acessibilidade", "Misc accessibility options" : "Opções de acessibilidade diversas", - "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de fundo de desfoque (pode aumentar a carga da GPU)", + "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de desfoque de fundo (pode aumentar a carga da GPU)", "Customization has been disabled by your administrator" : "A personalização foi desativada por seu administrador", "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Defina uma cor primária para destacar elementos importantes. A cor usada para elementos como botões primários pode ser um pouco diferente, pois é ajustada para atender aos requisitos de acessibilidade.", "Background and color" : "Plano de fundo e cor", @@ -89,35 +89,35 @@ "Current selected app: {app}, position {position} of {total}" : "Aplicativo atualmente selecionado: {app}, posição {position} de {total}", "Move up" : "Mover para cima", "Move down" : "Mover para baixo", - "Select a background from your files" : "Selecione o papel de parede de seus arquivos", - "Select background" : "Selecione o plano de fundo", + "Select a background from your files" : "Selecione um plano de fundo de seus arquivos", + "Select background" : "Selecione plano de fundo", "No background has been selected" : "Nenhum plano de fundo foi selecionado", "Custom background" : "Plano de fundo personalizado", "Plain background" : "Plano de fundo liso", "Default background" : "Plano de fundo padrão", - "Theme selection is enforced" : "A seleção do tema é aplicada", - "Could not set the app order" : "Não foi possível definir a ordem do aplicativo", - "Could not reset the app order" : "Não foi possível redefinir a ordem do aplicativo", + "Theme selection is enforced" : "A seleção do tema é imposta", + "Could not set the app order" : "Não foi possível definir a ordem dos aplicativos", + "Could not reset the app order" : "Não foi possível redefinir a ordem dos aplicativos", "Navigation bar settings" : "Configurações da barra de navegação", - "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem do aplicativo usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.", + "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem dos aplicativos usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.", "The default app can not be changed because it was configured by the administrator." : "O aplicativo padrão não pode ser alterado porque foi configurado pelo administrador.", - "The app order was changed, to see it in action you have to reload the page." : "A ordem do aplicativo foi alterada, para vê-lo em ação é necessário recarregar a página.", + "The app order was changed, to see it in action you have to reload the page." : "A ordem dos aplicativos foi alterada, para vê-la em ação é necessário recarregar a página.", "Reset default app order" : "Redefinir a ordem padrão dos aplicativos", "Could not set primary color" : "Não foi possível definir a cor primária", "Reset primary color" : "Redefinir cor primária", "Could not set global default apps" : "Não foi possível definir aplicativos padrão globais", "Default app" : "Aplicativo padrão", - "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, por exemplo. aberto após o login ou quando o logotipo no menu é clicado.", + "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, p. ex., aberto após o login ou quando o logotipo no menu é clicado.", "Use custom default app" : "Usar aplicativo padrão personalizado", "Global default app" : "Aplicativo padrão global", "Global default apps" : "Aplicativos padrão globais", - "Default app priority" : "Prioridade padrão do aplicativo", + "Default app priority" : "Prioridade padrão de aplicativos", "If an app is not enabled for a user, the next app with lower priority is used." : "Se um aplicativo não estiver habilitado para um usuário, o próximo aplicativo com prioridade mais baixa será usado.", "Select a custom color" : "Selecione uma cor personalizada", "Reset to default" : "Redefinir para o padrão", - "Upload" : "Enviar", + "Upload" : "Carregar", "Remove background image" : "Excluir a imagem de fundo", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste, mesmo no nível AAA.", ". Unable to apply the setting." : ". Não foi possível aplicar a configuração." },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/theming/l10n/tr.js b/apps/theming/l10n/tr.js index c77b3cfc358..6d25031909d 100644 --- a/apps/theming/l10n/tr.js +++ b/apps/theming/l10n/tr.js @@ -28,7 +28,7 @@ OC.L10N.register( "Theming" : "Tema", "Appearance and accessibility" : "Görünüm ve erişilebilirlik", "PHP Imagick module" : "PHP Imagick modülü", - "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve kullanıma almanız gerekir.", + "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü etkin değil. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve etkinleştirmeniz gerekir.", "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Bu kopyadaki PHP \"imagick\" modülünde SVG desteği yok. Daha iyi başarım ve uyumluluk için bu modülün kurulması önemle önerilir.", "Dark theme with high contrast mode" : "Koyu tema ve yüksek renk karşıtlığı kipi", "Enable dark high contrast mode" : "Koyu yüksek renk karşıtlığı kipi kullanılsın", @@ -64,8 +64,8 @@ OC.L10N.register( "Favicon" : "Favicon", "Upload new favicon" : "Yeni favicon yükle", "User settings" : "Kullanıcı ayarları", - "Disable user theming" : "Kullanıcı teması kullanımdan kaldırılsın", - "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği kullanıma alabilirsiniz.", + "Disable user theming" : "Kullanıcı teması devre dışı bırakılsın", + "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği etkinleştirebilirsiniz.", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Temalar kullandığınız kopyanın ve desteklenen istemcilerin genel görünümün kolayca değiştirilmesini sağlar. Tüm kullanıcılara görüntülenir.", "Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Arka plan görseli yerine düz bir arka plan rengi de yapılandırabilirsiniz. Arka plan görseli kullanıyorsanız bu rengi değiştirmek uygulama menüsü simgelerinin rengini etkiler.", "Background color" : "Arka plan rengi", @@ -81,13 +81,13 @@ OC.L10N.register( "Appearance and accessibility settings" : "Görünüm ve erişilebilirlik ayarları", "Misc accessibility options" : "Çeşitli erişilebilirlik seçenekleri", "Enable blur background filter (may increase GPU load)" : "Arka plan bulanıklaştırılsın (grafik işlemci yükünü artırabilir)", - "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından kullanımdan kaldırılmış", + "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından devre dışı bırakılmış", "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Önemli ögeleri vurgulamak için bir birincil renk ayarlayın. Birincil düğmeler gibi ögeler için kullanılan renk, erişilebilirlik gereksinimlerini karşılamak üzere ayarlandığında biraz farklılık gösterebilir.", "Background and color" : "Arka plan ve renk", "The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Arka plan varsayılan ayardaki bir görsele, özel olarak yüklenen bir görsele veya düz bir renge ayarlanabilir.", "Keyboard shortcuts" : "Kısayol tuşları", - "In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan kullanımdan kaldırabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da kullanımdan kaldırır.", - "Disable all keyboard shortcuts" : "Tüm klavye kısayolları kullanımdan kaldırılsın", + "In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan kullanımdan kaldırabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da devre dışı bırakır.", + "Disable all keyboard shortcuts" : "Tüm klavye kısayolları devre dışı bırakılsın", "Current selected app: {app}, position {position} of {total}" : "Seçilmiş geçerli uygulama: {app}, {position} / {total} konumunda", "Move up" : "Yukarı taşı", "Move down" : "Aşağı taşı", @@ -114,7 +114,7 @@ OC.L10N.register( "Global default app" : "Genel varsayılan uygulama", "Global default apps" : "Genel varsayılan uygulamalar", "Default app priority" : "Varsayılan uygulama önceliği", - "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama bir kullanıcıda kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.", + "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama, bir kullanıcı için etkin değilse, daha düşük öncelikli bir sonraki uygulama kullanılır.", "Select a custom color" : "Özel bir renk seçin", "Reset to default" : "Varsayılanlara dön", "Upload" : "Yükle", diff --git a/apps/theming/l10n/tr.json b/apps/theming/l10n/tr.json index 2bde409f985..badb441f694 100644 --- a/apps/theming/l10n/tr.json +++ b/apps/theming/l10n/tr.json @@ -26,7 +26,7 @@ "Theming" : "Tema", "Appearance and accessibility" : "Görünüm ve erişilebilirlik", "PHP Imagick module" : "PHP Imagick modülü", - "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve kullanıma almanız gerekir.", + "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü etkin değil. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve etkinleştirmeniz gerekir.", "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Bu kopyadaki PHP \"imagick\" modülünde SVG desteği yok. Daha iyi başarım ve uyumluluk için bu modülün kurulması önemle önerilir.", "Dark theme with high contrast mode" : "Koyu tema ve yüksek renk karşıtlığı kipi", "Enable dark high contrast mode" : "Koyu yüksek renk karşıtlığı kipi kullanılsın", @@ -62,8 +62,8 @@ "Favicon" : "Favicon", "Upload new favicon" : "Yeni favicon yükle", "User settings" : "Kullanıcı ayarları", - "Disable user theming" : "Kullanıcı teması kullanımdan kaldırılsın", - "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği kullanıma alabilirsiniz.", + "Disable user theming" : "Kullanıcı teması devre dışı bırakılsın", + "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği etkinleştirebilirsiniz.", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Temalar kullandığınız kopyanın ve desteklenen istemcilerin genel görünümün kolayca değiştirilmesini sağlar. Tüm kullanıcılara görüntülenir.", "Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Arka plan görseli yerine düz bir arka plan rengi de yapılandırabilirsiniz. Arka plan görseli kullanıyorsanız bu rengi değiştirmek uygulama menüsü simgelerinin rengini etkiler.", "Background color" : "Arka plan rengi", @@ -79,13 +79,13 @@ "Appearance and accessibility settings" : "Görünüm ve erişilebilirlik ayarları", "Misc accessibility options" : "Çeşitli erişilebilirlik seçenekleri", "Enable blur background filter (may increase GPU load)" : "Arka plan bulanıklaştırılsın (grafik işlemci yükünü artırabilir)", - "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından kullanımdan kaldırılmış", + "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından devre dışı bırakılmış", "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Önemli ögeleri vurgulamak için bir birincil renk ayarlayın. Birincil düğmeler gibi ögeler için kullanılan renk, erişilebilirlik gereksinimlerini karşılamak üzere ayarlandığında biraz farklılık gösterebilir.", "Background and color" : "Arka plan ve renk", "The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Arka plan varsayılan ayardaki bir görsele, özel olarak yüklenen bir görsele veya düz bir renge ayarlanabilir.", "Keyboard shortcuts" : "Kısayol tuşları", - "In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan kullanımdan kaldırabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da kullanımdan kaldırır.", - "Disable all keyboard shortcuts" : "Tüm klavye kısayolları kullanımdan kaldırılsın", + "In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Bazı durumlarda klavye kısayolları erişilebilirlik araçlarına etki edebilir. Aracınıza doğru şekilde odaklanmanızı sağlamak için tüm klavye kısayollarını buradan kullanımdan kaldırabilirsiniz. Bu aynı zamanda uygulamalarda var olan tüm kısayolları da devre dışı bırakır.", + "Disable all keyboard shortcuts" : "Tüm klavye kısayolları devre dışı bırakılsın", "Current selected app: {app}, position {position} of {total}" : "Seçilmiş geçerli uygulama: {app}, {position} / {total} konumunda", "Move up" : "Yukarı taşı", "Move down" : "Aşağı taşı", @@ -112,7 +112,7 @@ "Global default app" : "Genel varsayılan uygulama", "Global default apps" : "Genel varsayılan uygulamalar", "Default app priority" : "Varsayılan uygulama önceliği", - "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama bir kullanıcıda kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.", + "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama, bir kullanıcı için etkin değilse, daha düşük öncelikli bir sonraki uygulama kullanılır.", "Select a custom color" : "Özel bir renk seçin", "Reset to default" : "Varsayılanlara dön", "Upload" : "Yükle", diff --git a/apps/theming/openapi.json b/apps/theming/openapi.json index 2518f4acb73..26f5e7b8120 100644 --- a/apps/theming/openapi.json +++ b/apps/theming/openapi.json @@ -701,6 +701,7 @@ "color": { "type": "string", "nullable": true, + "default": null, "description": "Color for the background" } } diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js index 48135c5ea24..d65a55fd9d4 100644 --- a/apps/updatenotification/l10n/tr.js +++ b/apps/updatenotification/l10n/tr.js @@ -2,7 +2,7 @@ OC.L10N.register( "updatenotification", { "Channel updated" : "Kanal güncellendi", - "Web updater is disabled" : "Güncelleyici kullanımdan kaldırılmış", + "Web updater is disabled" : "Güncelleyici devre dışı bırakılmış", "App updated" : "Uygulama güncellendi", "See what's new" : "Yeniliklere bakın", "{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi", @@ -39,7 +39,7 @@ OC.L10N.register( "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!", "Open updater" : "Güncelleyici aç", "Download now" : "İndir", - "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kullanımdan kaldırılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.", + "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi devre dışı bırakılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.", "What's new?" : "Yenilikler neler?", "View changelog" : "Değişiklik günlüğünü görüntüle", "The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.", diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json index a5c28d84d0d..4ded1a8e6e1 100644 --- a/apps/updatenotification/l10n/tr.json +++ b/apps/updatenotification/l10n/tr.json @@ -1,6 +1,6 @@ { "translations": { "Channel updated" : "Kanal güncellendi", - "Web updater is disabled" : "Güncelleyici kullanımdan kaldırılmış", + "Web updater is disabled" : "Güncelleyici devre dışı bırakılmış", "App updated" : "Uygulama güncellendi", "See what's new" : "Yeniliklere bakın", "{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi", @@ -37,7 +37,7 @@ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!", "Open updater" : "Güncelleyici aç", "Download now" : "İndir", - "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kullanımdan kaldırılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.", + "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi devre dışı bırakılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.", "What's new?" : "Yenilikler neler?", "View changelog" : "Değişiklik günlüğünü görüntüle", "The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.", diff --git a/apps/updatenotification/openapi.json b/apps/updatenotification/openapi.json index 969dfc7cfaa..f635b0839ef 100644 --- a/apps/updatenotification/openapi.json +++ b/apps/updatenotification/openapi.json @@ -248,7 +248,8 @@ "description": "The version to search the changelog entry for (defaults to the latest installed)", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js index 52a58012d90..e1c0acf6d50 100644 --- a/apps/user_ldap/l10n/tr.js +++ b/apps/user_ldap/l10n/tr.js @@ -42,7 +42,7 @@ OC.L10N.register( "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını etkinleştirir. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", "Mode switch" : "Kip değişimi", "Select attributes" : "Öznitelikleri seçin", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>", @@ -53,7 +53,7 @@ OC.L10N.register( "A connection error to LDAP/AD occurred. Please check host, port and credentials." : "Bir LDAP/AD bağlantı sorunu çıktı. Lütfen istemci, bağlantı noktası ve kimlik doğrulama bilgilerini denetleyin.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "LDAP/AD sorgularında kullanıcı adı ile değiştirilecek \"%uid\" yer belirleyicisi eksik. ", "Please provide a login name to test against" : "Lütfen deneme için kullanılacak bir kullanıcı adı yazın", - "The group box was disabled, because the LDAP/AD server does not support memberOf." : "LDAP/AD sunucusu memberOf parametresini desteklemediğinden grup kutusu kullanımdan kaldırıldı.", + "The group box was disabled, because the LDAP/AD server does not support memberOf." : "LDAP/AD sunucusu memberOf parametresini desteklemediğinden grup kutusu devre dışı bırakıldı.", "Password change rejected. Hint: %s" : "Parola değişimi reddedildi. İpucu: %s", "Mandatory field \"%s\" left empty" : "\"%s\" zorunlu alanı boş olamaz", "A password is given, but not an LDAP agent" : "Bir parola belirtilmiş ancak bir LDAP aracısı değil", @@ -158,7 +158,7 @@ OC.L10N.register( "Disable Main Server" : "Ana sunucuyu kullanımdan kaldır", "Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.", "Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", "Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri", "in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.", "Directory Settings" : "Dizin Ayarları", @@ -170,8 +170,8 @@ OC.L10N.register( "One User Base DN per line" : "Her Satıra Bir Kullanıcı Base DN", "User Search Attributes" : "Kullanıcı arama öznitelikleri", "Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik", - "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın", - "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", + "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar devre dışı bırakılsın", + "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar devre dışı bırakılır", "Group Display Name Field" : "Görüntülenecek Grup Adı Alanı", "The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.", "Base Group Tree" : "Temel Grup Ağacı", @@ -179,16 +179,16 @@ OC.L10N.register( "Group Search Attributes" : "Grup Arama Öznitelikleri", "Group-Member association" : "Grup-Üye İlişkisi", "Dynamic Group Member URL" : "Devingen Grup Üye Adresi", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği devre dışı bırakılır).", "Nested Groups" : "İç İçe Gruplar", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", "Paging chunksize" : "Sayfalandırma yığın boyutu", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları devre dışı bırakılır).", "Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", "(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)", "Default password policy DN" : "Varsayılan parola ilkesi DN", - "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini devre dışı bıraklmak için boş bırakın.", "Special Attributes" : "Özel Öznitelikler", "Quota Field" : "Kota Alanı", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.", diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json index a9e01755a8e..09359b4e70c 100644 --- a/apps/user_ldap/l10n/tr.json +++ b/apps/user_ldap/l10n/tr.json @@ -40,7 +40,7 @@ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını etkinleştirir. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", "Mode switch" : "Kip değişimi", "Select attributes" : "Öznitelikleri seçin", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>", @@ -51,7 +51,7 @@ "A connection error to LDAP/AD occurred. Please check host, port and credentials." : "Bir LDAP/AD bağlantı sorunu çıktı. Lütfen istemci, bağlantı noktası ve kimlik doğrulama bilgilerini denetleyin.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "LDAP/AD sorgularında kullanıcı adı ile değiştirilecek \"%uid\" yer belirleyicisi eksik. ", "Please provide a login name to test against" : "Lütfen deneme için kullanılacak bir kullanıcı adı yazın", - "The group box was disabled, because the LDAP/AD server does not support memberOf." : "LDAP/AD sunucusu memberOf parametresini desteklemediğinden grup kutusu kullanımdan kaldırıldı.", + "The group box was disabled, because the LDAP/AD server does not support memberOf." : "LDAP/AD sunucusu memberOf parametresini desteklemediğinden grup kutusu devre dışı bırakıldı.", "Password change rejected. Hint: %s" : "Parola değişimi reddedildi. İpucu: %s", "Mandatory field \"%s\" left empty" : "\"%s\" zorunlu alanı boş olamaz", "A password is given, but not an LDAP agent" : "Bir parola belirtilmiş ancak bir LDAP aracısı değil", @@ -156,7 +156,7 @@ "Disable Main Server" : "Ana sunucuyu kullanımdan kaldır", "Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.", "Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", "Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri", "in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.", "Directory Settings" : "Dizin Ayarları", @@ -168,8 +168,8 @@ "One User Base DN per line" : "Her Satıra Bir Kullanıcı Base DN", "User Search Attributes" : "Kullanıcı arama öznitelikleri", "Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik", - "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın", - "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", + "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar devre dışı bırakılsın", + "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar devre dışı bırakılır", "Group Display Name Field" : "Görüntülenecek Grup Adı Alanı", "The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.", "Base Group Tree" : "Temel Grup Ağacı", @@ -177,16 +177,16 @@ "Group Search Attributes" : "Grup Arama Öznitelikleri", "Group-Member association" : "Grup-Üye İlişkisi", "Dynamic Group Member URL" : "Devingen Grup Üye Adresi", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği devre dışı bırakılır).", "Nested Groups" : "İç İçe Gruplar", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", "Paging chunksize" : "Sayfalandırma yığın boyutu", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları devre dışı bırakılır).", "Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", "(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)", "Default password policy DN" : "Varsayılan parola ilkesi DN", - "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini devre dışı bıraklmak için boş bırakın.", "Special Attributes" : "Özel Öznitelikler", "Quota Field" : "Kota Alanı", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.", diff --git a/apps/user_ldap/lib/LDAP.php b/apps/user_ldap/lib/LDAP.php index 50af2556c72..1cf20c4b939 100644 --- a/apps/user_ldap/lib/LDAP.php +++ b/apps/user_ldap/lib/LDAP.php @@ -11,6 +11,7 @@ use OC\ServerNotAvailableException; use OCA\User_LDAP\DataCollector\LdapDataCollector; use OCA\User_LDAP\Exceptions\ConstraintViolationException; use OCP\IConfig; +use OCP\ILogger; use OCP\Profiler\IProfiler; use OCP\Server; use Psr\Log\LoggerInterface; @@ -18,6 +19,7 @@ use Psr\Log\LoggerInterface; class LDAP implements ILDAPWrapper { protected array $curArgs = []; protected LoggerInterface $logger; + protected IConfig $config; private ?LdapDataCollector $dataCollector = null; @@ -32,6 +34,7 @@ class LDAP implements ILDAPWrapper { } $this->logger = Server::get(LoggerInterface::class); + $this->config = Server::get(IConfig::class); } /** @@ -291,6 +294,21 @@ class LDAP implements ILDAPWrapper { return null; } + /** + * Turn resources into string, and removes potentially problematic cookie string to avoid breaking logfiles + */ + private function sanitizeFunctionParameters(array $args): array { + return array_map(function ($item) { + if ($this->isResource($item)) { + return '(resource)'; + } + if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') { + $item[0]['value']['cookie'] = '*opaque cookie*'; + } + return $item; + }, $args); + } + private function preFunctionCall(string $functionName, array $args): void { $this->curArgs = $args; if (strcasecmp($functionName, 'ldap_bind') === 0 || strcasecmp($functionName, 'ldap_exop_passwd') === 0) { @@ -301,32 +319,24 @@ class LDAP implements ILDAPWrapper { $args[2] = IConfig::SENSITIVE_VALUE; } - $this->logger->debug('Calling LDAP function {func} with parameters {args}', [ - 'app' => 'user_ldap', - 'func' => $functionName, - 'args' => json_encode($args), - ]); + if ($this->config->getSystemValue('loglevel') === ILogger::DEBUG) { + /* Only running this if debug loglevel is on, to avoid processing parameters on production */ + $this->logger->debug('Calling LDAP function {func} with parameters {args}', [ + 'app' => 'user_ldap', + 'func' => $functionName, + 'args' => $this->sanitizeFunctionParameters($args), + ]); + } if ($this->dataCollector !== null) { - $args = array_map(function ($item) { - if ($this->isResource($item)) { - return '(resource)'; - } - if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') { - $item[0]['value']['cookie'] = '*opaque cookie*'; - } - return $item; - }, $this->curArgs); - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - $this->dataCollector->startLdapRequest($functionName, $args, $backtrace); + $this->dataCollector->startLdapRequest($functionName, $this->sanitizeFunctionParameters($args), $backtrace); } if ($this->logFile !== '' && is_writable(dirname($this->logFile)) && (!file_exists($this->logFile) || is_writable($this->logFile))) { - $args = array_map(fn ($item) => (!$this->isResource($item) ? $item : '(resource)'), $this->curArgs); file_put_contents( $this->logFile, - $functionName . '::' . json_encode($args) . "\n", + $functionName . '::' . json_encode($this->sanitizeFunctionParameters($args)) . "\n", FILE_APPEND ); } diff --git a/apps/user_status/openapi.json b/apps/user_status/openapi.json index a0d30693e37..65d9af59fef 100644 --- a/apps/user_status/openapi.json +++ b/apps/user_status/openapi.json @@ -427,7 +427,8 @@ "schema": { "type": "integer", "format": "int64", - "nullable": true + "nullable": true, + "default": null } }, { @@ -438,6 +439,7 @@ "type": "integer", "format": "int64", "nullable": true, + "default": null, "minimum": 0 } }, diff --git a/apps/webhook_listeners/openapi.json b/apps/webhook_listeners/openapi.json index 9e7acc5c6f8..84610d204bb 100644 --- a/apps/webhook_listeners/openapi.json +++ b/apps/webhook_listeners/openapi.json @@ -121,7 +121,8 @@ "description": "The callback URI to filter by", "schema": { "type": "string", - "nullable": true + "nullable": true, + "default": null } }, { @@ -255,6 +256,13 @@ }, "parameters": [ { + "name": "EX-APP-ID", + "in": "header", + "schema": { + "type": "string" + } + }, + { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", @@ -548,6 +556,13 @@ } }, { + "name": "EX-APP-ID", + "in": "header", + "schema": { + "type": "string" + } + }, + { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", |