当前位置: 首页>>代码示例>>PHP>>正文


PHP Locale::getPrimaryLanguage方法代码示例

本文整理汇总了PHP中Locale::getPrimaryLanguage方法的典型用法代码示例。如果您正苦于以下问题:PHP Locale::getPrimaryLanguage方法的具体用法?PHP Locale::getPrimaryLanguage怎么用?PHP Locale::getPrimaryLanguage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Locale的用法示例。


在下文中一共展示了Locale::getPrimaryLanguage方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parseData

 protected function parseData($path)
 {
     preg_match('~guide-?(.*)/(.+)\\.md$~', $path, $matches);
     $language = $matches[1] ? $matches[1] : Yii::$app->sourceLanguage;
     $language = Locale::getPrimaryLanguage($language);
     $slug = strtolower($matches[2]);
     $doc = file_get_contents($path);
     $doc = Markdown::process($doc, 'gfm');
     $html = new HTMLDocument();
     @$html->loadHTML($doc);
     $html->addPrefix("/{lang}/", 'a', 'href');
     $imgPath = dirname($path) . '/images';
     $imgPath = $this->publishImages($imgPath);
     if ($imgPath) {
         $html->addPrefix(function ($src) use($imgPath) {
             return $imgPath . '/' . basename($src);
         }, 'img', 'src');
     }
     foreach (['h1', 'h2', 'h3', 'h4'] as $tag) {
         /** @var \DOMElement $item */
         foreach ($html->getElementsByTagName($tag) as $item) {
             /** @var \DOMElement $span */
             if ($span = $item->getElementsByTagName('span')[0]) {
                 $item->setAttribute('id', $span->getAttribute('id'));
             }
         }
     }
     /** @var DOMElement $title */
     $title = $html->getElementsByTagName('h1')[0];
     return ['language' => $language, 'slug' => $slug, 'title' => $title->textContent, 'description' => $html->saveHTML()];
 }
开发者ID:lav45,项目名称:yii2-translated-behavior-demo,代码行数:31,代码来源:m160418_201842_page_data.php

示例2: __invoke

 /**
  * @param $name
  * @return string
  */
 public function __invoke($name)
 {
     if ($this->fragments == null) {
         //
         $serviceManager = $this->event->getApplication()->getServiceManager();
         // get translator
         $translator = $serviceManager->get('Translator');
         $locale = $translator->getLocale();
         $language = \Locale::getPrimaryLanguage($locale);
         // try to get fragments from cache
         $cache = $serviceManager->get('Application\\Cache');
         if ($cache) {
             $cacheKey = sprintf('page-fragments-%s-%s', $this->page->getId(), $language);
             $page_fragments = $cache->getItem($cacheKey);
         }
         // fetch from the DB
         if ($page_fragments == null) {
             /** @var \Doctrine\ORM\EntityManager $entity_manager */
             $entity_manager = $serviceManager->get('Doctrine\\ORM\\EntityManager');
             $page_fragments_repository = $entity_manager->getRepository('Msingi\\Cms\\Entity\\PageFragment');
             $page_fragments = $page_fragments_repository->fetchFragmentsArray($this->page->getId(), $language);
         }
         // store to cache
         if ($cache) {
             $cache->setItem($cacheKey, $page_fragments);
         }
         $this->fragments = $page_fragments;
     }
     return isset($this->fragments[$name]) ? $this->fragments[$name] : '';
 }
开发者ID:msingi,项目名称:msingi,代码行数:34,代码来源:PageFragment.php

示例3: validate

 /**
  * Validates a Locale
  *
  * @param string     $locale     The locale to be validated
  * @param Constraint $constraint Locale Constraint
  *
  * @throws UnexpectedTypeException
  */
 public function validate($locale, Constraint $constraint)
 {
     if (null === $locale || '' === $locale) {
         return;
     }
     if (!is_scalar($locale) && !(is_object($locale) && method_exists($locale, '__toString'))) {
         throw new UnexpectedTypeException($locale, 'string');
     }
     $locale = (string) $locale;
     if ($this->strictMode) {
         if (!in_array($locale, $this->getAllowedLocales())) {
             $this->context->addViolation($constraint->message, array('%string%' => $locale));
         }
     } else {
         if ($this->intlExtension) {
             $primary = \Locale::getPrimaryLanguage($locale);
         } else {
             $splittedLocale = explode('_', $locale);
             $primary = count($splittedLocale) > 1 ? $splittedLocale[0] : $locale;
         }
         if (!in_array($locale, $this->getAllowedLocales()) && !in_array($primary, $this->getAllowedLocales())) {
             $this->context->addViolation($constraint->message, array('%string%' => $locale));
         }
     }
 }
