*/
class TranslationDataCollector extends DataCollector implements LateDataCollectorInterface
{
- /**
- * @var DataCollectorTranslator
- */
private $translator;
- /**
- * @param DataCollectorTranslator $translator
- */
public function __construct(DataCollectorTranslator $translator)
{
$this->translator = $translator;
$this->data = $this->computeCount($messages);
$this->data['messages'] = $messages;
+
+ $this->data['locale'] = $this->translator->getLocale();
+ $this->data['fallback_locales'] = $this->translator->getFallbackLocales();
+
+ $this->data = $this->cloneVar($this->data);
}
/**
{
}
+ /**
+ * {@inheritdoc}
+ */
+ public function reset()
+ {
+ $this->data = array();
+ }
+
/**
* @return array
*/
return isset($this->data[DataCollectorTranslator::MESSAGE_DEFINED]) ? $this->data[DataCollectorTranslator::MESSAGE_DEFINED] : 0;
}
+ public function getLocale()
+ {
+ return !empty($this->data['locale']) ? $this->data['locale'] : null;
+ }
+
+ public function getFallbackLocales()
+ {
+ return (isset($this->data['fallback_locales']) && count($this->data['fallback_locales']) > 0) ? $this->data['fallback_locales'] : array();
+ }
+
/**
* {@inheritdoc}
*/
if (!isset($result[$messageId])) {
$message['count'] = 1;
- $message['parameters'] = !empty($message['parameters']) ? array($this->cloneVar($message['parameters'])) : array();
+ $message['parameters'] = !empty($message['parameters']) ? array($message['parameters']) : array();
$messages[$key]['translation'] = $this->sanitizeString($message['translation']);
$result[$messageId] = $message;
} else {
if (!empty($message['parameters'])) {
- $result[$messageId]['parameters'][] = $this->cloneVar($message['parameters']);
+ $result[$messageId]['parameters'][] = $message['parameters'];
}
++$result[$messageId]['count'];