<?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;
    }
}
