Translator::addGlobalParameter() to allow defining global translation parametersProviderFactoryTestCase, extend AbstractProviderFactoryTestCase insteadThe testIncompleteDsnException() test is no longer provided by default. If you make use of it by implementing the incompleteDsnProvider() data providers,
you now need to use the IncompleteDsnTestTrait.
ProviderFactoryTestCase and ProviderTestCase compatible with PHPUnit 10+lint:translations commandCsvFileLoader::setCsvControl()segment-attributes
metadata returned by XliffFileLoader and make XliffFileDumper write them to the fileDataCollectorTranslator as finalPhpStringTokenParserPhpExtractor in favor of PhpAstExtractorLocaleSwitcher::runWithLocale()'s callback--as-tree option to translation:pull command to write YAML messages as a tree-like structure$buildDir to DataCollectorTranslator::warmUp()DataCollectorTranslatorPass and LoggingTranslatorPass (moved from FrameworkBundle)PhraseTranslationProviderProviderFactoryTestCase are now static:
supportsProvider(), createProvider(), unsupportedSchemeProvider()and incompleteDsnProvider()ProviderTestCase::toStringProvider() is now staticPhpStringTokenParserPhpExtractor in favor of PhpAstExtractorPhpAstExtractor (requires nikic/php-parser to be installed)TranslatableInterface are processedXliffFileDumper constructorgithub format & autodetection to render errors as annotations when
running the XLIFF linter command in a Github Actions environment.translation:pull and translation:push commands to manage translations with third-party providersTranslatorBagInterface::getCatalogues methodXliffFileLoadertrans with ICU formatted messagesPseudoLocalizationTranslatorTranslatableMessage objects that represent a message that can be translatedt() function to easily create TranslatableMessage objectsTranslatableMessage objectsname attribute on unit element from xliff2 to be used as a translation key instead of always the source elementnull as the locale in TranslatorTranslatorInterfaceMessageSelectorChoiceMessageFormatterInterfacePluralizationRuleIntervaltransChoice() methods, use the trans() method instead with a %count% parameterFileDumper::setBackup() and TranslationWriter::disableBackup()MessageFormatter::choiceFormat()$filename to PhpExtractor::parseTokens()lint:xliff command, use lint:xliff - (append a dash) instead to make it explicit.null as the locale in Translatorlint:xliff command, use lint:xliff - (append a dash) instead to make it explicit.TranslationDataCollector class as @final.TranslatorPathsPassTranslator::transChoice() in favor of using Translator::trans() with a %count% parameterTranslatorInterface in favor of Symfony\Contracts\Translation\TranslatorInterfaceMessageSelector, Interval and PluralizationRules; use IdentityTranslator insteadIntlFormatter and IntlFormatterInterfaceXliffLintCommandTranslator::getFallbackLocales() and TranslationDataCollector::getFallbackLocales() as internalFileDumper::setBackup() method is deprecated.TranslationWriter::disableBackup() method is deprecated.XliffFileDumper will write "name" on the "unit" node when dumping XLIFF 2.0.FileDumper classTranslationWriter::writeTranslations() methodMessageSelector instances to the constructor of the Translator classTranslationDumperPassTranslationExtractorPassTranslatorPassTranslationReader and TranslationReaderInterface<notes> section to the Xliff 2.0 dumper.<notes> section.TranslationWriterInterfaceTranslationWriter::writeTranslations in favor of TranslationWriter::writePhpExtractorPhpStringTokenParser| in plural translations with double pipe.FileDumper::format() method.Translator from protected to private.FileDumper::formatCatalogue which allows format the catalogue without dumping it into file.json_encoding to JsonFileDumperas_tree, inline to YamlFileDumperDiffOperation class has been deprecated and
will be removed in Symfony 3.0, since its operation has nothing to do with 'diff',
so the class name is misleading. The TargetOperation class should be used for
this use-case instead.