/** * An "active" locale is simply one with a compiled PO file. * Getting a language to show up in the select box should be * as simple as: * * $ cd ./locale/po/<lang>/LC_MESSAGES/ * $ msgfmt -o ccsearch.mo ccsearch.po * */ function get_active_locales() { $locales = array(); # Sometimes the locale name returned by locale_get_display_language() # is ambiguous, as is the case with zh_TW, zh_HK and zh, which all # return the precise same characters. In these cases we'll just append # a region. This could potentially be done with # locale_get_display_region(), but unfortunately the region name may be # not precisely what we want. For example zh_HK returns "Hong Kong SAR # China", which is inconsistent with what we have on the chooser. So we # have this fairly disagreeable, manual exception handling. $add_region = array('zh_TW' => '(台灣)', 'zh_HK' => '(香港)'); // Just manually set up the default locale $locales['en'] = 'English'; if (!is_dir(LOCALE_DIR)) { $msg = "The locale directory doesn't exist. Git it!"; error_log($msg, 0); die($msg); } $h_dirs = opendir(LOCALE_DIR); while (false !== ($dir = readdir($h_dirs))) { if (is_dir(LOCALE_DIR . "/{$dir}") && preg_match("/^[a-z]{2,2}(_[A-Z]{2,4})?\$/", $dir, $matches)) { $mo_file = LOCALE_DIR . "/{$dir}/LC_MESSAGES/" . PROJECT_NAME . ".mo"; if (is_readable($mo_file)) { if (array_key_exists($dir, $add_region)) { $locales[$dir] = locale_get_display_language($dir, $dir) . " {$add_region[$dir]}"; } else { $locales[$dir] = locale_get_display_language($dir, $dir); } } } } asort($locales); return $locales; }
/** * {@inheritdoc} */ public function fetch(Parameters $params) { // Resultado Inicial $result = []; // Adaptador de Banco de Dados $db = $this->getServiceLocator()->get('db'); // Expressão: Tipo $expression = 'CASE "a"."type"'; $definition = (new AccountType())->getDefinition(); foreach ($definition as $identifier => $value) { $expression = $expression . sprintf(" WHEN '%s' THEN '%s'", $identifier, $value); } $expression = $expression . ' END'; // Construtor $eType = new Expression($expression); // Seletor $select = (new Select())->from(['a' => 'accounts'])->columns(['id', 'name', 'type' => $eType]); // Pesquisa: Tipo if ($params['type']) { $select->where(function ($where) use($params) { $where->equalTo('a.type', $params['type']); }); } // Pesquisa: Palavras-Chave if ($params['keywords']) { // Filtro $select->where(function ($where) use($params) { // Idioma $language = locale_get_display_language(null, 'en'); // Documento $document = new Expression('TO_TSVECTOR(\'' . $language . '\', "a"."name")' . ' || TO_TSVECTOR(\'' . $language . '\', "a"."description")'); // Construção do Documento $search = (new Select())->from(['a' => 'accounts'])->columns(['account_id' => 'id', 'document' => $document]); // Pesquisa Interna $subselect = (new Select())->from(['search' => $search])->columns(['account_id'])->where(function ($where) use($params, $language) { $where->expression('"search"."document" @@ TO_TSQUERY(\'' . $language . '\', ?)', sprintf("'%s'", addslashes($params['keywords']))); }); // Aplicação do Filtro $where->in('a.id', $subselect); }); } // Evento: Depois dos Filtros $this->getEventManager()->trigger('Balance\\Model\\Persistence\\Db\\Accounts::afterFilters', $select); // Ordenação $select->order(['a.position']); // Consulta $rowset = $db->query($select->getSqlString($db->getPlatform()))->execute(); // Captura foreach ($rowset as $row) { $result[] = ['id' => (int) $row['id'], 'name' => $row['name'], 'type' => $row['type']]; } // Apresentação return new ArrayIterator($result); }
/** * * @return string */ public static function getDisplayLanguage($lng) { $current = Yii::$app->language; //$language=Locale::getDisplayLanguage($lng, $current); $language = locale_get_display_language($lng, $current); //$local=Locale::getDisplayLanguage($lng, $lng); $local = locale_get_display_language($lng, $lng); if ($lng == $current) { return $language; } else { return $language . ' (' . $local . ')'; } }
public function getGlobals() { $supported_locales = array(); $supported_full_locales = array(); if ($this->container->hasParameter('t73_biz_translocation.supported_locales')) { $supported_locales = $this->container->getParameter('t73_biz_translocation.supported_locales'); foreach ($supported_locales as $locale) { $supported_full_locales[$locale] = locale_get_display_language($locale); } } $default_locale = array('code' => 'en', 'name' => locale_get_display_language('en')); if ($this->container->hasParameter('framework.default_locale')) { $locale = $this->container->getParameter('framework.default_locale'); $default_locale = array('code' => $locale, 'name' => locale_get_display_language($locale)); } return array('default_locale' => $default_locale, 'supported_locales' => $supported_locales, 'supported_full_locales' => $supported_full_locales); }
/** * Collects data for the given Request and Response. * * @param Request $request A Request instance * @param Response $response A Response instance * @param \Exception $exception An Exception instance * * @api */ public function collect(Request $request, Response $response, \Exception $exception = null) { $current_locale = locale_get_display_language($request->attributes->get('_locale', $request->getLocale())); $requested_locale = locale_get_display_language($request->headers->get('accept-language')); $this->data = array('current_locale' => $current_locale, 'requested_locale' => $requested_locale, 'display_in_wdt' => $this->getDisplayInWdt()); }
/** * @Route("/{_locale}", defaults={"_locale": "en"}, * requirements={"_locale": "en|fr"} * ) */ public function homepageAction($_locale) { $language = locale_get_display_language($_locale); $url = $this->generateUrl('blog_show', array('_locale' => $_locale, 'year' => 2015, 'title' => 'foobar')); return new Response('<html><body>Welcome ' . $language . ' home! <hr/>' . $url . '</body></html>'); }
/** * {@inheritdoc} */ public function fetch(Parameters $params) { // Adaptador de Banco de Dados $db = $this->getServiceLocator()->get('db'); // Seletor $select = (new Select())->from(['p' => 'postings'])->columns(['id', 'datetime', 'description'])->order(['p.datetime DESC']); // Pesquisa: Palavras-Chave if ($params['keywords']) { // Filtro $select->where(function ($where) use($params) { // Linguagem $language = locale_get_display_language(null, 'en'); // Documento $document = new Expression('TO_TSVECTOR(\'' . $language . '\', STRING_AGG("a"."name", \' \'))' . ' || TO_TSVECTOR(\'' . $language . '\', STRING_AGG("p"."description", \' \'))'); // Construção do Documento $search = (new Select())->from(['p' => 'postings'])->columns(['posting_id' => 'id', 'document' => $document])->join(['e' => 'entries'], 'p.id = e.posting_id', [])->join(['a' => 'accounts'], 'a.id = e.account_id', [])->group(['p.id']); // Pesquisa Interna $subselect = (new Select())->from(['search' => $search])->columns(['posting_id'])->where(function ($where) use($params, $language) { $where->expression('"search"."document" @@ TO_TSQUERY(\'' . $language . '\', ?)', sprintf("'%s'", addslashes($params['keywords']))); }); // Aplicação do Filtro $where->in('p.id', $subselect); }); } // Pesquisa: Conta if ($params['account_id']) { // Consulta Interna $subselect = (new Select())->from(['e' => 'entries'])->columns(['posting_id'])->where(function ($where) use($params) { $where->equalTo('e.account_id', $params['account_id']); }); // Aplicar Filtro $select->where(function ($where) use($subselect) { $where->in('p.id', $subselect); }); } // Conversão para Banco de Dados $formatter = $this->buildDateFormatter(); // Pesquisa: Data e Hora Inicial if ($params['datetime_begin']) { // Filtrar Valor $datetime = date('c', $formatter->parse($params['datetime_begin'])); // Filtro $select->where(function ($where) use($datetime) { $where->greaterThanOrEqualTo('p.datetime', $datetime); }); } // Pesquisa: Data e Hora Final if ($params['datetime_end']) { // Filtrar Valor $datetime = date('c', $formatter->parse($params['datetime_end'])); // Filtro $select->where(function ($where) use($datetime) { $where->lessThanOrEqualTo('p.datetime', $datetime); }); } // Evento: Antes de Consultar $this->getEventManager()->trigger('Balance\\Model\\Persistence\\Db\\Postings::afterFilters', $select); // Paginação $result = new Paginator\Paginator(new Paginator\Adapter\DbSelect($select, $db)); // Página? if ($params['page']) { // Configurar Página Atual $result->setCurrentPageNumber($params['page']); } // Apresentação return $result; }
if ($new2bwoptions != $Settings->getSetting('kBitOptions')) { $Settings->setSetting('kBitOptions', $new2bwoptions); $success[] = T_("Bandwidth Options Updated"); } // Call validate&change functions for changed items } $templateEngine->assign("location", $Settings->getSetting('locationName')); $templateEngine->assign("mboptions", $Settings->getSetting('mbOptions')); $templateEngine->assign("timeoptions", $Settings->getSetting('timeOptions')); $templateEngine->assign("bwoptions", $Settings->getSetting('kBitOptions')); // Locale stuff $locale = $Settings->getSetting('locale'); $fmt = new NumberFormatter($locale, NumberFormatter::CURRENCY); $templateEngine->assign("locale", $locale); $templateEngine->assign("currency", $fmt->getSymbol(NumberFormatter::CURRENCY_SYMBOL)); $templateEngine->assign("language", locale_get_display_language($locale)); $templateEngine->assign("region", locale_get_display_region($locale)); $templateEngine->assign("support_name", $Settings->getSetting('supportContactName')); $templateEngine->assign("support_link", $Settings->getSetting('supportContactLink')); $templateEngine->assign("website_name", $Settings->getSetting('websiteName')); $templateEngine->assign("website_link", $Settings->getSetting('websiteLink')); $templateEngine->assign("available_languages", \Grase\Locale::getAvailableLanguages()); if (sizeof($error) > 0) { $templateEngine->assign("error", $error); } if (sizeof($success) > 0) { $templateEngine->assign("success", $success); } // Location function updateLocation($location) {
public function prepareView(\Nethgui\View\ViewInterface $view) { parent::prepareView($view); $user = $this->getRequest()->getUser(); $view->setTemplate('Nethgui\\Template\\Login'); $tmp = array(); foreach ($this->getLocales() as $l) { $lang = substr($l, 0, 2); if (\extension_loaded('intl')) { $tmp[$l] = sprintf('%s (%s)', ucfirst(\locale_get_display_language($l, $lang)), \locale_get_display_region($l, $lang)); } else { $tmp[$lang][$l] = $l; } } $view['languageDatasource'] = \Nethgui\Renderer\AbstractRenderer::hashToDatasource($tmp, TRUE); $this->xhtmlDecoratorParams['disableHeader'] = TRUE; $this->xhtmlDecoratorParams['disableMenu'] = TRUE; $this->xhtmlDecoratorParams['disableFooter'] = FALSE; $isAuthenticatedUserLoggingInAgain = $user->isAuthenticated() && !$this->getRequest()->isMutation(); $isUnauthUserRequest = !$user->isAuthenticated() && !$this->getRequest()->isMutation() && $this->parameters['path']; if ($isAuthenticatedUserLoggingInAgain) { $this->httpResponse->setStatus(302)->addHeader('Location: ' . $view->getSiteUrl() . $view->getModuleUrl('/')); } elseif ($isUnauthUserRequest) { $this->httpResponse->setStatus(403, 'Forbidden'); } }
/** * Translate a language using INTL extension * * @param string $locale * @param string $language */ function translate_locale($locale, $language) { if (is_null($language)) { return null; } elseif (is_array($language)) { foreach ($language as $lang) { $out = translate_locale($locale, $lang); if (!empty($out)) { return $out; } } } elseif (is_string($language)) { $languageName = locale_get_display_language($locale, $language); $languageName = trim($languageName); if (empty($languageName) || strcasecmp($languageName, $locale) === 0) { return null; } if (strcasecmp($language, 'en') !== 0) { $englishName = locale_get_display_language($locale, 'en'); if (empty($englishName) || strcasecmp($englishName, $locale) === 0 || strcasecmp($englishName, $languageName) === 0) { return null; } } $defaultLanguage = locale_get_primary_language(__DEFAULT_LOCALE__); if (strcasecmp($language, $defaultLanguage) !== 0) { $defaultName = locale_get_display_language($locale, __DEFAULT_LOCALE__); if (empty($defaultName) || strcasecmp($defaultName, $locale) === 0 || strcasecmp($defaultName, $languageName) === 0) { return null; } } $defaultLocale = locale_get_default(); $defaultLanguage = locale_get_primary_language($defaultLocale); if (strcasecmp($language, $defaultLanguage) !== 0) { $defaultName = locale_get_display_language($locale, $defaultLocale); if (empty($defaultName) || strcasecmp($defaultName, $locale) === 0 || strcasecmp($defaultName, $languageName) === 0) { return null; } } return $languageName; } else { echo "Error: \$language must be a string or array.\n"; exit(1); } return null; }