Neos\Flow\I18n\Cldr\CldrRepository::getModelForLocale PHP Метод

getModelForLocale() публичный Метод

This method finds a group of CLDR files within $directoryPath dir, for particular Locale. Returned model represents whole locale-chain. For example, for locale en_GB, returned model could represent 'en_GB', 'en', and 'root' CLDR files. Returns FALSE when $directoryPath doesn't point to existing directory.
public getModelForLocale ( Locale $locale, string $directoryPath = 'main' ) : CldrModel
$locale Neos\Flow\I18n\Locale A locale
$directoryPath string Relative path to existing CLDR directory which contains one file per locale (see 'main' directory in CLDR for example)
Результат CldrModel A CldrModel instance or NULL on failure
    public function getModelForLocale(I18n\Locale $locale, $directoryPath = 'main')
    {
        $directoryPath = Files::concatenatePaths([$this->cldrBasePath, $directoryPath]);
        if (isset($this->models[$directoryPath][(string) $locale])) {
            return $this->models[$directoryPath][(string) $locale];
        }
        if (!is_dir($directoryPath)) {
            return null;
        }
        $filesInHierarchy = $this->findLocaleChain($locale, $directoryPath);
        return $this->models[$directoryPath][(string) $locale] = new CldrModel($filesInHierarchy);
    }

Usage Example

 /**
  * @test
  */
 public function modelIsReturnedCorrectlyForLocaleImplicatingChaining()
 {
     $localeImplementingChaining = new I18n\Locale('de_DE');
     $cldrModel = $this->cldrRepository->getModelForLocale($localeImplementingChaining);
     $this->assertAttributeContains(Files::concatenatePaths([$this->cldrBasePath, 'main/root.xml']), 'sourcePaths', $cldrModel);
     $this->assertAttributeContains(Files::concatenatePaths([$this->cldrBasePath, 'main/de_DE.xml']), 'sourcePaths', $cldrModel);
     $this->assertAttributeContains(Files::concatenatePaths([$this->cldrBasePath, 'main/de.xml']), 'sourcePaths', $cldrModel);
 }
All Usage Examples Of Neos\Flow\I18n\Cldr\CldrRepository::getModelForLocale