@@ -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 | } |