Compare commits

...

38 Commits

Author SHA1 Message Date
Côme Chilliet b9c6206c2f chore: Small fixups and fixme comments
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-12 12:11:40 +01:00
Carl Schwan c7fca0071b fixup! refactor: Move base.php to a proper class 2026-03-12 09:30:55 +01:00
Carl Schwan dbc41af77f fixup! refactor: Move base.php to a proper class 2026-03-11 16:36:34 +01:00
Carl Schwan db558a7394 refactor: Move base.php to a proper class
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-10 09:17:04 +01:00
Kate 938b9ba0ac Merge pull request #58800 from nextcloud/ci/rector-apply/ignore-composer-changes 2026-03-09 16:22:37 +01:00
Andy Scherzinger 56eaf1dbcc Merge pull request #58603 from pymnh/feat/extend-group-search-to-teams
feat(UserPlugin): Include teams in group search
2026-03-09 15:17:41 +01:00
Peymaneh 3985555753 feat(UserPlugin): Include teams in group search
Signed-off-by: Peymaneh <peymaneh@posteo.net>
2026-03-09 13:51:27 +01:00
provokateurin fe612bb4dd ci(rector-apply): Ignore composer changes
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-03-09 11:28:15 +01:00
Carl Schwan 2613f3274b Merge pull request #58790 from nextcloud/chore/remove-oc-app-get-current-app
fix: Deprecate OC_App::getCurrentApp and remove its only use
2026-03-09 10:20:08 +01:00
Anna 715d776649 Merge pull request #58229 from nextcloud/fix/noid/improve-preview-scan-performance
perf(preview): bulk process preview regeneration
2026-03-09 09:05:02 +00:00
Nextcloud bot 15591054ac fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-03-09 00:19:53 +00:00
Côme Chilliet b878678562 chore: Adapt tests to TemplateLayout constructor changes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-08 17:57:44 +01:00
Côme Chilliet 521bb9432e fix: Deprecate OC_App::getCurrentApp and remove its only use
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-08 17:00:44 +01:00
Côme Chilliet 6fce5aa3ea Merge pull request #58474 from nextcloud/jtr/chore-drop-OC-JSON
chore: drop OC_JSON
2026-03-08 16:51:12 +01:00
Anna Larch e3c6702cd8 perf(preview): bulk process preview regeneration
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-03-08 11:09:37 +01:00
Nextcloud bot 9cd3177bb4 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-03-08 00:19:13 +00:00
Nextcloud bot 6a29ea172b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-03-07 00:19:22 +00:00
Carl Schwan ed1b0dcd5e Merge pull request #58725 from nextcloud/jtr/docs-config-mount-file-drop
docs(config): drop legacy `mount_file` option
2026-03-06 14:07:44 +01:00
Carl Schwan bd8aff39f2 Merge branch 'master' into jtr/docs-config-mount-file-drop
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2026-03-06 13:39:08 +01:00
Nextcloud bot fc354f46bb fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-03-06 00:20:14 +00:00
Côme Chilliet 7b305fbe22 Merge pull request #58705 from nextcloud/local-custom-cache-prefix
feat: Add memcache_customprefix
2026-03-05 16:05:14 +01:00
Côme Chilliet 8aedcb4a82 Merge pull request #58652 from nextcloud/automated/noid/rector-changes
Apply rector changes
2026-03-05 16:03:50 +01:00
Carl Schwan 01fa73831f Merge pull request #58728 from nextcloud/jtr/docs-config-part-file-in-storage-non-chunking
docs(config): `part_file_in_storage` only applies to non-chunked
2026-03-05 15:28:12 +01:00
Robin Appelman b40d230218 Merge pull request #58723 from nextcloud/jtr/docs-config-fs-cache-RO
docs(config): improve `filesystem_cache_readonly` docs
2026-03-05 14:29:08 +01:00
Ferdinand Thiessen 5d84d79c4b Merge pull request #58550 from nextcloud/dav-open-size-not-found
handle case where we can't get the filesize after open in dav get
2026-03-05 13:24:52 +01:00
Robin Appelman 26ba3cac9c fix: handle case where we can't get the filesize after open in dav get
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-05 11:35:52 +01:00
Joas Schilling 85b0dcca27 Merge pull request #58664 from nextcloud/bugfix/noid/workflowengine-fix-checks-list
fix(workflowengine): Fix list of checks being a list instead of array…
2026-03-05 10:49:46 +01:00
Josh f3ceded754 docs(config): clarify part_file_in_storage only applies to non-chunked
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-04 12:47:25 -05:00
Josh 052d62b83c docs(config): make cs happy fixup
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-04 11:41:36 -05:00
Josh ceb1b7e767 docs(config): drop legacy mount_file option
All logic that used this was completely removed as of #30991

Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-04 11:37:18 -05:00
Josh 2faa5e894b docs(config): improve filesystem_cache_readonly docs
- Add more extensive explanation
- Explain interaction/relation to more commonly used option: `filesystem_check_changes`
- Add warning

Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-04 10:22:11 -05:00
Martin 2a2f42e781 feat: Add memcache_customprefix
Signed-off-by: Martin <31348196+Earl0fPudding@users.noreply.github.com>
2026-03-04 00:19:19 +01:00
Joas Schilling 1bc0bd7611 fix(workflowengine): Fix list of checks being a list instead of array<int, …>
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-02 14:17:51 +01:00
Carl Schwan 4588c7134d fix: Fix ci after run of rector
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-01 22:48:25 +01:00
nextcloud-command 663018455e refactor: Apply rector changes
Signed-off-by: GitHub <noreply@github.com>
2026-03-01 14:43:11 +00:00
Josh 2475a0bb19 chore(autoload_classmap): drop OC_JSON
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-02-20 16:58:21 -05:00
Josh 7f9b9e9104 chore(autoload_static): drop OC_JSON
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-02-20 16:57:45 -05:00
Josh aad7571502 chore: drop OC_JSON
Closes #8568

Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-02-20 16:56:24 -05:00
303 changed files with 3504 additions and 2612 deletions
+1
View File
@@ -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
+1 -1
View File
@@ -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());
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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(),
];
}
+1 -1
View File
@@ -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()) {
+6 -2
View File
@@ -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')
+10
View File
@@ -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",
+10
View File
@@ -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);
}
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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}",
+1
View File
@@ -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}",
+7
View File
@@ -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}",
+7
View File
@@ -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}",
+1
View File
@@ -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",
+1
View File
@@ -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",
+1
View File
@@ -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} 圖像",
+1
View File
@@ -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} 圖像",
+2 -2
View File
@@ -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']);
+28
View File
@@ -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",
+28
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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]);
+2 -1
View File
@@ -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();
+3 -2
View File
@@ -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',
+3
View File
@@ -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",
+3
View File
@@ -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');
+2 -1
View File
@@ -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]);
}
+3 -2
View File
@@ -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);
}
+1 -2
View File
@@ -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) ?? [];
-16
View File
@@ -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
View File
@@ -96,5 +96,5 @@
"platform-overrides": {
"php": "8.2"
},
"plugin-api-version": "2.6.0"
"plugin-api-version": "2.9.0"
}
+50 -14
View File
@@ -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
View File
@@ -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']);
+3 -4
View File
@@ -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;
+5 -3
View File
@@ -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,
[
+15 -13
View File
@@ -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'));
}
/**
+1
View File
@@ -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",
+1
View File
@@ -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",
+6
View File
@@ -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",
+6
View File
@@ -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 -92
View File
@@ -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
View File
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',
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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