diff --git a/platform/provision_drupal.module b/platform/provision_drupal.module index 939f2e5097db8ccc8b00666a185237d2ef5aaad7..3a191fe6a9e4805f3eac542fe3562e2faf32a4a8 100644 --- a/platform/provision_drupal.module +++ b/platform/provision_drupal.module @@ -294,8 +294,11 @@ function _provision_drupal_force_load_modules($url = null) { /** * Install the drupal schema and install profile */ -function _provision_drupal_install_schema($profile) { +function _provision_drupal_install_schema($profile, $language = 'en') { + include_once('includes/locale.inc'); + $GLOBALS['profile'] = $profile; + $GLOBALS['install_locale'] = $language; provision_log("install", t("Installing Drupal schema")); // Load the profile. require_once "./profiles/$profile/$profile.profile"; @@ -315,14 +318,13 @@ function _provision_drupal_install_schema($profile) { } // Verify existence of all required modules. - $modules = drupal_verify_profile($profile, null); + $modules = drupal_verify_profile($profile, $language); if (!$modules) { provision_set_error(PROVISION_FRAMEWORK_ERROR); return false; } - // Perform actual installation defined in the profile. drupal_install_profile($profile, $modules); @@ -366,6 +368,13 @@ function _provision_find_profiles() { if (function_exists($func)) { $profile->info = $func(); } + + // Find languages available + $languages = array_keys(file_scan_directory('./profiles/' . $key, '\.po$', array('.', '..', 'CVS'), 0, FALSE, 'name')); + + array_unshift($languages, 'en'); + $profile->info['languages'] = $languages; + $return[$key] = $profile; } return $return; diff --git a/platform/provision_drupal_settings.tpl.php b/platform/provision_drupal_settings.tpl.php index 0e52c3571cf8812c3c15fbecfcaddcc23bfc8211..b7f2e9f5b08cb947f47822718c87e5109166c681 100644 --- a/platform/provision_drupal_settings.tpl.php +++ b/platform/provision_drupal_settings.tpl.php @@ -1,7 +1,9 @@ $db_url = ''; $profile = ""; - + + $locale = ''; + /** * PHP settings: * diff --git a/provision.inc b/provision.inc index f7d8d8150f9c0a4b8f33adee11c70e00b14bf618..662bc3935dc6330a418c7de0dc55efe341acf3d3 100644 --- a/provision.inc +++ b/provision.inc @@ -290,6 +290,10 @@ function provision_get_site_data($url) { $site_data['site_profile'] = ($site_data['site_profile']) ? $site_data['site_profile'] : variable_get('provision_default_profile', 'default'); $site_data['site_ip'] = variable_get('provision_apache_server_ip', '127.0.0.1'); $site_data['site_port'] = variable_get('provision_apache_server_ip', 80); + + //Default to english language + $site_data['site_language'] = $site_data['site_language'] ? $site_data['site_language'] : 'en'; + if ($old_data = provision_load_site_data($url)) { # Merge previously saved data with the new data. This way, old parameters overwrite new ones. $site_data = array_merge($old_data, $site_data); diff --git a/provision.module b/provision.module index f9e74b82133145059612c4b8b78f34f82709d143..bd68ae01a500459edfc2598d8e00a5c730516756 100644 --- a/provision.module +++ b/provision.module @@ -389,7 +389,7 @@ function _provision_install($url, &$data) { if (!$rolled_back) { _provision_drupal_switch_active_site($url); # Change headers and db info, also backs up _provision_drupal_force_load_modules($url); - _provision_drupal_install_schema($data['site_profile']); + _provision_drupal_install_schema($data['site_profile'], $data['site_language']); _provision_drupal_force_load_modules(); _provision_drupal_switch_active_site(); # This *should* bring the site back to where we were before installing