Passed
Push — master ( b1c6b9...598859 )
by Joas
17:51 queued 02:38
created
lib/private/Translation/TranslationManager.php 1 patch
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -41,93 +41,93 @@
 block discarded – undo
41 41
 use Throwable;
42 42
 
43 43
 class TranslationManager implements ITranslationManager {
44
-	/** @var ?ITranslationProvider[] */
45
-	private ?array $providers = null;
46
-
47
-	public function __construct(
48
-		private IServerContainer $serverContainer,
49
-		private Coordinator $coordinator,
50
-		private LoggerInterface $logger,
51
-	) {
52
-	}
53
-
54
-	public function getLanguages(): array {
55
-		$languages = [];
56
-		foreach ($this->getProviders() as $provider) {
57
-			$languages = array_merge($languages, $provider->getAvailableLanguages());
58
-		}
59
-		return $languages;
60
-	}
61
-
62
-	public function translate(string $text, ?string &$fromLanguage, string $toLanguage): string {
63
-		if (!$this->hasProviders()) {
64
-			throw new PreConditionNotMetException('No translation providers available');
65
-		}
66
-
67
-		if ($fromLanguage === null) {
68
-			foreach ($this->getProviders() as $provider) {
69
-				if ($provider instanceof IDetectLanguageProvider) {
70
-					$fromLanguage = $provider->detectLanguage($text);
71
-				}
72
-
73
-				if ($fromLanguage !== null) {
74
-					break;
75
-				}
76
-			}
77
-
78
-			if ($fromLanguage === null) {
79
-				throw new InvalidArgumentException('Could not detect language');
80
-			}
81
-		}
82
-
83
-		if ($fromLanguage === $toLanguage) {
84
-			return $text;
85
-		}
86
-
87
-		foreach ($this->getProviders() as $provider) {
88
-			try {
89
-				return $provider->translate($fromLanguage, $toLanguage, $text);
90
-			} catch (RuntimeException $e) {
91
-				$this->logger->warning("Failed to translate from {$fromLanguage} to {$toLanguage}", ['exception' => $e]);
92
-			}
93
-		}
94
-
95
-		throw new CouldNotTranslateException($fromLanguage);
96
-	}
97
-
98
-	public function getProviders(): array {
99
-		$context = $this->coordinator->getRegistrationContext();
100
-
101
-		if ($this->providers !== null) {
102
-			return $this->providers;
103
-		}
104
-
105
-		$this->providers = [];
106
-		foreach ($context->getTranslationProviders() as $providerRegistration) {
107
-			$class = $providerRegistration->getService();
108
-			try {
109
-				$this->providers[$class] = $this->serverContainer->get($class);
110
-			} catch (NotFoundExceptionInterface|ContainerExceptionInterface|Throwable $e) {
111
-				$this->logger->error('Failed to load translation provider ' . $class, [
112
-					'exception' => $e
113
-				]);
114
-			}
115
-		}
116
-
117
-		return $this->providers;
118
-	}
119
-
120
-	public function hasProviders(): bool {
121
-		$context = $this->coordinator->getRegistrationContext();
122
-		return !empty($context->getTranslationProviders());
123
-	}
124
-
125
-	public function canDetectLanguage(): bool {
126
-		foreach ($this->getProviders() as $provider) {
127
-			if ($provider instanceof IDetectLanguageProvider) {
128
-				return true;
129
-			}
130
-		}
131
-		return false;
132
-	}
44
+    /** @var ?ITranslationProvider[] */
45
+    private ?array $providers = null;
46
+
47
+    public function __construct(
48
+        private IServerContainer $serverContainer,
49
+        private Coordinator $coordinator,
50
+        private LoggerInterface $logger,
51
+    ) {
52
+    }
53
+
54
+    public function getLanguages(): array {
55
+        $languages = [];
56
+        foreach ($this->getProviders() as $provider) {
57
+            $languages = array_merge($languages, $provider->getAvailableLanguages());
58
+        }
59
+        return $languages;
60
+    }
61
+
62
+    public function translate(string $text, ?string &$fromLanguage, string $toLanguage): string {
63
+        if (!$this->hasProviders()) {
64
+            throw new PreConditionNotMetException('No translation providers available');
65
+        }
66
+
67
+        if ($fromLanguage === null) {
68
+            foreach ($this->getProviders() as $provider) {
69
+                if ($provider instanceof IDetectLanguageProvider) {
70
+                    $fromLanguage = $provider->detectLanguage($text);
71
+                }
72
+
73
+                if ($fromLanguage !== null) {
74
+                    break;
75
+                }
76
+            }
77
+
78
+            if ($fromLanguage === null) {
79
+                throw new InvalidArgumentException('Could not detect language');
80
+            }
81
+        }
82
+
83
+        if ($fromLanguage === $toLanguage) {
84
+            return $text;
85
+        }
86
+
87
+        foreach ($this->getProviders() as $provider) {
88
+            try {
89
+                return $provider->translate($fromLanguage, $toLanguage, $text);
90
+            } catch (RuntimeException $e) {
91
+                $this->logger->warning("Failed to translate from {$fromLanguage} to {$toLanguage}", ['exception' => $e]);
92
+            }
93
+        }
94
+
95
+        throw new CouldNotTranslateException($fromLanguage);
96
+    }
97
+
98
+    public function getProviders(): array {
99
+        $context = $this->coordinator->getRegistrationContext();
100
+
101
+        if ($this->providers !== null) {
102
+            return $this->providers;
103
+        }
104
+
105
+        $this->providers = [];
106
+        foreach ($context->getTranslationProviders() as $providerRegistration) {
107
+            $class = $providerRegistration->getService();
108
+            try {
109
+                $this->providers[$class] = $this->serverContainer->get($class);
110
+            } catch (NotFoundExceptionInterface|ContainerExceptionInterface|Throwable $e) {
111
+                $this->logger->error('Failed to load translation provider ' . $class, [
112
+                    'exception' => $e
113
+                ]);
114
+            }
115
+        }
116
+
117
+        return $this->providers;
118
+    }
119
+
120
+    public function hasProviders(): bool {
121
+        $context = $this->coordinator->getRegistrationContext();
122
+        return !empty($context->getTranslationProviders());
123
+    }
124
+
125
+    public function canDetectLanguage(): bool {
126
+        foreach ($this->getProviders() as $provider) {
127
+            if ($provider instanceof IDetectLanguageProvider) {
128
+                return true;
129
+            }
130
+        }
131
+        return false;
132
+    }
133 133
 }
Please login to merge, or discard this patch.