开发者ID:Sententiaregum,项目名称:LocaleBundle,代码行数:33,代码来源:LocaleAllowedValidator.php

示例4: __invoke

 /** {@inheritdoc} */
 public function __invoke(\Interop\Container\ContainerInterface $container, $name, callable $callback, array $options = null)
 {
     $locale = \Locale::getDefault();
     $primaryLanguage = \Locale::getPrimaryLanguage($locale);
     $mvcTranslator = $callback();
     $mvcTranslator->setPluginManager($container->get('TranslatorPluginManager'));
     $translator = $mvcTranslator->getTranslator();
     // Set language
     $translator->setLocale($locale);
     if ($primaryLanguage != $locale) {
         // Set primary language as fallback, i.e. "de" if locale is "de_DE".
         // This enables translation file patterns for "de" to match all
         // variants.
         $translator->setFallbackLocale($primaryLanguage);
     }
     // Load translations for ZF validator messages
     $translator->addTranslationFilePattern('phparray', \Zend\I18n\Translator\Resources::getBasePath(), \Zend\I18n\Translator\Resources::getPatternForValidator());
     // Set up event listener for missing translations
     if ($primaryLanguage != 'en') {
         $config = $container->get('Library\\UserConfig');
         if (@$config['debug']['report missing translations']) {
             $translator->enableEventManager();
             $translator->getEventManager()->attach(\Zend\I18n\Translator\Translator::EVENT_MISSING_TRANSLATION, array($this, 'onMissingTranslation'));
         }
     }
     return $mvcTranslator;
 }
开发者ID:hschletz,项目名称:braintacle,代码行数:28,代码来源:DelegatorFactory.php

示例5: switchAction

 /**
  * Action for locale switch
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  * @param                                           $_locale The locale to set
  *
  * @return \Symfony\Bundle\FrameworkBundle\Controller\RedirectResponse
  *
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function switchAction(Request $request, $_locale)
 {
     // Check if the Language is allowed
     if (!in_array(\Locale::getPrimaryLanguage($_locale), $this->allowedLanguages)) {
         throw new NotFoundHttpException('This language is not available');
     }
     // tries to detect a Region from the user-provided locales
     $providedLanguages = $request->getLanguages();
     $locales = array();
     foreach ($providedLanguages as $locale) {
         if (strpos($locale . '_', $_locale) !== false && strlen($locale) > 2) {
             $locales[] = $locale;
         }
     }
     if (count($locales) > 0) {
         $this->session->set('localeIdentified', $locales[0]);
     } else {
         $this->session->set('localeIdentified', $_locale);
     }
     // Add the listener
     $this->session->set('setLocaleCookie', true);
     // Redirect the User
     if ($request->headers->has('referer') && true === $this->useReferrer) {
         return new RedirectResponse($request->headers->get('referer'));
     }
     if (null !== $this->redirectToRoute) {
         return new RedirectResponse($this->router->generate($this->redirectToRoute));
     }
     return new RedirectResponse($request->getScheme() . '://' . $request->getHttpHost() . $this->redirectToUrl);
 }
开发者ID:rdohms,项目名称:LocaleBundle,代码行数:40,代码来源:LocaleController.php

示例6: _getOptionLocales

 /**
  * Get options array for locale dropdown
  *
  * @param   bool $translatedName translation flag
  * @return  array
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 protected function _getOptionLocales($translatedName = false)
 {
     $currentLocale = $this->localeResolver->getLocale();
     $locales = \ResourceBundle::getLocales('') ?: [];
     $languages = (new LanguageBundle())->get($currentLocale)['Languages'];
     $countries = (new RegionBundle())->get($currentLocale)['Countries'];
     $options = [];
     $allowedLocales = $this->_config->getAllowedLocales();
     foreach ($locales as $locale) {
         if (!in_array($locale, $allowedLocales)) {
             continue;
         }
         $language = \Locale::getPrimaryLanguage($locale);
         $country = \Locale::getRegion($locale);
         if (!$languages[$language] || !$countries[$country]) {
             continue;
         }
         if ($translatedName) {
             $label = ucwords(\Locale::getDisplayLanguage($locale, $locale)) . ' (' . \Locale::getDisplayRegion($locale, $locale) . ') / ' . $languages[$language] . ' (' . $countries[$country] . ')';
         } else {
             $label = $languages[$language] . ' (' . $countries[$country] . ')';
         }
         $options[] = ['value' => $locale, 'label' => $label];
     }
     return $this->_sortOptionArray($options);
 }
开发者ID:vasiljok,项目名称:magento2,代码行数:33,代码来源:TranslatedLists.php

示例7: getNameForValidNumber

 /**
  * Returns a carrier name for the given phone number, in the language provided. The carrier name
  * is the one the number was originally allocated to, however if the country supports mobile
  * number portability the number might not belong to the returned carrier anymore. If no mapping
  * is found an empty string is returned.
  *
  * <p>This method assumes the validity of the number passed in has already been checked, and that
  * the number is suitable for carrier lookup. We consider mobile and pager numbers possible
  * candidates for carrier lookup.
  *
  * @param PhoneNumber $number a valid phone number for which we want to get a carrier name
  * @param string $languageCode the language code in which the name should be written
  * @return string a carrier name for the given phone number
  */
 public function getNameForValidNumber(PhoneNumber $number, $languageCode)
 {
     $languageStr = \Locale::getPrimaryLanguage($languageCode);
     $scriptStr = "";
     $regionStr = \Locale::getRegion($languageCode);
     return $this->prefixFileReader->getDescriptionForNumber($number, $languageStr, $scriptStr, $regionStr);
 }
