t('Configuration name'), 'string' => $this->object->label, ); $this->buildElementProperties($this->object, $properties); // Add in translations for all elements. foreach ($this->object->elements() as $element) { $this->buildElementProperties($element, $properties); } $strings[$this->get_textgroup()]['rules_config'][$this->object->name] = $properties; return $strings; } /** * Adds in translatable properties of the given element. */ protected function buildElementProperties($element, &$properties) { foreach ($element->pluginParameterInfo() as $name => $info) { // Add in all directly provided input variables. if (!empty($info['translatable']) && isset($element->settings[$name])) { // If its an array of textual values, translate each value on its own. if (is_array($element->settings[$name])) { foreach ($element->settings[$name] as $i => $value) { $properties[$element->elementId() . ':' . $name . ':' . $i] = array( 'title' => t('@plugin "@label" (id @id), @parameter, Value @delta', array('@plugin' => drupal_ucfirst($element->plugin()), '@label' => $element->label(), '@id' => $element->elementId(), '@parameter' => $info['label'], '@delta' => $i + 1)), 'string' => $value, ); } } else { $properties[$element->elementId() . ':' . $name] = array( 'title' => t('@plugin "@label" (id @id), @parameter', array('@plugin' => drupal_ucfirst($element->plugin()), '@label' => $element->label(), '@id' => $element->elementId(), '@parameter' => $info['label'])), 'string' => $element->settings[$name], ); } } } } }