aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/l10n/cs.js5
-rw-r--r--lib/l10n/cs.json5
-rw-r--r--lib/l10n/de.js7
-rw-r--r--lib/l10n/de.json7
-rw-r--r--lib/l10n/de_DE.js11
-rw-r--r--lib/l10n/de_DE.json11
-rw-r--r--lib/l10n/et_EE.js27
-rw-r--r--lib/l10n/et_EE.json27
-rw-r--r--lib/l10n/lv.js2
-rw-r--r--lib/l10n/lv.json2
-rw-r--r--lib/l10n/mk.js4
-rw-r--r--lib/l10n/mk.json4
-rw-r--r--lib/l10n/tr.js2
-rw-r--r--lib/l10n/tr.json2
-rw-r--r--lib/l10n/uz.js1
-rw-r--r--lib/l10n/uz.json1
-rw-r--r--lib/l10n/zh_CN.js5
-rw-r--r--lib/l10n/zh_CN.json5
-rw-r--r--lib/l10n/zh_TW.js5
-rw-r--r--lib/l10n/zh_TW.json5
-rw-r--r--lib/private/NavigationManager.php19
-rw-r--r--lib/private/Security/Normalizer/IpAddress.php9
-rw-r--r--lib/private/TaskProcessing/Manager.php1
-rw-r--r--lib/private/Template/JSResourceLocator.php2
-rw-r--r--lib/private/URLGenerator.php5
-rw-r--r--lib/public/Constants.php8
-rw-r--r--lib/public/TaskProcessing/TaskTypes/TextToSpeech.php92
29 files changed, 245 insertions, 31 deletions
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 3d36f50e950..6264126b028 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -837,6 +837,7 @@ return array(
'OCP\\TaskProcessing\\TaskTypes\\ContextWrite' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/ContextWrite.php',
'OCP\\TaskProcessing\\TaskTypes\\GenerateEmoji' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/GenerateEmoji.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToImage' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToImage.php',
+ 'OCP\\TaskProcessing\\TaskTypes\\TextToSpeech' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToSpeech.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToText' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToText.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextChangeTone' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextChangeTone.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextChat' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextChat.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 7085d0b4a44..5771a621afe 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -878,6 +878,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\TaskProcessing\\TaskTypes\\ContextWrite' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/ContextWrite.php',
'OCP\\TaskProcessing\\TaskTypes\\GenerateEmoji' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/GenerateEmoji.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToImage' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToImage.php',
+ 'OCP\\TaskProcessing\\TaskTypes\\TextToSpeech' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToSpeech.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToText' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToText.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextChangeTone' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextChangeTone.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextChat' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextChat.php',
diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js
index 06f4631fa3c..2233f31f686 100644
--- a/lib/l10n/cs.js
+++ b/lib/l10n/cs.js
@@ -364,6 +364,11 @@ OC.L10N.register(
"How many images to generate" : "Kolik obrázků vytvořit",
"Output images" : "Výstupní obrázky",
"The generated images" : "Vytvořené obrázky",
+ "Generate speech" : "Vytvořit řeč",
+ "Generate speech from a transcript" : "Vytvořit řeč z přepisu",
+ "Write transcript that you want the assistant to generate speech from" : "Napište přepis, ze kterého chcete, aby asistent vytvořil řeč",
+ "Output speech" : "Výstupní řeč",
+ "The generated speech" : "Vytvořená řeč",
"Free text to text prompt" : "Volný text na textový prompt",
"Runs an arbitrary prompt through a language model that returns a reply" : "Spouští libovolnou výzvu skrze jazykový model který vrací odpověď",
"Describe a task that you want the assistant to do or ask a question" : "Popište úkol který chcete aby asistent udělal nebo položte dotaz",
diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json
index 0fd7ca64748..087e2244eeb 100644
--- a/lib/l10n/cs.json
+++ b/lib/l10n/cs.json
@@ -362,6 +362,11 @@
"How many images to generate" : "Kolik obrázků vytvořit",
"Output images" : "Výstupní obrázky",
"The generated images" : "Vytvořené obrázky",
+ "Generate speech" : "Vytvořit řeč",
+ "Generate speech from a transcript" : "Vytvořit řeč z přepisu",
+ "Write transcript that you want the assistant to generate speech from" : "Napište přepis, ze kterého chcete, aby asistent vytvořil řeč",
+ "Output speech" : "Výstupní řeč",
+ "The generated speech" : "Vytvořená řeč",
"Free text to text prompt" : "Volný text na textový prompt",
"Runs an arbitrary prompt through a language model that returns a reply" : "Spouští libovolnou výzvu skrze jazykový model který vrací odpověď",
"Describe a task that you want the assistant to do or ask a question" : "Popište úkol který chcete aby asistent udělal nebo položte dotaz",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 565432632e8..672c6ca4f25 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -101,7 +101,7 @@ OC.L10N.register(
"Invalid parent path" : "Ungültiger übergeordneter Pfad",
"File already exists" : "Datei bereits vorhanden",
"Invalid path" : "Ungültiger Pfad",
- "Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
+ "Failed to create file from template" : "Datei konnte nicht aus Vorlage erstellt werden",
"Templates" : "Vorlagen",
"Storage %s cannot be moved" : "Speicherplatz %s kann nicht verschoben werden",
"Moving a share (%s) into a shared folder is not allowed" : "Verschieben einer Freigabe (%s) in einen freigegebenen Ordner ist unzulässig",
@@ -364,6 +364,11 @@ OC.L10N.register(
"How many images to generate" : "Wie viele Bilder erstellt werden sollen",
"Output images" : "Ausgegebene Bilder",
"The generated images" : "Die erstellten Bilder",
+ "Generate speech" : "Sprache erstellen",
+ "Generate speech from a transcript" : "Sprache aus einem Transkript erstellen",
+ "Write transcript that you want the assistant to generate speech from" : "Schreibe ein Transkript, aus dem der Assistent Sprache erstellen soll",
+ "Output speech" : "Sprachausgabe",
+ "The generated speech" : "Die erstellte Sprache",
"Free text to text prompt" : "Freie Text-zu-Text-Eingabeaufforderung",
"Runs an arbitrary prompt through a language model that returns a reply" : "Führt eine beliebige Eingabeaufforderung mit einem Sprachmodell aus, das eine Antwort zurückgibt",
"Describe a task that you want the assistant to do or ask a question" : "Eine Aufgabe beschreiben, die der Assistent erledigen soll, oder eine Frage stellen",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index f9b01867ab0..17ce3b96f49 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -99,7 +99,7 @@
"Invalid parent path" : "Ungültiger übergeordneter Pfad",
"File already exists" : "Datei bereits vorhanden",
"Invalid path" : "Ungültiger Pfad",
- "Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
+ "Failed to create file from template" : "Datei konnte nicht aus Vorlage erstellt werden",
"Templates" : "Vorlagen",
"Storage %s cannot be moved" : "Speicherplatz %s kann nicht verschoben werden",
"Moving a share (%s) into a shared folder is not allowed" : "Verschieben einer Freigabe (%s) in einen freigegebenen Ordner ist unzulässig",
@@ -362,6 +362,11 @@
"How many images to generate" : "Wie viele Bilder erstellt werden sollen",
"Output images" : "Ausgegebene Bilder",
"The generated images" : "Die erstellten Bilder",
+ "Generate speech" : "Sprache erstellen",
+ "Generate speech from a transcript" : "Sprache aus einem Transkript erstellen",
+ "Write transcript that you want the assistant to generate speech from" : "Schreibe ein Transkript, aus dem der Assistent Sprache erstellen soll",
+ "Output speech" : "Sprachausgabe",
+ "The generated speech" : "Die erstellte Sprache",
"Free text to text prompt" : "Freie Text-zu-Text-Eingabeaufforderung",
"Runs an arbitrary prompt through a language model that returns a reply" : "Führt eine beliebige Eingabeaufforderung mit einem Sprachmodell aus, das eine Antwort zurückgibt",
"Describe a task that you want the assistant to do or ask a question" : "Eine Aufgabe beschreiben, die der Assistent erledigen soll, oder eine Frage stellen",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index d43d052a549..2d101052cf5 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"%s email verification" : "%s E-Mail-Überprüfung",
"Email verification" : "E-Mail-Überprüfung",
"Click the following button to confirm your email." : "Klicken Sie auf die folgende Schaltfläche, um Ihre E-Mail zu bestätigen.",
- "Click the following link to confirm your email." : "Auf den nachfolgenden Link klicken um Ihre E-Mail-Adresse zu bestätigen",
+ "Click the following link to confirm your email." : "Auf den nachfolgenden Link klicken, um Ihre E-Mail-Adresse zu bestätigen",
"Confirm your email" : "Ihre E-Mail-Adresse bestätigen",
"Other activities" : "Andere Aktivitäten",
"%1$s and %2$s" : "%1$s und %2$s",
@@ -101,7 +101,7 @@ OC.L10N.register(
"Invalid parent path" : "Ungültiger übergeordneter Pfad",
"File already exists" : "Datei bereits vorhanden",
"Invalid path" : "Ungültiger Pfad",
- "Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
+ "Failed to create file from template" : "Datei konnte nicht aus Vorlage erstellt werden",
"Templates" : "Vorlagen",
"Storage %s cannot be moved" : "Speicherplatz %s kann nicht verschoben werden",
"Moving a share (%s) into a shared folder is not allowed" : "Verschieben einer Freigabe (%s) in einen freigegebenen Ordner ist unzulässig",
@@ -313,7 +313,7 @@ OC.L10N.register(
"Your data directory is invalid." : "Ihr Datenverzeichnis ist ungültig.",
"Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Stellen Sie sicher, dass eine Datei \"%1$s\" im Wurzelverzeichnis des Datenverzeichnisses existiert. Sie sollte folgenden Inhalt haben: \"%2$s\"",
"Action \"%s\" not supported or implemented." : "Aktion \"%s\" wird nicht unterstützt oder ist nicht implementiert.",
- "Authentication failed, wrong token or provider ID given" : "Authentifizierung ist fehlgeschlagen. Falsches Token oder Provider-ID wurde übertragen.",
+ "Authentication failed, wrong token or provider ID given" : "Authentifizierung fehlgeschlagen, falsches Token oder falsche Provider-ID angegeben",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Es fehlen Parameter um die Anfrage zu bearbeiten. Fehlende Parameter: \"%s\"",
"ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" wird bereits von Cloud-Federation-Provider \"%2$s\" verwendet.",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Cloud-Federation-Provider mit ID: \"%s\" ist nicht vorhanden.",
@@ -364,6 +364,11 @@ OC.L10N.register(
"How many images to generate" : "Wie viele Bilder erstellt werden sollen",
"Output images" : "Ausgegebene Bilder",
"The generated images" : "Die erstellten Bilder",
+ "Generate speech" : "Sprache erstellen",
+ "Generate speech from a transcript" : "Sprache aus einem Transkript erstellen",
+ "Write transcript that you want the assistant to generate speech from" : "Schreiben Sie ein Transkript, aus dem der Assistent Sprache erstellen soll",
+ "Output speech" : "Sprachausgabe",
+ "The generated speech" : "Die erstellte Sprache",
"Free text to text prompt" : "Freie Text-zu-Text-Eingabeaufforderung",
"Runs an arbitrary prompt through a language model that returns a reply" : "Führt eine beliebige Eingabeaufforderung mit einem Sprachmodell aus, das eine Antwort zurückgibt",
"Describe a task that you want the assistant to do or ask a question" : "Beschreiben Sie eine Aufgabe, die der Assistent erledigen soll, oder stellen Sie eine Frage",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index 9e974ad5fac..ea316cb1060 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -10,7 +10,7 @@
"%s email verification" : "%s E-Mail-Überprüfung",
"Email verification" : "E-Mail-Überprüfung",
"Click the following button to confirm your email." : "Klicken Sie auf die folgende Schaltfläche, um Ihre E-Mail zu bestätigen.",
- "Click the following link to confirm your email." : "Auf den nachfolgenden Link klicken um Ihre E-Mail-Adresse zu bestätigen",
+ "Click the following link to confirm your email." : "Auf den nachfolgenden Link klicken, um Ihre E-Mail-Adresse zu bestätigen",
"Confirm your email" : "Ihre E-Mail-Adresse bestätigen",
"Other activities" : "Andere Aktivitäten",
"%1$s and %2$s" : "%1$s und %2$s",
@@ -99,7 +99,7 @@
"Invalid parent path" : "Ungültiger übergeordneter Pfad",
"File already exists" : "Datei bereits vorhanden",
"Invalid path" : "Ungültiger Pfad",
- "Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
+ "Failed to create file from template" : "Datei konnte nicht aus Vorlage erstellt werden",
"Templates" : "Vorlagen",
"Storage %s cannot be moved" : "Speicherplatz %s kann nicht verschoben werden",
"Moving a share (%s) into a shared folder is not allowed" : "Verschieben einer Freigabe (%s) in einen freigegebenen Ordner ist unzulässig",
@@ -311,7 +311,7 @@
"Your data directory is invalid." : "Ihr Datenverzeichnis ist ungültig.",
"Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Stellen Sie sicher, dass eine Datei \"%1$s\" im Wurzelverzeichnis des Datenverzeichnisses existiert. Sie sollte folgenden Inhalt haben: \"%2$s\"",
"Action \"%s\" not supported or implemented." : "Aktion \"%s\" wird nicht unterstützt oder ist nicht implementiert.",
- "Authentication failed, wrong token or provider ID given" : "Authentifizierung ist fehlgeschlagen. Falsches Token oder Provider-ID wurde übertragen.",
+ "Authentication failed, wrong token or provider ID given" : "Authentifizierung fehlgeschlagen, falsches Token oder falsche Provider-ID angegeben",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Es fehlen Parameter um die Anfrage zu bearbeiten. Fehlende Parameter: \"%s\"",
"ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "ID \"%1$s\" wird bereits von Cloud-Federation-Provider \"%2$s\" verwendet.",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Cloud-Federation-Provider mit ID: \"%s\" ist nicht vorhanden.",
@@ -362,6 +362,11 @@
"How many images to generate" : "Wie viele Bilder erstellt werden sollen",
"Output images" : "Ausgegebene Bilder",
"The generated images" : "Die erstellten Bilder",
+ "Generate speech" : "Sprache erstellen",
+ "Generate speech from a transcript" : "Sprache aus einem Transkript erstellen",
+ "Write transcript that you want the assistant to generate speech from" : "Schreiben Sie ein Transkript, aus dem der Assistent Sprache erstellen soll",
+ "Output speech" : "Sprachausgabe",
+ "The generated speech" : "Die erstellte Sprache",
"Free text to text prompt" : "Freie Text-zu-Text-Eingabeaufforderung",
"Runs an arbitrary prompt through a language model that returns a reply" : "Führt eine beliebige Eingabeaufforderung mit einem Sprachmodell aus, das eine Antwort zurückgibt",
"Describe a task that you want the assistant to do or ask a question" : "Beschreiben Sie eine Aufgabe, die der Assistent erledigen soll, oder stellen Sie eine Frage",
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index 7a32b1cec33..d882e0ee79e 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -2,9 +2,13 @@ OC.L10N.register(
"lib",
{
"Cannot write into \"config\" directory!" : "Ei saa kirjutada „config“ kausta!!",
+ "This can usually be fixed by giving the web server write access to the config directory." : "Tavaliselt saad selle lahendada andes veebiserverile õigused seadistuse kausta kirjutamiseks",
+ "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Aga kui soovid, et seadistuste fail ei peaks olema veebiserveri poolt muudetav, siis palun määra seadistusvõtme „config_is_read_only“ väärtuseks true.",
"See %s" : "Vaata %s",
+ "Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Rakendust „%1$s“ pole serverisse paigaldatud või pole tema versioon ühilduv selle serveriga. Palun kontrolli paigaldatud rakendusi.",
"Sample configuration detected" : "Tuvastati näidisseaded",
"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" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "The page could not be found on the server." : "Seda lehte ei õnnestunud serverist leida.",
"%s email verification" : "E-postiaadressi kinnitamine: %s",
"Email verification" : "E-postiaadressi kinnitamine",
"Click the following button to confirm your email." : "Oma e-postiaadressi kinnitamiseks klõpsi järgmisel nupul.",
@@ -17,6 +21,7 @@ OC.L10N.register(
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s",
"PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
"PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.",
+ "%sbit or higher PHP required." : "Vajalik on %s-bitine või parem PHP versioon.",
"The following architectures are supported: %s" : "Toetatud on järgnevad arhitektuurid: %s",
"The following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s",
"The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud",
@@ -31,9 +36,11 @@ OC.L10N.register(
"Wiping of device %s has started" : "Andmete kustutamine seadmes „%s“ algas",
"Wiping of device »%s« has started" : "Andmete kustutamine seadmes „%s“ algas",
"»%s« started remote wipe" : "„%s“ alustas kaugseadme andmete kustutamist",
+ "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "„%s“ seade või rakendus on alustanud kaugkustutamise protsessi. Selle lõppemisel saad veel ühe teavitava e-kirja",
"Wiping of device %s has finished" : "Andmete kustutamine seadmes „%s“ lõppes",
"Wiping of device »%s« has finished" : "Andmete kustutamine seadmes „%s“ lõppes",
"»%s« finished remote wipe" : "„%s“ lõpetas kaugseadme andmete kustutamise",
+ "Device or application »%s« has finished the remote wipe process." : "„%s“ seade või rakendus on lõpetanud kaugkustutamise protsessi.",
"Remote wipe started" : "Kaugkustutamine on alanud",
"A remote wipe was started on device %s" : "„%s“ seadme kaugkustutamine on alanud",
"Remote wipe finished" : "Kaugkustutamine on lõppenud",
@@ -99,6 +106,7 @@ OC.L10N.register(
"Filename contains at least one invalid character" : "Failinimes on vähemalt üks keelatud märk",
"Filename is too long" : "Failinimi on liiga pikk",
"Empty filename is not allowed" : "Tühi failinimi pole lubatud",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "Kuna „appinfo“ faili pole võimalik lugeda, siis „%s“ rakendust ei saa paigaldada.",
"App \"%s\" cannot be installed because it is not compatible with this version of the server." : "Kuna ta pole ühilduv selle serveri versiooniga, siis „%s“ rakendust ei saa paigaldada.",
"__language_name__" : "Eesti",
"This is an automatically sent email, please do not reply." : "See on automaatselt saadetud e-kiri, palun ära vasta.",
@@ -130,6 +138,7 @@ OC.L10N.register(
"Pronouns" : "Asesõnad pöördumisel",
"Unknown account" : "Tundmatu kasutajakonto",
"Additional settings" : "Lisaseaded",
+ "Enter the database Login and name for %s" : "Andmebaasi kasutajanimi ning nimi %si jaoks",
"Enter the database Login for %s" : "Sisesta andmebaasi %s kasutajatunnus",
"Enter the database name for %s" : "Sisesta andmebaasi %s nimi",
"You cannot use dots in the database name %s" : "Sa ei tohi kasutada „%s“ andmebaasi nimes punkte",
@@ -153,6 +162,7 @@ OC.L10N.register(
"%1$s shared %2$s with you and wants to add:" : "%1$s jagas sinuga %2$s ning soovib lisada:",
"%1$s shared %2$s with you and wants to add" : "%1$s jagas sinuga %2$s ning soovib lisada",
"%s added a note to a file shared with you" : "%s jagas koos sulle jagatud failiga ka märget",
+ "Passwords are enforced for link and mail shares" : "Linkide ja e-posti teel levitatava jaosmeedia puhul on salasõnade kasutamine nõutav",
"Share recipient is not a valid user" : "Jaosmeedia vastuvõtja pole korrektne kasutaja",
"Share recipient is not a valid group" : "Jaosmeedia vastuvõtja pole korrektne grupp",
"Share recipient should be empty" : "Jaosmeedia vastuvõtja peaks jääma tühjaks",
@@ -176,6 +186,7 @@ OC.L10N.register(
"Sharing is only allowed with group members" : "Jagamine on lubatud vaid grupi liikmetega",
"Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %s",
"Group sharing is now allowed" : "Grupile jagamine on nüüd lubatud",
+ "Sharing is only allowed within your own groups" : "Jagamine on lubatud vaid sinu oma grupi liikmetega",
"Path is already shared with this group" : "Asukoht on selle grupiga juba jagatud",
"Link sharing is not allowed" : "Lingi jagamine pole lubatud",
"Public upload is not allowed" : "Avalik üleslaadimine pole lubatud",
@@ -187,7 +198,7 @@ OC.L10N.register(
"Invalid share recipient" : "Vigane jaosmeedia vastuvõtja",
"Group \"%s\" does not exist" : "„%s“ gruppi pole olemas",
"The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri",
- "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
+ "Could not find category \"%s\"" : "Ei leia kategooriat „%s“",
"Input text" : "Sisendtekst",
"The input text" : "Sisendtekst",
"Sunday" : "Pühapäev",
@@ -238,7 +249,13 @@ OC.L10N.register(
"A valid password must be provided" : "Sisesta nõuetele vastav parool",
"The Login is already being used" : "See kasutajanimi on juba kasutusel",
"Could not create account" : "Kasutajakonto loomine ei õnnestunud",
+ "Only the following characters are allowed in an Login: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "Kasutajanimes on lubatud ainult järgmised tähemärgid: „a-z“, „A-Z“, „0-9“, ja „_.@-'“",
+ "A valid Login must be provided" : "Palun sisesta korrektne kasutajanimi",
+ "Login contains whitespace at the beginning or at the end" : "Kasutajanime alguses või lõpus on tühik",
+ "Login must not consist of dots only" : "Kasutajanimi ei tohi koosneda ainult punktidest",
"Login is too long" : "Kasutajanimi on liiga pikk",
+ "Login is invalid because files already exist for this user" : "See kasutajanimi ei sobi, kuna sellise kasutaja faile on juba olemas",
+ "Account disabled" : "Konto pole kasutusel",
"Login canceled by app" : "Rakendus katkestas sisselogimise",
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "„%1$s“ rakendust ei saa paigaldada, sest järgnev sõltuvus on puudu: %2$s",
"a safe home for all your data" : "turvaline koht sinu andmetele",
@@ -252,13 +269,14 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your web server." : "Palun paigalda mõni neist lokaatidest oma serverisse ning taaskäivita veebiserver.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
- "PHP setting \"%s\" is not set to \"%s\"." : "PHP seade \"%s\" ei ole \"%s\".",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP seadistuse „%s“ väärtuseks ei ole „%s“.",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Selle seadistuse kohendamine php.ini failis võimaldab sul Nextcloudi uuesti tööle saada",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
"Your data directory must be an absolute path." : "Andmekausta asukoht peab olema absoluutne aadress.",
"Your data directory is invalid." : "Sinu andmekataloog on vigane",
+ "Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Palun taga, et andmete juurkaustas leidub fail „%1$s“, mille sisuks on „%2$s“",
"Action \"%s\" not supported or implemented." : "„%s“ tegevus pole toetatud või implementeeritud.",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid; „%s“",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Liitpilve teenusepakkujat tunnusega „%s“ pole olemas.",
@@ -276,6 +294,11 @@ OC.L10N.register(
"How many images to generate" : "Mitu pilti peaksime tekitama",
"Output images" : "Väljundpildid",
"The generated images" : "Loodud pildid",
+ "Generate speech" : "Koosta kõne",
+ "Generate speech from a transcript" : "Koosta üleskirjutusest kõne",
+ "Write transcript that you want the assistant to generate speech from" : "Kirjuta üles see, mille alusel tahad Abilisel lasta koostada kõne",
+ "Output speech" : "Kõneväljund",
+ "The generated speech" : "Koostatud kõne",
"Generate a headline" : "Alapealkirja loomine",
"Generates a possible headline for a text." : "Võimaldab luua teksti põhjal kokkuvõtliku alapealkirja.",
"Original text" : "Lähtetekst",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index e8db1891012..295c4b77855 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -1,8 +1,12 @@
{ "translations": {
"Cannot write into \"config\" directory!" : "Ei saa kirjutada „config“ kausta!!",
+ "This can usually be fixed by giving the web server write access to the config directory." : "Tavaliselt saad selle lahendada andes veebiserverile õigused seadistuse kausta kirjutamiseks",
+ "But, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Aga kui soovid, et seadistuste fail ei peaks olema veebiserveri poolt muudetav, siis palun määra seadistusvõtme „config_is_read_only“ väärtuseks true.",
"See %s" : "Vaata %s",
+ "Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Rakendust „%1$s“ pole serverisse paigaldatud või pole tema versioon ühilduv selle serveriga. Palun kontrolli paigaldatud rakendusi.",
"Sample configuration detected" : "Tuvastati näidisseaded",
"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" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "The page could not be found on the server." : "Seda lehte ei õnnestunud serverist leida.",
"%s email verification" : "E-postiaadressi kinnitamine: %s",
"Email verification" : "E-postiaadressi kinnitamine",
"Click the following button to confirm your email." : "Oma e-postiaadressi kinnitamiseks klõpsi järgmisel nupul.",
@@ -15,6 +19,7 @@
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s",
"PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
"PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.",
+ "%sbit or higher PHP required." : "Vajalik on %s-bitine või parem PHP versioon.",
"The following architectures are supported: %s" : "Toetatud on järgnevad arhitektuurid: %s",
"The following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s",
"The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud",
@@ -29,9 +34,11 @@
"Wiping of device %s has started" : "Andmete kustutamine seadmes „%s“ algas",
"Wiping of device »%s« has started" : "Andmete kustutamine seadmes „%s“ algas",
"»%s« started remote wipe" : "„%s“ alustas kaugseadme andmete kustutamist",
+ "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "„%s“ seade või rakendus on alustanud kaugkustutamise protsessi. Selle lõppemisel saad veel ühe teavitava e-kirja",
"Wiping of device %s has finished" : "Andmete kustutamine seadmes „%s“ lõppes",
"Wiping of device »%s« has finished" : "Andmete kustutamine seadmes „%s“ lõppes",
"»%s« finished remote wipe" : "„%s“ lõpetas kaugseadme andmete kustutamise",
+ "Device or application »%s« has finished the remote wipe process." : "„%s“ seade või rakendus on lõpetanud kaugkustutamise protsessi.",
"Remote wipe started" : "Kaugkustutamine on alanud",
"A remote wipe was started on device %s" : "„%s“ seadme kaugkustutamine on alanud",
"Remote wipe finished" : "Kaugkustutamine on lõppenud",
@@ -97,6 +104,7 @@
"Filename contains at least one invalid character" : "Failinimes on vähemalt üks keelatud märk",
"Filename is too long" : "Failinimi on liiga pikk",
"Empty filename is not allowed" : "Tühi failinimi pole lubatud",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "Kuna „appinfo“ faili pole võimalik lugeda, siis „%s“ rakendust ei saa paigaldada.",
"App \"%s\" cannot be installed because it is not compatible with this version of the server." : "Kuna ta pole ühilduv selle serveri versiooniga, siis „%s“ rakendust ei saa paigaldada.",
"__language_name__" : "Eesti",
"This is an automatically sent email, please do not reply." : "See on automaatselt saadetud e-kiri, palun ära vasta.",
@@ -128,6 +136,7 @@
"Pronouns" : "Asesõnad pöördumisel",
"Unknown account" : "Tundmatu kasutajakonto",
"Additional settings" : "Lisaseaded",
+ "Enter the database Login and name for %s" : "Andmebaasi kasutajanimi ning nimi %si jaoks",
"Enter the database Login for %s" : "Sisesta andmebaasi %s kasutajatunnus",
"Enter the database name for %s" : "Sisesta andmebaasi %s nimi",
"You cannot use dots in the database name %s" : "Sa ei tohi kasutada „%s“ andmebaasi nimes punkte",
@@ -151,6 +160,7 @@
"%1$s shared %2$s with you and wants to add:" : "%1$s jagas sinuga %2$s ning soovib lisada:",
"%1$s shared %2$s with you and wants to add" : "%1$s jagas sinuga %2$s ning soovib lisada",
"%s added a note to a file shared with you" : "%s jagas koos sulle jagatud failiga ka märget",
+ "Passwords are enforced for link and mail shares" : "Linkide ja e-posti teel levitatava jaosmeedia puhul on salasõnade kasutamine nõutav",
"Share recipient is not a valid user" : "Jaosmeedia vastuvõtja pole korrektne kasutaja",
"Share recipient is not a valid group" : "Jaosmeedia vastuvõtja pole korrektne grupp",
"Share recipient should be empty" : "Jaosmeedia vastuvõtja peaks jääma tühjaks",
@@ -174,6 +184,7 @@
"Sharing is only allowed with group members" : "Jagamine on lubatud vaid grupi liikmetega",
"Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %s",
"Group sharing is now allowed" : "Grupile jagamine on nüüd lubatud",
+ "Sharing is only allowed within your own groups" : "Jagamine on lubatud vaid sinu oma grupi liikmetega",
"Path is already shared with this group" : "Asukoht on selle grupiga juba jagatud",
"Link sharing is not allowed" : "Lingi jagamine pole lubatud",
"Public upload is not allowed" : "Avalik üleslaadimine pole lubatud",
@@ -185,7 +196,7 @@
"Invalid share recipient" : "Vigane jaosmeedia vastuvõtja",
"Group \"%s\" does not exist" : "„%s“ gruppi pole olemas",
"The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri",
- "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
+ "Could not find category \"%s\"" : "Ei leia kategooriat „%s“",
"Input text" : "Sisendtekst",
"The input text" : "Sisendtekst",
"Sunday" : "Pühapäev",
@@ -236,7 +247,13 @@
"A valid password must be provided" : "Sisesta nõuetele vastav parool",
"The Login is already being used" : "See kasutajanimi on juba kasutusel",
"Could not create account" : "Kasutajakonto loomine ei õnnestunud",
+ "Only the following characters are allowed in an Login: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "Kasutajanimes on lubatud ainult järgmised tähemärgid: „a-z“, „A-Z“, „0-9“, ja „_.@-'“",
+ "A valid Login must be provided" : "Palun sisesta korrektne kasutajanimi",
+ "Login contains whitespace at the beginning or at the end" : "Kasutajanime alguses või lõpus on tühik",
+ "Login must not consist of dots only" : "Kasutajanimi ei tohi koosneda ainult punktidest",
"Login is too long" : "Kasutajanimi on liiga pikk",
+ "Login is invalid because files already exist for this user" : "See kasutajanimi ei sobi, kuna sellise kasutaja faile on juba olemas",
+ "Account disabled" : "Konto pole kasutusel",
"Login canceled by app" : "Rakendus katkestas sisselogimise",
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "„%1$s“ rakendust ei saa paigaldada, sest järgnev sõltuvus on puudu: %2$s",
"a safe home for all your data" : "turvaline koht sinu andmetele",
@@ -250,13 +267,14 @@
"Please install one of these locales on your system and restart your web server." : "Palun paigalda mõni neist lokaatidest oma serverisse ning taaskäivita veebiserver.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
- "PHP setting \"%s\" is not set to \"%s\"." : "PHP seade \"%s\" ei ole \"%s\".",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP seadistuse „%s“ väärtuseks ei ole „%s“.",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Selle seadistuse kohendamine php.ini failis võimaldab sul Nextcloudi uuesti tööle saada",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
"Your data directory must be an absolute path." : "Andmekausta asukoht peab olema absoluutne aadress.",
"Your data directory is invalid." : "Sinu andmekataloog on vigane",
+ "Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Palun taga, et andmete juurkaustas leidub fail „%1$s“, mille sisuks on „%2$s“",
"Action \"%s\" not supported or implemented." : "„%s“ tegevus pole toetatud või implementeeritud.",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid; „%s“",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Liitpilve teenusepakkujat tunnusega „%s“ pole olemas.",
@@ -274,6 +292,11 @@
"How many images to generate" : "Mitu pilti peaksime tekitama",
"Output images" : "Väljundpildid",
"The generated images" : "Loodud pildid",
+ "Generate speech" : "Koosta kõne",
+ "Generate speech from a transcript" : "Koosta üleskirjutusest kõne",
+ "Write transcript that you want the assistant to generate speech from" : "Kirjuta üles see, mille alusel tahad Abilisel lasta koostada kõne",
+ "Output speech" : "Kõneväljund",
+ "The generated speech" : "Koostatud kõne",
"Generate a headline" : "Alapealkirja loomine",
"Generates a possible headline for a text." : "Võimaldab luua teksti põhjal kokkuvõtliku alapealkirja.",
"Original text" : "Lähtetekst",
diff --git a/lib/l10n/lv.js b/lib/l10n/lv.js
index a201c8c6081..f9a25d805d4 100644
--- a/lib/l10n/lv.js
+++ b/lib/l10n/lv.js
@@ -115,7 +115,7 @@ OC.L10N.register(
"Nov." : "Nov.",
"Dec." : "Dec.",
"A valid password must be provided" : "Jānorāda derīga parole",
- "Login canceled by app" : "Pieteikšanos atcelā lietotne",
+ "Login canceled by app" : "Lietotne atcēla pieteikšanos",
"a safe home for all your data" : "droša vieta visiem Taviem datiem",
"Application is not enabled" : "Lietotne nav iespējota",
"Authentication error" : "Autentificēšanās kļūda",
diff --git a/lib/l10n/lv.json b/lib/l10n/lv.json
index 6ae08bbf873..e03e7b44be5 100644
--- a/lib/l10n/lv.json
+++ b/lib/l10n/lv.json
@@ -113,7 +113,7 @@
"Nov." : "Nov.",
"Dec." : "Dec.",
"A valid password must be provided" : "Jānorāda derīga parole",
- "Login canceled by app" : "Pieteikšanos atcelā lietotne",
+ "Login canceled by app" : "Lietotne atcēla pieteikšanos",
"a safe home for all your data" : "droša vieta visiem Taviem datiem",
"Application is not enabled" : "Lietotne nav iespējota",
"Authentication error" : "Autentificēšanās kļūda",
diff --git a/lib/l10n/mk.js b/lib/l10n/mk.js
index 360efcb0867..71f6ea50370 100644
--- a/lib/l10n/mk.js
+++ b/lib/l10n/mk.js
@@ -52,6 +52,8 @@ OC.L10N.register(
"Avatar image is not square" : "Сликата за Аватар не е квадратна",
"Files" : "Датотеки",
"View profile" : "Прегледај профил",
+ "_%nh_::_%nh_" : ["%nч","%nч"],
+ "_%nm_::_%nm_" : ["%nм","%nм"],
"Local time: %s" : "Локално време: %s",
"today" : "денес",
"tomorrow" : "утре",
@@ -122,6 +124,8 @@ OC.L10N.register(
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "За позадинското споделување %s мора се имплементира интерфејсот OCP\\Share_Backend",
"Sharing backend %s not found" : "Не е пронајдено позадинско споделување %s",
"Sharing backend for %s not found" : "Не е пронајдено позадинско споделување за %s.",
+ "%1$s shared %2$s with you" : "%1$s сподели %2$s со вас",
+ "Open %s" : "Отвори %s",
"%1$s via %2$s" : "%1$s преку %2$s",
"Unknown share type" : "Непознат вид на споделување",
"You are not allowed to share %s" : "Не сте овластени да ја споделите %s",
diff --git a/lib/l10n/mk.json b/lib/l10n/mk.json
index d4fbd122d20..9eaaa1b777f 100644
--- a/lib/l10n/mk.json
+++ b/lib/l10n/mk.json
@@ -50,6 +50,8 @@
"Avatar image is not square" : "Сликата за Аватар не е квадратна",
"Files" : "Датотеки",
"View profile" : "Прегледај профил",
+ "_%nh_::_%nh_" : ["%nч","%nч"],
+ "_%nm_::_%nm_" : ["%nм","%nм"],
"Local time: %s" : "Локално време: %s",
"today" : "денес",
"tomorrow" : "утре",
@@ -120,6 +122,8 @@
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "За позадинското споделување %s мора се имплементира интерфејсот OCP\\Share_Backend",
"Sharing backend %s not found" : "Не е пронајдено позадинско споделување %s",
"Sharing backend for %s not found" : "Не е пронајдено позадинско споделување за %s.",
+ "%1$s shared %2$s with you" : "%1$s сподели %2$s со вас",
+ "Open %s" : "Отвори %s",
"%1$s via %2$s" : "%1$s преку %2$s",
"Unknown share type" : "Непознат вид на споделување",
"You are not allowed to share %s" : "Не сте овластени да ја споделите %s",
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index a03970a1c3b..ad607e4b9cc 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -201,6 +201,7 @@ OC.L10N.register(
"Path is already shared with this group" : "Bu yol bu grup ile zaten paylaşılmış",
"Link sharing is not allowed" : "Bağlantı paylaşımına izin verilmiyor",
"Public upload is not allowed" : "Herkese açık yüklemeye izin verilmiyor",
+ "You cannot share a folder that contains other shares" : "Başka paylaşımların bulunduğu bir klasörü paylaşamazsınız",
"Sharing is disabled" : "Paylaşım kullanımdan kaldırılmış",
"Sharing is disabled for you" : "Paylaşım sizin için kullanımdan kaldırılmış",
"Cannot share with the share owner" : "Paylaşımı sahibi ile paylaşamazsınız",
@@ -272,6 +273,7 @@ OC.L10N.register(
"A valid Login must be provided" : "Geçerli bir kullanıcı adı yazmalısınız",
"Login contains whitespace at the beginning or at the end" : "Kullanıcı adının başında ya da sonunda boşluk var",
"Login must not consist of dots only" : "Kullanıcı adı yalnızca noktalardan oluşamaz",
+ "Login is too long" : "Kullanıcı adı çok uzun",
"Login is invalid because files already exist for this user" : "Kullanıcı adı geçersiz, bu kullanıcı için zaten bazı dosyalar var",
"Account disabled" : "Hesap kullanımdan kaldırılmış",
"Login canceled by app" : "Oturum açma uygulama tarafından iptal edildi",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index a066cd1a337..9a89aab5b92 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -199,6 +199,7 @@
"Path is already shared with this group" : "Bu yol bu grup ile zaten paylaşılmış",
"Link sharing is not allowed" : "Bağlantı paylaşımına izin verilmiyor",
"Public upload is not allowed" : "Herkese açık yüklemeye izin verilmiyor",
+ "You cannot share a folder that contains other shares" : "Başka paylaşımların bulunduğu bir klasörü paylaşamazsınız",
"Sharing is disabled" : "Paylaşım kullanımdan kaldırılmış",
"Sharing is disabled for you" : "Paylaşım sizin için kullanımdan kaldırılmış",
"Cannot share with the share owner" : "Paylaşımı sahibi ile paylaşamazsınız",
@@ -270,6 +271,7 @@
"A valid Login must be provided" : "Geçerli bir kullanıcı adı yazmalısınız",
"Login contains whitespace at the beginning or at the end" : "Kullanıcı adının başında ya da sonunda boşluk var",
"Login must not consist of dots only" : "Kullanıcı adı yalnızca noktalardan oluşamaz",
+ "Login is too long" : "Kullanıcı adı çok uzun",
"Login is invalid because files already exist for this user" : "Kullanıcı adı geçersiz, bu kullanıcı için zaten bazı dosyalar var",
"Account disabled" : "Hesap kullanımdan kaldırılmış",
"Login canceled by app" : "Oturum açma uygulama tarafından iptal edildi",
diff --git a/lib/l10n/uz.js b/lib/l10n/uz.js
index b3d7be96b38..10dc2ccabf5 100644
--- a/lib/l10n/uz.js
+++ b/lib/l10n/uz.js
@@ -31,6 +31,7 @@ OC.L10N.register(
"Authentication error" : "Authentication error",
"Storage is temporarily not available" : "Storage is temporarily not available",
"Confirmation" : "Tasdiqlash",
+ "Text" : "Matn",
"Translate" : "Tarjima",
"File name is too long" : "File name is too long",
"Users" : "Users",
diff --git a/lib/l10n/uz.json b/lib/l10n/uz.json
index d032d72f931..6a9b2008a78 100644
--- a/lib/l10n/uz.json
+++ b/lib/l10n/uz.json
@@ -29,6 +29,7 @@
"Authentication error" : "Authentication error",
"Storage is temporarily not available" : "Storage is temporarily not available",
"Confirmation" : "Tasdiqlash",
+ "Text" : "Matn",
"Translate" : "Tarjima",
"File name is too long" : "File name is too long",
"Users" : "Users",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 818f0fdad18..1637350f1e9 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -364,6 +364,11 @@ OC.L10N.register(
"How many images to generate" : "生成多少张图片",
"Output images" : "输出图像",
"The generated images" : "生成的图像",
+ "Generate speech" : "生成语音",
+ "Generate speech from a transcript" : "从转录生成语音",
+ "Write transcript that you want the assistant to generate speech from" : "编写您想要助手从中生成语音的转录内容",
+ "Output speech" : "输出语音",
+ "The generated speech" : "生成的语音",
"Free text to text prompt" : "免费文本转文本提示",
"Runs an arbitrary prompt through a language model that returns a reply" : "通过语言模型运行任意提示并返回答复",
"Describe a task that you want the assistant to do or ask a question" : "描述你希望助手执行的任务或提出问题",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index bc3d5081fdc..dd94f1bb5cf 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -362,6 +362,11 @@
"How many images to generate" : "生成多少张图片",
"Output images" : "输出图像",
"The generated images" : "生成的图像",
+ "Generate speech" : "生成语音",
+ "Generate speech from a transcript" : "从转录生成语音",
+ "Write transcript that you want the assistant to generate speech from" : "编写您想要助手从中生成语音的转录内容",
+ "Output speech" : "输出语音",
+ "The generated speech" : "生成的语音",
"Free text to text prompt" : "免费文本转文本提示",
"Runs an arbitrary prompt through a language model that returns a reply" : "通过语言模型运行任意提示并返回答复",
"Describe a task that you want the assistant to do or ask a question" : "描述你希望助手执行的任务或提出问题",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index 95a20523c8f..4f92a865290 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -364,6 +364,11 @@ OC.L10N.register(
"How many images to generate" : "要產生多少影像",
"Output images" : "輸出影像",
"The generated images" : "產生的影像",
+ "Generate speech" : "產生語音",
+ "Generate speech from a transcript" : "從轉錄稿產生語音",
+ "Write transcript that you want the assistant to generate speech from" : "寫下您想要小幫手產生語音的來源轉錄稿",
+ "Output speech" : "輸出語音",
+ "The generated speech" : "產生的語音",
"Free text to text prompt" : "文字提示的自由文字",
"Runs an arbitrary prompt through a language model that returns a reply" : "透過回傳回覆的語言模型執行任意提示",
"Describe a task that you want the assistant to do or ask a question" : "描述您希望助理執行的任務或提出問題",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index b9af7705ef9..34b32540bc8 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -362,6 +362,11 @@
"How many images to generate" : "要產生多少影像",
"Output images" : "輸出影像",
"The generated images" : "產生的影像",
+ "Generate speech" : "產生語音",
+ "Generate speech from a transcript" : "從轉錄稿產生語音",
+ "Write transcript that you want the assistant to generate speech from" : "寫下您想要小幫手產生語音的來源轉錄稿",
+ "Output speech" : "輸出語音",
+ "The generated speech" : "產生的語音",
"Free text to text prompt" : "文字提示的自由文字",
"Runs an arbitrary prompt through a language model that returns a reply" : "透過回傳回覆的語言模型執行任意提示",
"Describe a task that you want the assistant to do or ask a question" : "描述您希望助理執行的任務或提出問題",
diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php
index c2125bc6f8a..fb0795376bb 100644
--- a/lib/private/NavigationManager.php
+++ b/lib/private/NavigationManager.php
@@ -77,7 +77,7 @@ class NavigationManager implements INavigationManager {
$this->closureEntries[] = $entry;
return;
}
- $this->init();
+ $this->init(false);
$id = $entry['id'];
@@ -123,10 +123,6 @@ class NavigationManager implements INavigationManager {
*/
public function getAll(string $type = 'link'): array {
$this->init();
- foreach ($this->closureEntries as $c) {
- $this->add($c());
- }
- $this->closureEntries = [];
$result = $this->entries;
if ($type !== 'all') {
@@ -212,7 +208,13 @@ class NavigationManager implements INavigationManager {
return $this->activeEntry;
}
- private function init() {
+ private function init(bool $resolveClosures = true): void {
+ if ($resolveClosures) {
+ while ($c = array_pop($this->closureEntries)) {
+ $this->add($c());
+ }
+ }
+
if ($this->init) {
return;
}
@@ -420,11 +422,6 @@ class NavigationManager implements INavigationManager {
public function get(string $id): ?array {
$this->init();
- foreach ($this->closureEntries as $c) {
- $this->add($c());
- }
- $this->closureEntries = [];
-
return $this->entries[$id];
}
diff --git a/lib/private/Security/Normalizer/IpAddress.php b/lib/private/Security/Normalizer/IpAddress.php
index b3793685a24..4d33a7bd632 100644
--- a/lib/private/Security/Normalizer/IpAddress.php
+++ b/lib/private/Security/Normalizer/IpAddress.php
@@ -42,8 +42,15 @@ class IpAddress {
$maskSize = min(64, $config->getSystemValueInt('security.ipv6_normalized_subnet_size', 56));
$maskSize = max(32, $maskSize);
if (PHP_INT_SIZE === 4) {
+ if ($maskSize === 64) {
+ $value = -1;
+ } elseif ($maskSize === 63) {
+ $value = PHP_INT_MAX;
+ } else {
+ $value = (1 << $maskSize - 32) - 1;
+ }
// as long as we support 32bit PHP we cannot use the `P` pack formatter (and not overflow 32bit integer)
- $mask = pack('VVVV', 0xFFFF, $maskSize === 64 ? 0xFFFF : ((1 << $maskSize - 32) - 1), 0, 0);
+ $mask = pack('VVVV', -1, $value, 0, 0);
} else {
$mask = pack('VVP', (1 << 32) - 1, (1 << $maskSize - 32) - 1, 0);
}
diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php
index a701c23d56f..9992310dbbb 100644
--- a/lib/private/TaskProcessing/Manager.php
+++ b/lib/private/TaskProcessing/Manager.php
@@ -584,6 +584,7 @@ class Manager implements IManager {
\OCP\TaskProcessing\TaskTypes\TextToTextChatWithTools::ID => \OCP\Server::get(\OCP\TaskProcessing\TaskTypes\TextToTextChatWithTools::class),
\OCP\TaskProcessing\TaskTypes\ContextAgentInteraction::ID => \OCP\Server::get(\OCP\TaskProcessing\TaskTypes\ContextAgentInteraction::class),
\OCP\TaskProcessing\TaskTypes\TextToTextProofread::ID => \OCP\Server::get(\OCP\TaskProcessing\TaskTypes\TextToTextProofread::class),
+ \OCP\TaskProcessing\TaskTypes\TextToSpeech::ID => \OCP\Server::get(\OCP\TaskProcessing\TaskTypes\TextToSpeech::class),
];
foreach ($context->getTaskProcessingTaskTypes() as $providerServiceRegistration) {
diff --git a/lib/private/Template/JSResourceLocator.php b/lib/private/Template/JSResourceLocator.php
index aad999f939a..a6d2d13a2ad 100644
--- a/lib/private/Template/JSResourceLocator.php
+++ b/lib/private/Template/JSResourceLocator.php
@@ -69,7 +69,7 @@ class JSResourceLocator extends ResourceLocator {
|| $this->appendScriptIfExist($this->serverroot, "dist/$app-$scriptName")
|| $this->appendScriptIfExist($appRoot, $script, $appWebRoot)
|| $this->cacheAndAppendCombineJsonIfExist($this->serverroot, $script . '.json')
- || $this->cacheAndAppendCombineJsonIfExist($appRoot, $script . '.json', $appWebRoot)
+ || $this->cacheAndAppendCombineJsonIfExist($appRoot, $script . '.json', $app)
|| $this->appendScriptIfExist($this->serverroot, $theme_dir . 'core/' . $script)
|| $this->appendScriptIfExist($this->serverroot, 'core/' . $script)
|| (strpos($scriptName, '/') === -1 && ($this->appendScriptIfExist($this->serverroot, $theme_dir . "dist/core-$scriptName")
diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php
index ad12fae5144..c78ecac0903 100644
--- a/lib/private/URLGenerator.php
+++ b/lib/private/URLGenerator.php
@@ -304,6 +304,11 @@ class URLGenerator implements IURLGenerator {
if ($href === '') {
throw new \InvalidArgumentException('Default navigation entry is missing href: ' . $entryId);
}
+
+ if (str_starts_with($href, $this->getBaseUrl())) {
+ return $href;
+ }
+
if (str_starts_with($href, '/index.php/') && ($this->config->getSystemValueBool('htaccess.IgnoreFrontController', false) || getenv('front_controller_active') === 'true')) {
$href = substr($href, 10);
}
diff --git a/lib/public/Constants.php b/lib/public/Constants.php
index 62772d195b2..8d38ade7baf 100644
--- a/lib/public/Constants.php
+++ b/lib/public/Constants.php
@@ -18,20 +18,20 @@ namespace OCP;
*/
class Constants {
/**
- * CRUDS permissions.
* @since 8.0.0
*/
- public const PERMISSION_CREATE = 4;
+ public const PERMISSION_READ = 1;
/**
* @since 8.0.0
*/
- public const PERMISSION_READ = 1;
+ public const PERMISSION_UPDATE = 2;
/**
+ * CRUDS permissions.
* @since 8.0.0
*/
- public const PERMISSION_UPDATE = 2;
+ public const PERMISSION_CREATE = 4;
/**
* @since 8.0.0
diff --git a/lib/public/TaskProcessing/TaskTypes/TextToSpeech.php b/lib/public/TaskProcessing/TaskTypes/TextToSpeech.php
new file mode 100644
index 00000000000..ce35be32a6f
--- /dev/null
+++ b/lib/public/TaskProcessing/TaskTypes/TextToSpeech.php
@@ -0,0 +1,92 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCP\TaskProcessing\TaskTypes;
+
+use OCP\IL10N;
+use OCP\L10N\IFactory;
+use OCP\TaskProcessing\EShapeType;
+use OCP\TaskProcessing\ITaskType;
+use OCP\TaskProcessing\ShapeDescriptor;
+
+/**
+ * This is the task processing task type for speech generation
+ * @since 32.0.0
+ */
+class TextToSpeech implements ITaskType {
+ /**
+ * @since 32.0.0
+ */
+ public const ID = 'core:text2speech';
+
+ private IL10N $l;
+
+ /**
+ * @param IFactory $l10nFactory
+ * @since 32.0.0
+ */
+ public function __construct(
+ IFactory $l10nFactory,
+ ) {
+ $this->l = $l10nFactory->get('lib');
+ }
+
+
+ /**
+ * @inheritDoc
+ * @since 32.0.0
+ */
+ public function getName(): string {
+ return $this->l->t('Generate speech');
+ }
+
+ /**
+ * @inheritDoc
+ * @since 32.0.0
+ */
+ public function getDescription(): string {
+ return $this->l->t('Generate speech from a transcript');
+ }
+
+ /**
+ * @return string
+ * @since 32.0.0
+ */
+ public function getId(): string {
+ return self::ID;
+ }
+
+ /**
+ * @return ShapeDescriptor[]
+ * @since 32.0.0
+ */
+ public function getInputShape(): array {
+ return [
+ 'input' => new ShapeDescriptor(
+ $this->l->t('Prompt'),
+ $this->l->t('Write transcript that you want the assistant to generate speech from'),
+ EShapeType::Text
+ ),
+ ];
+ }
+
+ /**
+ * @return ShapeDescriptor[]
+ * @since 32.0.0
+ */
+ public function getOutputShape(): array {
+ return [
+ 'speech' => new ShapeDescriptor(
+ $this->l->t('Output speech'),
+ $this->l->t('The generated speech'),
+ EShapeType::Audio
+ ),
+ ];
+ }
+}