<?php

/**
 * Laad alle js teksten uit de po file.
 *
 * Kan dit later ook opgepakt worden via een route.
 *
 * @package CameraNU.nl
 * @author CameraNU.nl
 */

$dontDispatch = true;
include __DIR__ . '/../../../application/bootstrap.php';
$configuration = configuration::getInstance();

$language = $_REQUEST['language'] ?? null;

if ($language === null) {
    $language = $_SESSION['settings']['language'] ?? 'nl';
    session::getInstance()->stop();
}

switch (strtolower($language)) {
    case 'en':
        $lang = 'en_GB.UTF8';
        break;
    case 'de':
        $lang = 'de_DE';
        break;
    case 'fr':
        $lang = 'fr_FR';
        break;
    case 'nl':
    case 'zz':
        $lang = 'nl_NL.UTF8';
        break;
    default:
        $lang = strtolower($language);
        break;
}

putenv('LC_ALL=' . $lang);
$result = setlocale(LC_ALL, $lang);
setlocale(LC_MESSAGES, $lang);
setlocale(LC_CTYPE, $lang);
// Vertel PHP waar de gettext vertaalde bestanden staan
$domain = bindtextdomain('cameranu-interface', APPLICATIONPATH . '/i18n');
$codeset = bind_textdomain_codeset('cameranu-interface', 'UTF-8');
$msgDomain = textdomain('cameranu-interface');

// Kijken of we een 304 terug moeten geven.
$lastModified = max(filemtime(__FILE__), filemtime(APPLICATIONPATH . '/i18n/nl/LC_MESSAGES/cameranu-interface.po'));
$etagFile = md5_file(__FILE__) . $lang;
$ifModifiedSince = ($_SERVER['HTTP_IF_MODIFIED_SINCE'] ?? false);
$etagHeader = (isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false);
$expireTime = (7 * 24 * 60 * 60);

header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT');
header("Etag: $etagFile");
header('Cache-Control: public,max-age=' . $expireTime . ',proxy-revalidate');
header('Expires:' . gmdate('D, d M Y H:i:s', time() + $expireTime) . ' GMT');
header_remove('Pragma');

if (@strtotime($ifModifiedSince) == $lastModified || $etagHeader == $etagFile) {
    header('HTTP/1.1 304 Not Modified');
    exit;
}

//Geef javascript terug. Officieel application, maar helaas, IE8 en lager...
header('Content-type: text/javascript');

