container = $container; } /** * Initialize and return the translation component. * * @return \Symfony\Contracts\Translation\TranslatorInterface */ public function __invoke(): TranslatorInterface { $language = $this->container->get('language'); if (! in_array($language, self::LANGUAGES)) { throw new RuntimeException("Invalid language option '{$language}'"); } $translator = new Translator($language); $translator->addLoader('yaml', new YamlFileLoader()); Collection::make(self::LANGUAGES)->each( function (string $language) use ($translator): void { $resource = sprintf($this->container->get('translations_path') . '/%s.yaml', $language); $translator->addResource('yaml', $resource, $language); } ); return $translator; } }