function i18n_panels_i18n_string_list in Panels 7.3
Implements hook_i18n_string_list().
@todo Figure out a generic solution to fetch exported displays.
File
- i18n_panels/
i18n_panels.module, line 303 - Internationalization (i18n) submodule: Panels translation.
Code
function i18n_panels_i18n_string_list($group) {
$strings = array();
if ($group == 'panels') {
// Fetch all available displays.
$displays = _18n_panels_fetch_all_panel_displays();
foreach ($displays as $display) {
if (empty($display->uuid)) {
drupal_set_message(t('The display %display has no uuid, please resave or re-export it.', array(
'%display' => $display->did,
)), 'warning');
continue;
}
// Avoid duplicated runs _18n_panels_fetch_all_panel_displays() probably
// returns the same display twice, one for the db based and one for the
// exported one.
if (isset($strings['panels']['display_configuration'][$display->uuid])) {
continue;
}
$strings['panels']['display_configuration'][$display->uuid]['title']['string'] = $display->title;
foreach ($display->content as $pane) {
if (empty($pane->uuid)) {
// Fetch exported uuid and validate it.
$uuid = str_replace('new-', '', $pane->pid);
if (!ctools_uuid_is_valid($uuid)) {
drupal_set_message(t('The pane %pane has no uuid, please resave or re-export it.', array(
'%pane' => $pane->pid,
)), 'warning');
continue;
}
$pane->uuid = $uuid;
}
if ($translation_object = i18n_panels_get_i18n_translation_object($pane)) {
// Split up all strings and add them to the list.
$pane_strings = (array) $translation_object;
unset($pane_strings['panels_i18n_settings']);
foreach ($pane_strings as $key => $pane_string) {
$strings['panels']['pane_configuration'][$pane->uuid][$key] = $pane_string;
}
}
}
}
}
return $strings;
}