@@ -11,6 +11,10 @@ |
||
11 | 11 | * @author Jakub Konečný |
12 | 12 | */ |
13 | 13 | interface IAppRequestAwareLocaleResolver extends ILocaleResolver { |
14 | + |
|
15 | + /** |
|
16 | + * @return void |
|
17 | + */ |
|
14 | 18 | function onRequest(Application $application, Request $request); |
15 | 19 | } |
16 | 20 | ?> |
17 | 21 | \ No newline at end of file |
@@ -1,9 +1,9 @@ |
||
1 | 1 | <?php |
2 | 2 | namespace Nexendrie\Translation\Bridges\NetteApplication; |
3 | 3 | |
4 | -use Nexendrie\Translation\Resolvers\ILocaleResolver, |
|
5 | - Nette\Application\Application, |
|
6 | - Nette\Application\Request; |
|
4 | +use Nexendrie\Translation\Resolvers\ILocaleResolver; |
|
5 | +use Nette\Application\Application; |
|
6 | +use Nette\Application\Request; |
|
7 | 7 | |
8 | 8 | /** |
9 | 9 | * IAppRequestAwareLocaleResolver |
@@ -3,8 +3,8 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\NetteApplication; |
5 | 5 | |
6 | -use Nette\Application\Application, |
|
7 | - Nette\Application\Request; |
|
6 | +use Nette\Application\Application; |
|
7 | +use Nette\Application\Request; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * ParamLocaleResolver |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\NetteApplication; |
5 | 5 | |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | |
31 | 31 | function onRequest(Application $application, Request $request): void { |
32 | 32 | $locale = $request->getParameter($this->param); |
33 | - if($request->method === Request::FORWARD AND is_null($locale)) { |
|
33 | + if ($request->method === Request::FORWARD AND is_null($locale)) { |
|
34 | 34 | return; |
35 | 35 | } |
36 | 36 | $this->request = $request; |
@@ -39,8 +39,8 @@ discard block |
||
39 | 39 | /** |
40 | 40 | * Resolve language |
41 | 41 | */ |
42 | - function resolve(): ?string { |
|
43 | - if(!is_null($this->request)) { |
|
42 | + function resolve(): ? string { |
|
43 | + if (!is_null($this->request)) { |
|
44 | 44 | return $this->request->getParameter($this->param); |
45 | 45 | } |
46 | 46 | return NULL; |
@@ -3,37 +3,37 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\NetteDI; |
5 | 5 | |
6 | -use Nette\DI\CompilerExtension, |
|
7 | - Nette\PhpGenerator\ClassType, |
|
8 | - Nette\Utils\Validators, |
|
9 | - Nexendrie\Translation\Resolvers\ILocaleResolver, |
|
10 | - Nexendrie\Translation\Bridges\NetteApplication\IAppRequestAwareLocaleResolver, |
|
11 | - Nexendrie\Translation\Resolvers\EnvironmentLocaleResolver, |
|
12 | - Nexendrie\Translation\Resolvers\ManualLocaleResolver, |
|
13 | - Nexendrie\Translation\Resolvers\FallbackLocaleResolver, |
|
14 | - Nexendrie\Translation\Resolvers\ChainLocaleResolver, |
|
15 | - Nexendrie\Translation\Resolvers\SessionLocaleResolver, |
|
16 | - Nexendrie\Translation\Resolvers\HeaderLocaleResolver, |
|
17 | - Nexendrie\Translation\Bridges\NetteApplication\ParamLocaleResolver, |
|
18 | - Nexendrie\Translation\Translator, |
|
19 | - Nexendrie\Translation\Loaders\ILoader, |
|
20 | - Nexendrie\Translation\Loaders\FileLoader, |
|
21 | - Nexendrie\Translation\Loaders\NeonLoader, |
|
22 | - Nexendrie\Translation\Loaders\IniLoader, |
|
23 | - Nexendrie\Translation\Loaders\JsonLoader, |
|
24 | - Nexendrie\Translation\Loaders\YamlLoader, |
|
25 | - Nexendrie\Translation\Loaders\PhpLoader, |
|
26 | - Nexendrie\Translation\Loaders\MessagesCatalogue, |
|
27 | - Nexendrie\Translation\InvalidLocaleResolverException, |
|
28 | - Nexendrie\Translation\InvalidFolderException, |
|
29 | - Nexendrie\Translation\InvalidLoaderException, |
|
30 | - Nexendrie\Translation\Bridges\Tracy\TranslationPanel, |
|
31 | - Nexendrie\Translation\CatalogueCompiler, |
|
32 | - Nette\Utils\Arrays, |
|
33 | - Nette\Application\Application, |
|
34 | - Nette\Bridges\ApplicationLatte\ILatteFactory, |
|
35 | - Nette\Utils\AssertionException, |
|
36 | - Nexendrie\Translation\Resolvers\ILoaderAwareLocaleResolver; |
|
6 | +use Nette\DI\CompilerExtension; |
|
7 | +use Nette\PhpGenerator\ClassType; |
|
8 | +use Nette\Utils\Validators; |
|
9 | +use Nexendrie\Translation\Resolvers\ILocaleResolver; |
|
10 | +use Nexendrie\Translation\Bridges\NetteApplication\IAppRequestAwareLocaleResolver; |
|
11 | +use Nexendrie\Translation\Resolvers\EnvironmentLocaleResolver; |
|
12 | +use Nexendrie\Translation\Resolvers\ManualLocaleResolver; |
|
13 | +use Nexendrie\Translation\Resolvers\FallbackLocaleResolver; |
|
14 | +use Nexendrie\Translation\Resolvers\ChainLocaleResolver; |
|
15 | +use Nexendrie\Translation\Resolvers\SessionLocaleResolver; |
|
16 | +use Nexendrie\Translation\Resolvers\HeaderLocaleResolver; |
|
17 | +use Nexendrie\Translation\Bridges\NetteApplication\ParamLocaleResolver; |
|
18 | +use Nexendrie\Translation\Translator; |
|
19 | +use Nexendrie\Translation\Loaders\ILoader; |
|
20 | +use Nexendrie\Translation\Loaders\FileLoader; |
|
21 | +use Nexendrie\Translation\Loaders\NeonLoader; |
|
22 | +use Nexendrie\Translation\Loaders\IniLoader; |
|
23 | +use Nexendrie\Translation\Loaders\JsonLoader; |
|
24 | +use Nexendrie\Translation\Loaders\YamlLoader; |
|
25 | +use Nexendrie\Translation\Loaders\PhpLoader; |
|
26 | +use Nexendrie\Translation\Loaders\MessagesCatalogue; |
|
27 | +use Nexendrie\Translation\InvalidLocaleResolverException; |
|
28 | +use Nexendrie\Translation\InvalidFolderException; |
|
29 | +use Nexendrie\Translation\InvalidLoaderException; |
|
30 | +use Nexendrie\Translation\Bridges\Tracy\TranslationPanel; |
|
31 | +use Nexendrie\Translation\CatalogueCompiler; |
|
32 | +use Nette\Utils\Arrays; |
|
33 | +use Nette\Application\Application; |
|
34 | +use Nette\Bridges\ApplicationLatte\ILatteFactory; |
|
35 | +use Nette\Utils\AssertionException; |
|
36 | +use Nexendrie\Translation\Resolvers\ILoaderAwareLocaleResolver; |
|
37 | 37 | |
38 | 38 | /** |
39 | 39 | * TranslationExtension for Nette DI Container |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\NetteDI; |
5 | 5 | |
@@ -104,14 +104,14 @@ discard block |
||
104 | 104 | Validators::assertField($config, "localeResolver", "string|string[]"); |
105 | 105 | $return = []; |
106 | 106 | $resolvers = $config["localeResolver"]; |
107 | - if(!is_array($resolvers)) { |
|
107 | + if (!is_array($resolvers)) { |
|
108 | 108 | $resolvers = [$resolvers]; |
109 | 109 | } |
110 | - foreach($resolvers as $resolverName) { |
|
110 | + foreach ($resolvers as $resolverName) { |
|
111 | 111 | $resolver = Arrays::get($this->resolvers, strtolower($resolverName), ""); |
112 | - if($resolver !== "") { |
|
112 | + if ($resolver !== "") { |
|
113 | 113 | $return[] = $resolver; |
114 | - } elseif(class_exists($resolverName) AND is_subclass_of($resolverName, ILocaleResolver::class)) { |
|
114 | + } elseif (class_exists($resolverName) AND is_subclass_of($resolverName, ILocaleResolver::class)) { |
|
115 | 115 | $return[] = $resolverName; |
116 | 116 | } else { |
117 | 117 | throw new InvalidLocaleResolverException("Invalid locale resolver $resolverName."); |
@@ -130,9 +130,9 @@ discard block |
||
130 | 130 | Validators::assertField($config["loader"], "name", "string"); |
131 | 131 | $loaderName = $config["loader"]["name"]; |
132 | 132 | $loader = Arrays::get($this->loaders, strtolower($loaderName), ""); |
133 | - if($loader !== "") { |
|
133 | + if ($loader !== "") { |
|
134 | 134 | return $loader; |
135 | - } elseif(class_exists($loaderName) AND is_subclass_of($loaderName, ILoader::class)) { |
|
135 | + } elseif (class_exists($loaderName) AND is_subclass_of($loaderName, ILoader::class)) { |
|
136 | 136 | return $loaderName; |
137 | 137 | } |
138 | 138 | throw new InvalidLoaderException("Invalid translation loader."); |
@@ -147,11 +147,11 @@ discard block |
||
147 | 147 | Validators::assertField($config["loader"], "folders", "string[]"); |
148 | 148 | $folders = $config["loader"]["folders"]; |
149 | 149 | /** @var ITranslationProvider $extension */ |
150 | - foreach($this->compiler->getExtensions(ITranslationProvider::class) as $extension) { |
|
150 | + foreach ($this->compiler->getExtensions(ITranslationProvider::class) as $extension) { |
|
151 | 151 | $folders = array_merge($folders, array_values($extension->getTranslationResources())); |
152 | 152 | } |
153 | - foreach($folders as $folder) { |
|
154 | - if(!is_dir($folder)) { |
|
153 | + foreach ($folders as $folder) { |
|
154 | + if (!is_dir($folder)) { |
|
155 | 155 | throw new InvalidFolderException("Folder $folder does not exist."); |
156 | 156 | } |
157 | 157 | } |
@@ -177,20 +177,20 @@ discard block |
||
177 | 177 | $builder->addDefinition($this->prefix(static::SERVICE_LOADER)) |
178 | 178 | ->setClass($loader) |
179 | 179 | ->addSetup("setDefaultLang", [$config["default"]]); |
180 | - if(count($resolvers) === 1) { |
|
180 | + if (count($resolvers) === 1) { |
|
181 | 181 | $builder->addDefinition($this->prefix(static::SERVICE_LOCALE_RESOLVER)) |
182 | 182 | ->setClass($resolvers[0]); |
183 | 183 | } else { |
184 | 184 | $chainResolver = $builder->addDefinition($this->prefix(static::SERVICE_LOCALE_RESOLVER)) |
185 | 185 | ->setClass(ChainLocaleResolver::class); |
186 | - foreach($resolvers as $index => $resolver) { |
|
186 | + foreach ($resolvers as $index => $resolver) { |
|
187 | 187 | $resolverService = $builder->addDefinition($this->prefix("resolver.$index")) |
188 | 188 | ->setClass($resolver) |
189 | 189 | ->setAutowired(false); |
190 | 190 | $chainResolver->addSetup("addResolver", [$resolverService]); |
191 | 191 | } |
192 | 192 | } |
193 | - if($config["debugger"] AND interface_exists(\Tracy\IBarPanel::class)) { |
|
193 | + if ($config["debugger"] AND interface_exists(\Tracy\IBarPanel::class)) { |
|
194 | 194 | $builder->addDefinition($this->prefix(static::SERVICE_PANEL)) |
195 | 195 | ->setClass(TranslationPanel::class); |
196 | 196 | $builder->getDefinition("tracy.bar") |
@@ -205,22 +205,22 @@ discard block |
||
205 | 205 | $builder = $this->getContainerBuilder(); |
206 | 206 | $config = $this->getConfig($this->defaults); |
207 | 207 | $loader = $builder->getDefinition($this->prefix(static::SERVICE_LOADER)); |
208 | - if(in_array(FileLoader::class, class_parents($loader->class))) { |
|
208 | + if (in_array(FileLoader::class, class_parents($loader->class))) { |
|
209 | 209 | $folders = $this->getFolders(); |
210 | 210 | $loader->addSetup("setFolders", [$folders]); |
211 | - foreach($folders as $folder) { |
|
211 | + foreach ($folders as $folder) { |
|
212 | 212 | $builder->addDependency($folder); |
213 | 213 | } |
214 | 214 | } |
215 | 215 | $resolver = $builder->getDefinition($this->prefix(static::SERVICE_LOCALE_RESOLVER)); |
216 | - if(in_array(IAppRequestAwareLocaleResolver::class, class_implements($resolver->class))) { |
|
216 | + if (in_array(IAppRequestAwareLocaleResolver::class, class_implements($resolver->class))) { |
|
217 | 217 | $applicationService = $builder->getByType(Application::class) ?? "application"; |
218 | - if($builder->hasDefinition($applicationService)) { |
|
218 | + if ($builder->hasDefinition($applicationService)) { |
|
219 | 219 | $builder->getDefinition($applicationService) |
220 | 220 | ->addSetup('$service->onRequest[] = ?', [[$resolver, "onRequest"]]); |
221 | 221 | } |
222 | 222 | } |
223 | - if($config["compiler"]["enabled"]) { |
|
223 | + if ($config["compiler"]["enabled"]) { |
|
224 | 224 | $serviceName = $this->prefix(static::SERVICE_LOADER); |
225 | 225 | $loader = $builder->getDefinition($serviceName); |
226 | 226 | $builder->removeDefinition($serviceName); |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | ->setFactory(CatalogueCompiler::class, [$loader, $folder, $config["compiler"]["languages"]]); |
236 | 236 | } |
237 | 237 | $latteFactoryService = $builder->getByType(ILatteFactory::class) ?? "latte.latteFactory"; |
238 | - if($builder->hasDefinition($latteFactoryService)) { |
|
238 | + if ($builder->hasDefinition($latteFactoryService)) { |
|
239 | 239 | $latteFactory = $builder->getDefinition($latteFactoryService); |
240 | 240 | $latteFactory->addSetup("addFilter", ["translate", ["@" . $this->prefix(static::SERVICE_TRANSLATOR), "translate"]]); |
241 | 241 | $latteFactory->addSetup("addProvider", ["translator", "@" . $this->prefix(static::SERVICE_TRANSLATOR)]); |
@@ -246,10 +246,10 @@ discard block |
||
246 | 246 | $config = $this->getConfig($this->defaults); |
247 | 247 | $initialize = $class->methods["initialize"]; |
248 | 248 | $initialize->addBody('$translator = $this->getService(?);', [$this->prefix(static::SERVICE_TRANSLATOR)]); |
249 | - foreach($config["onUntranslated"] as &$task) { |
|
250 | - if(!is_array($task)) { |
|
249 | + foreach ($config["onUntranslated"] as &$task) { |
|
250 | + if (!is_array($task)) { |
|
251 | 251 | $task = explode("::", $task); |
252 | - } elseif(substr($task[0], 0, 1) === "@") { |
|
252 | + } elseif (substr($task[0], 0, 1) === "@") { |
|
253 | 253 | $initialize->addBody('$translator->onUntranslated[] = [$this->getService(?), ?];', [substr($task[0], 1), $task[1]]); |
254 | 254 | continue; |
255 | 255 | } |
@@ -257,7 +257,7 @@ discard block |
||
257 | 257 | } |
258 | 258 | $initialize->addBody('$resolvers = $this->findByType(?); |
259 | 259 | foreach($resolvers as $resolver) $this->getService($resolver)->setLoader($this->getService(?));', [ILoaderAwareLocaleResolver::class, $this->prefix(static::SERVICE_LOADER)]); |
260 | - if($config["compiler"]["enabled"]) { |
|
260 | + if ($config["compiler"]["enabled"]) { |
|
261 | 261 | $initialize->addBody('$this->getService(?)->compile();', [$this->prefix(static::SERVICE_CATALOGUE_COMPILER)]); |
262 | 262 | } |
263 | 263 | } |
@@ -3,9 +3,9 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\Tracy; |
5 | 5 | |
6 | -use Nexendrie\Translation\Loaders\ILoader, |
|
7 | - Nexendrie\Translation\Translator, |
|
8 | - Tracy\IBarPanel; |
|
6 | +use Nexendrie\Translation\Loaders\ILoader; |
|
7 | +use Nexendrie\Translation\Translator; |
|
8 | +use Tracy\IBarPanel; |
|
9 | 9 | |
10 | 10 | /** |
11 | 11 | * Debugger panel for Tracy |
@@ -1,5 +1,5 @@ |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Bridges\Tracy; |
5 | 5 |
@@ -3,9 +3,9 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation; |
5 | 5 | |
6 | -use Nexendrie\Translation\Loaders\ILoader, |
|
7 | - Nette\PhpGenerator\Helpers, |
|
8 | - Nette\Utils\FileSystem; |
|
6 | +use Nexendrie\Translation\Loaders\ILoader; |
|
7 | +use Nette\PhpGenerator\Helpers; |
|
8 | +use Nette\Utils\FileSystem; |
|
9 | 9 | |
10 | 10 | /** |
11 | 11 | * CatalogueCompiler |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation; |
5 | 5 | |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | */ |
31 | 31 | function __construct(ILoader $loader, string $folder, array $languages = []) { |
32 | 32 | $this->loader = $loader; |
33 | - if(!count($languages)) { |
|
33 | + if (!count($languages)) { |
|
34 | 34 | $languages = $loader->getAvailableLanguages(); |
35 | 35 | } |
36 | 36 | $this->languages = $languages; |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | * Compile catalogues |
42 | 42 | */ |
43 | 43 | function compile(): void { |
44 | - foreach($this->languages as $language) { |
|
44 | + foreach ($this->languages as $language) { |
|
45 | 45 | $this->loader->setLang($language); |
46 | 46 | $texts = $this->loader->getTexts(); |
47 | 47 | $texts["__resources"] = $this->loader->getResources(); |
@@ -3,12 +3,12 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Loaders; |
5 | 5 | |
6 | -use Nette\Utils\Finder, |
|
7 | - Nette\Utils\Strings, |
|
8 | - Nexendrie\Translation\Resolvers\ILocaleResolver, |
|
9 | - Nexendrie\Translation\Resolvers\ManualLocaleResolver, |
|
10 | - Nexendrie\Translation\InvalidFolderException, |
|
11 | - Nexendrie\Translation\FolderNotSetException; |
|
6 | +use Nette\Utils\Finder; |
|
7 | +use Nette\Utils\Strings; |
|
8 | +use Nexendrie\Translation\Resolvers\ILocaleResolver; |
|
9 | +use Nexendrie\Translation\Resolvers\ManualLocaleResolver; |
|
10 | +use Nexendrie\Translation\InvalidFolderException; |
|
11 | +use Nexendrie\Translation\FolderNotSetException; |
|
12 | 12 | |
13 | 13 | /** |
14 | 14 | * Generic file translations loader |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Loaders; |
5 | 5 | |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | } |
55 | 55 | |
56 | 56 | function setLang(string $lang) { |
57 | - if(method_exists($this->resolver, "setLang")) { |
|
57 | + if (method_exists($this->resolver, "setLang")) { |
|
58 | 58 | $this->resolver->setLang($lang); |
59 | 59 | } |
60 | 60 | } |
@@ -79,8 +79,8 @@ discard block |
||
79 | 79 | * @throws InvalidFolderException |
80 | 80 | */ |
81 | 81 | function setFolders(array $folders) { |
82 | - foreach($folders as $folder) { |
|
83 | - if(!is_dir($folder)) { |
|
82 | + foreach ($folders as $folder) { |
|
83 | + if (!is_dir($folder)) { |
|
84 | 84 | throw new InvalidFolderException("Folder $folder does not exist."); |
85 | 85 | } |
86 | 86 | $this->folders[] = $folder; |
@@ -88,7 +88,7 @@ discard block |
||
88 | 88 | } |
89 | 89 | |
90 | 90 | protected function addResource(string $filename, string $domain): void { |
91 | - if(!isset($this->resources[$domain]) OR !in_array($filename, $this->resources[$domain])) { |
|
91 | + if (!isset($this->resources[$domain]) OR !in_array($filename, $this->resources[$domain])) { |
|
92 | 92 | $this->resources[$domain][] = $filename; |
93 | 93 | } |
94 | 94 | } |
@@ -113,13 +113,13 @@ discard block |
||
113 | 113 | $files = Finder::findFiles($defaultFilename) |
114 | 114 | ->from($this->folders); |
115 | 115 | /** @var \SplFileInfo $file */ |
116 | - foreach($files as $file) { |
|
116 | + foreach ($files as $file) { |
|
117 | 117 | $default = $this->parseFile($file->getPathname()); |
118 | 118 | $this->addResource($file->getPathname(), $name); |
119 | 119 | $lang = []; |
120 | 120 | $filename = "$name.$this->lang.$extension"; |
121 | 121 | $filename = str_replace($defaultFilename, $filename, $file->getPathname()); |
122 | - if($this->lang != $defaultLang AND is_file($filename)) { |
|
122 | + if ($this->lang != $defaultLang AND is_file($filename)) { |
|
123 | 123 | $lang = $this->parseFile($filename); |
124 | 124 | $this->addResource($filename, $name); |
125 | 125 | } |
@@ -134,10 +134,10 @@ discard block |
||
134 | 134 | * @throws FolderNotSetException |
135 | 135 | */ |
136 | 136 | protected function loadTexts(): void { |
137 | - if($this->lang === $this->loadedLang) { |
|
137 | + if ($this->lang === $this->loadedLang) { |
|
138 | 138 | return; |
139 | 139 | } |
140 | - if(!count($this->folders)) { |
|
140 | + if (!count($this->folders)) { |
|
141 | 141 | throw new FolderNotSetException("Folder for translations was not set."); |
142 | 142 | } |
143 | 143 | $default = $this->defaultLang; |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | $files = Finder::findFiles("*.$default.$extension") |
147 | 147 | ->from($this->folders); |
148 | 148 | /** @var \SplFileInfo $file */ |
149 | - foreach($files as $file) { |
|
149 | + foreach ($files as $file) { |
|
150 | 150 | $domain = $file->getBasename(".$default.$extension"); |
151 | 151 | $texts[$domain] = $this->loadDomain($domain); |
152 | 152 | } |
@@ -173,7 +173,7 @@ discard block |
||
173 | 173 | * @throws FolderNotSetException |
174 | 174 | */ |
175 | 175 | function getAvailableLanguages(): array { |
176 | - if(!count($this->folders)) { |
|
176 | + if (!count($this->folders)) { |
|
177 | 177 | throw new FolderNotSetException("Folder for translations was not set."); |
178 | 178 | } |
179 | 179 | $languages = []; |
@@ -181,10 +181,10 @@ discard block |
||
181 | 181 | $files = Finder::findFiles($this->getLanguageFilenameMask()) |
182 | 182 | ->from($this->folders); |
183 | 183 | /** @var \SplFileInfo $file */ |
184 | - foreach($files as $file) { |
|
184 | + foreach ($files as $file) { |
|
185 | 185 | $filename = $file->getBasename(".$extension"); |
186 | 186 | $lang = Strings::after($filename, "."); |
187 | - if(!in_array($lang, $languages)) { |
|
187 | + if (!in_array($lang, $languages)) { |
|
188 | 188 | $languages[] = $lang; |
189 | 189 | } |
190 | 190 | } |
@@ -10,8 +10,16 @@ |
||
10 | 10 | */ |
11 | 11 | interface ILoader { |
12 | 12 | function getLang(): string; |
13 | + |
|
14 | + /** |
|
15 | + * @return void |
|
16 | + */ |
|
13 | 17 | function setLang(string $lang); |
14 | 18 | function getDefaultLang(): string; |
19 | + |
|
20 | + /** |
|
21 | + * @return void |
|
22 | + */ |
|
15 | 23 | function setDefaultLang(string $defaultLang); |
16 | 24 | function getResources(): array; |
17 | 25 | function getTexts(): array; |
@@ -1,5 +1,5 @@ |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Loaders; |
5 | 5 |
@@ -3,8 +3,8 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Loaders; |
5 | 5 | |
6 | -use Nette\Utils\Finder, |
|
7 | - Nexendrie\Translation\FolderNotSetException; |
|
6 | +use Nette\Utils\Finder; |
|
7 | +use Nexendrie\Translation\FolderNotSetException; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * MessagesCatalogue |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Loaders; |
5 | 5 | |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | } |
19 | 19 | |
20 | 20 | protected function loadTexts(): void { |
21 | - if(!count($this->folders)) { |
|
21 | + if (!count($this->folders)) { |
|
22 | 22 | throw new FolderNotSetException("Folder for translations was not set."); |
23 | 23 | } |
24 | 24 | $this->resources = $texts = []; |
@@ -26,14 +26,14 @@ discard block |
||
26 | 26 | $files = Finder::findFiles($filename) |
27 | 27 | ->from($this->folders); |
28 | 28 | /** @var \SplFileInfo $file */ |
29 | - foreach($files as $file) { |
|
29 | + foreach ($files as $file) { |
|
30 | 30 | $texts = array_merge($texts, $this->parseFile($file->getPathname())); |
31 | - if(isset($texts["__resources"])) { |
|
31 | + if (isset($texts["__resources"])) { |
|
32 | 32 | $this->resources = array_merge($this->resources, $texts["__resources"]); |
33 | 33 | unset($texts["__resources"]); |
34 | 34 | } else { |
35 | 35 | $domains = array_keys($texts); |
36 | - foreach($domains as $domain) { |
|
36 | + foreach ($domains as $domain) { |
|
37 | 37 | $this->addResource($file->getPathname(), $domain); |
38 | 38 | } |
39 | 39 | } |
@@ -3,10 +3,10 @@ |
||
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Resolvers; |
5 | 5 | |
6 | -use Nexendrie\Translation\Loaders\ILoader, |
|
7 | - Nette\Http\IRequest, |
|
8 | - Nexendrie\Translation\LoaderNotSetException, |
|
9 | - Nette\Http\RequestFactory; |
|
6 | +use Nexendrie\Translation\Loaders\ILoader; |
|
7 | +use Nette\Http\IRequest; |
|
8 | +use Nexendrie\Translation\LoaderNotSetException; |
|
9 | +use Nette\Http\RequestFactory; |
|
10 | 10 | |
11 | 11 | /** |
12 | 12 | * HeaderLocaleResolver |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types=1); |
|
2 | +declare(strict_types = 1); |
|
3 | 3 | |
4 | 4 | namespace Nexendrie\Translation\Resolvers; |
5 | 5 | |
@@ -22,7 +22,7 @@ discard block |
||
22 | 22 | protected $request; |
23 | 23 | |
24 | 24 | function __construct(IRequest $request = NULL) { |
25 | - if(is_null($request)) { |
|
25 | + if (is_null($request)) { |
|
26 | 26 | $request = (new RequestFactory)->createHttpRequest(); |
27 | 27 | } |
28 | 28 | $this->request = $request; |
@@ -38,28 +38,28 @@ discard block |
||
38 | 38 | * Taken from Nette\Http\Request::detectLanguage() |
39 | 39 | * @author David Grudl |
40 | 40 | */ |
41 | - function resolve(): ?string { |
|
42 | - if(is_null($this->loader)) { |
|
41 | + function resolve(): ? string { |
|
42 | + if (is_null($this->loader)) { |
|
43 | 43 | throw new LoaderNotSetException("Loader is not available, cannot detect possible languages."); |
44 | 44 | } |
45 | 45 | $header = $this->request->getHeader("Accept-Language"); |
46 | 46 | $langs = $this->loader->getAvailableLanguages(); |
47 | - if(is_null($header)) { |
|
47 | + if (is_null($header)) { |
|
48 | 48 | return NULL; |
49 | 49 | } |
50 | - $s = strtolower($header); // case insensitive |
|
51 | - $s = strtr($s, '_', '-'); // cs_CZ means cs-CZ |
|
52 | - rsort($langs); // first more specific |
|
50 | + $s = strtolower($header); // case insensitive |
|
51 | + $s = strtr($s, '_', '-'); // cs_CZ means cs-CZ |
|
52 | + rsort($langs); // first more specific |
|
53 | 53 | $pattern = ')(?:-[^\s,;=]+)?\s*(?:;\s*q=([0-9.]+))?#'; |
54 | 54 | preg_match_all('#(' . implode('|', $langs) . $pattern, $s, $matches); |
55 | - if(!$matches[0]) { |
|
55 | + if (!$matches[0]) { |
|
56 | 56 | return NULL; |
57 | 57 | } |
58 | 58 | $max = 0; |
59 | 59 | $lang = NULL; |
60 | - foreach($matches[1] as $key => $value) { |
|
60 | + foreach ($matches[1] as $key => $value) { |
|
61 | 61 | $q = ($matches[2][$key] === '') ? 1.0 : (float) $matches[2][$key]; |
62 | - if($q > $max) { |
|
62 | + if ($q > $max) { |
|
63 | 63 | $max = $q; |
64 | 64 | $lang = $value; |
65 | 65 | } |