You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.5 KiB
87 lines
2.5 KiB
<?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 array( |
|
'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' |
|
), |
|
); |
|
} |
|
}
|
|
|