NerdsAndCompany\Schematic\Services\Locales::import PHP Method

import() public method

public import ( array $localeDefinitions, boolean $force = false ) : Result
$localeDefinitions array
$force boolean
return Result
    public function import(array $localeDefinitions, $force = false)
    {
        Craft::log(Craft::t('Importing Locales'));
        // Get existing locales
        $locales = $this->getLocalizationService()->getSiteLocaleIds();
        foreach ($localeDefinitions as $locale) {
            if (!in_array($locale, $locales)) {
                if (!$this->getLocalizationService()->addSiteLocale($locale)) {
                    $this->addError(Craft::t('Locale {locale} could not be installed', ['locale' => $locale]));
                }
            }
        }
        // Re-order locales by definition
        $this->getLocalizationService()->reorderSiteLocales($localeDefinitions);
        return $this->getResultModel();
    }

Usage Example

Example #1
0
 /**
  * Test default import functionality.
  *
  * @covers ::import
  */
 public function testImportWithFailedInstalledLocales()
 {
     $mockLocalizationService = $this->getMockLocalizationService([], [], false);
     $this->setComponent(Craft::app(), 'i18n', $mockLocalizationService);
     $data = $this->getLocaleData();
     $import = $this->schematicLocalesService->import($data);
     $this->assertTrue($import instanceof Result);
     $this->assertTrue($import->hasErrors());
 }