summaryrefslogtreecommitdiff
path: root/vendor/symfony/translation/Dumper/FileDumper.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2020-02-11 12:06:32 +0000
committerGreg Roach <fisharebest@webtrees.net>2020-02-11 12:06:32 +0000
commit600daa5d4fa729dbec2d21fb3adffed0ae6efda9 (patch)
tree3285f1b2135725eb53b98dd713ed67236397ff71 /vendor/symfony/translation/Dumper/FileDumper.php
parent1b47c2feedb65f946198e7c18aeb4286b98ceeb5 (diff)
downloadwebtrees-600daa5d4fa729dbec2d21fb3adffed0ae6efda9.tar.gz
webtrees-600daa5d4fa729dbec2d21fb3adffed0ae6efda9.tar.bz2
webtrees-600daa5d4fa729dbec2d21fb3adffed0ae6efda9.zip
Update vendor code - Update markdown handler to use new CommonMark library
Diffstat (limited to 'vendor/symfony/translation/Dumper/FileDumper.php')
-rw-r--r--vendor/symfony/translation/Dumper/FileDumper.php43
1 files changed, 21 insertions, 22 deletions
diff --git a/vendor/symfony/translation/Dumper/FileDumper.php b/vendor/symfony/translation/Dumper/FileDumper.php
index 477fcfa19e..2009c53403 100644
--- a/vendor/symfony/translation/Dumper/FileDumper.php
+++ b/vendor/symfony/translation/Dumper/FileDumper.php
@@ -67,37 +67,36 @@ abstract class FileDumper implements DumperInterface
throw new InvalidArgumentException('The file dumper needs a path option.');
}
- $hasMessageFormatter = class_exists(\MessageFormatter::class);
-
// save a file for each domain
foreach ($messages->getDomains() as $domain) {
- if ($hasMessageFormatter) {
- $defaultDomain = $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX;
- $altDomain = $domain;
- } else {
- $defaultDomain = $domain;
- $altDomain = $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX;
- }
- $defaultPath = $options['path'].'/'.$this->getRelativePath($defaultDomain, $messages->getLocale());
- $altPath = $options['path'].'/'.$this->getRelativePath($altDomain, $messages->getLocale());
-
- if (!file_exists($defaultPath) && file_exists($altPath)) {
- [$defaultPath, $altPath] = [$altPath, $defaultPath];
- }
-
- if (!file_exists($defaultPath)) {
- $directory = \dirname($defaultPath);
+ $fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale());
+ if (!file_exists($fullpath)) {
+ $directory = \dirname($fullpath);
if (!file_exists($directory) && !@mkdir($directory, 0777, true)) {
throw new RuntimeException(sprintf('Unable to create directory "%s".', $directory));
}
}
- if (file_exists($altPath)) {
- // clear alternative translation file
- file_put_contents($altPath, $this->formatCatalogue(new MessageCatalogue($messages->getLocale()), $altDomain, $options));
+ $intlDomain = $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX;
+ $intlMessages = $messages->all($intlDomain);
+
+ if ($intlMessages) {
+ $intlPath = $options['path'].'/'.$this->getRelativePath($intlDomain, $messages->getLocale());
+ file_put_contents($intlPath, $this->formatCatalogue($messages, $intlDomain, $options));
+
+ $messages->replace([], $intlDomain);
+
+ try {
+ if ($messages->all($domain)) {
+ file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
+ }
+ continue;
+ } finally {
+ $messages->replace($intlMessages, $intlDomain);
+ }
}
- file_put_contents($defaultPath, $this->formatCatalogue($messages, $domain, $options));
+ file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
}
}