You are here

i18nprofile.install in Internationalization 6

Installation file for i18nprofile module.

File

i18nprofile/i18nprofile.install
View source
<?php

/**
 * @file
 * Installation file for i18nprofile module.
 */

/**
 * Refresh strings when enabled.
 */
function i18nprofile_enable() {
  drupal_load('module', 'i18nstrings');
  i18nprofile_locale_refresh();
}

// Drupal 6 updates.

/**
 * Drop old table and fields.
 */
function i18nprofile_update_2() {
  $items = array();

  // Create source strings for translations.
  $categories = array();
  $result = db_query("SELECT * FROM {profile_fields}");
  while ($field = db_fetch_object($result)) {

    // Store strings to translate: title, explanation, options.
    i18nstrings_update_object("profile:field:{$field->name}", $field, array(
      'title',
      'explanation',
      'options',
    ));
    if (!in_array($field->category, $categories)) {
      $categories[] = $field->category;
      i18nstrings_update("profile:category", $field->category);
    }
  }

  // Category translations from variables.
  foreach (array_keys(language_list()) as $lang) {
    if ($translation = variable_get('i18nprofile_' . $lang, FALSE)) {
      foreach ($translation as $category => $translation) {
        if (in_array($category, $categories) && $translation) {
          $context = i18nstrings_context('profile:category', $category);
          i18nstrings_update_translation($context, $lang, $translation);
        }
      }
    }
  }

  // Move current data into string translations.
  $result = db_query("SELECT * FROM {i18n_profile_fields}");
  while ($field = db_fetch_object($result)) {
    foreach (array(
      'title',
      'explanation',
      'options',
    ) as $property) {
      if (!empty($field->{$property})) {
        i18nstrings_update_translation("profile:field:{$field->name}:{$property}", $field->language, $field->{$property});
      }
    }
  }
  return $items;
}

// Clean up. Uncomment when it all works.

/*
function i18nprofile_update_3() {
  $items[] =  update_sql("DROP TABLE {i18n_profile_fields};");

  foreach (array_keys(language_list()) as $lang) {
    variable_del('i18nprofile_'.$lang);
  }
  return $items;
}*/

Functions

Namesort descending Description
i18nprofile_enable Refresh strings when enabled.
i18nprofile_update_2 Drop old table and fields.