Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b9c6206c2f | |||
| c7fca0071b | |||
| dbc41af77f | |||
| db558a7394 | |||
| 938b9ba0ac | |||
| 56eaf1dbcc | |||
| 3985555753 | |||
| fe612bb4dd | |||
| 2613f3274b | |||
| 715d776649 | |||
| 15591054ac | |||
| b878678562 | |||
| 521bb9432e | |||
| 6fce5aa3ea | |||
| e3c6702cd8 | |||
| 9cd3177bb4 | |||
| 6a29ea172b | |||
| ed1b0dcd5e | |||
| bd8aff39f2 | |||
| fc354f46bb | |||
| 7b305fbe22 | |||
| 8aedcb4a82 | |||
| 01fa73831f | |||
| b40d230218 | |||
| 5d84d79c4b | |||
| 26ba3cac9c | |||
| 85b0dcca27 | |||
| f3ceded754 | |||
| 052d62b83c | |||
| ceb1b7e767 | |||
| 2faa5e894b | |||
| 2a2f42e781 | |||
| 1bc0bd7611 | |||
| 4588c7134d | |||
| 663018455e | |||
| 2475a0bb19 | |||
| 7f9b9e9104 | |||
| aad7571502 |
@@ -50,6 +50,7 @@ jobs:
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev --no-scripts
|
||||
composer i
|
||||
git restore lib/composer/composer
|
||||
|
||||
- name: Rector
|
||||
run: composer run rector
|
||||
|
||||
@@ -89,7 +89,7 @@ $server->httpRequest->setUrl(Server::get(IRequest::class)->getRequestUri());
|
||||
/** @var string $baseuri defined in remote.php */
|
||||
$server->setBaseUri($baseuri);
|
||||
// Add plugins
|
||||
$server->addPlugin(new MaintenancePlugin(Server::get(IConfig::class), \OCP\Server::get(IL10nFactory::class)->get('dav')));
|
||||
$server->addPlugin(new MaintenancePlugin(Server::get(IConfig::class), Server::get(IL10nFactory::class)->get('dav')));
|
||||
$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend));
|
||||
$server->addPlugin(new Plugin());
|
||||
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Dateigröße konnte nicht überprüft werden: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint aber zu existieren",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint nicht zu existieren",
|
||||
"Failed to get size for : %1$s" : "Größe konnte nicht ermittelt werden für: %1$s",
|
||||
"Encryption not ready: %1$s" : "Verschlüsselung nicht bereit: %1$s",
|
||||
"Failed to open file: %1$s" : "Datei konnte nicht geöffnet werden: %1$s",
|
||||
"Failed to unlink: %1$s" : "Fehler beim Aufheben der Verknüpfung: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Dateigröße konnte nicht überprüft werden: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint aber zu existieren",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint nicht zu existieren",
|
||||
"Failed to get size for : %1$s" : "Größe konnte nicht ermittelt werden für: %1$s",
|
||||
"Encryption not ready: %1$s" : "Verschlüsselung nicht bereit: %1$s",
|
||||
"Failed to open file: %1$s" : "Datei konnte nicht geöffnet werden: %1$s",
|
||||
"Failed to unlink: %1$s" : "Fehler beim Aufheben der Verknüpfung: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Dateigröße konnte nicht überprüft werden: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint aber zu existieren",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint nicht zu existieren",
|
||||
"Failed to get size for : %1$s" : "Größe konnte nicht ermittelt werden für: %1$s",
|
||||
"Encryption not ready: %1$s" : "Verschlüsselung nicht bereit: %1$s",
|
||||
"Failed to open file: %1$s" : "Datei konnte nicht geöffnet werden: %1$s",
|
||||
"Failed to unlink: %1$s" : "Fehler beim Aufheben der Verknüpfung: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Dateigröße konnte nicht überprüft werden: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint aber zu existieren",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Datei konnte nicht geöffnet werden: %1$s (%2$d), Datei scheint nicht zu existieren",
|
||||
"Failed to get size for : %1$s" : "Größe konnte nicht ermittelt werden für: %1$s",
|
||||
"Encryption not ready: %1$s" : "Verschlüsselung nicht bereit: %1$s",
|
||||
"Failed to open file: %1$s" : "Datei konnte nicht geöffnet werden: %1$s",
|
||||
"Failed to unlink: %1$s" : "Fehler beim Aufheben der Verknüpfung: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Failed to check file size: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Could not open file: %1$s (%2$d), file does seem to exist",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Could not open file: %1$s (%2$d), file doesn't seem to exist",
|
||||
"Failed to get size for : %1$s" : "Failed to get size for : %1$s",
|
||||
"Encryption not ready: %1$s" : "Encryption not ready: %1$s",
|
||||
"Failed to open file: %1$s" : "Failed to open file: %1$s",
|
||||
"Failed to unlink: %1$s" : "Failed to unlink: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Failed to check file size: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Could not open file: %1$s (%2$d), file does seem to exist",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Could not open file: %1$s (%2$d), file doesn't seem to exist",
|
||||
"Failed to get size for : %1$s" : "Failed to get size for : %1$s",
|
||||
"Encryption not ready: %1$s" : "Encryption not ready: %1$s",
|
||||
"Failed to open file: %1$s" : "Failed to open file: %1$s",
|
||||
"Failed to unlink: %1$s" : "Failed to unlink: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Níorbh fhéidir méid an chomhaid a sheiceáil: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Níorbh fhéidir an comhad a oscailt: %1$s (%2$d), is cosúil go bhfuil an comhad ann",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Níorbh fhéidir an comhad a oscailt: %1$s (%2$d), is cosúil nach bhfuil an comhad ann.",
|
||||
"Failed to get size for : %1$s" : "Theip ar mhéid a fháil le haghaidh: %1$s",
|
||||
"Encryption not ready: %1$s" : "Níl an criptiúchán réidh: %1$s",
|
||||
"Failed to open file: %1$s" : "Níorbh fhéidir an comhad a oscailt: %1$s",
|
||||
"Failed to unlink: %1$s" : "Theip ar dhínascadh: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Níorbh fhéidir méid an chomhaid a sheiceáil: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Níorbh fhéidir an comhad a oscailt: %1$s (%2$d), is cosúil go bhfuil an comhad ann",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Níorbh fhéidir an comhad a oscailt: %1$s (%2$d), is cosúil nach bhfuil an comhad ann.",
|
||||
"Failed to get size for : %1$s" : "Theip ar mhéid a fháil le haghaidh: %1$s",
|
||||
"Encryption not ready: %1$s" : "Níl an criptiúchán réidh: %1$s",
|
||||
"Failed to open file: %1$s" : "Níorbh fhéidir an comhad a oscailt: %1$s",
|
||||
"Failed to unlink: %1$s" : "Theip ar dhínascadh: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Falha ao verificar o tamanho do arquivo: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Não foi possível abrir o arquivo: %1$s (%2$d), o arquivo parece existir",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Não foi possível abrir o arquivo: %1$s (%2$d), o arquivo parece não existir",
|
||||
"Failed to get size for : %1$s" : "Falha ao obter o tamanho para: %1$s",
|
||||
"Encryption not ready: %1$s" : "A criptografia não está pronta: %1$s",
|
||||
"Failed to open file: %1$s" : "Falha ao abrir arquivo: %1$s",
|
||||
"Failed to unlink: %1$s" : "Falha ao desvincular: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Falha ao verificar o tamanho do arquivo: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Não foi possível abrir o arquivo: %1$s (%2$d), o arquivo parece existir",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Não foi possível abrir o arquivo: %1$s (%2$d), o arquivo parece não existir",
|
||||
"Failed to get size for : %1$s" : "Falha ao obter o tamanho para: %1$s",
|
||||
"Encryption not ready: %1$s" : "A criptografia não está pronta: %1$s",
|
||||
"Failed to open file: %1$s" : "Falha ao abrir arquivo: %1$s",
|
||||
"Failed to unlink: %1$s" : "Falha ao desvincular: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "Dosya boyutu denetlenemedi: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Dosya açılamadı: %1$s (%2$d), dosya var gibi görünüyor",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Dosya açılamadı: %1$s (%2$d), dosya var gibi görünmüyor",
|
||||
"Failed to get size for : %1$s" : "Dosya boyutu alınamadı: %1$s",
|
||||
"Encryption not ready: %1$s" : "Şifreleme hazır değil: %1$s",
|
||||
"Failed to open file: %1$s" : "Dosya açılamadı: %1$s",
|
||||
"Failed to unlink: %1$s" : "Bağlantı kaldırılamadı: %1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "Dosya boyutu denetlenemedi: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Dosya açılamadı: %1$s (%2$d), dosya var gibi görünüyor",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Dosya açılamadı: %1$s (%2$d), dosya var gibi görünmüyor",
|
||||
"Failed to get size for : %1$s" : "Dosya boyutu alınamadı: %1$s",
|
||||
"Encryption not ready: %1$s" : "Şifreleme hazır değil: %1$s",
|
||||
"Failed to open file: %1$s" : "Dosya açılamadı: %1$s",
|
||||
"Failed to unlink: %1$s" : "Bağlantı kaldırılamadı: %1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "檢查檔案大小失敗:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎存在",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎不存在",
|
||||
"Failed to get size for : %1$s" : "無法取得以下項目的大小:%1$s",
|
||||
"Encryption not ready: %1$s" : "尚未準備好加密:%1$s",
|
||||
"Failed to open file: %1$s" : "開啟檔案失敗:%1$s",
|
||||
"Failed to unlink: %1$s" : "解除連結失敗:%1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "檢查檔案大小失敗:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎存在",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎不存在",
|
||||
"Failed to get size for : %1$s" : "無法取得以下項目的大小:%1$s",
|
||||
"Encryption not ready: %1$s" : "尚未準備好加密:%1$s",
|
||||
"Failed to open file: %1$s" : "開啟檔案失敗:%1$s",
|
||||
"Failed to unlink: %1$s" : "解除連結失敗:%1$s",
|
||||
|
||||
@@ -236,6 +236,7 @@ OC.L10N.register(
|
||||
"Failed to check file size: %1$s" : "檢查檔案大小失敗:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "無法開啟檔案:%1$s (%2$d),檔案似乎存在",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎不存在",
|
||||
"Failed to get size for : %1$s" : "無法取得以下項目的大小:%1$s",
|
||||
"Encryption not ready: %1$s" : "尚未準備好加密:%1$s",
|
||||
"Failed to open file: %1$s" : "開啟檔案失敗:%1$s",
|
||||
"Failed to unlink: %1$s" : "解除連結失敗:%1$s",
|
||||
|
||||
@@ -234,6 +234,7 @@
|
||||
"Failed to check file size: %1$s" : "檢查檔案大小失敗:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "無法開啟檔案:%1$s (%2$d),檔案似乎存在",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "無法開啟檔案:%1$s(%2$d),檔案似乎不存在",
|
||||
"Failed to get size for : %1$s" : "無法取得以下項目的大小:%1$s",
|
||||
"Encryption not ready: %1$s" : "尚未準備好加密:%1$s",
|
||||
"Failed to open file: %1$s" : "開啟檔案失敗:%1$s",
|
||||
"Failed to unlink: %1$s" : "解除連結失敗:%1$s",
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace OCA\DAV\CalDAV\Federation;
|
||||
|
||||
use OCA\DAV\DAV\RemoteUserPrincipalBackend;
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
use OCP\Constants;
|
||||
use OCP\DB\Types;
|
||||
use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet;
|
||||
|
||||
@@ -94,7 +95,7 @@ class FederatedCalendarEntity extends Entity {
|
||||
'{' . \Sabre\CalDAV\Plugin::NS_CALENDARSERVER . '}getctag' => $this->getSyncTokenForSabre(),
|
||||
'{' . \Sabre\CalDAV\Plugin::NS_CALDAV . '}supported-calendar-component-set' => $this->getSupportedCalendarComponentSet(),
|
||||
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $this->getSharedByPrincipal(),
|
||||
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only' => ($this->getPermissions() & \OCP\Constants::PERMISSION_UPDATE) === 0 ? 1 : 0,
|
||||
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only' => ($this->getPermissions() & Constants::PERMISSION_UPDATE) === 0 ? 1 : 0,
|
||||
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}permissions' => $this->getPermissions(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -532,7 +532,7 @@ class Directory extends Node implements
|
||||
}
|
||||
|
||||
if ($info->getMimeType() === FileInfo::MIMETYPE_FOLDER) {
|
||||
$node = new \OCA\DAV\Connector\Sabre\Directory($this->fileView, $info, $this->tree, $this->shareManager);
|
||||
$node = new Directory($this->fileView, $info, $this->tree, $this->shareManager);
|
||||
} else {
|
||||
// In case reading a directory was allowed but it turns out the node was a not a directory, reject it now.
|
||||
if (!$this->info->isReadable()) {
|
||||
|
||||
@@ -480,11 +480,15 @@ class File extends Node implements IFile {
|
||||
}
|
||||
}
|
||||
|
||||
$logger = Server::get(LoggerInterface::class);
|
||||
// comparing current file size with the one in DB
|
||||
// if different, fix DB and refresh cache.
|
||||
//
|
||||
$fsSize = $this->fileView->filesize($this->getPath());
|
||||
if ($this->getSize() !== $fsSize) {
|
||||
$logger = Server::get(LoggerInterface::class);
|
||||
if ($fsSize === false) {
|
||||
$logger->warning('file not found on storage after successfully opening it');
|
||||
throw new ServiceUnavailable($this->l10n->t('Failed to get size for : %1$s', [$this->getPath()]));
|
||||
} elseif ($this->getSize() !== $fsSize) {
|
||||
$logger->warning('fixing cached size of file id=' . $this->getId() . ', cached size was ' . $this->getSize() . ', but the filesystem reported a size of ' . $fsSize);
|
||||
|
||||
$this->getFileInfo()->getStorage()->getUpdater()->update($this->getFileInfo()->getInternalPath());
|
||||
|
||||
@@ -17,6 +17,7 @@ use OCP\Config\IUserConfig;
|
||||
use OCP\IAppConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\Security\ISecureRandom;
|
||||
@@ -163,7 +164,7 @@ class IMipServiceTest extends TestCase {
|
||||
|
||||
public function testIsSystemUserWhenUserExists(): void {
|
||||
$email = 'user@example.com';
|
||||
$user = $this->createMock(\OCP\IUser::class);
|
||||
$user = $this->createMock(IUser::class);
|
||||
|
||||
$this->userManager->expects(self::once())
|
||||
->method('getByEmail')
|
||||
|
||||
@@ -33,21 +33,31 @@ OC.L10N.register(
|
||||
"Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Por favor ingrese en la interfaz web, vaya a la sección \"Seguridad\" de sus ajustes personales y actualice su contraseña de cifrado ingresando esta contraseña en el campo \"Contraseña de inicio de sesión antigua\" y su contraseña actual.",
|
||||
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descifrar este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
|
||||
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
|
||||
"Default Encryption Module" : "Módulo de cifrado predeterminado",
|
||||
"Default encryption module for Nextcloud Server-side Encryption (SSE)" : "Módulo de cifrado predeterminado para el cifrado del lado del servidor (SSE) de Nextcloud",
|
||||
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Al activar esta opción se encriptarán todos los archivos almacenados en la memoria principal, de lo contrario, serán cifrados sólo los archivos de almacenamiento externo",
|
||||
"Encrypt the home storage" : "Encriptar el almacenamiento personal",
|
||||
"Disable recovery key" : "Desactiva la clave de recuperación",
|
||||
"Enable recovery key" : "Activa la clave de recuperación",
|
||||
"The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "La llave de recuperación es una llave de cifrado adicional utilizada para cifrar archivos. Es utilizada para recuperar los archivos de una cuenta si la contraseña fuese olvidada.",
|
||||
"Recovery key password" : "Contraseña de clave de recuperación",
|
||||
"Passwords fields do not match" : "Las contraseñas no coinciden",
|
||||
"Repeat recovery key password" : "Repita la contraseña de recuperación",
|
||||
"An error occurred while updating the recovery key settings. Please try again." : "Se produjo un error al actualizar la configuración de la clave de recuperación. Por favor, inténtelo de nuevo.",
|
||||
"Change recovery key password" : "Cambiar la contraseña de la clave de recuperación",
|
||||
"Old recovery key password" : "Antigua contraseña de recuperación",
|
||||
"New recovery key password" : "Nueva contraseña de recuperación",
|
||||
"Repeat new recovery key password" : "Repita la nueva contraseña de recuperación",
|
||||
"An error occurred while changing the recovery key password. Please try again." : "Se produjo un error al cambiar la contraseña de la clave de recuperación. Por favor, inténtelo de nuevo.",
|
||||
"Update private key password" : "Actualizar la contraseña de la clave privada",
|
||||
"Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password." : "Tu contraseña de clave privada ya no coincide con tu contraseña de inicio de sesión. Cambia tu contraseña de clave privada anterior a tu contraseña de inicio de sesión actual.",
|
||||
"If you do not remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña, puede pedir a su administrador que recupere sus archivos.",
|
||||
"Old log-in password" : "Contraseña de acceso antigua",
|
||||
"Current log-in password" : "Contraseña de acceso actual",
|
||||
"Update" : "Actualizar",
|
||||
"Updating recovery keys. This can take some time…" : "Actualizando las claves de recuperación. Esto puede tardar algún tiempo …",
|
||||
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
|
||||
"Enable password recovery" : "Habilitar la contraseña de recuperación",
|
||||
"Default encryption module" : "Módulo de cifrado por defecto",
|
||||
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
|
||||
"Basic encryption module" : "Módulo de cifrado básico",
|
||||
|
||||
@@ -31,21 +31,31 @@
|
||||
"Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Por favor ingrese en la interfaz web, vaya a la sección \"Seguridad\" de sus ajustes personales y actualice su contraseña de cifrado ingresando esta contraseña en el campo \"Contraseña de inicio de sesión antigua\" y su contraseña actual.",
|
||||
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descifrar este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
|
||||
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
|
||||
"Default Encryption Module" : "Módulo de cifrado predeterminado",
|
||||
"Default encryption module for Nextcloud Server-side Encryption (SSE)" : "Módulo de cifrado predeterminado para el cifrado del lado del servidor (SSE) de Nextcloud",
|
||||
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Al activar esta opción se encriptarán todos los archivos almacenados en la memoria principal, de lo contrario, serán cifrados sólo los archivos de almacenamiento externo",
|
||||
"Encrypt the home storage" : "Encriptar el almacenamiento personal",
|
||||
"Disable recovery key" : "Desactiva la clave de recuperación",
|
||||
"Enable recovery key" : "Activa la clave de recuperación",
|
||||
"The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "La llave de recuperación es una llave de cifrado adicional utilizada para cifrar archivos. Es utilizada para recuperar los archivos de una cuenta si la contraseña fuese olvidada.",
|
||||
"Recovery key password" : "Contraseña de clave de recuperación",
|
||||
"Passwords fields do not match" : "Las contraseñas no coinciden",
|
||||
"Repeat recovery key password" : "Repita la contraseña de recuperación",
|
||||
"An error occurred while updating the recovery key settings. Please try again." : "Se produjo un error al actualizar la configuración de la clave de recuperación. Por favor, inténtelo de nuevo.",
|
||||
"Change recovery key password" : "Cambiar la contraseña de la clave de recuperación",
|
||||
"Old recovery key password" : "Antigua contraseña de recuperación",
|
||||
"New recovery key password" : "Nueva contraseña de recuperación",
|
||||
"Repeat new recovery key password" : "Repita la nueva contraseña de recuperación",
|
||||
"An error occurred while changing the recovery key password. Please try again." : "Se produjo un error al cambiar la contraseña de la clave de recuperación. Por favor, inténtelo de nuevo.",
|
||||
"Update private key password" : "Actualizar la contraseña de la clave privada",
|
||||
"Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password." : "Tu contraseña de clave privada ya no coincide con tu contraseña de inicio de sesión. Cambia tu contraseña de clave privada anterior a tu contraseña de inicio de sesión actual.",
|
||||
"If you do not remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña, puede pedir a su administrador que recupere sus archivos.",
|
||||
"Old log-in password" : "Contraseña de acceso antigua",
|
||||
"Current log-in password" : "Contraseña de acceso actual",
|
||||
"Update" : "Actualizar",
|
||||
"Updating recovery keys. This can take some time…" : "Actualizando las claves de recuperación. Esto puede tardar algún tiempo …",
|
||||
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
|
||||
"Enable password recovery" : "Habilitar la contraseña de recuperación",
|
||||
"Default encryption module" : "Módulo de cifrado por defecto",
|
||||
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
|
||||
"Basic encryption module" : "Módulo de cifrado básico",
|
||||
|
||||
@@ -17,6 +17,7 @@ use OCP\AppFramework\Bootstrap\IBootContext;
|
||||
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||
use OCP\Federation\ICloudFederationProviderManager;
|
||||
use OCP\Server;
|
||||
|
||||
class Application extends App implements IBootstrap {
|
||||
|
||||
@@ -41,7 +42,7 @@ class Application extends App implements IBootstrap {
|
||||
$manager->addCloudFederationProvider($type,
|
||||
'Federated Files Sharing',
|
||||
function (): CloudFederationProviderFiles {
|
||||
return \OCP\Server::get(CloudFederationProviderFiles::class);
|
||||
return Server::get(CloudFederationProviderFiles::class);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use OCP\GlobalScale\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\Settings\IDelegatedSettings;
|
||||
use OCP\Util;
|
||||
|
||||
class Admin implements IDelegatedSettings {
|
||||
/**
|
||||
@@ -44,8 +45,8 @@ class Admin implements IDelegatedSettings {
|
||||
$this->initialState->provideInitialState('lookupServerUploadEnabled', $this->fedShareProvider->isLookupServerUploadEnabled());
|
||||
$this->initialState->provideInitialState('federatedTrustedShareAutoAccept', $this->fedShareProvider->isFederatedTrustedShareAutoAccept());
|
||||
|
||||
\OCP\Util::addStyle(Application::APP_ID, 'settings-admin');
|
||||
\OCP\Util::addScript(Application::APP_ID, 'settings-admin');
|
||||
Util::addStyle(Application::APP_ID, 'settings-admin');
|
||||
Util::addScript(Application::APP_ID, 'settings-admin');
|
||||
return new TemplateResponse(Application::APP_ID, 'settings-admin', renderAs: '');
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ use OCP\Defaults;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Settings\ISettings;
|
||||
use OCP\Util;
|
||||
|
||||
class Personal implements ISettings {
|
||||
public function __construct(
|
||||
@@ -42,8 +43,8 @@ class Personal implements ISettings {
|
||||
$this->initialState->provideInitialState('cloudId', $cloudID);
|
||||
$this->initialState->provideInitialState('docUrlFederated', $this->urlGenerator->linkToDocs('user-sharing-federated'));
|
||||
|
||||
\OCP\Util::addStyle(Application::APP_ID, 'settings-personal');
|
||||
\OCP\Util::addScript(Application::APP_ID, 'settings-personal');
|
||||
Util::addStyle(Application::APP_ID, 'settings-personal');
|
||||
Util::addScript(Application::APP_ID, 'settings-personal');
|
||||
return new TemplateResponse(Application::APP_ID, 'settings-personal', renderAs: TemplateResponse::RENDER_AS_BLANK);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@ OC.L10N.register(
|
||||
"Another entry with the same name already exists." : "Another entry with the same name already exists.",
|
||||
"Invalid filename." : "Invalid filename.",
|
||||
"Rename file" : "Rename file",
|
||||
"Recently created" : "Recently created",
|
||||
"Folder" : "Folder",
|
||||
"Unknown file type" : "Unknown file type",
|
||||
"{ext} image" : "{ext} image",
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
"Another entry with the same name already exists." : "Another entry with the same name already exists.",
|
||||
"Invalid filename." : "Invalid filename.",
|
||||
"Rename file" : "Rename file",
|
||||
"Recently created" : "Recently created",
|
||||
"Folder" : "Folder",
|
||||
"Unknown file type" : "Unknown file type",
|
||||
"{ext} image" : "{ext} image",
|
||||
|
||||
@@ -144,6 +144,7 @@ OC.L10N.register(
|
||||
"Warn before deleting a file" : "Varoita ennen tiedoston poistamista",
|
||||
"WebDAV URL" : "WebDAV:in URL-osoite",
|
||||
"Create an app password" : "Luo sovellussalasana",
|
||||
"How to access files using WebDAV" : "Tiedostojen käyttö WebDAVin avulla",
|
||||
"Name" : "Nimi",
|
||||
"File type" : "Tiedoston tyyppi",
|
||||
"Size" : "Koko",
|
||||
|
||||
@@ -142,6 +142,7 @@
|
||||
"Warn before deleting a file" : "Varoita ennen tiedoston poistamista",
|
||||
"WebDAV URL" : "WebDAV:in URL-osoite",
|
||||
"Create an app password" : "Luo sovellussalasana",
|
||||
"How to access files using WebDAV" : "Tiedostojen käyttö WebDAVin avulla",
|
||||
"Name" : "Nimi",
|
||||
"File type" : "Tiedoston tyyppi",
|
||||
"Size" : "Koko",
|
||||
|
||||
@@ -95,6 +95,7 @@ OC.L10N.register(
|
||||
"Another entry with the same name already exists." : "Tá iontráil eile leis an ainm céanna ann cheana féin.",
|
||||
"Invalid filename." : "Ainm comhaid neamhbhailí.",
|
||||
"Rename file" : "Athainmnigh an comhad",
|
||||
"Recently created" : "Cruthaithe le déanaí",
|
||||
"Folder" : "Fillteán",
|
||||
"Unknown file type" : "Cineál comhaid anaithnid",
|
||||
"{ext} image" : "íomhá {ext}",
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
"Another entry with the same name already exists." : "Tá iontráil eile leis an ainm céanna ann cheana féin.",
|
||||
"Invalid filename." : "Ainm comhaid neamhbhailí.",
|
||||
"Rename file" : "Athainmnigh an comhad",
|
||||
"Recently created" : "Cruthaithe le déanaí",
|
||||
"Folder" : "Fillteán",
|
||||
"Unknown file type" : "Cineál comhaid anaithnid",
|
||||
"{ext} image" : "íomhá {ext}",
|
||||
|
||||
@@ -95,6 +95,7 @@ OC.L10N.register(
|
||||
"Another entry with the same name already exists." : "Esiste già un'altra voce con lo stesso nome.",
|
||||
"Invalid filename." : "Nome di file non valido.",
|
||||
"Rename file" : "Rinomina file",
|
||||
"Recently created" : "Creato di recente",
|
||||
"Folder" : "Cartella",
|
||||
"Unknown file type" : "Tipo di file sconosciuto",
|
||||
"{ext} image" : "{ext} image",
|
||||
@@ -234,6 +235,9 @@ OC.L10N.register(
|
||||
"Removing the file extension \"{old}\" may render the file unreadable." : "Rimuovendo dell'estensione del file \"{old}\" potrebbe rendere il file illeggibile.",
|
||||
"Adding the file extension \"{new}\" may render the file unreadable." : "Aggiungere l'estensione del file \"{new}\" potrebbe rendere il file illeggibile.",
|
||||
"Do not show this dialog again." : "Non visualizzare più questa finestra di dialogo.",
|
||||
"Rename file to hidden" : "Rinomina il file in nascosto",
|
||||
"Prefixing a filename with a dot may render the file hidden." : "Aggiungere un punto come prefisso al nome di un file può rendere il file nascosto.",
|
||||
"Are you sure you want to rename the file to \"{filename}\"?" : "Sei sicuro di voler rinominare il file in \"{filename}\"?",
|
||||
"Cancel" : "Annulla",
|
||||
"Rename" : "Rinomina",
|
||||
"Select file or folder to link to" : "Seleziona un file o una cartella da collegare",
|
||||
@@ -248,6 +252,7 @@ OC.L10N.register(
|
||||
"Error during upload: {message}" : "Errore durante il caricamento: {message}",
|
||||
"Error during upload, status code {status}" : "Errore durante il caricamento, codice di stato {status}",
|
||||
"Unknown error during upload" : "Errore sconosciuto durante il caricamento",
|
||||
"File list is reloading" : "L'elenco dei file si sta ricaricando",
|
||||
"Loading current folder" : "Sto caricando la cartella corrente",
|
||||
"Retry" : "Riprova",
|
||||
"No files in here" : "Qui non c'è alcun file",
|
||||
@@ -315,7 +320,9 @@ OC.L10N.register(
|
||||
"The files are locked" : "I files sono bloccati",
|
||||
"The file does not exist anymore" : "Il file non esiste più",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Spostare \"{source}\" in \"{destination}\" …",
|
||||
"Moving {count} files to \"{destination}\" …" : "Spostamento di {count} file in \"{destination}\" …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Copiare \"{source}\" in \"{destination}\" …",
|
||||
"Copying {count} files to \"{destination}\" …" : "Copiatura di {count} file in \"{destination}\" …",
|
||||
"Choose destination" : "Scegli la destinazione",
|
||||
"Copy to {target}" : "Copia in {target}",
|
||||
"Move to {target}" : "Sposta in {target}",
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
"Another entry with the same name already exists." : "Esiste già un'altra voce con lo stesso nome.",
|
||||
"Invalid filename." : "Nome di file non valido.",
|
||||
"Rename file" : "Rinomina file",
|
||||
"Recently created" : "Creato di recente",
|
||||
"Folder" : "Cartella",
|
||||
"Unknown file type" : "Tipo di file sconosciuto",
|
||||
"{ext} image" : "{ext} image",
|
||||
@@ -232,6 +233,9 @@
|
||||
"Removing the file extension \"{old}\" may render the file unreadable." : "Rimuovendo dell'estensione del file \"{old}\" potrebbe rendere il file illeggibile.",
|
||||
"Adding the file extension \"{new}\" may render the file unreadable." : "Aggiungere l'estensione del file \"{new}\" potrebbe rendere il file illeggibile.",
|
||||
"Do not show this dialog again." : "Non visualizzare più questa finestra di dialogo.",
|
||||
"Rename file to hidden" : "Rinomina il file in nascosto",
|
||||
"Prefixing a filename with a dot may render the file hidden." : "Aggiungere un punto come prefisso al nome di un file può rendere il file nascosto.",
|
||||
"Are you sure you want to rename the file to \"{filename}\"?" : "Sei sicuro di voler rinominare il file in \"{filename}\"?",
|
||||
"Cancel" : "Annulla",
|
||||
"Rename" : "Rinomina",
|
||||
"Select file or folder to link to" : "Seleziona un file o una cartella da collegare",
|
||||
@@ -246,6 +250,7 @@
|
||||
"Error during upload: {message}" : "Errore durante il caricamento: {message}",
|
||||
"Error during upload, status code {status}" : "Errore durante il caricamento, codice di stato {status}",
|
||||
"Unknown error during upload" : "Errore sconosciuto durante il caricamento",
|
||||
"File list is reloading" : "L'elenco dei file si sta ricaricando",
|
||||
"Loading current folder" : "Sto caricando la cartella corrente",
|
||||
"Retry" : "Riprova",
|
||||
"No files in here" : "Qui non c'è alcun file",
|
||||
@@ -313,7 +318,9 @@
|
||||
"The files are locked" : "I files sono bloccati",
|
||||
"The file does not exist anymore" : "Il file non esiste più",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Spostare \"{source}\" in \"{destination}\" …",
|
||||
"Moving {count} files to \"{destination}\" …" : "Spostamento di {count} file in \"{destination}\" …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Copiare \"{source}\" in \"{destination}\" …",
|
||||
"Copying {count} files to \"{destination}\" …" : "Copiatura di {count} file in \"{destination}\" …",
|
||||
"Choose destination" : "Scegli la destinazione",
|
||||
"Copy to {target}" : "Copia in {target}",
|
||||
"Move to {target}" : "Sposta in {target}",
|
||||
|
||||
@@ -95,6 +95,7 @@ OC.L10N.register(
|
||||
"Another entry with the same name already exists." : "Aynı adlı bir kayıt zaten var.",
|
||||
"Invalid filename." : "Dosya adı geçersiz.",
|
||||
"Rename file" : "Dosyayı yeniden adlandır",
|
||||
"Recently created" : "Son oluşturulanlar",
|
||||
"Folder" : "Klasör",
|
||||
"Unknown file type" : "Dosya türü bilinmiyor",
|
||||
"{ext} image" : "{ext} görsel",
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
"Another entry with the same name already exists." : "Aynı adlı bir kayıt zaten var.",
|
||||
"Invalid filename." : "Dosya adı geçersiz.",
|
||||
"Rename file" : "Dosyayı yeniden adlandır",
|
||||
"Recently created" : "Son oluşturulanlar",
|
||||
"Folder" : "Klasör",
|
||||
"Unknown file type" : "Dosya türü bilinmiyor",
|
||||
"{ext} image" : "{ext} görsel",
|
||||
|
||||
@@ -95,6 +95,7 @@ OC.L10N.register(
|
||||
"Another entry with the same name already exists." : "另一個同名的條目已經存在。",
|
||||
"Invalid filename." : "檔案名稱無效。",
|
||||
"Rename file" : "重新命名檔案",
|
||||
"Recently created" : "最近建立",
|
||||
"Folder" : "資料夾",
|
||||
"Unknown file type" : "檔案類型不詳",
|
||||
"{ext} image" : "{ext} 圖像",
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
"Another entry with the same name already exists." : "另一個同名的條目已經存在。",
|
||||
"Invalid filename." : "檔案名稱無效。",
|
||||
"Rename file" : "重新命名檔案",
|
||||
"Recently created" : "最近建立",
|
||||
"Folder" : "資料夾",
|
||||
"Unknown file type" : "檔案類型不詳",
|
||||
"{ext} image" : "{ext} 圖像",
|
||||
|
||||
@@ -69,7 +69,7 @@ class ScanAppDataTest extends TestCase {
|
||||
$this->scanner->method('getScanner')->willReturn($this->internalScanner);
|
||||
|
||||
$this->scanner->method('initTools')
|
||||
->willReturnCallback(function () {});
|
||||
->willReturnCallback(function (): void {});
|
||||
try {
|
||||
$this->rootFolder->get($this->rootFolder->getAppDataDirectoryName() . '/preview')->delete();
|
||||
} catch (NotFoundException) {
|
||||
@@ -103,7 +103,7 @@ class ScanAppDataTest extends TestCase {
|
||||
}
|
||||
|
||||
$this->input->method('getArgument')->with('folder')->willReturn('');
|
||||
$this->internalScanner->method('scan')->willReturnCallback(function () {
|
||||
$this->internalScanner->method('scan')->willReturnCallback(function (): void {
|
||||
$this->internalScanner->emit('\OC\Files\Utils\Scanner', 'scanFile', ['path42']);
|
||||
$this->internalScanner->emit('\OC\Files\Utils\Scanner', 'scanFolder', ['path42']);
|
||||
$this->internalScanner->emit('\OC\Files\Utils\Scanner', 'scanFolder', ['path42']);
|
||||
|
||||
@@ -41,6 +41,7 @@ OC.L10N.register(
|
||||
"Kerberos default realm, defaults to \"WORKGROUP\"" : "El ámbito por defecto de Kerberos es \"WORKGROUP\".",
|
||||
"Kerberos ticket Apache mode" : "Ticket Kerberos Modo Apache",
|
||||
"Kerberos ticket" : "Ticket de Kerberos",
|
||||
"S3 Storage" : "Almacenamiento S3",
|
||||
"Bucket" : "Bucket",
|
||||
"Hostname" : "Dirección del servidor",
|
||||
"Port" : "Puerto",
|
||||
@@ -51,6 +52,7 @@ OC.L10N.register(
|
||||
"Enable Path Style" : "Habilitar Estilo de Ruta",
|
||||
"Legacy (v2) authentication" : "Autenticación heredada (v2)",
|
||||
"Enable multipart copy" : "Activa a copia multiparte",
|
||||
"Use presigned S3 url" : "Utilice la URL S3 pre-firmada",
|
||||
"SSE-C encryption key" : "Llave de cifrado SSE-C",
|
||||
"WebDAV" : "WebDAV",
|
||||
"URL" : "URL",
|
||||
@@ -82,15 +84,20 @@ OC.L10N.register(
|
||||
"External storage support" : "Soporte de almacenamiento externo",
|
||||
"Adds basic external storage support" : "Añade soporte básico de almacenamiento externo",
|
||||
"This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Esta aplicación permite a los administradores configurar conexiones con proveedores de almacenamiento externos, como servidores FTP, almacenes de objetos S3 o SWIFT, otros servidores Nextcloud, servidores WebDAV y mucho más. La administración puede escoger qué tipos de almacenamiento activar y puede montar estas localizaciones de almacenamiento para una cuenta, un grupo o todo el sistema. Los usuarios verán aparecer una nueva carpeta en su directorio raíz de Nextcloud. Pueden acceder a ella o usarla como cualquiera otra carpeta. El almacenamiento externo también permite que las personas compartan ficheros almacenados en estas localizaciones externas. En estos casos, se utilizan las credenciales del propietario cuando el destinatario solicita el fichero desde el almacenamiento externo, garantizando así que el destinatario pueda acceder al fichero compartido.\n\nSe puede configurar el almacenamiento externo mediante la GUI o la línea de comandos. Esta segunda opción proporciona al administrador más flexibilidad para configurar montajes de almacenamiento externo masivo y establecer prioridades de montaje. Hay más información disponible en la documentación de la GUI del almacenamiento externo y en la documentación del fichero de configuración del almacenamiento externo.",
|
||||
"Edit storage" : "Editar almacenamiento",
|
||||
"Add storage" : "Añadir almacenamiento",
|
||||
"Folder name" : "Nombre de la carpeta",
|
||||
"Authentication" : "Autentificación",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit" : "Editar",
|
||||
"Create" : "Crear",
|
||||
"Restrict to" : "Restringir a",
|
||||
"Storage configuration" : "Configuración de almacenamiento",
|
||||
"Never" : "Nunca",
|
||||
"Once every direct access" : "Una vez en cada acceso",
|
||||
"Always" : "Siempre",
|
||||
"Mount options" : "Opciones de montaje",
|
||||
"Check filesystem changes" : "Comprobar cambios en el sistema de archivos",
|
||||
"Read only" : "Solo lectura",
|
||||
"Enable previews" : "Habilitar previsualizaciones",
|
||||
"Enable sharing" : "Habilitar el uso compartido",
|
||||
@@ -98,11 +105,19 @@ OC.L10N.register(
|
||||
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)",
|
||||
"External storages" : "Almacenamiento externo",
|
||||
"Status" : "Estado",
|
||||
"Restricted to" : "Restringido a",
|
||||
"Actions" : "Acciones",
|
||||
"Checking …" : "Comprobando ...",
|
||||
"Recheck status" : "Volver a comprobar el estado",
|
||||
"Delete" : "Eliminar",
|
||||
"System provided storage" : "Almacenamiento proporcionado por el sistema",
|
||||
"Saved" : "Guardado",
|
||||
"Error while saving" : "Error al guardar",
|
||||
"Saved allowed backends" : "Backends permitidos guardados",
|
||||
"Failed to save allowed backends" : "No se pudieron guardar los backends permitidos",
|
||||
"Advanced options for external storage mounts" : "Opciones avanzadas para almacenamiento externo",
|
||||
"Allow people to mount external storage" : "Permite que as persoas monten almacenamento externo",
|
||||
"External storage backends people are allowed to mount" : "Las personas pueden montar los backends de almacenamiento externo",
|
||||
"Error generating key pair" : "Error al generar el par de claves",
|
||||
"Key size" : "Tamaño de llave",
|
||||
"Generate keys" : "Generar claves",
|
||||
@@ -111,6 +126,16 @@ OC.L10N.register(
|
||||
"To access the storage, you need to provide the authentication credentials." : "Para acceder al almacenamiento, debe proporcionar las credenciales de autenticación.",
|
||||
"Enter the storage login" : "Ingrese el inicio de sesión de almacenamiento",
|
||||
"Enter the storage password" : "Ingrese la contraseña de almacenamiento",
|
||||
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices." : "El almacenamiento externo le permite montar servicios y dispositivos de almacenamiento externo como dispositivos de almacenamiento secundarios de Nextcloud.",
|
||||
"You may also allow people to mount their own external storage services." : "También puede permitir que las personas monten sus propios servicios de almacenamiento externo.",
|
||||
"The cURL support in PHP is not enabled or installed." : "El soporte de cURL en PHP no está habilitado o instalado.",
|
||||
"The FTP support in PHP is not enabled or installed." : "El soporte FTP en PHP no está habilitado o instalado.",
|
||||
"{module} is not installed." : "{module} no está instalado.",
|
||||
"Dependant backends" : "Backends dependientes",
|
||||
"No external storage configured or you do not have the permission to configure them" : "No hay almacenamiento externo configurado o no tienes permiso para configurarlo",
|
||||
"Add external storage" : "Agregar almacenamiento externo",
|
||||
"Global credentials saved" : "Credenciales globales guardadas",
|
||||
"Could not save global credentials" : "No se pudieron guardar las credenciales globales",
|
||||
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Se pueden usar credenciales globales para autenticar con múltiples almacenamientos externos que tengan las mismas credenciales.",
|
||||
"Saving …" : "Guardando …",
|
||||
"Save" : "Guardar",
|
||||
@@ -119,6 +144,7 @@ OC.L10N.register(
|
||||
"Enter missing credentials" : "Introduzca las credenciales requeridas",
|
||||
"Credentials successfully set" : "Se han establecido las credenciales exitosamente",
|
||||
"Error while setting credentials: {error}" : "Error al establecer credenciales: {error}",
|
||||
"Checking storage …" : "Comprobando almacenamiento …",
|
||||
"There was an error with this external storage." : "Se presentó un problema con este almacenamiento externo.",
|
||||
"We were unable to check the external storage {basename}" : "No nos fue posible chequear el almacenamiento externo {basename}",
|
||||
"Examine this faulty external storage configuration" : "Examinar la configuración de este almacenamiento externo con fallas",
|
||||
@@ -138,6 +164,8 @@ OC.L10N.register(
|
||||
"System" : "Sistema",
|
||||
"Connected" : "Conectado",
|
||||
"Error" : "Error",
|
||||
"Indeterminate" : "Indeterminado",
|
||||
"Incomplete configuration" : "Configuración incompleta",
|
||||
"Unauthorized" : "Desautorizado",
|
||||
"Network error" : "Error de red",
|
||||
"Grant access" : "Conceder acceso",
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"Kerberos default realm, defaults to \"WORKGROUP\"" : "El ámbito por defecto de Kerberos es \"WORKGROUP\".",
|
||||
"Kerberos ticket Apache mode" : "Ticket Kerberos Modo Apache",
|
||||
"Kerberos ticket" : "Ticket de Kerberos",
|
||||
"S3 Storage" : "Almacenamiento S3",
|
||||
"Bucket" : "Bucket",
|
||||
"Hostname" : "Dirección del servidor",
|
||||
"Port" : "Puerto",
|
||||
@@ -49,6 +50,7 @@
|
||||
"Enable Path Style" : "Habilitar Estilo de Ruta",
|
||||
"Legacy (v2) authentication" : "Autenticación heredada (v2)",
|
||||
"Enable multipart copy" : "Activa a copia multiparte",
|
||||
"Use presigned S3 url" : "Utilice la URL S3 pre-firmada",
|
||||
"SSE-C encryption key" : "Llave de cifrado SSE-C",
|
||||
"WebDAV" : "WebDAV",
|
||||
"URL" : "URL",
|
||||
@@ -80,15 +82,20 @@
|
||||
"External storage support" : "Soporte de almacenamiento externo",
|
||||
"Adds basic external storage support" : "Añade soporte básico de almacenamiento externo",
|
||||
"This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Esta aplicación permite a los administradores configurar conexiones con proveedores de almacenamiento externos, como servidores FTP, almacenes de objetos S3 o SWIFT, otros servidores Nextcloud, servidores WebDAV y mucho más. La administración puede escoger qué tipos de almacenamiento activar y puede montar estas localizaciones de almacenamiento para una cuenta, un grupo o todo el sistema. Los usuarios verán aparecer una nueva carpeta en su directorio raíz de Nextcloud. Pueden acceder a ella o usarla como cualquiera otra carpeta. El almacenamiento externo también permite que las personas compartan ficheros almacenados en estas localizaciones externas. En estos casos, se utilizan las credenciales del propietario cuando el destinatario solicita el fichero desde el almacenamiento externo, garantizando así que el destinatario pueda acceder al fichero compartido.\n\nSe puede configurar el almacenamiento externo mediante la GUI o la línea de comandos. Esta segunda opción proporciona al administrador más flexibilidad para configurar montajes de almacenamiento externo masivo y establecer prioridades de montaje. Hay más información disponible en la documentación de la GUI del almacenamiento externo y en la documentación del fichero de configuración del almacenamiento externo.",
|
||||
"Edit storage" : "Editar almacenamiento",
|
||||
"Add storage" : "Añadir almacenamiento",
|
||||
"Folder name" : "Nombre de la carpeta",
|
||||
"Authentication" : "Autentificación",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit" : "Editar",
|
||||
"Create" : "Crear",
|
||||
"Restrict to" : "Restringir a",
|
||||
"Storage configuration" : "Configuración de almacenamiento",
|
||||
"Never" : "Nunca",
|
||||
"Once every direct access" : "Una vez en cada acceso",
|
||||
"Always" : "Siempre",
|
||||
"Mount options" : "Opciones de montaje",
|
||||
"Check filesystem changes" : "Comprobar cambios en el sistema de archivos",
|
||||
"Read only" : "Solo lectura",
|
||||
"Enable previews" : "Habilitar previsualizaciones",
|
||||
"Enable sharing" : "Habilitar el uso compartido",
|
||||
@@ -96,11 +103,19 @@
|
||||
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)",
|
||||
"External storages" : "Almacenamiento externo",
|
||||
"Status" : "Estado",
|
||||
"Restricted to" : "Restringido a",
|
||||
"Actions" : "Acciones",
|
||||
"Checking …" : "Comprobando ...",
|
||||
"Recheck status" : "Volver a comprobar el estado",
|
||||
"Delete" : "Eliminar",
|
||||
"System provided storage" : "Almacenamiento proporcionado por el sistema",
|
||||
"Saved" : "Guardado",
|
||||
"Error while saving" : "Error al guardar",
|
||||
"Saved allowed backends" : "Backends permitidos guardados",
|
||||
"Failed to save allowed backends" : "No se pudieron guardar los backends permitidos",
|
||||
"Advanced options for external storage mounts" : "Opciones avanzadas para almacenamiento externo",
|
||||
"Allow people to mount external storage" : "Permite que as persoas monten almacenamento externo",
|
||||
"External storage backends people are allowed to mount" : "Las personas pueden montar los backends de almacenamiento externo",
|
||||
"Error generating key pair" : "Error al generar el par de claves",
|
||||
"Key size" : "Tamaño de llave",
|
||||
"Generate keys" : "Generar claves",
|
||||
@@ -109,6 +124,16 @@
|
||||
"To access the storage, you need to provide the authentication credentials." : "Para acceder al almacenamiento, debe proporcionar las credenciales de autenticación.",
|
||||
"Enter the storage login" : "Ingrese el inicio de sesión de almacenamiento",
|
||||
"Enter the storage password" : "Ingrese la contraseña de almacenamiento",
|
||||
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices." : "El almacenamiento externo le permite montar servicios y dispositivos de almacenamiento externo como dispositivos de almacenamiento secundarios de Nextcloud.",
|
||||
"You may also allow people to mount their own external storage services." : "También puede permitir que las personas monten sus propios servicios de almacenamiento externo.",
|
||||
"The cURL support in PHP is not enabled or installed." : "El soporte de cURL en PHP no está habilitado o instalado.",
|
||||
"The FTP support in PHP is not enabled or installed." : "El soporte FTP en PHP no está habilitado o instalado.",
|
||||
"{module} is not installed." : "{module} no está instalado.",
|
||||
"Dependant backends" : "Backends dependientes",
|
||||
"No external storage configured or you do not have the permission to configure them" : "No hay almacenamiento externo configurado o no tienes permiso para configurarlo",
|
||||
"Add external storage" : "Agregar almacenamiento externo",
|
||||
"Global credentials saved" : "Credenciales globales guardadas",
|
||||
"Could not save global credentials" : "No se pudieron guardar las credenciales globales",
|
||||
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Se pueden usar credenciales globales para autenticar con múltiples almacenamientos externos que tengan las mismas credenciales.",
|
||||
"Saving …" : "Guardando …",
|
||||
"Save" : "Guardar",
|
||||
@@ -117,6 +142,7 @@
|
||||
"Enter missing credentials" : "Introduzca las credenciales requeridas",
|
||||
"Credentials successfully set" : "Se han establecido las credenciales exitosamente",
|
||||
"Error while setting credentials: {error}" : "Error al establecer credenciales: {error}",
|
||||
"Checking storage …" : "Comprobando almacenamiento …",
|
||||
"There was an error with this external storage." : "Se presentó un problema con este almacenamiento externo.",
|
||||
"We were unable to check the external storage {basename}" : "No nos fue posible chequear el almacenamiento externo {basename}",
|
||||
"Examine this faulty external storage configuration" : "Examinar la configuración de este almacenamiento externo con fallas",
|
||||
@@ -136,6 +162,8 @@
|
||||
"System" : "Sistema",
|
||||
"Connected" : "Conectado",
|
||||
"Error" : "Error",
|
||||
"Indeterminate" : "Indeterminado",
|
||||
"Incomplete configuration" : "Configuración incompleta",
|
||||
"Unauthorized" : "Desautorizado",
|
||||
"Network error" : "Error de red",
|
||||
"Grant access" : "Conceder acceso",
|
||||
|
||||
@@ -68,7 +68,7 @@ OC.L10N.register(
|
||||
"SFTP with secret key login" : "SFTP met geheime sleutel inlog",
|
||||
"SMB/CIFS" : "SMB/CIFS",
|
||||
"Share" : "Share",
|
||||
"Show hidden files" : "Laat verborgen bestanden zien",
|
||||
"Show hidden files" : "Toon verborgen bestanden",
|
||||
"Case sensitive file system" : "Hoofdlettergevoelig bestandssysteem",
|
||||
"Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Door dit uit te schakelen kan een hoofdletterongevoelig bestandssysteem worden gebruikt, zij het met verminderde prestaties",
|
||||
"Verify ACL access when listing files" : "ACL controleren bij bestandsoverzichten",
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"SFTP with secret key login" : "SFTP met geheime sleutel inlog",
|
||||
"SMB/CIFS" : "SMB/CIFS",
|
||||
"Share" : "Share",
|
||||
"Show hidden files" : "Laat verborgen bestanden zien",
|
||||
"Show hidden files" : "Toon verborgen bestanden",
|
||||
"Case sensitive file system" : "Hoofdlettergevoelig bestandssysteem",
|
||||
"Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Door dit uit te schakelen kan een hoofdletterongevoelig bestandssysteem worden gebruikt, zij het met verminderde prestaties",
|
||||
"Verify ACL access when listing files" : "ACL controleren bij bestandsoverzichten",
|
||||
|
||||
@@ -85,7 +85,7 @@ class AdminTest extends TestCase {
|
||||
$this->initialState
|
||||
->expects($this->atLeastOnce())
|
||||
->method('provideInitialState')
|
||||
->willReturnCallback(function () use (&$initialState) {
|
||||
->willReturnCallback(function () use (&$initialState): void {
|
||||
$args = func_get_args();
|
||||
$initialState[$args[0]] = $args[1];
|
||||
});
|
||||
|
||||
@@ -8,6 +8,7 @@ declare(strict_types=1);
|
||||
*/
|
||||
namespace OCA\Files_Sharing\Controller;
|
||||
|
||||
use OCA\Deck\Sharing\ShareAPIHelper;
|
||||
use OCA\Files_Sharing\ResponseDefinitions;
|
||||
use OCP\App\IAppManager;
|
||||
use OCP\AppFramework\Http;
|
||||
@@ -204,12 +205,12 @@ class DeletedShareAPIController extends OCSController {
|
||||
* @psalm-suppress UndefinedClass
|
||||
* @throws ContainerExceptionInterface
|
||||
*/
|
||||
private function getDeckShareHelper(): \OCA\Deck\Sharing\ShareAPIHelper {
|
||||
private function getDeckShareHelper(): ShareAPIHelper {
|
||||
if (!$this->appManager->isEnabledForUser('deck')) {
|
||||
throw new QueryException();
|
||||
}
|
||||
|
||||
/** @psalm-suppress UndefinedClass */
|
||||
return Server::get(\OCA\Deck\Sharing\ShareAPIHelper::class);
|
||||
return Server::get(ShareAPIHelper::class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ class ShareTargetValidatorTest extends TestCase {
|
||||
$share = $this->shareManager->getShareById($share->getFullId());
|
||||
$this->assertSame('/foo/bar' . $this->folder, $share->getTarget());
|
||||
|
||||
$this->eventDispatcher->addListener(VerifyMountPointEvent::class, function (VerifyMountPointEvent $event) {
|
||||
$this->eventDispatcher->addListener(VerifyMountPointEvent::class, function (VerifyMountPointEvent $event): void {
|
||||
$event->setCreateParent(true);
|
||||
});
|
||||
$this->targetValidator->verifyMountPoint($this->user2, $share, [], [$share]);
|
||||
|
||||
@@ -16,6 +16,7 @@ use OC\Files\Node\NonExistingFolder;
|
||||
use OC\Files\View;
|
||||
use OC\User\NoUserException;
|
||||
use OC_User;
|
||||
use OCA\FederatedFileSharing\FederatedShareProvider;
|
||||
use OCA\Files_Trashbin\Command\Expire;
|
||||
use OCA\Files_Trashbin\Events\BeforeNodeRestoredEvent;
|
||||
use OCA\Files_Trashbin\Events\NodeRestoredEvent;
|
||||
@@ -1194,7 +1195,7 @@ class Trashbin implements IEventListener {
|
||||
return $user;
|
||||
}
|
||||
|
||||
$federatedShareProvider = Server::get(\OCA\FederatedFileSharing\FederatedShareProvider::class);
|
||||
$federatedShareProvider = Server::get(FederatedShareProvider::class);
|
||||
$share = $federatedShareProvider->getShareByToken($token);
|
||||
|
||||
return $share->getSharedWith();
|
||||
|
||||
@@ -13,6 +13,7 @@ use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\Settings\ISettings;
|
||||
use OCP\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class Admin implements ISettings {
|
||||
@@ -45,8 +46,8 @@ class Admin implements ISettings {
|
||||
$this->initialState->provideInitialState('clients', $result);
|
||||
$this->initialState->provideInitialState('oauth2-doc-link', $this->urlGenerator->linkToDocs('admin-oauth2'));
|
||||
|
||||
\OCP\Util::addStyle('oauth2', 'settings-admin');
|
||||
\OCP\Util::addScript('oauth2', 'settings-admin', 'core');
|
||||
Util::addStyle('oauth2', 'settings-admin');
|
||||
Util::addScript('oauth2', 'settings-admin', 'core');
|
||||
return new TemplateResponse(
|
||||
'oauth2',
|
||||
'admin',
|
||||
|
||||
@@ -34,6 +34,7 @@ OC.L10N.register(
|
||||
"Settings" : "Instellingen",
|
||||
"Could not remove app." : "Kon app niet verwijderen",
|
||||
"Could not update app." : "Kon app niet updaten",
|
||||
"One time login" : "Eenmalige inlog",
|
||||
"Wrong password" : "Onjuist wachtwoord",
|
||||
"Unable to change personal password" : "Kan persoonlijk wachtwoord niet wijzigen",
|
||||
"Saved" : "Opgeslagen",
|
||||
@@ -177,6 +178,7 @@ OC.L10N.register(
|
||||
"Disabled" : "Uitgeschakeld",
|
||||
"The old server-side-encryption format is enabled. We recommend disabling this." : "Het oude server-side-encryptie formaat is ingeschakeld. We raden aan om dit uit te schakelen.",
|
||||
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Het logniveau is ingesteld op foutopsporingsniveau. Gebruik het foutopsporingsniveau alleen om een probleem te diagnosticeren, en reset vervolgens uw log-niveau naar een niveau met minder informatie, omdat het veel informatie oplevert en de prestaties van uw server kan beïnvloeden.",
|
||||
"Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks." : "De server heeft geen onderhoudsvenster starttijd geconfigureerd. Dit betekent dat bron intensieve dagelijkse achtergrond taken ook worden uitgevoerd tijdens normaal gebruik. We adviseren om een tijdstip te kiezen met beperkt gebruik, zodat gebruikers minder worden beïnvloedt door de belasting gegenereerd door deze zware taken.",
|
||||
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "De PHP functie \"set_time_limit\" is niet beschikbaar. Dit kan erin resulteren dat de scripts halverwege stoppen, waardoor de installatie ontregeld raakt. We adviseren sterk om deze functie in te schakelen.",
|
||||
"Supported" : "Ondersteund",
|
||||
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Je PHP heeft geen FreeType ondersteuning. Dit zal leiden tot verminkte profielafbeeldingen en instellingeninterface.",
|
||||
@@ -192,6 +194,7 @@ OC.L10N.register(
|
||||
"Architecture" : "Architectuur",
|
||||
"64-bit" : "64-bit",
|
||||
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Je database draait niet met \"READ COMMITTED\" transactie-isolatie niveau. Dit kan problemen opleveren als er meerdere acties tegelijkertijd worden uitgevoerd.",
|
||||
"Profile information" : "Profiel informatie",
|
||||
"Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profielfoto, volledige naam, e-mailadres, telefoonnummer, adres, website, Twitter, organisatie, rol, kop, biografie en of je profiel is ingeschakeld",
|
||||
"Nextcloud settings" : "Nextcloud instellingen",
|
||||
"Enable" : "Inschakelen",
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"Settings" : "Instellingen",
|
||||
"Could not remove app." : "Kon app niet verwijderen",
|
||||
"Could not update app." : "Kon app niet updaten",
|
||||
"One time login" : "Eenmalige inlog",
|
||||
"Wrong password" : "Onjuist wachtwoord",
|
||||
"Unable to change personal password" : "Kan persoonlijk wachtwoord niet wijzigen",
|
||||
"Saved" : "Opgeslagen",
|
||||
@@ -175,6 +176,7 @@
|
||||
"Disabled" : "Uitgeschakeld",
|
||||
"The old server-side-encryption format is enabled. We recommend disabling this." : "Het oude server-side-encryptie formaat is ingeschakeld. We raden aan om dit uit te schakelen.",
|
||||
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Het logniveau is ingesteld op foutopsporingsniveau. Gebruik het foutopsporingsniveau alleen om een probleem te diagnosticeren, en reset vervolgens uw log-niveau naar een niveau met minder informatie, omdat het veel informatie oplevert en de prestaties van uw server kan beïnvloeden.",
|
||||
"Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks." : "De server heeft geen onderhoudsvenster starttijd geconfigureerd. Dit betekent dat bron intensieve dagelijkse achtergrond taken ook worden uitgevoerd tijdens normaal gebruik. We adviseren om een tijdstip te kiezen met beperkt gebruik, zodat gebruikers minder worden beïnvloedt door de belasting gegenereerd door deze zware taken.",
|
||||
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "De PHP functie \"set_time_limit\" is niet beschikbaar. Dit kan erin resulteren dat de scripts halverwege stoppen, waardoor de installatie ontregeld raakt. We adviseren sterk om deze functie in te schakelen.",
|
||||
"Supported" : "Ondersteund",
|
||||
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Je PHP heeft geen FreeType ondersteuning. Dit zal leiden tot verminkte profielafbeeldingen en instellingeninterface.",
|
||||
@@ -190,6 +192,7 @@
|
||||
"Architecture" : "Architectuur",
|
||||
"64-bit" : "64-bit",
|
||||
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Je database draait niet met \"READ COMMITTED\" transactie-isolatie niveau. Dit kan problemen opleveren als er meerdere acties tegelijkertijd worden uitgevoerd.",
|
||||
"Profile information" : "Profiel informatie",
|
||||
"Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profielfoto, volledige naam, e-mailadres, telefoonnummer, adres, website, Twitter, organisatie, rol, kop, biografie en of je profiel is ingeschakeld",
|
||||
"Nextcloud settings" : "Nextcloud instellingen",
|
||||
"Enable" : "Inschakelen",
|
||||
|
||||
@@ -125,7 +125,7 @@ class AdminSettingsControllerTest extends TestCase {
|
||||
$initialState = [];
|
||||
$this->initialState->expects(self::atLeastOnce())
|
||||
->method('provideInitialState')
|
||||
->willReturnCallback(function () use (&$initialState) {
|
||||
->willReturnCallback(function () use (&$initialState): void {
|
||||
$initialState[] = func_get_args();
|
||||
});
|
||||
|
||||
|
||||
@@ -10,7 +10,9 @@ use OC\Settings\AuthorizedGroup;
|
||||
use OC\Settings\AuthorizedGroupMapper;
|
||||
use OCA\Settings\Service\AuthorizedGroupService;
|
||||
use OCA\Settings\Service\ConflictException;
|
||||
use OCA\Settings\Service\NotFoundException;
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\Server;
|
||||
use Test\TestCase;
|
||||
|
||||
/**
|
||||
@@ -27,7 +29,7 @@ class DuplicateAssignmentIntegrationTest extends TestCase {
|
||||
parent::setUp();
|
||||
|
||||
// Use real mapper for integration testing
|
||||
$this->mapper = \OCP\Server::get(AuthorizedGroupMapper::class);
|
||||
$this->mapper = Server::get(AuthorizedGroupMapper::class);
|
||||
$this->service = new AuthorizedGroupService($this->mapper);
|
||||
}
|
||||
|
||||
@@ -109,10 +111,10 @@ class DuplicateAssignmentIntegrationTest extends TestCase {
|
||||
$this->service->delete($initialId);
|
||||
|
||||
// Verify it's deleted by trying to find it
|
||||
$this->expectException(\OCP\AppFramework\Db\DoesNotExistException::class);
|
||||
$this->expectException(DoesNotExistException::class);
|
||||
try {
|
||||
$this->service->find($initialId);
|
||||
} catch (\OCA\Settings\Service\NotFoundException $e) {
|
||||
} catch (NotFoundException $e) {
|
||||
// Expected - now create the same assignment again, which should succeed
|
||||
$result2 = $this->service->create($groupId, $class);
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ class AuthorizedGroupServiceTest extends TestCase {
|
||||
// Mock that no duplicate exists for group1
|
||||
$this->mapper->expects($this->exactly(2))
|
||||
->method('findByGroupIdAndClass')
|
||||
->willReturnCallback(function ($groupId, $classArg) use ($groupId1, $groupId2, $class) {
|
||||
->willReturnCallback(function ($groupId, $classArg) use ($groupId1, $groupId2, $class): void {
|
||||
$this->assertContains($groupId, [$groupId1, $groupId2]);
|
||||
$this->assertEquals($class, $classArg);
|
||||
throw new DoesNotExistException('Not found');
|
||||
@@ -126,7 +126,7 @@ class AuthorizedGroupServiceTest extends TestCase {
|
||||
// Mock that no duplicate exists for either class
|
||||
$this->mapper->expects($this->exactly(2))
|
||||
->method('findByGroupIdAndClass')
|
||||
->willReturnCallback(function ($groupIdArg, $class) use ($groupId, $class1, $class2) {
|
||||
->willReturnCallback(function ($groupIdArg, $class) use ($groupId, $class1, $class2): void {
|
||||
$this->assertEquals($groupId, $groupIdArg);
|
||||
$this->assertContains($class, [$class1, $class2]);
|
||||
throw new DoesNotExistException('Not found');
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
namespace OCA\Theming;
|
||||
|
||||
use OC\Kernel\Kernel;
|
||||
use OCA\Theming\AppInfo\Application;
|
||||
use OCA\Theming\Service\BackgroundService;
|
||||
use OCP\App\AppPathNotFoundException;
|
||||
@@ -395,7 +396,7 @@ class ThemingDefaults extends \OC_Defaults {
|
||||
}
|
||||
$route = $this->urlGenerator->linkToRoute('theming.Theming.getManifest', ['app' => $app ]);
|
||||
}
|
||||
if (str_starts_with($image, 'filetypes/') && file_exists(\OC::$SERVERROOT . '/core/img/' . $image)) {
|
||||
if (str_starts_with($image, 'filetypes/') && file_exists(Kernel::getInstance()->getServerRoot() . '/core/img/' . $image)) {
|
||||
$route = $this->urlGenerator->linkToRoute('theming.Icon.getThemedIcon', ['app' => $app, 'image' => $image]);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ use OCP\IL10N;
|
||||
use OCP\Server;
|
||||
use OCP\Settings\IDelegatedSettings;
|
||||
use OCP\Template\ITemplateManager;
|
||||
use OCP\Util;
|
||||
|
||||
class Admin implements IDelegatedSettings {
|
||||
public function __construct(
|
||||
@@ -60,8 +61,8 @@ class Admin implements IDelegatedSettings {
|
||||
$this->initialState->provideInitialState('ldapConfigs', $ldapConfigs);
|
||||
$this->initialState->provideInitialState('ldapModuleInstalled', function_exists('ldap_connect'));
|
||||
|
||||
\OCP\Util::addStyle(Application::APP_ID, 'settings-admin');
|
||||
\OCP\Util::addScript(Application::APP_ID, 'settings-admin');
|
||||
Util::addStyle(Application::APP_ID, 'settings-admin');
|
||||
Util::addScript(Application::APP_ID, 'settings-admin');
|
||||
return new TemplateResponse(Application::APP_ID, 'settings', $parameters);
|
||||
}
|
||||
|
||||
|
||||
@@ -616,9 +616,8 @@ class Manager implements IManager {
|
||||
public function formatOperation(array $operation): array {
|
||||
$checkIds = json_decode($operation['checks'], true);
|
||||
|
||||
/** @var list<WorkflowEngineCheck> $checks */
|
||||
$checks = $this->getChecks($checkIds);
|
||||
$operation['checks'] = $checks;
|
||||
$operation['checks'] = array_values($checks);
|
||||
|
||||
/** @var list<class-string<IEntityEvent>> $events */
|
||||
$events = json_decode($operation['events'], true) ?? [];
|
||||
|
||||
@@ -3588,22 +3588,6 @@
|
||||
<code><![CDATA[$this->fileInfo]]></code>
|
||||
</UndefinedInterfaceMethod>
|
||||
</file>
|
||||
<file src="lib/private/Files/Node/Root.php">
|
||||
<LessSpecificReturnStatement>
|
||||
<code><![CDATA[$folders]]></code>
|
||||
<code><![CDATA[$this->mountManager->findByNumericId($numericId)]]></code>
|
||||
<code><![CDATA[$this->mountManager->findByStorageId($storageId)]]></code>
|
||||
<code><![CDATA[$this->mountManager->findIn($mountPoint)]]></code>
|
||||
</LessSpecificReturnStatement>
|
||||
<MoreSpecificReturnType>
|
||||
<code><![CDATA[MountPoint[]]]></code>
|
||||
<code><![CDATA[\OC\Files\Mount\MountPoint[]]]></code>
|
||||
<code><![CDATA[\OC\Files\Mount\MountPoint[]]]></code>
|
||||
</MoreSpecificReturnType>
|
||||
<UndefinedMethod>
|
||||
<code><![CDATA[remove]]></code>
|
||||
</UndefinedMethod>
|
||||
</file>
|
||||
<file src="lib/private/Files/ObjectStore/S3ConnectionTrait.php">
|
||||
<InternalClass>
|
||||
<code><![CDATA[ClientResolver::_default_signature_provider()]]></code>
|
||||
|
||||
Generated
+1
-1
@@ -96,5 +96,5 @@
|
||||
"platform-overrides": {
|
||||
"php": "8.2"
|
||||
},
|
||||
"plugin-api-version": "2.6.0"
|
||||
"plugin-api-version": "2.9.0"
|
||||
}
|
||||
|
||||
+50
-14
@@ -1758,6 +1758,16 @@ $CONFIG = [
|
||||
*/
|
||||
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
|
||||
|
||||
/**
|
||||
* Cache Key Prefix for Redis or Memcached
|
||||
*
|
||||
* * Used for avoiding collisions in the cache system
|
||||
* * May be used for ACL restrictions in Redis
|
||||
*
|
||||
* Defaults to ``''`` (empty string)
|
||||
*/
|
||||
'memcache_customprefix' => 'mycustomprefix',
|
||||
|
||||
/**
|
||||
* Connection details for Redis to use for memory caching in a single server configuration.
|
||||
*
|
||||
@@ -2473,27 +2483,53 @@ $CONFIG = [
|
||||
'filesystem_check_changes' => 0,
|
||||
|
||||
/**
|
||||
* Store part files created during upload in the same storage as the upload
|
||||
* target. Setting this to false stores part files in the root of the user's
|
||||
* folder, which may be necessary for external storage with limited rename
|
||||
* capabilities.
|
||||
* Control where temporary ".part" files are written during direct (non-chunked)
|
||||
* uploads.
|
||||
*
|
||||
* Defaults to ``true``
|
||||
* While an upload is in progress, Nextcloud writes data to a temporary ".part"
|
||||
* file and renames it to the final filename when the upload completes.
|
||||
*
|
||||
* - true: create the temporary ".part" file in the destination storage/path.
|
||||
* This typically avoids cross-storage moves and can improve reliability and
|
||||
* performance on backends where rename within the same storage is cheap/atomic.
|
||||
* - false: create the temporary ".part" file in the user's root folder first.
|
||||
* This may help with some external storages that have limited rename/move
|
||||
* behavior, but can add extra copy/move overhead.
|
||||
*
|
||||
* Note: This setting applies to direct (non-chunked) uploads only. Chunked/
|
||||
* resumable uploads use a separate uploads staging mechanism and are not
|
||||
* controlled by this option.
|
||||
*
|
||||
* Defaults to ``true``.
|
||||
*/
|
||||
'part_file_in_storage' => true,
|
||||
|
||||
/**
|
||||
* Specify the location of the ``mount.json`` file.
|
||||
* Read-only mode for scan/detection reconciliation writes to filecache.
|
||||
*
|
||||
* Defaults to ``data/mount.json`` in the Nextcloud directory.
|
||||
*/
|
||||
'mount_file' => '/var/www/nextcloud/data/mount.json',
|
||||
|
||||
/**
|
||||
* Prevent Nextcloud from updating the cache due to filesystem changes for all
|
||||
* storage.
|
||||
* When true, Nextcloud does not store filecache metadata changes that are
|
||||
* identified through scanner/change-detection reconciliation paths (global:
|
||||
* all storages).
|
||||
*
|
||||
* Defaults to ``false``
|
||||
* Scope note:
|
||||
*
|
||||
* - Nextcloud-originated operations (UI/WebDAV/clients) are generally
|
||||
* handled through normal application write paths and thus will still
|
||||
* update filecache even when this is set to true.
|
||||
* - Reconciliation/refresh paths are prevented from writing back discovered
|
||||
* metadata deltas while this is enabled.
|
||||
*
|
||||
* Practical effect:
|
||||
*
|
||||
* - Changes made directly on storage outside Nextcloud are generally not
|
||||
* reflected while enabled.
|
||||
* - Some metadata-dependent behavior can appear stale until this parameter
|
||||
* is disabled (permitting reconciliation writes again).
|
||||
*
|
||||
* Warning: This is an expert/global setting for specialized environments and
|
||||
* is intentionally not default-safe for general deployments.
|
||||
*
|
||||
* Defaults to ``false``.
|
||||
*/
|
||||
'filesystem_cache_readonly' => false,
|
||||
|
||||
|
||||
+8
-110
@@ -2,120 +2,18 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\Server;
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
use OC\Kernel\ConsoleKernel;
|
||||
|
||||
require_once __DIR__ . '/lib/versioncheck.php';
|
||||
require_once __DIR__ . '/lib/private/Kernel/Kernel.php';
|
||||
require_once __DIR__ . '/lib/private/Kernel/ConsoleKernel.php';
|
||||
|
||||
use OC\Console\Application;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\Diagnostics\IEventLogger;
|
||||
use OCP\IRequest;
|
||||
use OCP\Profiler\IProfiler;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
|
||||
define('OC_CONSOLE', 1);
|
||||
|
||||
function exceptionHandler($exception) {
|
||||
echo 'An unhandled exception has been thrown:' . PHP_EOL;
|
||||
echo $exception;
|
||||
exit(1);
|
||||
}
|
||||
try {
|
||||
require_once __DIR__ . '/lib/base.php';
|
||||
|
||||
// set to run indefinitely if needed
|
||||
if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
|
||||
@set_time_limit(0);
|
||||
}
|
||||
|
||||
if (!OC::$CLI) {
|
||||
echo 'This script can be run from the command line only' . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$config = Server::get(IConfig::class);
|
||||
set_exception_handler('exceptionHandler');
|
||||
|
||||
if (!function_exists('posix_getuid')) {
|
||||
echo 'The posix extensions are required - see https://www.php.net/manual/en/book.posix.php' . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$user = posix_getuid();
|
||||
$configUser = fileowner(OC::$configDir . 'config.php');
|
||||
if ($user !== $configUser) {
|
||||
echo 'Console has to be executed with the user that owns the file config/config.php' . PHP_EOL;
|
||||
echo 'Current user id: ' . $user . PHP_EOL;
|
||||
echo 'Owner id of config.php: ' . $configUser . PHP_EOL;
|
||||
echo "Try adding 'sudo -u #" . $configUser . "' to the beginning of the command (without the single quotes)" . PHP_EOL;
|
||||
echo "If running with 'docker exec' try adding the option '-u " . $configUser . "' to the docker command (without the single quotes)" . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$oldWorkingDir = getcwd();
|
||||
if ($oldWorkingDir === false) {
|
||||
echo 'This script can be run from the Nextcloud root directory only.' . PHP_EOL;
|
||||
echo "Can't determine current working dir - the script will continue to work but be aware of the above fact." . PHP_EOL;
|
||||
} elseif ($oldWorkingDir !== __DIR__ && !chdir(__DIR__)) {
|
||||
echo 'This script can be run from the Nextcloud root directory only.' . PHP_EOL;
|
||||
echo "Can't change to Nextcloud root directory." . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!(function_exists('pcntl_signal') && function_exists('pcntl_signal_dispatch')) && !in_array('--no-warnings', $argv)) {
|
||||
echo 'The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see https://www.php.net/manual/en/book.pcntl.php' . PHP_EOL;
|
||||
echo "Additionally the function 'pcntl_signal' and 'pcntl_signal_dispatch' need to be enabled in your php.ini." . PHP_EOL;
|
||||
}
|
||||
|
||||
$eventLogger = Server::get(IEventLogger::class);
|
||||
$eventLogger->start('console:build_application', 'Build Application instance and load commands');
|
||||
|
||||
$application = Server::get(Application::class);
|
||||
/* base.php will have removed eventual debug options from argv in $_SERVER */
|
||||
$argv = $_SERVER['argv'];
|
||||
$input = new ArgvInput($argv);
|
||||
$output = new ConsoleOutput();
|
||||
$application->loadCommands($input, $output);
|
||||
|
||||
$eventLogger->end('console:build_application');
|
||||
$eventLogger->start('console:run', 'Run the command');
|
||||
|
||||
$application->setAutoExit(false);
|
||||
$exitCode = $application->run($input);
|
||||
|
||||
$eventLogger->end('console:run');
|
||||
|
||||
$profiler = Server::get(IProfiler::class);
|
||||
if ($profiler->isEnabled()) {
|
||||
$eventLogger->end('runtime');
|
||||
$profile = $profiler->collect(Server::get(IRequest::class), new Response());
|
||||
$profile->setMethod('occ');
|
||||
$profile->setUrl(implode(' ', $argv));
|
||||
$profiler->saveProfile($profile);
|
||||
|
||||
$urlGenerator = Server::get(IURLGenerator::class);
|
||||
$url = $urlGenerator->linkToRouteAbsolute('profiler.main.profiler', [
|
||||
'profiler' => 'db',
|
||||
'token' => $profile->getToken(),
|
||||
]);
|
||||
$output->getErrorOutput()->writeln('Profiler output available at ' . $url);
|
||||
}
|
||||
|
||||
if ($exitCode > 255) {
|
||||
$exitCode = 255;
|
||||
}
|
||||
|
||||
exit($exitCode);
|
||||
} catch (Exception $ex) {
|
||||
exceptionHandler($ex);
|
||||
} catch (Error $ex) {
|
||||
exceptionHandler($ex);
|
||||
}
|
||||
(new ConsoleKernel())
|
||||
->boot()
|
||||
->run($_SERVER['argv']);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
namespace OC\Core\Controller;
|
||||
|
||||
use Exception;
|
||||
@@ -37,12 +38,10 @@ class ContactsMenuController extends Controller {
|
||||
public function index(?string $filter = null, ?string $teamId = null): array {
|
||||
$entries = $this->manager->getEntries($this->userSession->getUser(), $filter);
|
||||
if ($teamId !== null) {
|
||||
/** @var \OC\Teams\TeamManager */
|
||||
$teamManager = $this->teamManager;
|
||||
$memberIds = $teamManager->getMembersOfTeam($teamId, $this->userSession->getUser()->getUID());
|
||||
$memberIds = $this->teamManager->getMembersOfTeam($teamId, $this->userSession->getUser()->getUID());
|
||||
$entries['contacts'] = array_filter(
|
||||
$entries['contacts'],
|
||||
fn (IEntry $entry) => in_array($entry->getProperty('UID'), $memberIds, true)
|
||||
fn (IEntry $entry) => array_key_exists($entry->getProperty('UID'), $memberIds)
|
||||
);
|
||||
}
|
||||
return $entries;
|
||||
|
||||
@@ -15,6 +15,8 @@ use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
|
||||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\Attribute\PublicPage;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\AppFramework\Http\StreamTraversableResponse;
|
||||
use OCP\IConfig;
|
||||
use OCP\IRequest;
|
||||
use OCP\OpenMetrics\IMetricFamily;
|
||||
@@ -44,12 +46,12 @@ class OpenMetricsController extends Controller {
|
||||
#[NoCSRFRequired]
|
||||
#[PublicPage]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/metrics')]
|
||||
public function export(): Http\Response {
|
||||
public function export(): Response {
|
||||
if (!$this->isRemoteAddressAllowed()) {
|
||||
return new Http\Response(Http::STATUS_FORBIDDEN);
|
||||
return new Response(Http::STATUS_FORBIDDEN);
|
||||
}
|
||||
|
||||
return new Http\StreamTraversableResponse(
|
||||
return new StreamTraversableResponse(
|
||||
$this->generate(),
|
||||
Http::STATUS_OK,
|
||||
[
|
||||
|
||||
@@ -9,6 +9,10 @@ namespace OC\Core\Controller;
|
||||
|
||||
use OC\IntegrityCheck\Checker;
|
||||
use OC\Setup;
|
||||
use OCP\AppFramework\Http\RedirectResponse;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IInitialStateService;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\Server;
|
||||
@@ -31,7 +35,7 @@ class SetupController {
|
||||
$this->autoConfigFile = \OC::$configDir . 'autoconfig.php';
|
||||
}
|
||||
|
||||
public function run(array $post): void {
|
||||
public function run(array $post): Response {
|
||||
// Check for autosetup:
|
||||
$post = $this->loadAutoConfig($post);
|
||||
$opts = $this->setupHelper->getSystemInfo();
|
||||
@@ -45,8 +49,7 @@ class SetupController {
|
||||
}
|
||||
|
||||
if (!$this->setupHelper->canInstallFileExists()) {
|
||||
$this->displaySetupForbidden();
|
||||
return;
|
||||
return $this->displaySetupForbidden();
|
||||
}
|
||||
|
||||
if (isset($post['install']) && $post['install'] == 'true') {
|
||||
@@ -56,21 +59,21 @@ class SetupController {
|
||||
|
||||
if (count($e) > 0) {
|
||||
$options = array_merge($opts, $post, $errors);
|
||||
$this->display($options);
|
||||
return $this->display($options);
|
||||
} else {
|
||||
$this->finishSetup();
|
||||
return $this->finishSetup();
|
||||
}
|
||||
} else {
|
||||
$options = array_merge($opts, $post);
|
||||
$this->display($options);
|
||||
return $this->display($options);
|
||||
}
|
||||
}
|
||||
|
||||
private function displaySetupForbidden(): void {
|
||||
$this->templateManager->printGuestPage('', 'installation_forbidden');
|
||||
private function displaySetupForbidden(): TemplateResponse {
|
||||
return new TemplateResponse('', 'installation_forbidden', [], TemplateResponse::RENDER_AS_GUEST);
|
||||
}
|
||||
|
||||
public function display(array $post): void {
|
||||
public function display(array $post): TemplateResponse {
|
||||
$defaults = [
|
||||
'adminlogin' => '',
|
||||
'adminpass' => '',
|
||||
@@ -103,10 +106,10 @@ class SetupController {
|
||||
'adminDBConfiguration' => $this->urlGenerator->linkToDocs('admin-db-configuration'),
|
||||
]);
|
||||
|
||||
$this->templateManager->printGuestPage('', 'installation');
|
||||
return new TemplateResponse('', 'installation', [], TemplateResponse::RENDER_AS_GUEST);
|
||||
}
|
||||
|
||||
private function finishSetup(): void {
|
||||
private function finishSetup(): RedirectResponse {
|
||||
if (file_exists($this->autoConfigFile)) {
|
||||
unlink($this->autoConfigFile);
|
||||
}
|
||||
@@ -116,8 +119,7 @@ class SetupController {
|
||||
$this->templateManager->printGuestPage('', 'installation_incomplete');
|
||||
}
|
||||
|
||||
header('Location: ' . Server::get(IURLGenerator::class)->getAbsoluteURL('index.php/core/apps/recommended'));
|
||||
exit();
|
||||
return new RedirectResponse(Server::get(IURLGenerator::class)->getAbsoluteURL('index.php/core/apps/recommended'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -267,6 +267,7 @@ OC.L10N.register(
|
||||
"Reset search" : "Tyhjennä haku",
|
||||
"Could not load your contacts" : "Yhteystietojasi ei voitu ladata",
|
||||
"No contacts found" : "Yhteystietoja ei löytynyt",
|
||||
"Contacts list" : "Yhteystietoluettelo",
|
||||
"Show all contacts" : "Näytä kaikki kontaktit",
|
||||
"Install the Contacts app" : "Asenna Yhteystiedot-sovellus",
|
||||
"Search" : "Etsi",
|
||||
|
||||
@@ -265,6 +265,7 @@
|
||||
"Reset search" : "Tyhjennä haku",
|
||||
"Could not load your contacts" : "Yhteystietojasi ei voitu ladata",
|
||||
"No contacts found" : "Yhteystietoja ei löytynyt",
|
||||
"Contacts list" : "Yhteystietoluettelo",
|
||||
"Show all contacts" : "Näytä kaikki kontaktit",
|
||||
"Install the Contacts app" : "Asenna Yhteystiedot-sovellus",
|
||||
"Search" : "Etsi",
|
||||
|
||||
@@ -45,6 +45,8 @@ OC.L10N.register(
|
||||
"Input text is too long" : "Il testo inserito è troppo lungo",
|
||||
"Requested task type does not exist" : "Il tipo di attività richiesto non esiste",
|
||||
"Necessary language model provider is not available" : "Il necessario provider di modello per la lingua non è disponibile",
|
||||
"Cannot generate more than 12 images" : "Non è possibile generare più di 12 immagini",
|
||||
"Cannot generate less than 1 image" : "Non è possibile generare meno di 1 immagine",
|
||||
"No text to image provider is available" : "Nessun fornitore da-testo-a-immagine disponibile",
|
||||
"Image not found" : "Immagine non trovata",
|
||||
"No translation provider available" : "Nessun fornitore di traduzioni disponibile",
|
||||
@@ -306,10 +308,14 @@ OC.L10N.register(
|
||||
"Loading your contacts …" : "Caricamento dei tuoi contatti …",
|
||||
"Looking for {term} …" : "Ricerca di {term} …",
|
||||
"Search contacts" : "Cerca nei contatti",
|
||||
"Filter by team" : "Filtra per team",
|
||||
"All teams" : "Tutti i team",
|
||||
"Search contacts in team {team}" : "Cerca contatti nel team {team}",
|
||||
"Search contacts …" : "Cerca contatti …",
|
||||
"Reset search" : "Ripristina ricerca",
|
||||
"Could not load your contacts" : "Impossibile caricare i tuoi contatti",
|
||||
"No contacts found" : "Nessun contatto trovato",
|
||||
"Contacts list" : "Elenco dei contatti",
|
||||
"Show all contacts" : "Mostra tutti i contatti",
|
||||
"Install the Contacts app" : "Installa l'applicazione Contatti",
|
||||
"Search" : "Cerca",
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
"Input text is too long" : "Il testo inserito è troppo lungo",
|
||||
"Requested task type does not exist" : "Il tipo di attività richiesto non esiste",
|
||||
"Necessary language model provider is not available" : "Il necessario provider di modello per la lingua non è disponibile",
|
||||
"Cannot generate more than 12 images" : "Non è possibile generare più di 12 immagini",
|
||||
"Cannot generate less than 1 image" : "Non è possibile generare meno di 1 immagine",
|
||||
"No text to image provider is available" : "Nessun fornitore da-testo-a-immagine disponibile",
|
||||
"Image not found" : "Immagine non trovata",
|
||||
"No translation provider available" : "Nessun fornitore di traduzioni disponibile",
|
||||
@@ -304,10 +306,14 @@
|
||||
"Loading your contacts …" : "Caricamento dei tuoi contatti …",
|
||||
"Looking for {term} …" : "Ricerca di {term} …",
|
||||
"Search contacts" : "Cerca nei contatti",
|
||||
"Filter by team" : "Filtra per team",
|
||||
"All teams" : "Tutti i team",
|
||||
"Search contacts in team {team}" : "Cerca contatti nel team {team}",
|
||||
"Search contacts …" : "Cerca contatti …",
|
||||
"Reset search" : "Ripristina ricerca",
|
||||
"Could not load your contacts" : "Impossibile caricare i tuoi contatti",
|
||||
"No contacts found" : "Nessun contatto trovato",
|
||||
"Contacts list" : "Elenco dei contatti",
|
||||
"Show all contacts" : "Mostra tutti i contatti",
|
||||
"Install the Contacts app" : "Installa l'applicazione Contatti",
|
||||
"Search" : "Cerca",
|
||||
|
||||
@@ -10,99 +10,17 @@ declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/lib/versioncheck.php';
|
||||
|
||||
use OC\ServiceUnavailableException;
|
||||
use OC\User\LoginException;
|
||||
use OCP\HintException;
|
||||
use OC\Kernel\HttpKernel;
|
||||
use OCP\AppFramework\Http\IOutput;
|
||||
use OCP\IRequest;
|
||||
use OCP\Security\Bruteforce\MaxDelayReached;
|
||||
use OCP\Server;
|
||||
use OCP\Template\ITemplateManager;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
try {
|
||||
require_once __DIR__ . '/lib/base.php';
|
||||
require_once __DIR__ . '/lib/private/Kernel/Kernel.php';
|
||||
require_once __DIR__ . '/lib/private/Kernel/HttpKernel.php';
|
||||
|
||||
OC::handleRequest();
|
||||
} catch (ServiceUnavailableException $ex) {
|
||||
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
||||
'app' => 'index',
|
||||
'exception' => $ex,
|
||||
]);
|
||||
$kernel = (new HttpKernel())
|
||||
->boot();
|
||||
|
||||
//show the user a detailed error page
|
||||
Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, 503);
|
||||
} catch (HintException $ex) {
|
||||
try {
|
||||
Server::get(ITemplateManager::class)->printErrorPage($ex->getMessage(), $ex->getHint(), 503);
|
||||
} catch (Exception $ex2) {
|
||||
try {
|
||||
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
||||
'app' => 'index',
|
||||
'exception' => $ex,
|
||||
]);
|
||||
Server::get(LoggerInterface::class)->error($ex2->getMessage(), [
|
||||
'app' => 'index',
|
||||
'exception' => $ex2,
|
||||
]);
|
||||
} catch (Throwable $e) {
|
||||
// no way to log it properly - but to avoid a white page of death we try harder and ignore this one here
|
||||
}
|
||||
|
||||
//show the user a detailed error page
|
||||
Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, 500);
|
||||
}
|
||||
} catch (LoginException $ex) {
|
||||
$request = Server::get(IRequest::class);
|
||||
/**
|
||||
* Routes with the @CORS annotation and other API endpoints should
|
||||
* not return a webpage, so we only print the error page when html is accepted,
|
||||
* otherwise we reply with a JSON array like the SecurityMiddleware would do.
|
||||
*/
|
||||
if (stripos($request->getHeader('Accept'), 'html') === false) {
|
||||
http_response_code(401);
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
echo json_encode(['message' => $ex->getMessage()]);
|
||||
exit();
|
||||
}
|
||||
Server::get(ITemplateManager::class)->printErrorPage($ex->getMessage(), $ex->getMessage(), 401);
|
||||
} catch (MaxDelayReached $ex) {
|
||||
$request = Server::get(IRequest::class);
|
||||
/**
|
||||
* Routes with the @CORS annotation and other API endpoints should
|
||||
* not return a webpage, so we only print the error page when html is accepted,
|
||||
* otherwise we reply with a JSON array like the BruteForceMiddleware would do.
|
||||
*/
|
||||
if (stripos($request->getHeader('Accept'), 'html') === false) {
|
||||
http_response_code(429);
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
echo json_encode(['message' => $ex->getMessage()]);
|
||||
exit();
|
||||
}
|
||||
http_response_code(429);
|
||||
Server::get(ITemplateManager::class)->printGuestPage('core', '429');
|
||||
} catch (Exception $ex) {
|
||||
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
||||
'app' => 'index',
|
||||
'exception' => $ex,
|
||||
]);
|
||||
|
||||
//show the user a detailed error page
|
||||
Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, 500);
|
||||
} catch (Error $ex) {
|
||||
try {
|
||||
Server::get(LoggerInterface::class)->error($ex->getMessage(), [
|
||||
'app' => 'index',
|
||||
'exception' => $ex,
|
||||
]);
|
||||
} catch (Error $e) {
|
||||
http_response_code(500);
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
print("Internal Server Error\n\n");
|
||||
print("The server encountered an internal error and was unable to complete your request.\n");
|
||||
print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
|
||||
print("More details can be found in the webserver log.\n");
|
||||
|
||||
throw $ex;
|
||||
}
|
||||
Server::get(ITemplateManager::class)->printExceptionErrorPage($ex, 500);
|
||||
}
|
||||
$request = $kernel->getServer()->get(IRequest::class);
|
||||
$output = $kernel->getServer()->get(IOutput::class);
|
||||
$response = $kernel->handle($request);
|
||||
$kernel->deliverResponse($request, $response, $output);
|
||||
|
||||
+1
-1211
File diff suppressed because it is too large
Load Diff
@@ -2269,7 +2269,6 @@ return array(
|
||||
'OC_Defaults' => $baseDir . '/lib/private/legacy/OC_Defaults.php',
|
||||
'OC_Helper' => $baseDir . '/lib/private/legacy/OC_Helper.php',
|
||||
'OC_Hook' => $baseDir . '/lib/private/legacy/OC_Hook.php',
|
||||
'OC_JSON' => $baseDir . '/lib/private/legacy/OC_JSON.php',
|
||||
'OC_Template' => $baseDir . '/lib/private/legacy/OC_Template.php',
|
||||
'OC_User' => $baseDir . '/lib/private/legacy/OC_User.php',
|
||||
'OC_Util' => $baseDir . '/lib/private/legacy/OC_Util.php',
|
||||
|
||||
@@ -2310,7 +2310,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
|
||||
'OC_Defaults' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Defaults.php',
|
||||
'OC_Helper' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Helper.php',
|
||||
'OC_Hook' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Hook.php',
|
||||
'OC_JSON' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_JSON.php',
|
||||
'OC_Template' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Template.php',
|
||||
'OC_User' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_User.php',
|
||||
'OC_Util' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Util.php',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
'name' => '__root__',
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '8c12590cf6f93ce7aa41f17817b3791e524da39e',
|
||||
'reference' => '671cec33f134e670bb21c5e3c49c685bd78fc339',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../../',
|
||||
'aliases' => array(),
|
||||
@@ -13,7 +13,7 @@
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '8c12590cf6f93ce7aa41f17817b3791e524da39e',
|
||||
'reference' => '671cec33f134e670bb21c5e3c49c685bd78fc339',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../../',
|
||||
'aliases' => array(),
|
||||
|
||||
+4
-4
@@ -277,9 +277,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "تم إلغاء تسجيل الدخول مِن طرف التطبيق",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "التطبيق \"%1$s\" لا يمكن تنصيبه بسبب أن التبعيّات التالية لم تتحقق: %2$s",
|
||||
"a safe home for all your data" : "المكان الآمن لجميع بياناتك",
|
||||
"Application is not enabled" : "التطبيق غير مفعّل",
|
||||
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
|
||||
"Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "لا توجد برامج تشغيل لقاعدة البيانات (sqlite أو mysql أو postgresql) مثبتة.",
|
||||
"Cannot write into \"config\" directory." : "تعذّرت الكتابة في الدليل 'config\".",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "يمكن إصلاح هذا عادةً بمنح خادم الويب صلاحية الوصول إلى الدليل \"config\". للمزيد، أنظر: %s",
|
||||
@@ -440,6 +437,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "توليد العنوان",
|
||||
"Summarizes text by reducing its length without losing key information." : "يُلَخِّص النص بتقليل طوله دون فقدان المعنى.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "يستخلص المواضيع من النص و إخراجها مفصولة بفواصل.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "\"Mac OS X\" غير مدعوم؛ و %s سوف لن يعمل بالشكل الصحيح على هذه المنصة. استعمله على مسؤوليتك!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "\"Mac OS X\" غير مدعوم؛ و %s سوف لن يعمل بالشكل الصحيح على هذه المنصة. استعمله على مسؤوليتك!",
|
||||
"Application is not enabled" : "التطبيق غير مفعّل",
|
||||
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
|
||||
"Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة"
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
|
||||
+4
-4
@@ -275,9 +275,6 @@
|
||||
"Login canceled by app" : "تم إلغاء تسجيل الدخول مِن طرف التطبيق",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "التطبيق \"%1$s\" لا يمكن تنصيبه بسبب أن التبعيّات التالية لم تتحقق: %2$s",
|
||||
"a safe home for all your data" : "المكان الآمن لجميع بياناتك",
|
||||
"Application is not enabled" : "التطبيق غير مفعّل",
|
||||
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
|
||||
"Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "لا توجد برامج تشغيل لقاعدة البيانات (sqlite أو mysql أو postgresql) مثبتة.",
|
||||
"Cannot write into \"config\" directory." : "تعذّرت الكتابة في الدليل 'config\".",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "يمكن إصلاح هذا عادةً بمنح خادم الويب صلاحية الوصول إلى الدليل \"config\". للمزيد، أنظر: %s",
|
||||
@@ -438,6 +435,9 @@
|
||||
"Generate headline" : "توليد العنوان",
|
||||
"Summarizes text by reducing its length without losing key information." : "يُلَخِّص النص بتقليل طوله دون فقدان المعنى.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "يستخلص المواضيع من النص و إخراجها مفصولة بفواصل.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "\"Mac OS X\" غير مدعوم؛ و %s سوف لن يعمل بالشكل الصحيح على هذه المنصة. استعمله على مسؤوليتك!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "\"Mac OS X\" غير مدعوم؛ و %s سوف لن يعمل بالشكل الصحيح على هذه المنصة. استعمله على مسؤوليتك!",
|
||||
"Application is not enabled" : "التطبيق غير مفعّل",
|
||||
"Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
|
||||
"Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة"
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
||||
+3
-3
@@ -189,8 +189,6 @@ OC.L10N.register(
|
||||
"Dec." : "Avi.",
|
||||
"A valid password must be provided" : "Ha fornise una contraseña válida",
|
||||
"a safe home for all your data" : "un llugar seguru pa los datos personales",
|
||||
"Application is not enabled" : "L'aplicación nun ta activada",
|
||||
"Authentication error" : "Error de l'autenticación",
|
||||
"Your data directory is not writable." : "Nun se pue escribir nel to direutoriu de datos.",
|
||||
"Please ask your server administrator to install the module." : "Pidi a l'alministración del sirvidor qu'instale'l módulu.",
|
||||
"Your data directory is invalid." : "El to direutoriu de datos ye inválidu.",
|
||||
@@ -213,6 +211,8 @@ OC.L10N.register(
|
||||
"Target language" : "Llingua de destín",
|
||||
"Result" : "Resultáu",
|
||||
"Summarizes text by reducing its length without losing key information." : "Resume'l testu amenorgando la so llongura ensin perder la información importante.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Estrái temes d'un testu y devuélvelos separtaos per comes."
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Estrái temes d'un testu y devuélvelos separtaos per comes.",
|
||||
"Application is not enabled" : "L'aplicación nun ta activada",
|
||||
"Authentication error" : "Error de l'autenticación"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+3
-3
@@ -187,8 +187,6 @@
|
||||
"Dec." : "Avi.",
|
||||
"A valid password must be provided" : "Ha fornise una contraseña válida",
|
||||
"a safe home for all your data" : "un llugar seguru pa los datos personales",
|
||||
"Application is not enabled" : "L'aplicación nun ta activada",
|
||||
"Authentication error" : "Error de l'autenticación",
|
||||
"Your data directory is not writable." : "Nun se pue escribir nel to direutoriu de datos.",
|
||||
"Please ask your server administrator to install the module." : "Pidi a l'alministración del sirvidor qu'instale'l módulu.",
|
||||
"Your data directory is invalid." : "El to direutoriu de datos ye inválidu.",
|
||||
@@ -211,6 +209,8 @@
|
||||
"Target language" : "Llingua de destín",
|
||||
"Result" : "Resultáu",
|
||||
"Summarizes text by reducing its length without losing key information." : "Resume'l testu amenorgando la so llongura ensin perder la información importante.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Estrái temes d'un testu y devuélvelos separtaos per comes."
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Estrái temes d'un testu y devuélvelos separtaos per comes.",
|
||||
"Application is not enabled" : "L'aplicación nun ta activada",
|
||||
"Authentication error" : "Error de l'autenticación"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+3
-3
@@ -62,10 +62,10 @@ OC.L10N.register(
|
||||
"Nov." : "Noy.",
|
||||
"Dec." : "Dek.",
|
||||
"A valid password must be provided" : "Düzgün şifrə daxil edilməlidir",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir.",
|
||||
"Summary" : "Xülasə",
|
||||
"Application is not enabled" : "Proqram təminatı aktiv edilməyib",
|
||||
"Authentication error" : "Təyinat metodikası",
|
||||
"Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz.",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir.",
|
||||
"Summary" : "Xülasə"
|
||||
"Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+3
-3
@@ -60,10 +60,10 @@
|
||||
"Nov." : "Noy.",
|
||||
"Dec." : "Dek.",
|
||||
"A valid password must be provided" : "Düzgün şifrə daxil edilməlidir",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir.",
|
||||
"Summary" : "Xülasə",
|
||||
"Application is not enabled" : "Proqram təminatı aktiv edilməyib",
|
||||
"Authentication error" : "Təyinat metodikası",
|
||||
"Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz.",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir.",
|
||||
"Summary" : "Xülasə"
|
||||
"Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -160,9 +160,6 @@ OC.L10N.register(
|
||||
"Account disabled" : "Уліковы запіс адключаны",
|
||||
"Login canceled by app" : "Уваход скасаваны праграмай",
|
||||
"a safe home for all your data" : "бяспечны дом для ўсіх вашых даных",
|
||||
"Application is not enabled" : "Праграма не ўключана",
|
||||
"Authentication error" : "Памылка аўтэнтыфікацыі",
|
||||
"Token expired. Please reload page." : "Токен пратэрмінаваны. Перазагрузіце старонку.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Драйверы баз даных (sqlite, mysql або postgresql) не ўсталяваныя.",
|
||||
"Cannot write into \"config\" directory." : "Немагчыма запісаць у каталог \"config\".",
|
||||
"Cannot create \"data\" directory." : "Немагчыма стварыць каталог \"data\".",
|
||||
@@ -223,6 +220,9 @@ OC.L10N.register(
|
||||
"The desired language to translate the origin text in" : "Пажаданая мова для перакладу зыходнага тэксту",
|
||||
"Result" : "Вынік",
|
||||
"The translated text" : "Перакладзены тэкст",
|
||||
"Generate headline" : "Згенерыраваць загаловак"
|
||||
"Generate headline" : "Згенерыраваць загаловак",
|
||||
"Application is not enabled" : "Праграма не ўключана",
|
||||
"Authentication error" : "Памылка аўтэнтыфікацыі",
|
||||
"Token expired. Please reload page." : "Токен пратэрмінаваны. Перазагрузіце старонку."
|
||||
},
|
||||
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
|
||||
|
||||
+4
-4
@@ -158,9 +158,6 @@
|
||||
"Account disabled" : "Уліковы запіс адключаны",
|
||||
"Login canceled by app" : "Уваход скасаваны праграмай",
|
||||
"a safe home for all your data" : "бяспечны дом для ўсіх вашых даных",
|
||||
"Application is not enabled" : "Праграма не ўключана",
|
||||
"Authentication error" : "Памылка аўтэнтыфікацыі",
|
||||
"Token expired. Please reload page." : "Токен пратэрмінаваны. Перазагрузіце старонку.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Драйверы баз даных (sqlite, mysql або postgresql) не ўсталяваныя.",
|
||||
"Cannot write into \"config\" directory." : "Немагчыма запісаць у каталог \"config\".",
|
||||
"Cannot create \"data\" directory." : "Немагчыма стварыць каталог \"data\".",
|
||||
@@ -221,6 +218,9 @@
|
||||
"The desired language to translate the origin text in" : "Пажаданая мова для перакладу зыходнага тэксту",
|
||||
"Result" : "Вынік",
|
||||
"The translated text" : "Перакладзены тэкст",
|
||||
"Generate headline" : "Згенерыраваць загаловак"
|
||||
"Generate headline" : "Згенерыраваць загаловак",
|
||||
"Application is not enabled" : "Праграма не ўключана",
|
||||
"Authentication error" : "Памылка аўтэнтыфікацыі",
|
||||
"Token expired. Please reload page." : "Токен пратэрмінаваны. Перазагрузіце старонку."
|
||||
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
||||
}
|
||||
+4
-4
@@ -189,9 +189,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Вписването е отказано от приложението",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Приложението „%1$s“ не може да бъде инсталирано, защото следните зависимости не са изпълнени: %2$s",
|
||||
"a safe home for all your data" : "безопасен дом за всички ваши данни",
|
||||
"Application is not enabled" : "Приложението не е включено",
|
||||
"Authentication error" : "Грешка при удостоверяването",
|
||||
"Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).",
|
||||
"Cannot write into \"config\" directory." : "Не може да се пише в \"config\" директория.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Това обикновено може да бъде оправено като, се даде достъп на уеб сървъра да записва в config директорията. Погледнете %s",
|
||||
@@ -235,6 +232,9 @@ OC.L10N.register(
|
||||
"Summary" : "Резюме",
|
||||
"Translate" : "Превод",
|
||||
"Target language" : "Целеви език",
|
||||
"Result" : "Резултат"
|
||||
"Result" : "Резултат",
|
||||
"Application is not enabled" : "Приложението не е включено",
|
||||
"Authentication error" : "Грешка при удостоверяването",
|
||||
"Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+4
-4
@@ -187,9 +187,6 @@
|
||||
"Login canceled by app" : "Вписването е отказано от приложението",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Приложението „%1$s“ не може да бъде инсталирано, защото следните зависимости не са изпълнени: %2$s",
|
||||
"a safe home for all your data" : "безопасен дом за всички ваши данни",
|
||||
"Application is not enabled" : "Приложението не е включено",
|
||||
"Authentication error" : "Грешка при удостоверяването",
|
||||
"Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).",
|
||||
"Cannot write into \"config\" directory." : "Не може да се пише в \"config\" директория.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Това обикновено може да бъде оправено като, се даде достъп на уеб сървъра да записва в config директорията. Погледнете %s",
|
||||
@@ -233,6 +230,9 @@
|
||||
"Summary" : "Резюме",
|
||||
"Translate" : "Превод",
|
||||
"Target language" : "Целеви език",
|
||||
"Result" : "Резултат"
|
||||
"Result" : "Резултат",
|
||||
"Application is not enabled" : "Приложението не е включено",
|
||||
"Authentication error" : "Грешка при удостоверяването",
|
||||
"Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -67,9 +67,6 @@ OC.L10N.register(
|
||||
"Nov." : "Du",
|
||||
"Dec." : "Ker.",
|
||||
"Login canceled by app" : "Mont tre arrestet gant ar meziant",
|
||||
"Application is not enabled" : "N'eo ket aotreet ar meziant",
|
||||
"Authentication error" : "Fazi dilesa",
|
||||
"Token expired. Please reload page." : "Jedouer re gozh. Adkargit ar bajenn.",
|
||||
"PHP module %s not installed." : "Modul %s PHPn n'eo ket staliet.",
|
||||
"Storage connection error. %s" : "Fazi renkañ kenstag. %s",
|
||||
"Storage is temporarily not available" : "N'haller ket tizhout ar skor roadennoù evit ar poent",
|
||||
@@ -77,6 +74,9 @@ OC.L10N.register(
|
||||
"Text" : "Testenn",
|
||||
"Summary" : "Diverrañ",
|
||||
"Translate" : "Treiñ",
|
||||
"Origin text" : "Testenn orin"
|
||||
"Origin text" : "Testenn orin",
|
||||
"Application is not enabled" : "N'eo ket aotreet ar meziant",
|
||||
"Authentication error" : "Fazi dilesa",
|
||||
"Token expired. Please reload page." : "Jedouer re gozh. Adkargit ar bajenn."
|
||||
},
|
||||
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
|
||||
|
||||
+4
-4
@@ -65,9 +65,6 @@
|
||||
"Nov." : "Du",
|
||||
"Dec." : "Ker.",
|
||||
"Login canceled by app" : "Mont tre arrestet gant ar meziant",
|
||||
"Application is not enabled" : "N'eo ket aotreet ar meziant",
|
||||
"Authentication error" : "Fazi dilesa",
|
||||
"Token expired. Please reload page." : "Jedouer re gozh. Adkargit ar bajenn.",
|
||||
"PHP module %s not installed." : "Modul %s PHPn n'eo ket staliet.",
|
||||
"Storage connection error. %s" : "Fazi renkañ kenstag. %s",
|
||||
"Storage is temporarily not available" : "N'haller ket tizhout ar skor roadennoù evit ar poent",
|
||||
@@ -75,6 +72,9 @@
|
||||
"Text" : "Testenn",
|
||||
"Summary" : "Diverrañ",
|
||||
"Translate" : "Treiñ",
|
||||
"Origin text" : "Testenn orin"
|
||||
"Origin text" : "Testenn orin",
|
||||
"Application is not enabled" : "N'eo ket aotreet ar meziant",
|
||||
"Authentication error" : "Fazi dilesa",
|
||||
"Token expired. Please reload page." : "Jedouer re gozh. Adkargit ar bajenn."
|
||||
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
|
||||
}
|
||||
+2
-2
@@ -54,7 +54,7 @@ OC.L10N.register(
|
||||
"Nov." : "Nov.",
|
||||
"Dec." : "Dec.",
|
||||
"A valid password must be provided" : "Nužno je navesti valjanu lozinku",
|
||||
"Authentication error" : "Grešna autentifikacije",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator."
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator.",
|
||||
"Authentication error" : "Grešna autentifikacije"
|
||||
},
|
||||
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@
|
||||
"Nov." : "Nov.",
|
||||
"Dec." : "Dec.",
|
||||
"A valid password must be provided" : "Nužno je navesti valjanu lozinku",
|
||||
"Authentication error" : "Grešna autentifikacije",
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator."
|
||||
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator.",
|
||||
"Authentication error" : "Grešna autentifikacije"
|
||||
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
|
||||
}
|
||||
+4
-4
@@ -274,9 +274,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "L'aplicació ha cancel·lat l'inici de sessió",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "L'aplicació «%1$s» no es pot instal·lar perquè no es compleixen les dependències següents: %2$s",
|
||||
"a safe home for all your data" : "un lloc segur per a totes les vostres dades",
|
||||
"Application is not enabled" : "L'aplicació no està habilitada",
|
||||
"Authentication error" : "Error d'autenticació",
|
||||
"Token expired. Please reload page." : "El testimoni ha caducat. Torneu a carregar la pàgina.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "No s'ha instal·lat cap controlador de bases de dades (sqlite, mysql o postgresql).",
|
||||
"Cannot write into \"config\" directory." : "No es pot escriure en la carpeta «config».",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Això normalment es pot solucionar donant al servidor web accés d'escriptura a la carpeta de configuració. Consulteu %s",
|
||||
@@ -436,6 +433,9 @@ OC.L10N.register(
|
||||
"Runs an arbitrary prompt through the language model." : "Executa una sol·licitud arbitrària mitjançant el model de llengua.",
|
||||
"Generate headline" : "Genera un titular",
|
||||
"Summarizes text by reducing its length without losing key information." : "Resumeix el text reduint-ne la longitud sense perdre la informació clau.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extreu els temes d'un text i els retorna separats per comes."
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extreu els temes d'un text i els retorna separats per comes.",
|
||||
"Application is not enabled" : "L'aplicació no està habilitada",
|
||||
"Authentication error" : "Error d'autenticació",
|
||||
"Token expired. Please reload page." : "El testimoni ha caducat. Torneu a carregar la pàgina."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+4
-4
@@ -272,9 +272,6 @@
|
||||
"Login canceled by app" : "L'aplicació ha cancel·lat l'inici de sessió",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "L'aplicació «%1$s» no es pot instal·lar perquè no es compleixen les dependències següents: %2$s",
|
||||
"a safe home for all your data" : "un lloc segur per a totes les vostres dades",
|
||||
"Application is not enabled" : "L'aplicació no està habilitada",
|
||||
"Authentication error" : "Error d'autenticació",
|
||||
"Token expired. Please reload page." : "El testimoni ha caducat. Torneu a carregar la pàgina.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "No s'ha instal·lat cap controlador de bases de dades (sqlite, mysql o postgresql).",
|
||||
"Cannot write into \"config\" directory." : "No es pot escriure en la carpeta «config».",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Això normalment es pot solucionar donant al servidor web accés d'escriptura a la carpeta de configuració. Consulteu %s",
|
||||
@@ -434,6 +431,9 @@
|
||||
"Runs an arbitrary prompt through the language model." : "Executa una sol·licitud arbitrària mitjançant el model de llengua.",
|
||||
"Generate headline" : "Genera un titular",
|
||||
"Summarizes text by reducing its length without losing key information." : "Resumeix el text reduint-ne la longitud sense perdre la informació clau.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extreu els temes d'un text i els retorna separats per comes."
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extreu els temes d'un text i els retorna separats per comes.",
|
||||
"Application is not enabled" : "L'aplicació no està habilitada",
|
||||
"Authentication error" : "Error d'autenticació",
|
||||
"Token expired. Please reload page." : "El testimoni ha caducat. Torneu a carregar la pàgina."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -285,9 +285,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Přihlášení zrušeno aplikací",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Aplikaci „%1$s“ nelze nainstalovat, protože nejsou splněny následující závislosti: %2$s",
|
||||
"a safe home for all your data" : "bezpečný domov pro všechna vaše data",
|
||||
"Application is not enabled" : "Aplikace není povolena",
|
||||
"Authentication error" : "Chyba při ověřování se",
|
||||
"Token expired. Please reload page." : "Platnost tokenu skončila. Načtěte stránku znovu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Nejsou nainstalovány ovladače databází (sqlite, mysql nebo postresql).",
|
||||
"Cannot write into \"config\" directory." : "Nedaří se zapisovat do adresáře „config“.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Toto obvykle lze vyřešit udělením oprávnění k zápisu do kořenové složky webu pro účet, pod kterým je provozován webový server. Viz %s",
|
||||
@@ -476,6 +473,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "Vytvořit nadpis",
|
||||
"Summarizes text by reducing its length without losing key information." : "Vytvoří stručný souhrn textu tím, že zkrátí jeho délku aniž by byly ztraceny klíčové informace",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Vyzíská témata z textu a vypíše je oddělované čárkami.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "macOS není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "macOS není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!",
|
||||
"Application is not enabled" : "Aplikace není povolena",
|
||||
"Authentication error" : "Chyba při ověřování se",
|
||||
"Token expired. Please reload page." : "Platnost tokenu skončila. Načtěte stránku znovu."
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
+4
-4
@@ -283,9 +283,6 @@
|
||||
"Login canceled by app" : "Přihlášení zrušeno aplikací",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Aplikaci „%1$s“ nelze nainstalovat, protože nejsou splněny následující závislosti: %2$s",
|
||||
"a safe home for all your data" : "bezpečný domov pro všechna vaše data",
|
||||
"Application is not enabled" : "Aplikace není povolena",
|
||||
"Authentication error" : "Chyba při ověřování se",
|
||||
"Token expired. Please reload page." : "Platnost tokenu skončila. Načtěte stránku znovu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Nejsou nainstalovány ovladače databází (sqlite, mysql nebo postresql).",
|
||||
"Cannot write into \"config\" directory." : "Nedaří se zapisovat do adresáře „config“.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Toto obvykle lze vyřešit udělením oprávnění k zápisu do kořenové složky webu pro účet, pod kterým je provozován webový server. Viz %s",
|
||||
@@ -474,6 +471,9 @@
|
||||
"Generate headline" : "Vytvořit nadpis",
|
||||
"Summarizes text by reducing its length without losing key information." : "Vytvoří stručný souhrn textu tím, že zkrátí jeho délku aniž by byly ztraceny klíčové informace",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Vyzíská témata z textu a vypíše je oddělované čárkami.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "macOS není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "macOS není podporován a %s nebude na této platformě správně fungovat. Používejte pouze na vlastní nebezpečí!",
|
||||
"Application is not enabled" : "Aplikace není povolena",
|
||||
"Authentication error" : "Chyba při ověřování se",
|
||||
"Token expired. Please reload page." : "Platnost tokenu skončila. Načtěte stránku znovu."
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
+3
-3
@@ -57,10 +57,10 @@ OC.L10N.register(
|
||||
"Oct." : "Hyd.",
|
||||
"Nov." : "Tach.",
|
||||
"Dec." : "Rhag.",
|
||||
"Summary" : "Crynodeb",
|
||||
"Translate" : "Cyfieithu",
|
||||
"Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
|
||||
"Authentication error" : "Gwall dilysu",
|
||||
"Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen.",
|
||||
"Summary" : "Crynodeb",
|
||||
"Translate" : "Cyfieithu"
|
||||
"Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen."
|
||||
},
|
||||
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
|
||||
|
||||
+3
-3
@@ -55,10 +55,10 @@
|
||||
"Oct." : "Hyd.",
|
||||
"Nov." : "Tach.",
|
||||
"Dec." : "Rhag.",
|
||||
"Summary" : "Crynodeb",
|
||||
"Translate" : "Cyfieithu",
|
||||
"Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
|
||||
"Authentication error" : "Gwall dilysu",
|
||||
"Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen.",
|
||||
"Summary" : "Crynodeb",
|
||||
"Translate" : "Cyfieithu"
|
||||
"Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen."
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
|
||||
}
|
||||
+4
-4
@@ -282,9 +282,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Login annulleret af app",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Appen \"%1$s\" kan ikke installeres, da følgende afhængigheder ikke imødekommes: %2$s",
|
||||
"a safe home for all your data" : "et sikkert hjem til alle dine data",
|
||||
"Application is not enabled" : "Programmet er ikke aktiveret",
|
||||
"Authentication error" : "Adgangsfejl",
|
||||
"Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen database driver (sqlite, mysql eller postgresql) er installeret.",
|
||||
"Cannot write into \"config\" directory." : "Kan ikke skrive til mappen \"config\".",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dette kan som regel ordnes ved at give webserveren skrive adgang til config mappen. Se %s",
|
||||
@@ -467,6 +464,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "Generer overskrift",
|
||||
"Summarizes text by reducing its length without losing key information." : "Opsummerer tekst ved at reducere dens længde uden at miste nøgleinformation.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Uddrager emner fra en tekst og skriver dem adskilt af kommaer.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X understøttes ikke, og %s vil ikke fungere korrekt på denne platform. Brug det på eget ansvar!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X understøttes ikke, og %s vil ikke fungere korrekt på denne platform. Brug det på eget ansvar!",
|
||||
"Application is not enabled" : "Programmet er ikke aktiveret",
|
||||
"Authentication error" : "Adgangsfejl",
|
||||
"Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+4
-4
@@ -280,9 +280,6 @@
|
||||
"Login canceled by app" : "Login annulleret af app",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Appen \"%1$s\" kan ikke installeres, da følgende afhængigheder ikke imødekommes: %2$s",
|
||||
"a safe home for all your data" : "et sikkert hjem til alle dine data",
|
||||
"Application is not enabled" : "Programmet er ikke aktiveret",
|
||||
"Authentication error" : "Adgangsfejl",
|
||||
"Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen database driver (sqlite, mysql eller postgresql) er installeret.",
|
||||
"Cannot write into \"config\" directory." : "Kan ikke skrive til mappen \"config\".",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dette kan som regel ordnes ved at give webserveren skrive adgang til config mappen. Se %s",
|
||||
@@ -465,6 +462,9 @@
|
||||
"Generate headline" : "Generer overskrift",
|
||||
"Summarizes text by reducing its length without losing key information." : "Opsummerer tekst ved at reducere dens længde uden at miste nøgleinformation.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Uddrager emner fra en tekst og skriver dem adskilt af kommaer.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X understøttes ikke, og %s vil ikke fungere korrekt på denne platform. Brug det på eget ansvar!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X understøttes ikke, og %s vil ikke fungere korrekt på denne platform. Brug det på eget ansvar!",
|
||||
"Application is not enabled" : "Programmet er ikke aktiveret",
|
||||
"Authentication error" : "Adgangsfejl",
|
||||
"Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -285,9 +285,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Anmeldung durch die App abgebrochen",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Die App \"%1$s\" kann nicht installiert werden, da die folgenden Abhängigkeiten nicht erfüllt sind: %2$s",
|
||||
"a safe home for all your data" : "ein sicherer Ort für all deine Daten",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MySQL oder PostgreSQL) installiert.",
|
||||
"Cannot write into \"config\" directory." : "Schreiben in das \"config\"-Verzeichnis ist nicht möglich.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dies kann zumeist behoben werden, indem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis eingeräumt wird. Siehe auch %s",
|
||||
@@ -476,6 +473,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "Überschrift erzeugen",
|
||||
"Summarizes text by reducing its length without losing key information." : "Fasst Text zusammen, indem die Länge reduziert wird, ohne dass wichtige Informationen verloren gehen.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extrahiert Themen aus einem Text und gibt sie durch Kommas getrennt aus.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+4
-4
@@ -283,9 +283,6 @@
|
||||
"Login canceled by app" : "Anmeldung durch die App abgebrochen",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Die App \"%1$s\" kann nicht installiert werden, da die folgenden Abhängigkeiten nicht erfüllt sind: %2$s",
|
||||
"a safe home for all your data" : "ein sicherer Ort für all deine Daten",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MySQL oder PostgreSQL) installiert.",
|
||||
"Cannot write into \"config\" directory." : "Schreiben in das \"config\"-Verzeichnis ist nicht möglich.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dies kann zumeist behoben werden, indem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis eingeräumt wird. Siehe auch %s",
|
||||
@@ -474,6 +471,9 @@
|
||||
"Generate headline" : "Überschrift erzeugen",
|
||||
"Summarizes text by reducing its length without losing key information." : "Fasst Text zusammen, indem die Länge reduziert wird, ohne dass wichtige Informationen verloren gehen.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extrahiert Themen aus einem Text und gibt sie durch Kommas getrennt aus.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -285,9 +285,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Anmeldung durch die App abgebrochen",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Die App \"%1$s\" kann nicht installiert werden, da die folgenden Abhängigkeiten nicht erfüllt sind: %2$s",
|
||||
"a safe home for all your data" : "ein sicherer Ort für all Ihre Daten",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MySQL oder PostgreSQL) installiert.",
|
||||
"Cannot write into \"config\" directory." : "Es kann nicht in das Verzeichnis \"config\" geschrieben werden.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dies kann zumeist behoben werden, indem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis eingeräumt wird. Siehe auch %s",
|
||||
@@ -476,6 +473,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "Kopfzeile erzeugen",
|
||||
"Summarizes text by reducing its length without losing key information." : "Fasst Text zusammen, indem die Länge reduziert wird, ohne dass wichtige Informationen verloren gehen.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extrahiert Themen aus einem Text und gibt sie durch Kommas getrennt aus.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
+4
-4
@@ -283,9 +283,6 @@
|
||||
"Login canceled by app" : "Anmeldung durch die App abgebrochen",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Die App \"%1$s\" kann nicht installiert werden, da die folgenden Abhängigkeiten nicht erfüllt sind: %2$s",
|
||||
"a safe home for all your data" : "ein sicherer Ort für all Ihre Daten",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MySQL oder PostgreSQL) installiert.",
|
||||
"Cannot write into \"config\" directory." : "Es kann nicht in das Verzeichnis \"config\" geschrieben werden.",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Dies kann zumeist behoben werden, indem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis eingeräumt wird. Siehe auch %s",
|
||||
@@ -474,6 +471,9 @@
|
||||
"Generate headline" : "Kopfzeile erzeugen",
|
||||
"Summarizes text by reducing its length without losing key information." : "Fasst Text zusammen, indem die Länge reduziert wird, ohne dass wichtige Informationen verloren gehen.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Extrahiert Themen aus einem Text und gibt sie durch Kommas getrennt aus.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Mac OS X wird nicht unterstützt und %s wird unter dieser Plattform nicht richtig funktionieren. Verwendung auf eigene Gefahr!",
|
||||
"Application is not enabled" : "Die Anwendung ist nicht aktiviert",
|
||||
"Authentication error" : "Authentifizierungsfehler",
|
||||
"Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+4
-4
@@ -284,9 +284,6 @@ OC.L10N.register(
|
||||
"Login canceled by app" : "Η είσοδος ακυρώθηκε από την εφαρμογή",
|
||||
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Η εφαρμογή \"%1$s\" δεν μπορεί να εγκατασταθεί επειδή δεν πληρούνται τα προαπαιτούμενα: %2$s",
|
||||
"a safe home for all your data" : "ένα ασφαλές μέρος για όλα τα δεδομένα σας",
|
||||
"Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή",
|
||||
"Authentication error" : "Σφάλμα πιστοποίησης",
|
||||
"Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλούμε φορτώστε ξανά την σελίδα.",
|
||||
"No database drivers (sqlite, mysql, or postgresql) installed." : "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).",
|
||||
"Cannot write into \"config\" directory." : "Δεν είναι δυνατή η εγγραφή στον κατάλογο \"config\".",
|
||||
"This can usually be fixed by giving the web server write access to the config directory. See %s" : "Αυτό μπορεί συνήθως να διορθωθεί δίνοντας στον διακομιστή ιστού δικαιώματα εγγραφής στον κατάλογο config. Δείτε το%s",
|
||||
@@ -470,6 +467,9 @@ OC.L10N.register(
|
||||
"Generate headline" : "Δημιουργία τίτλου",
|
||||
"Summarizes text by reducing its length without losing key information." : "Περιγράφει συνοπτικά το κείμενο μειώνοντας το μήκος του χωρίς να χάνονται βασικές πληροφορίες.",
|
||||
"Extracts topics from a text and outputs them separated by commas." : "Εξάγει θέματα από ένα κείμενο και τα εμφανίζει χωρισμένα με κόμματα.",
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργεί σωστά σε αυτήν την πλατφόρμα. Χρησιμοποιήστε το με δική σας ευθύνη!"
|
||||
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk!" : "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργεί σωστά σε αυτήν την πλατφόρμα. Χρησιμοποιήστε το με δική σας ευθύνη!",
|
||||
"Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή",
|
||||
"Authentication error" : "Σφάλμα πιστοποίησης",
|
||||
"Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλούμε φορτώστε ξανά την σελίδα."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user