59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
// include/language.php
|
|
|
|
// Configure session settings before starting session
|
|
ini_set('session.cookie_httponly', 1);
|
|
ini_set('session.use_strict_mode', 1);
|
|
ini_set('session.cookie_secure', isset($_SERVER['HTTPS']) ? 1 : 0);
|
|
|
|
// Set default session cookie lifetime to 24 hours (86400 seconds)
|
|
ini_set('session.cookie_lifetime', 86400);
|
|
ini_set('session.gc_maxlifetime', 86400);
|
|
|
|
session_start();
|
|
|
|
// The $pdo object is available from init.php which included this file.
|
|
// Get language setting from database
|
|
try {
|
|
$stmt = $pdo->query("SELECT value FROM settings WHERE key = 'language'");
|
|
$language = $stmt->fetchColumn();
|
|
|
|
// Also fetch debug mode setting here
|
|
$stmt = $pdo->query("SELECT value FROM settings WHERE key = 'debug_mode'");
|
|
$debug_mode = $stmt->fetchColumn();
|
|
|
|
} catch (Exception $e) {
|
|
// If database/table doesn't exist yet, default to English and debug off
|
|
$language = 'en';
|
|
$debug_mode = '0';
|
|
}
|
|
$language = $language ?: 'en';
|
|
$debug_mode = $debug_mode ?: '0';
|
|
|
|
|
|
// Set error reporting based on debug mode
|
|
if ($debug_mode === '1') {
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
} else {
|
|
ini_set('display_errors', 0);
|
|
ini_set('display_startup_errors', 0);
|
|
error_reporting(0);
|
|
}
|
|
|
|
// Load the language file
|
|
$lang_file = __DIR__ . "/../lang/{$language}.php";
|
|
if (file_exists($lang_file)) {
|
|
$translations = require $lang_file;
|
|
} else {
|
|
// Fallback to English if the language file doesn't exist
|
|
$translations = require __DIR__ . '/../lang/en.php';
|
|
}
|
|
|
|
// Function to get a translated string
|
|
function translate($key) {
|
|
global $translations;
|
|
return $translations[$key] ?? $key;
|
|
}
|