开发者ID:wasabiNorman,项目名称:libphonenumber-for-php,代码行数:21,代码来源:PhoneNumberToCarrierMapper.php

示例8: getBestFit

 public static function getBestFit($locale)
 {
     $primary = Locale::getPrimaryLanguage($locale);
     foreach (self::getSystemLocales() as $systemLocale) {
         if ($primary === Locale::getPrimaryLanguage($systemLocale)) {
             return $systemLocale;
         }
     }
 }
开发者ID:jou,项目名称:ymc-components,代码行数:9,代码来源:system_locale.php

示例9: getLangRows

 /**
  * @return Generator|array
  */
 protected function getLangRows()
 {
     foreach ($this->getLanguages() as $locale) {
         $primaryLanguage = Locale::getPrimaryLanguage($locale);
         $displayLanguage = Locale::getDisplayLanguage($locale, $primaryLanguage);
         $displayLanguage = mb_convert_case($displayLanguage, MB_CASE_TITLE, "UTF-8");
         (yield [$primaryLanguage, $displayLanguage, $locale, 10]);
     }
 }
开发者ID:lav45,项目名称:yii2-translated-behavior-demo,代码行数:12,代码来源:m151221_225031_lang.php

示例10: configureOptions

 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $configs = $this->options;
     $resolver->setDefaults(array('culture' => \Locale::getPrimaryLanguage(\Locale::getDefault()), 'widget' => 'choice', 'years' => range(date('Y') - 5, date('Y') + 5), 'configs' => array('dateFormat' => null)))->setNormalizers(array('configs' => function (Options $options, $value) use($configs) {
         $result = array_merge($configs, $value);
         if ('single_text' !== $options['widget'] || isset($result['buttonImage'])) {
             $result['showOn'] = 'button';
         }
         return $result;
     }));
 }
开发者ID:GeneralMediaCH,项目名称:GenemuFormBundle,代码行数:14,代码来源:DateType.php

示例11: handle

 public function handle($request, Closure $next)
 {
     if (Session::has('applocale') and array_key_exists(Session::get('applocale'), Config::get('languages'))) {
         App::setLocale(Session::get('applocale'));
         setlocale(LC_TIME, Session::get('applocale'));
         Carbon::setLocale(\Locale::getPrimaryLanguage(Session::get('applocale')));
     } else {
         App::setLocale(Config::get('app.fallback_locale'));
         setlocale(LC_TIME, Config::get('app.fallback_locale'));
         Carbon::setLocale(\Locale::getPrimaryLanguage(Config::get('app.fallback_locale')));
     }
     return $next($request);
 }
开发者ID:martinsv,项目名称:timegrid,代码行数:13,代码来源:Language.php

