It's boring to add store views manually, especially when your store has many languages. Does anyone use sql upgrade script for adding store views and assigning appropriate locale? How can I do this via sql upgrade script?
The full code for adding multiple store views and assigning locale:
$defaultStore = Mage::getModel('core/store')->load(1);
$websiteId = $defaultStore->getWebsiteId();
$store = Mage::getModel('core/store_group')->load($defaultStore->getGroupId());
$storeViewsData = array(
'es' => array(
'name' => 'Spanish',
'locale' => 'es_ES',
),
'fr' => array(
'name' => 'French',
'locale' => 'fr_FR',
),
'pt' => array(
'name' => 'Portuguese',
'locale' => 'pt_PT',
),
'it' => array(
'name' => 'Italian',
'locale' => 'it_IT',
)
);
foreach ($storeViewsData as $code => $data) {
$view = Mage::getModel('core/store');
$view->setData(array(
'website_id' => $websiteId,
'group_id' => $store->getId(),
'name' => $data['name'],
'code' => $code,
'is_active' => 1
));
$view->save();
Mage::getConfig()->reinit();
Mage::app()->reinitStores();
$groupsValue = array();
$groupsValue['locale']['fields']['code']['value'] = $data['locale'];
Mage::getModel('adminhtml/config_data')
->setSection('general')
->setWebsite('base')
->setStore($code)
->setGroups($groupsValue)
->save();
}