30 public function __construct() {
31 parent::__construct();
32 $this->addDescription(
'Ensure all translation pages are up to date.' );
33 $this->setBatchSize( 300 );
34 $this->addOption(
'jobqueue',
'Use JobQueue (asynchronous)' );
35 $this->requireExtension(
'Translate' );
38 public function execute() {
39 $groups = MessageGroups::singleton()->getGroups();
40 $mwInstance = MediaWikiServices::getInstance();
41 $lbFactory = $mwInstance->getDBLoadBalancerFactory();
42 $jobQueueGroup = $mwInstance->getJobQueueGroup();
45 $useJobQueue = $this->hasOption(
'jobqueue' );
48 foreach ( $groups as $group ) {
54 if ( ( $counter % $this->mBatchSize ) === 0 ) {
55 $lbFactory->waitForReplication();
58 $page = TranslatablePage::newFromTitle( $group->getTitle() );
59 $jobs = UpdateTranslatablePageJob::getRenderJobs( $page );
61 $jobQueueGroup->push( $jobs );
63 foreach ( $jobs as $job ) {
70 $this->output(
"Queued refresh for $counter translatable pages.\n" );
72 $this->output(
"Refreshed $counter translatable pages.\n" );
Script to ensure all translation pages are up to date.
Wraps the translatable page sections into a message group.