public function setUp()
 {
     $command = new GenerateCharsetCommand(Translator::factory([]));
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
 /**
  * @param ServiceLocatorInterface $serviceLocator
  * @return MvcTranslator
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     // Assume that if a user has registered a service for the
     // TranslatorInterface, it must be valid
     if ($serviceLocator->has('Zend\\I18n\\Translator\\TranslatorInterface')) {
         return new MvcTranslator($serviceLocator->get('Zend\\I18n\\Translator\\TranslatorInterface'));
     }
     // If ext/intl is not loaded, return a dummy translator
     if (!extension_loaded('intl')) {
         return new MvcTranslator(new DummyTranslator());
     }
     // Load a translator from configuration, if possible
     if ($serviceLocator->has('Config')) {
         $config = $serviceLocator->get('Config');
         // 'translator' => false
         if (array_key_exists('translator', $config) && $config['translator'] === false) {
             return new MvcTranslator(new DummyTranslator());
         }
         // 'translator' => array( ... translator options ... )
         if (array_key_exists('translator', $config) && (is_array($config['translator']) && !empty($config['translator']) || $config['translator'] instanceof Traversable)) {
             $i18nTranslator = Translator::factory($config['translator']);
             $serviceLocator->setService('Zend\\I18n\\Translator\\TranslatorInterface', $i18nTranslator);
             return new MvcTranslator($i18nTranslator);
         }
     }
     // For BC purposes (pre-2.3.0), use the I18n Translator
     return new MvcTranslator(new Translator());
 }
示例#3
0
 public function setUp()
 {
     $this->apiKeyService = $this->prophesize(ApiKeyService::class);
     $command = new ListKeysCommand($this->apiKeyService->reveal(), Translator::factory([]));
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
示例#4
0
 public function setUp()
 {
     $this->visitsTracker = $this->prophesize(VisitsTrackerInterface::class);
     $command = new GetVisitsCommand($this->visitsTracker->reveal(), Translator::factory([]));
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
示例#5
0
 public function setUp()
 {
     $this->urlShortener = $this->prophesize(UrlShortener::class);
     $command = new ResolveUrlCommand($this->urlShortener->reveal(), Translator::factory([]));
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
 public function testInvoke()
 {
     $sm = new ServiceManager();
     $sm->setService(Translator::class, Translator::factory([]));
     $sm->setService(RouterInterface::class, $this->prophesize(RouterInterface::class)->reveal());
     $instance = $this->factory->__invoke($sm);
     $this->assertInstanceOf(LanguageMiddleware::class, $instance);
 }
 /**
  * Create a Translator instance.
  *
  * @param ContainerInterface $container
  * @param string $requestedName
  * @param null|array $options
  * @return Translator
  */
 public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
 {
     // Configure the translator
     $config = $container->get('config');
     $trConfig = isset($config['translator']) ? $config['translator'] : [];
     $translator = Translator::factory($trConfig);
     return $translator;
 }
 public function setUp()
 {
     $this->urlShortener = $this->prophesize(UrlShortener::class);
     $command = new GenerateShortcodeCommand($this->urlShortener->reveal(), Translator::factory([]), ['schema' => 'http', 'hostname' => 'foo.com']);
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     // Configure the translator
     $config = $serviceLocator->get('Configuration');
     $trConfig = isset($config['translator']) ? $config['translator'] : array();
     $translator = Translator::factory($trConfig);
     return $translator;
 }
 public function setUp()
 {
     $this->factory = new RendererFactory();
     $this->container = $this->prophesize(ContainerInterface::class);
     $this->container->get('translator')->willReturn(Translator::factory([]));
     $this->container->get('config')->willReturn(['navigation' => [], 'recaptcha' => []]);
     $this->container->get(RouteAssembler::class)->willReturn($this->prophesize(RouteAssembler::class)->reveal());
 }
 public function setUp()
 {
     $this->visitService = $this->prophesize(VisitService::class);
     $this->ipResolver = $this->prophesize(IpLocationResolver::class);
     $command = new ProcessVisitsCommand($this->visitService->reveal(), $this->ipResolver->reveal(), Translator::factory([]));
     $app = new Application();
     $app->add($command);
     $this->commandTester = new CommandTester($command);
 }
 public function setUp()
 {
     $routeAssemblerProphezy = $this->prophesize(RouteAssembler::class);
     $routeAssemblerProphezy->assembleUrl('home', true)->willReturn('/foo/bar');
     $routeAssemblerProphezy->assembleUrl(null, ['lang' => 'es'])->willReturn('/es');
     $routeAssemblerProphezy->assembleUrl(null, ['lang' => 'en'])->willReturn('/en');
     $routeAssemblerProphezy->getCurrentRouteResult()->willReturn(RouteResult::fromRouteMatch('home', 'HelloWorld', []));
     $this->extension = new NavigationExtension(Translator::factory([]), $routeAssemblerProphezy->reveal(), ['menu' => [['route' => 'home', 'icon' => 'house', 'label' => 'Home'], ['uri' => 'http://foo.com', 'target' => true, 'label' => 'Blog', 'icon' => 'book']], 'lang_menu' => [['label' => 'Español', 'class' => 'es', 'params' => ['lang' => 'es']], ['label' => 'English', 'class' => 'en', 'params' => ['lang' => 'en']]]]);
 }
 public function setUp()
 {
     $this->shortUrlService = $this->prophesize(ShortUrlServiceInterface::class);
     $app = new Application();
     $command = new ListShortcodesCommand($this->shortUrlService->reveal(), Translator::factory([]));
     $app->add($command);
     $this->questionHelper = $command->getHelper('question');
     $this->commandTester = new CommandTester($command);
 }
 public function setUp()
 {
     $this->request = new ServerRequest();
     $router = $this->prophesize(RouterInterface::class);
     $router->match($this->request)->willReturn(RouteResult::fromRouteMatch('home', function ($req, $resp) {
         return $resp;
     }, ['lang' => 'es']));
     $this->translator = Translator::factory(['locale' => 'en']);
     $this->middleware = new LanguageMiddleware($this->translator, $router->reveal());
 }
示例#15
0
 public function setUp()
 {
     $this->module = new Module();
     $this->app = $this->getMockBuilder('Zend\\Mvc\\Application')->disableOriginalConstructor()->getMock();
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $this->app->expects($this->any())->method('getServiceManager')->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $this->app->expects($this->any())->method('getEventManager')->willReturn($em);
 }
 public function setUp()
 {
     $this->factory = new RendererFactory();
     $this->container = $this->prophesize(ContainerInterface::class);
     $this->container->get('translator')->willReturn(Translator::factory([]));
     $this->container->get('config')->willReturn(['navigation' => [], 'recaptcha' => []]);
     $this->container->get('Acelaya\\Website\\FeedCache')->willReturn(new ArrayCache());
     $this->container->get(BlogOptions::class)->willReturn(new BlogOptions());
     $this->container->get(RouteAssembler::class)->willReturn($this->prophesize(RouteAssembler::class)->reveal());
 }
示例#17
0
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     // Configure the translator
     $config = $serviceLocator->get('Configuration');
     $translator = Translator::factory($config['translator']);
     // Provide translator to the view helpers
     $serviceLocator->get('ViewHelperManager')->get('translate')->setTranslator($translator);
     $serviceLocator->get('ViewHelperManager')->get('translateplural')->setTranslator($translator);
     return $translator;
 }
