diff options
Diffstat (limited to 'apps')
51 files changed, 320 insertions, 246 deletions
diff --git a/apps/accessibility/l10n/uk.js b/apps/accessibility/l10n/uk.js index 2f8986b9dd9..4e3cadcb63c 100644 --- a/apps/accessibility/l10n/uk.js +++ b/apps/accessibility/l10n/uk.js @@ -2,11 +2,11 @@ OC.L10N.register( "accessibility", { "Dark theme" : "Темна тема", - "Enable dark theme" : "Дозволити темну тему", + "Enable dark theme" : "Увімкнути темну тему", "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Темна тема зменшує навантаження на очі завдяки зменшенню освітлення та яскравості. Вона ще в процесі розробки, тож повідомляйте, будь-ласка, про будь-які проблеми, з якими ви можете зіткнутись.", "High contrast mode" : "Висококонтрастний режим", "Enable high contrast mode" : "Увімкнути висококонтрастний режим", - "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Контрастна тема спрощує Вашу навігацію. Знижена візуальна якість, проте підвищена ясність і зрозумілість.", + "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Висококонтрастний режим спрощує Вашу навігацію. Візуальна якість буде знижена, але чіткість підвищиться..", "Dyslexia font" : "Шрифт для людей, які страждають від дислексії", "Enable dyslexia font" : "Увімкнути шрифт для людей, які страждають від дислексії", "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic - це вільно доступний шрифт, що було розроблено для уникнення деяких загальних помилок, що спричинені дизлексією.", diff --git a/apps/accessibility/l10n/uk.json b/apps/accessibility/l10n/uk.json index ee23ae2528f..5efad2dacfe 100644 --- a/apps/accessibility/l10n/uk.json +++ b/apps/accessibility/l10n/uk.json @@ -1,10 +1,10 @@ { "translations": { "Dark theme" : "Темна тема", - "Enable dark theme" : "Дозволити темну тему", + "Enable dark theme" : "Увімкнути темну тему", "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Темна тема зменшує навантаження на очі завдяки зменшенню освітлення та яскравості. Вона ще в процесі розробки, тож повідомляйте, будь-ласка, про будь-які проблеми, з якими ви можете зіткнутись.", "High contrast mode" : "Висококонтрастний режим", "Enable high contrast mode" : "Увімкнути висококонтрастний режим", - "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Контрастна тема спрощує Вашу навігацію. Знижена візуальна якість, проте підвищена ясність і зрозумілість.", + "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Висококонтрастний режим спрощує Вашу навігацію. Візуальна якість буде знижена, але чіткість підвищиться..", "Dyslexia font" : "Шрифт для людей, які страждають від дислексії", "Enable dyslexia font" : "Увімкнути шрифт для людей, які страждають від дислексії", "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic - це вільно доступний шрифт, що було розроблено для уникнення деяких загальних помилок, що спричинені дизлексією.", diff --git a/apps/comments/l10n/it.js b/apps/comments/l10n/it.js index bf4974ebe37..e8744372996 100644 --- a/apps/comments/l10n/it.js +++ b/apps/comments/l10n/it.js @@ -10,6 +10,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s ha commentato %2$s", "{author} commented on {file}" : "{author} ha commentato su {file}", "<strong>Comments</strong> for files" : "<strong>Commenti</strong> sui file", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sei stato menzionato su \"{file}\", in un commento di un utente che è stato eliminato", + "{user} mentioned you in a comment on \"{file}\"" : "{user} ti ha menzionato in un commento su \"{file}\"", "Files app plugin to add comments to files" : "Estensione dell'applicazione File per aggiungere commenti ai file", "Edit comment" : "Modifica commento", "Delete comment" : "Elimina commento", diff --git a/apps/comments/l10n/it.json b/apps/comments/l10n/it.json index daa5afeb87c..139b7b75832 100644 --- a/apps/comments/l10n/it.json +++ b/apps/comments/l10n/it.json @@ -8,6 +8,8 @@ "%1$s commented on %2$s" : "%1$s ha commentato %2$s", "{author} commented on {file}" : "{author} ha commentato su {file}", "<strong>Comments</strong> for files" : "<strong>Commenti</strong> sui file", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sei stato menzionato su \"{file}\", in un commento di un utente che è stato eliminato", + "{user} mentioned you in a comment on \"{file}\"" : "{user} ti ha menzionato in un commento su \"{file}\"", "Files app plugin to add comments to files" : "Estensione dell'applicazione File per aggiungere commenti ai file", "Edit comment" : "Modifica commento", "Delete comment" : "Elimina commento", diff --git a/apps/dav/src/views/Availability.vue b/apps/dav/src/views/Availability.vue index d826ca3e57f..62915810042 100644 --- a/apps/dav/src/views/Availability.vue +++ b/apps/dav/src/views/Availability.vue @@ -6,7 +6,7 @@ </p> <div class="time-zone"> <strong> - {{ $t('calendar', 'Time zone:') }} + {{ $t('dav', 'Time zone:') }} </strong> <span class="time-zone-text"> <TimezonePicker v-model="timezone" /> diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php index e43e5dd08e8..8a48d4fbe1f 100644 --- a/apps/files/ajax/list.php +++ b/apps/files/ajax/list.php @@ -38,7 +38,7 @@ $dir = \OC\Files\Filesystem::normalizePath($dir); try { $dirInfo = \OC\Files\Filesystem::getFileInfo($dir); - if (!$dirInfo || !$dirInfo->getType() === 'dir') { + if (!$dirInfo || $dirInfo->getType() !== 'dir') { http_response_code(404); exit(); } diff --git a/apps/files/src/views/Sidebar.vue b/apps/files/src/views/Sidebar.vue index a83cb8640eb..372a5b2c164 100644 --- a/apps/files/src/views/Sidebar.vue +++ b/apps/files/src/views/Sidebar.vue @@ -81,6 +81,7 @@ import $ from 'jquery' import axios from '@nextcloud/axios' import { emit } from '@nextcloud/event-bus' import moment from '@nextcloud/moment' +import { Type as ShareTypes } from '@nextcloud/sharing' import AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar' import ActionButton from '@nextcloud/vue/dist/Components/ActionButton' @@ -323,8 +324,8 @@ export default { } else if (fileInfo.mountType !== undefined && fileInfo.mountType !== '') { return OC.MimeType.getIconUrl('dir-' + fileInfo.mountType) } else if (fileInfo.shareTypes && ( - fileInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) > -1 - || fileInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_EMAIL) > -1) + fileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) > -1 + || fileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_EMAIL) > -1) ) { return OC.MimeType.getIconUrl('dir-public') } else if (fileInfo.shareTypes && fileInfo.shareTypes.length > 0) { diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index f85f76339aa..80aa2a2bc81 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -41,6 +41,7 @@ OC.L10N.register( "Credentials saved" : "Credenziali salvate", "Credentials saving failed" : "Salvataggio delle credenziali non riuscito", "Credentials required" : "Credenziali richieste", + "Forbidden to manage local mounts" : "Gestione dei mount locali proibita", "Storage with ID \"%d\" not found" : "Archiviazione con ID \"%d\" non trovata", "Invalid backend or authentication mechanism class" : "Motore o classe del meccanismo di autenticazione non valido", "Invalid mount point" : "Punto di mount non valido", @@ -80,6 +81,8 @@ OC.L10N.register( "Public key" : "Chiave pubblica", "RSA private key" : "Chiave privata RSA", "Private key" : "Chiave privata", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Regno predefinito di Kerberos, predefinito su \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Modalità Apache ticket Kerberos", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Bucket", @@ -137,6 +140,7 @@ OC.L10N.register( "External storages" : "Archiviazioni esterne", "(group)" : "(gruppo)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC" + "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC", + "Kerberos ticket apache mode" : "Modalità apache ticket Kerberos" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index dc5accfdd2e..94b3f95731c 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -39,6 +39,7 @@ "Credentials saved" : "Credenziali salvate", "Credentials saving failed" : "Salvataggio delle credenziali non riuscito", "Credentials required" : "Credenziali richieste", + "Forbidden to manage local mounts" : "Gestione dei mount locali proibita", "Storage with ID \"%d\" not found" : "Archiviazione con ID \"%d\" non trovata", "Invalid backend or authentication mechanism class" : "Motore o classe del meccanismo di autenticazione non valido", "Invalid mount point" : "Punto di mount non valido", @@ -78,6 +79,8 @@ "Public key" : "Chiave pubblica", "RSA private key" : "Chiave privata RSA", "Private key" : "Chiave privata", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Regno predefinito di Kerberos, predefinito su \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Modalità Apache ticket Kerberos", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Bucket", @@ -135,6 +138,7 @@ "External storages" : "Archiviazioni esterne", "(group)" : "(gruppo)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC" + "SMB / CIFS using OC login" : "SMB / CIFS utilizzando le credenziali di OC", + "Kerberos ticket apache mode" : "Modalità apache ticket Kerberos" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js index 546d2f4e0d8..8dc03421e51 100644 --- a/apps/files_external/l10n/pl.js +++ b/apps/files_external/l10n/pl.js @@ -6,7 +6,7 @@ OC.L10N.register( "System" : "System", "Grant access" : "Udziel dostępu", "Error configuring OAuth1" : "Błąd konfiguracji OAuth1", - "Please provide a valid app key and secret." : "Podaj prawidłowy klucz aplikacji i klucz sekretny.", + "Please provide a valid app key and secret." : "Podaj prawidłowy klucz aplikacji i tajny klucz.", "Error configuring OAuth2" : "Błąd konfiguracji OAuth2", "Generate keys" : "Wygeneruj klucze", "Error generating key pair" : "Błąd podczas generowania pary kluczy", @@ -55,15 +55,15 @@ OC.L10N.register( "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Magazyn o ID \"%d\" nie może być edytowany przez użytkownika", "Access key" : "Klucz dostępu", - "Secret key" : "Sekretny klucz", + "Secret key" : "Tajny klucz", "Builtin" : "Wbudowane", "None" : "Nic", "OAuth1" : "OAuth1", "App key" : "Klucz aplikacji", - "App secret" : "Sekret aplikacji", + "App secret" : "Tajny klucz aplikacji", "OAuth2" : "OAuth2", "Client ID" : "ID klienta", - "Client secret" : "Sekret klienta", + "Client secret" : "Tajny klucz klienta", "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nazwa dzierżawcy", "Identity endpoint URL" : "Adres URL punktu końcowego tożsamości", @@ -104,7 +104,7 @@ OC.L10N.register( "Nextcloud" : "Nextcloud", "SFTP" : "SFTP", "Root" : "Root", - "SFTP with secret key login" : "Logowanie sekretnym kluczem do SFTP", + "SFTP with secret key login" : "Logowanie tajnym kluczem do SFTP", "SMB/CIFS" : "SMB/CIFS", "Share" : "Udostępnij", "Show hidden files" : "Pokaż ukryte pliki", diff --git a/apps/files_external/l10n/pl.json b/apps/files_external/l10n/pl.json index 3dd18c18a7c..aff4e8d8e91 100644 --- a/apps/files_external/l10n/pl.json +++ b/apps/files_external/l10n/pl.json @@ -4,7 +4,7 @@ "System" : "System", "Grant access" : "Udziel dostępu", "Error configuring OAuth1" : "Błąd konfiguracji OAuth1", - "Please provide a valid app key and secret." : "Podaj prawidłowy klucz aplikacji i klucz sekretny.", + "Please provide a valid app key and secret." : "Podaj prawidłowy klucz aplikacji i tajny klucz.", "Error configuring OAuth2" : "Błąd konfiguracji OAuth2", "Generate keys" : "Wygeneruj klucze", "Error generating key pair" : "Błąd podczas generowania pary kluczy", @@ -53,15 +53,15 @@ "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Magazyn o ID \"%d\" nie może być edytowany przez użytkownika", "Access key" : "Klucz dostępu", - "Secret key" : "Sekretny klucz", + "Secret key" : "Tajny klucz", "Builtin" : "Wbudowane", "None" : "Nic", "OAuth1" : "OAuth1", "App key" : "Klucz aplikacji", - "App secret" : "Sekret aplikacji", + "App secret" : "Tajny klucz aplikacji", "OAuth2" : "OAuth2", "Client ID" : "ID klienta", - "Client secret" : "Sekret klienta", + "Client secret" : "Tajny klucz klienta", "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nazwa dzierżawcy", "Identity endpoint URL" : "Adres URL punktu końcowego tożsamości", @@ -102,7 +102,7 @@ "Nextcloud" : "Nextcloud", "SFTP" : "SFTP", "Root" : "Root", - "SFTP with secret key login" : "Logowanie sekretnym kluczem do SFTP", + "SFTP with secret key login" : "Logowanie tajnym kluczem do SFTP", "SMB/CIFS" : "SMB/CIFS", "Share" : "Udostępnij", "Show hidden files" : "Pokaż ukryte pliki", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index eea6efa7527..7e3c58addf2 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -81,6 +81,8 @@ OC.L10N.register( "Public key" : "Chave pública", "RSA private key" : "Chave privada RSA", "Private key" : "Chave privada", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Cesta", @@ -138,6 +140,7 @@ OC.L10N.register( "External storages" : "Armazenamentos externos", "(group)" : "(grupo)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS usando OC login" + "SMB / CIFS using OC login" : "SMB / CIFS usando OC login", + "Kerberos ticket apache mode" : "Modo apache de tíquete Kerberos" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index 12b0cf2ee81..f419de275d2 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -79,6 +79,8 @@ "Public key" : "Chave pública", "RSA private key" : "Chave privada RSA", "Private key" : "Chave privada", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"", + "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache", "Kerberos ticket" : "Ticket Kerberos", "Amazon S3" : "Amazon S3", "Bucket" : "Cesta", @@ -136,6 +138,7 @@ "External storages" : "Armazenamentos externos", "(group)" : "(grupo)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS usando OC login" + "SMB / CIFS using OC login" : "SMB / CIFS usando OC login", + "Kerberos ticket apache mode" : "Modo apache de tíquete Kerberos" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js index 6bbc73beb45..18c635049e3 100644 --- a/apps/files_external/l10n/ru.js +++ b/apps/files_external/l10n/ru.js @@ -41,6 +41,7 @@ OC.L10N.register( "Credentials saved" : "Учётные данные сохранены", "Credentials saving failed" : "Ошибка сохранения учётных данных", "Credentials required" : "Требуются учётные данные", + "Forbidden to manage local mounts" : "Запрещено изменять параметры подключения файловых систем", "Storage with ID \"%d\" not found" : "Хранилище с идентификатором «%d» не найдено", "Invalid backend or authentication mechanism class" : "Некорректный механизм авторизации или бэкенд", "Invalid mount point" : "Неверная точка подключения", @@ -80,6 +81,8 @@ OC.L10N.register( "Public key" : "Открытый ключ", "RSA private key" : "Закрытый ключ RSA", "Private key" : "Закрытый ключ", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Используемая по умолчанию область Kerberos (если не задано, будет использоваться область «WORKGROUP»)", + "Kerberos ticket Apache mode" : "Режим Kerberos с авторизацией через Apache", "Kerberos ticket" : "Kerberos тикет", "Amazon S3" : "Amazon S3", "Bucket" : "Корзина", @@ -102,11 +105,13 @@ OC.L10N.register( "SFTP" : "SFTP", "Root" : "Корневой каталог", "SFTP with secret key login" : "SFTP с входом при помощи закрытого ключа", + "SMB/CIFS" : "SMB/CIFS", "Share" : "Общий ресурс", "Show hidden files" : "Показать скрытые файлы", "Verify ACL access when listing files" : "Проверять права ACL при получении списка файлов", "Check the ACL's of each file or folder inside a directory to filter out items where the user has no read permissions, comes with a performance penalty" : "При получении списка файлов возможно проверять права доступа и исключать из списка файлы, к которым отсутствуют права чтения. Такая проверка снижает производительность.", "Timeout" : "Тайм-аут", + "SMB/CIFS using OC login" : "SMB/CIFS с использованием реквизитов входа", "Username as share" : "Имя пользователя в качестве имени общего ресурса", "OpenStack Object Storage" : "Хранилище объектов OpenStack", "Service name" : "Название сервиса", @@ -135,6 +140,7 @@ OC.L10N.register( "External storages" : "Внешние хранилища", "(group)" : "(группа)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS с использованием логина OC" + "SMB / CIFS using OC login" : "SMB / CIFS с использованием логина OC", + "Kerberos ticket apache mode" : "Режим Kerberos с авторизацией через Apache" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json index 807d9e62c3d..0423c08a8bc 100644 --- a/apps/files_external/l10n/ru.json +++ b/apps/files_external/l10n/ru.json @@ -39,6 +39,7 @@ "Credentials saved" : "Учётные данные сохранены", "Credentials saving failed" : "Ошибка сохранения учётных данных", "Credentials required" : "Требуются учётные данные", + "Forbidden to manage local mounts" : "Запрещено изменять параметры подключения файловых систем", "Storage with ID \"%d\" not found" : "Хранилище с идентификатором «%d» не найдено", "Invalid backend or authentication mechanism class" : "Некорректный механизм авторизации или бэкенд", "Invalid mount point" : "Неверная точка подключения", @@ -78,6 +79,8 @@ "Public key" : "Открытый ключ", "RSA private key" : "Закрытый ключ RSA", "Private key" : "Закрытый ключ", + "Kerberos default realm, defaults to \"WORKGROUP\"" : "Используемая по умолчанию область Kerberos (если не задано, будет использоваться область «WORKGROUP»)", + "Kerberos ticket Apache mode" : "Режим Kerberos с авторизацией через Apache", "Kerberos ticket" : "Kerberos тикет", "Amazon S3" : "Amazon S3", "Bucket" : "Корзина", @@ -100,11 +103,13 @@ "SFTP" : "SFTP", "Root" : "Корневой каталог", "SFTP with secret key login" : "SFTP с входом при помощи закрытого ключа", + "SMB/CIFS" : "SMB/CIFS", "Share" : "Общий ресурс", "Show hidden files" : "Показать скрытые файлы", "Verify ACL access when listing files" : "Проверять права ACL при получении списка файлов", "Check the ACL's of each file or folder inside a directory to filter out items where the user has no read permissions, comes with a performance penalty" : "При получении списка файлов возможно проверять права доступа и исключать из списка файлы, к которым отсутствуют права чтения. Такая проверка снижает производительность.", "Timeout" : "Тайм-аут", + "SMB/CIFS using OC login" : "SMB/CIFS с использованием реквизитов входа", "Username as share" : "Имя пользователя в качестве имени общего ресурса", "OpenStack Object Storage" : "Хранилище объектов OpenStack", "Service name" : "Название сервиса", @@ -133,6 +138,7 @@ "External storages" : "Внешние хранилища", "(group)" : "(группа)", "SMB / CIFS" : "SMB / CIFS", - "SMB / CIFS using OC login" : "SMB / CIFS с использованием логина OC" + "SMB / CIFS using OC login" : "SMB / CIFS с использованием логина OC", + "Kerberos ticket apache mode" : "Режим Kerberos с авторизацией через Apache" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_external/lib/Lib/Backend/SMB.php b/apps/files_external/lib/Lib/Backend/SMB.php index 70eaa206483..bf73c5b40f8 100644 --- a/apps/files_external/lib/Lib/Backend/SMB.php +++ b/apps/files_external/lib/Lib/Backend/SMB.php @@ -112,7 +112,7 @@ class SMB extends Backend { $username = $user; $workgroup = $realm; } else { - $username = $matches[1];; + $username = $matches[1]; $workgroup = $matches[2]; } $smbAuth = new BasicAuth( diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue index 5a49a1d4976..9fefa9b6f90 100644 --- a/apps/files_sharing/src/components/SharingEntryLink.vue +++ b/apps/files_sharing/src/components/SharingEntryLink.vue @@ -329,6 +329,7 @@ <script> import { generateUrl } from '@nextcloud/router' +import { Type as ShareTypes } from '@nextcloud/sharing' import Vue from 'vue' import ActionButton from '@nextcloud/vue/dist/Components/ActionButton' @@ -662,8 +663,8 @@ export default { externalLinkActions() { // filter only the registered actions for said link return this.ExternalShareActions.actions - .filter(action => action.shareType.includes(OC.Share.SHARE_TYPE_LINK) - || action.shareType.includes(OC.Share.SHARE_TYPE_EMAIL)) + .filter(action => action.shareType.includes(ShareTypes.SHARE_TYPE_LINK) + || action.shareType.includes(ShareTypes.SHARE_TYPE_EMAIL)) }, isPasswordPolicyEnabled() { @@ -682,7 +683,7 @@ export default { } const shareDefaults = { - share_type: OC.Share.SHARE_TYPE_LINK, + share_type: ShareTypes.SHARE_TYPE_LINK, } if (this.config.isDefaultExpireDateEnforced) { // default is empty string if not set @@ -756,7 +757,7 @@ export default { const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/') const newShare = await this.createShare({ path, - shareType: OC.Share.SHARE_TYPE_LINK, + shareType: ShareTypes.SHARE_TYPE_LINK, password: share.password, expireDate: share.expireDate, // we do not allow setting the publicUpload diff --git a/apps/files_sharing/src/mixins/ShareTypes.js b/apps/files_sharing/src/mixins/ShareTypes.js index c743846cb85..8b85f63f456 100644 --- a/apps/files_sharing/src/mixins/ShareTypes.js +++ b/apps/files_sharing/src/mixins/ShareTypes.js @@ -21,21 +21,12 @@ * */ +import { Type as ShareTypes } from '@nextcloud/sharing' + export default { data() { return { - SHARE_TYPES: { - SHARE_TYPE_USER: OC.Share.SHARE_TYPE_USER, - SHARE_TYPE_GROUP: OC.Share.SHARE_TYPE_GROUP, - SHARE_TYPE_LINK: OC.Share.SHARE_TYPE_LINK, - SHARE_TYPE_EMAIL: OC.Share.SHARE_TYPE_EMAIL, - SHARE_TYPE_REMOTE: OC.Share.SHARE_TYPE_REMOTE, - SHARE_TYPE_CIRCLE: OC.Share.SHARE_TYPE_CIRCLE, - SHARE_TYPE_GUEST: OC.Share.SHARE_TYPE_GUEST, - SHARE_TYPE_DECK: OC.Share.SHARE_TYPE_DECK, - SHARE_TYPE_REMOTE_GROUP: OC.Share.SHARE_TYPE_REMOTE_GROUP, - SHARE_TYPE_ROOM: OC.Share.SHARE_TYPE_ROOM, - }, + SHARE_TYPES: ShareTypes, } }, } diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index 73ac60551a2..950b0355175 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -75,18 +75,6 @@ export default { * ! do not remove it ot you'll lose all reactivity here */ reactiveState: this.share?.state, - - SHARE_TYPES: { - SHARE_TYPE_USER: OC.Share.SHARE_TYPE_USER, - SHARE_TYPE_GROUP: OC.Share.SHARE_TYPE_GROUP, - SHARE_TYPE_LINK: OC.Share.SHARE_TYPE_LINK, - SHARE_TYPE_EMAIL: OC.Share.SHARE_TYPE_EMAIL, - SHARE_TYPE_REMOTE: OC.Share.SHARE_TYPE_REMOTE, - SHARE_TYPE_CIRCLE: OC.Share.SHARE_TYPE_CIRCLE, - SHARE_TYPE_GUEST: OC.Share.SHARE_TYPE_GUEST, - SHARE_TYPE_REMOTE_GROUP: OC.Share.SHARE_TYPE_REMOTE_GROUP, - SHARE_TYPE_ROOM: OC.Share.SHARE_TYPE_ROOM, - }, } }, diff --git a/apps/files_sharing/src/services/ExternalShareActions.js b/apps/files_sharing/src/services/ExternalShareActions.js index 5d64c97ba70..6167346699e 100644 --- a/apps/files_sharing/src/services/ExternalShareActions.js +++ b/apps/files_sharing/src/services/ExternalShareActions.js @@ -50,7 +50,7 @@ export default class ExternalShareActions { * @param {object} action new action component to register * @param {string} action.id unique action id * @param {Function} action.data data to bind the component to - * @param {Array} action.shareType list of OC.Share.SHARE_XXX to be mounted on + * @param {Array} action.shareType list of \@nextcloud/sharing.Types.SHARE_XXX to be mounted on * @param {object} action.handlers list of listeners * @return {boolean} */ @@ -59,7 +59,7 @@ export default class ExternalShareActions { if (typeof action !== 'object' || typeof action.id !== 'string' || typeof action.data !== 'function' // () => {disabled: true} - || !Array.isArray(action.shareType) // [OC.Share.SHARE_TYPE_LINK, ...] + || !Array.isArray(action.shareType) // [\@nextcloud/sharing.Types.SHARE_TYPE_LINK, ...] || typeof action.handlers !== 'object' // {click: () => {}, ...} || !Object.values(action.handlers).every(handler => typeof handler === 'function')) { console.error('Invalid action provided', action) diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js index f377c07c4a5..c533e7b8109 100644 --- a/apps/files_sharing/src/share.js +++ b/apps/files_sharing/src/share.js @@ -35,6 +35,9 @@ /* eslint-disable */ import escapeHTML from 'escape-html' +import { Type as ShareTypes } from '@nextcloud/sharing' +import { getCapabilities } from '@nextcloud/capabilities' + (function() { _.extend(OC.Files.Client, { @@ -70,7 +73,7 @@ import escapeHTML from 'escape-html' */ attach: function(fileList) { // core sharing is disabled/not loaded - if (!OC.Share) { + if (!getCapabilities().files_sharing?.api_enabled) { return } if (fileList.id === 'trashbin' || fileList.id === 'files.public') { @@ -164,30 +167,30 @@ import escapeHTML from 'escape-html' _.each($files, function(file) { var $tr = $(file) - var shareTypes = $tr.attr('data-share-types') || '' + var shareTypesStr = $tr.attr('data-share-types') || '' var shareOwner = $tr.attr('data-share-owner') - if (shareTypes || shareOwner) { + if (shareTypesStr || shareOwner) { var hasLink = false var hasShares = false - _.each(shareTypes.split(',') || [], function(shareType) { - shareType = parseInt(shareType, 10) - if (shareType === OC.Share.SHARE_TYPE_LINK) { + _.each(shareTypesStr.split(',') || [], function(shareTypeStr) { + let shareType = parseInt(shareTypeStr, 10) + if (shareType === ShareTypes.SHARE_TYPE_LINK) { hasLink = true - } else if (shareType === OC.Share.SHARE_TYPE_EMAIL) { + } else if (shareType === ShareTypes.SHARE_TYPE_EMAIL) { hasLink = true - } else if (shareType === OC.Share.SHARE_TYPE_USER) { + } else if (shareType === ShareTypes.SHARE_TYPE_USER) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_GROUP) { + } else if (shareType === ShareTypes.SHARE_TYPE_GROUP) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_REMOTE) { + } else if (shareType === ShareTypes.SHARE_TYPE_REMOTE) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) { + } else if (shareType === ShareTypes.SHARE_TYPE_REMOTE_GROUP) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) { + } else if (shareType === ShareTypes.SHARE_TYPE_CIRCLE) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_ROOM) { + } else if (shareType === ShareTypes.SHARE_TYPE_ROOM) { hasShares = true - } else if (shareType === OC.Share.SHARE_TYPE_DECK) { + } else if (shareType === ShareTypes.SHARE_TYPE_DECK) { hasShares = true } }) @@ -218,8 +221,8 @@ import escapeHTML from 'escape-html' permissions: OC.PERMISSION_ALL, iconClass: function(fileName, context) { var shareType = parseInt(context.$file.data('share-types'), 10) - if (shareType === OC.Share.SHARE_TYPE_EMAIL - || shareType === OC.Share.SHARE_TYPE_LINK) { + if (shareType === ShareTypes.SHARE_TYPE_EMAIL + || shareType === ShareTypes.SHARE_TYPE_LINK) { return 'icon-public' } return 'icon-shared' diff --git a/apps/files_sharing/src/sharebreadcrumbview.js b/apps/files_sharing/src/sharebreadcrumbview.js index 6addbb592ac..ef04c9c029d 100644 --- a/apps/files_sharing/src/sharebreadcrumbview.js +++ b/apps/files_sharing/src/sharebreadcrumbview.js @@ -22,6 +22,8 @@ * */ +import { Type as ShareTypes } from '@nextcloud/sharing' + (function() { 'use strict' @@ -40,7 +42,7 @@ this.$el.removeClass('shared icon-public icon-shared') if (isShared) { this.$el.addClass('shared') - if (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) { + if (data.dirInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) !== -1) { this.$el.addClass('icon-public') } else { this.$el.addClass('icon-shared') diff --git a/apps/files_sharing/src/utils/SharedWithMe.js b/apps/files_sharing/src/utils/SharedWithMe.js index 9a063e423cf..bd39c765221 100644 --- a/apps/files_sharing/src/utils/SharedWithMe.js +++ b/apps/files_sharing/src/utils/SharedWithMe.js @@ -21,8 +21,10 @@ * */ +import { Type as ShareTypes } from '@nextcloud/sharing' + const shareWithTitle = function(share) { - if (share.type === OC.Share.SHARE_TYPE_GROUP) { + if (share.type === ShareTypes.SHARE_TYPE_GROUP) { return t( 'files_sharing', 'Shared with you and the group {group} by {owner}', @@ -33,7 +35,7 @@ const shareWithTitle = function(share) { undefined, { escape: false } ) - } else if (share.type === OC.Share.SHARE_TYPE_CIRCLE) { + } else if (share.type === ShareTypes.SHARE_TYPE_CIRCLE) { return t( 'files_sharing', 'Shared with you and {circle} by {owner}', @@ -44,7 +46,7 @@ const shareWithTitle = function(share) { undefined, { escape: false } ) - } else if (share.type === OC.Share.SHARE_TYPE_ROOM) { + } else if (share.type === ShareTypes.SHARE_TYPE_ROOM) { if (share.shareWithDisplayName) { return t( 'files_sharing', diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js index 269ded30d1d..cd6bb6cf461 100644 --- a/apps/files_trashbin/l10n/ru.js +++ b/apps/files_trashbin/l10n/ru.js @@ -8,6 +8,10 @@ OC.L10N.register( "Restore" : "Восстановить", "Delete permanently" : "Окончательно удалить", "Error while restoring file from trash bin" : "Произошла ошибка при попытке восстановить файл из корзины", + "Error while removing file from trash bin" : "Ошибка при попытке удалить файл из корзины", + "Error while restoring files from trash bin" : "Ошибка при попытке восстановить файл из корзины", + "Error while emptying trash bin" : "Ошибка при попытке очистить корзину", + "Error while removing files from trash bin" : "Ошибка при попытке удалить файлы из корзины", "This operation is forbidden" : "Операция запрещена", "This directory is unavailable, please check the logs or contact the administrator" : "Этот каталог недоступен. Проверьте системные журналы или свяжитесь с администратором", "No deleted files" : "Нет удалённых файлов", diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json index ea7fee68f5c..6ac6e875ddd 100644 --- a/apps/files_trashbin/l10n/ru.json +++ b/apps/files_trashbin/l10n/ru.json @@ -6,6 +6,10 @@ "Restore" : "Восстановить", "Delete permanently" : "Окончательно удалить", "Error while restoring file from trash bin" : "Произошла ошибка при попытке восстановить файл из корзины", + "Error while removing file from trash bin" : "Ошибка при попытке удалить файл из корзины", + "Error while restoring files from trash bin" : "Ошибка при попытке восстановить файл из корзины", + "Error while emptying trash bin" : "Ошибка при попытке очистить корзину", + "Error while removing files from trash bin" : "Ошибка при попытке удалить файлы из корзины", "This operation is forbidden" : "Операция запрещена", "This directory is unavailable, please check the logs or contact the administrator" : "Этот каталог недоступен. Проверьте системные журналы или свяжитесь с администратором", "No deleted files" : "Нет удалённых файлов", diff --git a/apps/oauth2/l10n/pl.js b/apps/oauth2/l10n/pl.js index 3478cd5fc43..049fff0a3cb 100644 --- a/apps/oauth2/l10n/pl.js +++ b/apps/oauth2/l10n/pl.js @@ -13,8 +13,8 @@ OC.L10N.register( "Redirection URI" : "URI przekierowania", "Add" : "Dodaj", "Client Identifier" : "Identyfikator Klienta", - "Secret" : "Sekretny klucz", - "Show client secret" : "Pokaż sekretny klucz klienta", + "Secret" : "Tajny klucz", + "Show client secret" : "Pokaż tajny klucz klienta", "Delete" : "Usuń" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/oauth2/l10n/pl.json b/apps/oauth2/l10n/pl.json index a7468d739a6..f8e2ffa58bf 100644 --- a/apps/oauth2/l10n/pl.json +++ b/apps/oauth2/l10n/pl.json @@ -11,8 +11,8 @@ "Redirection URI" : "URI przekierowania", "Add" : "Dodaj", "Client Identifier" : "Identyfikator Klienta", - "Secret" : "Sekretny klucz", - "Show client secret" : "Pokaż sekretny klucz klienta", + "Secret" : "Tajny klucz", + "Show client secret" : "Pokaż tajny klucz klienta", "Delete" : "Usuń" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index 6381fe1f47b..13ae8682869 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -183,6 +183,7 @@ OC.L10N.register( "Rename" : "Renommer", "Revoke" : "Révoquer", "Wipe device" : "Effacer l'appareil", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La révocation de ce jeton peut empêcher l'effacement sur l'appareil s'il n'a pas commencé.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index bb1a823b6b0..5407c78b22c 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -181,6 +181,7 @@ "Rename" : "Renommer", "Revoke" : "Révoquer", "Wipe device" : "Effacer l'appareil", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La révocation de ce jeton peut empêcher l'effacement sur l'appareil s'il n'a pas commencé.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js index 7b5634c0bad..0b3b6fbabd5 100644 --- a/apps/settings/l10n/it.js +++ b/apps/settings/l10n/it.js @@ -183,6 +183,7 @@ OC.L10N.register( "Rename" : "Rinomina", "Revoke" : "Revoca", "Wipe device" : "Cancella dispositivo", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato la cancellazione.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json index e2bfa99141e..2cd037520da 100644 --- a/apps/settings/l10n/it.json +++ b/apps/settings/l10n/it.json @@ -181,6 +181,7 @@ "Rename" : "Rinomina", "Revoke" : "Revoca", "Wipe device" : "Cancella dispositivo", + "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato la cancellazione.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", diff --git a/apps/sharebymail/l10n/fr.js b/apps/sharebymail/l10n/fr.js index 524f65054de..5a8b687a6c0 100644 --- a/apps/sharebymail/l10n/fr.js +++ b/apps/sharebymail/l10n/fr.js @@ -27,6 +27,7 @@ OC.L10N.register( "Share by mail" : "Partage par e-mail", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Le partage de %1$s a échoué, parce que cet élément est déjà partagé avec l'utilisateur %2$s", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nous ne pouvons pas vous envoyer le mot de passe généré automatiquement. Merci de définir une adresse courriel valide dans vos paramètres personnels et essayez à nouveau.", + "Failed to send share by email. Got an invalid email address" : "Échec lors de l'envoi du partage par email. L'adresse email est invalide", "Failed to send share by email" : "Échec lors de l'envoi du partage par e-mail", "%1$s shared »%2$s« with you" : "%1$s a partagé « %2$s » avec vous", "%1$s shared »%2$s« with you." : "%1$s a partagé « %2$s » avec vous.", diff --git a/apps/sharebymail/l10n/fr.json b/apps/sharebymail/l10n/fr.json index 6387e792979..c2666e70f09 100644 --- a/apps/sharebymail/l10n/fr.json +++ b/apps/sharebymail/l10n/fr.json @@ -25,6 +25,7 @@ "Share by mail" : "Partage par e-mail", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Le partage de %1$s a échoué, parce que cet élément est déjà partagé avec l'utilisateur %2$s", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nous ne pouvons pas vous envoyer le mot de passe généré automatiquement. Merci de définir une adresse courriel valide dans vos paramètres personnels et essayez à nouveau.", + "Failed to send share by email. Got an invalid email address" : "Échec lors de l'envoi du partage par email. L'adresse email est invalide", "Failed to send share by email" : "Échec lors de l'envoi du partage par e-mail", "%1$s shared »%2$s« with you" : "%1$s a partagé « %2$s » avec vous", "%1$s shared »%2$s« with you." : "%1$s a partagé « %2$s » avec vous.", diff --git a/apps/testing/lib/Controller/LockingController.php b/apps/testing/lib/Controller/LockingController.php index 808c7c2d3ba..c01ad218c84 100644 --- a/apps/testing/lib/Controller/LockingController.php +++ b/apps/testing/lib/Controller/LockingController.php @@ -80,10 +80,9 @@ class LockingController extends OCSController { } /** - * @return ILockingProvider * @throws \RuntimeException */ - protected function getLockingProvider() { + protected function getLockingProvider(): ILockingProvider { if ($this->lockingProvider instanceof DBLockingProvider) { return $this->fakeDBLockingProvider; } @@ -91,21 +90,17 @@ class LockingController extends OCSController { } /** - * @param string $user - * @param string $path - * @return string * @throws NotFoundException */ - protected function getPath($user, $path) { + protected function getPath(string $user, string $path): string { $node = $this->rootFolder->getUserFolder($user)->get($path); return 'files/' . md5($node->getStorage()->getId() . '::' . trim($node->getInternalPath(), '/')); } /** - * @return DataResponse * @throws OCSException */ - public function isLockingEnabled() { + public function isLockingEnabled(): DataResponse { try { $this->getLockingProvider(); return new DataResponse(); @@ -115,13 +110,9 @@ class LockingController extends OCSController { } /** - * @param int $type - * @param string $user - * @param string $path - * @return DataResponse * @throws OCSException */ - public function acquireLock($type, $user, $path) { + public function acquireLock(int $type, string $user, string $path): DataResponse { try { $path = $this->getPath($user, $path); } catch (NoUserException $e) { @@ -134,7 +125,7 @@ class LockingController extends OCSController { try { $lockingProvider->acquireLock($path, $type); - $this->config->setAppValue('testing', 'locking_' . $path, $type); + $this->config->setAppValue('testing', 'locking_' . $path, (string)$type); return new DataResponse(); } catch (LockedException $e) { throw new OCSException('', Http::STATUS_LOCKED, $e); @@ -142,13 +133,9 @@ class LockingController extends OCSController { } /** - * @param int $type - * @param string $user - * @param string $path - * @return DataResponse * @throws OCSException */ - public function changeLock($type, $user, $path) { + public function changeLock(int $type, string $user, string $path): DataResponse { try { $path = $this->getPath($user, $path); } catch (NoUserException $e) { @@ -161,7 +148,7 @@ class LockingController extends OCSController { try { $lockingProvider->changeLock($path, $type); - $this->config->setAppValue('testing', 'locking_' . $path, $type); + $this->config->setAppValue('testing', 'locking_' . $path, (string)$type); return new DataResponse(); } catch (LockedException $e) { throw new OCSException('', Http::STATUS_LOCKED, $e); @@ -169,13 +156,9 @@ class LockingController extends OCSController { } /** - * @param int $type - * @param string $user - * @param string $path - * @return DataResponse * @throws OCSException */ - public function releaseLock($type, $user, $path) { + public function releaseLock(int $type, string $user, string $path): DataResponse { try { $path = $this->getPath($user, $path); } catch (NoUserException $e) { @@ -196,13 +179,9 @@ class LockingController extends OCSController { } /** - * @param int $type - * @param string $user - * @param string $path - * @return DataResponse * @throws OCSException */ - public function isLocked($type, $user, $path) { + public function isLocked(int $type, string $user, string $path): DataResponse { try { $path = $this->getPath($user, $path); } catch (NoUserException $e) { @@ -220,11 +199,7 @@ class LockingController extends OCSController { throw new OCSException('', Http::STATUS_LOCKED); } - /** - * @param int $type - * @return DataResponse - */ - public function releaseAll($type = null) { + public function releaseAll(int $type = null): DataResponse { $lockingProvider = $this->getLockingProvider(); foreach ($this->config->getAppKeys('testing') as $lock) { @@ -232,11 +207,11 @@ class LockingController extends OCSController { $path = substr($lock, strlen('locking_')); if ($type === ILockingProvider::LOCK_EXCLUSIVE && (int)$this->config->getAppValue('testing', $lock) === ILockingProvider::LOCK_EXCLUSIVE) { - $lockingProvider->releaseLock($path, $this->config->getAppValue('testing', $lock)); + $lockingProvider->releaseLock($path, (int)$this->config->getAppValue('testing', $lock)); } elseif ($type === ILockingProvider::LOCK_SHARED && (int)$this->config->getAppValue('testing', $lock) === ILockingProvider::LOCK_SHARED) { - $lockingProvider->releaseLock($path, $this->config->getAppValue('testing', $lock)); + $lockingProvider->releaseLock($path, (int)$this->config->getAppValue('testing', $lock)); } else { - $lockingProvider->releaseLock($path, $this->config->getAppValue('testing', $lock)); + $lockingProvider->releaseLock($path, (int)$this->config->getAppValue('testing', $lock)); } } } diff --git a/apps/theming/lib/Command/UpdateConfig.php b/apps/theming/lib/Command/UpdateConfig.php index 1ff75b5ba70..bb226668943 100644 --- a/apps/theming/lib/Command/UpdateConfig.php +++ b/apps/theming/lib/Command/UpdateConfig.php @@ -79,6 +79,7 @@ class UpdateConfig extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $key = $input->getArgument('key'); $value = $input->getArgument('value'); + assert(is_string($value) || $value === null, 'At most one value should be provided.'); if ($key === null) { $output->writeln('Current theming config:'); diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php index b9df2e95622..45d3ee14e47 100644 --- a/apps/theming/lib/Controller/IconController.php +++ b/apps/theming/lib/Controller/IconController.php @@ -95,13 +95,9 @@ class IconController extends Controller { } $iconFile = $this->imageManager->setCachedImage('icon-' . $app . '-' . str_replace('/', '_',$image), $icon); } - if ($iconFile !== false) { - $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/svg+xml']); - $response->cacheFor(86400); - return $response; - } - - return new NotFoundResponse(); + $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/svg+xml']); + $response->cacheFor(86400); + return $response; } /** @@ -111,7 +107,7 @@ class IconController extends Controller { * @NoCSRFRequired * * @param $app string app name - * @return FileDisplayResponse|DataDisplayResponse + * @return FileDisplayResponse|DataDisplayResponse|NotFoundResponse * @throws \Exception */ public function getFavicon(string $app = 'core'): Response { @@ -127,11 +123,12 @@ class IconController extends Controller { $iconFile = $this->imageManager->getCachedImage('favIcon-' . $app); } catch (NotFoundException $exception) { $icon = $this->iconBuilder->getFavicon($app); + if ($icon === false || $icon === '') { + return new NotFoundResponse(); + } $iconFile = $this->imageManager->setCachedImage('favIcon-' . $app, $icon); } - if ($iconFile !== false) { - $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/x-icon']); - } + $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/x-icon']); } if ($response === null) { $fallbackLogo = \OC::$SERVERROOT . '/core/img/favicon.png'; @@ -148,7 +145,7 @@ class IconController extends Controller { * @NoCSRFRequired * * @param $app string app name - * @return FileDisplayResponse|NotFoundResponse + * @return DataDisplayResponse|FileDisplayResponse|NotFoundResponse * @throws \Exception */ public function getTouchIcon(string $app = 'core'): Response { @@ -163,11 +160,12 @@ class IconController extends Controller { $iconFile = $this->imageManager->getCachedImage('touchIcon-' . $app); } catch (NotFoundException $exception) { $icon = $this->iconBuilder->getTouchIcon($app); + if ($icon === false || $icon === '') { + return new NotFoundResponse(); + } $iconFile = $this->imageManager->setCachedImage('touchIcon-' . $app, $icon); } - if ($iconFile !== false) { - $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/png']); - } + $response = new FileDisplayResponse($iconFile, Http::STATUS_OK, ['Content-Type' => 'image/png']); } if ($response === null) { $fallbackLogo = \OC::$SERVERROOT . '/core/img/favicon-touch.png'; diff --git a/apps/theming/lib/ImageManager.php b/apps/theming/lib/ImageManager.php index b5ace6c968e..762461e7a1a 100644 --- a/apps/theming/lib/ImageManager.php +++ b/apps/theming/lib/ImageManager.php @@ -92,6 +92,7 @@ class ImageManager { case 'background': return $this->urlGenerator->imagePath('core', 'background.png') . '?v=' . $cacheBusterCounter; } + return ''; } public function getImageUrlAbsolute(string $key, bool $useSvg = true): string { @@ -131,6 +132,9 @@ class ImageManager { return $folder->getFile($key); } + /** + * @return array<string, array{mime: string, url: string}> + */ public function getCustomImages(): array { $images = []; foreach ($this->supportedImageKeys as $key) { @@ -192,7 +196,7 @@ class ImageManager { return $file; } - public function delete(string $key) { + public function delete(string $key): void { /* ignore exceptions, since we don't want to fail hard if something goes wrong during cleanup */ try { $file = $this->appData->getFolder('images')->getFile($key); @@ -208,7 +212,7 @@ class ImageManager { } } - public function updateImage(string $key, string $tmpFile) { + public function updateImage(string $key, string $tmpFile): string { $this->delete($key); try { @@ -255,7 +259,7 @@ class ImageManager { * "favicon" images are only allowed to be SVG when imagemagick with SVG support is available. * * @param string $key The image key, e.g. "favicon" - * @return array + * @return string[] */ private function getSupportedUploadImageFormats(string $key): array { $supportedFormats = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 3bfccda4a43..3d7aaee2064 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -157,6 +157,11 @@ class ThemingDefaults extends \OC_Defaults { return $this->config->getAppValue('theming', 'url', $this->url); } + /** + * We pass a string and sanitizeHTML will return a string too in that case + * @psalm-suppress InvalidReturnStatement + * @psalm-suppress InvalidReturnType + */ public function getSlogan(?string $lang = null) { return \OCP\Util::sanitizeHTML($this->config->getAppValue('theming', 'slogan', parent::getSlogan($lang))); } @@ -403,9 +408,9 @@ class ThemingDefaults extends \OC_Defaults { /** * Increases the cache buster key */ - private function increaseCacheBuster() { - $cacheBusterKey = $this->config->getAppValue('theming', 'cachebuster', '0'); - $this->config->setAppValue('theming', 'cachebuster', (int)$cacheBusterKey + 1); + private function increaseCacheBuster(): void { + $cacheBusterKey = (int)$this->config->getAppValue('theming', 'cachebuster', '0'); + $this->config->setAppValue('theming', 'cachebuster', (string)($cacheBusterKey + 1)); $this->cacheFactory->createDistributed('theming-')->clear(); $this->cacheFactory->createDistributed('imagePath')->clear(); } diff --git a/apps/theming/lib/Util.php b/apps/theming/lib/Util.php index 208cd42934e..05b954d5059 100644 --- a/apps/theming/lib/Util.php +++ b/apps/theming/lib/Util.php @@ -155,6 +155,7 @@ class Util { /** * @param string $color rgb color value * @return int[] + * @psalm-return array{0: int, 1: int, 2: int} */ public function hexToRGB($color) { $hex = preg_replace("/[^0-9A-Fa-f]/", '', $color); @@ -162,7 +163,7 @@ class Util { $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2]; } if (strlen($hex) !== 6) { - return 0; + return [0, 0, 0]; } return [ hexdec(substr($hex, 0, 2)), @@ -205,9 +206,7 @@ class Util { $logoFile = null; try { $folder = $this->appData->getFolder('images'); - if ($folder !== null) { - return $folder->getFile('logo'); - } + return $folder->getFile('logo'); } catch (NotFoundException $e) { } } diff --git a/apps/updatenotification/l10n/ca.js b/apps/updatenotification/l10n/ca.js index e88afa8a345..be190b4c192 100644 --- a/apps/updatenotification/l10n/ca.js +++ b/apps/updatenotification/l10n/ca.js @@ -2,7 +2,7 @@ OC.L10N.register( "updatenotification", { "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.", - "Channel updated" : "S'ha actualitzat el canal.", + "Channel updated" : "S'ha actualitzat el canal", "Web updater is disabled" : "L'actualitzador web està desactivat", "Update notifications" : "Notificacions d'actualització", "The update server could not be reached since %d days to check for new updates." : "No s’ha pogut accedir al servidor d’actualitzacions des de fa %d dies per comprovar si hi ha actualitzacions noves.", @@ -43,6 +43,7 @@ OC.L10N.register( "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequat per un ús normal i sempre s'actualitzarà a la versió més recent.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Una versió prèvia a la publicació només per provar noves funcions, no per a entorns de producció.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicació no té cap versió compatible per a aquesta versió de Nextcloud disponible.","<strong>%n</strong> aplicacions no tenen cap versió compatible per a aquesta versió de Nextcloud disponible."], "Apps missing updates" : "Les aplicacions no tenen actualitzacions", "Apps with available updates" : "Aplicacions amb actualitzacions disponibles", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Despleguem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometem una versió quan es detecten problemes.", @@ -50,7 +51,8 @@ OC.L10N.register( "Checking apps for compatible updates" : "S'estàn comprovant aplicacions per a actualitzacions compatibles", "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No s’ha pogut connectar amb el magatzem d’aplicacions o aquest no ha retornat cap actualització. Cerqueu manualment actualitzacions o assegureu-vos que el vostre servidor tingui accés a Internet i es pugui connectar al magatzem d'aplicacions.", "<strong>All</strong> apps have an update for this version available" : "<strong>Totes</strong> les aplicacions tenen una actualització disponible per aquesta versió", - "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió.","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió."], - "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>All</strong> aplicacions tenen una versió compatible per aquesta versió de Nextcloud." + "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió"], + "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>Totes</strong> les aplicacions tenen una versió compatible per aquesta versió de Nextcloud", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available_::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available_" : ["<strong>%n</strong> aplicació no té cap versió compatible per a aquesta versió de Nextcloud disponible","<strong>%n</strong> aplicacions no tenen cap versió compatible per a aquesta versió de Nextcloud disponible"] }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/ca.json b/apps/updatenotification/l10n/ca.json index 5ff3891fcf3..8daf40ed6cf 100644 --- a/apps/updatenotification/l10n/ca.json +++ b/apps/updatenotification/l10n/ca.json @@ -1,6 +1,6 @@ { "translations": { "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.", - "Channel updated" : "S'ha actualitzat el canal.", + "Channel updated" : "S'ha actualitzat el canal", "Web updater is disabled" : "L'actualitzador web està desactivat", "Update notifications" : "Notificacions d'actualització", "The update server could not be reached since %d days to check for new updates." : "No s’ha pogut accedir al servidor d’actualitzacions des de fa %d dies per comprovar si hi ha actualitzacions noves.", @@ -41,6 +41,7 @@ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequat per un ús normal i sempre s'actualitzarà a la versió més recent.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Una versió prèvia a la publicació només per provar noves funcions, no per a entorns de producció.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicació no té cap versió compatible per a aquesta versió de Nextcloud disponible.","<strong>%n</strong> aplicacions no tenen cap versió compatible per a aquesta versió de Nextcloud disponible."], "Apps missing updates" : "Les aplicacions no tenen actualitzacions", "Apps with available updates" : "Aplicacions amb actualitzacions disponibles", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Despleguem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometem una versió quan es detecten problemes.", @@ -48,7 +49,8 @@ "Checking apps for compatible updates" : "S'estàn comprovant aplicacions per a actualitzacions compatibles", "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No s’ha pogut connectar amb el magatzem d’aplicacions o aquest no ha retornat cap actualització. Cerqueu manualment actualitzacions o assegureu-vos que el vostre servidor tingui accés a Internet i es pugui connectar al magatzem d'aplicacions.", "<strong>All</strong> apps have an update for this version available" : "<strong>Totes</strong> les aplicacions tenen una actualització disponible per aquesta versió", - "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió.","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió."], - "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>All</strong> aplicacions tenen una versió compatible per aquesta versió de Nextcloud." + "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió"], + "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>Totes</strong> les aplicacions tenen una versió compatible per aquesta versió de Nextcloud", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available_::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available_" : ["<strong>%n</strong> aplicació no té cap versió compatible per a aquesta versió de Nextcloud disponible","<strong>%n</strong> aplicacions no tenen cap versió compatible per a aquesta versió de Nextcloud disponible"] },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js index 897396ad2ff..3e4c3a83665 100644 --- a/apps/updatenotification/l10n/de.js +++ b/apps/updatenotification/l10n/de.js @@ -35,6 +35,7 @@ OC.L10N.register( "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stelle sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Die Verbindung zum App-Store konnte nicht aufgebaut werden oder der App-Store hat keine Apps zurück geliefert. Suche selbst nach Updates oder stelle sicher, dass Dein Server Zugriff auf das Internet hat und eine Verbindung zum App-Store aufbauen kann. ", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.", "View changelog" : "Liste der Änderungen anschauen", "Enterprise" : "Version für Unternehmen", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .", @@ -42,6 +43,7 @@ OC.L10N.register( "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps steht keine kompatible Version zur Verfügung."], "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen", "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden.", diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json index 420ad6978a0..e0c8c95e700 100644 --- a/apps/updatenotification/l10n/de.json +++ b/apps/updatenotification/l10n/de.json @@ -33,6 +33,7 @@ "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stelle sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Die Verbindung zum App-Store konnte nicht aufgebaut werden oder der App-Store hat keine Apps zurück geliefert. Suche selbst nach Updates oder stelle sicher, dass Dein Server Zugriff auf das Internet hat und eine Verbindung zum App-Store aufbauen kann. ", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.", "View changelog" : "Liste der Änderungen anschauen", "Enterprise" : "Version für Unternehmen", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .", @@ -40,6 +41,7 @@ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps steht keine kompatible Version zur Verfügung."], "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen", "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden.", diff --git a/apps/updatenotification/l10n/it.js b/apps/updatenotification/l10n/it.js index 6ecd78b0331..c0dbdfc0e4b 100644 --- a/apps/updatenotification/l10n/it.js +++ b/apps/updatenotification/l10n/it.js @@ -35,6 +35,7 @@ OC.L10N.register( "Checking apps for compatible versions" : "Controllo di applicazioni con versioni compatibili", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tutte</strong> le applicazioni hanno una versione compatibile disponibile per questa versione di Nextcloud.", "View changelog" : "Visualizza le novità", "Enterprise" : "Enterprise", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.", @@ -42,6 +43,7 @@ OC.L10N.register( "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> applicazione non ha una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud."], "Apps missing updates" : "Applicazioni non aggiornate", "Apps with available updates" : "Applicazioni con aggiornamenti disponibili", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota che, dopo una nuova versione, potrebbe essere necessario del tempo prima che sia mostrato qui. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi.", diff --git a/apps/updatenotification/l10n/it.json b/apps/updatenotification/l10n/it.json index b7b0a31e1fe..39b4e6cf82e 100644 --- a/apps/updatenotification/l10n/it.json +++ b/apps/updatenotification/l10n/it.json @@ -33,6 +33,7 @@ "Checking apps for compatible versions" : "Controllo di applicazioni con versioni compatibili", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tutte</strong> le applicazioni hanno una versione compatibile disponibile per questa versione di Nextcloud.", "View changelog" : "Visualizza le novità", "Enterprise" : "Enterprise", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.", @@ -40,6 +41,7 @@ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> applicazione non ha una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud."], "Apps missing updates" : "Applicazioni non aggiornate", "Apps with available updates" : "Applicazioni con aggiornamenti disponibili", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota che, dopo una nuova versione, potrebbe essere necessario del tempo prima che sia mostrato qui. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi.", diff --git a/apps/updatenotification/l10n/pt_BR.js b/apps/updatenotification/l10n/pt_BR.js index 17b68a9e613..b2b1bdfdfaa 100644 --- a/apps/updatenotification/l10n/pt_BR.js +++ b/apps/updatenotification/l10n/pt_BR.js @@ -35,6 +35,7 @@ OC.L10N.register( "Checking apps for compatible versions" : "Verificando aplicativos para versões compatíveis", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Não foi possível conectar à App Store ou nenhuma atualização foi retornada. Pesquise manualmente por atualizações ou certifique-se de que seu servidor tenha acesso à Internet e possa se conectar à App Store.", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todos</strong> os aplicativos têm uma versão compatível para esta versão do Nextcloud disponível.", "View changelog" : "Visualizar registro de alterações", "Enterprise" : "Empresarial", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.", @@ -42,6 +43,7 @@ OC.L10N.register( "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicativo não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível."], "Apps missing updates" : "Aplicativos faltando atualizações", "Apps with available updates" : "Aplicativos com atualizações disponíveis", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Observe que uma nova versão pode levar um tempo até aparecer aqui. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados.", diff --git a/apps/updatenotification/l10n/pt_BR.json b/apps/updatenotification/l10n/pt_BR.json index 09445e36097..a7cbe0a11da 100644 --- a/apps/updatenotification/l10n/pt_BR.json +++ b/apps/updatenotification/l10n/pt_BR.json @@ -33,6 +33,7 @@ "Checking apps for compatible versions" : "Verificando aplicativos para versões compatíveis", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.", "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Não foi possível conectar à App Store ou nenhuma atualização foi retornada. Pesquise manualmente por atualizações ou certifique-se de que seu servidor tenha acesso à Internet e possa se conectar à App Store.", + "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todos</strong> os aplicativos têm uma versão compatível para esta versão do Nextcloud disponível.", "View changelog" : "Visualizar registro de alterações", "Enterprise" : "Empresarial", "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.", @@ -40,6 +41,7 @@ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.", "Beta" : "Beta", "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.", + "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicativo não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível."], "Apps missing updates" : "Aplicativos faltando atualizações", "Apps with available updates" : "Aplicativos com atualizações disponíveis", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Observe que uma nova versão pode levar um tempo até aparecer aqui. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados.", diff --git a/apps/weather_status/l10n/fr.js b/apps/weather_status/l10n/fr.js index f49cbc8c385..119830304ab 100644 --- a/apps/weather_status/l10n/fr.js +++ b/apps/weather_status/l10n/fr.js @@ -11,6 +11,28 @@ OC.L10N.register( "Detect location" : "Détecter la position", "Set custom address" : "Définir une adresse personnalisée", "Favorites" : "Favoris", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} Ciel dégagé dans la journée", + "{temperature} {unit} clear sky" : "{temperature} {unit} Ciel dégagé", + "{temperature} {unit} cloudy later today" : "{temperature} {unit} Nuageux dans la journée", + "{temperature} {unit} cloudy" : "{temperature} {unit} Nuageux", + "{temperature} {unit} fair weather later today" : "{temperature} {unit} Beau temps dans la journée", + "{temperature} {unit} fair weather" : "{temperature} {unit} Beau temps", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} Partiellement nuageux dans la journée", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} Partiellement nuageux", + "{temperature} {unit} foggy later today" : "{temperature} {unit} Brouillard dans la journée", + "{temperature} {unit} foggy" : "{temperature} {unit} Brouillard", + "{temperature} {unit} light rain later today" : "{temperature} {unit} Pluie faible dans la journée", + "{temperature} {unit} light rain" : "{temperature} {unit} Pluie faible", + "{temperature} {unit} rain later today" : "{temperature} {unit} Pluie dans la journée", + "{temperature} {unit} rain" : "{temperature} {unit} Pluie", + "{temperature} {unit} heavy rain later today" : "{temperature} {unit} Fortes pluies dans la journée", + "{temperature} {unit} heavy rain" : "{temperature} {unit} Fortes pluies", + "{temperature} {unit} rain showers later today" : "{temperature} {unit} Averses dans la journée", + "{temperature} {unit} rain showers" : "{temperature} {unit} Averses", + "{temperature} {unit} light rain showers later today" : "{temperature} {unit} Faibles averses dans la journée", + "{temperature} {unit} light rain showers" : "{temperature} {unit} Faibles averses", + "{temperature} {unit} heavy rain showers later today" : "{temperature} {unit} Fortes averses dans la journée", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} Fortes averses", "More weather for {adr}" : "Plus de météo pour {adr}", "Loading weather" : "Chargement de la météo", "Remove from favorites" : "Retirer des favoris", diff --git a/apps/weather_status/l10n/fr.json b/apps/weather_status/l10n/fr.json index 6e9b54d9863..b0895140cc4 100644 --- a/apps/weather_status/l10n/fr.json +++ b/apps/weather_status/l10n/fr.json @@ -9,6 +9,28 @@ "Detect location" : "Détecter la position", "Set custom address" : "Définir une adresse personnalisée", "Favorites" : "Favoris", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} Ciel dégagé dans la journée", + "{temperature} {unit} clear sky" : "{temperature} {unit} Ciel dégagé", + "{temperature} {unit} cloudy later today" : "{temperature} {unit} Nuageux dans la journée", + "{temperature} {unit} cloudy" : "{temperature} {unit} Nuageux", + "{temperature} {unit} fair weather later today" : "{temperature} {unit} Beau temps dans la journée", + "{temperature} {unit} fair weather" : "{temperature} {unit} Beau temps", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} Partiellement nuageux dans la journée", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} Partiellement nuageux", + "{temperature} {unit} foggy later today" : "{temperature} {unit} Brouillard dans la journée", + "{temperature} {unit} foggy" : "{temperature} {unit} Brouillard", + "{temperature} {unit} light rain later today" : "{temperature} {unit} Pluie faible dans la journée", + "{temperature} {unit} light rain" : "{temperature} {unit} Pluie faible", + "{temperature} {unit} rain later today" : "{temperature} {unit} Pluie dans la journée", + "{temperature} {unit} rain" : "{temperature} {unit} Pluie", + "{temperature} {unit} heavy rain later today" : "{temperature} {unit} Fortes pluies dans la journée", + "{temperature} {unit} heavy rain" : "{temperature} {unit} Fortes pluies", + "{temperature} {unit} rain showers later today" : "{temperature} {unit} Averses dans la journée", + "{temperature} {unit} rain showers" : "{temperature} {unit} Averses", + "{temperature} {unit} light rain showers later today" : "{temperature} {unit} Faibles averses dans la journée", + "{temperature} {unit} light rain showers" : "{temperature} {unit} Faibles averses", + "{temperature} {unit} heavy rain showers later today" : "{temperature} {unit} Fortes averses dans la journée", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} Fortes averses", "More weather for {adr}" : "Plus de météo pour {adr}", "Loading weather" : "Chargement de la météo", "Remove from favorites" : "Retirer des favoris", diff --git a/apps/workflowengine/l10n/hu.js b/apps/workflowengine/l10n/hu.js index 3567ce4c81d..2c16f2abc90 100644 --- a/apps/workflowengine/l10n/hu.js +++ b/apps/workflowengine/l10n/hu.js @@ -4,16 +4,16 @@ OC.L10N.register( "The given operator is invalid" : "A megadott operátor érvénytelen", "The given regular expression is invalid" : "A megadott reguláris kifejezés érvénytelen", "The given file size is invalid" : "A megadott fájlméret érvénytelen", - "The given tag id is invalid" : "A megadott címe azonosító érvénytelen", - "The given IP range is invalid" : "A megadott IP tartomány érvénytelen", - "The given IP range is not valid for IPv4" : "A megadott IPv4 tartomány nem érvényes", - "The given IP range is not valid for IPv6" : "A megadott IPv6 tartomány nem érvényes", - "The given time span is invalid" : "A megadott időtartam nem érvényes", - "The given start time is invalid" : "A megadott kezdő idő nem érvényes", - "The given end time is invalid" : "A megadott vég idő nem érvényes", + "The given tag id is invalid" : "A megadott címkeazonosító érvénytelen", + "The given IP range is invalid" : "A megadott IP-tartomány érvénytelen", + "The given IP range is not valid for IPv4" : "A megadott IPv4-tartomány érvénytelen", + "The given IP range is not valid for IPv6" : "A megadott IPv6-tartomány érvénytelen", + "The given time span is invalid" : "A megadott időtartam érvénytelen", + "The given start time is invalid" : "A megadott kezdési idő érvénytelen", + "The given end time is invalid" : "A megadott befejezési idő érvénytelen", "The given group does not exist" : "A megadott csoport nem létezik", "File" : "Fájl", - "File created" : "Fájl létrehozva", + "File created" : "A fájl létrehozva", "File updated" : "A fájl frissítve", "File renamed" : "A fájl átnevezve", "File deleted" : "A fájl törölve", @@ -22,54 +22,54 @@ OC.L10N.register( "Tag assigned" : "Címke hozzárendelve", "Someone" : "Valaki", "%s created %s" : "%s létrehozta a következőt: %s", - "%s modified %s" : "%s módosított a következőt: %s", - "%s deleted %s" : "%s módosította a következőt: %s", + "%s modified %s" : "%s módosította a következőt: %s", + "%s deleted %s" : "%s törölte a következőt: %s", "%s accessed %s" : "%s hozzáfért a következőhöz: %s", "%s renamed %s" : "%s átnevezte a következőt: %s", "%s copied %s" : "%s átmásolta a következőt: %s", - "%s assigned %s to %s" : "%s hozzárendelte a következőt: %s hozzá: %s", - "Operation #%s does not exist" : "#%s művelet nem létezik", - "Entity %s does not exist" : "%s entitás nem létezik", - "Entity %s is invalid" : "%s entitás érvénytelen", + "%s assigned %s to %s" : "%s hozzárendelte a következőt: %s, hozzá: %s", + "Operation #%s does not exist" : "A(z) #%s művelet nem létezik", + "Entity %s does not exist" : "A(z) %s entitás nem létezik", + "Entity %s is invalid" : "A(z) %s entitás érvénytelen", "No events are chosen." : "Nincs kiválasztva esemény.", - "Entity %s has no event %s" : "%s entitásnak nincs eseménye %s", - "Operation %s does not exist" : "%s művelet nem létezik", - "Operation %s is invalid" : "#%s művelet érvénytelen", + "Entity %s has no event %s" : "A(z) %s entitásnak nincs eseménye %s", + "Operation %s does not exist" : "A(z) %s művelet nem létezik", + "Operation %s is invalid" : "A(z) #%s művelet érvénytelen", "At least one check needs to be provided" : "Legalább egy ellenőrzést meg kell adni", "The provided operation data is too long" : "A megadott műveleti adatok túl hosszúak", "Invalid check provided" : "Érvénytelen ellenőrzést adott meg", - "Check %s does not exist" : "%s nem létezik, ellenőrizd", - "Check %s is invalid" : "%s érvénytelen, ellenőrizd", - "Check %s is not allowed with this entity" : "%s ellenőrzés nem engedélyezett ezzel az entitással", + "Check %s does not exist" : "A(z) %s nem létezik, ellenőrizze", + "Check %s is invalid" : "A(z) %s érvénytelen, ellenőrizze", + "Check %s is not allowed with this entity" : "A(z) %s ellenőrzés nem engedélyezett ezzel az entitással", "The provided check value is too long" : "A megadott ellenőrzési érték túl hosszú", - "Check #%s does not exist" : "#%s nem létezik, ellenőrizd", - "Check %s is invalid or does not exist" : "%s érvénytelen vagy nem létezik, ellenőrizd", - "Flow" : "Flow", - "Nextcloud workflow engine" : "Nextcloud munkafolyamat motor", - "Select a filter" : "Válasszon egy szűrőt", + "Check #%s does not exist" : "A(z) #%s nem létezik, ellenőrizze", + "Check %s is invalid or does not exist" : "A(z) %s érvénytelen vagy nem létezik, ellenőrizze", + "Flow" : "Folyamat", + "Nextcloud workflow engine" : "Nextcloud munkafolyamat-motor", + "Select a filter" : "Válasszon szűrőt", "Select a comparator" : "Válasszon összehasonlítót", - "Select a file type" : "Válasszon egy fájltípust", - "e.g. httpd/unix-directory" : "például. httpd/unix-directory", + "Select a file type" : "Válasszon fájltípust", + "e.g. httpd/unix-directory" : "például httpd/unix-directory", "Folder" : "Mappa", "Images" : "Képek", - "Office documents" : "Office dokumentumok", - "PDF documents" : "PDF dokumentumok", - "Custom mimetype" : "Egyéni mime típus", - "Select a tag" : "Válasszon ki egy címkét", + "Office documents" : "Irodai dokumentumok", + "PDF documents" : "PDF-dokumentumok", + "Custom mimetype" : "Egyéni MIME-típus", + "Select a tag" : "Válasszon címkét", "No results" : "Nincs találat", "%s (invisible)" : "%s (láthatatlan)", "%s (restricted)" : "%s (korlátozott)", - "Please enter a valid time span" : "Kérjük, adjon meg érvényes időtartamot", - "Select a request URL" : "Válassza ki a kérelem URL-jét", - "Predefined URLs" : "Elődefiniált URL-ek", - "Files WebDAV" : "WebDAV fálok", + "Please enter a valid time span" : "Érvényes időtartamot adjon meg", + "Select a request URL" : "Válassza ki a kérés URL-jét", + "Predefined URLs" : "Előre definiált URL-ek", + "Files WebDAV" : "WebDAV-fájlok", "Others" : "Egyebek", "Custom URL" : "Egyéni URL", "Select a user agent" : "Válasszon felhasználói ügynököt", "Android client" : "Android kliens", "iOS client" : "iOS klens", "Desktop client" : "Asztali kliens", - "Thunderbird & Outlook addons" : "Thunderbird és Outlook bővítmények", + "Thunderbird & Outlook addons" : "Thunderbird és Outlook kiegészítők", "Custom user agent" : "Egyéni felhasználói ügynök", "At least one event must be selected" : "Legalább egy eseményt ki kell választani", "Add new flow" : "Új folyamat hozzáadása", @@ -80,11 +80,11 @@ OC.L10N.register( "The configuration is invalid" : "A konfiguráció érvénytelen", "Active" : "Aktív", "Save" : "Mentés", - "Available flows" : "Rendelkezésre álló munkafolyamatok", - "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért, lásd a fejlesztési dokumentációt.", - "More flows" : "Több munkafolyamat", + "Available flows" : "Rendelkezésre álló folyamatok", + "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért lásd a fejlesztési dokumentációt.", + "More flows" : "Több folyamat", "Browse the App Store" : "Alkalmazástár böngészése", - "Show less" : "Kevesebbet megjelenítése", + "Show less" : "Kevesebb megjelenítése", "Show more" : "Több megjelenítése", "Configured flows" : "Beállított folyamatok", "Your flows" : "Az Ön folyamatai", @@ -93,26 +93,26 @@ OC.L10N.register( "is" : "ez", "is not" : "nem ez", "File name" : "Fájlnév", - "File MIME type" : "Fájl MIME típus", - "File size (upload)" : "Fájl méret (feltöltés)", + "File MIME type" : "Fájl MIME-típusa", + "File size (upload)" : "Fájlméret (feltöltés)", "less" : "kisebb", "less or equals" : "kisebb vagy egyenlő", "greater or equals" : "nagyobb vagy egyenlő", "greater" : "nagyobb", - "Request remote address" : "Távoli cím kérés", + "Request remote address" : "Távoli cím kérése", "matches IPv4" : "IPv4 egyezik", "does not match IPv4" : "IPv4 nem egyezik", "matches IPv6" : "IPv6 egyezik", "does not match IPv6" : "IPv6 nem egyezik", - "File system tag" : "Fájlrendszer címke", + "File system tag" : "Fájlrendszercímke", "is tagged with" : "címkézve ezzel", - "is not tagged with" : "nem címkézve ezzel", - "Request URL" : "URL kérés", - "Request time" : "Idő kérés", + "is not tagged with" : "nincs címkézve ezzel", + "Request URL" : "Kérés URL-je", + "Request time" : "Kérés ideje", "between" : "közötte", "not between" : "nincs közötte", - "Request user agent" : "Böngésző kérés", - "User group membership" : "Felhasználói csoport tagság", + "Request user agent" : "Kérés felhasználói ügynöke", + "User group membership" : "Felhasználói csoporttagság", "is member of" : "tagja ennek", "is not member of" : "nem tagja ennek", "Browse the app store" : "Alkalmazástár böngészése" diff --git a/apps/workflowengine/l10n/hu.json b/apps/workflowengine/l10n/hu.json index 25d81f4e165..32e8a2b6a18 100644 --- a/apps/workflowengine/l10n/hu.json +++ b/apps/workflowengine/l10n/hu.json @@ -2,16 +2,16 @@ "The given operator is invalid" : "A megadott operátor érvénytelen", "The given regular expression is invalid" : "A megadott reguláris kifejezés érvénytelen", "The given file size is invalid" : "A megadott fájlméret érvénytelen", - "The given tag id is invalid" : "A megadott címe azonosító érvénytelen", - "The given IP range is invalid" : "A megadott IP tartomány érvénytelen", - "The given IP range is not valid for IPv4" : "A megadott IPv4 tartomány nem érvényes", - "The given IP range is not valid for IPv6" : "A megadott IPv6 tartomány nem érvényes", - "The given time span is invalid" : "A megadott időtartam nem érvényes", - "The given start time is invalid" : "A megadott kezdő idő nem érvényes", - "The given end time is invalid" : "A megadott vég idő nem érvényes", + "The given tag id is invalid" : "A megadott címkeazonosító érvénytelen", + "The given IP range is invalid" : "A megadott IP-tartomány érvénytelen", + "The given IP range is not valid for IPv4" : "A megadott IPv4-tartomány érvénytelen", + "The given IP range is not valid for IPv6" : "A megadott IPv6-tartomány érvénytelen", + "The given time span is invalid" : "A megadott időtartam érvénytelen", + "The given start time is invalid" : "A megadott kezdési idő érvénytelen", + "The given end time is invalid" : "A megadott befejezési idő érvénytelen", "The given group does not exist" : "A megadott csoport nem létezik", "File" : "Fájl", - "File created" : "Fájl létrehozva", + "File created" : "A fájl létrehozva", "File updated" : "A fájl frissítve", "File renamed" : "A fájl átnevezve", "File deleted" : "A fájl törölve", @@ -20,54 +20,54 @@ "Tag assigned" : "Címke hozzárendelve", "Someone" : "Valaki", "%s created %s" : "%s létrehozta a következőt: %s", - "%s modified %s" : "%s módosított a következőt: %s", - "%s deleted %s" : "%s módosította a következőt: %s", + "%s modified %s" : "%s módosította a következőt: %s", + "%s deleted %s" : "%s törölte a következőt: %s", "%s accessed %s" : "%s hozzáfért a következőhöz: %s", "%s renamed %s" : "%s átnevezte a következőt: %s", "%s copied %s" : "%s átmásolta a következőt: %s", - "%s assigned %s to %s" : "%s hozzárendelte a következőt: %s hozzá: %s", - "Operation #%s does not exist" : "#%s művelet nem létezik", - "Entity %s does not exist" : "%s entitás nem létezik", - "Entity %s is invalid" : "%s entitás érvénytelen", + "%s assigned %s to %s" : "%s hozzárendelte a következőt: %s, hozzá: %s", + "Operation #%s does not exist" : "A(z) #%s művelet nem létezik", + "Entity %s does not exist" : "A(z) %s entitás nem létezik", + "Entity %s is invalid" : "A(z) %s entitás érvénytelen", "No events are chosen." : "Nincs kiválasztva esemény.", - "Entity %s has no event %s" : "%s entitásnak nincs eseménye %s", - "Operation %s does not exist" : "%s művelet nem létezik", - "Operation %s is invalid" : "#%s művelet érvénytelen", + "Entity %s has no event %s" : "A(z) %s entitásnak nincs eseménye %s", + "Operation %s does not exist" : "A(z) %s művelet nem létezik", + "Operation %s is invalid" : "A(z) #%s művelet érvénytelen", "At least one check needs to be provided" : "Legalább egy ellenőrzést meg kell adni", "The provided operation data is too long" : "A megadott műveleti adatok túl hosszúak", "Invalid check provided" : "Érvénytelen ellenőrzést adott meg", - "Check %s does not exist" : "%s nem létezik, ellenőrizd", - "Check %s is invalid" : "%s érvénytelen, ellenőrizd", - "Check %s is not allowed with this entity" : "%s ellenőrzés nem engedélyezett ezzel az entitással", + "Check %s does not exist" : "A(z) %s nem létezik, ellenőrizze", + "Check %s is invalid" : "A(z) %s érvénytelen, ellenőrizze", + "Check %s is not allowed with this entity" : "A(z) %s ellenőrzés nem engedélyezett ezzel az entitással", "The provided check value is too long" : "A megadott ellenőrzési érték túl hosszú", - "Check #%s does not exist" : "#%s nem létezik, ellenőrizd", - "Check %s is invalid or does not exist" : "%s érvénytelen vagy nem létezik, ellenőrizd", - "Flow" : "Flow", - "Nextcloud workflow engine" : "Nextcloud munkafolyamat motor", - "Select a filter" : "Válasszon egy szűrőt", + "Check #%s does not exist" : "A(z) #%s nem létezik, ellenőrizze", + "Check %s is invalid or does not exist" : "A(z) %s érvénytelen vagy nem létezik, ellenőrizze", + "Flow" : "Folyamat", + "Nextcloud workflow engine" : "Nextcloud munkafolyamat-motor", + "Select a filter" : "Válasszon szűrőt", "Select a comparator" : "Válasszon összehasonlítót", - "Select a file type" : "Válasszon egy fájltípust", - "e.g. httpd/unix-directory" : "például. httpd/unix-directory", + "Select a file type" : "Válasszon fájltípust", + "e.g. httpd/unix-directory" : "például httpd/unix-directory", "Folder" : "Mappa", "Images" : "Képek", - "Office documents" : "Office dokumentumok", - "PDF documents" : "PDF dokumentumok", - "Custom mimetype" : "Egyéni mime típus", - "Select a tag" : "Válasszon ki egy címkét", + "Office documents" : "Irodai dokumentumok", + "PDF documents" : "PDF-dokumentumok", + "Custom mimetype" : "Egyéni MIME-típus", + "Select a tag" : "Válasszon címkét", "No results" : "Nincs találat", "%s (invisible)" : "%s (láthatatlan)", "%s (restricted)" : "%s (korlátozott)", - "Please enter a valid time span" : "Kérjük, adjon meg érvényes időtartamot", - "Select a request URL" : "Válassza ki a kérelem URL-jét", - "Predefined URLs" : "Elődefiniált URL-ek", - "Files WebDAV" : "WebDAV fálok", + "Please enter a valid time span" : "Érvényes időtartamot adjon meg", + "Select a request URL" : "Válassza ki a kérés URL-jét", + "Predefined URLs" : "Előre definiált URL-ek", + "Files WebDAV" : "WebDAV-fájlok", "Others" : "Egyebek", "Custom URL" : "Egyéni URL", "Select a user agent" : "Válasszon felhasználói ügynököt", "Android client" : "Android kliens", "iOS client" : "iOS klens", "Desktop client" : "Asztali kliens", - "Thunderbird & Outlook addons" : "Thunderbird és Outlook bővítmények", + "Thunderbird & Outlook addons" : "Thunderbird és Outlook kiegészítők", "Custom user agent" : "Egyéni felhasználói ügynök", "At least one event must be selected" : "Legalább egy eseményt ki kell választani", "Add new flow" : "Új folyamat hozzáadása", @@ -78,11 +78,11 @@ "The configuration is invalid" : "A konfiguráció érvénytelen", "Active" : "Aktív", "Save" : "Mentés", - "Available flows" : "Rendelkezésre álló munkafolyamatok", - "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért, lásd a fejlesztési dokumentációt.", - "More flows" : "Több munkafolyamat", + "Available flows" : "Rendelkezésre álló folyamatok", + "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért lásd a fejlesztési dokumentációt.", + "More flows" : "Több folyamat", "Browse the App Store" : "Alkalmazástár böngészése", - "Show less" : "Kevesebbet megjelenítése", + "Show less" : "Kevesebb megjelenítése", "Show more" : "Több megjelenítése", "Configured flows" : "Beállított folyamatok", "Your flows" : "Az Ön folyamatai", @@ -91,26 +91,26 @@ "is" : "ez", "is not" : "nem ez", "File name" : "Fájlnév", - "File MIME type" : "Fájl MIME típus", - "File size (upload)" : "Fájl méret (feltöltés)", + "File MIME type" : "Fájl MIME-típusa", + "File size (upload)" : "Fájlméret (feltöltés)", "less" : "kisebb", "less or equals" : "kisebb vagy egyenlő", "greater or equals" : "nagyobb vagy egyenlő", "greater" : "nagyobb", - "Request remote address" : "Távoli cím kérés", + "Request remote address" : "Távoli cím kérése", "matches IPv4" : "IPv4 egyezik", "does not match IPv4" : "IPv4 nem egyezik", "matches IPv6" : "IPv6 egyezik", "does not match IPv6" : "IPv6 nem egyezik", - "File system tag" : "Fájlrendszer címke", + "File system tag" : "Fájlrendszercímke", "is tagged with" : "címkézve ezzel", - "is not tagged with" : "nem címkézve ezzel", - "Request URL" : "URL kérés", - "Request time" : "Idő kérés", + "is not tagged with" : "nincs címkézve ezzel", + "Request URL" : "Kérés URL-je", + "Request time" : "Kérés ideje", "between" : "közötte", "not between" : "nincs közötte", - "Request user agent" : "Böngésző kérés", - "User group membership" : "Felhasználói csoport tagság", + "Request user agent" : "Kérés felhasználói ügynöke", + "User group membership" : "Felhasználói csoporttagság", "is member of" : "tagja ennek", "is not member of" : "nem tagja ennek", "Browse the app store" : "Alkalmazástár böngészése" |