private function populateCategoryGroupLocales(CategoryGroupModel $categoryGroup, $localeDefinitions)
{
$locales = $categoryGroup->getLocales();
foreach ($localeDefinitions as $localeId => $localeDef) {
$locale = array_key_exists($localeId, $locales) ? $locales[$localeId] : new CategoryGroupLocaleModel();
$locale->setAttributes(['locale' => $localeId, 'urlFormat' => $localeDef['urlFormat'], 'nestedUrlFormat' => $localeDef['nestedUrlFormat']]);
// Todo: Is this a hack? I don't see another way.
// Todo: Might need a sorting order as well? It's NULL at the moment.
Craft::app()->db->createCommand()->insertOrUpdate('locales', ['locale' => $locale->locale], []);
$locales[$localeId] = $locale;
}
$categoryGroup->setLocales($locales);
}