<?php
class wfWAFI18n {
/**
* @var self
*/
protected static $instance;
/**
* @param string $text
* @return string
*/
public static function __($text) {
return self::getInstance()->getI18nEngine()->__($text);
}
public static function esc_html__($text) {
return htmlentities(self::__($text), ENT_QUOTES, 'UTF-8');
}
public static function esc_html_e($text) {
echo self::esc_html__($text);
}
/**
* @return self
*/
public static function getInstance() {
if (!self::$instance) {
self::$instance = new self(new wfWAFI18nEngineDefault());
}
return self::$instance;
}
/**
* @param self $i18nEngine
*/
public static function setInstance($i18nEngine) {
self::$instance = $i18nEngine;
}
/** @var wfWAFI18nEngine */
private $i18nEngine;
/**
* @param wfWAFI18nEngine $i18nEngine
*/
public function __construct($i18nEngine) {
$this->i18nEngine = $i18nEngine;
}
/**
* @return wfWAFI18nEngine
*/
public function getI18nEngine() {
return $this->i18nEngine;
}
/**
* @param wfWAFI18nEngine $i18nEngine
*/
public function setI18nEngine($i18nEngine) {
$this->i18nEngine = $i18nEngine;
}
}
class wfWAFI18nEngineDefault implements wfWAFI18nEngine {
/**
* @param string $text
* @return string
*/
public function __($text) {
return $text;
}
}
interface wfWAFI18nEngine {
/**
* @param string $text
* @return string
*/
public function __($text);
}