<?php


namespace ColibriWP\Theme;

use ColibriWP\Theme\Core\Hooks;

class Translations {
	protected static $texts = array();

	public static function load() {
		$texts         = require_once Theme::rootDirectory() . '/inc/translations.php';
		static::$texts = Hooks::prefixed_apply_filters( 'translations', $texts );
	}

	public static function e( $key, $params = array() ) {
		static::render( $key, $params );
	}

	public static function render( $key, $params = array() ) {
		echo static::get( $key, $params );
	}

	public static function get( $key, $params = array() ) {
		$text = "__[{$key}]__";
		if ( isset( static::$texts[ $key ] ) ) {
			$text = static::$texts[ $key ];
		}
		$params = (array) $params;

		if ( empty( $params ) ) {
			return $text;
		}

		array_unshift( $params, $text );

		return call_user_func_array( 'sprintf', $params );
	}

	public static function escHtmlE( $key, $params = array() ) {
		echo static::escHtml( $key, $params );
	}

	public static function escHtml( $key, $params = array() ) {
		return esc_html( static::get( $key, $params ) );
	}

	public static function escAttrE( $key, $params = array() ) {
		echo esc_attr( static::get( $key, $params ) );
	}

	public static function translate( $key, $params = array() ) {
		return static::get( $key, $params );
	}

	public static function all() {
		return static::$texts;
	}
}






