diff options
Diffstat (limited to 'lib')
60 files changed, 1114 insertions, 132 deletions
diff --git a/lib/base.php b/lib/base.php index c76d83cd220..b9862e73194 100644 --- a/lib/base.php +++ b/lib/base.php @@ -730,7 +730,6 @@ class OC { self::registerCacheHooks(); self::registerFilesystemHooks(); self::registerShareHooks(); - self::registerLogRotate(); self::registerEncryptionWrapper(); self::registerEncryptionHooks(); self::registerAccountHooks(); @@ -863,18 +862,6 @@ class OC { } /** - * register hooks for the cache - */ - public static function registerLogRotate() { - $systemConfig = \OC::$server->getSystemConfig(); - if ($systemConfig->getValue('installed', false) && $systemConfig->getValue('log_rotate_size', false) && !self::checkUpgrade(false)) { - //don't try to do this before we are properly setup - //use custom logfile path if defined, otherwise use default of nextcloud.log in data directory - \OC::$server->getJobList()->add('OC\Log\Rotate'); - } - } - - /** * register hooks for the filesystem */ public static function registerFilesystemHooks() { diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index e522d82edf7..0e550b72532 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -226,6 +226,7 @@ return array( 'OCP\\Lock\\ILockingProvider' => $baseDir . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => $baseDir . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => $baseDir . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => $baseDir . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => $baseDir . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => $baseDir . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => $baseDir . '/lib/public/Mail/IMessage.php', @@ -532,7 +533,6 @@ return array( 'OC\\DB\\Migrator' => $baseDir . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => $baseDir . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => $baseDir . '/lib/private/DB/MySqlTools.php', - 'OC\\DB\\NoCheckMigrator' => $baseDir . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCPostgreSqlPlatform' => $baseDir . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => $baseDir . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => $baseDir . '/lib/private/DB/OracleConnection.php', @@ -710,6 +710,7 @@ return array( 'OC\\Log\\File' => $baseDir . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => $baseDir . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => $baseDir . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => $baseDir . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => $baseDir . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => $baseDir . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => $baseDir . '/lib/private/Mail/Message.php', @@ -784,6 +785,7 @@ return array( 'OC\\Repair\\NC12\\InstallCoreBundle' => $baseDir . '/lib/private/Repair/NC12/InstallCoreBundle.php', 'OC\\Repair\\NC12\\RepairIdentityProofKeyFolders' => $baseDir . '/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php', 'OC\\Repair\\NC12\\UpdateLanguageCodes' => $baseDir . '/lib/private/Repair/NC12/UpdateLanguageCodes.php', + 'OC\\Repair\\NC13\\AddLogRotateJob' => $baseDir . '/lib/private/Repair/NC13/AddLogRotateJob.php', 'OC\\Repair\\NC13\\RepairInvalidPaths' => $baseDir . '/lib/private/Repair/NC13/RepairInvalidPaths.php', 'OC\\Repair\\OldGroupMembershipShares' => $baseDir . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 4f538e9602e..563c039d033 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -256,6 +256,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Lock\\ILockingProvider' => __DIR__ . '/../../..' . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => __DIR__ . '/../../..' . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => __DIR__ . '/../../..' . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => __DIR__ . '/../../..' . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => __DIR__ . '/../../..' . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => __DIR__ . '/../../..' . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => __DIR__ . '/../../..' . '/lib/public/Mail/IMessage.php', @@ -562,7 +563,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\DB\\Migrator' => __DIR__ . '/../../..' . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => __DIR__ . '/../../..' . '/lib/private/DB/MySqlTools.php', - 'OC\\DB\\NoCheckMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCPostgreSqlPlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => __DIR__ . '/../../..' . '/lib/private/DB/OracleConnection.php', @@ -740,6 +740,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Log\\File' => __DIR__ . '/../../..' . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => __DIR__ . '/../../..' . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => __DIR__ . '/../../..' . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => __DIR__ . '/../../..' . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => __DIR__ . '/../../..' . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => __DIR__ . '/../../..' . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => __DIR__ . '/../../..' . '/lib/private/Mail/Message.php', @@ -814,6 +815,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Repair\\NC12\\InstallCoreBundle' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/InstallCoreBundle.php', 'OC\\Repair\\NC12\\RepairIdentityProofKeyFolders' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php', 'OC\\Repair\\NC12\\UpdateLanguageCodes' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/UpdateLanguageCodes.php', + 'OC\\Repair\\NC13\\AddLogRotateJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/AddLogRotateJob.php', 'OC\\Repair\\NC13\\RepairInvalidPaths' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/RepairInvalidPaths.php', 'OC\\Repair\\OldGroupMembershipShares' => __DIR__ . '/../../..' . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index a169502af15..4713820e242 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", "today" : "today", + "tomorrow" : "tomorrow", "yesterday" : "yesterday", + "_in %n day_::_in %n days_" : ["in %n day","in %n days"], "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"], + "next month" : "next month", "last month" : "last month", + "_in %n month_::_in %n months_" : ["in %n month","in %n months"], "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"], + "next year" : "next year", "last year" : "last year", + "_in %n year_::_in %n years_" : ["in %n year","in %n years"], "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"], + "_in %n hour_::_in %n hours_" : ["in %n hour","in %n hours"], "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"], + "_in %n minute_::_in %n minutes_" : ["in %n minute","in %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"], + "in a few seconds" : "in a few seconds", "seconds ago" : "seconds ago", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.", "File name is a reserved word" : "File name is a reserved word", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index bf08239be71..01590dbb688 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -29,14 +29,23 @@ "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", "today" : "today", + "tomorrow" : "tomorrow", "yesterday" : "yesterday", + "_in %n day_::_in %n days_" : ["in %n day","in %n days"], "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"], + "next month" : "next month", "last month" : "last month", + "_in %n month_::_in %n months_" : ["in %n month","in %n months"], "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"], + "next year" : "next year", "last year" : "last year", + "_in %n year_::_in %n years_" : ["in %n year","in %n years"], "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"], + "_in %n hour_::_in %n hours_" : ["in %n hour","in %n hours"], "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"], + "_in %n minute_::_in %n minutes_" : ["in %n minute","in %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"], + "in a few seconds" : "in a few seconds", "seconds ago" : "seconds ago", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.", "File name is a reserved word" : "File name is a reserved word", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index 14eda42f187..5a50a527131 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", "today" : "hoy", + "tomorrow" : "mañana", "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["dentro de %n día","dentro de %n días"], "_%n day ago_::_%n days ago_" : ["Hace %n día","hace %n días"], + "next month" : "mes siguiente", "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["dentro de %n mes","dentro de %n meses"], "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "año que viene", "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["dentro de %n año","dentro de %n años"], "_%n year ago_::_%n years ago_" : ["Hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["dentro de %n hora","dentro de %n horas"], "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["dentro de %n minuto","dentro de %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en unos segundos", "seconds ago" : "hace segundos", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", @@ -56,7 +65,7 @@ OC.L10N.register( "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicas", + "Basic settings" : "Ajustes Basicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 23227e69ac6..c8ec965fcfe 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -29,14 +29,23 @@ "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", "today" : "hoy", + "tomorrow" : "mañana", "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["dentro de %n día","dentro de %n días"], "_%n day ago_::_%n days ago_" : ["Hace %n día","hace %n días"], + "next month" : "mes siguiente", "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["dentro de %n mes","dentro de %n meses"], "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "año que viene", "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["dentro de %n año","dentro de %n años"], "_%n year ago_::_%n years ago_" : ["Hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["dentro de %n hora","dentro de %n horas"], "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["dentro de %n minuto","dentro de %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en unos segundos", "seconds ago" : "hace segundos", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", @@ -54,7 +63,7 @@ "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicas", + "Basic settings" : "Ajustes Basicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", diff --git a/lib/l10n/es_CO.js b/lib/l10n/es_CO.js new file mode 100644 index 00000000000..89acfdc93fe --- /dev/null +++ b/lib/l10n/es_CO.js @@ -0,0 +1,259 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/es_CO.json b/lib/l10n/es_CO.json new file mode 100644 index 00000000000..0b6be27dfb5 --- /dev/null +++ b/lib/l10n/es_CO.json @@ -0,0 +1,257 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/fi.js b/lib/l10n/fi.js index 70aaaaa4600..596daa27fce 100644 --- a/lib/l10n/fi.js +++ b/lib/l10n/fi.js @@ -60,6 +60,9 @@ OC.L10N.register( "Sync clients" : "Synkronointisovellukset", "Unlimited" : "Rajoittamaton", "__language_name__" : "suomi", + "Verifying" : "Vahvistetaan", + "Verifying …" : "Vahvistetaan…", + "Verify" : "Vahvista", "%s enter the database username and name." : "%s anna tietokannan käyttäjätunnus ja nimi.", "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.", "%s enter the database name." : "%s anna tietokannan nimi.", @@ -98,6 +101,9 @@ OC.L10N.register( "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista", "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi", + "%s shared »%s« with you." : "%s jakoi kohteen »%s« kanssasi.", + "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.", + "Open »%s«" : "Avaa »%s«", "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt", "Sunday" : "sunnuntai", "Monday" : "maanantai", @@ -150,6 +156,7 @@ OC.L10N.register( "Username must not consist of dots only" : "Käyttäjänimi ei voi koostua vain pisteistä", "A valid password must be provided" : "Anna kelvollinen salasana", "The username is already being used" : "Käyttäjätunnus on jo käytössä", + "Could not create user" : "Ei voitu luoda käyttäjää", "User disabled" : "Käyttäjä poistettu käytöstä", "Login canceled by app" : "Kirjautuminen peruttiin sovelluksen toimesta", "No app name specified" : "Sovelluksen nimeä ei määritelty", diff --git a/lib/l10n/fi.json b/lib/l10n/fi.json index 6cdb463d154..b29589b0773 100644 --- a/lib/l10n/fi.json +++ b/lib/l10n/fi.json @@ -58,6 +58,9 @@ "Sync clients" : "Synkronointisovellukset", "Unlimited" : "Rajoittamaton", "__language_name__" : "suomi", + "Verifying" : "Vahvistetaan", + "Verifying …" : "Vahvistetaan…", + "Verify" : "Vahvista", "%s enter the database username and name." : "%s anna tietokannan käyttäjätunnus ja nimi.", "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.", "%s enter the database name." : "%s anna tietokannan nimi.", @@ -96,6 +99,9 @@ "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista", "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi", + "%s shared »%s« with you." : "%s jakoi kohteen »%s« kanssasi.", + "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.", + "Open »%s«" : "Avaa »%s«", "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt", "Sunday" : "sunnuntai", "Monday" : "maanantai", @@ -148,6 +154,7 @@ "Username must not consist of dots only" : "Käyttäjänimi ei voi koostua vain pisteistä", "A valid password must be provided" : "Anna kelvollinen salasana", "The username is already being used" : "Käyttäjätunnus on jo käytössä", + "Could not create user" : "Ei voitu luoda käyttäjää", "User disabled" : "Käyttäjä poistettu käytöstä", "Login canceled by app" : "Kirjautuminen peruttiin sovelluksen toimesta", "No app name specified" : "Sovelluksen nimeä ei määritelty", diff --git a/lib/l10n/hu.js b/lib/l10n/hu.js index 80ed2686702..9be41cefd60 100644 --- a/lib/l10n/hu.js +++ b/lib/l10n/hu.js @@ -33,17 +33,23 @@ OC.L10N.register( "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", + "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], "next month" : "következő hónap", "last month" : "múlt hónapban", + "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], "next year" : "következő évben", "last year" : "tavaly", + "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], + "_in %n hour_::_in %n hours_" : ["%n órán belül","%n órán belül"], "_%n hour ago_::_%n hours ago_" : ["%n órája","%n órája"], + "_in %n minute_::_in %n minutes_" : ["%n percen belül","%n percen belül"], "_%n minute ago_::_%n minutes ago_" : ["%n perce","%n perce"], "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", "File name is a reserved word" : "A fajl neve egy rezervált szó", "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", "File name is too long" : "A fájlnév túl hosszú!", @@ -51,6 +57,7 @@ OC.L10N.register( "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", @@ -78,6 +85,7 @@ OC.L10N.register( "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", @@ -85,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.", "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.", "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", + "Given database host is invalid and must not contain the port: %s" : "A megadott adatbázis host nem érvényes, nem tartalmazhatja a portot: %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", @@ -115,11 +124,13 @@ OC.L10N.register( "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", "%s shared »%s« with you" : "%s megosztotta veled ezt: »%s«", "%s shared »%s« with you." : "%s megosztotta »%s«-t veled.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s - %s", + "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", "Sunday" : "Vasárnap", "Monday" : "Hétfő", @@ -169,8 +180,10 @@ OC.L10N.register( "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", + "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "A valid password must be provided" : "Érvényes jelszót kell megadnia", "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", "No app name specified" : "Nincs az alkalmazás név megadva.", @@ -186,7 +199,10 @@ OC.L10N.register( "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Ez legtöbbször megoldható az app mappára a webszervernek adott írási joggal, vagy a config fájlban az alkalmazástár letiltásával. Lásd: %s", "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", @@ -208,6 +224,7 @@ OC.L10N.register( "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", diff --git a/lib/l10n/hu.json b/lib/l10n/hu.json index 31542fa6ca3..ca74529e40f 100644 --- a/lib/l10n/hu.json +++ b/lib/l10n/hu.json @@ -31,17 +31,23 @@ "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", + "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], "next month" : "következő hónap", "last month" : "múlt hónapban", + "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], "next year" : "következő évben", "last year" : "tavaly", + "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], + "_in %n hour_::_in %n hours_" : ["%n órán belül","%n órán belül"], "_%n hour ago_::_%n hours ago_" : ["%n órája","%n órája"], + "_in %n minute_::_in %n minutes_" : ["%n percen belül","%n percen belül"], "_%n minute ago_::_%n minutes ago_" : ["%n perce","%n perce"], "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", "File name is a reserved word" : "A fajl neve egy rezervált szó", "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", "File name is too long" : "A fájlnév túl hosszú!", @@ -49,6 +55,7 @@ "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", @@ -76,6 +83,7 @@ "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", @@ -83,6 +91,7 @@ "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.", "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.", "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", + "Given database host is invalid and must not contain the port: %s" : "A megadott adatbázis host nem érvényes, nem tartalmazhatja a portot: %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", @@ -113,11 +122,13 @@ "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", "%s shared »%s« with you" : "%s megosztotta veled ezt: »%s«", "%s shared »%s« with you." : "%s megosztotta »%s«-t veled.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s - %s", + "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", "Sunday" : "Vasárnap", "Monday" : "Hétfő", @@ -167,8 +178,10 @@ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", + "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "A valid password must be provided" : "Érvényes jelszót kell megadnia", "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", "No app name specified" : "Nincs az alkalmazás név megadva.", @@ -184,7 +197,10 @@ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Ez legtöbbször megoldható az app mappára a webszervernek adott írási joggal, vagy a config fájlban az alkalmazástár letiltásával. Lásd: %s", "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", @@ -206,6 +222,7 @@ "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", diff --git a/lib/l10n/is.js b/lib/l10n/is.js index 155f3d56a3a..7f3dc4a7075 100644 --- a/lib/l10n/is.js +++ b/lib/l10n/is.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ógild mynd", "Avatar image is not square" : "Auðkennismynd er ekki ferningslaga", "today" : "í dag", + "tomorrow" : "á morgun", "yesterday" : "í gær", + "_in %n day_::_in %n days_" : ["eftir %n dag","eftir %n daga"], "_%n day ago_::_%n days ago_" : ["fyrir %n degi síðan","fyrir %n dögum síðan"], + "next month" : "í næsta mánuði", "last month" : "í síðasta mánuði", + "_in %n month_::_in %n months_" : ["eftir %n mánuð","eftir %n mánuði"], "_%n month ago_::_%n months ago_" : ["fyrir %n mánuði","fyrir %n mánuðum"], + "next year" : "á næsta ári", "last year" : "síðasta ári", + "_in %n year_::_in %n years_" : ["eftir %n ár","eftir %n ár"], "_%n year ago_::_%n years ago_" : ["fyrir %n degi síðan","fyrir %n árum síðan"], + "_in %n hour_::_in %n hours_" : ["eftir %n klukkustund","eftir %n klukkustundir"], "_%n hour ago_::_%n hours ago_" : ["fyrir %n klukkustund síðan","fyrir %n klukkustundum síðan"], + "_in %n minute_::_in %n minutes_" : ["eftir %n mínútu","eftir %n mínútur"], "_%n minute ago_::_%n minutes ago_" : ["fyrir %n mínútu síðan","fyrir %n mínútum síðan"], + "in a few seconds" : "eftir örfáar sekúndur", "seconds ago" : "sekúndum síðan", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Eining með auðkenni: %s er ekki til. Virkjaðu hana í forritastillingum eða hafðu samband við kerfisstjóra.", "File name is a reserved word" : "Skráarheiti er þegar frátekið orð", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Stilltu notandanafn kerfisstjóra.", "Set an admin password." : "Stilltu lykilorð kerfisstjóra.", "Can't create or write into the data directory %s" : "Gat ekki búið til eða skrifað í gagnamöppuna %s", + "Given database host is invalid and must not contain the port: %s" : "Uppgefinn hýsill gagnagrunns er ógildur og má ekki innihalda gáttina: %s", "Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deiling %s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %i", "Sharing %s failed, because the file does not exist" : "Deiling %s mistókst, því skráin er ekki til", diff --git a/lib/l10n/is.json b/lib/l10n/is.json index f106f993f88..ca3c9f19e41 100644 --- a/lib/l10n/is.json +++ b/lib/l10n/is.json @@ -29,14 +29,23 @@ "Invalid image" : "Ógild mynd", "Avatar image is not square" : "Auðkennismynd er ekki ferningslaga", "today" : "í dag", + "tomorrow" : "á morgun", "yesterday" : "í gær", + "_in %n day_::_in %n days_" : ["eftir %n dag","eftir %n daga"], "_%n day ago_::_%n days ago_" : ["fyrir %n degi síðan","fyrir %n dögum síðan"], + "next month" : "í næsta mánuði", "last month" : "í síðasta mánuði", + "_in %n month_::_in %n months_" : ["eftir %n mánuð","eftir %n mánuði"], "_%n month ago_::_%n months ago_" : ["fyrir %n mánuði","fyrir %n mánuðum"], + "next year" : "á næsta ári", "last year" : "síðasta ári", + "_in %n year_::_in %n years_" : ["eftir %n ár","eftir %n ár"], "_%n year ago_::_%n years ago_" : ["fyrir %n degi síðan","fyrir %n árum síðan"], + "_in %n hour_::_in %n hours_" : ["eftir %n klukkustund","eftir %n klukkustundir"], "_%n hour ago_::_%n hours ago_" : ["fyrir %n klukkustund síðan","fyrir %n klukkustundum síðan"], + "_in %n minute_::_in %n minutes_" : ["eftir %n mínútu","eftir %n mínútur"], "_%n minute ago_::_%n minutes ago_" : ["fyrir %n mínútu síðan","fyrir %n mínútum síðan"], + "in a few seconds" : "eftir örfáar sekúndur", "seconds ago" : "sekúndum síðan", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Eining með auðkenni: %s er ekki til. Virkjaðu hana í forritastillingum eða hafðu samband við kerfisstjóra.", "File name is a reserved word" : "Skráarheiti er þegar frátekið orð", @@ -82,6 +91,7 @@ "Set an admin username." : "Stilltu notandanafn kerfisstjóra.", "Set an admin password." : "Stilltu lykilorð kerfisstjóra.", "Can't create or write into the data directory %s" : "Gat ekki búið til eða skrifað í gagnamöppuna %s", + "Given database host is invalid and must not contain the port: %s" : "Uppgefinn hýsill gagnagrunns er ógildur og má ekki innihalda gáttina: %s", "Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deiling %s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %i", "Sharing %s failed, because the file does not exist" : "Deiling %s mistókst, því skráin er ekki til", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 20965576b7b..888a99486bd 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -31,14 +31,18 @@ OC.L10N.register( "Invalid image" : "Błędne zdjęcie", "Avatar image is not square" : "Obraz awataru nie jest kwadratowy", "today" : "dziś", + "tomorrow" : "jutro", "yesterday" : "wczoraj", "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu","%n dni temu"], + "next month" : "następny miesiąc", "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu","%n miesięcy temu"], + "next year" : "następny rok", "last year" : "w zeszłym roku", "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu","%n minut temu"], + "in a few seconds" : "w ciągu kilku sekund", "seconds ago" : "sekund temu", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moduł o ID: %s nie istnieje. Proszę włącz go w ustawieniach aplikacji lub skontaktuj się z administratorem.", "File name is a reserved word" : "Nazwa pliku jest zarezerwowana", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 6d4a34b7c6b..4cbac5a5cc4 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -29,14 +29,18 @@ "Invalid image" : "Błędne zdjęcie", "Avatar image is not square" : "Obraz awataru nie jest kwadratowy", "today" : "dziś", + "tomorrow" : "jutro", "yesterday" : "wczoraj", "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu","%n dni temu"], + "next month" : "następny miesiąc", "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu","%n miesięcy temu"], + "next year" : "następny rok", "last year" : "w zeszłym roku", "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu","%n minut temu"], + "in a few seconds" : "w ciągu kilku sekund", "seconds ago" : "sekund temu", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moduł o ID: %s nie istnieje. Proszę włącz go w ustawieniach aplikacji lub skontaktuj się z administratorem.", "File name is a reserved word" : "Nazwa pliku jest zarezerwowana", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 109c0f66938..286a28ff072 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Изображение повреждено", "Avatar image is not square" : "Изображение аватара не квадратное", "today" : "сегодня", + "tomorrow" : "завтра", "yesterday" : "вчера", + "_in %n day_::_in %n days_" : ["через %n день","через %n дня","через %n дней","через %n день"], "_%n day ago_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад","%n дней назад"], + "next month" : "следующий месяц", "last month" : "в прошлом месяце", + "_in %n month_::_in %n months_" : ["через %n месяц","через %n месяца","через %n месяцев","через %n месяц"], "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"], + "next year" : "следующий год", "last year" : "в прошлом году", + "_in %n year_::_in %n years_" : ["через %n год","через %n года","через %n лет","через %n год"], "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"], + "_in %n hour_::_in %n hours_" : ["через %n час","через %n часа","через %n часов","через %n час"], "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"], + "_in %n minute_::_in %n minutes_" : ["через %n минуту","через %n минуты","через %n минут","через %n минуту"], "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"], + "in a few seconds" : "через несколько секунд", "seconds ago" : "менее минуты", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модуль с ID «%s» не существует. Включите его в настройках приложений или обратитесь к администратору.", "File name is a reserved word" : "Имя файла является зарезервированным словом", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 553aa793810..127e31de0b4 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -29,14 +29,23 @@ "Invalid image" : "Изображение повреждено", "Avatar image is not square" : "Изображение аватара не квадратное", "today" : "сегодня", + "tomorrow" : "завтра", "yesterday" : "вчера", + "_in %n day_::_in %n days_" : ["через %n день","через %n дня","через %n дней","через %n день"], "_%n day ago_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад","%n дней назад"], + "next month" : "следующий месяц", "last month" : "в прошлом месяце", + "_in %n month_::_in %n months_" : ["через %n месяц","через %n месяца","через %n месяцев","через %n месяц"], "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"], + "next year" : "следующий год", "last year" : "в прошлом году", + "_in %n year_::_in %n years_" : ["через %n год","через %n года","через %n лет","через %n год"], "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"], + "_in %n hour_::_in %n hours_" : ["через %n час","через %n часа","через %n часов","через %n час"], "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"], + "_in %n minute_::_in %n minutes_" : ["через %n минуту","через %n минуты","через %n минут","через %n минуту"], "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"], + "in a few seconds" : "через несколько секунд", "seconds ago" : "менее минуты", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модуль с ID «%s» не существует. Включите его в настройках приложений или обратитесь к администратору.", "File name is a reserved word" : "Имя файла является зарезервированным словом", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index 364b64aa550..60b29183d4b 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -31,6 +31,7 @@ OC.L10N.register( "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", "today" : "i dag", + "tomorrow" : "i morgon", "yesterday" : "i går", "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "last month" : "förra månaden", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index 1b599ae3e96..36a182c26dd 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -29,6 +29,7 @@ "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", "today" : "i dag", + "tomorrow" : "i morgon", "yesterday" : "i går", "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "last month" : "förra månaden", diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js index 55ebf18c052..be68a268db4 100644 --- a/lib/l10n/zh_TW.js +++ b/lib/l10n/zh_TW.js @@ -7,6 +7,8 @@ OC.L10N.register( "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "允許網頁伺服器寫入 \"config\" 目錄通常可以解決這個問題,詳見 %s", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", + "%1$s and %2$s" : "%1$s 和 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "%sbit or higher PHP required." : "%s 或需要更高階版本的php", @@ -22,10 +24,15 @@ OC.L10N.register( "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", + "tomorrow" : "明天", "yesterday" : "昨天", + "_in %n day_::_in %n days_" : ["在 %n 天內"], "_%n day ago_::_%n days ago_" : ["%n 天前"], + "next month" : "下個月", "last month" : "上個月", + "_in %n month_::_in %n months_" : ["在 %n 月內"], "_%n month ago_::_%n months ago_" : ["%n 個月前"], + "next year" : "明年", "last year" : "去年", "_%n year ago_::_%n years ago_" : ["%n 幾年前"], "_%n hour ago_::_%n hours ago_" : ["%n 小時前"], diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json index 103d0e25965..519ca314b93 100644 --- a/lib/l10n/zh_TW.json +++ b/lib/l10n/zh_TW.json @@ -5,6 +5,8 @@ "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "允許網頁伺服器寫入 \"config\" 目錄通常可以解決這個問題,詳見 %s", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", + "%1$s and %2$s" : "%1$s 和 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "%sbit or higher PHP required." : "%s 或需要更高階版本的php", @@ -20,10 +22,15 @@ "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", + "tomorrow" : "明天", "yesterday" : "昨天", + "_in %n day_::_in %n days_" : ["在 %n 天內"], "_%n day ago_::_%n days ago_" : ["%n 天前"], + "next month" : "下個月", "last month" : "上個月", + "_in %n month_::_in %n months_" : ["在 %n 月內"], "_%n month ago_::_%n months ago_" : ["%n 個月前"], + "next year" : "明年", "last year" : "去年", "_%n year ago_::_%n years ago_" : ["%n 幾年前"], "_%n hour ago_::_%n hours ago_" : ["%n 小時前"], diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 2290f0d0045..0ea7eed4ae2 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -230,7 +230,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $app->isAdminUser(), $server->getContentSecurityPolicyManager(), $server->getCsrfTokenManager(), - $server->getContentSecurityPolicyNonceManager() + $server->getContentSecurityPolicyNonceManager(), + $server->getAppManager() ); }); diff --git a/lib/private/AppFramework/Http.php b/lib/private/AppFramework/Http.php index 526509a4583..be1e178a05f 100644 --- a/lib/private/AppFramework/Http.php +++ b/lib/private/AppFramework/Http.php @@ -111,7 +111,7 @@ class Http extends BaseHttp { /** * Gets the correct header - * @param Http::CONSTANT $status the constant from the Http class + * @param int Http::CONSTANT $status the constant from the Http class * @param \DateTime $lastModified formatted last modified date * @param string $ETag the etag * @return string diff --git a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php index 4e41c946432..52004987909 100644 --- a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php @@ -39,6 +39,7 @@ use OC\AppFramework\Utility\ControllerMethodReflector; use OC\Security\CSP\ContentSecurityPolicyManager; use OC\Security\CSP\ContentSecurityPolicyNonceManager; use OC\Security\CSRF\CsrfTokenManager; +use OCP\App\IAppManager; use OCP\AppFramework\Http\ContentSecurityPolicy; use OCP\AppFramework\Http\EmptyContentSecurityPolicy; use OCP\AppFramework\Http\RedirectResponse; @@ -87,6 +88,8 @@ class SecurityMiddleware extends Middleware { private $csrfTokenManager; /** @var ContentSecurityPolicyNonceManager */ private $cspNonceManager; + /** @var IAppManager */ + private $appManager; /** * @param IRequest $request @@ -101,6 +104,7 @@ class SecurityMiddleware extends Middleware { * @param ContentSecurityPolicyManager $contentSecurityPolicyManager * @param CSRFTokenManager $csrfTokenManager * @param ContentSecurityPolicyNonceManager $cspNonceManager + * @param IAppManager $appManager */ public function __construct(IRequest $request, ControllerMethodReflector $reflector, @@ -113,7 +117,8 @@ class SecurityMiddleware extends Middleware { $isAdminUser, ContentSecurityPolicyManager $contentSecurityPolicyManager, CsrfTokenManager $csrfTokenManager, - ContentSecurityPolicyNonceManager $cspNonceManager) { + ContentSecurityPolicyNonceManager $cspNonceManager, + IAppManager $appManager) { $this->navigationManager = $navigationManager; $this->request = $request; $this->reflector = $reflector; @@ -126,6 +131,7 @@ class SecurityMiddleware extends Middleware { $this->contentSecurityPolicyManager = $contentSecurityPolicyManager; $this->csrfTokenManager = $csrfTokenManager; $this->cspNonceManager = $cspNonceManager; + $this->appManager = $appManager; } /** @@ -190,7 +196,7 @@ class SecurityMiddleware extends Middleware { * The getAppPath() check is here since components such as settings also use the AppFramework and * therefore won't pass this check. */ - if(\OC_App::getAppPath($this->appName) !== false && !\OC_App::isEnabled($this->appName)) { + if(\OC_App::getAppPath($this->appName) !== false && !$this->appManager->isEnabledForUser($this->appName)) { throw new AppNotEnabledException(); } diff --git a/lib/private/Collaboration/Collaborators/SearchResult.php b/lib/private/Collaboration/Collaborators/SearchResult.php index 7b32b388203..184c1f69a1b 100644 --- a/lib/private/Collaboration/Collaborators/SearchResult.php +++ b/lib/private/Collaboration/Collaborators/SearchResult.php @@ -52,7 +52,7 @@ class SearchResult implements ISearchResult { $this->exactIdMatches[$type->getLabel()] = 1; } - public function hasExactIdMatch(SearchResultType$type) { + public function hasExactIdMatch(SearchResultType $type) { return isset($this->exactIdMatches[$type->getLabel()]); } @@ -64,8 +64,10 @@ class SearchResult implements ISearchResult { $resultArrays = [$this->result['exact'][$type], $this->result[$type]]; foreach($resultArrays as $resultArray) { - if ($resultArray['value']['shareWith'] === $collaboratorId) { - return true; + foreach ($resultArray as $result) { + if ($result['value']['shareWith'] === $collaboratorId) { + return true; + } } } diff --git a/lib/private/Command/QueueBus.php b/lib/private/Command/QueueBus.php index 7f2fc88a703..30cdd7740a9 100644 --- a/lib/private/Command/QueueBus.php +++ b/lib/private/Command/QueueBus.php @@ -27,7 +27,7 @@ use OCP\Command\ICommand; class QueueBus implements IBus { /** - * @var (ICommand|callable)[] + * @var ICommand[]|callable[] */ private $queue = []; diff --git a/lib/private/DB/MDB2SchemaManager.php b/lib/private/DB/MDB2SchemaManager.php index 89b0d153212..ad3f93a2643 100644 --- a/lib/private/DB/MDB2SchemaManager.php +++ b/lib/private/DB/MDB2SchemaManager.php @@ -89,7 +89,7 @@ class MDB2SchemaManager { } else if ($platform instanceof PostgreSqlPlatform) { return new PostgreSqlMigrator($this->conn, $random, $config, $dispatcher); } else { - return new NoCheckMigrator($this->conn, $random, $config, $dispatcher); + return new Migrator($this->conn, $random, $config, $dispatcher); } } diff --git a/lib/private/DB/NoCheckMigrator.php b/lib/private/DB/NoCheckMigrator.php deleted file mode 100644 index 723653511b9..00000000000 --- a/lib/private/DB/NoCheckMigrator.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OC\DB; - -use Doctrine\DBAL\Schema\Schema; - -/** - * migrator for database platforms that don't support the upgrade check - * - * @package OC\DB - */ -class NoCheckMigrator extends Migrator { - /** - * @param \Doctrine\DBAL\Schema\Schema $targetSchema - * @throws \OC\DB\MigrationException - */ - public function checkMigrate(Schema $targetSchema) {} -} diff --git a/lib/private/DB/OracleMigrator.php b/lib/private/DB/OracleMigrator.php index 2735529b5e2..f5e06b50d99 100644 --- a/lib/private/DB/OracleMigrator.php +++ b/lib/private/DB/OracleMigrator.php @@ -30,8 +30,79 @@ use Doctrine\DBAL\Schema\ColumnDiff; use Doctrine\DBAL\Schema\Index; use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Table; +use Doctrine\DBAL\Schema\ForeignKeyConstraint; + +class OracleMigrator extends Migrator { + + /** + * Quote a column's name but changing the name requires recreating + * the column instance and copying over all properties. + * + * @param Column $column old column + * @return Column new column instance with new name + */ + protected function quoteColumn(Column $column) { + $newColumn = new Column( + $this->connection->quoteIdentifier($column->getName()), + $column->getType() + ); + $newColumn->setAutoincrement($column->getAutoincrement()); + $newColumn->setColumnDefinition($column->getColumnDefinition()); + $newColumn->setComment($column->getComment()); + $newColumn->setDefault($column->getDefault()); + $newColumn->setFixed($column->getFixed()); + $newColumn->setLength($column->getLength()); + $newColumn->setNotnull($column->getNotnull()); + $newColumn->setPrecision($column->getPrecision()); + $newColumn->setScale($column->getScale()); + $newColumn->setUnsigned($column->getUnsigned()); + $newColumn->setPlatformOptions($column->getPlatformOptions()); + $newColumn->setCustomSchemaOptions($column->getPlatformOptions()); + return $newColumn; + } + + /** + * Quote an index's name but changing the name requires recreating + * the index instance and copying over all properties. + * + * @param Index $index old index + * @return Index new index instance with new name + */ + protected function quoteIndex($index) { + return new Index( + //TODO migrate existing uppercase indexes, then $this->connection->quoteIdentifier($index->getName()), + $index->getName(), + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $index->getColumns()), + $index->isUnique(), + $index->isPrimary(), + $index->getFlags(), + $index->getOptions() + ); + } + + /** + * Quote an ForeignKeyConstraint's name but changing the name requires recreating + * the ForeignKeyConstraint instance and copying over all properties. + * + * @param ForeignKeyConstraint $fkc old fkc + * @return ForeignKeyConstraint new fkc instance with new name + */ + protected function quoteForeignKeyConstraint($fkc) { + return new ForeignKeyConstraint( + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $fkc->getLocalColumns()), + $this->connection->quoteIdentifier($fkc->getForeignTableName()), + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $fkc->getForeignColumns()), + $fkc->getName(), + $fkc->getOptions() + ); + } -class OracleMigrator extends NoCheckMigrator { /** * @param Schema $targetSchema * @param \Doctrine\DBAL\Connection $connection @@ -46,37 +117,14 @@ class OracleMigrator extends NoCheckMigrator { return new Table( $this->connection->quoteIdentifier($table->getName()), array_map(function(Column $column) { - $newColumn = new Column( - $this->connection->quoteIdentifier($column->getName()), - $column->getType() - ); - $newColumn->setAutoincrement($column->getAutoincrement()); - $newColumn->setColumnDefinition($column->getColumnDefinition()); - $newColumn->setComment($column->getComment()); - $newColumn->setDefault($column->getDefault()); - $newColumn->setFixed($column->getFixed()); - $newColumn->setLength($column->getLength()); - $newColumn->setNotnull($column->getNotnull()); - $newColumn->setPrecision($column->getPrecision()); - $newColumn->setScale($column->getScale()); - $newColumn->setUnsigned($column->getUnsigned()); - $newColumn->setPlatformOptions($column->getPlatformOptions()); - $newColumn->setCustomSchemaOptions($column->getPlatformOptions()); - return $newColumn; + return $this->quoteColumn($column); }, $table->getColumns()), array_map(function(Index $index) { - return new Index( - $this->connection->quoteIdentifier($index->getName()), - array_map(function($columnName) { - return $this->connection->quoteIdentifier($columnName); - }, $index->getColumns()), - $index->isUnique(), - $index->isPrimary(), - $index->getFlags(), - $index->getOptions() - ); + return $this->quoteIndex($index); }, $table->getIndexes()), - $table->getForeignKeys(), + array_map(function(ForeignKeyConstraint $fck) { + return $this->quoteForeignKeyConstraint($fck); + }, $table->getForeignKeys()), 0, $table->getOptions() ); @@ -95,14 +143,56 @@ class OracleMigrator extends NoCheckMigrator { foreach ($schemaDiff->changedTables as $tableDiff) { $tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name); + + $tableDiff->addedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->addedColumns); + foreach ($tableDiff->changedColumns as $column) { $column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName); // auto increment is not relevant for oracle and can anyhow not be applied on change $column->changedProperties = array_diff($column->changedProperties, ['autoincrement', 'unsigned']); } + // remove columns that no longer have changed (because autoincrement and unsigned are not supported) $tableDiff->changedColumns = array_filter($tableDiff->changedColumns, function (ColumnDiff $column) { return count($column->changedProperties) > 0; }); + + $tableDiff->removedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->removedColumns); + + $tableDiff->renamedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->renamedColumns); + + $tableDiff->addedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->addedIndexes); + + $tableDiff->changedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->changedIndexes); + + $tableDiff->removedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->removedIndexes); + + $tableDiff->renamedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->renamedIndexes); + + $tableDiff->addedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->addedForeignKeys); + + $tableDiff->changedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->changedForeignKeys); + + $tableDiff->removedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->removedForeignKeys); } return $schemaDiff; diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php index f5a44ba02ea..7ac0c6e49d5 100644 --- a/lib/private/Files/FileInfo.php +++ b/lib/private/Files/FileInfo.php @@ -232,7 +232,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { } /** - * @return \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER + * @return string \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER */ public function getType() { if (!isset($this->data['type'])) { diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index ded69e8079b..15df808684b 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -390,7 +390,15 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { $stat['size'] = filesize($tmpFile); $stat['mtime'] = $mTime; $stat['storage_mtime'] = $mTime; - $stat['mimetype'] = \OC::$server->getMimeTypeDetector()->detect($tmpFile); + + // run path based detection first, to use file extension because $tmpFile is only a random string + $mimetypeDetector = \OC::$server->getMimeTypeDetector(); + $mimetype = $mimetypeDetector->detectPath($path); + if ($mimetype === 'application/octet-stream') { + $mimetype = $mimetypeDetector->detect($tmpFile); + } + + $stat['mimetype'] = $mimetype; $stat['etag'] = $this->getETag($path); $fileId = $this->getCache()->put($path, $stat); diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index 6fb12265cb7..4bfa08a3e59 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -49,12 +49,15 @@ trait S3ObjectTrait { 'Bucket' => $this->bucket, 'Key' => $urn ]); - $command['@http']['stream'] = true; - $result = $client->execute($command); - /** @var StreamInterface $body */ - $body = $result['Body']; + $request = \Aws\serialize($command); + $opts = [ + 'http' => [ + 'header' => $request->getHeaders() + ] + ]; - return $body->detach(); + $context = stream_context_create($opts); + return fopen($request->getUri(), 'r', false, $context); } /** diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 0577093712e..c9cb6f246d7 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -408,10 +408,11 @@ class Local extends \OC\Files\Storage\Common { * @param IStorage $sourceStorage * @param string $sourceInternalPath * @param string $targetInternalPath + * @param bool $preserveMtime * @return bool */ public function copyFromStorage(IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) { - if ($sourceStorage->instanceOfStorage('\OC\Files\Storage\Local')) { + if ($sourceStorage->instanceOfStorage(Local::class)) { if ($sourceStorage->instanceOfStorage(Jail::class)) { /** * @var \OC\Files\Storage\Wrapper\Jail $sourceStorage diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php index cd4ddc2f067..928c68251cf 100644 --- a/lib/private/Files/Type/Detection.php +++ b/lib/private/Files/Type/Detection.php @@ -173,6 +173,10 @@ class Detection implements IMimeTypeDetector { // note: leading dot doesn't qualify as extension if (strpos($fileName, '.') > 0) { + + // remove versioning extension: name.v1508946057 and transfer extension: name.ocTransferId2057600214.part + $fileName = preg_replace('!((\.v\d+)|((.ocTransferId\d+)?.part))$!', '', $fileName); + //try to guess the type by the file extension $extension = strtolower(strrchr($fileName, '.')); $extension = substr($extension, 1); //remove leading . diff --git a/lib/private/Log.php b/lib/private/Log.php index 39577d2387a..25ff26daffa 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -69,6 +69,8 @@ class Log implements ILogger { 'loginWithPassword', 'updatePrivateKeyPassword', 'validateUserPass', + 'loginWithToken', + '\{closure\}', // TokenProvider 'getToken', @@ -96,6 +98,10 @@ class Log implements ILogger { 'bind', 'areCredentialsValid', 'invokeLDAPMethod', + + // Encryption + 'storeKeyPair', + 'setupUser', ]; /** diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php new file mode 100644 index 00000000000..7b85ad1dbb9 --- /dev/null +++ b/lib/private/Mail/Attachment.php @@ -0,0 +1,78 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Mail; + +use OCP\Mail\IAttachment; + +/** + * Class Attachment + * + * @package OC\Mail + * @since 13.0.0 + */ +class Attachment implements IAttachment { + + /** @var \Swift_Mime_Attachment */ + protected $swiftAttachment; + + public function __construct(\Swift_Mime_Attachment $attachment) { + $this->swiftAttachment = $attachment; + } + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename) { + $this->swiftAttachment->setFilename($filename); + return $this; + } + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType) { + $this->swiftAttachment->setContentType($contentType); + return $this; + } + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body) { + $this->swiftAttachment->setBody($body); + return $this; + } + + /** + * @return \Swift_Mime_Attachment + */ + public function getSwiftAttachment() { + return $this->swiftAttachment; + } + +} diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 43fdb07b810..ad59d640b3e 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -26,6 +26,7 @@ use OCP\Defaults; use OCP\IConfig; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\ILogger; @@ -92,6 +93,27 @@ class Mailer implements IMailer { } /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null) { + return new Attachment(\Swift_Attachment::newInstance($data, $filename, $contentType)); + } + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null) { + return new Attachment(\Swift_Attachment::fromPath($path, $contentType)); + } + + /** * Creates a new email template object * * @param string $emailId diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index b4d1e4dbe7a..dcd4a66e996 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -23,6 +23,7 @@ namespace OC\Mail; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMessage; use Swift_Message; @@ -44,6 +45,17 @@ class Message implements IMessage { } /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment) { + /** @var Attachment $attachment */ + $this->swiftMessage->attach($attachment->getSwiftAttachment()); + return $this; + } + + /** * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains * FIXME: Remove this once SwiftMailer supports IDN * diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 80cd3c7fd45..ac824095d53 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -41,6 +41,7 @@ use OC\Repair\NC11\MoveAvatars; use OC\Repair\NC12\InstallCoreBundle; use OC\Repair\NC12\UpdateLanguageCodes; use OC\Repair\NC12\RepairIdentityProofKeyFolders; +use OC\Repair\NC13\AddLogRotateJob; use OC\Repair\OldGroupMembershipShares; use OC\Repair\Owncloud\DropAccountTermsTable; use OC\Repair\Owncloud\SaveAccountsTableData; @@ -150,6 +151,7 @@ class Repair implements IOutput{ ), new RepairInvalidPaths(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()), new RepairIdentityProofKeyFolders(\OC::$server->getConfig(), \OC::$server->query(Factory::class), \OC::$server->getRootFolder()), + new AddLogRotateJob(\OC::$server->getJobList()), ]; } diff --git a/lib/private/Repair/NC13/AddLogRotateJob.php b/lib/private/Repair/NC13/AddLogRotateJob.php new file mode 100644 index 00000000000..c65ea47f02b --- /dev/null +++ b/lib/private/Repair/NC13/AddLogRotateJob.php @@ -0,0 +1,47 @@ +<?php +/** + * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> + * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +namespace OC\Repair\NC13; + +use OC\Log\Rotate; +use OCP\BackgroundJob\IJobList; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; + +class AddLogRotateJob implements IRepairStep { + + /** @var IJobList */ + private $jobList; + + public function __construct(IJobList $jobList) { + $this->jobList = $jobList; + } + + public function getName() { + return 'Add log rotate job'; + } + + public function run(IOutput $output) { + $this->jobList->add(Rotate::class); + } + +} diff --git a/lib/private/Server.php b/lib/private/Server.php index 1621a194693..c461d3842cd 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -533,8 +533,8 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(\OCP\Route\IRouter::class, function (Server $c) { $cacheFactory = $c->getMemCacheFactory(); $logger = $c->getLogger(); - if ($cacheFactory->isAvailable()) { - $router = new \OC\Route\CachingRouter($cacheFactory->create('route'), $logger); + if ($cacheFactory->isAvailableLowLatency()) { + $router = new \OC\Route\CachingRouter($cacheFactory->createLocal('route'), $logger); } else { $router = new \OC\Route\Router($logger); } diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 5228d52b05f..4e1e4ece62d 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -44,6 +44,7 @@ use Exception; use OC\App\AppStore\Bundles\BundleFetcher; use OC\Authentication\Token\DefaultTokenCleanupJob; use OC\Authentication\Token\DefaultTokenProvider; +use OC\Log\Rotate; use OCP\Defaults; use OCP\IL10N; use OCP\ILogger; @@ -426,7 +427,9 @@ class Setup { } public static function installBackgroundJobs() { - \OC::$server->getJobList()->add(DefaultTokenCleanupJob::class); + $jobList = \OC::$server->getJobList(); + $jobList->add(DefaultTokenCleanupJob::class); + $jobList->add(Rotate::class); } /** diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 9245b9d4f51..379d87633ab 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -1395,7 +1395,7 @@ class Manager implements IManager { /** * Create a new share - * @return \OCP\Share\IShare; + * @return \OCP\Share\IShare */ public function newShare() { return new \OC\Share20\Share($this->rootFolder, $this->userManager); diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php index 3610486140d..91afbeb8967 100644 --- a/lib/private/SystemConfig.php +++ b/lib/private/SystemConfig.php @@ -37,22 +37,30 @@ class SystemConfig { /** @var array */ protected $sensitiveValues = [ + 'instanceid' => true, + 'trusted_domains' => true, + 'datadirectory' => true, + 'overwrite.cli.url' => true, 'dbname' => true, + 'dbhost' => true, 'dbpassword' => true, 'dbuser' => true, 'mail_from_address' => true, 'mail_domain' => true, + 'mail_smtphost' => true, 'mail_smtpname' => true, 'mail_smtppassword' => true, 'passwordsalt' => true, 'secret' => true, 'updater.secret' => true, + 'trusted_proxies' => true, 'proxyuserpwd' => true, 'log.condition' => [ 'shared_secret' => true, ], 'license-key' => true, 'redis' => [ + 'host' => true, 'password' => true, ], 'objectstore' => [ diff --git a/lib/private/Tags.php b/lib/private/Tags.php index b63435ff838..1947f0c07e6 100644 --- a/lib/private/Tags.php +++ b/lib/private/Tags.php @@ -140,7 +140,7 @@ class Tags implements \OCP\ITags { /** * Check if any tags are saved for this type and user. * - * @return boolean. + * @return boolean */ public function isEmpty() { return count($this->tags) === 0; diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index efa2afd7356..49fac2f4d96 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -350,6 +350,7 @@ class OC_App { * * @param string $app app * @return bool + * @deprecated 13.0.0 use \OC::$server->getAppManager()->isEnabledForUser($appId) * * This function checks whether or not an app is enabled. */ @@ -869,21 +870,6 @@ class OC_App { return $appList; } - /** - * Returns the internal app ID or false - * @param string $ocsID - * @return string|false - */ - public static function getInternalAppIdByOcs($ocsID) { - if(is_numeric($ocsID)) { - $idArray = \OC::$server->getAppConfig()->getValues(false, 'ocsid'); - if(array_search($ocsID, $idArray)) { - return array_search($ocsID, $idArray); - } - } - return false; - } - public static function shouldUpgrade($app) { $versions = self::getAppVersions(); $currentVersion = OC_App::getAppVersion($app); @@ -1161,7 +1147,7 @@ class OC_App { * @return \OC\Files\View|false */ public static function getStorage($appId) { - if (OC_App::isEnabled($appId)) { //sanity check + if (\OC::$server->getAppManager()->isEnabledForUser($appId)) { //sanity check if (\OC::$server->getUserSession()->isLoggedIn()) { $view = new \OC\Files\View('/' . OC_User::getUser()); if (!$view->file_exists($appId)) { diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index 120b19d1cff..cd5ca7bb5ce 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -431,7 +431,7 @@ class OC_Image implements \OCP\IImage { * (I'm open for suggestions on better method name ;) * Fixes orientation based on EXIF data. * - * @return bool. + * @return bool */ public function fixOrientation() { $o = $this->getOrientation(); diff --git a/lib/private/legacy/json.php b/lib/private/legacy/json.php index 180dd7c448d..221a0047eb4 100644 --- a/lib/private/legacy/json.php +++ b/lib/private/legacy/json.php @@ -55,7 +55,7 @@ class OC_JSON{ * @suppress PhanDeprecatedFunction */ public static function checkAppEnabled($app) { - if( !OC_App::isEnabled($app)) { + if( !\OC::$server->getAppManager()->isEnabledForUser($app)) { $l = \OC::$server->getL10N('lib'); self::error(array( 'data' => array( 'message' => $l->t('Application is not enabled'), 'error' => 'application_not_enabled' ))); exit(); diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 8c6185cd556..55df2dece11 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -297,7 +297,7 @@ class OC_Template extends \OC\Template\Base { * @suppress PhanAccessMethodInternal */ public static function printErrorPage( $error_msg, $hint = '' ) { - if (\OC_App::isEnabled('theming') && !\OC_App::isAppLoaded('theming')) { + if (\OC::$server->getAppManager()->isEnabledForUser('theming') && !\OC_App::isAppLoaded('theming')) { \OC_App::loadApp('theming'); } diff --git a/lib/private/legacy/template/functions.php b/lib/private/legacy/template/functions.php index bca16b48c1a..1ef3541e880 100644 --- a/lib/private/legacy/template/functions.php +++ b/lib/private/legacy/template/functions.php @@ -278,7 +278,7 @@ function human_file_size( $bytes ) { /** * Strips the timestamp of its time value * @param int $timestamp UNIX timestamp to strip - * @return $timestamp without time value + * @return int timestamp without time value */ function strip_time($timestamp){ $date = new \DateTime("@{$timestamp}"); diff --git a/lib/public/App.php b/lib/public/App.php index 06dde22b8d1..250d33bf01f 100644 --- a/lib/public/App.php +++ b/lib/public/App.php @@ -127,9 +127,10 @@ class App { * * This function checks whether or not an app is enabled. * @since 4.0.0 + * @deprecated 13.0.0 use \OC::$server->getAppManager()->isEnabledForUser($appId) */ public static function isEnabled( $app ) { - return \OC_App::isEnabled( $app ); + return \OC::$server->getAppManager()->isEnabledForUser( $app ); } /** diff --git a/lib/public/AppFramework/Http/DataDisplayResponse.php b/lib/public/AppFramework/Http/DataDisplayResponse.php index 820e00ff963..cfc4bd494f2 100644 --- a/lib/public/AppFramework/Http/DataDisplayResponse.php +++ b/lib/public/AppFramework/Http/DataDisplayResponse.php @@ -35,7 +35,7 @@ class DataDisplayResponse extends Response { /** * response data - * @var string; + * @var string */ protected $data; diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php index f0f21087bbe..0b90fb8fbf2 100644 --- a/lib/public/Files/FileInfo.php +++ b/lib/public/Files/FileInfo.php @@ -174,7 +174,7 @@ interface FileInfo { /** * Check whether this is a file or a folder * - * @return \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER + * @return string \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER * @since 7.0.0 */ public function getType(); diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php index 98d8f5bb83a..262b595acc7 100644 --- a/lib/public/IRequest.php +++ b/lib/public/IRequest.php @@ -69,6 +69,11 @@ interface IRequest { const USER_AGENT_CLIENT_ANDROID = '/^Mozilla\/5\.0 \(Android\) ownCloud\-android.*$/'; /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_ANDROID = '/^Mozilla\/5\.0 \(Android\) Nextcloud\-Talk v.*$/'; + + /** * @since 9.1.0 */ const USER_AGENT_CLIENT_DESKTOP = '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/'; @@ -79,6 +84,11 @@ interface IRequest { const USER_AGENT_CLIENT_IOS = '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/'; /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_IOS = '/^Mozilla\/5\.0 \(iOS\) Nextcloud\-Talk v.*$/'; + + /** * @param string $name * * @return string diff --git a/lib/public/Mail/IAttachment.php b/lib/public/Mail/IAttachment.php new file mode 100644 index 00000000000..32348e7a309 --- /dev/null +++ b/lib/public/Mail/IAttachment.php @@ -0,0 +1,53 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Mail; + +/** + * Interface IAttachment + * + * @package OCP\Mail + * @since 13.0.0 + */ +interface IAttachment { + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename); + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType); + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body); + +} diff --git a/lib/public/Mail/IMailer.php b/lib/public/Mail/IMailer.php index 35189c22a69..10096548256 100644 --- a/lib/public/Mail/IMailer.php +++ b/lib/public/Mail/IMailer.php @@ -54,6 +54,23 @@ interface IMailer { public function createMessage(); /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null); + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null); + + /** * Creates a new email template object * * @param string $emailId diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 20e4ea19c4c..e82b4ff93a9 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -22,12 +22,20 @@ namespace OCP\Mail; /** - * Class Message + * Interface IMessage * * @package OCP\Mail * @since 13.0.0 */ interface IMessage { + + /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment); + /** * Set the from address of this message. * diff --git a/lib/public/Util.php b/lib/public/Util.php index e4ebdb5bfa7..04cdfe216d0 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -670,7 +670,7 @@ class Util { * Compare two strings to provide a natural sort * @param string $a first string to compare * @param string $b second string to compare - * @return -1 if $b comes before $a, 1 if $a comes before $b + * @return int -1 if $b comes before $a, 1 if $a comes before $b * or 0 if the strings are identical * @since 7.0.0 */ |