示例#18
0
 public function setUp()
 {
     $this->module = new Module();
     $app = $this->prophesize('Zend\\Mvc\\Application');
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $app->getServiceManager()->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $app->getEventManager()->willReturn($em);
     $this->app = $app->reveal();
 }
 /**
  * @return \Zend\Mvc\I18n\Translator
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     // Configure the translator
     $config = $serviceLocator->get('Config');
     $translator = Translator::factory($config['translator']);
     $mvcTranslator = new MvcTranslator($translator);
     \Locale::setDefault($translator->getLocale());
     // For translated validation messages
     AbstractValidator::setDefaultTranslator($mvcTranslator, 'forms');
     return $mvcTranslator;
 }
 /**
  * @return \Zend\Mvc\I18n\Translator
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     // Configure the translator
     $config = $serviceLocator->get('Config');
     $translator = Translator::factory($config['translator']);
     if (APPLICATION_ENV !== 'development') {
         // Use APC cache for translations on production environment
         $translator->setCache($serviceLocator->get('core.cache.translate'));
     }
     $mvcTranslator = new MvcTranslator($translator);
     \Locale::setDefault($translator->getLocale());
     AbstractValidator::setDefaultTranslator($mvcTranslator);
     return $mvcTranslator;
 }
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     //site locale could be overwrite by user, so here use ModuleManager to get changed config
     $mm = $serviceLocator->get('ModuleManager');
     $config = $mm->getEvent()->getParam('configListener')->getMergedConfig()->toArray();
     $translator = Translator::factory($config['translator']);
     //NOTE: Zf2 i18n require Locale class installed. Here could invoid no install Locale
     if (isset($config['translator']['locale'])) {
         $translator->setFallbackLocale($config['translator']['locale']);
     }
     $validatorTranslator = \Zend\I18n\Translator\Translator::factory(array('locale' => $translator->getLocale(), 'translation_file_patterns' => array('zf' => array('type' => 'PhpArray', 'base_dir' => EVA_LIB_PATH . '/Zend/resources/languages/', 'pattern' => '%s/Zend_Validate.php'))));
     \Zend\Validator\AbstractValidator::setDefaultTranslator($validatorTranslator);
     return $translator;
 }
示例#22
0
 protected function initTranslator(MvcEvent $event)
 {
     $serviceManager = $event->getApplication()->getServiceManager();
     // Zend\Session\Container
     $session = new Container('language');
     $config = $event->getApplication()->getServiceManager()->get('Configuration');
     $localesConfig = $config['locales'];
     $locales = $localesConfig['list'];
     $translator = $serviceManager->get('translator');
     $translator = \Zend\I18n\Translator\Translator::factory($locales);
     var_dump($session->language);
     if ($session['language'] != 'uk_UA') {
         //if session doesn't have zh_CN then set it as english
         $translator->setLocale($session->language)->setFallbackLocale('en_US');
     }
 }
示例#23
0
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->get('config');
     // Get the list of modules
     /** @var \Zend\ModuleManager\ModuleManager $modules */
     $modules = $serviceLocator->get('modulemanager');
     $modulesName = $modules->getModules();
     $files = [];
     foreach ($modulesName as $module) {
         if (isset($config[strtolower($module)]['language_dir'])) {
             $file = $config[strtolower($module)]['language_dir'] . '/' . $locale . '.php';
             if (file_exists($file)) {
                 $files[] = ['type' => 'phparray', 'filename' => $file, 'text_domain' => $module, 'locale' => $locale];
             }
         }
     }
     return Translator::factory(['translation_files' => $files]);
 }
