Compare commits
121 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f69ed341b0 | |||
| d1a03b9c1f | |||
| b48550ec6c | |||
| 0c9b059e10 | |||
| 5660a73a3d | |||
| 43aa92f6c3 | |||
| 2e0baa5801 | |||
| a488bff27a | |||
| 9fef97c9ec | |||
| f16c449275 | |||
| 7139cac9d8 | |||
| f0c392e21c | |||
| 378ddda301 | |||
| 6b0bce8a2d | |||
| 58ae326f83 | |||
| 7f3fcdf495 | |||
| 09b0698255 | |||
| e7a28e787d | |||
| 3ba7888537 | |||
| 0c4bb5e8c5 | |||
| 67610f387c | |||
| 8b7aad82c7 | |||
| 6e9d48b558 | |||
| 13f25c9316 | |||
| b54c5392b6 | |||
| 36d9fcbb4d | |||
| b514d75323 | |||
| c67bdf02f0 | |||
| 7e76c91677 | |||
| 535bf3af9f | |||
| 6cae7d1f81 | |||
| 655ef1031b | |||
| 48dc04b571 | |||
| 3ff3ceae5d | |||
| 6adbe44976 | |||
| 96011a1579 | |||
| 61c9a6eb22 | |||
| 7c69862a5d | |||
| 761093daf8 | |||
| 1fdda4b202 | |||
| 84323ff6dd | |||
| ee6596782f | |||
| ad39dab6ca | |||
| 89577f6f94 | |||
| ab49a6d8a9 | |||
| 687df7c8ab | |||
| 1064c676cc | |||
| 88be308b06 | |||
| 9aac182109 | |||
| 51e5f7b159 | |||
| c695bf1a95 | |||
| b814f3bba6 | |||
| 97efc95efc | |||
| 83b8a390cd | |||
| 398b106f0c | |||
| 064e1133f5 | |||
| 2cf7e038b3 | |||
| 3a5769e8f9 | |||
| db8dd9f7f6 | |||
| ad85d65064 | |||
| 6f0120af16 | |||
| 520d8beaf5 | |||
| a4795a216c | |||
| b819d71337 | |||
| 2aa6894c38 | |||
| c9fa1db925 | |||
| ff3043346a | |||
| a3f1b079bb | |||
| 1750708509 | |||
| 12f31b69a0 | |||
| d24f0a3a54 | |||
| 78dcf3744d | |||
| ccda64fc66 | |||
| 662838b542 | |||
| 3535149418 | |||
| b694d2659b | |||
| 9195987d14 | |||
| 9c79483392 | |||
| f95fef9938 | |||
| d711d68701 | |||
| be7ef439cf | |||
| f22f7311de | |||
| 282bedcfb0 | |||
| 2e3fa51132 | |||
| c722f8c88b | |||
| 2211390ca5 | |||
| 894463b935 | |||
| fbd492ff1c | |||
| 262f647104 | |||
| 7f93711e68 | |||
| 627f8cabd6 | |||
| f3d2e53371 | |||
| dca988cf8c | |||
| bf6f3d7761 | |||
| e469d2fdad | |||
| 828007ec5d | |||
| 219dd00c99 | |||
| 0052d77af2 | |||
| 55a0dfc691 | |||
| 5b4177a962 | |||
| cc7c86b1c1 | |||
| 97c3b8389c | |||
| 0b5ddf82c4 | |||
| 127a02f9de | |||
| 02c2e01b97 | |||
| 57aa99fb96 | |||
| 2cb552d8e2 | |||
| 7750bef6b5 | |||
| 99e097d360 | |||
| 4ce1980eff | |||
| 222cbd0af6 | |||
| e4ed547bc6 | |||
| 17ae4e767f | |||
| 3417581021 | |||
| d2a20ea1bd | |||
| 4829ac57c1 | |||
| 14b4d0327e | |||
| 49d8e29a18 | |||
| 69a3604d64 | |||
| feae8ba16a | |||
| e2176bcaf1 |
@@ -103,3 +103,5 @@ ResponseDefinitions.php @provokateurin @nextcloud/server-backend
|
||||
# Personal interest
|
||||
*/Activity/* @nickvergessen @nextcloud/server-backend
|
||||
*/Notifications/* @nickvergessen @nextcloud/talk-backend
|
||||
/apps/workflowengine/lib @nickvergessen
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
name: "CodeQL config"
|
||||
|
||||
paths-ignore:
|
||||
- dist
|
||||
@@ -0,0 +1,47 @@
|
||||
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
name: "CodeQL Advanced"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master", "stable*" ]
|
||||
pull_request:
|
||||
branches: [ "master", "stable*" ]
|
||||
schedule:
|
||||
- cron: '28 18 * * 1'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze (${{ matrix.language }})
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
# required for all workflows
|
||||
security-events: write
|
||||
|
||||
# required to fetch internal or private CodeQL packs
|
||||
packages: read
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- language: actions
|
||||
build-mode: none
|
||||
- language: javascript-typescript
|
||||
build-mode: none
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
config-file: ./.github/codeql-config.yml
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
-356
File diff suppressed because one or more lines are too long
+526
File diff suppressed because one or more lines are too long
@@ -63,6 +63,7 @@ $cardDavBackend = new CardDavBackend(
|
||||
Server::get(IUserManager::class),
|
||||
Server::get(IEventDispatcher::class),
|
||||
Server::get(\OCA\DAV\CardDAV\Sharing\Backend::class),
|
||||
Server::get(IConfig::class),
|
||||
);
|
||||
|
||||
$debugging = Server::get(IConfig::class)->getSystemValue('debug', false);
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@ OC.L10N.register(
|
||||
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["I en måned på %1$s for hele dagen","Om %n måneder den %1$s for hele dagen"],
|
||||
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["I et år på %1$s for hele dagen","Om %n år den %1$s for hele dagen"],
|
||||
"In the past on %1$s between %2$s - %3$s" : "Tidligere den %1$s mellem %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_" : ["I et minut på %1$s mellem% %2$s - %3$s","Om %n minutter den %1$s mellem %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_" : ["I et minut på %1$s mellem %2$s - %3$s","Om %n minutter den %1$s mellem %2$s - %3$s"],
|
||||
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["I en time på %1$s mellem %2$s - %3$s","Om %n timer den %1$s mellem %2$s - %3$s"],
|
||||
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["I en dag på %1$s mellem %2$s - %3$s","Om %n dage den %1$s mellem %2$s - %3$s"],
|
||||
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["I en uge på %1$s mellem %2$s - %3$s","Om %n uger den %1$s mellem %2$s - %3$s"],
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["I en måned på %1$s for hele dagen","Om %n måneder den %1$s for hele dagen"],
|
||||
"_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["I et år på %1$s for hele dagen","Om %n år den %1$s for hele dagen"],
|
||||
"In the past on %1$s between %2$s - %3$s" : "Tidligere den %1$s mellem %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_" : ["I et minut på %1$s mellem% %2$s - %3$s","Om %n minutter den %1$s mellem %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_" : ["I et minut på %1$s mellem %2$s - %3$s","Om %n minutter den %1$s mellem %2$s - %3$s"],
|
||||
"_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["I en time på %1$s mellem %2$s - %3$s","Om %n timer den %1$s mellem %2$s - %3$s"],
|
||||
"_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["I en dag på %1$s mellem %2$s - %3$s","Om %n dage den %1$s mellem %2$s - %3$s"],
|
||||
"_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["I en uge på %1$s mellem %2$s - %3$s","Om %n uger den %1$s mellem %2$s - %3$s"],
|
||||
|
||||
+25
-25
@@ -208,28 +208,28 @@ OC.L10N.register(
|
||||
"{actor} unshared address book {addressbook} from you" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con Ud.",
|
||||
"You unshared address book {addressbook} from {user}" : "Ud. ha dejado de compartir la libreta de direcciones {addressbook} con {user}",
|
||||
"{actor} unshared address book {addressbook} from {user}" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con {user}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} dejó de compartir la libreta de direcciones {addressbook} consigo mismo",
|
||||
"You shared address book {addressbook} with group {group}" : "Has compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} dejó de compartir su propia libreta de direcciones {addressbook}",
|
||||
"You shared address book {addressbook} with group {group}" : "Ud. ha compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} shared address book {addressbook} with group {group}" : "{actor} ha compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"You unshared address book {addressbook} from group {group}" : "Has descompartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} ha descompartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} ha creado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You created contact {card} in address book {addressbook}" : "Has creado un contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You unshared address book {addressbook} from group {group}" : "Ud. ha dejado de compartir la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} ha creado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You created contact {card} in address book {addressbook}" : "Ud. ha creado un contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} ha eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Has eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Ud. ha eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"{actor} updated contact {card} in address book {addressbook}" : "{actor} ha actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You updated contact {card} in address book {addressbook}" : "Has actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Se ha modificado un <strong>contacto</strong> o una <strong>libreta de direcciones</strong> ",
|
||||
"You updated contact {card} in address book {addressbook}" : "Ud. ha actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Se ha modificado un <strong>contacto</strong> o una <strong>libreta de direcciones</strong>",
|
||||
"Accounts" : "Cuentas",
|
||||
"System address book which holds all accounts" : "Libretas de direcciones del sistema que contienen todas las cuentas",
|
||||
"System address book which holds all accounts" : "Libreta de direcciones del sistema que contiene todas las cuentas",
|
||||
"File is not updatable: %1$s" : "El archivo no se puede actualizar: %1$s",
|
||||
"Failed to get storage for file" : "Error al obtener almacenamiento para el archivo",
|
||||
"Could not write to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema.",
|
||||
"Failed to get storage for file" : "Error al obtener datos de almacenamiento para el archivo",
|
||||
"Could not write to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema",
|
||||
"Could not write file contents" : "No se han podido escribir los contenidos del archivo",
|
||||
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
|
||||
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Error al copiar el archivo al destino (copiado: %1$s, tamaño esperado: %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." : "Se esperaba un tamaño de archivo de %1$s pero se leyó (desde el cliente Nextcloud) y se escribió (en el almacenamiento Nextcloud) %2$s. Podría ser un problema de red en el lado del envío o un problema de escritura en el almacenamiento en el lado del servidor.",
|
||||
"Could not rename part file to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema.",
|
||||
"Could not rename part file to final file, canceled by hook" : "No se pudo renombrar del archivo parcial como el archivo final, cancelado por el sistema.",
|
||||
"Could not rename part file to final file" : "No se ha podido renombrar el archivo parcial como el archivo final",
|
||||
"Failed to check file size: %1$s" : "Fallo al comprobar el tamaño del archivo: %1$s",
|
||||
"Could not open file: %1$s, file does seem to exist" : "No se pudo abrir el archivo: %1$s, parece que el archivo existe",
|
||||
@@ -260,24 +260,24 @@ OC.L10N.register(
|
||||
"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\"." : "La sincronización DAV de la libreta de direcciones del sistema no se ha ejecutado ya que su instancia tiene más de 1000 usuarios o por que ha ocurrido un error. Por favor, ejecútela manualmente llamando al comando: \"occ dav:sync-system-addressbook\".",
|
||||
"WebDAV endpoint" : "Endpoint WebDAV",
|
||||
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "No se pudo verificar si su servidor web está adecuadamente configurado para permitir la sincronización de archivos a través de WebDAV. Por favor, verifique manualmente.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web todavía no está configurado correctamente para permitir la sincronización de archivos, porque la interfaz WebDAV parece estar rota.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Su servidor web todavía no está configurado correctamente para permitir la sincronización de archivos, porque la interfaz WebDAV parece estar rota.",
|
||||
"Your web server is properly set up to allow file synchronization over WebDAV." : "Su servidor web está adecuadamente configurado para permitir la sincronización de archivos a través de WebDAV.",
|
||||
"Migrated calendar (%1$s)" : "Calendario migrado (%1$s)",
|
||||
"Migrated calendar (%1$s)" : "Se migró el calendario (%1$s)",
|
||||
"Calendars including events, details and attendees" : "Calendarios que incluyen eventos, detalles y asistentes",
|
||||
"Contacts and groups" : "Contactos y grupos",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Absence saved" : "Ausencia guardada",
|
||||
"Failed to save your absence settings" : "Error al guardar tus ajustes de ausencia",
|
||||
"Failed to save your absence settings" : "Error al guardar sus ajustes de ausencia",
|
||||
"Absence cleared" : "Ausencia limpiada",
|
||||
"Failed to clear your absence settings" : "Error al borrar tus ajustes de ausencia",
|
||||
"Failed to clear your absence settings" : "Error al borrar sus ajustes de ausencia",
|
||||
"First day" : "Primer día",
|
||||
"Last day (inclusive)" : "Último día (incluido)",
|
||||
"Out of office replacement (optional)" : "Sustituto durante vacaciones/ausencia (opcional)",
|
||||
"Name of the replacement" : "Nombre del sustituto",
|
||||
"No results." : "Sin resultados.",
|
||||
"Start typing." : "Empieza a escribir.",
|
||||
"Start typing." : "Empiece a escribir.",
|
||||
"Short absence status" : "Estado de ausencia corta",
|
||||
"Long absence Message" : "Mensaje en ausencia larga",
|
||||
"Long absence Message" : "Mensaje de ausencia larga",
|
||||
"Save" : "Guardar",
|
||||
"Disable absence" : "Deshabilitar ausencia",
|
||||
"Failed to load availability" : "No se ha podido cargar la disponibilidad",
|
||||
@@ -285,13 +285,13 @@ OC.L10N.register(
|
||||
"Failed to save availability" : "No se ha podido guardar la disponibilidad",
|
||||
"Time zone:" : "Zona horaria:",
|
||||
"to" : "para",
|
||||
"Delete slot" : "Eliminar espacio",
|
||||
"No working hours set" : "No se han establecido horas de funcionamiento",
|
||||
"Add slot" : "Añadir espacio",
|
||||
"Delete slot" : "Eliminar franja de tiempo",
|
||||
"No working hours set" : "No se han establecido horas laborales",
|
||||
"Add slot" : "Añadir franja horaria",
|
||||
"Weekdays" : "Días de semana",
|
||||
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
|
||||
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" cuando no esté disponible para silenciar todas las notificaciones.",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" fuera de las horas de disponibilidad para silenciar todas las notificaciones.",
|
||||
"Cancel" : "Cancelar",
|
||||
"Import" : "Importar",
|
||||
"Error while saving settings" : "Error al guardar los ajustes",
|
||||
@@ -300,7 +300,7 @@ OC.L10N.register(
|
||||
"Contact imported successfully" : "El contacto se importó exitosamente",
|
||||
"Error while importing contact" : "Error al importar el contacto",
|
||||
"Import contact" : "Importar contacto",
|
||||
"Reset to default" : "Reestablecer a predeterminado",
|
||||
"Reset to default" : "Restablecer a predeterminado",
|
||||
"Import contacts" : "Importar contactos",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importar un nuevo archivo .vcf eliminará el contacto predeterminado existente y lo reemplazará con el nuevo. ¿Desea continuar?",
|
||||
"Failed to save example event creation setting" : "Fallo al guardar el ajuste de creación de evento de ejemplo",
|
||||
@@ -314,7 +314,7 @@ OC.L10N.register(
|
||||
"Availability" : "Disponibilidad",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
|
||||
"Absence" : "Ausencia",
|
||||
"Configure your next absence period." : "Configura el siguiente periodo en que estarás ausente",
|
||||
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
|
||||
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}app de Calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
|
||||
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor web{linkclose}",
|
||||
"Calendar server" : "Servidor de calendario",
|
||||
|
||||
+25
-25
@@ -206,28 +206,28 @@
|
||||
"{actor} unshared address book {addressbook} from you" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con Ud.",
|
||||
"You unshared address book {addressbook} from {user}" : "Ud. ha dejado de compartir la libreta de direcciones {addressbook} con {user}",
|
||||
"{actor} unshared address book {addressbook} from {user}" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con {user}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} dejó de compartir la libreta de direcciones {addressbook} consigo mismo",
|
||||
"You shared address book {addressbook} with group {group}" : "Has compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} dejó de compartir su propia libreta de direcciones {addressbook}",
|
||||
"You shared address book {addressbook} with group {group}" : "Ud. ha compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} shared address book {addressbook} with group {group}" : "{actor} ha compartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"You unshared address book {addressbook} from group {group}" : "Has descompartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} ha descompartido la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} ha creado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You created contact {card} in address book {addressbook}" : "Has creado un contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You unshared address book {addressbook} from group {group}" : "Ud. ha dejado de compartir la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} ha dejado de compartir la libreta de direcciones {addressbook} con el grupo {group}",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} ha creado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You created contact {card} in address book {addressbook}" : "Ud. ha creado un contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} ha eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Has eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Ud. ha eliminado el contacto {card} de la libreta de direcciones {addressbook}",
|
||||
"{actor} updated contact {card} in address book {addressbook}" : "{actor} ha actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"You updated contact {card} in address book {addressbook}" : "Has actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Se ha modificado un <strong>contacto</strong> o una <strong>libreta de direcciones</strong> ",
|
||||
"You updated contact {card} in address book {addressbook}" : "Ud. ha actualizado el contacto {card} en la libreta de direcciones {addressbook}",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Se ha modificado un <strong>contacto</strong> o una <strong>libreta de direcciones</strong>",
|
||||
"Accounts" : "Cuentas",
|
||||
"System address book which holds all accounts" : "Libretas de direcciones del sistema que contienen todas las cuentas",
|
||||
"System address book which holds all accounts" : "Libreta de direcciones del sistema que contiene todas las cuentas",
|
||||
"File is not updatable: %1$s" : "El archivo no se puede actualizar: %1$s",
|
||||
"Failed to get storage for file" : "Error al obtener almacenamiento para el archivo",
|
||||
"Could not write to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema.",
|
||||
"Failed to get storage for file" : "Error al obtener datos de almacenamiento para el archivo",
|
||||
"Could not write to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema",
|
||||
"Could not write file contents" : "No se han podido escribir los contenidos del archivo",
|
||||
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
|
||||
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Error al copiar el archivo al destino (copiado: %1$s, tamaño esperado: %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." : "Se esperaba un tamaño de archivo de %1$s pero se leyó (desde el cliente Nextcloud) y se escribió (en el almacenamiento Nextcloud) %2$s. Podría ser un problema de red en el lado del envío o un problema de escritura en el almacenamiento en el lado del servidor.",
|
||||
"Could not rename part file to final file, canceled by hook" : "No se pudo escribir en el archivo final, cancelado por el sistema.",
|
||||
"Could not rename part file to final file, canceled by hook" : "No se pudo renombrar del archivo parcial como el archivo final, cancelado por el sistema.",
|
||||
"Could not rename part file to final file" : "No se ha podido renombrar el archivo parcial como el archivo final",
|
||||
"Failed to check file size: %1$s" : "Fallo al comprobar el tamaño del archivo: %1$s",
|
||||
"Could not open file: %1$s, file does seem to exist" : "No se pudo abrir el archivo: %1$s, parece que el archivo existe",
|
||||
@@ -258,24 +258,24 @@
|
||||
"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\"." : "La sincronización DAV de la libreta de direcciones del sistema no se ha ejecutado ya que su instancia tiene más de 1000 usuarios o por que ha ocurrido un error. Por favor, ejecútela manualmente llamando al comando: \"occ dav:sync-system-addressbook\".",
|
||||
"WebDAV endpoint" : "Endpoint WebDAV",
|
||||
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "No se pudo verificar si su servidor web está adecuadamente configurado para permitir la sincronización de archivos a través de WebDAV. Por favor, verifique manualmente.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web todavía no está configurado correctamente para permitir la sincronización de archivos, porque la interfaz WebDAV parece estar rota.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Su servidor web todavía no está configurado correctamente para permitir la sincronización de archivos, porque la interfaz WebDAV parece estar rota.",
|
||||
"Your web server is properly set up to allow file synchronization over WebDAV." : "Su servidor web está adecuadamente configurado para permitir la sincronización de archivos a través de WebDAV.",
|
||||
"Migrated calendar (%1$s)" : "Calendario migrado (%1$s)",
|
||||
"Migrated calendar (%1$s)" : "Se migró el calendario (%1$s)",
|
||||
"Calendars including events, details and attendees" : "Calendarios que incluyen eventos, detalles y asistentes",
|
||||
"Contacts and groups" : "Contactos y grupos",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Absence saved" : "Ausencia guardada",
|
||||
"Failed to save your absence settings" : "Error al guardar tus ajustes de ausencia",
|
||||
"Failed to save your absence settings" : "Error al guardar sus ajustes de ausencia",
|
||||
"Absence cleared" : "Ausencia limpiada",
|
||||
"Failed to clear your absence settings" : "Error al borrar tus ajustes de ausencia",
|
||||
"Failed to clear your absence settings" : "Error al borrar sus ajustes de ausencia",
|
||||
"First day" : "Primer día",
|
||||
"Last day (inclusive)" : "Último día (incluido)",
|
||||
"Out of office replacement (optional)" : "Sustituto durante vacaciones/ausencia (opcional)",
|
||||
"Name of the replacement" : "Nombre del sustituto",
|
||||
"No results." : "Sin resultados.",
|
||||
"Start typing." : "Empieza a escribir.",
|
||||
"Start typing." : "Empiece a escribir.",
|
||||
"Short absence status" : "Estado de ausencia corta",
|
||||
"Long absence Message" : "Mensaje en ausencia larga",
|
||||
"Long absence Message" : "Mensaje de ausencia larga",
|
||||
"Save" : "Guardar",
|
||||
"Disable absence" : "Deshabilitar ausencia",
|
||||
"Failed to load availability" : "No se ha podido cargar la disponibilidad",
|
||||
@@ -283,13 +283,13 @@
|
||||
"Failed to save availability" : "No se ha podido guardar la disponibilidad",
|
||||
"Time zone:" : "Zona horaria:",
|
||||
"to" : "para",
|
||||
"Delete slot" : "Eliminar espacio",
|
||||
"No working hours set" : "No se han establecido horas de funcionamiento",
|
||||
"Add slot" : "Añadir espacio",
|
||||
"Delete slot" : "Eliminar franja de tiempo",
|
||||
"No working hours set" : "No se han establecido horas laborales",
|
||||
"Add slot" : "Añadir franja horaria",
|
||||
"Weekdays" : "Días de semana",
|
||||
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
|
||||
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" cuando no esté disponible para silenciar todas las notificaciones.",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" fuera de las horas de disponibilidad para silenciar todas las notificaciones.",
|
||||
"Cancel" : "Cancelar",
|
||||
"Import" : "Importar",
|
||||
"Error while saving settings" : "Error al guardar los ajustes",
|
||||
@@ -298,7 +298,7 @@
|
||||
"Contact imported successfully" : "El contacto se importó exitosamente",
|
||||
"Error while importing contact" : "Error al importar el contacto",
|
||||
"Import contact" : "Importar contacto",
|
||||
"Reset to default" : "Reestablecer a predeterminado",
|
||||
"Reset to default" : "Restablecer a predeterminado",
|
||||
"Import contacts" : "Importar contactos",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importar un nuevo archivo .vcf eliminará el contacto predeterminado existente y lo reemplazará con el nuevo. ¿Desea continuar?",
|
||||
"Failed to save example event creation setting" : "Fallo al guardar el ajuste de creación de evento de ejemplo",
|
||||
@@ -312,7 +312,7 @@
|
||||
"Availability" : "Disponibilidad",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
|
||||
"Absence" : "Ausencia",
|
||||
"Configure your next absence period." : "Configura el siguiente periodo en que estarás ausente",
|
||||
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
|
||||
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}app de Calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
|
||||
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor web{linkclose}",
|
||||
"Calendar server" : "Servidor de calendario",
|
||||
|
||||
@@ -189,6 +189,7 @@ OC.L10N.register(
|
||||
"Second" : "Bigarrena",
|
||||
"Third" : "Hirugarrena",
|
||||
"Fourth" : "Laugarrena",
|
||||
"Fifth" : "Bosgarrena",
|
||||
"Last" : "Azkena",
|
||||
"Second Last" : "Azken aurrekoa",
|
||||
"Third Last" : "Hirugarren azkena",
|
||||
@@ -248,6 +249,11 @@ OC.L10N.register(
|
||||
"Completed on %s" : "%s-an osatua",
|
||||
"Due on %s by %s" : "%s-(e)an epemuga %s-(e)k",
|
||||
"Due on %s" : "%s-(e)an epemuga",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Ongi etorri Nextcloud Egutegira!\n\nHau gertaera erakusgarria da - aztertu plangintzaren malgutasuna Nextcloud Egutegiarekin nahi dituzun edizioak eginez!\n\nNextcloud Egutegia aukerarekin, hau egin dezakezu:\n- Sortu, editatu eta kudeatu gertaerak esfortzurik gabe.\n- Egutegi ugari sortu eta taldekideekin, lagunekin edo familiarekin partekatu.\n- Egiaztatu libre egotea eta bistaratu zure laneko orduak beste batzuei.\n- Aplikazio eta gailuekin arazorik gabe integratzea CalDAV bidez.\n- Zure esperientzia pertsonalizatu: gertaera errepikariak programatu, jakinarazpenak doitu eta bestelako ezarpenak.",
|
||||
"Example event - open me!" : "Gertaera adibidea - ireki nazazu!",
|
||||
"System Address Book" : "Sistemaren helbide-liburua",
|
||||
"The system address book contains contact information for all users in your instance." : "Sistemaren helbide-liburuak zure instantziako erabiltzaile guztien kontaktu-informazioa dauka.",
|
||||
"Enable System Address Book" : "Gaitu sistemaren helbide-liburua",
|
||||
"DAV system address book" : "DAV sistemaren helbide-liburua",
|
||||
"No outstanding DAV system address book sync." : "Ez dago DAV sistema helbide-liburuaren sinkronizazio arrarorik.",
|
||||
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV sistemaren helbide-liburuaren sinkronizazioa oraindik ez da martxan jarri zure instantziak 1000 erabiltzaile baino gehiago dituelako edo akats bat gertatu delako. Mesedez, exekutatu eskuz \"occ dav:sync-system-addressbook\" deituz.",
|
||||
@@ -288,7 +294,22 @@ OC.L10N.register(
|
||||
"Cancel" : "Utzi",
|
||||
"Import" : "Inportatu",
|
||||
"Error while saving settings" : "Errorea ezarpenak gordetzean",
|
||||
"Contact reset successfully" : "Kontaktua behar bezala berrezarri da",
|
||||
"Error while resetting contact" : "Errorea kontaktua berrezartzean",
|
||||
"Contact imported successfully" : "Kontaktua behar bezala inportatu da",
|
||||
"Error while importing contact" : "Errorea kontaktua inportatzean",
|
||||
"Import contact" : "Inportatu kontaktua",
|
||||
"Reset to default" : "Berezarri balio lehenetsira",
|
||||
"Import contacts" : "Inportatu kontaktuak",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : ".vcf fitxategi berri bat inportatzean, lehendik dagoen kontaktu lehenetsia ezabatu eta berriarekin ordeztuko da. Jarraitu nahi duzu?",
|
||||
"Failed to save example event creation setting" : "Adibide gertaeraren sortze ezarpenak gordetzeak huts egin du",
|
||||
"Failed to upload the example event" : "Adibide gertaera igotzeak huts egin du",
|
||||
"Custom example event was saved successfully" : "Adibide gertaera pertsonalizatua behar bezala gorde da",
|
||||
"Failed to delete the custom example event" : "Adibide gertaera pertsonalizatua ezabatzeak huts egin du",
|
||||
"Custom example event was deleted successfully" : "Adibide gertaera pertsonalizatua behar bezala ezabatu da.",
|
||||
"Import calendar event" : "Inportatu egutegiko gertaera",
|
||||
"Uploading a new event will overwrite the existing one." : "Gertaera berri bat igotzeak dagoena gainidatz dezake",
|
||||
"Upload event" : "Igo gertaera",
|
||||
"Availability" : "Eskuragarritasuna",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
|
||||
"Absence" : "Absentzia",
|
||||
@@ -305,6 +326,8 @@ OC.L10N.register(
|
||||
"Send reminder notifications to calendar sharees as well" : "Bidali gogorarazpen jakinarazpenak egutegi partekatzea dutenei ere",
|
||||
"Reminders are always sent to organizers and attendees." : "Gogorarazpenak beti bidaltzen zaizkie antolatzaileei eta parte-hartzaileei.",
|
||||
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
|
||||
"Example content" : "Adibideko edukia",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Adibideko edukiak Nextcloud-en ezaugarriak erakusteko balio du. Eduki lehenetsia Nextcloud-ekin bidaltzen da, eta eduki pertsonalizatuarekin ordezka daiteke.",
|
||||
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
|
||||
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
|
||||
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
"Second" : "Bigarrena",
|
||||
"Third" : "Hirugarrena",
|
||||
"Fourth" : "Laugarrena",
|
||||
"Fifth" : "Bosgarrena",
|
||||
"Last" : "Azkena",
|
||||
"Second Last" : "Azken aurrekoa",
|
||||
"Third Last" : "Hirugarren azkena",
|
||||
@@ -246,6 +247,11 @@
|
||||
"Completed on %s" : "%s-an osatua",
|
||||
"Due on %s by %s" : "%s-(e)an epemuga %s-(e)k",
|
||||
"Due on %s" : "%s-(e)an epemuga",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Ongi etorri Nextcloud Egutegira!\n\nHau gertaera erakusgarria da - aztertu plangintzaren malgutasuna Nextcloud Egutegiarekin nahi dituzun edizioak eginez!\n\nNextcloud Egutegia aukerarekin, hau egin dezakezu:\n- Sortu, editatu eta kudeatu gertaerak esfortzurik gabe.\n- Egutegi ugari sortu eta taldekideekin, lagunekin edo familiarekin partekatu.\n- Egiaztatu libre egotea eta bistaratu zure laneko orduak beste batzuei.\n- Aplikazio eta gailuekin arazorik gabe integratzea CalDAV bidez.\n- Zure esperientzia pertsonalizatu: gertaera errepikariak programatu, jakinarazpenak doitu eta bestelako ezarpenak.",
|
||||
"Example event - open me!" : "Gertaera adibidea - ireki nazazu!",
|
||||
"System Address Book" : "Sistemaren helbide-liburua",
|
||||
"The system address book contains contact information for all users in your instance." : "Sistemaren helbide-liburuak zure instantziako erabiltzaile guztien kontaktu-informazioa dauka.",
|
||||
"Enable System Address Book" : "Gaitu sistemaren helbide-liburua",
|
||||
"DAV system address book" : "DAV sistemaren helbide-liburua",
|
||||
"No outstanding DAV system address book sync." : "Ez dago DAV sistema helbide-liburuaren sinkronizazio arrarorik.",
|
||||
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV sistemaren helbide-liburuaren sinkronizazioa oraindik ez da martxan jarri zure instantziak 1000 erabiltzaile baino gehiago dituelako edo akats bat gertatu delako. Mesedez, exekutatu eskuz \"occ dav:sync-system-addressbook\" deituz.",
|
||||
@@ -286,7 +292,22 @@
|
||||
"Cancel" : "Utzi",
|
||||
"Import" : "Inportatu",
|
||||
"Error while saving settings" : "Errorea ezarpenak gordetzean",
|
||||
"Contact reset successfully" : "Kontaktua behar bezala berrezarri da",
|
||||
"Error while resetting contact" : "Errorea kontaktua berrezartzean",
|
||||
"Contact imported successfully" : "Kontaktua behar bezala inportatu da",
|
||||
"Error while importing contact" : "Errorea kontaktua inportatzean",
|
||||
"Import contact" : "Inportatu kontaktua",
|
||||
"Reset to default" : "Berezarri balio lehenetsira",
|
||||
"Import contacts" : "Inportatu kontaktuak",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : ".vcf fitxategi berri bat inportatzean, lehendik dagoen kontaktu lehenetsia ezabatu eta berriarekin ordeztuko da. Jarraitu nahi duzu?",
|
||||
"Failed to save example event creation setting" : "Adibide gertaeraren sortze ezarpenak gordetzeak huts egin du",
|
||||
"Failed to upload the example event" : "Adibide gertaera igotzeak huts egin du",
|
||||
"Custom example event was saved successfully" : "Adibide gertaera pertsonalizatua behar bezala gorde da",
|
||||
"Failed to delete the custom example event" : "Adibide gertaera pertsonalizatua ezabatzeak huts egin du",
|
||||
"Custom example event was deleted successfully" : "Adibide gertaera pertsonalizatua behar bezala ezabatu da.",
|
||||
"Import calendar event" : "Inportatu egutegiko gertaera",
|
||||
"Uploading a new event will overwrite the existing one." : "Gertaera berri bat igotzeak dagoena gainidatz dezake",
|
||||
"Upload event" : "Igo gertaera",
|
||||
"Availability" : "Eskuragarritasuna",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
|
||||
"Absence" : "Absentzia",
|
||||
@@ -303,6 +324,8 @@
|
||||
"Send reminder notifications to calendar sharees as well" : "Bidali gogorarazpen jakinarazpenak egutegi partekatzea dutenei ere",
|
||||
"Reminders are always sent to organizers and attendees." : "Gogorarazpenak beti bidaltzen zaizkie antolatzaileei eta parte-hartzaileei.",
|
||||
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
|
||||
"Example content" : "Adibideko edukia",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Adibideko edukiak Nextcloud-en ezaugarriak erakusteko balio du. Eduki lehenetsia Nextcloud-ekin bidaltzen da, eta eduki pertsonalizatuarekin ordezka daiteke.",
|
||||
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
|
||||
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
|
||||
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
|
||||
|
||||
@@ -1110,7 +1110,7 @@ class IMipService {
|
||||
$sequence = $iTipMessage->sequence;
|
||||
$recurrenceId = isset($vevent->{'RECURRENCE-ID'})
|
||||
? $vevent->{'RECURRENCE-ID'}->serialize() : null;
|
||||
$uid = $vevent->{'UID'};
|
||||
$uid = $vevent->{'UID'}?->getValue();
|
||||
|
||||
$query = $this->db->getQueryBuilder();
|
||||
$query->insert('calendar_invitations')
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
namespace OCA\DAV\CardDAV;
|
||||
|
||||
use OCA\DAV\DAV\Sharing\IShareable;
|
||||
use OCA\DAV\Exception\UnsupportedLimitOnInitialSyncException;
|
||||
use OCP\DB\Exception;
|
||||
use OCP\IL10N;
|
||||
use OCP\Server;
|
||||
@@ -234,9 +233,6 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable, IMov
|
||||
}
|
||||
|
||||
public function getChanges($syncToken, $syncLevel, $limit = null) {
|
||||
if (!$syncToken && $limit) {
|
||||
throw new UnsupportedLimitOnInitialSyncException();
|
||||
}
|
||||
|
||||
return parent::getChanges($syncToken, $syncLevel, $limit);
|
||||
}
|
||||
@@ -250,7 +246,12 @@ class AddressBook extends \Sabre\CardDAV\AddressBook implements IShareable, IMov
|
||||
}
|
||||
|
||||
try {
|
||||
return $this->carddavBackend->moveCard($sourceNode->getAddressbookId(), (int)$this->addressBookInfo['id'], $sourceNode->getUri(), $sourceNode->getOwner());
|
||||
return $this->carddavBackend->moveCard(
|
||||
$sourceNode->getAddressbookId(),
|
||||
$sourceNode->getUri(),
|
||||
$this->getResourceId(),
|
||||
$targetName,
|
||||
);
|
||||
} catch (Exception $e) {
|
||||
// Avoid injecting LoggerInterface everywhere
|
||||
Server::get(LoggerInterface::class)->error('Could not move calendar object: ' . $e->getMessage(), ['exception' => $e]);
|
||||
|
||||
@@ -152,6 +152,10 @@ class AddressBookImpl implements IAddressBookEnabled {
|
||||
$permissions = $this->addressBook->getACL();
|
||||
$result = 0;
|
||||
foreach ($permissions as $permission) {
|
||||
if ($this->addressBookInfo['principaluri'] !== $permission['principal']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch ($permission['privilege']) {
|
||||
case '{DAV:}read':
|
||||
$result |= Constants::PERMISSION_READ;
|
||||
|
||||
@@ -23,6 +23,7 @@ use OCP\AppFramework\Db\TTransactional;
|
||||
use OCP\DB\Exception;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IUserManager;
|
||||
use PDO;
|
||||
@@ -59,6 +60,7 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
private IUserManager $userManager,
|
||||
private IEventDispatcher $dispatcher,
|
||||
private Sharing\Backend $sharingBackend,
|
||||
private IConfig $config,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -473,7 +475,7 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
*/
|
||||
public function getCards($addressbookId) {
|
||||
$query = $this->db->getQueryBuilder();
|
||||
$query->select(['id', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
$query->select(['id', 'addressbookid', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
->from($this->dbCardsTable)
|
||||
->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressbookId)));
|
||||
|
||||
@@ -510,7 +512,7 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
*/
|
||||
public function getCard($addressBookId, $cardUri) {
|
||||
$query = $this->db->getQueryBuilder();
|
||||
$query->select(['id', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
$query->select(['id', 'addressbookid', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
->from($this->dbCardsTable)
|
||||
->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId)))
|
||||
->andWhere($query->expr()->eq('uri', $query->createNamedParameter($cardUri)))
|
||||
@@ -553,7 +555,7 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
$cards = [];
|
||||
|
||||
$query = $this->db->getQueryBuilder();
|
||||
$query->select(['id', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
$query->select(['id', 'addressbookid', 'uri', 'lastmodified', 'etag', 'size', 'carddata', 'uid'])
|
||||
->from($this->dbCardsTable)
|
||||
->where($query->expr()->eq('addressbookid', $query->createNamedParameter($addressBookId)))
|
||||
->andWhere($query->expr()->in('uri', $query->createParameter('uri')));
|
||||
@@ -715,32 +717,33 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function moveCard(int $sourceAddressBookId, int $targetAddressBookId, string $cardUri, string $oldPrincipalUri): bool {
|
||||
return $this->atomic(function () use ($sourceAddressBookId, $targetAddressBookId, $cardUri, $oldPrincipalUri) {
|
||||
$card = $this->getCard($sourceAddressBookId, $cardUri);
|
||||
public function moveCard(int $sourceAddressBookId, string $sourceObjectUri, int $targetAddressBookId, string $tragetObjectUri): bool {
|
||||
return $this->atomic(function () use ($sourceAddressBookId, $sourceObjectUri, $targetAddressBookId, $tragetObjectUri) {
|
||||
$card = $this->getCard($sourceAddressBookId, $sourceObjectUri);
|
||||
if (empty($card)) {
|
||||
return false;
|
||||
}
|
||||
$sourceObjectId = (int)$card['id'];
|
||||
|
||||
$query = $this->db->getQueryBuilder();
|
||||
$query->update('cards')
|
||||
->set('addressbookid', $query->createNamedParameter($targetAddressBookId, IQueryBuilder::PARAM_INT))
|
||||
->where($query->expr()->eq('uri', $query->createNamedParameter($cardUri, IQueryBuilder::PARAM_STR), IQueryBuilder::PARAM_STR))
|
||||
->set('uri', $query->createNamedParameter($tragetObjectUri, IQueryBuilder::PARAM_STR))
|
||||
->where($query->expr()->eq('uri', $query->createNamedParameter($sourceObjectUri, IQueryBuilder::PARAM_STR), IQueryBuilder::PARAM_STR))
|
||||
->andWhere($query->expr()->eq('addressbookid', $query->createNamedParameter($sourceAddressBookId, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT))
|
||||
->executeStatement();
|
||||
|
||||
$this->purgeProperties($sourceAddressBookId, (int)$card['id']);
|
||||
$this->updateProperties($sourceAddressBookId, $card['uri'], $card['carddata']);
|
||||
$this->purgeProperties($sourceAddressBookId, $sourceObjectId);
|
||||
$this->updateProperties($targetAddressBookId, $tragetObjectUri, $card['carddata']);
|
||||
|
||||
$this->addChange($sourceAddressBookId, $card['uri'], 3);
|
||||
$this->addChange($targetAddressBookId, $card['uri'], 1);
|
||||
$this->addChange($sourceAddressBookId, $sourceObjectUri, 3);
|
||||
$this->addChange($targetAddressBookId, $tragetObjectUri, 1);
|
||||
|
||||
$card = $this->getCard($targetAddressBookId, $cardUri);
|
||||
$card = $this->getCard($targetAddressBookId, $tragetObjectUri);
|
||||
// Card wasn't found - possibly because it was deleted in the meantime by a different client
|
||||
if (empty($card)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$targetAddressBookRow = $this->getAddressBookById($targetAddressBookId);
|
||||
// the address book this card is being moved to does not exist any longer
|
||||
if (empty($targetAddressBookRow)) {
|
||||
@@ -850,6 +853,8 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
* @return array
|
||||
*/
|
||||
public function getChangesForAddressBook($addressBookId, $syncToken, $syncLevel, $limit = null) {
|
||||
$maxLimit = $this->config->getSystemValueInt('carddav_sync_request_truncation', 2500);
|
||||
$limit = ($limit === null) ? $maxLimit : min($limit, $maxLimit);
|
||||
// Current synctoken
|
||||
return $this->atomic(function () use ($addressBookId, $syncToken, $syncLevel, $limit) {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
@@ -872,10 +877,35 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
'modified' => [],
|
||||
'deleted' => [],
|
||||
];
|
||||
|
||||
if ($syncToken) {
|
||||
if (str_starts_with($syncToken, 'init_')) {
|
||||
$syncValues = explode('_', $syncToken);
|
||||
$lastID = $syncValues[1];
|
||||
$initialSyncToken = $syncValues[2];
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('uri', 'operation')
|
||||
$qb->select('id', 'uri')
|
||||
->from('cards')
|
||||
->where(
|
||||
$qb->expr()->andX(
|
||||
$qb->expr()->eq('addressbookid', $qb->createNamedParameter($addressBookId)),
|
||||
$qb->expr()->gt('id', $qb->createNamedParameter($lastID)))
|
||||
)->orderBy('id')
|
||||
->setMaxResults($limit);
|
||||
$stmt = $qb->executeQuery();
|
||||
$values = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
if (count($values) === 0) {
|
||||
$result['syncToken'] = $initialSyncToken;
|
||||
$result['result_truncated'] = false;
|
||||
$result['added'] = [];
|
||||
} else {
|
||||
$lastID = $values[array_key_last($values)]['id'];
|
||||
$result['added'] = array_column($values, 'uri');
|
||||
$result['syncToken'] = count($result['added']) >= $limit ? "init_{$lastID}_$initialSyncToken" : $initialSyncToken ;
|
||||
$result['result_truncated'] = count($result['added']) >= $limit;
|
||||
}
|
||||
} elseif ($syncToken) {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('uri', 'operation', 'synctoken')
|
||||
->from('addressbookchanges')
|
||||
->where(
|
||||
$qb->expr()->andX(
|
||||
@@ -885,22 +915,31 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
)
|
||||
)->orderBy('synctoken');
|
||||
|
||||
if (is_int($limit) && $limit > 0) {
|
||||
if ($limit > 0) {
|
||||
$qb->setMaxResults($limit);
|
||||
}
|
||||
|
||||
// Fetching all changes
|
||||
$stmt = $qb->executeQuery();
|
||||
$rowCount = $stmt->rowCount();
|
||||
|
||||
$changes = [];
|
||||
$highestSyncToken = 0;
|
||||
|
||||
// This loop ensures that any duplicates are overwritten, only the
|
||||
// last change on a node is relevant.
|
||||
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
|
||||
$changes[$row['uri']] = $row['operation'];
|
||||
$highestSyncToken = $row['synctoken'];
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
|
||||
// No changes found, use current token
|
||||
if (empty($changes)) {
|
||||
$result['syncToken'] = $currentToken;
|
||||
}
|
||||
|
||||
foreach ($changes as $uri => $operation) {
|
||||
switch ($operation) {
|
||||
case 1:
|
||||
@@ -914,16 +953,43 @@ class CardDavBackend implements BackendInterface, SyncSupport {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The synctoken in oc_addressbooks is always the highest synctoken in oc_addressbookchanges for a given addressbook plus one (see addChange).
|
||||
*
|
||||
* For truncated results, it is expected that we return the highest token from the response, so the client can continue from the latest change.
|
||||
*
|
||||
* For non-truncated results, it is expected to return the currentToken. If we return the highest token, as with truncated results, the client will always think it is one change behind.
|
||||
*
|
||||
* Therefore, we differentiate between truncated and non-truncated results when returning the synctoken.
|
||||
*/
|
||||
if ($rowCount === $limit && $highestSyncToken < $currentToken) {
|
||||
$result['syncToken'] = $highestSyncToken;
|
||||
$result['result_truncated'] = true;
|
||||
}
|
||||
} else {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('uri')
|
||||
$qb->select('id', 'uri')
|
||||
->from('cards')
|
||||
->where(
|
||||
$qb->expr()->eq('addressbookid', $qb->createNamedParameter($addressBookId))
|
||||
);
|
||||
// No synctoken supplied, this is the initial sync.
|
||||
$qb->setMaxResults($limit);
|
||||
$stmt = $qb->executeQuery();
|
||||
$result['added'] = $stmt->fetchAll(\PDO::FETCH_COLUMN);
|
||||
$values = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
if (empty($values)) {
|
||||
$result['added'] = [];
|
||||
return $result;
|
||||
}
|
||||
$lastID = $values[array_key_last($values)]['id'];
|
||||
if (count($values) >= $limit) {
|
||||
$result['syncToken'] = 'init_' . $lastID . '_' . $currentToken;
|
||||
$result['result_truncated'] = true;
|
||||
}
|
||||
|
||||
$result['added'] = array_column($values, 'uri');
|
||||
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
return $result;
|
||||
|
||||
@@ -22,6 +22,7 @@ use Psr\Log\LoggerInterface;
|
||||
use Sabre\DAV\Xml\Response\MultiStatus;
|
||||
use Sabre\DAV\Xml\Service;
|
||||
use Sabre\VObject\Reader;
|
||||
use Sabre\Xml\ParseException;
|
||||
use function is_null;
|
||||
|
||||
class SyncService {
|
||||
@@ -43,9 +44,10 @@ class SyncService {
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-return list{0: ?string, 1: boolean}
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function syncRemoteAddressBook(string $url, string $userName, string $addressBookUrl, string $sharedSecret, ?string $syncToken, string $targetBookHash, string $targetPrincipal, array $targetProperties): string {
|
||||
public function syncRemoteAddressBook(string $url, string $userName, string $addressBookUrl, string $sharedSecret, ?string $syncToken, string $targetBookHash, string $targetPrincipal, array $targetProperties): array {
|
||||
// 1. create addressbook
|
||||
$book = $this->ensureSystemAddressBookExists($targetPrincipal, $targetBookHash, $targetProperties);
|
||||
$addressBookId = $book['id'];
|
||||
@@ -83,7 +85,10 @@ class SyncService {
|
||||
}
|
||||
}
|
||||
|
||||
return $response['token'];
|
||||
return [
|
||||
$response['token'],
|
||||
$response['truncated'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +132,7 @@ class SyncService {
|
||||
|
||||
private function prepareUri(string $host, string $path): string {
|
||||
/*
|
||||
* The trailing slash is important for merging the uris together.
|
||||
* The trailing slash is important for merging the uris.
|
||||
*
|
||||
* $host is stored in oc_trusted_servers.url and usually without a trailing slash.
|
||||
*
|
||||
@@ -158,7 +163,9 @@ class SyncService {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{response: array<string, array<array-key, mixed>>, token: ?string, truncated: bool}
|
||||
* @throws ClientExceptionInterface
|
||||
* @throws ParseException
|
||||
*/
|
||||
protected function requestSyncReport(string $url, string $userName, string $addressBookUrl, string $sharedSecret, ?string $syncToken): array {
|
||||
$client = $this->clientService->newClient();
|
||||
@@ -181,7 +188,7 @@ class SyncService {
|
||||
$body = $response->getBody();
|
||||
assert(is_string($body));
|
||||
|
||||
return $this->parseMultiStatus($body);
|
||||
return $this->parseMultiStatus($body, $addressBookUrl);
|
||||
}
|
||||
|
||||
protected function download(string $url, string $userName, string $sharedSecret, string $resourcePath): string {
|
||||
@@ -219,22 +226,50 @@ class SyncService {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $body
|
||||
* @return array
|
||||
* @throws \Sabre\Xml\ParseException
|
||||
* @return array{response: array<string, array<array-key, mixed>>, token: ?string, truncated: bool}
|
||||
* @throws ParseException
|
||||
*/
|
||||
private function parseMultiStatus($body) {
|
||||
$xml = new Service();
|
||||
|
||||
private function parseMultiStatus(string $body, string $addressBookUrl): array {
|
||||
/** @var MultiStatus $multiStatus */
|
||||
$multiStatus = $xml->expect('{DAV:}multistatus', $body);
|
||||
$multiStatus = (new Service())->expect('{DAV:}multistatus', $body);
|
||||
|
||||
$result = [];
|
||||
$truncated = false;
|
||||
|
||||
foreach ($multiStatus->getResponses() as $response) {
|
||||
$result[$response->getHref()] = $response->getResponseProperties();
|
||||
$href = $response->getHref();
|
||||
if ($response->getHttpStatus() === '507' && $this->isResponseForRequestUri($href, $addressBookUrl)) {
|
||||
$truncated = true;
|
||||
} else {
|
||||
$result[$response->getHref()] = $response->getResponseProperties();
|
||||
}
|
||||
}
|
||||
|
||||
return ['response' => $result, 'token' => $multiStatus->getSyncToken()];
|
||||
return ['response' => $result, 'token' => $multiStatus->getSyncToken(), 'truncated' => $truncated];
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the provided response URI corresponds to the given request URI.
|
||||
*/
|
||||
private function isResponseForRequestUri(string $responseUri, string $requestUri): bool {
|
||||
/*
|
||||
* Example response uri:
|
||||
*
|
||||
* /remote.php/dav/addressbooks/system/system/system/
|
||||
* /cloud/remote.php/dav/addressbooks/system/system/system/ (when installed in a subdirectory)
|
||||
*
|
||||
* Example request uri:
|
||||
*
|
||||
* remote.php/dav/addressbooks/system/system/system
|
||||
*
|
||||
* References:
|
||||
* https://github.com/nextcloud/3rdparty/blob/e0a509739b13820f0a62ff9cad5d0fede00e76ee/sabre/dav/lib/DAV/Sync/Plugin.php#L172-L174
|
||||
* https://github.com/nextcloud/server/blob/b40acb34a39592070d8455eb91c5364c07928c50/apps/federation/lib/SyncFederationAddressBooks.php#L41
|
||||
*/
|
||||
return str_ends_with(
|
||||
rtrim($responseUri, '/'),
|
||||
rtrim($requestUri, '/')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,6 @@ declare(strict_types=1);
|
||||
*/
|
||||
namespace OCA\DAV\CardDAV;
|
||||
|
||||
use OCA\DAV\Exception\UnsupportedLimitOnInitialSyncException;
|
||||
use OCA\Federation\TrustedServers;
|
||||
use OCP\Accounts\IAccountManager;
|
||||
use OCP\IConfig;
|
||||
@@ -212,14 +211,7 @@ class SystemAddressbook extends AddressBook {
|
||||
}
|
||||
return new Card($this->carddavBackend, $this->addressBookInfo, $obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws UnsupportedLimitOnInitialSyncException
|
||||
*/
|
||||
public function getChanges($syncToken, $syncLevel, $limit = null) {
|
||||
if (!$syncToken && $limit) {
|
||||
throw new UnsupportedLimitOnInitialSyncException();
|
||||
}
|
||||
|
||||
if (!$this->carddavBackend instanceof SyncSupport) {
|
||||
return null;
|
||||
|
||||
@@ -204,6 +204,9 @@ class File extends Node implements IFile {
|
||||
}
|
||||
}
|
||||
|
||||
$lengthHeader = $this->request->getHeader('content-length');
|
||||
$expected = $lengthHeader !== '' ? (int)$lengthHeader : null;
|
||||
|
||||
if ($partStorage->instanceOfStorage(IWriteStreamStorage::class)) {
|
||||
$isEOF = false;
|
||||
$wrappedData = CallbackWrapper::wrap($data, null, null, null, null, function ($stream) use (&$isEOF): void {
|
||||
@@ -215,7 +218,7 @@ class File extends Node implements IFile {
|
||||
$count = -1;
|
||||
try {
|
||||
/** @var IWriteStreamStorage $partStorage */
|
||||
$count = $partStorage->writeStream($internalPartPath, $wrappedData);
|
||||
$count = $partStorage->writeStream($internalPartPath, $wrappedData, $expected);
|
||||
} catch (GenericFileException $e) {
|
||||
$logger = Server::get(LoggerInterface::class);
|
||||
$logger->error('Error while writing stream to storage: ' . $e->getMessage(), ['exception' => $e, 'app' => 'webdav']);
|
||||
@@ -235,10 +238,7 @@ class File extends Node implements IFile {
|
||||
[$count, $result] = Files::streamCopy($data, $target, true);
|
||||
fclose($target);
|
||||
}
|
||||
|
||||
$lengthHeader = $this->request->getHeader('content-length');
|
||||
$expected = $lengthHeader !== '' ? (int)$lengthHeader : -1;
|
||||
if ($result === false && $expected >= 0) {
|
||||
if ($result === false && $expected !== null) {
|
||||
throw new Exception(
|
||||
$this->l10n->t(
|
||||
'Error while copying file to target location (copied: %1$s, expected filesize: %2$s)',
|
||||
@@ -253,7 +253,7 @@ class File extends Node implements IFile {
|
||||
// if content length is sent by client:
|
||||
// double check if the file was fully received
|
||||
// compare expected and actual size
|
||||
if ($expected >= 0
|
||||
if ($expected !== null
|
||||
&& $expected !== $count
|
||||
&& $this->request->getMethod() === 'PUT'
|
||||
) {
|
||||
|
||||
@@ -132,6 +132,7 @@ class RootCollection extends SimpleCollection {
|
||||
);
|
||||
|
||||
$contactsSharingBackend = Server::get(\OCA\DAV\CardDAV\Sharing\Backend::class);
|
||||
$config = Server::get(IConfig::class);
|
||||
|
||||
$pluginManager = new PluginManager(\OC::$server, Server::get(IAppManager::class));
|
||||
$usersCardDavBackend = new CardDavBackend(
|
||||
@@ -140,6 +141,7 @@ class RootCollection extends SimpleCollection {
|
||||
$userManager,
|
||||
$dispatcher,
|
||||
$contactsSharingBackend,
|
||||
$config
|
||||
);
|
||||
$usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, $pluginManager, $userSession->getUser(), $groupManager, 'principals/users');
|
||||
$usersAddressBookRoot->disableListing = $disableListing;
|
||||
@@ -150,6 +152,7 @@ class RootCollection extends SimpleCollection {
|
||||
$userManager,
|
||||
$dispatcher,
|
||||
$contactsSharingBackend,
|
||||
$config
|
||||
);
|
||||
$systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, $pluginManager, $userSession->getUser(), $groupManager, 'principals/system');
|
||||
$systemAddressBookRoot->disableListing = $disableListing;
|
||||
|
||||
@@ -241,14 +241,15 @@ class AddressBookImplTest extends TestCase {
|
||||
public static function dataTestGetPermissions(): array {
|
||||
return [
|
||||
[[], 0],
|
||||
[[['privilege' => '{DAV:}read']], 1],
|
||||
[[['privilege' => '{DAV:}write']], 6],
|
||||
[[['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 7],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}write']], 31],
|
||||
[[['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write'],['privilege' => '{DAV:}all']], 31],
|
||||
[[['privilege' => '{DAV:}all'],['privilege' => '{DAV:}read'],['privilege' => '{DAV:}write']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system']], 1],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'], ['privilege' => '{DAV:}write', 'principal' => 'principals/someone/else']], 1],
|
||||
[[['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 6],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 7],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}all', 'principal' => 'principals/system/system']], 31],
|
||||
[[['privilege' => '{DAV:}all', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}read', 'principal' => 'principals/system/system'],['privilege' => '{DAV:}write', 'principal' => 'principals/system/system']], 31],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ class AddressBookTest extends TestCase {
|
||||
$card = new Card($backend, $addressBookInfo, ['id' => 5, 'carddata' => 'RANDOM VCF DATA', 'uri' => 'something', 'addressbookid' => 23]);
|
||||
|
||||
$backend->expects($this->once())->method('moveCard')
|
||||
->with(23, 666, 'something', 'user1')
|
||||
->with(23, 'something', 666, 'new')
|
||||
->willReturn(true);
|
||||
|
||||
$addressBook->moveInto('new', 'old', $card);
|
||||
|
||||
@@ -50,6 +50,7 @@ class CardDavBackendTest extends TestCase {
|
||||
private IUserManager&MockObject $userManager;
|
||||
private IGroupManager&MockObject $groupManager;
|
||||
private IEventDispatcher&MockObject $dispatcher;
|
||||
private IConfig&MockObject $config;
|
||||
private Backend $sharingBackend;
|
||||
private IDBConnection $db;
|
||||
private CardDavBackend $backend;
|
||||
@@ -96,6 +97,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->groupManager = $this->createMock(IGroupManager::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->principal = $this->getMockBuilder(Principal::class)
|
||||
->setConstructorArgs([
|
||||
$this->userManager,
|
||||
@@ -106,7 +108,7 @@ class CardDavBackendTest extends TestCase {
|
||||
$this->createMock(IAppManager::class),
|
||||
$this->createMock(ProxyMapper::class),
|
||||
$this->createMock(KnownUserService::class),
|
||||
$this->createMock(IConfig::class),
|
||||
$this->config,
|
||||
$this->createMock(IFactory::class)
|
||||
])
|
||||
->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
|
||||
@@ -135,6 +137,7 @@ class CardDavBackendTest extends TestCase {
|
||||
$this->userManager,
|
||||
$this->dispatcher,
|
||||
$this->sharingBackend,
|
||||
$this->config,
|
||||
);
|
||||
// start every test with a empty cards_properties and cards table
|
||||
$query = $this->db->getQueryBuilder();
|
||||
@@ -231,7 +234,7 @@ class CardDavBackendTest extends TestCase {
|
||||
public function testCardOperations(): void {
|
||||
/** @var CardDavBackend&MockObject $backend */
|
||||
$backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
|
||||
->onlyMethods(['updateProperties', 'purgeProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -291,7 +294,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testMultiCard(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
|
||||
->onlyMethods(['updateProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -345,7 +348,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testMultipleUIDOnDifferentAddressbooks(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
|
||||
->onlyMethods(['updateProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -368,7 +371,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testMultipleUIDDenied(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
|
||||
->onlyMethods(['updateProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -390,7 +393,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testNoValidUID(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
|
||||
->onlyMethods(['updateProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -408,7 +411,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testDeleteWithoutCard(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
|
||||
->onlyMethods([
|
||||
'getCardId',
|
||||
'addChange',
|
||||
@@ -453,7 +456,7 @@ class CardDavBackendTest extends TestCase {
|
||||
|
||||
public function testSyncSupport(): void {
|
||||
$this->backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
|
||||
->onlyMethods(['updateProperties'])
|
||||
->getMock();
|
||||
|
||||
@@ -522,7 +525,7 @@ class CardDavBackendTest extends TestCase {
|
||||
$cardId = 2;
|
||||
|
||||
$backend = $this->getMockBuilder(CardDavBackend::class)
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
|
||||
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
|
||||
->onlyMethods(['getCardId'])->getMock();
|
||||
|
||||
$backend->expects($this->any())->method('getCardId')->willReturn($cardId);
|
||||
|
||||
@@ -108,7 +108,7 @@ class SyncServiceTest extends TestCase {
|
||||
'1',
|
||||
'principals/system/system',
|
||||
[]
|
||||
);
|
||||
)[0];
|
||||
|
||||
$this->assertEquals('http://sabre.io/ns/sync/1', $token);
|
||||
}
|
||||
@@ -179,7 +179,7 @@ END:VCARD';
|
||||
'1',
|
||||
'principals/system/system',
|
||||
[]
|
||||
);
|
||||
)[0];
|
||||
|
||||
$this->assertEquals('http://sabre.io/ns/sync/2', $token);
|
||||
}
|
||||
@@ -250,7 +250,7 @@ END:VCARD';
|
||||
'1',
|
||||
'principals/system/system',
|
||||
[]
|
||||
);
|
||||
)[0];
|
||||
|
||||
$this->assertEquals('http://sabre.io/ns/sync/3', $token);
|
||||
}
|
||||
@@ -291,7 +291,7 @@ END:VCARD';
|
||||
'1',
|
||||
'principals/system/system',
|
||||
[]
|
||||
);
|
||||
)[0];
|
||||
|
||||
$this->assertEquals('http://sabre.io/ns/sync/4', $token);
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@ OC.L10N.register(
|
||||
"encryption",
|
||||
{
|
||||
"Missing recovery key password" : "Pazudusi atkopšanas atslēgas parole",
|
||||
"Please repeat the recovery key password" : "Lūdzu atkārtot atgūšanas atslēgas paroli",
|
||||
"Please repeat the recovery key password" : "Lūgums atkārtot atkopes atslēgas paroli",
|
||||
"Repeated recovery key password does not match the provided recovery key password" : "Atkārtota atkopšanas atslēgas parole nesakrīt ar izsniegto atkopšanas atslēgu paroli",
|
||||
"Recovery key successfully enabled" : "Atkopšanas atslēga ir veiksmīgi iespējota",
|
||||
"Could not enable recovery key. Please check your recovery key password!" : "Atkopšanas atslēgu nevarēja iespējot. Lūdzu, pārbaudiet atkopšanas atslēgas paroli!",
|
||||
"Could not enable recovery key. Please check your recovery key password!" : "Atkopes atslēgu nevarēja iespējot. Lūgums pārbaudīt atkopes atslēgas paroli.",
|
||||
"Recovery key successfully disabled" : "Atkopšanas atslēga ir veiksmīgi deaktivizēta",
|
||||
"Could not disable recovery key. Please check your recovery key password!" : "Atkopšanas atslēgu nevarēja atspējot. Lūdzu, pārbaudiet atkopšanas atslēgas paroli!",
|
||||
"Could not disable recovery key. Please check your recovery key password!" : "Atkopes atslēgu nevarēja atspējot. Lūgums pārbaudīt atkopes atslēgas paroli.",
|
||||
"Missing parameters" : "Trūkstošos parametrs",
|
||||
"Please provide the old recovery password" : "Lūgums norādīt iepriekšējo atkopes paroli",
|
||||
"Please provide a new recovery password" : "Lūdzu, ievadiet jaunu paroli",
|
||||
"Please repeat the new recovery password" : "Lūdzu, atkārtojiet jauno atkopšanas paroli",
|
||||
"Please provide a new recovery password" : "Lūgums norādīt jaunu atkopes paroli",
|
||||
"Please repeat the new recovery password" : "Lūgums atkārtot jauno atkopes paroli",
|
||||
"Password successfully changed." : "Parole veiksmīgi nomainīta.",
|
||||
"Could not change the password. Maybe the old password was not correct." : "Nevarēja mainīt paroli. Varbūt vecā parole nav pareiza.",
|
||||
"Recovery Key disabled" : "Atkopšanas atslēga deaktivizēta",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{ "translations": {
|
||||
"Missing recovery key password" : "Pazudusi atkopšanas atslēgas parole",
|
||||
"Please repeat the recovery key password" : "Lūdzu atkārtot atgūšanas atslēgas paroli",
|
||||
"Please repeat the recovery key password" : "Lūgums atkārtot atkopes atslēgas paroli",
|
||||
"Repeated recovery key password does not match the provided recovery key password" : "Atkārtota atkopšanas atslēgas parole nesakrīt ar izsniegto atkopšanas atslēgu paroli",
|
||||
"Recovery key successfully enabled" : "Atkopšanas atslēga ir veiksmīgi iespējota",
|
||||
"Could not enable recovery key. Please check your recovery key password!" : "Atkopšanas atslēgu nevarēja iespējot. Lūdzu, pārbaudiet atkopšanas atslēgas paroli!",
|
||||
"Could not enable recovery key. Please check your recovery key password!" : "Atkopes atslēgu nevarēja iespējot. Lūgums pārbaudīt atkopes atslēgas paroli.",
|
||||
"Recovery key successfully disabled" : "Atkopšanas atslēga ir veiksmīgi deaktivizēta",
|
||||
"Could not disable recovery key. Please check your recovery key password!" : "Atkopšanas atslēgu nevarēja atspējot. Lūdzu, pārbaudiet atkopšanas atslēgas paroli!",
|
||||
"Could not disable recovery key. Please check your recovery key password!" : "Atkopes atslēgu nevarēja atspējot. Lūgums pārbaudīt atkopes atslēgas paroli.",
|
||||
"Missing parameters" : "Trūkstošos parametrs",
|
||||
"Please provide the old recovery password" : "Lūgums norādīt iepriekšējo atkopes paroli",
|
||||
"Please provide a new recovery password" : "Lūdzu, ievadiet jaunu paroli",
|
||||
"Please repeat the new recovery password" : "Lūdzu, atkārtojiet jauno atkopšanas paroli",
|
||||
"Please provide a new recovery password" : "Lūgums norādīt jaunu atkopes paroli",
|
||||
"Please repeat the new recovery password" : "Lūgums atkārtot jauno atkopes paroli",
|
||||
"Password successfully changed." : "Parole veiksmīgi nomainīta.",
|
||||
"Could not change the password. Maybe the old password was not correct." : "Nevarēja mainīt paroli. Varbūt vecā parole nav pareiza.",
|
||||
"Recovery Key disabled" : "Atkopšanas atslēga deaktivizēta",
|
||||
|
||||
@@ -12,6 +12,7 @@ use OC\Files\View;
|
||||
use OCA\Encryption\KeyManager;
|
||||
use OCA\Encryption\Users\Setup;
|
||||
use OCA\Encryption\Util;
|
||||
use OCP\Files\FileInfo;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUser;
|
||||
@@ -202,15 +203,19 @@ class EncryptAll {
|
||||
while ($root = array_pop($directories)) {
|
||||
$content = $this->rootView->getDirectoryContent($root);
|
||||
foreach ($content as $file) {
|
||||
$path = $root . '/' . $file['name'];
|
||||
if ($this->rootView->is_dir($path)) {
|
||||
$path = $root . '/' . $file->getName();
|
||||
if ($file->isShared()) {
|
||||
$progress->setMessage("Skip shared file/folder $path");
|
||||
$progress->advance();
|
||||
continue;
|
||||
} elseif ($file->getType() === FileInfo::TYPE_FOLDER) {
|
||||
$directories[] = $path;
|
||||
continue;
|
||||
} else {
|
||||
$progress->setMessage("encrypt files for user $userCount: $path");
|
||||
$progress->advance();
|
||||
try {
|
||||
if ($this->encryptFile($path) === false) {
|
||||
if ($this->encryptFile($file, $path) === false) {
|
||||
$progress->setMessage("encrypt files for user $userCount: $path (already encrypted)");
|
||||
$progress->advance();
|
||||
}
|
||||
@@ -231,17 +236,9 @@ class EncryptAll {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* encrypt file
|
||||
*
|
||||
* @param string $path
|
||||
* @return bool
|
||||
*/
|
||||
protected function encryptFile($path) {
|
||||
|
||||
protected function encryptFile(FileInfo $fileInfo, string $path): bool {
|
||||
// skip already encrypted files
|
||||
$fileInfo = $this->rootView->getFileInfo($path);
|
||||
if ($fileInfo !== false && $fileInfo->isEncrypted()) {
|
||||
if ($fileInfo->isEncrypted()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ class EncryptAllTest extends TestCase {
|
||||
|
||||
/**
|
||||
* We need format method to return a string
|
||||
* @var OutputFormatterInterface|\PHPUnit\Framework\MockObject\MockObject
|
||||
* @var OutputFormatterInterface&MockObject
|
||||
*/
|
||||
$outputFormatter = $this->createMock(OutputFormatterInterface::class);
|
||||
$outputFormatter->method('isDecorated')->willReturn(false);
|
||||
@@ -114,6 +114,13 @@ class EncryptAllTest extends TestCase {
|
||||
);
|
||||
}
|
||||
|
||||
protected function createFileInfoMock($type, string $name): FileInfo&MockObject {
|
||||
$fileInfo = $this->createMock(FileInfo::class);
|
||||
$fileInfo->method('getType')->willReturn($type);
|
||||
$fileInfo->method('getName')->willReturn($name);
|
||||
return $fileInfo;
|
||||
}
|
||||
|
||||
public function testEncryptAll(): void {
|
||||
/** @var EncryptAll&MockObject $encryptAll */
|
||||
$encryptAll = $this->getMockBuilder(EncryptAll::class)
|
||||
@@ -299,8 +306,8 @@ class EncryptAllTest extends TestCase {
|
||||
'',
|
||||
null,
|
||||
[
|
||||
['name' => 'foo', 'type' => 'dir'],
|
||||
['name' => 'bar', 'type' => 'file'],
|
||||
$this->createFileInfoMock(FileInfo::TYPE_FOLDER, 'foo'),
|
||||
$this->createFileInfoMock(FileInfo::TYPE_FILE, 'bar'),
|
||||
],
|
||||
],
|
||||
[
|
||||
@@ -308,26 +315,17 @@ class EncryptAllTest extends TestCase {
|
||||
'',
|
||||
null,
|
||||
[
|
||||
['name' => 'subfile', 'type' => 'file']
|
||||
$this->createFileInfoMock(FileInfo::TYPE_FILE, 'subfile'),
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
$this->view->expects($this->any())->method('is_dir')
|
||||
->willReturnCallback(
|
||||
function ($path) {
|
||||
if ($path === '/user1/files/foo') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$encryptAllCalls = [];
|
||||
$encryptAll->expects($this->exactly(2))
|
||||
->method('encryptFile')
|
||||
->willReturnCallback(function (string $path) use (&$encryptAllCalls): void {
|
||||
->willReturnCallback(function (FileInfo $file, string $path) use (&$encryptAllCalls): bool {
|
||||
$encryptAllCalls[] = $path;
|
||||
return true;
|
||||
});
|
||||
|
||||
$outputFormatter = $this->createMock(OutputFormatterInterface::class);
|
||||
@@ -362,8 +360,7 @@ class EncryptAllTest extends TestCase {
|
||||
$fileInfo = $this->createMock(FileInfo::class);
|
||||
$fileInfo->expects($this->any())->method('isEncrypted')
|
||||
->willReturn($isEncrypted);
|
||||
$this->view->expects($this->any())->method('getFileInfo')
|
||||
->willReturn($fileInfo);
|
||||
$this->view->expects($this->never())->method('getFileInfo');
|
||||
|
||||
|
||||
if ($isEncrypted) {
|
||||
@@ -375,7 +372,7 @@ class EncryptAllTest extends TestCase {
|
||||
}
|
||||
|
||||
$this->assertTrue(
|
||||
$this->invokePrivate($this->encryptAll, 'encryptFile', ['foo.txt'])
|
||||
$this->invokePrivate($this->encryptAll, 'encryptFile', [$fileInfo, 'foo.txt'])
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ class SyncFederationAddressBooks {
|
||||
$url = $trustedServer['url'];
|
||||
$callback($url, null);
|
||||
$sharedSecret = $trustedServer['shared_secret'];
|
||||
$syncToken = $trustedServer['sync_token'];
|
||||
$oldSyncToken = $trustedServer['sync_token'];
|
||||
|
||||
$endPoints = $this->ocsDiscoveryService->discover($url, 'FEDERATED_SHARING');
|
||||
$cardDavUser = $endPoints['carddav-user'] ?? 'system';
|
||||
@@ -49,10 +49,25 @@ class SyncFederationAddressBooks {
|
||||
$targetBookProperties = [
|
||||
'{DAV:}displayname' => $url
|
||||
];
|
||||
|
||||
try {
|
||||
$newToken = $this->syncService->syncRemoteAddressBook($url, $cardDavUser, $addressBookUrl, $sharedSecret, $syncToken, $targetBookId, $targetPrincipal, $targetBookProperties);
|
||||
if ($newToken !== $syncToken) {
|
||||
$this->dbHandler->setServerStatus($url, TrustedServers::STATUS_OK, $newToken);
|
||||
$syncToken = $oldSyncToken;
|
||||
|
||||
do {
|
||||
[$syncToken, $truncated] = $this->syncService->syncRemoteAddressBook(
|
||||
$url,
|
||||
$cardDavUser,
|
||||
$addressBookUrl,
|
||||
$sharedSecret,
|
||||
$syncToken,
|
||||
$targetBookId,
|
||||
$targetPrincipal,
|
||||
$targetBookProperties
|
||||
);
|
||||
} while ($truncated);
|
||||
|
||||
if ($syncToken !== $oldSyncToken) {
|
||||
$this->dbHandler->setServerStatus($url, TrustedServers::STATUS_OK, $syncToken);
|
||||
} else {
|
||||
$this->logger->debug("Sync Token for $url unchanged from previous sync");
|
||||
// The server status might have been changed to a failure status in previous runs.
|
||||
|
||||
@@ -45,7 +45,7 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
|
||||
->with('https://cloud.example.org', 1, '1');
|
||||
$syncService = $this->createMock(SyncService::class);
|
||||
$syncService->expects($this->once())->method('syncRemoteAddressBook')
|
||||
->willReturn('1');
|
||||
->willReturn(['1', false]);
|
||||
|
||||
/** @var SyncService $syncService */
|
||||
$s = new SyncFederationAddressBooks($dbHandler, $syncService, $this->discoveryService, $this->logger);
|
||||
@@ -96,7 +96,7 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
|
||||
->with('https://cloud.example.org', 1);
|
||||
$syncService = $this->createMock(SyncService::class);
|
||||
$syncService->expects($this->once())->method('syncRemoteAddressBook')
|
||||
->willReturn('0');
|
||||
->willReturn(['0', false]);
|
||||
|
||||
/** @var SyncService $syncService */
|
||||
$s = new SyncFederationAddressBooks($dbHandler, $syncService, $this->discoveryService, $this->logger);
|
||||
|
||||
@@ -52,6 +52,7 @@ OC.L10N.register(
|
||||
"Files compatibility" : "Сумяшчальнасць файлаў",
|
||||
"File Management" : "Кіраванне файламі",
|
||||
"Home" : "Дадому",
|
||||
"Target folder does not exist any more" : "Мэтавая папка больш не існуе",
|
||||
"Reload current directory" : "Перазагрузіць бягучы каталог",
|
||||
"Go to the \"{dir}\" directory" : "Перайсці да каталога \"{dir}\"",
|
||||
"Drag and drop files here to upload" : "Перацягніце файлы сюды, каб запампаваць іх",
|
||||
@@ -61,9 +62,14 @@ OC.L10N.register(
|
||||
"Folder is loading" : "Папка загружаецца",
|
||||
"Filename" : "Назва файла",
|
||||
"Folder name" : "Назва папкі",
|
||||
"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" : "Ачысціць фільтр",
|
||||
@@ -240,6 +246,7 @@ OC.L10N.register(
|
||||
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл і 1 папка","{fileCount} файлы і 1 папка","{fileCount} файлаў і 1 папка","{fileCount} файлаў і 1 папка"],
|
||||
"All folders" : "Усе папкі",
|
||||
"Personal Files" : "Асабістыя файлы",
|
||||
"Text file" : "Тэкставы файл"
|
||||
"Text file" : "Тэкставы файл",
|
||||
"%1$s (renamed)" : "%1$s (перайменаваны)"
|
||||
},
|
||||
"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);");
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
"Files compatibility" : "Сумяшчальнасць файлаў",
|
||||
"File Management" : "Кіраванне файламі",
|
||||
"Home" : "Дадому",
|
||||
"Target folder does not exist any more" : "Мэтавая папка больш не існуе",
|
||||
"Reload current directory" : "Перазагрузіць бягучы каталог",
|
||||
"Go to the \"{dir}\" directory" : "Перайсці да каталога \"{dir}\"",
|
||||
"Drag and drop files here to upload" : "Перацягніце файлы сюды, каб запампаваць іх",
|
||||
@@ -59,9 +60,14 @@
|
||||
"Folder is loading" : "Папка загружаецца",
|
||||
"Filename" : "Назва файла",
|
||||
"Folder name" : "Назва папкі",
|
||||
"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" : "Ачысціць фільтр",
|
||||
@@ -238,6 +244,7 @@
|
||||
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл і 1 папка","{fileCount} файлы і 1 папка","{fileCount} файлаў і 1 папка","{fileCount} файлаў і 1 папка"],
|
||||
"All folders" : "Усе папкі",
|
||||
"Personal Files" : "Асабістыя файлы",
|
||||
"Text file" : "Тэкставы файл"
|
||||
"Text file" : "Тэкставы файл",
|
||||
"%1$s (renamed)" : "%1$s (перайменаваны)"
|
||||
},"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);"
|
||||
}
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Noch keine Favoriten vorhanden",
|
||||
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier",
|
||||
"List of your files and folders." : "Liste deiner Dateien und Ordner",
|
||||
"Folder tree" : "Ordnerbaum",
|
||||
"List of your files and folders that are not shared." : "Liste deiner Dateien und Ordner, die nicht geteilt wurden.",
|
||||
"No personal files found" : "Keine persönlichen Dateien gefunden",
|
||||
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Noch keine Favoriten vorhanden",
|
||||
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier",
|
||||
"List of your files and folders." : "Liste deiner Dateien und Ordner",
|
||||
"Folder tree" : "Ordnerbaum",
|
||||
"List of your files and folders that are not shared." : "Liste deiner Dateien und Ordner, die nicht geteilt wurden.",
|
||||
"No personal files found" : "Keine persönlichen Dateien gefunden",
|
||||
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Noch keine Favoriten vorhanden",
|
||||
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
|
||||
"List of your files and folders." : "Liste Ihrer Dateien und Ordner.",
|
||||
"Folder tree" : "Ordnerbaum",
|
||||
"List of your files and folders that are not shared." : "Liste Ihrer Dateien und Ordner, die nicht geteilt wurden.",
|
||||
"No personal files found" : "Keine persönlichen Dateien gefunden",
|
||||
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Noch keine Favoriten vorhanden",
|
||||
"Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen",
|
||||
"List of your files and folders." : "Liste Ihrer Dateien und Ordner.",
|
||||
"Folder tree" : "Ordnerbaum",
|
||||
"List of your files and folders that are not shared." : "Liste Ihrer Dateien und Ordner, die nicht geteilt wurden.",
|
||||
"No personal files found" : "Keine persönlichen Dateien gefunden",
|
||||
"Files that are not shared will show up here." : "Dateien, die nicht geteilt wurden, werden hier angezeigt.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "No favourites yet",
|
||||
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
|
||||
"List of your files and folders." : "List of your files and folders.",
|
||||
"Folder tree" : "Folder tree",
|
||||
"List of your files and folders that are not shared." : "List of your files and folders that are not shared.",
|
||||
"No personal files found" : "No personal files found",
|
||||
"Files that are not shared will show up here." : "Files that are not shared will show up here.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "No favourites yet",
|
||||
"Files and folders you mark as favorite will show up here" : "Files and folders you mark as favourite will show up here",
|
||||
"List of your files and folders." : "List of your files and folders.",
|
||||
"Folder tree" : "Folder tree",
|
||||
"List of your files and folders that are not shared." : "List of your files and folders that are not shared.",
|
||||
"No personal files found" : "No personal files found",
|
||||
"Files that are not shared will show up here." : "Files that are not shared will show up here.",
|
||||
|
||||
+25
-16
@@ -1,9 +1,9 @@
|
||||
OC.L10N.register(
|
||||
"files",
|
||||
{
|
||||
"Added to favorites" : "Agregado a favoritos",
|
||||
"Added to favorites" : "Añadido a favoritos",
|
||||
"Removed from favorites" : "Quitado de favoritos",
|
||||
"You added {file} to your favorites" : "Has agregado {file} a tus favoritos",
|
||||
"You added {file} to your favorites" : "Has añadido {file} a tus favoritos",
|
||||
"You removed {file} from your favorites" : "Has quitado {file} de tus favoritos",
|
||||
"Favorites" : "Favoritos",
|
||||
"File changes" : "Cambios del archivo",
|
||||
@@ -39,10 +39,10 @@ OC.L10N.register(
|
||||
"{user} renamed {oldfile} to {newfile}" : "{user} ha renombrado {oldfile} a {newfile}",
|
||||
"You moved {oldfile} to {newfile}" : "Has movido {oldfile} a {newfile}",
|
||||
"{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
|
||||
"A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo fue agregado o borrado de tus <strong>favoritos</strong>",
|
||||
"A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo se ha añadido o borrado de tus <strong>favoritos</strong>",
|
||||
"Files" : "Archivos",
|
||||
"A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta",
|
||||
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>cambiado</strong>",
|
||||
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo favorito o carpeta se ha <strong>cambiado</strong>",
|
||||
"Failed to authorize" : "Fallo al autorizar",
|
||||
"Invalid folder path" : "Ruta de carpeta inválida",
|
||||
"Folder not found" : "Carpeta no encontrada",
|
||||
@@ -129,6 +129,7 @@ OC.L10N.register(
|
||||
"Search globally by filename …" : "Búsqueda global por nombre de archivo …",
|
||||
"Search here by filename …" : "Buscar aquí por nombre de archivo …",
|
||||
"Search scope options" : "Opciones de alcance de la búsqueda",
|
||||
"Filter and search from this location" : "Filtrar y buscar en esta ubicación",
|
||||
"Search globally" : "Buscar globalmente",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
|
||||
"{used} of {quota} used" : "{used} usados de {quota}",
|
||||
@@ -141,6 +142,7 @@ OC.L10N.register(
|
||||
"Create new folder" : "Crear carpeta nueva",
|
||||
"This name is already in use." : "Este nombre ya está en uso.",
|
||||
"Create" : "Crear",
|
||||
"Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto son ocultados por defecto",
|
||||
"Fill template fields" : "Rellenar los campos de la plantilla",
|
||||
"Submitting fields …" : "Enviando campos …",
|
||||
"Submit" : "Enviar",
|
||||
@@ -182,7 +184,7 @@ OC.L10N.register(
|
||||
"Loading current folder" : "Cargando carpeta actual",
|
||||
"Retry" : "Reintentar",
|
||||
"No files in here" : "Aquí no hay archivos",
|
||||
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
|
||||
"Upload some content or sync with your devices!" : "¡Sube contenido o sincroniza tus dispositivos!",
|
||||
"Go back" : "Ir atrás",
|
||||
"Views" : "Vistas",
|
||||
"Files settings" : "Configuración de archivos",
|
||||
@@ -200,16 +202,21 @@ OC.L10N.register(
|
||||
"Sort favorites first" : "Ordenar los favoritos primero",
|
||||
"Sort folders before files" : "Ordenar carpetas antes que archivos",
|
||||
"Enable folder tree" : "Habilitar el árbol de carpetas",
|
||||
"Visual settings" : "Ajustes visuales",
|
||||
"Show hidden files" : "Mostrar archivos ocultos",
|
||||
"Show file type column" : "Mostrar la columna de tipo de archivo",
|
||||
"Crop image previews" : "Recortar la previsualización de las imágenes",
|
||||
"Show files extensions" : "Mostrar extensiones de archivos",
|
||||
"Additional settings" : "Ajustes adicionales",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"WebDAV URL" : "URL de WebDAV",
|
||||
"Copy to clipboard" : "Copiar al portapapeles",
|
||||
"Use this address to access your Files via WebDAV." : "Usa esta dirección para acceder a tus Archivos a través de WebDAV.",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos pasos está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectarse a un cliente WebDAV externo.",
|
||||
"Warnings" : "Advertencias",
|
||||
"Prevent warning dialogs from open or reenable them." : "Evitar que se abran los diálogos de advertencia o volver a habilitarlos.",
|
||||
"Show a warning dialog when changing a file extension." : "Mostrar un diálogo de advertencia cuando se cambia la extensión de un archivo.",
|
||||
"Show a warning dialog when deleting files." : "Mostrar un cuadro de aviso cuando se borren archivos.",
|
||||
"Keyboard shortcuts" : "Atajos de teclado",
|
||||
"Speed up your Files experience with these quick shortcuts." : "Acelere su experiencia con Archivos con esos rápidos atajos de teclado.",
|
||||
"Open the actions menu for a file" : "Abrir el menú de acciones para un archivo",
|
||||
@@ -327,6 +334,7 @@ OC.L10N.register(
|
||||
"Templates" : "Plantillas",
|
||||
"New template folder" : "Nueva carpeta de plantillas",
|
||||
"In folder" : "En carpeta",
|
||||
"Search in all files" : "Buscar en todos los archivos",
|
||||
"Search in folder: {folder}" : "Buscar en carpeta: {folder}",
|
||||
"One of the dropped files could not be processed" : "Uno de los archivos arrastrados no puede ser procesado",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Su navegador no soporta la API de Sistema de archivos. Los directorios no se subirán",
|
||||
@@ -360,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Aún no hay favoritos",
|
||||
"Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que has marcado como favoritos",
|
||||
"List of your files and folders." : "Lista de sus archivos y carpetas.",
|
||||
"Folder tree" : "Árbol de carpetas",
|
||||
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
|
||||
"No personal files found" : "No se encontraron archivos personales",
|
||||
"Files that are not shared will show up here." : "Los archivos y carpetas que no ha compartido aparecerán aquí.",
|
||||
@@ -372,12 +381,12 @@ OC.L10N.register(
|
||||
"No entries found in this folder" : "No hay entradas en esta carpeta",
|
||||
"Select all" : "Seleccionar todo",
|
||||
"Upload too large" : "Subida demasido grande",
|
||||
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
|
||||
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
|
||||
"File could not be found" : "El archivo no se ha encontrado",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Close" : "Cerrar",
|
||||
"Could not create folder \"{dir}\"" : "No se pudo crear la carpeta \"{dir}\"",
|
||||
"Could not create folder \"{dir}\"" : "No se ha podido crear la carpeta \"{dir}\"",
|
||||
"This will stop your current uploads." : "Esto detendrá las subidas en curso.",
|
||||
"Upload cancelled." : "Subida cancelada.",
|
||||
"Processing files …" : "Procesando archivos …",
|
||||
@@ -385,7 +394,7 @@ OC.L10N.register(
|
||||
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
|
||||
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
|
||||
"Target folder \"{dir}\" does not exist any more" : "La carpeta de destino \"{dir}\" ya no existe",
|
||||
"An unknown error has occurred" : "Ha ocurrido un error desconocido",
|
||||
"An unknown error has occurred" : "Se ha producido un error desconocido",
|
||||
"File could not be uploaded" : "No se ha podido subir el archivo",
|
||||
"Uploading …" : "Subiendo …",
|
||||
"{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})",
|
||||
@@ -404,18 +413,18 @@ OC.L10N.register(
|
||||
"Select directory \"{dirName}\"" : "Seleccione la carpeta \"{dirName}\"",
|
||||
"Select file \"{fileName}\"" : "Seleccione el archivo \"{fileName}\"",
|
||||
"Unable to determine date" : "No se ha podido determinar la fecha",
|
||||
"Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", ya existe",
|
||||
"Could not move \"{file}\"" : "No se pudo mover \"{file}\"",
|
||||
"Could not move \"{file}\", target exists" : "No se ha podido mover \"{file}\", ya existe",
|
||||
"Could not move \"{file}\"" : "No se ha podido mover \"{file}\"",
|
||||
"copy" : "copiar",
|
||||
"Could not copy \"{file}\", target exists" : "No se ha podido copiar \"{file}\", ya existe el destino",
|
||||
"Could not copy \"{file}\"" : "No se ha podido copiar \"{file}\"",
|
||||
"Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}",
|
||||
"Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origin} y {nbfiles} otros archivos dentro de {destination}",
|
||||
"{newName} already exists" : "{newName} ya existe",
|
||||
"Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"",
|
||||
"Could not create file \"{file}\"" : "No se ha podido crear el archivo \"{file}\"",
|
||||
"Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe",
|
||||
"Could not create folder \"{dir}\" because it already exists" : "No se ha podido crear la carpeta \"{dir}\" porque ya existe",
|
||||
"Could not fetch file details \"{file}\"" : "No se pudieron obtener los detalles de \"{file}\"",
|
||||
"Could not fetch file details \"{file}\"" : "No se han podido obtener los detalles de \"{file}\"",
|
||||
"Error deleting file \"{fileName}\"." : "Error al borrar el archivo \"{fileName}\".",
|
||||
"No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados de búsqueda en otras carpetas para {tag}{filter}{endtag}",
|
||||
"Enter more than two characters to search in other folders" : "Escriba más de dos caracteres para buscar en otras carpetas",
|
||||
@@ -428,7 +437,7 @@ OC.L10N.register(
|
||||
"Select file range" : "Seleccionar el rango de archivos",
|
||||
"{used}%" : "{used}%",
|
||||
"{used} used" : "{used} usados",
|
||||
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.",
|
||||
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo no válido.",
|
||||
"File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
|
||||
"\"/\" is not allowed inside a file name." : "\"/\" no se permite en un nombre de archivo.",
|
||||
"\"{name}\" is not an allowed filetype" : "\"{name}\" no es un tipo de archivo permitido",
|
||||
@@ -446,10 +455,10 @@ OC.L10N.register(
|
||||
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
|
||||
"Favored" : "Favorecido",
|
||||
"Favor" : "Favorecer",
|
||||
"Copy direct link (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
|
||||
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar enlace directo (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
|
||||
"Upload file" : "Subir archivo",
|
||||
"Not favored" : "No favorecido",
|
||||
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
|
||||
"An error occurred while trying to update the tags" : "Se ha producido un error al tratar de actualizar las etiquetas",
|
||||
"Upload (max. %s)" : "Subida (máx. %s)",
|
||||
"Submitting fields…" : "Enviando campos…",
|
||||
"Filter filenames…" : "Filtrar nombres de archivo…",
|
||||
|
||||
+25
-16
@@ -1,7 +1,7 @@
|
||||
{ "translations": {
|
||||
"Added to favorites" : "Agregado a favoritos",
|
||||
"Added to favorites" : "Añadido a favoritos",
|
||||
"Removed from favorites" : "Quitado de favoritos",
|
||||
"You added {file} to your favorites" : "Has agregado {file} a tus favoritos",
|
||||
"You added {file} to your favorites" : "Has añadido {file} a tus favoritos",
|
||||
"You removed {file} from your favorites" : "Has quitado {file} de tus favoritos",
|
||||
"Favorites" : "Favoritos",
|
||||
"File changes" : "Cambios del archivo",
|
||||
@@ -37,10 +37,10 @@
|
||||
"{user} renamed {oldfile} to {newfile}" : "{user} ha renombrado {oldfile} a {newfile}",
|
||||
"You moved {oldfile} to {newfile}" : "Has movido {oldfile} a {newfile}",
|
||||
"{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
|
||||
"A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo fue agregado o borrado de tus <strong>favoritos</strong>",
|
||||
"A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo se ha añadido o borrado de tus <strong>favoritos</strong>",
|
||||
"Files" : "Archivos",
|
||||
"A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta",
|
||||
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>cambiado</strong>",
|
||||
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo favorito o carpeta se ha <strong>cambiado</strong>",
|
||||
"Failed to authorize" : "Fallo al autorizar",
|
||||
"Invalid folder path" : "Ruta de carpeta inválida",
|
||||
"Folder not found" : "Carpeta no encontrada",
|
||||
@@ -127,6 +127,7 @@
|
||||
"Search globally by filename …" : "Búsqueda global por nombre de archivo …",
|
||||
"Search here by filename …" : "Buscar aquí por nombre de archivo …",
|
||||
"Search scope options" : "Opciones de alcance de la búsqueda",
|
||||
"Filter and search from this location" : "Filtrar y buscar en esta ubicación",
|
||||
"Search globally" : "Buscar globalmente",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
|
||||
"{used} of {quota} used" : "{used} usados de {quota}",
|
||||
@@ -139,6 +140,7 @@
|
||||
"Create new folder" : "Crear carpeta nueva",
|
||||
"This name is already in use." : "Este nombre ya está en uso.",
|
||||
"Create" : "Crear",
|
||||
"Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto son ocultados por defecto",
|
||||
"Fill template fields" : "Rellenar los campos de la plantilla",
|
||||
"Submitting fields …" : "Enviando campos …",
|
||||
"Submit" : "Enviar",
|
||||
@@ -180,7 +182,7 @@
|
||||
"Loading current folder" : "Cargando carpeta actual",
|
||||
"Retry" : "Reintentar",
|
||||
"No files in here" : "Aquí no hay archivos",
|
||||
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
|
||||
"Upload some content or sync with your devices!" : "¡Sube contenido o sincroniza tus dispositivos!",
|
||||
"Go back" : "Ir atrás",
|
||||
"Views" : "Vistas",
|
||||
"Files settings" : "Configuración de archivos",
|
||||
@@ -198,16 +200,21 @@
|
||||
"Sort favorites first" : "Ordenar los favoritos primero",
|
||||
"Sort folders before files" : "Ordenar carpetas antes que archivos",
|
||||
"Enable folder tree" : "Habilitar el árbol de carpetas",
|
||||
"Visual settings" : "Ajustes visuales",
|
||||
"Show hidden files" : "Mostrar archivos ocultos",
|
||||
"Show file type column" : "Mostrar la columna de tipo de archivo",
|
||||
"Crop image previews" : "Recortar la previsualización de las imágenes",
|
||||
"Show files extensions" : "Mostrar extensiones de archivos",
|
||||
"Additional settings" : "Ajustes adicionales",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"WebDAV URL" : "URL de WebDAV",
|
||||
"Copy to clipboard" : "Copiar al portapapeles",
|
||||
"Use this address to access your Files via WebDAV." : "Usa esta dirección para acceder a tus Archivos a través de WebDAV.",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos pasos está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectarse a un cliente WebDAV externo.",
|
||||
"Warnings" : "Advertencias",
|
||||
"Prevent warning dialogs from open or reenable them." : "Evitar que se abran los diálogos de advertencia o volver a habilitarlos.",
|
||||
"Show a warning dialog when changing a file extension." : "Mostrar un diálogo de advertencia cuando se cambia la extensión de un archivo.",
|
||||
"Show a warning dialog when deleting files." : "Mostrar un cuadro de aviso cuando se borren archivos.",
|
||||
"Keyboard shortcuts" : "Atajos de teclado",
|
||||
"Speed up your Files experience with these quick shortcuts." : "Acelere su experiencia con Archivos con esos rápidos atajos de teclado.",
|
||||
"Open the actions menu for a file" : "Abrir el menú de acciones para un archivo",
|
||||
@@ -325,6 +332,7 @@
|
||||
"Templates" : "Plantillas",
|
||||
"New template folder" : "Nueva carpeta de plantillas",
|
||||
"In folder" : "En carpeta",
|
||||
"Search in all files" : "Buscar en todos los archivos",
|
||||
"Search in folder: {folder}" : "Buscar en carpeta: {folder}",
|
||||
"One of the dropped files could not be processed" : "Uno de los archivos arrastrados no puede ser procesado",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Su navegador no soporta la API de Sistema de archivos. Los directorios no se subirán",
|
||||
@@ -358,6 +366,7 @@
|
||||
"No favorites yet" : "Aún no hay favoritos",
|
||||
"Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que has marcado como favoritos",
|
||||
"List of your files and folders." : "Lista de sus archivos y carpetas.",
|
||||
"Folder tree" : "Árbol de carpetas",
|
||||
"List of your files and folders that are not shared." : "Lista de sus archivos y carpetas que no están compartidos.",
|
||||
"No personal files found" : "No se encontraron archivos personales",
|
||||
"Files that are not shared will show up here." : "Los archivos y carpetas que no ha compartido aparecerán aquí.",
|
||||
@@ -370,12 +379,12 @@
|
||||
"No entries found in this folder" : "No hay entradas en esta carpeta",
|
||||
"Select all" : "Seleccionar todo",
|
||||
"Upload too large" : "Subida demasido grande",
|
||||
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
|
||||
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
|
||||
"File could not be found" : "El archivo no se ha encontrado",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Close" : "Cerrar",
|
||||
"Could not create folder \"{dir}\"" : "No se pudo crear la carpeta \"{dir}\"",
|
||||
"Could not create folder \"{dir}\"" : "No se ha podido crear la carpeta \"{dir}\"",
|
||||
"This will stop your current uploads." : "Esto detendrá las subidas en curso.",
|
||||
"Upload cancelled." : "Subida cancelada.",
|
||||
"Processing files …" : "Procesando archivos …",
|
||||
@@ -383,7 +392,7 @@
|
||||
"Unable to upload {filename} as it is a directory or has 0 bytes" : "No ha sido posible subir {filename} porque es un directorio o tiene 0 bytes",
|
||||
"Not enough free space, you are uploading {size1} but only {size2} is left" : "No hay suficiente espacio libre. Quiere subir {size1} pero solo quedan {size2}",
|
||||
"Target folder \"{dir}\" does not exist any more" : "La carpeta de destino \"{dir}\" ya no existe",
|
||||
"An unknown error has occurred" : "Ha ocurrido un error desconocido",
|
||||
"An unknown error has occurred" : "Se ha producido un error desconocido",
|
||||
"File could not be uploaded" : "No se ha podido subir el archivo",
|
||||
"Uploading …" : "Subiendo …",
|
||||
"{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})",
|
||||
@@ -402,18 +411,18 @@
|
||||
"Select directory \"{dirName}\"" : "Seleccione la carpeta \"{dirName}\"",
|
||||
"Select file \"{fileName}\"" : "Seleccione el archivo \"{fileName}\"",
|
||||
"Unable to determine date" : "No se ha podido determinar la fecha",
|
||||
"Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", ya existe",
|
||||
"Could not move \"{file}\"" : "No se pudo mover \"{file}\"",
|
||||
"Could not move \"{file}\", target exists" : "No se ha podido mover \"{file}\", ya existe",
|
||||
"Could not move \"{file}\"" : "No se ha podido mover \"{file}\"",
|
||||
"copy" : "copiar",
|
||||
"Could not copy \"{file}\", target exists" : "No se ha podido copiar \"{file}\", ya existe el destino",
|
||||
"Could not copy \"{file}\"" : "No se ha podido copiar \"{file}\"",
|
||||
"Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}",
|
||||
"Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origin} y {nbfiles} otros archivos dentro de {destination}",
|
||||
"{newName} already exists" : "{newName} ya existe",
|
||||
"Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"",
|
||||
"Could not create file \"{file}\"" : "No se ha podido crear el archivo \"{file}\"",
|
||||
"Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe",
|
||||
"Could not create folder \"{dir}\" because it already exists" : "No se ha podido crear la carpeta \"{dir}\" porque ya existe",
|
||||
"Could not fetch file details \"{file}\"" : "No se pudieron obtener los detalles de \"{file}\"",
|
||||
"Could not fetch file details \"{file}\"" : "No se han podido obtener los detalles de \"{file}\"",
|
||||
"Error deleting file \"{fileName}\"." : "Error al borrar el archivo \"{fileName}\".",
|
||||
"No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados de búsqueda en otras carpetas para {tag}{filter}{endtag}",
|
||||
"Enter more than two characters to search in other folders" : "Escriba más de dos caracteres para buscar en otras carpetas",
|
||||
@@ -426,7 +435,7 @@
|
||||
"Select file range" : "Seleccionar el rango de archivos",
|
||||
"{used}%" : "{used}%",
|
||||
"{used} used" : "{used} usados",
|
||||
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.",
|
||||
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo no válido.",
|
||||
"File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
|
||||
"\"/\" is not allowed inside a file name." : "\"/\" no se permite en un nombre de archivo.",
|
||||
"\"{name}\" is not an allowed filetype" : "\"{name}\" no es un tipo de archivo permitido",
|
||||
@@ -444,10 +453,10 @@
|
||||
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
|
||||
"Favored" : "Favorecido",
|
||||
"Favor" : "Favorecer",
|
||||
"Copy direct link (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
|
||||
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar enlace directo (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
|
||||
"Upload file" : "Subir archivo",
|
||||
"Not favored" : "No favorecido",
|
||||
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
|
||||
"An error occurred while trying to update the tags" : "Se ha producido un error al tratar de actualizar las etiquetas",
|
||||
"Upload (max. %s)" : "Subida (máx. %s)",
|
||||
"Submitting fields…" : "Enviando campos…",
|
||||
"Filter filenames…" : "Filtrar nombres de archivo…",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Lemmikuid veel pole",
|
||||
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
|
||||
"List of your files and folders." : "Sinu failide ja kaustade loend.",
|
||||
"Folder tree" : "Kaustapuu",
|
||||
"List of your files and folders that are not shared." : "Sinu mittejagatud failide ja kaustade loend",
|
||||
"No personal files found" : "Isiklikke faile ei leitud",
|
||||
"Files that are not shared will show up here." : "Siin kuvatakse faile ja kaustu, mida sa pole teistega jaganud.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Lemmikuid veel pole",
|
||||
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
|
||||
"List of your files and folders." : "Sinu failide ja kaustade loend.",
|
||||
"Folder tree" : "Kaustapuu",
|
||||
"List of your files and folders that are not shared." : "Sinu mittejagatud failide ja kaustade loend",
|
||||
"No personal files found" : "Isiklikke faile ei leitud",
|
||||
"Files that are not shared will show up here." : "Siin kuvatakse faile ja kaustu, mida sa pole teistega jaganud.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Níl aon cheanáin go fóill",
|
||||
"Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo",
|
||||
"List of your files and folders." : "Liosta de do chuid comhad agus fillteáin.",
|
||||
"Folder tree" : "Crann fillteán",
|
||||
"List of your files and folders that are not shared." : "Liosta de do chuid comhad agus fillteáin nach bhfuil roinnte.",
|
||||
"No personal files found" : "Níor aimsíodh aon chomhaid phearsanta",
|
||||
"Files that are not shared will show up here." : "Taispeánfar comhaid nach bhfuil roinnte anseo.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Níl aon cheanáin go fóill",
|
||||
"Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo",
|
||||
"List of your files and folders." : "Liosta de do chuid comhad agus fillteáin.",
|
||||
"Folder tree" : "Crann fillteán",
|
||||
"List of your files and folders that are not shared." : "Liosta de do chuid comhad agus fillteáin nach bhfuil roinnte.",
|
||||
"No personal files found" : "Níor aimsíodh aon chomhaid phearsanta",
|
||||
"Files that are not shared will show up here." : "Taispeánfar comhaid nach bhfuil roinnte anseo.",
|
||||
|
||||
@@ -277,15 +277,24 @@ OC.L10N.register(
|
||||
"This year ({year})" : "Оваа година ({year})",
|
||||
"Last year ({year})" : "Минатата година ({year})",
|
||||
"Documents" : "Документи",
|
||||
"Spreadsheets" : "Табели",
|
||||
"Presentations" : "Презентации",
|
||||
"PDFs" : "PDF-и",
|
||||
"Folders" : "Папки",
|
||||
"Audio" : "Аудио",
|
||||
"Photos and images" : "Фотографии и слики",
|
||||
"Videos" : "Видеа",
|
||||
"Created new folder \"{name}\"" : "Креирана нова папка \"{name}\"",
|
||||
"Unable to initialize the templates directory" : "Не може да се иницијализира папка за шаблони",
|
||||
"Create templates folder" : "Креирај папка за шаблони",
|
||||
"Templates" : "Шаблони",
|
||||
"New template folder" : "Нова папка за шаблони",
|
||||
"In folder" : "Во папка",
|
||||
"Search in folder: {folder}" : "Барај во папка: {folder}",
|
||||
"One of the dropped files could not be processed" : "Една од испуштените датотеки неможе да се процесоира",
|
||||
"Unable to create the directory {directory}" : "Неможе да се креира папка {directory}",
|
||||
"Some files could not be uploaded" : "Некој датотеки неможат да се прикачат",
|
||||
"Files uploaded successfully" : "Успешно прикачени датотеки",
|
||||
"Some files could not be moved" : "Некои датотеки не можат да се преместат",
|
||||
"Could not rename \"{oldName}\", it does not exist any more" : "Неможе да се преименува \"{oldName}\", не постои повеќе",
|
||||
"The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" веќе се користи во папката \"{dir}\". Ве молиме изберете друго име.",
|
||||
@@ -293,9 +302,15 @@ OC.L10N.register(
|
||||
"This operation is forbidden" : "Операцијата не е дозволена",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Овој директориум е недостапен, ве молиме проверете ги логовите или контактирајте со администраторот",
|
||||
"Storage is temporarily not available" : "Складиштето моментално не е достапно",
|
||||
"Unexpected error: {error}" : "Неочекувана грешка: {error}",
|
||||
"_%n file_::_%n files_" : ["%n датотека","%n датотеки"],
|
||||
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
|
||||
"Filename must not be empty." : "Името на датотеката не може да биде празно.",
|
||||
"\"{char}\" is not allowed inside a filename." : "\"{char}\" не е дозволен во името на датотеката.",
|
||||
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" е резервирано име и не е дозволено во името на датотеката.",
|
||||
"\"{extension}\" is not an allowed filetype." : "\"{extension}\" не е дозволен вид на датотека.",
|
||||
"Filenames must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
|
||||
"List of favorite files and folders." : "Листа на омилени датотеки и папки.",
|
||||
"No favorites yet" : "Сеуште нема фаворити",
|
||||
"Files and folders you mark as favorite will show up here" : "Датотеките и папките кои ќе ги означите како чести, ќе се појават тука",
|
||||
"List of your files and folders." : "Листа на вашите датотеки и папки.",
|
||||
@@ -397,6 +412,8 @@ OC.L10N.register(
|
||||
"Personal Files" : "Лични датотеки",
|
||||
"Text file" : "Текстуална датотека",
|
||||
"New text file.txt" : "Нова текстуална датотека file.txt",
|
||||
"%1$s (renamed)" : "%1$s (преименувано)",
|
||||
"renamed file" : "преименувана датотека",
|
||||
"Filter file names …" : "Филтрирај имиња на датотеки ..."
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
|
||||
|
||||
@@ -275,15 +275,24 @@
|
||||
"This year ({year})" : "Оваа година ({year})",
|
||||
"Last year ({year})" : "Минатата година ({year})",
|
||||
"Documents" : "Документи",
|
||||
"Spreadsheets" : "Табели",
|
||||
"Presentations" : "Презентации",
|
||||
"PDFs" : "PDF-и",
|
||||
"Folders" : "Папки",
|
||||
"Audio" : "Аудио",
|
||||
"Photos and images" : "Фотографии и слики",
|
||||
"Videos" : "Видеа",
|
||||
"Created new folder \"{name}\"" : "Креирана нова папка \"{name}\"",
|
||||
"Unable to initialize the templates directory" : "Не може да се иницијализира папка за шаблони",
|
||||
"Create templates folder" : "Креирај папка за шаблони",
|
||||
"Templates" : "Шаблони",
|
||||
"New template folder" : "Нова папка за шаблони",
|
||||
"In folder" : "Во папка",
|
||||
"Search in folder: {folder}" : "Барај во папка: {folder}",
|
||||
"One of the dropped files could not be processed" : "Една од испуштените датотеки неможе да се процесоира",
|
||||
"Unable to create the directory {directory}" : "Неможе да се креира папка {directory}",
|
||||
"Some files could not be uploaded" : "Некој датотеки неможат да се прикачат",
|
||||
"Files uploaded successfully" : "Успешно прикачени датотеки",
|
||||
"Some files could not be moved" : "Некои датотеки не можат да се преместат",
|
||||
"Could not rename \"{oldName}\", it does not exist any more" : "Неможе да се преименува \"{oldName}\", не постои повеќе",
|
||||
"The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" веќе се користи во папката \"{dir}\". Ве молиме изберете друго име.",
|
||||
@@ -291,9 +300,15 @@
|
||||
"This operation is forbidden" : "Операцијата не е дозволена",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Овој директориум е недостапен, ве молиме проверете ги логовите или контактирајте со администраторот",
|
||||
"Storage is temporarily not available" : "Складиштето моментално не е достапно",
|
||||
"Unexpected error: {error}" : "Неочекувана грешка: {error}",
|
||||
"_%n file_::_%n files_" : ["%n датотека","%n датотеки"],
|
||||
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
|
||||
"Filename must not be empty." : "Името на датотеката не може да биде празно.",
|
||||
"\"{char}\" is not allowed inside a filename." : "\"{char}\" не е дозволен во името на датотеката.",
|
||||
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" е резервирано име и не е дозволено во името на датотеката.",
|
||||
"\"{extension}\" is not an allowed filetype." : "\"{extension}\" не е дозволен вид на датотека.",
|
||||
"Filenames must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
|
||||
"List of favorite files and folders." : "Листа на омилени датотеки и папки.",
|
||||
"No favorites yet" : "Сеуште нема фаворити",
|
||||
"Files and folders you mark as favorite will show up here" : "Датотеките и папките кои ќе ги означите како чести, ќе се појават тука",
|
||||
"List of your files and folders." : "Листа на вашите датотеки и папки.",
|
||||
@@ -395,6 +410,8 @@
|
||||
"Personal Files" : "Лични датотеки",
|
||||
"Text file" : "Текстуална датотека",
|
||||
"New text file.txt" : "Нова текстуална датотека file.txt",
|
||||
"%1$s (renamed)" : "%1$s (преименувано)",
|
||||
"renamed file" : "преименувана датотека",
|
||||
"Filter file names …" : "Филтрирај имиња на датотеки ..."
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
|
||||
}
|
||||
+13
-1
@@ -29,7 +29,7 @@ OC.L10N.register(
|
||||
"{user} deleted an encrypted file in {file}" : "{user} heeft een versleuteld bestand gewist in {file}",
|
||||
"You restored {file}" : "Je herstelde {file}",
|
||||
"{user} restored {file}" : "{user} herstelde {file}",
|
||||
"You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Je hernoemde {oldfile} (verborgen) naar {newfile}",
|
||||
"You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Je hernoemde {oldfile} (verborgen) naar {newfile}(verborgen)",
|
||||
"You renamed {oldfile} (hidden) to {newfile}" : "Je hernoemde {oldfile} (verborgen) naar {newfile}",
|
||||
"You renamed {oldfile} to {newfile} (hidden)" : "Je hernoemde {oldfile} naar {newfile} (verborgen)",
|
||||
"You renamed {oldfile} to {newfile}" : "Je hernoemde {oldfile} naar {newfile}",
|
||||
@@ -142,6 +142,7 @@ OC.L10N.register(
|
||||
"Create new folder" : "Nieuwe map aanmaken",
|
||||
"This name is already in use." : "De naam is al in gebruik.",
|
||||
"Create" : "Aanmaken",
|
||||
"Files starting with a dot are hidden by default" : "Bestanden die met een punt beginnen, worden standaard verborgen",
|
||||
"Fill template fields" : "Vul de velden van het sjabloon in",
|
||||
"Submitting fields …" : "Velden verwerken ...",
|
||||
"Submit" : "Verwerken",
|
||||
@@ -201,16 +202,21 @@ OC.L10N.register(
|
||||
"Sort favorites first" : "Sorteer eerst favorieten",
|
||||
"Sort folders before files" : "Sorteer mappen voor bestanden",
|
||||
"Enable folder tree" : "Mappenboom inschakelen",
|
||||
"Visual settings" : "Visuele instellingen",
|
||||
"Show hidden files" : "Toon verborgen bestanden",
|
||||
"Show file type column" : "Toon bestandstypekolom",
|
||||
"Crop image previews" : "Snij afbeeldingvoorbeelden bij",
|
||||
"Show files extensions" : "Bestanden extensies weergeven",
|
||||
"Additional settings" : "Aanvullende instellingen",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"Copy to clipboard" : "Kopiëren naar het klembord",
|
||||
"Use this address to access your Files via WebDAV." : "Gebruik dit adres om toegang te krijgen tot je bestanden via WebDAV.",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Tweefactorauthenticatie is ingeschakeld voor jouw account en daarom moet je een app-wachtwoord gebruiken om een externe WebDAV-client aan te sluiten.",
|
||||
"Warnings" : "Waarschuwingen",
|
||||
"Prevent warning dialogs from open or reenable them." : "Voorkom dat waarschuwingsvensters worden geopend of schakel ze opnieuw in.",
|
||||
"Show a warning dialog when changing a file extension." : "Een waarschuwingsvenster tonen bij het wijzigen van een bestandsextensie.",
|
||||
"Show a warning dialog when deleting files." : "Een waarschuwingsdialoogvenster tonen bij het verwijderen van bestanden.",
|
||||
"Keyboard shortcuts" : "Toetsenbord sneltoetsen",
|
||||
"Speed up your Files experience with these quick shortcuts." : "Verbeter je interactie met bestanden met deze snelkoppelingen.",
|
||||
"Open the actions menu for a file" : "Open het actiemenu voor een bestand",
|
||||
@@ -235,6 +241,7 @@ OC.L10N.register(
|
||||
"Show those shortcuts" : "Toon die snelkoppelingen",
|
||||
"You" : "Jij",
|
||||
"Shared multiple times with different people" : "Meerdere keren gedeeld met verschillende mensen",
|
||||
"Unable to change the favorite state of the file" : "Kan de favoriete status van het bestand niet wijzigen",
|
||||
"Error while loading the file data" : "Fout bij het lezen van de bestandsgegevens",
|
||||
"Owner" : "Eigenaar",
|
||||
"Remove from favorites" : "Verwijderen uit favorieten",
|
||||
@@ -278,6 +285,8 @@ OC.L10N.register(
|
||||
"Download" : "Downloaden",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Verplaatsen \"{source}\" naar \"{destination}\" …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopiëren \"{source}\" naar \"{destination}\" …",
|
||||
"Destination is not a folder" : "Bestemming is geen map",
|
||||
"This file/folder is already in that directory" : "Dit bestand/deze map staat al in die map",
|
||||
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Je kan een bestand/map niet verplaatsen naar zichzelf of naar een subfolder van zichzelf.",
|
||||
"(copy)" : "(kopieer)",
|
||||
"(copy %n)" : "(kopieer %n)",
|
||||
@@ -325,6 +334,7 @@ OC.L10N.register(
|
||||
"Templates" : "Sjablonen",
|
||||
"New template folder" : "Nieuwe sjablonenmap",
|
||||
"In folder" : "In map",
|
||||
"Search in all files" : "Zoeken in alle bestanden",
|
||||
"Search in folder: {folder}" : "Zoeken in map: {folder}",
|
||||
"One of the dropped files could not be processed" : "Een van de bestanden kon niet verwerkt worden.",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Je browser ondersteund de Filesystem API niet. Mappen worden niet geüpload",
|
||||
@@ -358,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Nog geen favorieten",
|
||||
"Files and folders you mark as favorite will show up here" : "Bestanden en mappen die je als favoriet aanmerkt, worden hier getoond",
|
||||
"List of your files and folders." : "Lijst van je bestanden en mappen.",
|
||||
"Folder tree" : "Mapboom",
|
||||
"List of your files and folders that are not shared." : "Lijst van je bestanden en mappen die niet gedeeld zijn.",
|
||||
"No personal files found" : "Geen persoonlijke bestanden gevonden",
|
||||
"Files that are not shared will show up here." : "Niet-gedeelde bestanden worden hier getoond.",
|
||||
@@ -366,6 +377,7 @@ OC.L10N.register(
|
||||
"No recently modified files" : "Geen recent gewijzigde bestanden",
|
||||
"Files and folders you recently modified will show up here." : "Bestanden en mappen die je recent gewijzigd hebt, worden hier getoond.",
|
||||
"Search" : "Zoeken",
|
||||
"Search results within your files." : "Zoekresultaten binnen jouw bestanden.",
|
||||
"No entries found in this folder" : "Niets gevonden in deze map",
|
||||
"Select all" : "Alles selecteren",
|
||||
"Upload too large" : "Upload is te groot",
|
||||
|
||||
+13
-1
@@ -27,7 +27,7 @@
|
||||
"{user} deleted an encrypted file in {file}" : "{user} heeft een versleuteld bestand gewist in {file}",
|
||||
"You restored {file}" : "Je herstelde {file}",
|
||||
"{user} restored {file}" : "{user} herstelde {file}",
|
||||
"You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Je hernoemde {oldfile} (verborgen) naar {newfile}",
|
||||
"You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Je hernoemde {oldfile} (verborgen) naar {newfile}(verborgen)",
|
||||
"You renamed {oldfile} (hidden) to {newfile}" : "Je hernoemde {oldfile} (verborgen) naar {newfile}",
|
||||
"You renamed {oldfile} to {newfile} (hidden)" : "Je hernoemde {oldfile} naar {newfile} (verborgen)",
|
||||
"You renamed {oldfile} to {newfile}" : "Je hernoemde {oldfile} naar {newfile}",
|
||||
@@ -140,6 +140,7 @@
|
||||
"Create new folder" : "Nieuwe map aanmaken",
|
||||
"This name is already in use." : "De naam is al in gebruik.",
|
||||
"Create" : "Aanmaken",
|
||||
"Files starting with a dot are hidden by default" : "Bestanden die met een punt beginnen, worden standaard verborgen",
|
||||
"Fill template fields" : "Vul de velden van het sjabloon in",
|
||||
"Submitting fields …" : "Velden verwerken ...",
|
||||
"Submit" : "Verwerken",
|
||||
@@ -199,16 +200,21 @@
|
||||
"Sort favorites first" : "Sorteer eerst favorieten",
|
||||
"Sort folders before files" : "Sorteer mappen voor bestanden",
|
||||
"Enable folder tree" : "Mappenboom inschakelen",
|
||||
"Visual settings" : "Visuele instellingen",
|
||||
"Show hidden files" : "Toon verborgen bestanden",
|
||||
"Show file type column" : "Toon bestandstypekolom",
|
||||
"Crop image previews" : "Snij afbeeldingvoorbeelden bij",
|
||||
"Show files extensions" : "Bestanden extensies weergeven",
|
||||
"Additional settings" : "Aanvullende instellingen",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"Copy to clipboard" : "Kopiëren naar het klembord",
|
||||
"Use this address to access your Files via WebDAV." : "Gebruik dit adres om toegang te krijgen tot je bestanden via WebDAV.",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Tweefactorauthenticatie is ingeschakeld voor jouw account en daarom moet je een app-wachtwoord gebruiken om een externe WebDAV-client aan te sluiten.",
|
||||
"Warnings" : "Waarschuwingen",
|
||||
"Prevent warning dialogs from open or reenable them." : "Voorkom dat waarschuwingsvensters worden geopend of schakel ze opnieuw in.",
|
||||
"Show a warning dialog when changing a file extension." : "Een waarschuwingsvenster tonen bij het wijzigen van een bestandsextensie.",
|
||||
"Show a warning dialog when deleting files." : "Een waarschuwingsdialoogvenster tonen bij het verwijderen van bestanden.",
|
||||
"Keyboard shortcuts" : "Toetsenbord sneltoetsen",
|
||||
"Speed up your Files experience with these quick shortcuts." : "Verbeter je interactie met bestanden met deze snelkoppelingen.",
|
||||
"Open the actions menu for a file" : "Open het actiemenu voor een bestand",
|
||||
@@ -233,6 +239,7 @@
|
||||
"Show those shortcuts" : "Toon die snelkoppelingen",
|
||||
"You" : "Jij",
|
||||
"Shared multiple times with different people" : "Meerdere keren gedeeld met verschillende mensen",
|
||||
"Unable to change the favorite state of the file" : "Kan de favoriete status van het bestand niet wijzigen",
|
||||
"Error while loading the file data" : "Fout bij het lezen van de bestandsgegevens",
|
||||
"Owner" : "Eigenaar",
|
||||
"Remove from favorites" : "Verwijderen uit favorieten",
|
||||
@@ -276,6 +283,8 @@
|
||||
"Download" : "Downloaden",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Verplaatsen \"{source}\" naar \"{destination}\" …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopiëren \"{source}\" naar \"{destination}\" …",
|
||||
"Destination is not a folder" : "Bestemming is geen map",
|
||||
"This file/folder is already in that directory" : "Dit bestand/deze map staat al in die map",
|
||||
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Je kan een bestand/map niet verplaatsen naar zichzelf of naar een subfolder van zichzelf.",
|
||||
"(copy)" : "(kopieer)",
|
||||
"(copy %n)" : "(kopieer %n)",
|
||||
@@ -323,6 +332,7 @@
|
||||
"Templates" : "Sjablonen",
|
||||
"New template folder" : "Nieuwe sjablonenmap",
|
||||
"In folder" : "In map",
|
||||
"Search in all files" : "Zoeken in alle bestanden",
|
||||
"Search in folder: {folder}" : "Zoeken in map: {folder}",
|
||||
"One of the dropped files could not be processed" : "Een van de bestanden kon niet verwerkt worden.",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Je browser ondersteund de Filesystem API niet. Mappen worden niet geüpload",
|
||||
@@ -356,6 +366,7 @@
|
||||
"No favorites yet" : "Nog geen favorieten",
|
||||
"Files and folders you mark as favorite will show up here" : "Bestanden en mappen die je als favoriet aanmerkt, worden hier getoond",
|
||||
"List of your files and folders." : "Lijst van je bestanden en mappen.",
|
||||
"Folder tree" : "Mapboom",
|
||||
"List of your files and folders that are not shared." : "Lijst van je bestanden en mappen die niet gedeeld zijn.",
|
||||
"No personal files found" : "Geen persoonlijke bestanden gevonden",
|
||||
"Files that are not shared will show up here." : "Niet-gedeelde bestanden worden hier getoond.",
|
||||
@@ -364,6 +375,7 @@
|
||||
"No recently modified files" : "Geen recent gewijzigde bestanden",
|
||||
"Files and folders you recently modified will show up here." : "Bestanden en mappen die je recent gewijzigd hebt, worden hier getoond.",
|
||||
"Search" : "Zoeken",
|
||||
"Search results within your files." : "Zoekresultaten binnen jouw bestanden.",
|
||||
"No entries found in this folder" : "Niets gevonden in deze map",
|
||||
"Select all" : "Alles selecteren",
|
||||
"Upload too large" : "Upload is te groot",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Você não possui favoritos!",
|
||||
"Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.",
|
||||
"List of your files and folders." : "Lista de seus arquivos e pastas.",
|
||||
"Folder tree" : "Árvore de pastas",
|
||||
"List of your files and folders that are not shared." : "Lista dos seus arquivos e pastas que não estão compartilhados.",
|
||||
"No personal files found" : "Nenhum arquivo pessoal encontrado",
|
||||
"Files that are not shared will show up here." : "Arquivos que não estão compartilhados aparecerão aqui.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Você não possui favoritos!",
|
||||
"Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.",
|
||||
"List of your files and folders." : "Lista de seus arquivos e pastas.",
|
||||
"Folder tree" : "Árvore de pastas",
|
||||
"List of your files and folders that are not shared." : "Lista dos seus arquivos e pastas que não estão compartilhados.",
|
||||
"No personal files found" : "Nenhum arquivo pessoal encontrado",
|
||||
"Files that are not shared will show up here." : "Arquivos que não estão compartilhados aparecerão aqui.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "В избранное ещё ничего не добавлено ",
|
||||
"Files and folders you mark as favorite will show up here" : "Здесь будут показаны файлы и каталоги, отмеченные как избранные",
|
||||
"List of your files and folders." : "Список ваших файлов и каталогов.",
|
||||
"Folder tree" : "Дерево папок",
|
||||
"List of your files and folders that are not shared." : "Список ваших неопубликованных файлов и папок.",
|
||||
"No personal files found" : "Личные файлы не найдены",
|
||||
"Files that are not shared will show up here." : "Файлы, которые не опубликованы, показаны здесь.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "В избранное ещё ничего не добавлено ",
|
||||
"Files and folders you mark as favorite will show up here" : "Здесь будут показаны файлы и каталоги, отмеченные как избранные",
|
||||
"List of your files and folders." : "Список ваших файлов и каталогов.",
|
||||
"Folder tree" : "Дерево папок",
|
||||
"List of your files and folders that are not shared." : "Список ваших неопубликованных файлов и папок.",
|
||||
"No personal files found" : "Личные файлы не найдены",
|
||||
"Files that are not shared will show up here." : "Файлы, которые не опубликованы, показаны здесь.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Inga favoriter ännu",
|
||||
"Files and folders you mark as favorite will show up here" : "Filer och mappar markerade som favoriter kommer att visas här",
|
||||
"List of your files and folders." : "Lista över dina filer och mappar.",
|
||||
"Folder tree" : "Mappträd",
|
||||
"List of your files and folders that are not shared." : "Lista över dina filer och mappar som inte delas.",
|
||||
"No personal files found" : "Inga personliga filer hittades",
|
||||
"Files that are not shared will show up here." : "Filer som inte delas kommer att visas här.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Inga favoriter ännu",
|
||||
"Files and folders you mark as favorite will show up here" : "Filer och mappar markerade som favoriter kommer att visas här",
|
||||
"List of your files and folders." : "Lista över dina filer och mappar.",
|
||||
"Folder tree" : "Mappträd",
|
||||
"List of your files and folders that are not shared." : "Lista över dina filer och mappar som inte delas.",
|
||||
"No personal files found" : "Inga personliga filer hittades",
|
||||
"Files that are not shared will show up here." : "Filer som inte delas kommer att visas här.",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Bado hakuna vinavyopendwa",
|
||||
"Files and folders you mark as favorite will show up here" : "Faili na visunduku ulivyoweka alama kama vipendwa vitaonekana hapa",
|
||||
"List of your files and folders." : "Orodha ya faili na vikasha vyako",
|
||||
"Folder tree" : "Mti wa folda",
|
||||
"List of your files and folders that are not shared." : "Orodha ya faili na vikasha ambavyo havijashirikishwa",
|
||||
"No personal files found" : "Hakuna faili binafsi zilizopatikana",
|
||||
"Files that are not shared will show up here." : "Faili ambazo hazija shirikishwa zitaonekana hapa",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Bado hakuna vinavyopendwa",
|
||||
"Files and folders you mark as favorite will show up here" : "Faili na visunduku ulivyoweka alama kama vipendwa vitaonekana hapa",
|
||||
"List of your files and folders." : "Orodha ya faili na vikasha vyako",
|
||||
"Folder tree" : "Mti wa folda",
|
||||
"List of your files and folders that are not shared." : "Orodha ya faili na vikasha ambavyo havijashirikishwa",
|
||||
"No personal files found" : "Hakuna faili binafsi zilizopatikana",
|
||||
"Files that are not shared will show up here." : "Faili ambazo hazija shirikishwa zitaonekana hapa",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "Поки немає нічого, позначеного зірочкою",
|
||||
"Files and folders you mark as favorite will show up here" : "Файли та каталоги із зірочкою з’являться тут",
|
||||
"List of your files and folders." : "Список ваших файлів та каталогів.",
|
||||
"Folder tree" : "Дерево каталогів",
|
||||
"List of your files and folders that are not shared." : "Перелік ваших файлів та каталогів, які не є у спільному доступі.",
|
||||
"No personal files found" : "Мої документи не знайдено",
|
||||
"Files that are not shared will show up here." : "Тут показуватимуться файли, які не є у спільному доступі.",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "Поки немає нічого, позначеного зірочкою",
|
||||
"Files and folders you mark as favorite will show up here" : "Файли та каталоги із зірочкою з’являться тут",
|
||||
"List of your files and folders." : "Список ваших файлів та каталогів.",
|
||||
"Folder tree" : "Дерево каталогів",
|
||||
"List of your files and folders that are not shared." : "Перелік ваших файлів та каталогів, які не є у спільному доступі.",
|
||||
"No personal files found" : "Мої документи не знайдено",
|
||||
"Files that are not shared will show up here." : "Тут показуватимуться файли, які не є у спільному доступі.",
|
||||
|
||||
@@ -142,6 +142,7 @@ OC.L10N.register(
|
||||
"Create new folder" : "创建新文件夹",
|
||||
"This name is already in use." : "此名称已被使用。",
|
||||
"Create" : "创建",
|
||||
"Files starting with a dot are hidden by default" : "以点开头的文件默认是隐藏的",
|
||||
"Fill template fields" : "填写模板字段",
|
||||
"Submitting fields …" : "正在提交字段…",
|
||||
"Submit" : "使用",
|
||||
@@ -201,16 +202,21 @@ OC.L10N.register(
|
||||
"Sort favorites first" : "收藏排序优先",
|
||||
"Sort folders before files" : "将文件夹排在文件前面",
|
||||
"Enable folder tree" : "启用文件夹树",
|
||||
"Visual settings" : "视觉设置",
|
||||
"Show hidden files" : "显示隐藏文件",
|
||||
"Show file type column" : "显示文件类型列",
|
||||
"Crop image previews" : "裁剪图片预览",
|
||||
"Show files extensions" : "显示文件扩展名",
|
||||
"Additional settings" : "其他设置",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"Copy to clipboard" : "复制到剪贴板",
|
||||
"Use this address to access your Files via WebDAV." : "使用此地址通过 WebDAV 访问您的文件。",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的账号已启用双因素身份验证,因此您需要使用应用密码来连接外部 WebDAV 客户端。",
|
||||
"Warnings" : "警告",
|
||||
"Prevent warning dialogs from open or reenable them." : "防止打开或重新启用警告对话框。",
|
||||
"Show a warning dialog when changing a file extension." : "更改文件扩展名时显示警告对话框。",
|
||||
"Show a warning dialog when deleting files." : "删除文件时显示警告对话框。",
|
||||
"Keyboard shortcuts" : "键盘快捷键",
|
||||
"Speed up your Files experience with these quick shortcuts." : "这些快捷键可以加快你的“文件”体验。",
|
||||
"Open the actions menu for a file" : "打开文件的操作菜单",
|
||||
@@ -328,6 +334,7 @@ OC.L10N.register(
|
||||
"Templates" : "模板",
|
||||
"New template folder" : "新建模板文件夹",
|
||||
"In folder" : "文件夹内",
|
||||
"Search in all files" : "在所有文件中搜索",
|
||||
"Search in folder: {folder}" : "在文件夹内搜索:{folder}",
|
||||
"One of the dropped files could not be processed" : "无法处理其中一个已删除的文件",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "你的浏览器不支持文件系统API。目录不会被上传",
|
||||
@@ -361,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "暂无收藏",
|
||||
"Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示",
|
||||
"List of your files and folders." : "您的文件与文件件列表。",
|
||||
"Folder tree" : "文件夹树",
|
||||
"List of your files and folders that are not shared." : "尚未分享的文件与文件夹",
|
||||
"No personal files found" : "找不到个人文件",
|
||||
"Files that are not shared will show up here." : "尚未分享的文件会显示在此处",
|
||||
|
||||
@@ -140,6 +140,7 @@
|
||||
"Create new folder" : "创建新文件夹",
|
||||
"This name is already in use." : "此名称已被使用。",
|
||||
"Create" : "创建",
|
||||
"Files starting with a dot are hidden by default" : "以点开头的文件默认是隐藏的",
|
||||
"Fill template fields" : "填写模板字段",
|
||||
"Submitting fields …" : "正在提交字段…",
|
||||
"Submit" : "使用",
|
||||
@@ -199,16 +200,21 @@
|
||||
"Sort favorites first" : "收藏排序优先",
|
||||
"Sort folders before files" : "将文件夹排在文件前面",
|
||||
"Enable folder tree" : "启用文件夹树",
|
||||
"Visual settings" : "视觉设置",
|
||||
"Show hidden files" : "显示隐藏文件",
|
||||
"Show file type column" : "显示文件类型列",
|
||||
"Crop image previews" : "裁剪图片预览",
|
||||
"Show files extensions" : "显示文件扩展名",
|
||||
"Additional settings" : "其他设置",
|
||||
"WebDAV" : "WebDAV",
|
||||
"WebDAV URL" : "WebDAV URL",
|
||||
"Copy to clipboard" : "复制到剪贴板",
|
||||
"Use this address to access your Files via WebDAV." : "使用此地址通过 WebDAV 访问您的文件。",
|
||||
"Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的账号已启用双因素身份验证,因此您需要使用应用密码来连接外部 WebDAV 客户端。",
|
||||
"Warnings" : "警告",
|
||||
"Prevent warning dialogs from open or reenable them." : "防止打开或重新启用警告对话框。",
|
||||
"Show a warning dialog when changing a file extension." : "更改文件扩展名时显示警告对话框。",
|
||||
"Show a warning dialog when deleting files." : "删除文件时显示警告对话框。",
|
||||
"Keyboard shortcuts" : "键盘快捷键",
|
||||
"Speed up your Files experience with these quick shortcuts." : "这些快捷键可以加快你的“文件”体验。",
|
||||
"Open the actions menu for a file" : "打开文件的操作菜单",
|
||||
@@ -326,6 +332,7 @@
|
||||
"Templates" : "模板",
|
||||
"New template folder" : "新建模板文件夹",
|
||||
"In folder" : "文件夹内",
|
||||
"Search in all files" : "在所有文件中搜索",
|
||||
"Search in folder: {folder}" : "在文件夹内搜索:{folder}",
|
||||
"One of the dropped files could not be processed" : "无法处理其中一个已删除的文件",
|
||||
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "你的浏览器不支持文件系统API。目录不会被上传",
|
||||
@@ -359,6 +366,7 @@
|
||||
"No favorites yet" : "暂无收藏",
|
||||
"Files and folders you mark as favorite will show up here" : "收藏的文件和文件夹会在这里显示",
|
||||
"List of your files and folders." : "您的文件与文件件列表。",
|
||||
"Folder tree" : "文件夹树",
|
||||
"List of your files and folders that are not shared." : "尚未分享的文件与文件夹",
|
||||
"No personal files found" : "找不到个人文件",
|
||||
"Files that are not shared will show up here." : "尚未分享的文件会显示在此处",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "尚無最愛",
|
||||
"Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡",
|
||||
"List of your files and folders." : "您的檔案與資料夾清單。",
|
||||
"Folder tree" : "資料夾樹",
|
||||
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
|
||||
"No personal files found" : "找不到個人檔案",
|
||||
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "尚無最愛",
|
||||
"Files and folders you mark as favorite will show up here" : "您標記為最愛的檔案與資料夾將會顯示在這裡",
|
||||
"List of your files and folders." : "您的檔案與資料夾清單。",
|
||||
"Folder tree" : "資料夾樹",
|
||||
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
|
||||
"No personal files found" : "找不到個人檔案",
|
||||
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
|
||||
|
||||
@@ -368,6 +368,7 @@ OC.L10N.register(
|
||||
"No favorites yet" : "尚無喜愛",
|
||||
"Files and folders you mark as favorite will show up here" : "您標記為喜愛的檔案與資料夾將會顯示在這裡",
|
||||
"List of your files and folders." : "您的檔案與資料夾清單。",
|
||||
"Folder tree" : "資料夾樹",
|
||||
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
|
||||
"No personal files found" : "找不到個人檔案",
|
||||
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
|
||||
|
||||
@@ -366,6 +366,7 @@
|
||||
"No favorites yet" : "尚無喜愛",
|
||||
"Files and folders you mark as favorite will show up here" : "您標記為喜愛的檔案與資料夾將會顯示在這裡",
|
||||
"List of your files and folders." : "您的檔案與資料夾清單。",
|
||||
"Folder tree" : "資料夾樹",
|
||||
"List of your files and folders that are not shared." : "未分享的檔案與資料夾清單。",
|
||||
"No personal files found" : "找不到個人檔案",
|
||||
"Files that are not shared will show up here." : "尚未分享的檔案將會顯示在此處。",
|
||||
|
||||
@@ -117,7 +117,7 @@ class Application extends App implements IBootstrap {
|
||||
$context->registerEventListener(RenderReferenceEvent::class, RenderReferenceEventListener::class);
|
||||
$context->registerEventListener(BeforeNodeRenamedEvent::class, SyncLivePhotosListener::class);
|
||||
$context->registerEventListener(BeforeNodeDeletedEvent::class, SyncLivePhotosListener::class);
|
||||
$context->registerEventListener(CacheEntryRemovedEvent::class, SyncLivePhotosListener::class);
|
||||
$context->registerEventListener(CacheEntryRemovedEvent::class, SyncLivePhotosListener::class, 1); // Ensure this happen before the metadata are deleted.
|
||||
$context->registerEventListener(BeforeNodeCopiedEvent::class, SyncLivePhotosListener::class);
|
||||
$context->registerEventListener(NodeCopiedEvent::class, SyncLivePhotosListener::class);
|
||||
$context->registerEventListener(LoadSearchPlugins::class, LoadSearchPluginsListener::class);
|
||||
|
||||
@@ -12,11 +12,10 @@
|
||||
<script lang="ts">
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import NcContent from '@nextcloud/vue/components/NcContent'
|
||||
|
||||
import Navigation from './views/Navigation.vue'
|
||||
import FilesList from './views/FilesList.vue'
|
||||
import { useHotKeys } from './composables/useHotKeys'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'FilesApp',
|
||||
@@ -28,6 +27,9 @@ export default defineComponent({
|
||||
},
|
||||
|
||||
setup() {
|
||||
// Register global hotkeys
|
||||
useHotKeys()
|
||||
|
||||
const isPublic = isPublicShare()
|
||||
|
||||
return {
|
||||
|
||||
+50
-23
@@ -1,10 +1,14 @@
|
||||
/**
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { Location } from 'vue-router'
|
||||
|
||||
import { File, Folder, Permission, View } from '@nextcloud/files'
|
||||
import { describe, it, vi, expect, beforeEach, beforeAll, afterEach } from 'vitest'
|
||||
import { nextTick } from 'vue'
|
||||
import { enableAutoDestroy, mount } from '@vue/test-utils'
|
||||
import { describe, it, vi, expect, beforeEach, afterEach } from 'vitest'
|
||||
import { defineComponent, nextTick } from 'vue'
|
||||
import axios from '@nextcloud/axios'
|
||||
|
||||
import { getPinia } from '../store/index.ts'
|
||||
@@ -15,38 +19,64 @@ import { action as deleteAction } from '../actions/deleteAction.ts'
|
||||
import { action as favoriteAction } from '../actions/favoriteAction.ts'
|
||||
import { action as renameAction } from '../actions/renameAction.ts'
|
||||
import { action as sidebarAction } from '../actions/sidebarAction.ts'
|
||||
import { registerHotkeys } from './HotKeysService.ts'
|
||||
import { useHotKeys } from './useHotKeys.ts'
|
||||
import { useUserConfigStore } from '../store/userconfig.ts'
|
||||
|
||||
// this is the mocked current route
|
||||
const route = vi.hoisted(() => ({
|
||||
name: 'test',
|
||||
params: {
|
||||
fileId: 123,
|
||||
},
|
||||
query: {
|
||||
openFile: 'false',
|
||||
dir: '/parent/dir',
|
||||
},
|
||||
}))
|
||||
|
||||
// mocked router
|
||||
const router = vi.hoisted(() => ({
|
||||
push: vi.fn<(route: Location) => void>(),
|
||||
}))
|
||||
|
||||
vi.mock('../actions/sidebarAction.ts', { spy: true })
|
||||
vi.mock('../actions/deleteAction.ts', { spy: true })
|
||||
vi.mock('../actions/favoriteAction.ts', { spy: true })
|
||||
vi.mock('../actions/renameAction.ts', { spy: true })
|
||||
|
||||
vi.mock('vue-router/composables', () => ({
|
||||
useRoute: vi.fn(() => route),
|
||||
useRouter: vi.fn(() => router),
|
||||
}))
|
||||
|
||||
let file: File
|
||||
const view = {
|
||||
id: 'files',
|
||||
name: 'Files',
|
||||
} as View
|
||||
|
||||
vi.mock('../actions/sidebarAction.ts', { spy: true })
|
||||
vi.mock('../actions/deleteAction.ts', { spy: true })
|
||||
vi.mock('../actions/favoriteAction.ts', { spy: true })
|
||||
vi.mock('../actions/renameAction.ts', { spy: true })
|
||||
const TestComponent = defineComponent({
|
||||
name: 'test',
|
||||
setup() {
|
||||
useHotKeys()
|
||||
},
|
||||
template: '<div />',
|
||||
})
|
||||
|
||||
describe('HotKeysService testing', () => {
|
||||
const activeStore = useActiveStore(getPinia())
|
||||
|
||||
const goToRouteMock = vi.fn()
|
||||
|
||||
let initialState: HTMLInputElement
|
||||
|
||||
enableAutoDestroy(afterEach)
|
||||
|
||||
afterEach(() => {
|
||||
document.body.removeChild(initialState)
|
||||
})
|
||||
|
||||
beforeAll(() => {
|
||||
registerHotkeys()
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
// Make sure the router is reset before each test
|
||||
goToRouteMock.mockClear()
|
||||
router.push.mockClear()
|
||||
|
||||
// Make sure the file is reset before each test
|
||||
file = new File({
|
||||
@@ -66,9 +96,6 @@ describe('HotKeysService testing', () => {
|
||||
activeStore.activeNode = 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')
|
||||
initialState.setAttribute('type', 'hidden')
|
||||
initialState.setAttribute('id', 'initial-state-files_trashbin-config')
|
||||
@@ -76,6 +103,8 @@ describe('HotKeysService testing', () => {
|
||||
allow_delete: true,
|
||||
})))
|
||||
document.body.appendChild(initialState)
|
||||
|
||||
mount(TestComponent)
|
||||
})
|
||||
|
||||
it('Pressing d should open the sidebar once', () => {
|
||||
@@ -135,13 +164,11 @@ describe('HotKeysService testing', () => {
|
||||
})
|
||||
|
||||
it('Pressing alt+up should go to parent directory', () => {
|
||||
expect(goToRouteMock).toHaveBeenCalledTimes(0)
|
||||
window.OCP.Files.Router.query = { dir: '/foo/bar' }
|
||||
|
||||
expect(router.push).toHaveBeenCalledTimes(0)
|
||||
dispatchEvent({ key: 'ArrowUp', code: 'ArrowUp', altKey: true })
|
||||
|
||||
expect(goToRouteMock).toHaveBeenCalledOnce()
|
||||
expect(goToRouteMock.mock.calls[0][2].dir).toBe('/foo')
|
||||
expect(router.push).toHaveBeenCalledOnce()
|
||||
expect(router.push.mock.calls[0][0].query?.dir).toBe('/parent')
|
||||
})
|
||||
|
||||
it('Pressing v should toggle grid view', async () => {
|
||||
+28
-24
@@ -4,13 +4,15 @@
|
||||
*/
|
||||
import { useHotKey } from '@nextcloud/vue/composables/useHotKey'
|
||||
import { dirname } from 'path'
|
||||
import { useRoute, useRouter } from 'vue-router/composables'
|
||||
|
||||
import { action as deleteAction } from '../actions/deleteAction.ts'
|
||||
import { action as favoriteAction } from '../actions/favoriteAction.ts'
|
||||
import { action as renameAction } from '../actions/renameAction.ts'
|
||||
import { action as sidebarAction } from '../actions/sidebarAction.ts'
|
||||
import { executeAction } from '../utils/actionUtils.ts'
|
||||
import { useUserConfigStore } from '../store/userconfig.ts'
|
||||
import { useRouteParameters } from './useRouteParameters.ts'
|
||||
import { executeAction } from '../utils/actionUtils.ts'
|
||||
import logger from '../logger.ts'
|
||||
|
||||
/**
|
||||
@@ -18,7 +20,12 @@ import logger from '../logger.ts'
|
||||
* As much as possible, we try to have all the hotkeys in one place.
|
||||
* Please make sure to add tests for the hotkeys after adding a new one.
|
||||
*/
|
||||
export const registerHotkeys = function() {
|
||||
export function useHotKeys(): void {
|
||||
const userConfigStore = useUserConfigStore()
|
||||
const { directory } = useRouteParameters()
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
// d opens the sidebar
|
||||
useHotKey('d', () => executeAction(sidebarAction), {
|
||||
stop: true,
|
||||
@@ -57,26 +64,23 @@ export const registerHotkeys = function() {
|
||||
})
|
||||
|
||||
logger.debug('Hotkeys registered')
|
||||
}
|
||||
|
||||
const goToParentDir = function() {
|
||||
const params = window.OCP.Files.Router?.params || {}
|
||||
const query = window.OCP.Files.Router?.query || {}
|
||||
|
||||
const currentDir = (query?.dir || '/') as string
|
||||
const parentDir = dirname(currentDir)
|
||||
|
||||
logger.debug('Navigating to parent directory', { parentDir })
|
||||
window.OCP.Files.Router.goToRoute(
|
||||
null,
|
||||
{ ...params },
|
||||
{ ...query, dir: parentDir },
|
||||
)
|
||||
}
|
||||
|
||||
const toggleGridView = function() {
|
||||
const userConfigStore = useUserConfigStore()
|
||||
const value = userConfigStore?.userConfig?.grid_view
|
||||
logger.debug('Toggling grid view', { old: value, new: !value })
|
||||
userConfigStore.update('grid_view', !value)
|
||||
|
||||
/**
|
||||
* Use the router to go to the parent directory
|
||||
*/
|
||||
function goToParentDir() {
|
||||
const dir = dirname(directory.value)
|
||||
|
||||
logger.debug('Navigating to parent directory', { dir })
|
||||
router.push({ params: { ...route.params }, query: { ...route.query, dir } })
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle the grid view
|
||||
*/
|
||||
function toggleGridView() {
|
||||
const value = userConfigStore.userConfig.grid_view
|
||||
logger.debug('Toggling grid view', { old: value, new: !value })
|
||||
userConfigStore.update('grid_view', !value)
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,6 @@ import { PiniaVuePlugin } from 'pinia'
|
||||
import Vue from 'vue'
|
||||
|
||||
import { getPinia } from './store/index.ts'
|
||||
import { registerHotkeys } from './services/HotKeysService.ts'
|
||||
import FilesApp from './FilesApp.vue'
|
||||
import router from './router/router'
|
||||
import RouterService from './services/RouterService'
|
||||
@@ -40,9 +39,6 @@ if (!window.OCP.Files.Router) {
|
||||
// Init Pinia store
|
||||
Vue.use(PiniaVuePlugin)
|
||||
|
||||
// Init HotKeys AFTER pinia is set up
|
||||
registerHotkeys()
|
||||
|
||||
// Init Files App Settings Service
|
||||
const Settings = new SettingsService()
|
||||
Object.assign(window.OCA.Files, { Settings })
|
||||
|
||||
@@ -336,7 +336,7 @@ class SMB extends Common implements INotifyStorage {
|
||||
if ($retry) {
|
||||
return $this->stat($path, false);
|
||||
} else {
|
||||
throw $e;
|
||||
throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e);
|
||||
}
|
||||
}
|
||||
if ($this->remoteIsShare() && $this->isRootDir($path)) {
|
||||
|
||||
@@ -385,16 +385,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "تمّت مشاركته معك و مع الدائرة {circle} من قِبَل {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "تمّت مشاركته معك و مع المحادثة {conversation} من قِبَل {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "تمّت مشاركته معك في محادثة من قِبَل {owner}",
|
||||
"Share note" : "ملاحظة عن المشاركة",
|
||||
"Show list view" : "أظهِِر عرض القائمة list view",
|
||||
"Show grid view" : "أظهِِر عرض الصناديق grid view",
|
||||
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
|
||||
"%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
|
||||
"Note" : "ملاحظة",
|
||||
"Select or drop files" : "إختر أو أفلِت ملفات",
|
||||
"Uploading files" : "رفع الملفات جارٍ...",
|
||||
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
|
||||
"Share not found" : "مشاركة غير موجودة",
|
||||
"Back to %s" : "عودة إلى %s",
|
||||
"Add to your Nextcloud" : "إضافة إلى حسابك على نكست كلاود",
|
||||
@@ -404,6 +394,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
|
||||
"Move or copy" : "أنقُل أو انسَخ",
|
||||
"You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
|
||||
"Show list view" : "أظهِِر عرض القائمة list view",
|
||||
"Show grid view" : "أظهِِر عرض الصناديق grid view",
|
||||
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
|
||||
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
|
||||
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
|
||||
@@ -416,6 +408,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
|
||||
"Enter your name" : "أدخِل اسمك",
|
||||
"Submit name" : "إرسال الاسم",
|
||||
"Share note" : "ملاحظة عن المشاركة",
|
||||
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
|
||||
"%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
|
||||
"Note" : "ملاحظة",
|
||||
"Select or drop files" : "إختر أو أفلِت ملفات",
|
||||
"Uploading files" : "رفع الملفات جارٍ...",
|
||||
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
|
||||
"Name" : "الاسم",
|
||||
"Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
|
||||
"Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
|
||||
|
||||
@@ -383,16 +383,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "تمّت مشاركته معك و مع الدائرة {circle} من قِبَل {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "تمّت مشاركته معك و مع المحادثة {conversation} من قِبَل {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "تمّت مشاركته معك في محادثة من قِبَل {owner}",
|
||||
"Share note" : "ملاحظة عن المشاركة",
|
||||
"Show list view" : "أظهِِر عرض القائمة list view",
|
||||
"Show grid view" : "أظهِِر عرض الصناديق grid view",
|
||||
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
|
||||
"%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
|
||||
"Note" : "ملاحظة",
|
||||
"Select or drop files" : "إختر أو أفلِت ملفات",
|
||||
"Uploading files" : "رفع الملفات جارٍ...",
|
||||
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
|
||||
"Share not found" : "مشاركة غير موجودة",
|
||||
"Back to %s" : "عودة إلى %s",
|
||||
"Add to your Nextcloud" : "إضافة إلى حسابك على نكست كلاود",
|
||||
@@ -402,6 +392,8 @@
|
||||
"This will stop your current uploads." : "سيؤدي هذا لإيقاف رفع الملفات الحالية.",
|
||||
"Move or copy" : "أنقُل أو انسَخ",
|
||||
"You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
|
||||
"Show list view" : "أظهِِر عرض القائمة list view",
|
||||
"Show grid view" : "أظهِِر عرض الصناديق grid view",
|
||||
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
|
||||
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
|
||||
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
|
||||
@@ -414,6 +406,14 @@
|
||||
"To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
|
||||
"Enter your name" : "أدخِل اسمك",
|
||||
"Submit name" : "إرسال الاسم",
|
||||
"Share note" : "ملاحظة عن المشاركة",
|
||||
"Upload files to %s" : "رَفْعُ ملفات إلى %s",
|
||||
"%s shared a folder with you." : "قام %s بمشاركة مجلد معك.",
|
||||
"Note" : "ملاحظة",
|
||||
"Select or drop files" : "إختر أو أفلِت ملفات",
|
||||
"Uploading files" : "رفع الملفات جارٍ...",
|
||||
"Uploaded files:" : "تمّ رَفْعُ ملفاتٍ:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "برفع الملفات ، فإنك توافق على %1$s شروط الخدمة %2$s.",
|
||||
"Name" : "الاسم",
|
||||
"Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
|
||||
"Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
|
||||
|
||||
@@ -278,15 +278,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "{owner} compartió l'elementu contigo y con «{circle}»",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} compartió l'elementu contigo y cola conversación «{conversation}»",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} compartió l'elementu contigo nuna conversación",
|
||||
"Share note" : "Compartir una nota",
|
||||
"Show list view" : "Amosar la vista en llista",
|
||||
"Show grid view" : "Amosar la vista en rexáu",
|
||||
"Upload files to %s" : "Xubir ficheros a «%s»",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleiciona o suelta los ficheros",
|
||||
"Uploading files" : "Xubiendo ficheros",
|
||||
"Uploaded files:" : "Ficheros xubíos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
|
||||
"Share not found" : "Nun s'atopó la compartición",
|
||||
"Back to %s" : "Volver a «%s»",
|
||||
"Add to your Nextcloud" : "Amestar a Nextcloud",
|
||||
@@ -296,12 +287,21 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
|
||||
"Show list view" : "Amosar la vista en llista",
|
||||
"Show grid view" : "Amosar la vista en rexáu",
|
||||
"No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
|
||||
"Invalid server URL" : "La URL del sirvidor ye inválida",
|
||||
"Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
|
||||
"Download all files" : "Baxar tolos ficheros",
|
||||
"Search for share recipients" : "Buscar destinatarios del elementu compartíu",
|
||||
"No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
|
||||
"Share note" : "Compartir una nota",
|
||||
"Upload files to %s" : "Xubir ficheros a «%s»",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleiciona o suelta los ficheros",
|
||||
"Uploading files" : "Xubiendo ficheros",
|
||||
"Uploaded files:" : "Ficheros xubíos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
|
||||
"Name" : "Nome"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -276,15 +276,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "{owner} compartió l'elementu contigo y con «{circle}»",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} compartió l'elementu contigo y cola conversación «{conversation}»",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} compartió l'elementu contigo nuna conversación",
|
||||
"Share note" : "Compartir una nota",
|
||||
"Show list view" : "Amosar la vista en llista",
|
||||
"Show grid view" : "Amosar la vista en rexáu",
|
||||
"Upload files to %s" : "Xubir ficheros a «%s»",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleiciona o suelta los ficheros",
|
||||
"Uploading files" : "Xubiendo ficheros",
|
||||
"Uploaded files:" : "Ficheros xubíos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
|
||||
"Share not found" : "Nun s'atopó la compartición",
|
||||
"Back to %s" : "Volver a «%s»",
|
||||
"Add to your Nextcloud" : "Amestar a Nextcloud",
|
||||
@@ -294,12 +285,21 @@
|
||||
"This will stop your current uploads." : "Esta aición va parar les xubes actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Pues xubir conteníu a esta carpeta",
|
||||
"Show list view" : "Amosar la vista en llista",
|
||||
"Show grid view" : "Amosar la vista en rexáu",
|
||||
"No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
|
||||
"Invalid server URL" : "La URL del sirvidor ye inválida",
|
||||
"Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
|
||||
"Download all files" : "Baxar tolos ficheros",
|
||||
"Search for share recipients" : "Buscar destinatarios del elementu compartíu",
|
||||
"No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
|
||||
"Share note" : "Compartir una nota",
|
||||
"Upload files to %s" : "Xubir ficheros a «%s»",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleiciona o suelta los ficheros",
|
||||
"Uploading files" : "Xubiendo ficheros",
|
||||
"Uploaded files:" : "Ficheros xubíos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al xubir los ficheros, aceptes los %1$stérminos del serviciu%2$s",
|
||||
"Name" : "Nome"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -223,15 +223,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Споделено с вас и {circle} от {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Споделено с вас и разговора {conversation} от {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Споделено с вас в разговор от {owner}",
|
||||
"Share note" : "Сподели бележка",
|
||||
"Show list view" : "Показване с изглед на списък",
|
||||
"Show grid view" : "Показване в решетъчен изглед",
|
||||
"Upload files to %s" : "Качване на файлове към %s",
|
||||
"Note" : "Бележка",
|
||||
"Select or drop files" : "Изберете файл или преместете с мишката",
|
||||
"Uploading files" : "Качване на файлове",
|
||||
"Uploaded files:" : "Качени файлове:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
|
||||
"Share not found" : "Споделянето не е открито",
|
||||
"Back to %s" : "Обратно към %s",
|
||||
"Add to your Nextcloud" : "Добавете към Nextcloud",
|
||||
@@ -241,6 +232,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
|
||||
"Move or copy" : "Премести или копирай",
|
||||
"You can upload into this folder" : "Може да качвате в папката",
|
||||
"Show list view" : "Показване с изглед на списък",
|
||||
"Show grid view" : "Показване в решетъчен изглед",
|
||||
"No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
|
||||
"Invalid server URL" : "URL адреса на сървъра не е валиден",
|
||||
"Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
|
||||
@@ -248,6 +241,13 @@ OC.L10N.register(
|
||||
"Search for share recipients" : "Търсене на получатели на споделяне",
|
||||
"No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
|
||||
"Enter your name" : "Въведете вашето име",
|
||||
"Share note" : "Сподели бележка",
|
||||
"Upload files to %s" : "Качване на файлове към %s",
|
||||
"Note" : "Бележка",
|
||||
"Select or drop files" : "Изберете файл или преместете с мишката",
|
||||
"Uploading files" : "Качване на файлове",
|
||||
"Uploaded files:" : "Качени файлове:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
|
||||
"Name" : "Име"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -221,15 +221,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Споделено с вас и {circle} от {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Споделено с вас и разговора {conversation} от {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Споделено с вас в разговор от {owner}",
|
||||
"Share note" : "Сподели бележка",
|
||||
"Show list view" : "Показване с изглед на списък",
|
||||
"Show grid view" : "Показване в решетъчен изглед",
|
||||
"Upload files to %s" : "Качване на файлове към %s",
|
||||
"Note" : "Бележка",
|
||||
"Select or drop files" : "Изберете файл или преместете с мишката",
|
||||
"Uploading files" : "Качване на файлове",
|
||||
"Uploaded files:" : "Качени файлове:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
|
||||
"Share not found" : "Споделянето не е открито",
|
||||
"Back to %s" : "Обратно към %s",
|
||||
"Add to your Nextcloud" : "Добавете към Nextcloud",
|
||||
@@ -239,6 +230,8 @@
|
||||
"This will stop your current uploads." : "Това ще прекрати всички ваши текущи процеси по качване на файлове.",
|
||||
"Move or copy" : "Премести или копирай",
|
||||
"You can upload into this folder" : "Може да качвате в папката",
|
||||
"Show list view" : "Показване с изглед на списък",
|
||||
"Show grid view" : "Показване в решетъчен изглед",
|
||||
"No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
|
||||
"Invalid server URL" : "URL адреса на сървъра не е валиден",
|
||||
"Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
|
||||
@@ -246,6 +239,13 @@
|
||||
"Search for share recipients" : "Търсене на получатели на споделяне",
|
||||
"No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
|
||||
"Enter your name" : "Въведете вашето име",
|
||||
"Share note" : "Сподели бележка",
|
||||
"Upload files to %s" : "Качване на файлове към %s",
|
||||
"Note" : "Бележка",
|
||||
"Select or drop files" : "Изберете файл или преместете с мишката",
|
||||
"Uploading files" : "Качване на файлове",
|
||||
"Uploaded files:" : "Качени файлове:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "С качването на файлове, вие се съгласявате с %1$s условията на услугата%2$s.",
|
||||
"Name" : "Име"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -385,16 +385,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
|
||||
"Share note" : "Nota de l'element compartit",
|
||||
"Show list view" : "Mostra la visualització de llista",
|
||||
"Show grid view" : "Mostra la visualització de graella",
|
||||
"Upload files to %s" : "Puja fitxers a %s",
|
||||
"%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
|
||||
"Uploading files" : "S'estan pujant els fitxers",
|
||||
"Uploaded files:" : "Fitxers pujats:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
|
||||
"Share not found" : "No s'ha trobat la compartició",
|
||||
"Back to %s" : "Torna a %s",
|
||||
"Add to your Nextcloud" : "Afegeix al Nextcloud",
|
||||
@@ -404,6 +394,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Això aturarà les pujades actuals.",
|
||||
"Move or copy" : "Mou o copia",
|
||||
"You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
|
||||
"Show list view" : "Mostra la visualització de llista",
|
||||
"Show grid view" : "Mostra la visualització de graella",
|
||||
"No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
|
||||
"Invalid server URL" : "L'URL del servidor no és vàlida",
|
||||
"Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
|
||||
@@ -416,6 +408,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
|
||||
"Enter your name" : "Introdueix el teu nom",
|
||||
"Submit name" : "Envia el nom",
|
||||
"Share note" : "Nota de l'element compartit",
|
||||
"Upload files to %s" : "Puja fitxers a %s",
|
||||
"%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
|
||||
"Uploading files" : "S'estan pujant els fitxers",
|
||||
"Uploaded files:" : "Fitxers pujats:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
|
||||
"Name" : "Nom",
|
||||
"Email, federated cloud id" : "Correu, identificador del núvol federat",
|
||||
"Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
|
||||
|
||||
@@ -383,16 +383,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "{owner} l'ha compartit amb vós i amb el cercle {circle}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} l'ha compartit amb vós i amb la conversa {conversation}",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} l'ha compartit amb vós en una conversa",
|
||||
"Share note" : "Nota de l'element compartit",
|
||||
"Show list view" : "Mostra la visualització de llista",
|
||||
"Show grid view" : "Mostra la visualització de graella",
|
||||
"Upload files to %s" : "Puja fitxers a %s",
|
||||
"%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
|
||||
"Uploading files" : "S'estan pujant els fitxers",
|
||||
"Uploaded files:" : "Fitxers pujats:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
|
||||
"Share not found" : "No s'ha trobat la compartició",
|
||||
"Back to %s" : "Torna a %s",
|
||||
"Add to your Nextcloud" : "Afegeix al Nextcloud",
|
||||
@@ -402,6 +392,8 @@
|
||||
"This will stop your current uploads." : "Això aturarà les pujades actuals.",
|
||||
"Move or copy" : "Mou o copia",
|
||||
"You can upload into this folder" : "Podeu pujar elements a aquesta carpeta",
|
||||
"Show list view" : "Mostra la visualització de llista",
|
||||
"Show grid view" : "Mostra la visualització de graella",
|
||||
"No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
|
||||
"Invalid server URL" : "L'URL del servidor no és vàlida",
|
||||
"Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
|
||||
@@ -414,6 +406,14 @@
|
||||
"To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
|
||||
"Enter your name" : "Introdueix el teu nom",
|
||||
"Submit name" : "Envia el nom",
|
||||
"Share note" : "Nota de l'element compartit",
|
||||
"Upload files to %s" : "Puja fitxers a %s",
|
||||
"%s shared a folder with you." : "%s ha compartit una carpeta amb tu.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccioneu o deixeu anar fitxers",
|
||||
"Uploading files" : "S'estan pujant els fitxers",
|
||||
"Uploaded files:" : "Fitxers pujats:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Si pugeu fitxers, accepteu les %1$scondicions del servei%2$s.",
|
||||
"Name" : "Nom",
|
||||
"Email, federated cloud id" : "Correu, identificador del núvol federat",
|
||||
"Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
|
||||
|
||||
@@ -401,16 +401,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
|
||||
"Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
|
||||
"Share note" : "Sdílet poznámku",
|
||||
"Show list view" : "Zobrazit v seznamu",
|
||||
"Show grid view" : "Zobrazit v mřížce",
|
||||
"Upload files to %s" : "Nahrát soubory do %s",
|
||||
"%s shared a folder with you." : "%s vám nasdílel(a) složku.",
|
||||
"Note" : "Poznámka",
|
||||
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
|
||||
"Uploading files" : "Nahrávání souborů",
|
||||
"Uploaded files:" : "Nahrané soubory:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
|
||||
"Share not found" : "Sdílení nenalezeno",
|
||||
"Back to %s" : "Zpět na %s",
|
||||
"Add to your Nextcloud" : "Přidat do Nextcloud",
|
||||
@@ -420,6 +410,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
|
||||
"Move or copy" : "Přesunout nebo zkopírovat",
|
||||
"You can upload into this folder" : "Do této složky můžete nahrávat",
|
||||
"Show list view" : "Zobrazit v seznamu",
|
||||
"Show grid view" : "Zobrazit v mřížce",
|
||||
"No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
|
||||
"Invalid server URL" : "Neplatná URL serveru",
|
||||
"Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
|
||||
@@ -432,6 +424,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
|
||||
"Enter your name" : "Zadejte své jméno",
|
||||
"Submit name" : "Odeslat jméno",
|
||||
"Share note" : "Sdílet poznámku",
|
||||
"Upload files to %s" : "Nahrát soubory do %s",
|
||||
"%s shared a folder with you." : "%s vám nasdílel(a) složku.",
|
||||
"Note" : "Poznámka",
|
||||
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
|
||||
"Uploading files" : "Nahrávání souborů",
|
||||
"Uploaded files:" : "Nahrané soubory:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
|
||||
"Name" : "Název",
|
||||
"Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
|
||||
"Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
|
||||
|
||||
@@ -399,16 +399,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Sdíleno s vámi a {circle} od {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} sdílí vám a konverzaci {conversation}",
|
||||
"Shared with you in a conversation by {owner}" : " {owner} vám sdílí v konverzaci",
|
||||
"Share note" : "Sdílet poznámku",
|
||||
"Show list view" : "Zobrazit v seznamu",
|
||||
"Show grid view" : "Zobrazit v mřížce",
|
||||
"Upload files to %s" : "Nahrát soubory do %s",
|
||||
"%s shared a folder with you." : "%s vám nasdílel(a) složku.",
|
||||
"Note" : "Poznámka",
|
||||
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
|
||||
"Uploading files" : "Nahrávání souborů",
|
||||
"Uploaded files:" : "Nahrané soubory:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
|
||||
"Share not found" : "Sdílení nenalezeno",
|
||||
"Back to %s" : "Zpět na %s",
|
||||
"Add to your Nextcloud" : "Přidat do Nextcloud",
|
||||
@@ -418,6 +408,8 @@
|
||||
"This will stop your current uploads." : "Toto zastaví vaše stávající nahrávání.",
|
||||
"Move or copy" : "Přesunout nebo zkopírovat",
|
||||
"You can upload into this folder" : "Do této složky můžete nahrávat",
|
||||
"Show list view" : "Zobrazit v seznamu",
|
||||
"Show grid view" : "Zobrazit v mřížce",
|
||||
"No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
|
||||
"Invalid server URL" : "Neplatná URL serveru",
|
||||
"Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
|
||||
@@ -430,6 +422,14 @@
|
||||
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
|
||||
"Enter your name" : "Zadejte své jméno",
|
||||
"Submit name" : "Odeslat jméno",
|
||||
"Share note" : "Sdílet poznámku",
|
||||
"Upload files to %s" : "Nahrát soubory do %s",
|
||||
"%s shared a folder with you." : "%s vám nasdílel(a) složku.",
|
||||
"Note" : "Poznámka",
|
||||
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
|
||||
"Uploading files" : "Nahrávání souborů",
|
||||
"Uploaded files:" : "Nahrané soubory:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Nahráním souborů vyjadřujete souhlas s %1$svšeobecnými podmínkami%2$s.",
|
||||
"Name" : "Název",
|
||||
"Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
|
||||
"Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
|
||||
|
||||
@@ -385,16 +385,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
|
||||
"Share note" : "Del note",
|
||||
"Show list view" : "Vis som liste",
|
||||
"Show grid view" : "Vis som gitter",
|
||||
"Upload files to %s" : "Upload filer til %s",
|
||||
"%s shared a folder with you." : "%s delte en mappe med dig.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Vælg eller slip filer",
|
||||
"Uploading files" : "Uploader filer",
|
||||
"Uploaded files:" : "Uploadede filer:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
|
||||
"Share not found" : "Delt fil ikke fundet",
|
||||
"Back to %s" : "Tilbage til %s",
|
||||
"Add to your Nextcloud" : "Tilføj til din Nextcloud",
|
||||
@@ -404,6 +394,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
|
||||
"Move or copy" : "Flyt eller kopier",
|
||||
"You can upload into this folder" : "Du kan overføre til denne mappe",
|
||||
"Show list view" : "Vis som liste",
|
||||
"Show grid view" : "Vis som gitter",
|
||||
"No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
|
||||
"Invalid server URL" : "Ugyldig server adresse",
|
||||
"Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
|
||||
@@ -416,6 +408,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
|
||||
"Enter your name" : "Angiv dit navn",
|
||||
"Submit name" : "Angiv navn",
|
||||
"Share note" : "Del note",
|
||||
"Upload files to %s" : "Upload filer til %s",
|
||||
"%s shared a folder with you." : "%s delte en mappe med dig.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Vælg eller slip filer",
|
||||
"Uploading files" : "Uploader filer",
|
||||
"Uploaded files:" : "Uploadede filer:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
|
||||
"Name" : "Navn",
|
||||
"Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
|
||||
"Filename must not be empty." : "Filnavnet må ikke være tomt."
|
||||
|
||||
@@ -383,16 +383,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Delt med dig og {circle} af {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Delt med dig og konversationen {conversation} af {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Delt med dig og konversationen af {owner}",
|
||||
"Share note" : "Del note",
|
||||
"Show list view" : "Vis som liste",
|
||||
"Show grid view" : "Vis som gitter",
|
||||
"Upload files to %s" : "Upload filer til %s",
|
||||
"%s shared a folder with you." : "%s delte en mappe med dig.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Vælg eller slip filer",
|
||||
"Uploading files" : "Uploader filer",
|
||||
"Uploaded files:" : "Uploadede filer:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
|
||||
"Share not found" : "Delt fil ikke fundet",
|
||||
"Back to %s" : "Tilbage til %s",
|
||||
"Add to your Nextcloud" : "Tilføj til din Nextcloud",
|
||||
@@ -402,6 +392,8 @@
|
||||
"This will stop your current uploads." : "Dette vil stoppe din nuværende uploads.",
|
||||
"Move or copy" : "Flyt eller kopier",
|
||||
"You can upload into this folder" : "Du kan overføre til denne mappe",
|
||||
"Show list view" : "Vis som liste",
|
||||
"Show grid view" : "Vis som gitter",
|
||||
"No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
|
||||
"Invalid server URL" : "Ugyldig server adresse",
|
||||
"Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
|
||||
@@ -414,6 +406,14 @@
|
||||
"To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
|
||||
"Enter your name" : "Angiv dit navn",
|
||||
"Submit name" : "Angiv navn",
|
||||
"Share note" : "Del note",
|
||||
"Upload files to %s" : "Upload filer til %s",
|
||||
"%s shared a folder with you." : "%s delte en mappe med dig.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Vælg eller slip filer",
|
||||
"Uploading files" : "Uploader filer",
|
||||
"Uploaded files:" : "Uploadede filer:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Ved at uploade filer accepterer du %1$sservicebetingelserne%2$s.",
|
||||
"Name" : "Navn",
|
||||
"Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
|
||||
"Filename must not be empty." : "Filnavnet må ikke være tomt."
|
||||
|
||||
@@ -401,16 +401,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung geteilt",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Rasteransicht anzeigen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Share not found" : "Freigabe nicht gefunden",
|
||||
"Back to %s" : "Zurück zu %s",
|
||||
"Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
|
||||
@@ -420,6 +410,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
|
||||
"Move or copy" : "Verschieben oder kopieren",
|
||||
"You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Rasteransicht anzeigen",
|
||||
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
|
||||
"Invalid server URL" : "Falsche Server-URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
|
||||
@@ -432,6 +424,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
|
||||
"Enter your name" : "Gib deinen Namen ein",
|
||||
"Submit name" : "Name übermitteln",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Name" : "Name",
|
||||
"Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
|
||||
"Email, federated cloud id" : "Name, Federated-Cloud-ID",
|
||||
|
||||
@@ -399,16 +399,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "{owner} hat dies mit dir und dem Kreis {circle} geteilt",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} hat dies mit dir und der Unterhaltung {conversation} geteilt",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} hat dies mit dir in einer Unterhaltung geteilt",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Rasteransicht anzeigen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Share not found" : "Freigabe nicht gefunden",
|
||||
"Back to %s" : "Zurück zu %s",
|
||||
"Add to your Nextcloud" : "Zu deiner Nextcloud hinzufügen",
|
||||
@@ -418,6 +408,8 @@
|
||||
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
|
||||
"Move or copy" : "Verschieben oder kopieren",
|
||||
"You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Rasteransicht anzeigen",
|
||||
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
|
||||
"Invalid server URL" : "Falsche Server-URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
|
||||
@@ -430,6 +422,14 @@
|
||||
"To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
|
||||
"Enter your name" : "Gib deinen Namen ein",
|
||||
"Submit name" : "Name übermitteln",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit dir geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmst du den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Name" : "Name",
|
||||
"Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
|
||||
"Email, federated cloud id" : "Name, Federated-Cloud-ID",
|
||||
|
||||
@@ -401,16 +401,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "{owner} hat dies mit Ihnen und dem Kreis {circle} geteilt",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Kachelansicht anzeigen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Share not found" : "Freigabe nicht gefunden",
|
||||
"Back to %s" : "Zurück zu %s",
|
||||
"Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
|
||||
@@ -420,6 +410,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
|
||||
"Move or copy" : "Verschieben oder kopieren",
|
||||
"You can upload into this folder" : "Sie können in diesen Ordner hochladen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Kachelansicht anzeigen",
|
||||
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
|
||||
"Invalid server URL" : "Falsche Server-URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
|
||||
@@ -432,6 +424,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
|
||||
"Enter your name" : "Geben Sie Ihren Namen ein",
|
||||
"Submit name" : "Name übermitteln",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Name" : "Name",
|
||||
"Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
|
||||
"Email, federated cloud id" : "Name, Federated-Cloud-ID",
|
||||
|
||||
@@ -399,16 +399,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "{owner} hat dies mit Ihnen und dem Kreis {circle} geteilt",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} hat diese mit Ihnen und der Unterhaltung {conversation} geteilt",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} hat diese mit Ihnen in einer Unterhaltung geteilt",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Kachelansicht anzeigen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Share not found" : "Freigabe nicht gefunden",
|
||||
"Back to %s" : "Zurück zu %s",
|
||||
"Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
|
||||
@@ -418,6 +408,8 @@
|
||||
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
|
||||
"Move or copy" : "Verschieben oder kopieren",
|
||||
"You can upload into this folder" : "Sie können in diesen Ordner hochladen",
|
||||
"Show list view" : "Listenansicht anzeigen",
|
||||
"Show grid view" : "Kachelansicht anzeigen",
|
||||
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
|
||||
"Invalid server URL" : "Falsche Server-URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
|
||||
@@ -430,6 +422,14 @@
|
||||
"To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
|
||||
"Enter your name" : "Geben Sie Ihren Namen ein",
|
||||
"Submit name" : "Name übermitteln",
|
||||
"Share note" : "Notiz teilen",
|
||||
"Upload files to %s" : "Dateien für %s hochladen",
|
||||
"%s shared a folder with you." : "%s hat einen Ordner mit Ihnen geteilt.",
|
||||
"Note" : "Notiz",
|
||||
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
|
||||
"Uploading files" : "Dateien werden hochgeladen",
|
||||
"Uploaded files:" : "Hochgeladene Dateien:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Durch das Hochladen von Dateien stimmen Sie den %1$sNutzungsbedingungen%2$s zu.",
|
||||
"Name" : "Name",
|
||||
"Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
|
||||
"Email, federated cloud id" : "Name, Federated-Cloud-ID",
|
||||
|
||||
@@ -245,15 +245,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
|
||||
"Share note" : "Σημείωση κοινόχρηστου",
|
||||
"Show list view" : "Προβολή λίστας",
|
||||
"Show grid view" : "Προβολή πλέγματος",
|
||||
"Upload files to %s" : "Αποστολή αρχείων σε %s",
|
||||
"Note" : "Σημείωση",
|
||||
"Select or drop files" : "Επιλέξτε ή αποθέστε αρχεία",
|
||||
"Uploading files" : "Μεταφόρτωση αρχείων",
|
||||
"Uploaded files:" : "Αποστολή αρχείων:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
|
||||
"Share not found" : "Δεν βρέθηκε το κονόχρηστο",
|
||||
"Back to %s" : "Πίσω στο %s",
|
||||
"Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
|
||||
@@ -263,6 +254,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
|
||||
"Move or copy" : "Μετακίνηση ή αντιγραφή",
|
||||
"You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
|
||||
"Show list view" : "Προβολή λίστας",
|
||||
"Show grid view" : "Προβολή πλέγματος",
|
||||
"No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
|
||||
"Invalid server URL" : "Μη έγκυρο URL διακομιστή",
|
||||
"Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
|
||||
@@ -270,6 +263,13 @@ OC.L10N.register(
|
||||
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
|
||||
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
|
||||
"Enter your name" : "Προσθέστε το όνομά σας",
|
||||
"Share note" : "Σημείωση κοινόχρηστου",
|
||||
"Upload files to %s" : "Αποστολή αρχείων σε %s",
|
||||
"Note" : "Σημείωση",
|
||||
"Select or drop files" : "Επιλέξτε ή αποθέστε αρχεία",
|
||||
"Uploading files" : "Μεταφόρτωση αρχείων",
|
||||
"Uploaded files:" : "Αποστολή αρχείων:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
|
||||
"Name" : "Όνομα",
|
||||
"Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
|
||||
},
|
||||
|
||||
@@ -243,15 +243,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Διαμοιράστηκε με σας και τον {circle} από τον {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Διαμοιράστηκε με σας και με τη συζήτηση {conversation} από {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Διαμοιράστηκε με σας από τον {owner}",
|
||||
"Share note" : "Σημείωση κοινόχρηστου",
|
||||
"Show list view" : "Προβολή λίστας",
|
||||
"Show grid view" : "Προβολή πλέγματος",
|
||||
"Upload files to %s" : "Αποστολή αρχείων σε %s",
|
||||
"Note" : "Σημείωση",
|
||||
"Select or drop files" : "Επιλέξτε ή αποθέστε αρχεία",
|
||||
"Uploading files" : "Μεταφόρτωση αρχείων",
|
||||
"Uploaded files:" : "Αποστολή αρχείων:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
|
||||
"Share not found" : "Δεν βρέθηκε το κονόχρηστο",
|
||||
"Back to %s" : "Πίσω στο %s",
|
||||
"Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
|
||||
@@ -261,6 +252,8 @@
|
||||
"This will stop your current uploads." : "Αυτό θα σταματήσει τις τρέχουσες μεταφορτώσεις.",
|
||||
"Move or copy" : "Μετακίνηση ή αντιγραφή",
|
||||
"You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
|
||||
"Show list view" : "Προβολή λίστας",
|
||||
"Show grid view" : "Προβολή πλέγματος",
|
||||
"No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
|
||||
"Invalid server URL" : "Μη έγκυρο URL διακομιστή",
|
||||
"Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
|
||||
@@ -268,6 +261,13 @@
|
||||
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
|
||||
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
|
||||
"Enter your name" : "Προσθέστε το όνομά σας",
|
||||
"Share note" : "Σημείωση κοινόχρηστου",
|
||||
"Upload files to %s" : "Αποστολή αρχείων σε %s",
|
||||
"Note" : "Σημείωση",
|
||||
"Select or drop files" : "Επιλέξτε ή αποθέστε αρχεία",
|
||||
"Uploading files" : "Μεταφόρτωση αρχείων",
|
||||
"Uploaded files:" : "Αποστολή αρχείων:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Με την μεταφόρτωση αρχείων, συμφωνείτε με %1$sόρους χρήσεως %2$s.",
|
||||
"Name" : "Όνομα",
|
||||
"Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
|
||||
@@ -401,16 +401,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
|
||||
"Share note" : "Share note",
|
||||
"Show list view" : "Show list view",
|
||||
"Show grid view" : "Show grid view",
|
||||
"Upload files to %s" : "Upload files to %s",
|
||||
"%s shared a folder with you." : "%s shared a folder with you.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Select or drop files",
|
||||
"Uploading files" : "Uploading files",
|
||||
"Uploaded files:" : "Uploaded files:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
|
||||
"Share not found" : "Share not found",
|
||||
"Back to %s" : "Back to %s",
|
||||
"Add to your Nextcloud" : "Add to your Nextcloud",
|
||||
@@ -420,6 +410,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "This will stop your current uploads.",
|
||||
"Move or copy" : "Move or copy",
|
||||
"You can upload into this folder" : "You can upload into this folder",
|
||||
"Show list view" : "Show list view",
|
||||
"Show grid view" : "Show grid view",
|
||||
"No compatible server found at {remote}" : "No compatible server found at {remote}",
|
||||
"Invalid server URL" : "Invalid server URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
|
||||
@@ -432,6 +424,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
|
||||
"Enter your name" : "Enter your name",
|
||||
"Submit name" : "Submit name",
|
||||
"Share note" : "Share note",
|
||||
"Upload files to %s" : "Upload files to %s",
|
||||
"%s shared a folder with you." : "%s shared a folder with you.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Select or drop files",
|
||||
"Uploading files" : "Uploading files",
|
||||
"Uploaded files:" : "Uploaded files:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
|
||||
"Name" : "Surname",
|
||||
"Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
|
||||
"Email, federated cloud id" : "Email, federated cloud id",
|
||||
|
||||
@@ -399,16 +399,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Shared with you and {circle} by {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Shared with you and the conversation {conversation} by {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Shared with you in a conversation by {owner}",
|
||||
"Share note" : "Share note",
|
||||
"Show list view" : "Show list view",
|
||||
"Show grid view" : "Show grid view",
|
||||
"Upload files to %s" : "Upload files to %s",
|
||||
"%s shared a folder with you." : "%s shared a folder with you.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Select or drop files",
|
||||
"Uploading files" : "Uploading files",
|
||||
"Uploaded files:" : "Uploaded files:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
|
||||
"Share not found" : "Share not found",
|
||||
"Back to %s" : "Back to %s",
|
||||
"Add to your Nextcloud" : "Add to your Nextcloud",
|
||||
@@ -418,6 +408,8 @@
|
||||
"This will stop your current uploads." : "This will stop your current uploads.",
|
||||
"Move or copy" : "Move or copy",
|
||||
"You can upload into this folder" : "You can upload into this folder",
|
||||
"Show list view" : "Show list view",
|
||||
"Show grid view" : "Show grid view",
|
||||
"No compatible server found at {remote}" : "No compatible server found at {remote}",
|
||||
"Invalid server URL" : "Invalid server URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
|
||||
@@ -430,6 +422,14 @@
|
||||
"To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
|
||||
"Enter your name" : "Enter your name",
|
||||
"Submit name" : "Submit name",
|
||||
"Share note" : "Share note",
|
||||
"Upload files to %s" : "Upload files to %s",
|
||||
"%s shared a folder with you." : "%s shared a folder with you.",
|
||||
"Note" : "Note",
|
||||
"Select or drop files" : "Select or drop files",
|
||||
"Uploading files" : "Uploading files",
|
||||
"Uploaded files:" : "Uploaded files:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "By uploading files, you agree to the %1$sterms of service%2$s.",
|
||||
"Name" : "Surname",
|
||||
"Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
|
||||
"Email, federated cloud id" : "Email, federated cloud id",
|
||||
|
||||
@@ -386,16 +386,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Subir archivos a %s",
|
||||
"%s shared a folder with you." : "%s ha compartido una carpeta contigo.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos subidos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
|
||||
"Share not found" : "Recurso compartido no encontrado",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Añadir a tu Nextcloud",
|
||||
@@ -405,6 +395,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes subir archivos en esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválida",
|
||||
"Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
|
||||
@@ -417,6 +409,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
|
||||
"Enter your name" : "Escriba su nombre",
|
||||
"Submit name" : "Enviar nombre",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Subir archivos a %s",
|
||||
"%s shared a folder with you." : "%s ha compartido una carpeta contigo.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos subidos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
|
||||
"Name" : "Nombre",
|
||||
"Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
|
||||
"Email, federated cloud id" : "Email, ID de nube federada",
|
||||
|
||||
@@ -384,16 +384,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y con la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido contigo por {owner} en una conversación",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Subir archivos a %s",
|
||||
"%s shared a folder with you." : "%s ha compartido una carpeta contigo.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos subidos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
|
||||
"Share not found" : "Recurso compartido no encontrado",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Añadir a tu Nextcloud",
|
||||
@@ -403,6 +393,8 @@
|
||||
"This will stop your current uploads." : "Esto detendrá tus subidas actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes subir archivos en esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválida",
|
||||
"Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
|
||||
@@ -415,6 +407,14 @@
|
||||
"To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
|
||||
"Enter your name" : "Escriba su nombre",
|
||||
"Submit name" : "Enviar nombre",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Subir archivos a %s",
|
||||
"%s shared a folder with you." : "%s ha compartido una carpeta contigo.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos subidos:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.",
|
||||
"Name" : "Nombre",
|
||||
"Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
|
||||
"Email, federated cloud id" : "Email, ID de nube federada",
|
||||
|
||||
@@ -230,15 +230,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
|
||||
"Share not found" : "No se encontró el elemento compartido",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
|
||||
@@ -248,12 +239,21 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválido",
|
||||
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
|
||||
"Download all files" : "Descargar todos los archivos",
|
||||
"Search for share recipients" : "Buscar destinatarios de la compartición",
|
||||
"No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
|
||||
"Name" : "Nombre"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -228,15 +228,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Compartido contigo y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido contigo y la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido contigo en una conversación por {owner}",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
|
||||
"Share not found" : "No se encontró el elemento compartido",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
|
||||
@@ -246,12 +237,21 @@
|
||||
"This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválido",
|
||||
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
|
||||
"Download all files" : "Descargar todos los archivos",
|
||||
"Search for share recipients" : "Buscar destinatarios de la compartición",
|
||||
"No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Subiendo archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos de servicio%2$s.",
|
||||
"Name" : "Nombre"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -329,16 +329,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"%s shared a folder with you." : "%s le compartió una carpeta.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Cargando archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
|
||||
"Share not found" : "No se encontró el elemento compartido",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
|
||||
@@ -348,6 +338,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Se detendrán las cargas en curso",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválido",
|
||||
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
|
||||
@@ -360,6 +352,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
|
||||
"Enter your name" : "Ingrese su nombre",
|
||||
"Submit name" : "Enviar nombre",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"%s shared a folder with you." : "%s le compartió una carpeta.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Cargando archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
|
||||
"Name" : "Nombre",
|
||||
"Filename must not be empty." : "El nombre de archivo no puede estar vacío."
|
||||
},
|
||||
|
||||
@@ -327,16 +327,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "Compartido con Ud. y {circle} por {owner}",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "Compartido con Ud. y la conversación {conversation} por {owner}",
|
||||
"Shared with you in a conversation by {owner}" : "Compartido con Ud. en una conversación por {owner}",
|
||||
"Share note" : "Compartir nota",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"%s shared a folder with you." : "%s le compartió una carpeta.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Cargando archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
|
||||
"Share not found" : "No se encontró el elemento compartido",
|
||||
"Back to %s" : "Volver a %s",
|
||||
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
|
||||
@@ -346,6 +336,8 @@
|
||||
"This will stop your current uploads." : "Se detendrán las cargas en curso",
|
||||
"Move or copy" : "Mover o copiar",
|
||||
"You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
|
||||
"Show list view" : "Mostrar vista de lista",
|
||||
"Show grid view" : "Mostrar vista de cuadrícula",
|
||||
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
|
||||
"Invalid server URL" : "URL del servidor inválido",
|
||||
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
|
||||
@@ -358,6 +350,14 @@
|
||||
"To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
|
||||
"Enter your name" : "Ingrese su nombre",
|
||||
"Submit name" : "Enviar nombre",
|
||||
"Share note" : "Compartir nota",
|
||||
"Upload files to %s" : "Cargar archivos a %s",
|
||||
"%s shared a folder with you." : "%s le compartió una carpeta.",
|
||||
"Note" : "Nota",
|
||||
"Select or drop files" : "Selecciona o suelta los archivos",
|
||||
"Uploading files" : "Cargando archivos",
|
||||
"Uploaded files:" : "Archivos cargados:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Al cargar archivos, acepta los %1$stérminos de servicio%2$s.",
|
||||
"Name" : "Nombre",
|
||||
"Filename must not be empty." : "El nombre de archivo no puede estar vacío."
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
|
||||
@@ -401,16 +401,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
|
||||
"Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
|
||||
"Share note" : "Jaga märget",
|
||||
"Show list view" : "Näita loendivaadet",
|
||||
"Show grid view" : "Näita ruudustikuvaadet",
|
||||
"Upload files to %s" : "Laadi failid %s",
|
||||
"%s shared a folder with you." : "%s jagas sinuga kausta.",
|
||||
"Note" : "Märge",
|
||||
"Select or drop files" : "Vali või lohista failid",
|
||||
"Uploading files" : "Failid on üleslaadimisel",
|
||||
"Uploaded files:" : "Üleslaaditud failid:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
|
||||
"Share not found" : "Jagamist ei leidu",
|
||||
"Back to %s" : "Tagasi siia: %s",
|
||||
"Add to your Nextcloud" : "Lisa oma Nextcloudi",
|
||||
@@ -420,6 +410,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "See peatab praegused üleslaadimised.",
|
||||
"Move or copy" : "Liiguta või kopeeri",
|
||||
"You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
|
||||
"Show list view" : "Näita loendivaadet",
|
||||
"Show grid view" : "Näita ruudustikuvaadet",
|
||||
"No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
|
||||
"Invalid server URL" : "Vigane serveri URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
|
||||
@@ -432,6 +424,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
|
||||
"Enter your name" : "Sisesta oma nimi",
|
||||
"Submit name" : "Salvesta nimi",
|
||||
"Share note" : "Jaga märget",
|
||||
"Upload files to %s" : "Laadi failid %s",
|
||||
"%s shared a folder with you." : "%s jagas sinuga kausta.",
|
||||
"Note" : "Märge",
|
||||
"Select or drop files" : "Vali või lohista failid",
|
||||
"Uploading files" : "Failid on üleslaadimisel",
|
||||
"Uploaded files:" : "Üleslaaditud failid:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
|
||||
"Name" : "Nimi",
|
||||
"Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
|
||||
"Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
|
||||
|
||||
@@ -399,16 +399,6 @@
|
||||
"Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
|
||||
"Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
|
||||
"Share note" : "Jaga märget",
|
||||
"Show list view" : "Näita loendivaadet",
|
||||
"Show grid view" : "Näita ruudustikuvaadet",
|
||||
"Upload files to %s" : "Laadi failid %s",
|
||||
"%s shared a folder with you." : "%s jagas sinuga kausta.",
|
||||
"Note" : "Märge",
|
||||
"Select or drop files" : "Vali või lohista failid",
|
||||
"Uploading files" : "Failid on üleslaadimisel",
|
||||
"Uploaded files:" : "Üleslaaditud failid:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
|
||||
"Share not found" : "Jagamist ei leidu",
|
||||
"Back to %s" : "Tagasi siia: %s",
|
||||
"Add to your Nextcloud" : "Lisa oma Nextcloudi",
|
||||
@@ -418,6 +408,8 @@
|
||||
"This will stop your current uploads." : "See peatab praegused üleslaadimised.",
|
||||
"Move or copy" : "Liiguta või kopeeri",
|
||||
"You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida",
|
||||
"Show list view" : "Näita loendivaadet",
|
||||
"Show grid view" : "Näita ruudustikuvaadet",
|
||||
"No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
|
||||
"Invalid server URL" : "Vigane serveri URL",
|
||||
"Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
|
||||
@@ -430,6 +422,14 @@
|
||||
"To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
|
||||
"Enter your name" : "Sisesta oma nimi",
|
||||
"Submit name" : "Salvesta nimi",
|
||||
"Share note" : "Jaga märget",
|
||||
"Upload files to %s" : "Laadi failid %s",
|
||||
"%s shared a folder with you." : "%s jagas sinuga kausta.",
|
||||
"Note" : "Märge",
|
||||
"Select or drop files" : "Vali või lohista failid",
|
||||
"Uploading files" : "Failid on üleslaadimisel",
|
||||
"Uploaded files:" : "Üleslaaditud failid:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
|
||||
"Name" : "Nimi",
|
||||
"Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
|
||||
"Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
|
||||
|
||||
@@ -389,16 +389,6 @@ OC.L10N.register(
|
||||
"Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
|
||||
"Share note" : "Partekatu oharra",
|
||||
"Show list view" : "Erakutsi zerrenda ikuspegia",
|
||||
"Show grid view" : "Erakutsi sareta-ikuspegia",
|
||||
"Upload files to %s" : "Igo fitxategiak hona: %s",
|
||||
"%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
|
||||
"Note" : "Oharra",
|
||||
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
|
||||
"Uploading files" : "Fitxategiak igotzen",
|
||||
"Uploaded files:" : "Igotako fitxategiak:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
|
||||
"Share not found" : "Partekatzea ez da aurkitu",
|
||||
"Back to %s" : "Itzuli %s(e)ra",
|
||||
"Add to your Nextcloud" : "Gehitu zure Nextclouden",
|
||||
@@ -408,6 +398,8 @@ OC.L10N.register(
|
||||
"This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
|
||||
"Move or copy" : "Mugitu edo kopiatu",
|
||||
"You can upload into this folder" : "Karpeta honetara igo dezakezu",
|
||||
"Show list view" : "Erakutsi zerrenda ikuspegia",
|
||||
"Show grid view" : "Erakutsi sareta-ikuspegia",
|
||||
"No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
|
||||
"Invalid server URL" : "Zerbitzari URL baliogabea",
|
||||
"Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
|
||||
@@ -420,6 +412,14 @@ OC.L10N.register(
|
||||
"To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
|
||||
"Enter your name" : "Sartu zure izena",
|
||||
"Submit name" : "Sartu izena",
|
||||
"Share note" : "Partekatu oharra",
|
||||
"Upload files to %s" : "Igo fitxategiak hona: %s",
|
||||
"%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
|
||||
"Note" : "Oharra",
|
||||
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
|
||||
"Uploading files" : "Fitxategiak igotzen",
|
||||
"Uploaded files:" : "Igotako fitxategiak:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
|
||||
"Name" : "Izena",
|
||||
"Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
|
||||
"Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
|
||||
|
||||
@@ -387,16 +387,6 @@
|
||||
"Shared with you and {circle} by {owner}" : " {owner} erabiltzaileak zurekin eta {circle} zirkuluarekin partekatua",
|
||||
"Shared with you and the conversation {conversation} by {owner}" : "{owner} erabiltzaileak zu eta {conversation} elkarrizketarekin partekatua",
|
||||
"Shared with you in a conversation by {owner}" : "{owner} erabiltzaileak zurekin partekatua elkarrizketa batean",
|
||||
"Share note" : "Partekatu oharra",
|
||||
"Show list view" : "Erakutsi zerrenda ikuspegia",
|
||||
"Show grid view" : "Erakutsi sareta-ikuspegia",
|
||||
"Upload files to %s" : "Igo fitxategiak hona: %s",
|
||||
"%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
|
||||
"Note" : "Oharra",
|
||||
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
|
||||
"Uploading files" : "Fitxategiak igotzen",
|
||||
"Uploaded files:" : "Igotako fitxategiak:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
|
||||
"Share not found" : "Partekatzea ez da aurkitu",
|
||||
"Back to %s" : "Itzuli %s(e)ra",
|
||||
"Add to your Nextcloud" : "Gehitu zure Nextclouden",
|
||||
@@ -406,6 +396,8 @@
|
||||
"This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
|
||||
"Move or copy" : "Mugitu edo kopiatu",
|
||||
"You can upload into this folder" : "Karpeta honetara igo dezakezu",
|
||||
"Show list view" : "Erakutsi zerrenda ikuspegia",
|
||||
"Show grid view" : "Erakutsi sareta-ikuspegia",
|
||||
"No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
|
||||
"Invalid server URL" : "Zerbitzari URL baliogabea",
|
||||
"Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
|
||||
@@ -418,6 +410,14 @@
|
||||
"To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
|
||||
"Enter your name" : "Sartu zure izena",
|
||||
"Submit name" : "Sartu izena",
|
||||
"Share note" : "Partekatu oharra",
|
||||
"Upload files to %s" : "Igo fitxategiak hona: %s",
|
||||
"%s shared a folder with you." : "%s zurekin karpeta bat partekatu du.",
|
||||
"Note" : "Oharra",
|
||||
"Select or drop files" : "Hautatu edo jaregin fitxategiak",
|
||||
"Uploading files" : "Fitxategiak igotzen",
|
||||
"Uploaded files:" : "Igotako fitxategiak:",
|
||||
"By uploading files, you agree to the %1$sterms of service%2$s." : "Fitxategiak igotzean, %1$szerbitzu-baldintzak%2$s onartzen dituzu.",
|
||||
"Name" : "Izena",
|
||||
"Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
|
||||
"Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user