<?php
session_start();
header('Cache-control: private');

if (isset($_GET['lang'])) {
    $langcode = $_GET['lang'];

    $_SESSION['lang'] = $langcode;

    setcookie('lang', $langcode, time() + (3600 * 24 * 60));

    header("Location: {$_SERVER['PHP_SELF']}");
} else if (isset($_SESSION['lang'])) {
    $langcode = $_SESSION['lang'];
} else if (isset($_COOKIE['lang'])) {
    $langcode = $_COOKIE['lang'];
} else if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    $langcode = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
} else {
    $langcode = "en";
}

if (!file_exists(getLanguagePath($langcode)))
    $langcode = "en";

require_once getLanguagePath($langcode);

function getLanguagePath($langcode) {
    return __DIR__ . '/../config/languages/lang.' . $langcode . '.php';
}

function tl($pattern, $args = null) {
    echo translate($pattern, $args);
}

function translate($pattern, $args = null) {

    if (!$args) {
        return $pattern;
    }

    $size = count($args);

    for ($i = 0; $i < $size; $i++) {
        $pattern = str_ireplace('{' . $i . '}', $args[$i], $pattern);
    }

    return $pattern;
}