I read in another post that system default language must be en-US. I did some digging and found that this is because the system default language is hard-coded in many methods and class members, including Localization class member SystemLocale.
Now I have the following problem: I've upgraded my site to DNN 6.1.5. Site works fine, but: I wanted to export the site template to create a subportal and clone the site, and noticed that the choose site dropdown didn't populate. It turns out that this is because the GetPortals stored procedure needs a cultureCode parameter, which is always en-US. Below is the method that should return the list of portals so I can choose which to export.
public ArrayList GetPortals()
string cultureCode = Localization.SystemLocale;
string cacheKey = String.Format(DataCache.PortalCacheKey, Null.NullInteger, cultureCode);
var portals = CBO.GetCachedObject<List<PortalInfo>>(new CacheItemArgs(cacheKey, DataCache.PortalCacheTimeOut, DataCache.PortalCachePriority, cultureCode),
return new ArrayList(portals);
Notice the line in bold.
Now here is that property in Localization class:
public static string SystemLocale
So the problem is that all of my portals have en-GB culture, whereas the parameter is always en-US for the GetPortals method. Is there a workaround for this?