<?php
/**
* WPML interoperability handler.
*
* WIP - this stub is to be filled with everything WPML-related.
* Look into: vendor/toolset/types/embedded/includes/wpml.php
*
* @since 2.2.9
*/
class Types_Interop_Handler_Wpml implements Types_Interop_Handler_Interface {
private static $instance;
private function __construct() { }
private function __clone() { }
public static function initialize() {
self::get_instance();
}
public static function get_instance() {
if( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Check whether the current language is the default one.
*
* The result is cached for better performance.
*
* @return bool
* @since 2.2.9
*/
public function is_current_language_default() {
static $result = null;
if( null === $result ) {
$current_language = apply_filters( 'wpml_current_language', null );
$default_language = apply_filters( 'wpml_default_language', null );
$result = ( $current_language === $default_language );
}
return $result;
}
/**
* Get translation of string.
*
* @param string $string The original string value to translate
* @param string $string_name String name
* @param string $domain String domain
*
* @link https://wpml.org/wpml-hook/wpml_translate_single_string/
*
* @return false|string Translated string or false if no such string is registered.
* @since 2.2.9
*/
public function get_translation( $string, $string_name, $domain ) {
// check if translation exists
$is_registered = apply_filters(
'wpml_string_id',
null,
array(
'context' => $domain,
'name' => $string_name
)
);
if ( $is_registered === null ) {
return false;
}
// string is registered, return translation
return apply_filters(
'wpml_translate_single_string',
$string,
$domain,
$string_name
);
}
}