summaryrefslogtreecommitdiff
path: root/vendor/symfony/translation/Dumper/PoFileDumper.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/symfony/translation/Dumper/PoFileDumper.php')
-rw-r--r--vendor/symfony/translation/Dumper/PoFileDumper.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/symfony/translation/Dumper/PoFileDumper.php b/vendor/symfony/translation/Dumper/PoFileDumper.php
index 0f7e6fa834..5f60086285 100644
--- a/vendor/symfony/translation/Dumper/PoFileDumper.php
+++ b/vendor/symfony/translation/Dumper/PoFileDumper.php
@@ -39,6 +39,18 @@ class PoFileDumper extends FileDumper
} else {
$newLine = true;
}
+ $metadata = $messages->getMetadata($source, $domain);
+
+ if (isset($metadata['comments'])) {
+ $output .= $this->formatComments($metadata['comments']);
+ }
+ if (isset($metadata['flags'])) {
+ $output .= $this->formatComments(implode(',', (array) $metadata['flags']), ',');
+ }
+ if (isset($metadata['sources'])) {
+ $output .= $this->formatComments(implode(' ', (array) $metadata['sources']), ':');
+ }
+
$output .= sprintf('msgid "%s"'."\n", $this->escape($source));
$output .= sprintf('msgstr "%s"'."\n", $this->escape($target));
}
@@ -58,4 +70,15 @@ class PoFileDumper extends FileDumper
{
return addcslashes($str, "\0..\37\42\134");
}
+
+ private function formatComments($comments, string $prefix = ''): ?string
+ {
+ $output = null;
+
+ foreach ((array) $comments as $comment) {
+ $output .= sprintf('#%s %s'."\n", $prefix, $comment);
+ }
+
+ return $output;
+ }
}