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().


Top ↑

Parameters

$source string|WP_Error Required
The path to the downloaded package source.
$remote_source string Required
Remote file source location.

Top ↑

Return

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


Top ↑

Source

File: wp-admin/includes/class-language-pack-upgrader.php. View all references

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;
}


Top ↑

Changelog

Changelog
Version Description
3.7.0 Introduced.

Top ↑

User Contributed Notes

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