public function register(Application $app) { $app['locale'] = $app->share(function (Application $app) { if (!$app['configuration.store']->isSetup()) { return 'en'; } return $app['conf']->get(['languages', 'default'], 'en'); }); $app['locales.available'] = $app->share(function (Application $app) { $availableLanguages = PhraseaApplication::getAvailableLanguages(); if ($app['configuration.store']->isSetup() && 0 < count((array) $app['conf']->get(['languages', 'available']))) { $languages = $app['conf']->get(['languages', 'available']); $enabledLanguages = $availableLanguages; foreach ($enabledLanguages as $code => $language) { if (in_array($code, $languages)) { continue; } unset($enabledLanguages[$code]); } if (0 === count($enabledLanguages)) { $app['monolog']->error('Wrong language configuration, no language activated'); return $availableLanguages; } return $enabledLanguages; } return $availableLanguages; }); }
public function testSetLocale() { foreach (array_keys(Application::getAvailableLanguages()) as $locale) { $this->user->setLocale($locale); $this->assertEquals($this->user->getLocale(), $locale); } $this->user->setLocale(null); $this->assertEquals($this->user->getLocale(), null); }
public function testLocalesCustomizedWithError() { $app = $this->loadApp(); $app->register(new LocaleServiceProvider()); $app['root.path'] = __DIR__ . '/../../../../../..'; $app->register(new ConfigurationServiceProvider()); $app['conf']->set(['languages', 'available'], ['en_US']); $app['monolog'] = $this->getMock('Psr\\Log\\LoggerInterface'); $app['monolog']->expects($this->once())->method('error'); $original = Application::getAvailableLanguages(); $this->assertEquals($original, $app['locales.available']); }
public function getInstallForm(Application $app, Request $request) { $warnings = []; $requirementsCollection = $this->getRequirementsCollection(); foreach ($requirementsCollection as $requirements) { foreach ($requirements->getRequirements() as $requirement) { if (!$requirement->isFulfilled() && !$requirement->isOptional()) { $warnings[] = $requirement->getTestMessage(); } } } if ($request->getScheme() == 'http') { $warnings[] = $app->trans('It is not recommended to install Phraseanet without HTTPS support'); } return $app['twig']->render('/setup/step2.html.twig', ['locale' => $app['locale'], 'available_locales' => Application::getAvailableLanguages(), 'available_templates' => ['en', 'fr'], 'warnings' => $warnings, 'error' => $request->query->get('error'), 'current_servername' => $request->getScheme() . '://' . $request->getHttpHost() . '/', 'discovered_binaries' => \setup::discover_binaries(), 'rootpath' => realpath(__DIR__ . '/../../../../')]); }
public function testDataboxTermsOfUseRoute() { $this->setToken($this->userAccessToken); $databox_id = self::$DI['record_1']->get_sbas_id(); $route = '/api/v1/databoxes/' . $databox_id . '/termsOfUse/'; $this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']); self::$DI['client']->request('GET', $route, $this->getParameters(), [], ['HTTP_Accept' => $this->getAcceptMimeType()]); $content = $this->unserialize(self::$DI['client']->getResponse()->getContent()); $this->evaluateResponse200(self::$DI['client']->getResponse()); $this->evaluateMeta200($content); $this->assertArrayHasKey('termsOfUse', $content['response']); foreach ($content['response']['termsOfUse'] as $terms) { $this->assertTrue(is_array($terms), 'Une bloc cgu est un objet'); $this->assertArrayHasKey('locale', $terms); $this->assertTrue(in_array($terms['locale'], array_keys(Application::getAvailableLanguages()))); $this->assertArrayHasKey('terms', $terms); break; } $route = '/api/v1/databoxes/24892534/termsOfUse/'; $this->evaluateNotFoundRoute($route, ['GET']); $this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']); $route = '/api/v1/databoxes/any_bad_id/termsOfUse/'; $this->evaluateBadRequestRoute($route, ['GET']); $this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']); }
public function provideStemmData() { $stemms = []; $examples = ['fr' => ['word' => 'chevaux', 'stemm' => 'cheval'], 'en' => ['word' => 'consistency', 'stemm' => 'consistent'], 'de' => ['word' => 'aufeinanderfolgender', 'stemm' => 'aufeinanderfolg'], 'nl' => ['word' => 'lichamelijk', 'stemm' => 'licham']]; foreach (Application::getAvailableLanguages() as $languageCode => $name) { $data = explode('_', $languageCode); $code = $data[0]; if (!isset($examples[$code])) { $this->fail(sprintf('Missing stemm examples for language %s', $code)); } $stemms[] = [$code, $examples[$code]['word'], $examples[$code]['stemm']]; } return $stemms; }
/** * @covers Alchemy\Phrasea\Application */ public function testCookieLocale() { foreach (array_keys(Application::getAvailableLanguages()) as $locale) { $client = $this->getClientWithCookie($this->getAppThatReturnLocale(), $locale); $client->request('GET', '/'); $this->assertEquals($locale, $client->getResponse()->getContent()); } }
/** * @param string $locale * * @throws InvalidArgumentException */ public function setLocale($locale) { if (null !== $locale && !array_key_exists($locale, Application::getAvailableLanguages())) { throw new InvalidArgumentException(sprintf('Invalid locale %s.', $locale)); } $this->locale = $locale; return $this; }
public function provideLanguageCodes() { $codes = []; foreach (Application::getAvailableLanguages() as $code => $language) { $data = explode('_', $code); $codes[] = [$data[0]]; } return $codes; }
/** * Sets user entity from usr table. */ private function updateUsers(EntityManager $em) { $em->getConnection()->executeUpdate('INSERT INTO Users ( id, activity, address, admin, can_change_ftp_profil, can_change_profil, city, company, country, email, fax, first_name, geoname_id, guest, job, last_connection, last_name, ldap_created, locale, login, mail_locked, last_model, mail_notifications, nonce, password, push_list, request_notifications, salted_password, gender, phone, timezone, zip_code, created, updated ) ( SELECT usr_id, activite, adresse, create_db, canchgftpprofil, canchgprofil, ville, societe, pays, usr_mail, fax, usr_prenom, geonameid, invite, fonction, last_conn, usr_nom, ldap_created, locale, usr_login, mail_locked, NULL AS lastModel, mail_notifications, ' . ($this->hasField($em, 'nonce') ? 'nonce' : 'NULL AS nonce') . ', usr_password, push_list, request_notifications, ' . ($this->hasField($em, 'salted_password') ? 'salted_password' : '0 AS salted_password') . ', usr_sexe, tel, timezone, cpostal, usr_creationdate, usr_modificationdate FROM usr )'); $em->getConnection()->executeUpdate('UPDATE Users SET geoname_id=NULL WHERE geoname_id=0'); $em->getConnection()->executeUpdate('UPDATE Users SET locale=NULL WHERE locale NOT IN ("' . implode('", "', array_keys(Application::getAvailableLanguages())) . '")'); $em->getConnection()->executeUpdate('UPDATE Users SET deleted=1, login=SUBSTRING(login, 11) WHERE login LIKE "(#deleted_%"'); }