| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <?php/** * WPSEO plugin file. * * @package WPSEO\Internals * @since   5.9.0 *//** * Group of language utility methods for use by WPSEO. * All methods are static, this is just a sort of namespacing class wrapper. */class WPSEO_Language_Utils {	/**	 * Returns the language part of a given locale, defaults to english when the $locale is empty.	 *	 * @param string $locale The locale to get the language of.	 *	 * @return string The language part of the locale.	 */	public static function get_language( $locale = null ) {		$language = 'en';		if ( empty( $locale ) || ! is_string( $locale ) ) {			return $language;		}		$locale_parts = explode( '_', $locale );		if ( ! empty( $locale_parts[0] ) && ( strlen( $locale_parts[0] ) === 2 || strlen( $locale_parts[0] ) === 3 ) ) {			$language = $locale_parts[0];		}		return $language;	}	/**	 * Returns the user locale for the language to be used in the admin.	 *	 * WordPress 4.7 introduced the ability for users to specify an Admin language	 * different from the language used on the front end. This checks if the feature	 * is available and returns the user's language, with a fallback to the site's language.	 * Can be removed when support for WordPress 4.6 will be dropped, in favor	 * of WordPress get_user_locale() that already fallbacks to the site's locale.	 *	 * @return string The locale.	 */	public static function get_user_locale() {		if ( function_exists( 'get_user_locale' ) ) {			return get_user_locale();		}		return get_locale();	}	/**	 * Returns the full name for the sites' language.	 *	 * @return string The language name.	 */	public static function get_site_language_name() {		require_once ABSPATH . 'wp-admin/includes/translation-install.php';		$translations = wp_get_available_translations();		$locale       = get_locale();		$language     = isset( $translations[ $locale ] ) ? $translations[ $locale ]['native_name'] : 'English (US)';		return $language;	}	/**	 * Returns the l10n array for the knowledge graph company info missing.	 *	 * @return array The l10n array.	 */	public static function get_knowledge_graph_company_info_missing_l10n() {		return [			'URL'     => esc_url( WPSEO_Shortlinker::get( 'https://yoa.st/3r3' ) ),			/* translators: 1: expands to a link opening tag; 2: expands to a link closing tag */			'message' => esc_html__(				'A company name and logo need to be set for structured data to work properly. %1$sLearn more about the importance of structured data.%2$s',				'wordpress-seo'			),		];	}}
 |