示例12: onRoute

 /**
  * Called after routing
  *
  * @param MvcEvent $event
  */
 public function onRoute(MvcEvent $event)
 {
     $serviceManager = $event->getApplication()->getServiceManager();
     /* @var RouteMatch $routeMatch */
     $routeMatch = $event->getRouteMatch();
     $language = '';
     // check if the language is set by routing (parameter, domain name, etc)
     if ($routeMatch->getParam('language') == '') {
         // get route
         $route = explode('/', $routeMatch->getMatchedRouteName());
         //
         $module = $route[0];
         /** @var \Msingi\Cms\Settings $settings */
         $settings = $event->getApplication()->getServiceManager()->get('Settings');
         // get defaults from settings
         $multilanguage = (bool) $settings->get($module . ':languages:multilanguage');
         $language_default = $settings->get($module . ':languages:default');
         $languages_enabled = $settings->get($module . ':languages:enabled');
         if ($multilanguage && is_array($languages_enabled)) {
             /** @var \Zend\Http\Request $request */
             $request = $event->getRequest();
             // try to get language from cookie
             if ($request->getCookie('language') != '') {
                 $language = $event->getRequest()->getCookie('language');
             }
             // try to get language from browser
             if ($language == '' && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
                 $language = \Locale::getPrimaryLanguage(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']));
             }
             // fallback to default language if given one is not supported
             if (!in_array($language, $languages_enabled)) {
                 $language = $language_default;
             }
         } else {
             // not multilanguage module, use default language
             $language = $language_default;
         }
         $routeMatch->setParam('language', $language);
     } else {
         $language = $routeMatch->getParam('language');
         $language_default = $language;
     }
     // translator
     $translator = $serviceManager->get('Translator');
     $translator->setLocale($language)->setFallbackLocale($language_default);
     // cache
     $cache = $serviceManager->get('Application\\Cache');
     if ($cache) {
         $translator->setCache($cache);
     }
 }
开发者ID:msingi,项目名称:msingi,代码行数:56,代码来源:LocaleListener.php

示例13: __invoke

 /**
  *
  *
  * @param string $templateName
  * @param string $to
  * @param array $params
  * @return
  */
 public function __invoke($templateName, $to, array $params = array())
 {
     // set mail language if not given
     if (!isset($params['language']) && $this->translator) {
         $params['language'] = \Locale::getPrimaryLanguage($this->translator->getLocale());
     }
     // set root url if not given
     if (!isset($params['root_url']) && $this->router) {
         $params['root_url'] = rtrim($this->router->assemble(array('language' => $params['language']), array('name' => 'frontend/index')), '/');
     }
     //
     $params['to'] = $to;
     return $this->mailer->sendMail($templateName, $to, $params);
 }
开发者ID:msingi,项目名称:msingi,代码行数:22,代码来源:SendMail.php

示例14: handle

 public function handle($request, Closure $next)
 {
     $sessionAppLocale = session()->get('applocale');
     if (session()->has('applocale') and array_key_exists($sessionAppLocale, Config::get('languages'))) {
         app()->setLocale($sessionAppLocale);
         setlocale(LC_TIME, $sessionAppLocale);
         Carbon::setLocale(\Locale::getPrimaryLanguage($sessionAppLocale));
         return $next($request);
     }
     $fallbackLocale = Config::get('app.fallback_locale');
     app()->setLocale($fallbackLocale);
     setlocale(LC_TIME, $fallbackLocale);
     Carbon::setLocale(\Locale::getPrimaryLanguage($fallbackLocale));
     return $next($request);
 }
开发者ID:zeke8402,项目名称:timegrid,代码行数:15,代码来源:Language.php

示例15: build

 /**
  * @param string $locale
  * @return Context
  */
 public function build($locale = null)
 {
     $context = Context::of();
     foreach ($this->defaults as $key => $default) {
         $context[$key] = $default;
     }
     if (is_null($locale)) {
         $locale = $context->getLocale();
     }
     $locale = $this->converter->convert($locale);
     $fallbackLanguages = $this->fallbackLanguages;
     $language = \Locale::getPrimaryLanguage($locale);
     $languages = [$language];
     if (isset($fallbackLanguages[$language])) {
         $languages = array_merge($languages, $fallbackLanguages[$language]);
     }
     $context->setLanguages($languages)->setLocale($locale);
     return $context;
 }
开发者ID:sphereio,项目名称:commercetools-php-symfony,代码行数:23,代码来源:ContextFactory.php


注:本文中的Locale::getPrimaryLanguage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。