You are here

function localize_fields_test_enable in Localize Fields 7

Adds/enables languages English and Danish, and imports this module's .po.

Implements hook_enable().

File

test/localize_fields_test.install, line 13
Drupal Localize Fields Test module.

Code

function localize_fields_test_enable() {
  $t = get_t();
  $drush = drupal_is_cli();

  // Install|enable languages en and da, if not installed|enabled.
  $languages = language_list();
  $required = array(
    'en',
    'da',
  );
  foreach ($required as $langcode) {
    if (!isset($languages[$langcode])) {
      locale_add_language($langcode, NULL, NULL, LANGUAGE_LTR, '', '', TRUE, FALSE);
      $msg = $t('Installed and enabled language !title (!langcode).', array(
        '!langcode' => 'en',
        '!title' => 'English',
      ));
      if ($drush) {
        drush_log($msg, 'status');
      }
      else {
        drupal_set_message($msg, 'status');
      }
    }
    elseif (!$languages[$langcode]->enabled) {

      // No API for enabling a language without installing it :-(
      // So this mimics locale_add_language().
      db_update('languages')
        ->fields(array(
        'enabled' => 1,
      ))
        ->condition('language', $langcode)
        ->execute();
      variable_set('language_count', variable_get('language_count', 1) + 1);
      drupal_static_reset('language_list');
      _locale_invalidate_js($langcode);
      module_invoke_all('multilingual_settings_changed');
      $msg = $t('Enabled language !title (!langcode).', array(
        '!langcode' => 'en',
        '!title' => 'English',
      ));
      if ($drush) {
        drush_log($msg, 'status');
      }
      else {
        drupal_set_message($msg, 'status');
      }
    }
  }

  // Import da translation.
  $langcode = 'da';
  $lang_title = 'Danish';
  $file = new stdClass();
  $file->filename = $langcode . '.po';
  $file->uri = str_replace('\\', '/', dirname(__FILE__)) . '/translations/' . $langcode . '.po';

  // Overwrite translations, Drupal localization project may contain phoney
  // translation.
  if (_locale_import_po($file, $langcode, LOCALE_IMPORT_OVERWRITE, 'default')) {
    $msg = $t('Imported the localize_fields_test module\'s !title (!langcode) translations.', array(
      '!langcode' => $langcode,
      '!title' => $lang_title,
    ));
    if ($drush) {
      drush_log($msg, 'success');
    }
    else {
      drupal_set_message($msg, 'success');
    }
  }
  else {
    $msg = $t('Failed to import the localize_fields_test module\'s !title translations !langcode.po file.', array(
      '!langcode' => $langcode,
      '!title' => $lang_title,
    ));
    if ($drush) {
      drush_log($msg, 'error');
    }
    else {
      drupal_set_message($msg, 'error');
    }
  }
}