From 89233caf4c572d69814772ad04159bea4a91373f Mon Sep 17 00:00:00 2001 From: Matthias Krauser Date: Wed, 11 Feb 2026 16:13:24 +0100 Subject: [PATCH] [Translator] Improve performance of dumper under certain condition --- src/TranslationsDumper.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/TranslationsDumper.php b/src/TranslationsDumper.php index 3026688..78215ce 100644 --- a/src/TranslationsDumper.php +++ b/src/TranslationsDumper.php @@ -99,29 +99,31 @@ class TranslationsDumper ); } + $additions = []; + $typescriptAdditions = []; foreach ($this->getTranslations($catalogues, $excludedDomains, $includedDomains, $includeKeysRegex, $excludeKeysRegex) as $translationId => $translationsByDomainAndLocale) { $translationId = str_replace('"', '\\"', $translationId); - $this->filesystem->appendToFile($fileIndexJs, \sprintf( + + $additions[] = \sprintf( ' "%s": %s,%s', $translationId, json_encode(['translations' => $translationsByDomainAndLocale], \JSON_THROW_ON_ERROR), "\n" - )); + ); if ($dumpTypeScript) { - $this->filesystem->appendToFile($fileIndexDts, \sprintf( + $typescriptAdditions[] = \sprintf( ' "%s": %s;%s', $translationId, $this->getTranslationsTypeScriptTypeDefinition($translationsByDomainAndLocale), "\n" - )); + ); } } - $this->filesystem->appendToFile($fileIndexJs, '};'."\n"); - + $this->filesystem->appendToFile($fileIndexJs, implode('', $additions).'};'."\n"); if ($dumpTypeScript) { - $this->filesystem->appendToFile($fileIndexDts, '};'."\n"); + $this->filesystem->appendToFile($fileIndexDts, implode('', $typescriptAdditions).'};'."\n"); } }