%PDF- %PDF-
Direktori : /var/www/arphotolab.eco-n-tech.co.uk/wp-content/plugins/polylang/admin/ |
Current File : /var/www/arphotolab.eco-n-tech.co.uk/wp-content/plugins/polylang/admin/admin-strings.php |
<?php /** * @package Polylang */ /** * A fully static class to manage strings translations on admin side * * @since 1.6 */ class PLL_Admin_Strings { /** * Stores the strings to translate. * * @var array { * @type string $name A unique name for the string. * @type string $string The actual string to translate. * @type string $context The group in which the string is registered. * @type bool $multiline Whether the string table should display a multiline textarea or a single line input. * } */ protected static $strings = array(); /** * The strings to register by default. * * @var string[] */ protected static $default_strings; /** * Add filters * * @since 1.6 * * @return void */ public static function init() { // default strings translations sanitization add_filter( 'pll_sanitize_string_translation', array( __CLASS__, 'sanitize_string_translation' ), 10, 2 ); } /** * Register strings for translation making sure it is not duplicate or empty * * @since 0.6 * * @param string $name A unique name for the string * @param string $string The string to register * @param string $context Optional, the group in which the string is registered, defaults to 'polylang' * @param bool $multiline Optional, whether the string table should display a multiline textarea or a single line input, defaults to single line * @return void */ public static function register_string( $name, $string, $context = 'Polylang', $multiline = false ) { if ( $string && is_scalar( $string ) ) { self::$strings[ md5( $string ) ] = compact( 'name', 'string', 'context', 'multiline' ); } } /** * Get registered strings * * @since 0.6.1 * * @return array list of all registered strings */ public static function &get_strings() { self::$default_strings = array( 'widget_title' => __( 'Widget title', 'polylang' ), 'widget_text' => __( 'Widget text', 'polylang' ), ); // Widgets titles global $wp_registered_widgets; $sidebars = wp_get_sidebars_widgets(); foreach ( $sidebars as $sidebar => $widgets ) { if ( 'wp_inactive_widgets' == $sidebar || empty( $widgets ) ) { continue; } foreach ( $widgets as $widget ) { // Nothing can be done if the widget is created using pre WP2.8 API :( // There is no object, so we can't access it to get the widget options if ( ! isset( $wp_registered_widgets[ $widget ]['callback'][0] ) || ! is_object( $wp_registered_widgets[ $widget ]['callback'][0] ) || ! method_exists( $wp_registered_widgets[ $widget ]['callback'][0], 'get_settings' ) ) { continue; } $widget_settings = $wp_registered_widgets[ $widget ]['callback'][0]->get_settings(); $number = $wp_registered_widgets[ $widget ]['params'][0]['number']; // Don't enable widget translation if the widget is visible in only one language or if there is no title if ( empty( $widget_settings[ $number ]['pll_lang'] ) ) { if ( isset( $widget_settings[ $number ]['title'] ) && $title = $widget_settings[ $number ]['title'] ) { self::register_string( self::$default_strings['widget_title'], $title, 'Widget' ); } if ( isset( $widget_settings[ $number ]['text'] ) && $text = $widget_settings[ $number ]['text'] ) { self::register_string( self::$default_strings['widget_text'], $text, 'Widget', true ); } } } } /** * Filter the list of strings registered for translation * Mainly for use by our PLL_WPML_Compat class * * @since 1.0.2 * * @param array $strings list of strings */ self::$strings = apply_filters( 'pll_get_strings', self::$strings ); return self::$strings; } /** * Performs the sanitization ( before saving in DB ) of default strings translations * * @since 1.6 * * @param string $translation translation to sanitize * @param string $name unique name for the string * @return string */ public static function sanitize_string_translation( $translation, $name ) { if ( $name == self::$default_strings['widget_title'] ) { $translation = sanitize_text_field( $translation ); } if ( $name == self::$default_strings['widget_text'] && ! current_user_can( 'unfiltered_html' ) ) { $translation = wp_kses_post( $translation ); } return $translation; } }