diff options
Diffstat (limited to 'lib')
28 files changed, 745 insertions, 334 deletions
diff --git a/lib/base.php b/lib/base.php index 6578d506796..3c10f7cb33a 100644 --- a/lib/base.php +++ b/lib/base.php @@ -775,7 +775,7 @@ class OC { if (!$isScssRequest) { http_response_code(400); - \OC::$server->getLogger()->info( + \OC::$server->getLogger()->warning( 'Trusted domain error. "{remoteAddress}" tried to access using "{host}" as host.', [ 'app' => 'core', diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index d8d8dc0fb6b..73aaa10f731 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -992,6 +992,7 @@ return array( 'OC\\Core\\Migrations\\Version23000Date20211203110726' => $baseDir . '/core/Migrations/Version23000Date20211203110726.php', 'OC\\Core\\Migrations\\Version23000Date20211213203940' => $baseDir . '/core/Migrations/Version23000Date20211213203940.php', 'OC\\Core\\Migrations\\Version24000Date20211210141942' => $baseDir . '/core/Migrations/Version24000Date20211210141942.php', + 'OC\\Core\\Migrations\\Version24000Date20211222112246' => $baseDir . '/core/Migrations/Version24000Date20211222112246.php', 'OC\\Core\\Migrations\\Version24000Date20211230140012' => $baseDir . '/core/Migrations/Version24000Date20211230140012.php', 'OC\\Core\\Notification\\CoreNotifier' => $baseDir . '/core/Notification/CoreNotifier.php', 'OC\\Core\\Service\\LoginFlowV2Service' => $baseDir . '/core/Service/LoginFlowV2Service.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index a9ce260d050..96e70bed1a3 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -1021,6 +1021,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Core\\Migrations\\Version23000Date20211203110726' => __DIR__ . '/../../..' . '/core/Migrations/Version23000Date20211203110726.php', 'OC\\Core\\Migrations\\Version23000Date20211213203940' => __DIR__ . '/../../..' . '/core/Migrations/Version23000Date20211213203940.php', 'OC\\Core\\Migrations\\Version24000Date20211210141942' => __DIR__ . '/../../..' . '/core/Migrations/Version24000Date20211210141942.php', + 'OC\\Core\\Migrations\\Version24000Date20211222112246' => __DIR__ . '/../../..' . '/core/Migrations/Version24000Date20211222112246.php', 'OC\\Core\\Migrations\\Version24000Date20211230140012' => __DIR__ . '/../../..' . '/core/Migrations/Version24000Date20211230140012.php', 'OC\\Core\\Notification\\CoreNotifier' => __DIR__ . '/../../..' . '/core/Notification/CoreNotifier.php', 'OC\\Core\\Service\\LoginFlowV2Service' => __DIR__ . '/../../..' . '/core/Service/LoginFlowV2Service.php', diff --git a/lib/l10n/hu.js b/lib/l10n/hu.js index 9e6022c90d3..2e927ec05c7 100644 --- a/lib/l10n/hu.js +++ b/lib/l10n/hu.js @@ -1,61 +1,70 @@ OC.L10N.register( "lib", { - "Cannot write into \"config\" directory!" : "A „config” könyvtár nem írható!", + "Cannot write into \"config\" directory!" : "A „config” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the config directory." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a konfigurációs könyvtáron.", + "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "De ha szeretné, hogy a config.php fájlja csak olvasható legyen, akkor állítsa benne igazra a „config_is_read_only” beállítást.", "See %s" : "Lásd %s", - "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "A %1$s alkalmazás fájljait helyetelenül cserélték le. Ellenőrizze, hogy kompatibilis-e a szerverrel .", - "Sample configuration detected" : "A példabeállítások vannak beállítva", - "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérlek olvasd el a dokumentációt és azt követően változtas a config.php-n!", + "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "A(z) %1$s alkalmazás fájljait helytelenül cserélték le. Ellenőrizze, hogy a verzió kompatibilis-e a kiszolgálóval.", + "Sample configuration detected" : "Példabeállítások észlelve", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik, hogy a példakonfigurációt másolta le. Ez működésképtelenné teheti a telepítést, és nem támogatott. Olvassa el a dokumentációt, mielőtt módosításokat véget a config.php fájlban.", + "%s email verification" : "%s e-mail ellenőrzés", + "Email verification" : "E-mail ellenőrzés", + "Click the following button to confirm your email." : "Kattintson a következő gombra, hogy megerősítse az e-mail-címét.", + "Click the following link to confirm your email." : "Kattintson a következő hivatkozásra, hogy megerősítse az e-mail-címét.", + "Confirm your email" : "E-mail-cím megerősítése", "Other activities" : "Egyéb tevékenységek", "%1$s and %2$s" : "%1$s és %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s és %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s és %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s és %5$s", - "Education Edition" : "Oktatási verzió", + "Education Edition" : "Oktatási kiadás", "Enterprise bundle" : "Vállalati csomag", "Groupware bundle" : "Csoportmunka csomag", "Hub bundle" : "Központi csomag", "Social sharing bundle" : "Közösségi megosztás csomag", - "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.", - "PHP with a version lower than %s is required." : "Ennél régebbi PHP szükséges: %s.", - "%sbit or higher PHP required." : "%sbites vagy újabb PHP szükséges.", + "PHP %s or higher is required." : "PHP %s vagy újabb szükséges.", + "PHP with a version lower than %s is required." : "Ennél régebbi PHP verzió szükséges: %s.", + "%sbit or higher PHP required." : "%s bites vagy újabb PHP szükséges.", "The following architectures are supported: %s" : "A következő architektúrák támogatottak: %s", "The following databases are supported: %s" : "A következő adatbázisok támogatottak: %s", "The command line tool %s could not be found" : "A parancssori eszköz nem található: %s", - "The library %s is not available." : "A könyvtár %s nem áll rendelkezésre.", - "Library %1$s with a version higher than %2$s is required - available version %3$s." : "%1$s könyvtár %2$s vagy újabb verziója szükséges - elérhető verzió: %3$s.", - "Library %1$s with a version lower than %2$s is required - available version %3$s." : "%1$s könyvtár %2$s vagy régebbi verziója szükséges - elérhető verzió: %3$s.", + "The library %s is not available." : "A(z) %s programkönyvtár nem érhető el.", + "Library %1$s with a version higher than %2$s is required - available version %3$s." : "A(z) %1$s programkönyvtár %2$s vagy újabb verziója szükséges – elérhető verzió: %3$s.", + "Library %1$s with a version lower than %2$s is required - available version %3$s." : "A(z) %1$s programkönyvtár %2$s vagy régebbi verziója szükséges – elérhető verzió: %3$s.", "The following platforms are supported: %s" : "A következő platformok támogatottak: %s", - "Server version %s or higher is required." : "%s vagy újabb szerver verzió szükséges.", - "Server version %s or lower is required." : "%s vagy régebbi szerver verzió szükséges.", - "Logged in user must be an admin or sub admin" : "A bejelentkezett felhasználónak rendszergazdának vagy al rendszergazgának kell lennie", + "Server version %s or higher is required." : "%s vagy újabb kiszolgálóverzió szükséges.", + "Server version %s or lower is required." : "%s vagy régebbi kiszolgálóverzió szükséges.", + "Logged in user must be an admin, a sub admin or gotten special right to access this setting" : "A bejelentkezett felhasználónak rendszergazdának vagy alrendszergazdának kell lennie, vagy speciális hozzáféréssel kell rendelkeznie ehhez a beállításhoz", + "Logged in user must be an admin or sub admin" : "A bejelentkezett felhasználónak rendszergazdának vagy alrendszergazgának kell lennie", "Logged in user must be an admin" : "A bejelentkezett felhasználónak rendszergazdának kell lennie", "Wiping of device %s has started" : "A(z) %s eszköz törlése megkezdődött", - "Wiping of device »%s« has started" : "A »%s« eszköz törlése megkezdődött", - "»%s« started remote wipe" : "»%s« elindította a távoli törlést", - "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "A »%s« eszköz vagy alkalmazás elindította a távoli törlési folyamatot. A folyamat befejezése után újabb e-mailt fog kapni", + "Wiping of device »%s« has started" : "A(z) „%s” eszköz törlése megkezdődött", + "»%s« started remote wipe" : "„%s” elindította a távoli törlést", + "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "A(z) „%s” eszköz vagy alkalmazás elindította a távoli törlési folyamatot. A folyamat befejezése után újabb e-mailt fog kapni.", "Wiping of device %s has finished" : "A(z) %s eszköz törlése befejeződött", - "Wiping of device »%s« has finished" : "A »%s« eszköz törlése befejeződött", - "»%s« finished remote wipe" : "»%s« befejezte a távoli törlést", - "Device or application »%s« has finished the remote wipe process." : "A(z) »%s« eszköz vagy alkalmazás befejezte a távoli törlés folyamatát.", + "Wiping of device »%s« has finished" : "A(z) „%s” eszköz törlése befejeződött", + "»%s« finished remote wipe" : "A(z) „%s” befejezte a távoli törlést", + "Device or application »%s« has finished the remote wipe process." : "A(z) „%s” eszköz vagy alkalmazás befejezte a távoli törlés folyamatát.", "Remote wipe started" : "A távoli törlés elindult", "A remote wipe was started on device %s" : "Távoli törlés indult a(z) %s eszközön", "Remote wipe finished" : "A távoli törlés befejeződött", - "The remote wipe on %s has finished" : "%s távoli törlése befejeződött", + "The remote wipe on %s has finished" : "A(z) %s távoli törlése befejeződött", "Authentication" : "Hitelesítés", - "Unknown filetype" : "Ismeretlen fájl típus", - "Invalid image" : "Hibás kép", - "Avatar image is not square" : "Az avatár kép nem négyzetes.", + "Unknown filetype" : "Ismeretlen fájltípus", + "Invalid image" : "Érvénytelen kép", + "Avatar image is not square" : "A profilkép nem négyzetes.", + "View profile" : "Profil megtekintése", "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], - "next month" : "következő hónap", + "next month" : "jövő hónapban", "last month" : "múlt hónapban", "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], - "next year" : "következő évben", + "next year" : "jövőre", "last year" : "tavaly", "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], @@ -66,56 +75,76 @@ OC.L10N.register( "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", "Empty file" : "Üres fájl", - "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Engedélyezze az alkalmazásbeállításokban, vagy lépjen kapcsolatba a rendszergazdával.", "File already exists" : "A fájl már létezik", "Invalid path" : "Érvénytelen útvonal", "Failed to create file from template" : "Nem sikerült létrehozni a fájlt a sablonból", "Templates" : "Sablonok", - "File name is a reserved word" : "A fajl neve egy rezervált szó", - "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", - "File name is too long" : "A fájlnév túl hosszú!", - "Dot files are not allowed" : "Pontozott fájlok nem engedétlyezettek", - "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", - "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", - "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "File name is a reserved word" : "A fájl neve egy fenntartott szó", + "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz", + "File name is too long" : "A fájlnév túl hosszú", + "Dot files are not allowed" : "A ponttal kezdődő fájlok nem engedélyezettek", + "Empty filename is not allowed" : "Az üres fájlnév nem engedélyezett", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert az appinfo fájl nem olvasható.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert nem kompatibilis ezzel a kiszolgálóverzióval.", "__language_name__" : "Magyar", - "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, ne válaszoljon rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", "Log out" : "Kijelentkezés", "Users" : "Felhasználók", + "Email" : "E-mail", + "Mail %s" : "Levél küldése ide: %s", + "Phone" : "Telefon", + "Call %s" : "%s hívása", + "Twitter" : "Twitter", + "View %s on Twitter" : "%s megtekintése a Twittere", + "Website" : "Weboldal", + "Visit %s" : "%s felkeresése", + "Address" : "Cím", + "Profile picture" : "Profilkép", + "About" : "Névjegy", + "Full name" : "Teljes név", + "Headline" : "Főcím", + "Organisation" : "Szervezet", + "Role" : "Szerepkör", "Unknown user" : "Ismeretlen felhasználó", "Additional settings" : "További beállítások", - "%s enter the database username and name." : "%s add meg az adatbázis nevét és felhasználónevét", - "%s enter the database username." : "%s adja meg az adatbázist elérő felhasználó login nevét.", + "%s enter the database username and name." : "%s adja meg az adatbázis nevét és a felhasználónevet.", + "%s enter the database username." : "%s adja meg az adatbázishoz tartozó felhasználónevet.", "%s enter the database name." : "%s adja meg az adatbázis nevét.", "%s you may not use dots in the database name" : "%s az adatbázis neve nem tartalmazhat pontot", - "MySQL username and/or password not valid" : "A MySQL felhasználónév és/vagy jelszó érvénytelen", - "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", + "MySQL username and/or password not valid" : "A MySQL felhasználónév vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnia.", "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", - "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", - "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", - "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", - "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", - "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Kérlek távolítsd el az open_basedir beállítást a php.ini-ből, vagy válts 64bit-es PHP-ra.", - "Set an admin username." : "Állítson be egy rendszergazdai felhasználónevet!", - "Set an admin password." : "Állítson be egy rendszergazdai jelszót!", - "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Az %s megosztási alrendszernek támogatnia kell az OCP\\Share_Backend interface-t", - "Sharing backend %s not found" : "A %s megosztási alrendszer nem található", - "Sharing backend for %s not found" : "%s megosztási alrendszere nem található", - "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta veled »%2$s« és hozzá akarja adni:", - "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta veled »%2$s« és hozzá akarja adni", - "»%s« added a note to a file shared with you" : "»%s« megjegyést fűzött a veled megosztott fájlhoz", - "Open »%s«" : "»%s« megnyitása", - "%1$s via %2$s" : "%1$s - %2$s", - "You are not allowed to share %s" : "Nincs jogosultságod %s megosztására", + "Oracle username and/or password not valid" : "Az Oracle felhasználónév vagy jelszó érvénytelen", + "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név vagy jelszó érvénytelen", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott, és a %s nem lesz teljesen működőképes. Csak saját felelősségre használja.", + "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux kiszolgálót használni.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32 bites PHP környezetben fut, és az open_basedir be lett állítva a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat, így erősen ellenjavallott.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Távolítsa el az open_basedir beállítást a php.ini fájlból, vagy váltson 64 bites PHP-ra.", + "Set an admin username." : "Állítson be egy rendszergazdai felhasználónevet.", + "Set an admin password." : "Állítson be egy rendszergazdai jelszót.", + "Cannot create or write into the data directory %s" : "Nem létre létrehozni vagy beleírni a(z) %s adatkönyvtárba", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A(z) %s megosztási alrendszernek meg kell valósítania az OCP\\Share_Backend interfészt", + "Sharing backend %s not found" : "A(z) %s megosztási alrendszer nem található", + "Sharing backend for %s not found" : "A(z) %s megosztási alrendszere nem található", + "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta Önnel: „%2$s”, és hozzá akarja adni:", + "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta Önnel: „%2$s”, és hozzá akarja adni", + "»%s« added a note to a file shared with you" : "„%s” megjegyzést fűzött az Önnel megosztott fájlhoz", + "Open »%s«" : "A(z) „%s” megnyitása", + "%1$s via %2$s" : "%1$s – %2$s", + "You are not allowed to share %s" : "Nincs jogosultsága a(z) %s megosztásához", + "Cannot increase permissions of %s" : "A(z) %s engedélyei nem bővíthetők", + "Files cannot be shared with delete permissions" : "A fájlok nem oszthatók meg törlési jogosultsággal", + "Files cannot be shared with create permissions" : "A fájlok nem oszthatók meg létrehozási jogosultsággal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Nem állítható be %n napnál távolabbi lejárati dátum","Nem állítható be %n napnál távolabbi lejárati dátum"], "Sharing is only allowed with group members" : "A megosztás csak a csoport tagjaival engedélyezett", "Sharing %s failed, because this item is already shared with user %s" : "A(z) %s megosztása nem sikerült, mert ez az elem már meg van osztva a(z) %s felhasználóval", - "%1$s shared »%2$s« with you" : "%1$s megosztotta veled »%2$s«", - "%1$s shared »%2$s« with you." : "%1$s megosztotta veled »%2$s«.", + "%1$s shared »%2$s« with you" : "%1$s megosztotta Önnel: „%2$s”", + "%1$s shared »%2$s« with you." : "%1$s megosztotta Önnel: „%2$s”.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", @@ -164,74 +193,94 @@ OC.L10N.register( "Oct." : "Okt.", "Nov." : "Nov.", "Dec." : "Dec.", - "The user limit has been reached and the user was not created." : "Elérte a felhasználói korlátot, és a felhasználót nem jött létre.", - "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", + "The user limit has been reached and the user was not created." : "Elérte a felhasználói korlátot, és a felhasználó nem jött létre.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: „a-z”, „A-Z”, „0-9”, és „_.@-'”", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "Username is invalid because files already exist for this user" : "A felhasználónév érvénytelen, mert már vannak fájlok ehhez a felhasználóhoz", "A valid password must be provided" : "Érvényes jelszót kell megadnia", - "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "The username is already being used" : "Ez a felhasználónév már foglalt", "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", - "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "\"%1$s\" alkalmazást nem lehet telepíteni, mert a következő függőségek nem teljesülnek: %2$s", + "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "A(z) „%1$s” alkalmazást nem lehet telepíteni, mert a következő függőségek nem teljesülnek: %2$s", "a safe home for all your data" : "egy biztonságos hely az adataidnak", - "File is currently busy, please try again later" : "A fájl jelenleg elfoglalt, kérjük próbáld újra később!", + "File is currently busy, please try again later" : "A fájl jelenleg foglalt, próbálja újra később", + "Cannot read file" : "A fájl nem olvasható", "Application is not enabled" : "Az alkalmazás nincs engedélyezve", - "Authentication error" : "Azonosítási hiba", + "Authentication error" : "Hitelesítési hiba", "Token expired. Please reload page." : "A token lejárt. Frissítse az oldalt.", "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", - "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Avagy, ha jobbnak tűnik tarthatod a config.php fájlt olvashatónak, csak engedélyezd a \"config_is_read_only\" kapcsolót. Továbbiak itt:%s", - "PHP module %s not installed." : "A %s PHP modul nincs telepítve.", - "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", - "PHP setting \"%s\" is not set to \"%s\"." : "%s PHP beállítás nincs \"%s\"-re állítva.", - "Adjusting this setting in php.ini will make Nextcloud run again" : "A beállítás változtatása a php.ini fájlban újra futtatja a Nexcloud-ot", - "libxml2 2.7.0 is at least required. Currently %s is installed." : "Legalább libxml2 2.7.0 szükséges. Jelenleg telepített: %s", - "To fix this issue update your libxml2 version and restart your web server." : "A probléma javításához frissítsd a libxml2 verziót és indítsd újra a webszervert.", + "Cannot write into \"config\" directory." : "A „config” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a config könyvtáron. Lásd %s.", + "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Vagy, ha jobbnak látja, hogy a config.php fájl csak olvasható legyen, akkor állítsa igazra a „config_is_read_only” beállítást. Lásd: %s.", + "Cannot write into \"apps\" directory." : "Az „apps” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban.", + "Cannot create \"data\" directory." : "A „data” könyvtár nem hozható létre.", + "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Az engedélyek általában úgy javíthatók, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Your data directory is not writable." : "Az adatkönyvtár nem írható.", + "Setting locale to %s failed." : "A területi beállítás „%s” értékre állítása sikertelen.", + "Please install one of these locales on your system and restart your web server." : "Telepítse a következő területi beállítások valamelyikét a rendszeren, és indítsa újra a webkiszolgálót.", + "PHP module %s not installed." : "A(z) %s PHP modul nincs telepítve.", + "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult.", + "PHP setting \"%s\" is not set to \"%s\"." : "A(z) %s PHP beállítás nincs erre állítva: „%s”.", + "Adjusting this setting in php.ini will make Nextcloud run again" : "A beállítás a php.ini fájlban történő módosításai után újra fog futni a Nexcloud", + "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "Az <code>mbstring.func_overload</code> a várt <code>0</code> érték helyett erre van állítva: <code>%s</code>.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "A probléma javításához állítsa <code>0</code>-ra az <code>mbstring.func_overload</code> értékét a php.ini-ben.", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Legalább libxml2 2.7.0 szükséges. Jelenleg telepített: %s.", + "To fix this issue update your libxml2 version and restart your web server." : "A probléma javításához frissítse a libxml2 verziót, és indítsa újra a webkiszolgálót.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.", - "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?", - "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!", - "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!", - "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", - "Action \"%s\" not supported or implemented." : "\"%s\" művelet nem támogatott vagy nem ismert.", - "Authentication failed, wrong token or provider ID given" : "Azonosítás sikertelen, hibás token vagy szolgáltató lett megadva", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár, mint például a Zend, az OPcache vagy az eAccelererator okozza.", + "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsem szerepelnek?", + "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webkiszolgálót.", + "PostgreSQL >= 9 required." : "PostgreSQL >= 9 szükséges.", + "Please upgrade your database version." : "Frissítse az adatbázis verzióját.", + "Your data directory is readable by other users." : "Az adatkönyvtára más felhasználók által is olvasható.", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználók ne listázhassák.", + "Your data directory must be an absolute path." : "Az adatkönyvtárnak abszolút útvonalnak kell lennie", + "Check the value of \"datadirectory\" in your configuration." : "Ellenőrizze a „datadirectory” értékét a konfigurációban.", + "Your data directory is invalid." : "Az adatkönyvtár érvénytelen.", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződjön meg róla, hogy az adatmappa gyökerében van-e egy „.ocdata” fájl.", + "Action \"%s\" not supported or implemented." : "A(z) „%s” művelet nem támogatott vagy nem ismert.", + "Authentication failed, wrong token or provider ID given" : "Hitelesítés sikertelen, hibás token vagy szolgáltatóazonosító lett megadva", "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "A következő paraméterek hiányoznak, hogy végrehajtható legyen a kérés. Paraméterek: \"%s\"", - "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" már hasznalatban van a Felhő szolgáltatónál: \"%2$s\"", - "Cloud Federation Provider with ID: \"%s\" does not exist." : "\"%s\" ID nem létezik a Felhő szolgáltatónal.", - "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", - "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", + "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "A(z) „%1$s” azonosítót már használja a(z) „%2$s” felhős föderációszolgáltató", + "Cloud Federation Provider with ID: \"%s\" does not exist." : "A(z) „%s” azonosító nem létezik a Felhő föderációszolgáltatónal.", + "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: „%s”.", + "Storage unauthorized. %s" : "A tárolóhoz nincs jogosultság. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", "Storage connection error. %s" : "Tároló kapcsolódási hiba. %s", - "Storage is temporarily not available" : "A tároló átmenetileg nem érthető el", - "Storage connection timeout. %s" : "Tároló kapcsolat időtúllépés. %s", - "This can usually be fixed by giving the webserver write access to the config directory" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra.", - "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Avagy, ha jobbnak tűnik tarthatod a config.php fájlt olvashatónak, csak engedélyezd a \"config_is_read_only\" kapcsolót.", - "This can usually be fixed by giving the webserver write access to the config directory." : "Ez általában úgy javítható, hogy a webszervernek írási hozzáférést biztosít a konfigurációs könyvtárhoz.", - "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", - "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", - "Can’t increase permissions of %s" : "A(z) %s engedélyei nem kibővíthetők", - "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", - "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", - "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", - "Can't read file" : "Nem olvasható a fájl", - "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra. Lásd: %s", - "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", - "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Ezt általában úgy lehet kijavítani, hogy a webszervernek írási hozzáférést ad az alkalmazások könyvtárához, vagy letiltja az alkalmazásboltot a konfigurációs fájlban.", - "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", - "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", - "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", - "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", - "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", - "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload értéke: \"%s\" az elvárt \"0\" helyett", - "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "A probléma javításához állítsd a <code>mbstring.func_overload</code> értékét <code>0</code>-ra a php.ini fájlban.", + "Storage is temporarily not available" : "A tároló átmenetileg nem érhető el", + "Storage connection timeout. %s" : "Időtúllépés a tárolókapcsolatban. %s", + "This can usually be fixed by giving the webserver write access to the config directory" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz", + "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Vagy, ha jobbnak látja, hogy a config.php fájl csak olvasható legyen, akkor állítsa igazra a „config_is_read_only” beállítást.", + "This can usually be fixed by giving the webserver write access to the config directory." : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz.", + "Can't create or write into the data directory %s" : "Nem létre létrehozni vagy beleírni a(z) %s adatkönyvtárba", + "Invalid Federated Cloud ID" : "Érvénytelen föderált felhőazonosító", + "Can’t increase permissions of %s" : "A(z) %s engedélyei nem bővíthetők", + "Files can’t be shared with delete permissions" : "A fájlok nem oszthatók meg törlési jogosultsággal", + "Files can’t be shared with create permissions" : "A fájlok nem oszthatók meg létrehozási jogosultsággal", + "Can’t set expiration date more than %s days in the future" : "Nem állítható be %s napnál távolabbi lejárati dátum", + "Can't read file" : "A fájl nem olvasható", + "Cannot write into \"config\" directory" : "A „config” könyvtár nem írható", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz. Lásd: %s.", + "Cannot write into \"apps\" directory" : "Az „apps” könyvtár nem írható", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban.", + "Cannot create \"data\" directory" : "A „data” könyvtár nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a gyökérkönyvtárhoz. Lásd: %s.", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Az engedélyek általában úgy javíthatók, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Setting locale to %s failed" : "A területi beállítás „%s” értékre állítása sikertelen", + "Please install one of these locales on your system and restart your webserver." : "Telepítse a következő területi beállítások valamelyikét a rendszeren, és indítsa újra a webkiszolgálót.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "Az mbstring.func_overload a várt 0 érték helyett erre van állítva: „%s”", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "A probléma javításához állítsa <code>0</code>-ra az <code>mbstring.func_overload</code> értékét a php.ini-ben", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges", - "Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!", - "Your data directory is readable by other users" : "Az adatkönyvtára mások által olvasható", - "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", - "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", - "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen" + "Please upgrade your database version" : "Frissítse az adatbázis verzióját", + "Your data directory is readable by other users" : "Az adatkönyvtára más felhasználók által is olvasható", + "Your data directory must be an absolute path" : "Az adatkönyvtárnak abszolút útvonalnak kell lennie", + "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizze a „datadirectory” értékét a konfigurációban", + "Your data directory is invalid" : "Az adatkönyvtár érvénytelen", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the App Store in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban." }, "nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/hu.json b/lib/l10n/hu.json index a641b1a50cf..c7fbe267c64 100644 --- a/lib/l10n/hu.json +++ b/lib/l10n/hu.json @@ -1,59 +1,68 @@ { "translations": { - "Cannot write into \"config\" directory!" : "A „config” könyvtár nem írható!", + "Cannot write into \"config\" directory!" : "A „config” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the config directory." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a konfigurációs könyvtáron.", + "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "De ha szeretné, hogy a config.php fájlja csak olvasható legyen, akkor állítsa benne igazra a „config_is_read_only” beállítást.", "See %s" : "Lásd %s", - "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "A %1$s alkalmazás fájljait helyetelenül cserélték le. Ellenőrizze, hogy kompatibilis-e a szerverrel .", - "Sample configuration detected" : "A példabeállítások vannak beállítva", - "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérlek olvasd el a dokumentációt és azt követően változtas a config.php-n!", + "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "A(z) %1$s alkalmazás fájljait helytelenül cserélték le. Ellenőrizze, hogy a verzió kompatibilis-e a kiszolgálóval.", + "Sample configuration detected" : "Példabeállítások észlelve", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik, hogy a példakonfigurációt másolta le. Ez működésképtelenné teheti a telepítést, és nem támogatott. Olvassa el a dokumentációt, mielőtt módosításokat véget a config.php fájlban.", + "%s email verification" : "%s e-mail ellenőrzés", + "Email verification" : "E-mail ellenőrzés", + "Click the following button to confirm your email." : "Kattintson a következő gombra, hogy megerősítse az e-mail-címét.", + "Click the following link to confirm your email." : "Kattintson a következő hivatkozásra, hogy megerősítse az e-mail-címét.", + "Confirm your email" : "E-mail-cím megerősítése", "Other activities" : "Egyéb tevékenységek", "%1$s and %2$s" : "%1$s és %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s és %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s és %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s és %5$s", - "Education Edition" : "Oktatási verzió", + "Education Edition" : "Oktatási kiadás", "Enterprise bundle" : "Vállalati csomag", "Groupware bundle" : "Csoportmunka csomag", "Hub bundle" : "Központi csomag", "Social sharing bundle" : "Közösségi megosztás csomag", - "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.", - "PHP with a version lower than %s is required." : "Ennél régebbi PHP szükséges: %s.", - "%sbit or higher PHP required." : "%sbites vagy újabb PHP szükséges.", + "PHP %s or higher is required." : "PHP %s vagy újabb szükséges.", + "PHP with a version lower than %s is required." : "Ennél régebbi PHP verzió szükséges: %s.", + "%sbit or higher PHP required." : "%s bites vagy újabb PHP szükséges.", "The following architectures are supported: %s" : "A következő architektúrák támogatottak: %s", "The following databases are supported: %s" : "A következő adatbázisok támogatottak: %s", "The command line tool %s could not be found" : "A parancssori eszköz nem található: %s", - "The library %s is not available." : "A könyvtár %s nem áll rendelkezésre.", - "Library %1$s with a version higher than %2$s is required - available version %3$s." : "%1$s könyvtár %2$s vagy újabb verziója szükséges - elérhető verzió: %3$s.", - "Library %1$s with a version lower than %2$s is required - available version %3$s." : "%1$s könyvtár %2$s vagy régebbi verziója szükséges - elérhető verzió: %3$s.", + "The library %s is not available." : "A(z) %s programkönyvtár nem érhető el.", + "Library %1$s with a version higher than %2$s is required - available version %3$s." : "A(z) %1$s programkönyvtár %2$s vagy újabb verziója szükséges – elérhető verzió: %3$s.", + "Library %1$s with a version lower than %2$s is required - available version %3$s." : "A(z) %1$s programkönyvtár %2$s vagy régebbi verziója szükséges – elérhető verzió: %3$s.", "The following platforms are supported: %s" : "A következő platformok támogatottak: %s", - "Server version %s or higher is required." : "%s vagy újabb szerver verzió szükséges.", - "Server version %s or lower is required." : "%s vagy régebbi szerver verzió szükséges.", - "Logged in user must be an admin or sub admin" : "A bejelentkezett felhasználónak rendszergazdának vagy al rendszergazgának kell lennie", + "Server version %s or higher is required." : "%s vagy újabb kiszolgálóverzió szükséges.", + "Server version %s or lower is required." : "%s vagy régebbi kiszolgálóverzió szükséges.", + "Logged in user must be an admin, a sub admin or gotten special right to access this setting" : "A bejelentkezett felhasználónak rendszergazdának vagy alrendszergazdának kell lennie, vagy speciális hozzáféréssel kell rendelkeznie ehhez a beállításhoz", + "Logged in user must be an admin or sub admin" : "A bejelentkezett felhasználónak rendszergazdának vagy alrendszergazgának kell lennie", "Logged in user must be an admin" : "A bejelentkezett felhasználónak rendszergazdának kell lennie", "Wiping of device %s has started" : "A(z) %s eszköz törlése megkezdődött", - "Wiping of device »%s« has started" : "A »%s« eszköz törlése megkezdődött", - "»%s« started remote wipe" : "»%s« elindította a távoli törlést", - "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "A »%s« eszköz vagy alkalmazás elindította a távoli törlési folyamatot. A folyamat befejezése után újabb e-mailt fog kapni", + "Wiping of device »%s« has started" : "A(z) „%s” eszköz törlése megkezdődött", + "»%s« started remote wipe" : "„%s” elindította a távoli törlést", + "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "A(z) „%s” eszköz vagy alkalmazás elindította a távoli törlési folyamatot. A folyamat befejezése után újabb e-mailt fog kapni.", "Wiping of device %s has finished" : "A(z) %s eszköz törlése befejeződött", - "Wiping of device »%s« has finished" : "A »%s« eszköz törlése befejeződött", - "»%s« finished remote wipe" : "»%s« befejezte a távoli törlést", - "Device or application »%s« has finished the remote wipe process." : "A(z) »%s« eszköz vagy alkalmazás befejezte a távoli törlés folyamatát.", + "Wiping of device »%s« has finished" : "A(z) „%s” eszköz törlése befejeződött", + "»%s« finished remote wipe" : "A(z) „%s” befejezte a távoli törlést", + "Device or application »%s« has finished the remote wipe process." : "A(z) „%s” eszköz vagy alkalmazás befejezte a távoli törlés folyamatát.", "Remote wipe started" : "A távoli törlés elindult", "A remote wipe was started on device %s" : "Távoli törlés indult a(z) %s eszközön", "Remote wipe finished" : "A távoli törlés befejeződött", - "The remote wipe on %s has finished" : "%s távoli törlése befejeződött", + "The remote wipe on %s has finished" : "A(z) %s távoli törlése befejeződött", "Authentication" : "Hitelesítés", - "Unknown filetype" : "Ismeretlen fájl típus", - "Invalid image" : "Hibás kép", - "Avatar image is not square" : "Az avatár kép nem négyzetes.", + "Unknown filetype" : "Ismeretlen fájltípus", + "Invalid image" : "Érvénytelen kép", + "Avatar image is not square" : "A profilkép nem négyzetes.", + "View profile" : "Profil megtekintése", "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], - "next month" : "következő hónap", + "next month" : "jövő hónapban", "last month" : "múlt hónapban", "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], - "next year" : "következő évben", + "next year" : "jövőre", "last year" : "tavaly", "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], @@ -64,56 +73,76 @@ "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", "Empty file" : "Üres fájl", - "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Engedélyezze az alkalmazásbeállításokban, vagy lépjen kapcsolatba a rendszergazdával.", "File already exists" : "A fájl már létezik", "Invalid path" : "Érvénytelen útvonal", "Failed to create file from template" : "Nem sikerült létrehozni a fájlt a sablonból", "Templates" : "Sablonok", - "File name is a reserved word" : "A fajl neve egy rezervált szó", - "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", - "File name is too long" : "A fájlnév túl hosszú!", - "Dot files are not allowed" : "Pontozott fájlok nem engedétlyezettek", - "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", - "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", - "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "File name is a reserved word" : "A fájl neve egy fenntartott szó", + "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz", + "File name is too long" : "A fájlnév túl hosszú", + "Dot files are not allowed" : "A ponttal kezdődő fájlok nem engedélyezettek", + "Empty filename is not allowed" : "Az üres fájlnév nem engedélyezett", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert az appinfo fájl nem olvasható.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert nem kompatibilis ezzel a kiszolgálóverzióval.", "__language_name__" : "Magyar", - "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, ne válaszoljon rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", "Log out" : "Kijelentkezés", "Users" : "Felhasználók", + "Email" : "E-mail", + "Mail %s" : "Levél küldése ide: %s", + "Phone" : "Telefon", + "Call %s" : "%s hívása", + "Twitter" : "Twitter", + "View %s on Twitter" : "%s megtekintése a Twittere", + "Website" : "Weboldal", + "Visit %s" : "%s felkeresése", + "Address" : "Cím", + "Profile picture" : "Profilkép", + "About" : "Névjegy", + "Full name" : "Teljes név", + "Headline" : "Főcím", + "Organisation" : "Szervezet", + "Role" : "Szerepkör", "Unknown user" : "Ismeretlen felhasználó", "Additional settings" : "További beállítások", - "%s enter the database username and name." : "%s add meg az adatbázis nevét és felhasználónevét", - "%s enter the database username." : "%s adja meg az adatbázist elérő felhasználó login nevét.", + "%s enter the database username and name." : "%s adja meg az adatbázis nevét és a felhasználónevet.", + "%s enter the database username." : "%s adja meg az adatbázishoz tartozó felhasználónevet.", "%s enter the database name." : "%s adja meg az adatbázis nevét.", "%s you may not use dots in the database name" : "%s az adatbázis neve nem tartalmazhat pontot", - "MySQL username and/or password not valid" : "A MySQL felhasználónév és/vagy jelszó érvénytelen", - "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", + "MySQL username and/or password not valid" : "A MySQL felhasználónév vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnia.", "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", - "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", - "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", - "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", - "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", - "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Kérlek távolítsd el az open_basedir beállítást a php.ini-ből, vagy válts 64bit-es PHP-ra.", - "Set an admin username." : "Állítson be egy rendszergazdai felhasználónevet!", - "Set an admin password." : "Állítson be egy rendszergazdai jelszót!", - "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Az %s megosztási alrendszernek támogatnia kell az OCP\\Share_Backend interface-t", - "Sharing backend %s not found" : "A %s megosztási alrendszer nem található", - "Sharing backend for %s not found" : "%s megosztási alrendszere nem található", - "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta veled »%2$s« és hozzá akarja adni:", - "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta veled »%2$s« és hozzá akarja adni", - "»%s« added a note to a file shared with you" : "»%s« megjegyést fűzött a veled megosztott fájlhoz", - "Open »%s«" : "»%s« megnyitása", - "%1$s via %2$s" : "%1$s - %2$s", - "You are not allowed to share %s" : "Nincs jogosultságod %s megosztására", + "Oracle username and/or password not valid" : "Az Oracle felhasználónév vagy jelszó érvénytelen", + "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név vagy jelszó érvénytelen", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott, és a %s nem lesz teljesen működőképes. Csak saját felelősségre használja.", + "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux kiszolgálót használni.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32 bites PHP környezetben fut, és az open_basedir be lett állítva a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat, így erősen ellenjavallott.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Távolítsa el az open_basedir beállítást a php.ini fájlból, vagy váltson 64 bites PHP-ra.", + "Set an admin username." : "Állítson be egy rendszergazdai felhasználónevet.", + "Set an admin password." : "Állítson be egy rendszergazdai jelszót.", + "Cannot create or write into the data directory %s" : "Nem létre létrehozni vagy beleírni a(z) %s adatkönyvtárba", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A(z) %s megosztási alrendszernek meg kell valósítania az OCP\\Share_Backend interfészt", + "Sharing backend %s not found" : "A(z) %s megosztási alrendszer nem található", + "Sharing backend for %s not found" : "A(z) %s megosztási alrendszere nem található", + "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta Önnel: „%2$s”, és hozzá akarja adni:", + "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta Önnel: „%2$s”, és hozzá akarja adni", + "»%s« added a note to a file shared with you" : "„%s” megjegyzést fűzött az Önnel megosztott fájlhoz", + "Open »%s«" : "A(z) „%s” megnyitása", + "%1$s via %2$s" : "%1$s – %2$s", + "You are not allowed to share %s" : "Nincs jogosultsága a(z) %s megosztásához", + "Cannot increase permissions of %s" : "A(z) %s engedélyei nem bővíthetők", + "Files cannot be shared with delete permissions" : "A fájlok nem oszthatók meg törlési jogosultsággal", + "Files cannot be shared with create permissions" : "A fájlok nem oszthatók meg létrehozási jogosultsággal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Nem állítható be %n napnál távolabbi lejárati dátum","Nem állítható be %n napnál távolabbi lejárati dátum"], "Sharing is only allowed with group members" : "A megosztás csak a csoport tagjaival engedélyezett", "Sharing %s failed, because this item is already shared with user %s" : "A(z) %s megosztása nem sikerült, mert ez az elem már meg van osztva a(z) %s felhasználóval", - "%1$s shared »%2$s« with you" : "%1$s megosztotta veled »%2$s«", - "%1$s shared »%2$s« with you." : "%1$s megosztotta veled »%2$s«.", + "%1$s shared »%2$s« with you" : "%1$s megosztotta Önnel: „%2$s”", + "%1$s shared »%2$s« with you." : "%1$s megosztotta Önnel: „%2$s”.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", @@ -162,74 +191,94 @@ "Oct." : "Okt.", "Nov." : "Nov.", "Dec." : "Dec.", - "The user limit has been reached and the user was not created." : "Elérte a felhasználói korlátot, és a felhasználót nem jött létre.", - "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", + "The user limit has been reached and the user was not created." : "Elérte a felhasználói korlátot, és a felhasználó nem jött létre.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: „a-z”, „A-Z”, „0-9”, és „_.@-'”", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "Username is invalid because files already exist for this user" : "A felhasználónév érvénytelen, mert már vannak fájlok ehhez a felhasználóhoz", "A valid password must be provided" : "Érvényes jelszót kell megadnia", - "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "The username is already being used" : "Ez a felhasználónév már foglalt", "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", - "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "\"%1$s\" alkalmazást nem lehet telepíteni, mert a következő függőségek nem teljesülnek: %2$s", + "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "A(z) „%1$s” alkalmazást nem lehet telepíteni, mert a következő függőségek nem teljesülnek: %2$s", "a safe home for all your data" : "egy biztonságos hely az adataidnak", - "File is currently busy, please try again later" : "A fájl jelenleg elfoglalt, kérjük próbáld újra később!", + "File is currently busy, please try again later" : "A fájl jelenleg foglalt, próbálja újra később", + "Cannot read file" : "A fájl nem olvasható", "Application is not enabled" : "Az alkalmazás nincs engedélyezve", - "Authentication error" : "Azonosítási hiba", + "Authentication error" : "Hitelesítési hiba", "Token expired. Please reload page." : "A token lejárt. Frissítse az oldalt.", "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", - "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Avagy, ha jobbnak tűnik tarthatod a config.php fájlt olvashatónak, csak engedélyezd a \"config_is_read_only\" kapcsolót. Továbbiak itt:%s", - "PHP module %s not installed." : "A %s PHP modul nincs telepítve.", - "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", - "PHP setting \"%s\" is not set to \"%s\"." : "%s PHP beállítás nincs \"%s\"-re állítva.", - "Adjusting this setting in php.ini will make Nextcloud run again" : "A beállítás változtatása a php.ini fájlban újra futtatja a Nexcloud-ot", - "libxml2 2.7.0 is at least required. Currently %s is installed." : "Legalább libxml2 2.7.0 szükséges. Jelenleg telepített: %s", - "To fix this issue update your libxml2 version and restart your web server." : "A probléma javításához frissítsd a libxml2 verziót és indítsd újra a webszervert.", + "Cannot write into \"config\" directory." : "A „config” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a config könyvtáron. Lásd %s.", + "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Vagy, ha jobbnak látja, hogy a config.php fájl csak olvasható legyen, akkor állítsa igazra a „config_is_read_only” beállítást. Lásd: %s.", + "Cannot write into \"apps\" directory." : "Az „apps” könyvtár nem írható.", + "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban.", + "Cannot create \"data\" directory." : "A „data” könyvtár nem hozható létre.", + "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Az engedélyek általában úgy javíthatók, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Your data directory is not writable." : "Az adatkönyvtár nem írható.", + "Setting locale to %s failed." : "A területi beállítás „%s” értékre állítása sikertelen.", + "Please install one of these locales on your system and restart your web server." : "Telepítse a következő területi beállítások valamelyikét a rendszeren, és indítsa újra a webkiszolgálót.", + "PHP module %s not installed." : "A(z) %s PHP modul nincs telepítve.", + "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult.", + "PHP setting \"%s\" is not set to \"%s\"." : "A(z) %s PHP beállítás nincs erre állítva: „%s”.", + "Adjusting this setting in php.ini will make Nextcloud run again" : "A beállítás a php.ini fájlban történő módosításai után újra fog futni a Nexcloud", + "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "Az <code>mbstring.func_overload</code> a várt <code>0</code> érték helyett erre van állítva: <code>%s</code>.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "A probléma javításához állítsa <code>0</code>-ra az <code>mbstring.func_overload</code> értékét a php.ini-ben.", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Legalább libxml2 2.7.0 szükséges. Jelenleg telepített: %s.", + "To fix this issue update your libxml2 version and restart your web server." : "A probléma javításához frissítse a libxml2 verziót, és indítsa újra a webkiszolgálót.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.", - "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?", - "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!", - "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!", - "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", - "Action \"%s\" not supported or implemented." : "\"%s\" művelet nem támogatott vagy nem ismert.", - "Authentication failed, wrong token or provider ID given" : "Azonosítás sikertelen, hibás token vagy szolgáltató lett megadva", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár, mint például a Zend, az OPcache vagy az eAccelererator okozza.", + "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsem szerepelnek?", + "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webkiszolgálót.", + "PostgreSQL >= 9 required." : "PostgreSQL >= 9 szükséges.", + "Please upgrade your database version." : "Frissítse az adatbázis verzióját.", + "Your data directory is readable by other users." : "Az adatkönyvtára más felhasználók által is olvasható.", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználók ne listázhassák.", + "Your data directory must be an absolute path." : "Az adatkönyvtárnak abszolút útvonalnak kell lennie", + "Check the value of \"datadirectory\" in your configuration." : "Ellenőrizze a „datadirectory” értékét a konfigurációban.", + "Your data directory is invalid." : "Az adatkönyvtár érvénytelen.", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződjön meg róla, hogy az adatmappa gyökerében van-e egy „.ocdata” fájl.", + "Action \"%s\" not supported or implemented." : "A(z) „%s” művelet nem támogatott vagy nem ismert.", + "Authentication failed, wrong token or provider ID given" : "Hitelesítés sikertelen, hibás token vagy szolgáltatóazonosító lett megadva", "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "A következő paraméterek hiányoznak, hogy végrehajtható legyen a kérés. Paraméterek: \"%s\"", - "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" már hasznalatban van a Felhő szolgáltatónál: \"%2$s\"", - "Cloud Federation Provider with ID: \"%s\" does not exist." : "\"%s\" ID nem létezik a Felhő szolgáltatónal.", - "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", - "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", + "ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "A(z) „%1$s” azonosítót már használja a(z) „%2$s” felhős föderációszolgáltató", + "Cloud Federation Provider with ID: \"%s\" does not exist." : "A(z) „%s” azonosító nem létezik a Felhő föderációszolgáltatónal.", + "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: „%s”.", + "Storage unauthorized. %s" : "A tárolóhoz nincs jogosultság. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", "Storage connection error. %s" : "Tároló kapcsolódási hiba. %s", - "Storage is temporarily not available" : "A tároló átmenetileg nem érthető el", - "Storage connection timeout. %s" : "Tároló kapcsolat időtúllépés. %s", - "This can usually be fixed by giving the webserver write access to the config directory" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra.", - "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Avagy, ha jobbnak tűnik tarthatod a config.php fájlt olvashatónak, csak engedélyezd a \"config_is_read_only\" kapcsolót.", - "This can usually be fixed by giving the webserver write access to the config directory." : "Ez általában úgy javítható, hogy a webszervernek írási hozzáférést biztosít a konfigurációs könyvtárhoz.", - "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", - "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", - "Can’t increase permissions of %s" : "A(z) %s engedélyei nem kibővíthetők", - "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", - "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", - "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", - "Can't read file" : "Nem olvasható a fájl", - "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra. Lásd: %s", - "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", - "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Ezt általában úgy lehet kijavítani, hogy a webszervernek írási hozzáférést ad az alkalmazások könyvtárához, vagy letiltja az alkalmazásboltot a konfigurációs fájlban.", - "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", - "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", - "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", - "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", - "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", - "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload értéke: \"%s\" az elvárt \"0\" helyett", - "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "A probléma javításához állítsd a <code>mbstring.func_overload</code> értékét <code>0</code>-ra a php.ini fájlban.", + "Storage is temporarily not available" : "A tároló átmenetileg nem érhető el", + "Storage connection timeout. %s" : "Időtúllépés a tárolókapcsolatban. %s", + "This can usually be fixed by giving the webserver write access to the config directory" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz", + "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Vagy, ha jobbnak látja, hogy a config.php fájl csak olvasható legyen, akkor állítsa igazra a „config_is_read_only” beállítást.", + "This can usually be fixed by giving the webserver write access to the config directory." : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz.", + "Can't create or write into the data directory %s" : "Nem létre létrehozni vagy beleírni a(z) %s adatkönyvtárba", + "Invalid Federated Cloud ID" : "Érvénytelen föderált felhőazonosító", + "Can’t increase permissions of %s" : "A(z) %s engedélyei nem bővíthetők", + "Files can’t be shared with delete permissions" : "A fájlok nem oszthatók meg törlési jogosultsággal", + "Files can’t be shared with create permissions" : "A fájlok nem oszthatók meg létrehozási jogosultsággal", + "Can’t set expiration date more than %s days in the future" : "Nem állítható be %s napnál távolabbi lejárati dátum", + "Can't read file" : "A fájl nem olvasható", + "Cannot write into \"config\" directory" : "A „config” könyvtár nem írható", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a konfigurációs könyvtárhoz. Lásd: %s.", + "Cannot write into \"apps\" directory" : "Az „apps” könyvtár nem írható", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban.", + "Cannot create \"data\" directory" : "A „data” könyvtár nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez általában úgy javítható, hogy a webkiszolgálónak írási hozzáférést biztosít a gyökérkönyvtárhoz. Lásd: %s.", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Az engedélyek általában úgy javíthatók, hogy írási jogosultságot ad a webkiszolgáló számára a gyökérkönyvtáron. Lásd %s.", + "Setting locale to %s failed" : "A területi beállítás „%s” értékre állítása sikertelen", + "Please install one of these locales on your system and restart your webserver." : "Telepítse a következő területi beállítások valamelyikét a rendszeren, és indítsa újra a webkiszolgálót.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "Az mbstring.func_overload a várt 0 érték helyett erre van állítva: „%s”", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "A probléma javításához állítsa <code>0</code>-ra az <code>mbstring.func_overload</code> értékét a php.ini-ben", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges", - "Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!", - "Your data directory is readable by other users" : "Az adatkönyvtára mások által olvasható", - "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", - "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", - "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen" + "Please upgrade your database version" : "Frissítse az adatbázis verzióját", + "Your data directory is readable by other users" : "Az adatkönyvtára más felhasználók által is olvasható", + "Your data directory must be an absolute path" : "Az adatkönyvtárnak abszolút útvonalnak kell lennie", + "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizze a „datadirectory” értékét a konfigurációban", + "Your data directory is invalid" : "Az adatkönyvtár érvénytelen", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the App Store in the config file." : "Ez általában úgy javítható, hogy írási jogosultságot ad a webkiszolgáló számára az apps könyvtáron, vagy letiltja az alkalmazástárt a konfigurációs fájlban." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index c7fdc236de5..42b22f64ce6 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -2,6 +2,7 @@ OC.L10N.register( "lib", { "Cannot write into \"config\" directory!" : "Невозможно выполнить запись в каталог «config».", + "This can usually be fixed by giving the web server write access to the config directory." : "Обычно эту ошибку можно исправить, предоставив веб-серверу права на запись в каталог конфигурации.", "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Если для файла «config.php» должен быть установлен режим «только чтение», задайте параметру «config_is_read_only» значение «true».", "See %s" : "Обратитесь к %s.", "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Файлы приложения %1$s не были заменены корректно. Удостоверьтесь, что устанавливаемая версия этого приложения совместима с версией сервера.", @@ -122,7 +123,7 @@ OC.L10N.register( "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s может работать некорректно на данной платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Кажется что экземпляр этого %s работает в 32-битной среде PHP и в php.ini был настроен open_basedir. Это приведёт к проблемам с файлами более 4 ГБ и настоятельно не рекомендуется.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Пожалуйста, удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", "Set an admin username." : "Задать имя пользователя для администратора.", "Set an admin password." : "Задать пароль для admin.", "Cannot create or write into the data directory %s" : "Не удалось создать или записать в каталог данных «%s»", @@ -211,18 +212,36 @@ OC.L10N.register( "Authentication error" : "Ошибка аутентификации", "Token expired. Please reload page." : "Токен просрочен. Перезагрузите страницу.", "No database drivers (sqlite, mysql, or postgresql) installed." : "Не установлены драйвера баз данных (sqlite, mysql или postgresql)", + "Cannot write into \"config\" directory." : "Невозможно выполнить запись в каталог «config».", + "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Обычно это можно исправить, предоставив веб-серверу права на запись в каталог конфигурации. Обратитесь к %s.", "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Если для файла «config.php» должен быть установлен режим «только чтение», задайте параметру \"config_is_read_only\" значение \"true\". Изучите %s.", + "Cannot write into \"apps\" directory." : "Не удалось выполнить запись в каталог «apps».", + "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Обычно это можно исправить, предоставлением веб-серверу права для записи в каталог приложений или отключением магазина приложений в файле конфигурации.", + "Cannot create \"data\" directory." : "Невозможно создать каталог «data».", + "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Обычно это можно исправить, предоставив веб-серверу права на запись в корневой каталог. Обратитесь к %s", + "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Разрешения обычно можно исправить, предоставив веб-серверу право на запись в корневой каталог. Обратитесь к %s.", + "Your data directory is not writable." : "Каталог данных не доступен для записи.", + "Setting locale to %s failed." : "Не удалось настроить локаль %s.", + "Please install one of these locales on your system and restart your web server." : "Установите один из этих языковых пакетов и перезапустите веб-сервер.", "PHP module %s not installed." : "Не установлен PHP-модуль %s.", "Please ask your server administrator to install the module." : "Попросите администратора сервера установить этот модуль.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметру PHP «%s» не присвоено значение «%s».", "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в файле php.ini восстановит работоспособность Nextcloud", + "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "Параметр <code>mbstring.func_overload</code> установлен в <code>%s</code>, но ожидается значение <code>0</code>.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Чтобы исправить эту проблему установите параметр <code>mbstring.func_overload</code> в значение <code>0</code> в php.ini.", "libxml2 2.7.0 is at least required. Currently %s is installed." : "Требуется как минимум libxml2 версии 2.7.0. На данный момент установлена %s.", "To fix this issue update your libxml2 version and restart your web server." : "Для исправления этой ошибки обновите версию libxml2 и перезапустите ваш веб-сервер.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?", "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.", + "PostgreSQL >= 9 required." : "Требуется PostgreSQL версии 9 или более новый.", + "Please upgrade your database version." : "Обновите базу данных.", + "Your data directory is readable by other users." : "Каталог данных доступен для чтения другим пользователям.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.", + "Your data directory must be an absolute path." : "Каталог данных должен быть указан в виде абсолютного пути.", + "Check the value of \"datadirectory\" in your configuration." : "Проверьте в значение параметра «datadirectory» в файле конфигурации.", + "Your data directory is invalid." : "Каталог данных задан неверно.", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Убедитесь, что в корне каталога данных присутствует файл «.ocdata».", "Action \"%s\" not supported or implemented." : "Действие «%s» не поддерживается или не реализовано.", "Authentication failed, wrong token or provider ID given" : "Ошибка аутентификации, неверный токен или идентификатор провайдера", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 2a0a536377b..00122016849 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -1,5 +1,6 @@ { "translations": { "Cannot write into \"config\" directory!" : "Невозможно выполнить запись в каталог «config».", + "This can usually be fixed by giving the web server write access to the config directory." : "Обычно эту ошибку можно исправить, предоставив веб-серверу права на запись в каталог конфигурации.", "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Если для файла «config.php» должен быть установлен режим «только чтение», задайте параметру «config_is_read_only» значение «true».", "See %s" : "Обратитесь к %s.", "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Файлы приложения %1$s не были заменены корректно. Удостоверьтесь, что устанавливаемая версия этого приложения совместима с версией сервера.", @@ -120,7 +121,7 @@ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не поддерживается и %s может работать некорректно на данной платформе. Используйте на свой страх и риск!", "For the best results, please consider using a GNU/Linux server instead." : "Для достижения наилучших результатов, рассмотрите вариант использования сервера на GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Кажется что экземпляр этого %s работает в 32-битной среде PHP и в php.ini был настроен open_basedir. Это приведёт к проблемам с файлами более 4 ГБ и настоятельно не рекомендуется.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Пожалуйста, удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Удалите директиву open_basedir из файла php.ini или смените PHP на 64-разрядную сборку.", "Set an admin username." : "Задать имя пользователя для администратора.", "Set an admin password." : "Задать пароль для admin.", "Cannot create or write into the data directory %s" : "Не удалось создать или записать в каталог данных «%s»", @@ -209,18 +210,36 @@ "Authentication error" : "Ошибка аутентификации", "Token expired. Please reload page." : "Токен просрочен. Перезагрузите страницу.", "No database drivers (sqlite, mysql, or postgresql) installed." : "Не установлены драйвера баз данных (sqlite, mysql или postgresql)", + "Cannot write into \"config\" directory." : "Невозможно выполнить запись в каталог «config».", + "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Обычно это можно исправить, предоставив веб-серверу права на запись в каталог конфигурации. Обратитесь к %s.", "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Если для файла «config.php» должен быть установлен режим «только чтение», задайте параметру \"config_is_read_only\" значение \"true\". Изучите %s.", + "Cannot write into \"apps\" directory." : "Не удалось выполнить запись в каталог «apps».", + "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Обычно это можно исправить, предоставлением веб-серверу права для записи в каталог приложений или отключением магазина приложений в файле конфигурации.", + "Cannot create \"data\" directory." : "Невозможно создать каталог «data».", + "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Обычно это можно исправить, предоставив веб-серверу права на запись в корневой каталог. Обратитесь к %s", + "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Разрешения обычно можно исправить, предоставив веб-серверу право на запись в корневой каталог. Обратитесь к %s.", + "Your data directory is not writable." : "Каталог данных не доступен для записи.", + "Setting locale to %s failed." : "Не удалось настроить локаль %s.", + "Please install one of these locales on your system and restart your web server." : "Установите один из этих языковых пакетов и перезапустите веб-сервер.", "PHP module %s not installed." : "Не установлен PHP-модуль %s.", "Please ask your server administrator to install the module." : "Попросите администратора сервера установить этот модуль.", "PHP setting \"%s\" is not set to \"%s\"." : "Параметру PHP «%s» не присвоено значение «%s».", "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в файле php.ini восстановит работоспособность Nextcloud", + "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "Параметр <code>mbstring.func_overload</code> установлен в <code>%s</code>, но ожидается значение <code>0</code>.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Чтобы исправить эту проблему установите параметр <code>mbstring.func_overload</code> в значение <code>0</code> в php.ini.", "libxml2 2.7.0 is at least required. Currently %s is installed." : "Требуется как минимум libxml2 версии 2.7.0. На данный момент установлена %s.", "To fix this issue update your libxml2 version and restart your web server." : "Для исправления этой ошибки обновите версию libxml2 и перезапустите ваш веб-сервер.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?", "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.", + "PostgreSQL >= 9 required." : "Требуется PostgreSQL версии 9 или более новый.", + "Please upgrade your database version." : "Обновите базу данных.", + "Your data directory is readable by other users." : "Каталог данных доступен для чтения другим пользователям.", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.", + "Your data directory must be an absolute path." : "Каталог данных должен быть указан в виде абсолютного пути.", + "Check the value of \"datadirectory\" in your configuration." : "Проверьте в значение параметра «datadirectory» в файле конфигурации.", + "Your data directory is invalid." : "Каталог данных задан неверно.", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Убедитесь, что в корне каталога данных присутствует файл «.ocdata».", "Action \"%s\" not supported or implemented." : "Действие «%s» не поддерживается или не реализовано.", "Authentication failed, wrong token or provider ID given" : "Ошибка аутентификации, неверный токен или идентификатор провайдера", diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php index ac2f9d7bf45..36eb0bbf6d9 100644 --- a/lib/private/AllConfig.php +++ b/lib/private/AllConfig.php @@ -312,14 +312,14 @@ class AllConfig implements \OCP\IConfig { /** * Getting a user defined value * - * @param string $userId the userId of the user that we want to store the value under + * @param ?string $userId the userId of the user that we want to store the value under * @param string $appName the appName that we stored the value under * @param string $key the key under which the value is being stored * @param mixed $default the default value to be returned if the value isn't set * @return string */ public function getUserValue($userId, $appName, $key, $default = '') { - $data = $this->getUserValues($userId); + $data = $this->getAllUserValues($userId); if (isset($data[$appName][$key])) { return $data[$appName][$key]; } else { @@ -335,7 +335,7 @@ class AllConfig implements \OCP\IConfig { * @return string[] */ public function getUserKeys($userId, $appName) { - $data = $this->getUserValues($userId); + $data = $this->getAllUserValues($userId); if (isset($data[$appName])) { return array_keys($data[$appName]); } else { @@ -400,19 +400,20 @@ class AllConfig implements \OCP\IConfig { /** * Returns all user configs sorted by app of one user * - * @param string $userId the user ID to get the app configs from + * @param ?string $userId the user ID to get the app configs from + * @psalm-return array<string, array<string, string>> * @return array[] - 2 dimensional array with the following structure: * [ $appId => * [ $key => $value ] * ] */ - private function getUserValues($userId) { + public function getAllUserValues(?string $userId): array { if (isset($this->userCache[$userId])) { return $this->userCache[$userId]; } if ($userId === null || $userId === '') { - $this->userCache[$userId] = []; - return $this->userCache[$userId]; + $this->userCache[''] = []; + return $this->userCache['']; } // TODO - FIXME diff --git a/lib/private/Comments/Comment.php b/lib/private/Comments/Comment.php index 5cf04092101..2b338efc75f 100644 --- a/lib/private/Comments/Comment.php +++ b/lib/private/Comments/Comment.php @@ -44,6 +44,7 @@ class Comment implements IComment { 'referenceId' => null, 'creationDT' => null, 'latestChildDT' => null, + 'reactions' => null, ]; /** @@ -431,6 +432,21 @@ class Comment implements IComment { } /** + * @inheritDoc + */ + public function getReactions(): array { + return $this->data['reactions'] ?? []; + } + + /** + * @inheritDoc + */ + public function setReactions(?array $reactions): IComment { + $this->data['reactions'] = $reactions; + return $this; + } + + /** * sets the comment data based on an array with keys as taken from the * database. * diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 680c04dab03..554a2485965 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -41,6 +41,7 @@ use OCP\IConfig; use OCP\IDBConnection; use OCP\IUser; use OCP\IInitialStateService; +use OCP\PreConditionNotMetException; use OCP\Util; use Psr\Log\LoggerInterface; @@ -102,6 +103,20 @@ class Manager implements ICommentsManager { } $data['children_count'] = (int)$data['children_count']; $data['reference_id'] = $data['reference_id'] ?? null; + if ($this->supportReactions()) { + $list = json_decode($data['reactions'], true); + // Ordering does not work on the database with group concat and Oracle, + // So we simply sort on the output. + if (is_array($list)) { + uasort($list, static function ($a, $b) { + if ($a === $b) { + return 0; + } + return ($a > $b) ? -1 : 1; + }); + } + $data['reactions'] = $list; + } return $data; } @@ -133,6 +148,10 @@ class Manager implements ICommentsManager { throw new \UnexpectedValueException('Actor, Object and Verb information must be provided for saving'); } + if ($comment->getVerb() === 'reaction' && mb_strlen($comment->getMessage()) > 2) { + throw new \UnexpectedValueException('Reactions cannot be longer than 2 chars (emoji with skin tone have two chars)'); + } + if ($comment->getId() === '') { $comment->setChildrenCount(0); $comment->setLatestChildDateTime(new \DateTime('0000-00-00 00:00:00', new \DateTimeZone('UTC'))); @@ -926,12 +945,166 @@ class Manager implements ICommentsManager { } if ($affectedRows > 0 && $comment instanceof IComment) { + if ($comment->getVerb() === 'reaction_deleted') { + $this->deleteReaction($comment); + } $this->sendEvent(CommentsEvent::EVENT_DELETE, $comment); } return ($affectedRows > 0); } + private function deleteReaction(IComment $reaction): void { + $qb = $this->dbConn->getQueryBuilder(); + $qb->delete('reactions') + ->where($qb->expr()->eq('parent_id', $qb->createNamedParameter($reaction->getParentId()))) + ->andWhere($qb->expr()->eq('message_id', $qb->createNamedParameter($reaction->getId()))) + ->executeStatement(); + $this->sumReactions($reaction->getParentId()); + } + + /** + * Get comment related with user reaction + * + * Throws PreConditionNotMetException when the system haven't the minimum requirements to + * use reactions + * + * @param integer $parentId + * @param string $actorType + * @param string $actorId + * @param string $reaction + * @return IComment + * @throws NotFoundException + * @throws PreConditionNotMetException + * @since 24.0.0 + */ + public function getReactionComment(int $parentId, string $actorType, string $actorId, string $reaction): IComment { + $this->throwIfNotSupportReactions(); + $qb = $this->dbConn->getQueryBuilder(); + $messageId = $qb + ->select('message_id') + ->from('reactions') + ->where($qb->expr()->eq('parent_id', $qb->createNamedParameter($parentId))) + ->andWhere($qb->expr()->eq('actor_type', $qb->createNamedParameter($actorType))) + ->andWhere($qb->expr()->eq('actor_id', $qb->createNamedParameter($actorId))) + ->andWhere($qb->expr()->eq('reaction', $qb->createNamedParameter($reaction))) + ->executeQuery() + ->fetchOne(); + if (!$messageId) { + throw new NotFoundException('Comment related with reaction not found'); + } + return $this->get($messageId); + } + + /** + * Retrieve all reactions with specific reaction of a message + * + * @param integer $parentId + * @param string $reaction + * @return IComment[] + * @since 24.0.0 + */ + public function retrieveAllReactionsWithSpecificReaction(int $parentId, string $reaction): ?array { + $this->throwIfNotSupportReactions(); + $qb = $this->dbConn->getQueryBuilder(); + $result = $qb + ->select('message_id') + ->from('reactions') + ->where($qb->expr()->eq('parent_id', $qb->createNamedParameter($parentId))) + ->andWhere($qb->expr()->eq('reaction', $qb->createNamedParameter($reaction))) + ->executeQuery(); + + $commentIds = []; + while ($data = $result->fetch()) { + $commentIds[] = $data['message_id']; + } + $comments = []; + if ($commentIds) { + $comments = $this->getCommentsById($commentIds); + } + + return $comments; + } + + /** + * Support reactions + * + * @return boolean + * @since 24.0.0 + */ + public function supportReactions(): bool { + return $this->dbConn->supports4ByteText(); + } + + /** + * @throws PreConditionNotMetException + * @since 24.0.0 + */ + private function throwIfNotSupportReactions() { + if (!$this->supportReactions()) { + throw new PreConditionNotMetException('The database does not support reactions'); + } + } + + /** + * Retrieve all reactions of a message + * + * Throws PreConditionNotMetException when the system haven't the minimum requirements to + * use reactions + * + * @param integer $parentId + * @param string $reaction + * @throws PreConditionNotMetException + * @return IComment[] + * @since 24.0.0 + */ + public function retrieveAllReactions(int $parentId): array { + $this->throwIfNotSupportReactions(); + $qb = $this->dbConn->getQueryBuilder(); + $result = $qb + ->select('message_id') + ->from('reactions') + ->where($qb->expr()->eq('parent_id', $qb->createNamedParameter($parentId))) + ->executeQuery(); + + $commentIds = []; + while ($data = $result->fetch()) { + $commentIds[] = $data['message_id']; + } + + return $this->getCommentsById($commentIds); + } + + /** + * Get all comments on list + * + * @param integer[] $commentIds + * @return IComment[] + * @since 24.0.0 + */ + private function getCommentsById(array $commentIds): array { + if (!$commentIds) { + return []; + } + $query = $this->dbConn->getQueryBuilder(); + + $query->select('*') + ->from('comments') + ->where($query->expr()->in('id', $query->createNamedParameter($commentIds, IQueryBuilder::PARAM_STR_ARRAY))) + ->orderBy('creation_timestamp', 'DESC') + ->addOrderBy('id', 'DESC'); + + $comments = []; + $result = $query->executeQuery(); + while ($data = $result->fetch()) { + $comment = $this->getCommentFromData($data); + $this->cache($comment); + $comments[] = $comment; + } + $result->closeCursor(); + return $comments; + } + /** * saves the comment permanently * @@ -943,12 +1116,20 @@ class Manager implements ICommentsManager { * Throws NotFoundException when a comment that is to be updated does not * exist anymore at this point of time. * + * Throws PreConditionNotMetException when the system haven't the minimum requirements to + * use reactions + * * @param IComment $comment * @return bool * @throws NotFoundException + * @throws PreConditionNotMetException * @since 9.0.0 */ public function save(IComment $comment) { + if ($comment->getVerb() === 'reaction') { + $this->throwIfNotSupportReactions(); + } + if ($this->prepareCommentForDatabaseWrite($comment)->getId() === '') { $result = $this->insert($comment); } else { @@ -1015,12 +1196,88 @@ class Manager implements ICommentsManager { if ($affectedRows > 0) { $comment->setId((string)$qb->getLastInsertId()); + if ($comment->getVerb() === 'reaction') { + $this->addReaction($comment); + } $this->sendEvent(CommentsEvent::EVENT_ADD, $comment); } return $affectedRows > 0; } + private function addReaction(IComment $reaction): void { + // Prevent violate constraint + $qb = $this->dbConn->getQueryBuilder(); + $qb->select($qb->func()->count('*')) + ->from('reactions') + ->where($qb->expr()->eq('parent_id', $qb->createNamedParameter($reaction->getParentId()))) + ->andWhere($qb->expr()->eq('actor_type', $qb->createNamedParameter($reaction->getActorType()))) + ->andWhere($qb->expr()->eq('actor_id', $qb->createNamedParameter($reaction->getActorId()))) + ->andWhere($qb->expr()->eq('reaction', $qb->createNamedParameter($reaction->getMessage()))); + $result = $qb->executeQuery(); + $exists = (int) $result->fetchOne(); + if (!$exists) { + $qb = $this->dbConn->getQueryBuilder(); + try { + $qb->insert('reactions') + ->values([ + 'parent_id' => $qb->createNamedParameter($reaction->getParentId()), + 'message_id' => $qb->createNamedParameter($reaction->getId()), + 'actor_type' => $qb->createNamedParameter($reaction->getActorType()), + 'actor_id' => $qb->createNamedParameter($reaction->getActorId()), + 'reaction' => $qb->createNamedParameter($reaction->getMessage()), + ]) + ->executeStatement(); + } catch (\Exception $e) { + $this->logger->error($e->getMessage(), [ + 'exception' => $e, + 'app' => 'core_comments', + ]); + } + } + $this->sumReactions($reaction->getParentId()); + } + + private function sumReactions(string $parentId): void { + $qb = $this->dbConn->getQueryBuilder(); + + $totalQuery = $this->dbConn->getQueryBuilder(); + $totalQuery + ->selectAlias( + $totalQuery->func()->concat( + $totalQuery->expr()->literal('"'), + 'reaction', + $totalQuery->expr()->literal('":'), + $totalQuery->func()->count('id') + ), + 'colonseparatedvalue' + ) + ->selectAlias($totalQuery->func()->count('id'), 'total') + ->from('reactions', 'r') + ->where($totalQuery->expr()->eq('r.parent_id', $qb->createNamedParameter($parentId))) + ->groupBy('r.reaction') + ->orderBy('total', 'DESC') + ->setMaxResults(20); + + $jsonQuery = $this->dbConn->getQueryBuilder(); + $jsonQuery + ->selectAlias( + $jsonQuery->func()->concat( + $jsonQuery->expr()->literal('{'), + $jsonQuery->func()->groupConcat('colonseparatedvalue'), + $jsonQuery->expr()->literal('}') + ), + 'json' + ) + ->from($jsonQuery->createFunction('(' . $totalQuery->getSQL() . ')'), 'json'); + + $qb + ->update('comments') + ->set('reactions', $jsonQuery->createFunction('(' . $jsonQuery->getSQL() . ')')) + ->where($qb->expr()->eq('id', $qb->createNamedParameter($parentId))) + ->executeStatement(); + } + /** * updates a Comment data row * @@ -1042,6 +1299,10 @@ class Manager implements ICommentsManager { $result = $this->updateQuery($comment, false); } + if ($comment->getVerb() === 'reaction_deleted') { + $this->deleteReaction($comment); + } + $this->sendEvent(CommentsEvent::EVENT_UPDATE, $comment); return $result; diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index a362ff8016e..de326a2a317 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -694,7 +694,7 @@ class QueryBuilder implements IQueryBuilder { * ->from('users', 'u') * </code> * - * @param string $from The table. + * @param string|IQueryFunction $from The table. * @param string|null $alias The alias of the table. * * @return $this This QueryBuilder instance. @@ -1303,7 +1303,7 @@ class QueryBuilder implements IQueryBuilder { /** * Returns the table name quoted and with database prefix as needed by the implementation * - * @param string $table + * @param string|IQueryFunction $table * @return string */ public function getTableName($table) { diff --git a/lib/private/Files/Filesystem.php b/lib/private/Files/Filesystem.php index a9b1b87c8e7..fb300134c86 100644 --- a/lib/private/Files/Filesystem.php +++ b/lib/private/Files/Filesystem.php @@ -835,7 +835,7 @@ class Filesystem { * @param string $path * @param boolean $includeMountPoints whether to add mountpoint sizes, * defaults to true - * @return \OC\Files\FileInfo|bool False if file does not exist + * @return \OC\Files\FileInfo|false False if file does not exist */ public static function getFileInfo($path, $includeMountPoints = true) { return self::$defaultInstance->getFileInfo($path, $includeMountPoints); diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 161f346e52f..b4a85755b20 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -792,11 +792,8 @@ class DAV extends Common { } if (isset($response['{DAV:}getetag'])) { $cachedData = $this->getCache()->get($path); - $etag = null; - if (isset($response['{DAV:}getetag'])) { - $etag = trim($response['{DAV:}getetag'], '"'); - } - if (!empty($etag) && $cachedData['etag'] !== $etag) { + $etag = trim($response['{DAV:}getetag'], '"'); + if (($cachedData === false) || (!empty($etag) && ($cachedData['etag'] !== $etag))) { return true; } elseif (isset($response['{http://open-collaboration-services.org/ns}share-permissions'])) { $sharePermissions = (int)$response['{http://open-collaboration-services.org/ns}share-permissions']; diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index 426ddf6c380..7fcfab37fa6 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -595,71 +595,6 @@ class Factory implements IFactory { return $this->serverRoot . '/core/l10n/'; } - - /** - * Creates a function from the plural string - * - * Parts of the code is copied from Habari: - * https://github.com/habari/system/blob/master/classes/locale.php - * @param string $string - * @return string - */ - public function createPluralFunction($string) { - if (isset($this->pluralFunctions[$string])) { - return $this->pluralFunctions[$string]; - } - - if (preg_match('/^\s*nplurals\s*=\s*(\d+)\s*;\s*plural=(.*)$/u', $string, $matches)) { - // sanitize - $nplurals = preg_replace('/[^0-9]/', '', $matches[1]); - $plural = preg_replace('#[^n0-9:\(\)\?\|\&=!<>+*/\%-]#', '', $matches[2]); - - $body = str_replace( - ['plural', 'n', '$n$plurals',], - ['$plural', '$n', '$nplurals',], - 'nplurals=' . $nplurals . '; plural=' . $plural - ); - - // add parents - // important since PHP's ternary evaluates from left to right - $body .= ';'; - $res = ''; - $p = 0; - $length = strlen($body); - for ($i = 0; $i < $length; $i++) { - $ch = $body[$i]; - switch ($ch) { - case '?': - $res .= ' ? ('; - $p++; - break; - case ':': - $res .= ') : ('; - break; - case ';': - $res .= str_repeat(')', $p) . ';'; - $p = 0; - break; - default: - $res .= $ch; - } - } - - $body = $res . 'return ($plural>=$nplurals?$nplurals-1:$plural);'; - $function = create_function('$n', $body); - $this->pluralFunctions[$string] = $function; - return $function; - } else { - // default: one plural form for all cases but n==1 (english) - $function = create_function( - '$n', - '$nplurals=2;$plural=($n==1?0:1);return ($plural>=$nplurals?$nplurals-1:$plural);' - ); - $this->pluralFunctions[$string] = $function; - return $function; - } - } - /** * @inheritDoc */ diff --git a/lib/private/Log/Errorlog.php b/lib/private/Log/Errorlog.php index ebcb73be4ce..d27759d7050 100644 --- a/lib/private/Log/Errorlog.php +++ b/lib/private/Log/Errorlog.php @@ -29,6 +29,13 @@ use OCP\Log\IWriter; class Errorlog implements IWriter { + /** @var string */ + protected $tag; + + public function __construct(string $tag = 'owncloud') { + $this->tag = $tag; + } + /** * write a message in the log * @param string $app @@ -36,6 +43,6 @@ class Errorlog implements IWriter { * @param int $level */ public function write(string $app, $message, int $level) { - error_log('[owncloud]['.$app.']['.$level.'] '.$message); + error_log('[' . $this->tag . ']['.$app.']['.$level.'] '.$message); } } diff --git a/lib/private/Log/LogFactory.php b/lib/private/Log/LogFactory.php index f0f804cd51c..807ff501e39 100644 --- a/lib/private/Log/LogFactory.php +++ b/lib/private/Log/LogFactory.php @@ -70,8 +70,24 @@ class LogFactory implements ILogFactory { return new Log($log, $this->systemConfig); } - public function getCustomPsrLogger(string $path): LoggerInterface { - $log = $this->buildLogFile($path); + protected function createNewLogger(string $type, string $tag, string $path): IWriter { + switch (strtolower($type)) { + case 'errorlog': + return new Errorlog($tag); + case 'syslog': + return new Syslog($this->systemConfig, $tag); + case 'systemd': + return new Systemdlog($this->systemConfig, $tag); + case 'file': + case 'owncloud': + case 'nextcloud': + default: + return $this->buildLogFile($path); + } + } + + public function getCustomPsrLogger(string $path, string $type = 'file', string $tag = 'Nextcloud'): LoggerInterface { + $log = $this->createNewLogger($type, $tag, $path); return new PsrLoggerAdapter( new Log($log, $this->systemConfig) ); diff --git a/lib/private/Log/Syslog.php b/lib/private/Log/Syslog.php index 7c3d1a54b78..8140b4ec77c 100644 --- a/lib/private/Log/Syslog.php +++ b/lib/private/Log/Syslog.php @@ -38,9 +38,12 @@ class Syslog extends LogDetails implements IWriter { ILogger::FATAL => LOG_CRIT, ]; - public function __construct(SystemConfig $config) { + public function __construct(SystemConfig $config, ?string $tag = null) { parent::__construct($config); - openlog($config->getValue('syslog_tag', 'Nextcloud'), LOG_PID | LOG_CONS, LOG_USER); + if ($tag === null) { + $tag = $config->getValue('syslog_tag', 'Nextcloud'); + } + openlog($tag, LOG_PID | LOG_CONS, LOG_USER); } public function __destruct() { diff --git a/lib/private/Log/Systemdlog.php b/lib/private/Log/Systemdlog.php index a01826c0b05..00f242e3718 100644 --- a/lib/private/Log/Systemdlog.php +++ b/lib/private/Log/Systemdlog.php @@ -56,14 +56,17 @@ class Systemdlog extends LogDetails implements IWriter { protected $syslogId; - public function __construct(SystemConfig $config) { + public function __construct(SystemConfig $config, ?string $tag = null) { parent::__construct($config); if (!function_exists('sd_journal_send')) { throw new HintException( 'PHP extension php-systemd is not available.', 'Please install and enable PHP extension systemd if you wish to log to the Systemd journal.'); } - $this->syslogId = $config->getValue('syslog_tag', 'Nextcloud'); + if ($tag === null) { + $tag = $config->getValue('syslog_tag', 'Nextcloud'); + } + $this->syslogId = $tag; } /** diff --git a/lib/private/Memcache/Memcached.php b/lib/private/Memcache/Memcached.php index 08880451a73..f78be581d63 100644 --- a/lib/private/Memcache/Memcached.php +++ b/lib/private/Memcache/Memcached.php @@ -65,8 +65,13 @@ class Memcached extends Cache implements IMemcache { // Enable Binary Protocol //\Memcached::OPT_BINARY_PROTOCOL => true, ]; - // by default enable igbinary serializer if available - /** @psalm-suppress RedundantCondition */ + /** + * By default enable igbinary serializer if available + * + * Psalm checks depend on if igbinary is installed or not with memcached + * @psalm-suppress RedundantCondition + * @psalm-suppress TypeDoesNotContainType + */ if (\Memcached::HAVE_IGBINARY) { $defaultOptions[\Memcached::OPT_SERIALIZER] = \Memcached::SERIALIZER_IGBINARY; diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php index c2846511774..abe7e59f695 100644 --- a/lib/private/legacy/OC_Util.php +++ b/lib/private/legacy/OC_Util.php @@ -580,7 +580,7 @@ class OC_Util { /** * add a javascript file * - * @deprecated 24.0.0 + * @deprecated 24.0.0 - Use \OCP\Util::addScript * * @param string $application application id * @param string|null $file filename @@ -1130,11 +1130,12 @@ class OC_Util { * This function is used to sanitize HTML and should be applied on any * string or array of strings before displaying it on a web page. * - * @param string|array $value - * @return string|array an array of sanitized strings or a single sanitized string, depends on the input parameter. + * @param string|string[] $value + * @return string|string[] an array of sanitized strings or a single sanitized string, depends on the input parameter. */ public static function sanitizeHTML($value) { if (is_array($value)) { + /** @var string[] $value */ $value = array_map(function ($value) { return self::sanitizeHTML($value); }, $value); diff --git a/lib/private/legacy/template/functions.php b/lib/private/legacy/template/functions.php index e28cf02f7a3..56c488d5abe 100644 --- a/lib/private/legacy/template/functions.php +++ b/lib/private/legacy/template/functions.php @@ -118,10 +118,11 @@ function print_unescaped($string) { * they are coming from a template registration. * Please consider moving them into the relevant controller * + * @deprecated 24.0.0 - Use \OCP\Util::addScript + * * @param string $app the appname * @param string|string[] $file the filename, * if an array is given it will add all scripts - * @deprecated 23.1.0 */ function script($app, $file = null) { if (is_array($file)) { diff --git a/lib/public/AppFramework/Bootstrap/IRegistrationContext.php b/lib/public/AppFramework/Bootstrap/IRegistrationContext.php index 4e895b73b3d..be936540aee 100644 --- a/lib/public/AppFramework/Bootstrap/IRegistrationContext.php +++ b/lib/public/AppFramework/Bootstrap/IRegistrationContext.php @@ -122,11 +122,11 @@ interface IRegistrationContext { * * This is equivalent to calling IEventDispatcher::addServiceListener * - * @template T of \OCP\EventDispatcher\Event + * @psalm-template T of \OCP\EventDispatcher\Event * @param string $event preferably the fully-qualified class name of the Event sub class to listen for * @psalm-param string|class-string<T> $event preferably the fully-qualified class name of the Event sub class to listen for * @param string $listener fully qualified class name (or ::class notation) of a \OCP\EventDispatcher\IEventListener that can be built by the DI container - * @psalm-param class-string<\OCP\EventDispatcher\IEventListener<T>> $listener fully qualified class name that can be built by the DI container + * @psalm-param class-string<\OCP\EventDispatcher\IEventListener> $listener fully qualified class name that can be built by the DI container * @param int $priority The higher this value, the earlier an event * listener will be triggered in the chain (defaults to 0) * diff --git a/lib/public/Comments/IComment.php b/lib/public/Comments/IComment.php index b9747aefb5b..8465eaf49f4 100644 --- a/lib/public/Comments/IComment.php +++ b/lib/public/Comments/IComment.php @@ -278,4 +278,25 @@ interface IComment { * @since 19.0.0 */ public function setReferenceId(?string $referenceId): IComment; + + /** + * Returns the reactions array if exists + * + * The keys is the emoji of reaction and the value is the total. + * + * @return array<string, integer> e.g. ["👍":1] + * @since 24.0.0 + */ + public function getReactions(): array; + + /** + * Set summarized array of reactions by reaction type + * + * The keys is the emoji of reaction and the value is the total. + * + * @param array<string, integer>|null $reactions e.g. ["👍":1] + * @return IComment + * @since 24.0.0 + */ + public function setReactions(?array $reactions): IComment; } diff --git a/lib/public/DB/QueryBuilder/IQueryBuilder.php b/lib/public/DB/QueryBuilder/IQueryBuilder.php index 7829696970c..669003246d9 100644 --- a/lib/public/DB/QueryBuilder/IQueryBuilder.php +++ b/lib/public/DB/QueryBuilder/IQueryBuilder.php @@ -470,7 +470,7 @@ interface IQueryBuilder { * ->from('users', 'u') * </code> * - * @param string $from The table. + * @param string|IQueryFunction $from The table. * @param string|null $alias The alias of the table. * * @return $this This QueryBuilder instance. @@ -994,7 +994,7 @@ interface IQueryBuilder { /** * Returns the table name quoted and with database prefix as needed by the implementation * - * @param string $table + * @param string|IQueryFunction $table * @return string * @since 9.0.0 */ diff --git a/lib/public/IConfig.php b/lib/public/IConfig.php index 33b9c97971a..0e7a7523218 100644 --- a/lib/public/IConfig.php +++ b/lib/public/IConfig.php @@ -186,7 +186,7 @@ interface IConfig { /** * Shortcut for getting a user defined value * - * @param string $userId the userId of the user that we want to store the value under + * @param ?string $userId the userId of the user that we want to store the value under * @param string $appName the appName that we stored the value under * @param string $key the key under which the value is being stored * @param mixed $default the default value to be returned if the value isn't set @@ -217,6 +217,19 @@ interface IConfig { public function getUserKeys($userId, $appName); /** + * Get all user configs sorted by app of one user + * + * @param string $userId the userId of the user that we want to get all values from + * @psalm-return array<string, array<string, string>> + * @return array[] - 2 dimensional array with the following structure: + * [ $appId => + * [ $key => $value ] + * ] + * @since 24.0.0 + */ + public function getAllUserValues(string $userId): array; + + /** * Delete a user value * * @param string $userId the userId of the user that we want to store the value under diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 0c8c945caab..35713862f07 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -128,15 +128,6 @@ interface IFactory { public function localeExists($locale); /** - * Creates a function from the plural string - * - * @param string $string - * @return string Unique function name - * @since 14.0.0 - */ - public function createPluralFunction($string); - - /** * iterate through language settings (if provided) in this order: * 1. returns the forced language or: * 2. if applicable, the trunk of 1 (e.g. "fu" instead of "fu_BAR" diff --git a/lib/public/Log/ILogFactory.php b/lib/public/Log/ILogFactory.php index 54ed761a8e7..6bbcf93bca8 100644 --- a/lib/public/Log/ILogFactory.php +++ b/lib/public/Log/ILogFactory.php @@ -51,8 +51,10 @@ interface ILogFactory { /** * @param string $path + * @param string $type + * @param string $tag * @return LoggerInterface - * @since 22.0.0 + * @since 22.0.0 - Parameters $type and $tag were added in 24.0.0 */ - public function getCustomPsrLogger(string $path): LoggerInterface; + public function getCustomPsrLogger(string $path, string $type = 'file', string $tag = 'Nextcloud'): LoggerInterface; } diff --git a/lib/public/Util.php b/lib/public/Util.php index f8d8b1aaf71..b839318303a 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -435,8 +435,8 @@ class Util { * This function is used to sanitize HTML and should be applied on any * string or array of strings before displaying it on a web page. * - * @param string|array $value - * @return string|array an array of sanitized strings or a single sanitized string, depends on the input parameter. + * @param string|string[] $value + * @return string|string[] an array of sanitized strings or a single sanitized string, depends on the input parameter. * @since 4.5.0 */ public static function sanitizeHTML($value) { |