domainsAndLanguageRepository = $domainsAndLanguageRepository; $this->manager = $manager; $this->getDomainsByStringIds = $getDomainsByStringIds; } public function add_hooks() { add_action( 'wpml_st_language_of_strings_changed', [ $this, 'regenerateMOFiles' ] ); } public function regenerateMOFiles( array $strings ) { $stringDomains = call_user_func( $this->getDomainsByStringIds, $strings ); $this->domainsAndLanguageRepository ->get() ->filter( pipe( Obj::prop( 'domain' ), Lst::includes( Fns::__, $stringDomains ) ) ) ->each( function ( $domainLangPair ) { $this->manager->add( $domainLangPair->domain, $domainLangPair->locale ); } ); } }