I18N: Add a new way to determine whether a translation is available.

A new `has_translation()` function can be used to determine whether a translation exists for a given string.

Props louiswol94, swissspidy, drzraf, ckanitz, tomhine, mchirag2002, samuelsilvapt.
Fixes #52696.


Built from https://develop.svn.wordpress.org/trunk@59029


git-svn-id: http://core.svn.wordpress.org/trunk@58425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Pascal Birchler 2024-09-17 20:58:15 +00:00
parent 90673b9066
commit 56eb5c22d8
3 changed files with 33 additions and 1 deletions

View File

@ -1988,3 +1988,17 @@ function wp_get_word_count_type() {
return $wp_locale->get_word_count_type(); return $wp_locale->get_word_count_type();
} }
/**
* Returns a boolean to indicate whether a translation exists for a given string with optional text domain and locale.
*
* @since 6.7.0
*
* @param string $singular Singular translation to check.
* @param string $textdomain Optional. Text domain. Default 'default'.
* @param ?string $locale Optional. Locale. Default current locale.
* @return bool True if the translation exists, false otherwise.
*/
function has_translation( string $singular, string $textdomain = 'default', ?string $locale = null ): bool {
return WP_Translation_Controller::get_instance()->has_translation( $singular, $textdomain, $locale );
}

View File

@ -434,4 +434,22 @@ final class WP_Translation_Controller {
return $this->loaded_translations[ $locale ][ $textdomain ] ?? array(); return $this->loaded_translations[ $locale ][ $textdomain ] ?? array();
} }
/**
* Returns a boolean to indicate whether a translation exists for a given string with optional text domain and locale.
*
* @since 6.7.0
*
* @param string $singular Singular translation to check.
* @param string $textdomain Optional. Text domain. Default 'default'.
* @param ?string $locale Optional. Locale. Default current locale.
* @return bool True if the translation exists, false otherwise.
*/
public function has_translation( string $singular, string $textdomain = 'default', ?string $locale = null ): bool {
if ( null === $locale ) {
$locale = $this->current_locale;
}
return false !== $this->locate_translation( $singular, $textdomain, $locale );
}
} }

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '6.7-alpha-59028'; $wp_version = '6.7-alpha-59029';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.