$localesArray = [
    // Ongeldige combinatie
    'invalidOrderdataPopOverTitle' => _('Geen geldige combinatie'),

    // Standaard tekst bij een selectbox (Serviceformulier)
    'selectboxDefaultMessage' => _('-- Maak je keuze --'),

    // Verhuurpagina
    'popOverTitle' => _('Validatie probleem'),
    'msgSelectAllDates' => _('Selecteer alle datums'),

    // Dagen
    'Maandag' => ucfirst(_('maandag')),
    'Monday' => ucfirst(_('maandag')),
    'Dinsdag' => ucfirst(_('dinsdag')),
    'Tuesday' => ucfirst(_('dinsdag')),
    'Woensdag' => ucfirst(_('woensdag')),
    'Wednesday' => ucfirst(_('woensdag')),
    'Donderdag' => ucfirst(_('donderdag')),
    'Thursday' => ucfirst(_('donderdag')),
    'Vrijdag' => ucfirst(_('vrijdag')),
    'Friday' => ucfirst(_('vrijdag')),
    'Zaterdag' => ucfirst(_('zaterdag')),
    'Saturday' => ucfirst(_('zaterdag')),
    'Zondag' => ucfirst(_('zondag')),
    'Sunday' => ucfirst(_('zondag')),

    'showAll' => _('Laat alles zien'),
    'showLess' => _('Laat minder zien'),
    'chooseLocation' => _('Kies deze locatie'),

    // Reviews
    'linkReviewSuccess' => _('De review is succesvol aan je account gekoppeld'),
    'linkReviewFailure' => _('Er is iets misgegaan'),

    'selectBank' => _('Er is geen bank geselecteerd'),

    'scroll' => _('Scroll van links naar rechts om alle content te zien'),

    'hour' => _('uur'),
    'hours' => _('uren'),
    'minute' => _('minuut'),
    'minutes' => _('minuten'),
    'and' => _('en'),

    //password strength
    'tooShort' => _('Te kort'),
    'weak' => _('Zwak'),
    'good' => _('Goed'),
    'strong' => _('Sterk'),
    'veryStrong' => _('Zeer sterk'),

    'pickupInOurStores' => _('Ophalen in één van onze acht winkels?'),
    'choosePickupPoint' => _('Kies dit ophaalpunt'),
    'chooseiDealIssuer' => _('Je hebt nog geen bank gekozen'),

    'showMoreInformation' => _('Bekijk meer informatie'),
    'showAllInformation' => _('Klap informatie volledig uit'),
    'showLessInformation' => _('Klap informatie volledig in'),
    'showMoreSets' => _('Bekijk alle voordeelsets'),
    'showLessSets' => _('Bekijk minder voordeelsets'),
    'showMoreReview' => _('Lees volledige review'),
    'showLessReview' => _('Klap review in'),
    'showMoreBox' => _('Bekijk gehele doosinhoud'),
    'showLessBox' => _('Bekijk minder doosinhoud'),
    'showMoreInsurance' => _('Lees meer over verzekeren'),
    'showLessInsurance' => _('Lees minder over verzekeren'),
    'showMoreText' => _('Bekijk meer'),
    'showLessText' => _('Bekijk minder'),

    'goToProduct' => _('Bekijk product'),
    'clearFilters' => _('Wis alle filters'),
    'activeFilters' => _('Actieve filters'),
    'show' => _('Toon'),
    'results' => _('resultaten'),
    'free' => _('Gratis'),
    'back' => _('Terug'),
    'sendWishlist' => _('Je verlanglijstje is verzonden!'),
    'sendWishlistError' => _('Er ging iets mis, probeer het opnieuw!'),
    'onePositive' => _('1 pluspunt per regel'),
    'oneNegative' => _('1 minpunt per regel'),
    'moreItems' => _('Meer tonen'),
    'lessItems' => _('Minder tonen'),
    'allCategories' => _('Alle categorieën'),

    'errorAccessories' => _('Fout in ophalen van accessoires!'),
    'errorVideo' => _('Fout in ophalen van video!'),

    'notNumeric' => _('Dit veld mag niet alleen uit nummers bestaan'),
    'vatNumberRequired' => _('Dit veld is verplicht als je kiest voor BTW vrije levering'),
    'vatNumber' => _('Voer een geldig BTW-nummer in'),

    'naarBetalen' => _('Naar betalen'),
    'payWith' => _('Betalen met'),
    'bestellingPlaatsen' => _('Bestelling plaatsen'),

    'search' => _(' Zoeken... '),

    'paymentError' => _('Er is iets misgegaan. Probeer het opnieuw of neem contact op met onze klantenservice.'),
    'paymentPlaceholder' => _('Kies een optie'),

    'moreAccessories' => _('Toon meer accessoires'),
    'lessAccessories' => _('Toon minder accessoires'),
    'moreCombodeals' => _('Toon meer voordeelsets'),
    'lessCombodeals' => _('Toon minder voordeelsets'),

    'filterSubtitle' => _('Filter binnen %s artikelen'),
    'filterSubmit' => _('Toon %s resultaten'),

    'paymentBack' => _('Andere betaalwijze kiezen'),

    'Gesloten' => _('Gesloten'),
    'Openingstijden' => _('Openingstijden'),

    'phonenumber' => _('Het opgegeven telefoonnummer is niet geldig'),

    'Voer een nummer in van %s of hoger' => _('Voer een nummer in van %s of hoger'),
    'Voer een nummer in van %s of lager' => _('Voer een nummer in van %s of lager'),

    'Bevestig je keuzes' => _('Bevestig je keuzes'),
    'Niets laten retourneren' => _('Niets laten retourneren'),

    'Vorige' => _('Vorige'),
    'Volgende' => _('Volgende'),

    'Je wachtwoord komt niet overeen' => _('Je wachtwoord komt niet overeen'),
];

// Config opties
if ($configuration instanceof configuration) {
    $localesArray['tweakwiseEnvironmentKey'] = $configuration->tweakwise->environmentKey;
}
?>

window.translations = <?= json_encode($localesArray, JSON_THROW_ON_ERROR) ?>;

$(document).ready(function () {
    //Achteraf, liefst NA het laden van de validation scripts
        //Validator strings worden automatisch geladen, uit het jQuery.validator object.
        if (jQuery && jQuery.validator) {
            jQuery.validator.popoverTitle = '<?= _('Validatie probleem') ?>';
            if (jQuery.validator.messages) {
            jQuery.validator.messages.valueNotEquals = '<?= _('Kies een geldige optie') ?>';
            jQuery.validator.messages.minWords = '<?= _('Minimaal {0} woorden verplicht') ?>';
            jQuery.validator.messages.btwNumber = '<?= _('Geen geldig btw-nummer') ?>';
            jQuery.validator.messages.DateFormat = '<?= _('Gebruik de volgende structuur: dd-mm-jjjj') ?>';
            jQuery.validator.messages.disablePast = '<?= _('Geen geldige datum') ?>';
            jQuery.validator.messages.postal = '<?= _('Geen geldige postcode') ?>';
        }
    }
});
