Language_Pack_Upgrader::check_package( string|WP_Error $source, string $remote_source ): string|WP_Error

Checks that the package source contains .mo and .po files.

Description

Hooked to the ‘upgrader_source_selection’ filter by Language_Pack_Upgrader::bulk_upgrade().

Parameters

$sourcestring|WP_Errorrequired
The path to the downloaded package source.
$remote_sourcestringrequired
Remote file source location.

Return

string|WP_Error The source as passed, or a WP_Error object on failure.

Source

public function check_package( $source, $remote_source ) {
	global $wp_filesystem;

	if ( is_wp_error( $source ) ) {
		return $source;
	}

	// Check that the folder contains a valid language.
	$files = $wp_filesystem->dirlist( $remote_source );

	// Check to see if a .po and .mo exist in the folder.
	$po = false;
	$mo = false;
	foreach ( (array) $files as $file => $filedata ) {
		if ( str_ends_with( $file, '.po' ) ) {
			$po = true;
		} elseif ( str_ends_with( $file, '.mo' ) ) {
			$mo = true;
		}
	}

	if ( ! $mo || ! $po ) {
		return new WP_Error(
			'incompatible_archive_pomo',
			$this->strings['incompatible_archive'],
			sprintf(
				/* translators: 1: .po, 2: .mo */
				__( 'The language pack is missing either the %1$s or %2$s files.' ),
				'<code>.po</code>',
				'<code>.mo</code>'
			)
		);
	}

	return $source;
}

Changelog

VersionDescription
3.7.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.