]> source.dussan.org Git - nextcloud-server.git/commitdiff
feat(taskprocessing): add translate task type
authorJulien Veyssier <julien-nc@posteo.net>
Thu, 25 Jul 2024 08:37:36 +0000 (10:37 +0200)
committerJulien Veyssier <julien-nc@posteo.net>
Thu, 25 Jul 2024 08:37:36 +0000 (10:37 +0200)
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
lib/composer/composer/autoload_classmap.php
lib/composer/composer/autoload_static.php
lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php [new file with mode: 0644]

index 70af8dc7f9286678f9c3c6d75ecf4a89e13dc9ea..4abb976e1a9ba8a12d4b9c4fead33c703a0608a8 100644 (file)
@@ -763,6 +763,7 @@ return array(
     'OCP\\TaskProcessing\\TaskTypes\\TextToTextSimplification' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextSimplification.php',
     'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
     'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
+    'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
     'OCP\\Teams\\ITeamManager' => $baseDir . '/lib/public/Teams/ITeamManager.php',
     'OCP\\Teams\\ITeamResourceProvider' => $baseDir . '/lib/public/Teams/ITeamResourceProvider.php',
     'OCP\\Teams\\Team' => $baseDir . '/lib/public/Teams/Team.php',
index 6592103cf2875bdc9e2260f2e24e88ffca98324b..d7a58bff1a289d30ae83d5c8ba1f870355f95518 100644 (file)
@@ -796,6 +796,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
         'OCP\\TaskProcessing\\TaskTypes\\TextToTextSimplification' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextSimplification.php',
         'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
         'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
+        'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
         'OCP\\Teams\\ITeamManager' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamManager.php',
         'OCP\\Teams\\ITeamResourceProvider' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamResourceProvider.php',
         'OCP\\Teams\\Team' => __DIR__ . '/../../..' . '/lib/public/Teams/Team.php',
diff --git a/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php b/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php
new file mode 100644 (file)
index 0000000..11b71ec
--- /dev/null
@@ -0,0 +1,102 @@
+<?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 generic text processing
+ * @since 30.0.0
+ */
+class TextToTextTranslate implements ITaskType {
+       /**
+        * @since 30.0.0
+        */
+       public const ID = 'core:text2text:translate';
+
+       private IL10N $l;
+
+       /**
+        * @param IFactory $l10nFactory
+        * @since 30.0.0
+        */
+       public function __construct(
+               IFactory $l10nFactory,
+       ) {
+               $this->l = $l10nFactory->get('core');
+       }
+
+
+       /**
+        * @inheritDoc
+        * @since 30.0.0
+        */
+       public function getName(): string {
+               return $this->l->t('Translate');
+       }
+
+       /**
+        * @inheritDoc
+        * @since 30.0.0
+        */
+       public function getDescription(): string {
+               return $this->l->t('Translate text from one language to another');
+       }
+
+       /**
+        * @return string
+        * @since 30.0.0
+        */
+       public function getId(): string {
+               return self::ID;
+       }
+
+       /**
+        * @return ShapeDescriptor[]
+        * @since 30.0.0
+        */
+       public function getInputShape(): array {
+               return [
+                       'input' => new ShapeDescriptor(
+                               $this->l->t('Origin text'),
+                               $this->l->t('The text to translate'),
+                               EShapeType::Text
+                       ),
+                       'origin_language' => new ShapeDescriptor(
+                               $this->l->t('Origin language'),
+                               $this->l->t('The language of the origin text'),
+                               EShapeType::Enum
+                       ),
+                       'target_language' => new ShapeDescriptor(
+                               $this->l->t('Target language'),
+                               $this->l->t('The desired language to translate the origin text in'),
+                               EShapeType::Enum
+                       ),
+               ];
+       }
+
+       /**
+        * @return ShapeDescriptor[]
+        * @since 30.0.0
+        */
+       public function getOutputShape(): array {
+               return [
+                       'output' => new ShapeDescriptor(
+                               $this->l->t('Result'),
+                               $this->l->t('The translated text'),
+                               EShapeType::Text
+                       ),
+               ];
+       }
+}