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();
}
/** * 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()); }