示例#24
0
 public static function factory($options)
 {
     $translator = parent::factory($options);
     $options = $options['scaffold'];
     if (isset($options['enable']) && $options['enable'] && isset($options['path']) && $options['path']) {
         $translator->scaffoldPath = $path = $options['path'];
         if (isset($options['level']) && isset($_SERVER["REQUEST_URI"])) {
             $pathArray = explode('/', dirname($_SERVER["REQUEST_URI"]));
             $pathArray = array_splice($pathArray, 1, (int) $options['level']);
             $translator->scaffoldFile = $file = $translator->scaffoldPath . DIRECTORY_SEPARATOR . implode('_', $pathArray) . '.csv';
         } else {
             $translator->scaffoldFile = $file = $translator->scaffoldPath . DIRECTORY_SEPARATOR . 'main.csv';
         }
         if (!is_writable($path)) {
             return $translator;
         }
         $translator->scaffold = true;
     }
     return $translator;
 }
示例#25
0
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->get('config');
     $translator = Translator::factory($config['translator']);
     /**
      * Work-around for the translator loader plugin manager not having a config
      * key that it looks for.
      */
     foreach ($config['translator_plugins']['factories'] as $name => &$factory) {
         $pluginManager = $translator->getPluginManager();
         $pluginManager->setServiceLocator($serviceLocator);
         $pluginManager->setFactory($name, $factory);
     }
     $translator->setLocale(\Locale::getDefault());
     /* Register listener if configured */
     $translationListener = $config['RcmI18n']['translationListener'];
     if (!empty($translationListener) && $serviceLocator->has($translationListener)) {
         $listener = $serviceLocator->get($translationListener);
         $event = $translator->getEventManager();
         $listener->attach($event);
     }
     return new \Zend\Mvc\I18n\Translator($translator);
 }
示例#26
0
 /**
  * Instantiate a translator
  *
  * @param   array|Traversable   $options
  * @return  Translator
  * @throws  Exception\InvalidArgumentException
  */
 public static function factory($options)
 {
     if ($options instanceof Traversable) {
         $options = ArrayUtils::iteratorToArray($options);
     }
     /* @var $translator Translator */
     $translator = parent::factory($options);
     // file my patterns
     if (isset($options['translation_file_my_patterns'])) {
         if (!is_array($options['translation_file_my_patterns'])) {
             throw new Exception\InvalidArgumentException('"translation_file_my_patterns" should be an array');
         }
         $requiredKeys = array('type', 'base_dir', 'pattern');
         foreach ($options['translation_file_my_patterns'] as $pattern) {
             foreach ($requiredKeys as $key) {
                 if (!isset($pattern[$key])) {
                     throw new Exception\InvalidArgumentException("'{$key}' is missing for translation my pattern options");
                 }
             }
             $translator->addMyTranslationFilePattern($pattern['type'], $pattern['base_dir'], $pattern['pattern']);
         }
     }
     return $translator;
 }
示例#27
0
 public function setUp()
 {
     $this->visitsTracker = $this->prophesize(VisitsTracker::class);
     $this->action = new GetVisitsAction($this->visitsTracker->reveal(), Translator::factory([]));
 }
示例#28
0
    public function testFactoryCreatesTranslatorWithCache()
    {
        $translator = Translator::factory(array(
            'locale' => 'de_DE',
            'patterns' => array(
                array(
                    'type' => 'phparray',
                    'base_dir' => $this->testFilesDir . '/testarray',
                    'pattern' => 'translation-%s.php'
                )
            ),
            'cache' => array(
                'adapter' => 'memory'
            )
        ));

        $this->assertInstanceOf('Zend\I18n\Translator\Translator', $translator);
        $this->assertInstanceOf('Zend\Cache\Storage\StorageInterface', $translator->getCache());
    }
 public function setUp()
 {
     $this->service = $this->prophesize(ShortUrlService::class);
     $this->action = new ListShortcodesAction($this->service->reveal(), Translator::factory([]));
 }
示例#30
0
 public function testEnableEventMangerViaFactory()
 {
     $translator = Translator::factory(array('event_manager_enabled' => true));
     $this->assertTrue($translator->isEventManagerEnabled());
     $translator = Translator::factory(array());
     $this->assertFalse($translator->isEventManagerEnabled());
 }