Fixed #34713 Move new messages to intl domain when possible
This commit is contained in:
parent
56e79fefa1
commit
9ca872054b
@ -23,6 +23,7 @@ use Symfony\Component\Translation\Catalogue\MergeOperation;
|
||||
use Symfony\Component\Translation\Catalogue\TargetOperation;
|
||||
use Symfony\Component\Translation\Extractor\ExtractorInterface;
|
||||
use Symfony\Component\Translation\MessageCatalogue;
|
||||
use Symfony\Component\Translation\MessageCatalogueInterface;
|
||||
use Symfony\Component\Translation\Reader\TranslationReaderInterface;
|
||||
use Symfony\Component\Translation\Writer\TranslationWriterInterface;
|
||||
|
||||
@ -254,6 +255,24 @@ EOF
|
||||
|
||||
$resultMessage = 'Translation files were successfully updated';
|
||||
|
||||
// move new messages to intl domain when possible
|
||||
if (class_exists(\MessageFormatter::class)) {
|
||||
foreach ($operation->getDomains() as $domain) {
|
||||
$intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX;
|
||||
$newMessages = $operation->getNewMessages($domain);
|
||||
|
||||
if ([] === $newMessages || ([] === $currentCatalogue->all($intlDomain) && [] !== $currentCatalogue->all($domain))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$result = $operation->getResult();
|
||||
$allIntlMessages = $result->all($intlDomain);
|
||||
$currentMessages = array_diff_key($newMessages, $result->all($domain));
|
||||
$result->replace($currentMessages, $domain);
|
||||
$result->replace($allIntlMessages + $newMessages, $intlDomain);
|
||||
}
|
||||
}
|
||||
|
||||
// show compiled list of messages
|
||||
if (true === $input->getOption('dump-messages')) {
|
||||
$extractedMessagesCount = 0;
|
||||
|
Reference in New Issue
Block a user