i18nprofile.install in Internationalization 6
Same filename and directory in other branches
Installation file for i18nprofile module.
File
i18nprofile/i18nprofile.installView 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
Name | Description |
---|---|
i18nprofile_enable | Refresh strings when enabled. |
i18nprofile_update_2 | Drop old table and fields. |