/** * test all languages * * @group Plugins * * @dataProvider getTestDataForLanguageFiles */ function testGetTranslationsForLanguages($language, $plugin) { $translationWriter = new Writer($language, $plugin); $baseTranslations = $translationWriter->getTranslations('en'); $translationWriter->addValidator(new NoScripts()); if (empty($plugin)) { $translationWriter->addValidator(new CoreTranslations($baseTranslations)); } // prevent build from failing when translations string have been deleted // $translationWriter->addFilter(new ByBaseTranslations($baseTranslations)); $translationWriter->addFilter(new EmptyTranslations()); $translationWriter->addFilter(new ByParameterCount($baseTranslations)); $translationWriter->addFilter(new UnnecassaryWhitespaces($baseTranslations)); $translationWriter->addFilter(new EncodedEntities()); $translations = $translationWriter->getTranslations($language); if (empty($translations)) { return; // skip language / plugin combinations that aren't present } $translationWriter->setTranslations($translations); $this->assertTrue($translationWriter->isValid(), $translationWriter->getValidationMessage()); if ($translationWriter->wasFiltered()) { $translationWriter->saveTemporary(); $this->fail(implode("\n", $translationWriter->getFilterMessages()) . "\n" . 'Translation file errors detected in ' . $language . "...\n" . "To overwrite you could manually fix the language files, or run the following command may work if you have access to oTrance: \n" . "\$ ./console translations:update [--plugin=XYZ] \n"); } }