|
@@ -24,16 +24,19 @@ class Translation {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private function detectLanguage() {
|
|
private function detectLanguage() {
|
|
|
- // Check if language is set in session
|
|
|
|
|
- if (isset($_SESSION['language']) && isset($this->supportedLanguages[$_SESSION['language']])) {
|
|
|
|
|
- $this->currentLanguage = $_SESSION['language'];
|
|
|
|
|
|
|
+ // Check if language is set in cookie
|
|
|
|
|
+ if (isset($_COOKIE['language']) && isset($this->supportedLanguages[$_COOKIE['language']])) {
|
|
|
|
|
+ $this->currentLanguage = $_COOKIE['language'];
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Check URL parameter
|
|
// Check URL parameter
|
|
|
if (isset($_GET['lang']) && isset($this->supportedLanguages[$_GET['lang']])) {
|
|
if (isset($_GET['lang']) && isset($this->supportedLanguages[$_GET['lang']])) {
|
|
|
$this->currentLanguage = $_GET['lang'];
|
|
$this->currentLanguage = $_GET['lang'];
|
|
|
- $_SESSION['language'] = $this->currentLanguage;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Set cookie for language preference (expires in 1 year)
|
|
|
|
|
+ setcookie('language', $this->currentLanguage, time() + 31536000, '/', '', false, true);
|
|
|
|
|
+ $_COOKIE['language'] = $this->currentLanguage;
|
|
|
|
|
|
|
|
// Load translations for the new language immediately
|
|
// Load translations for the new language immediately
|
|
|
$this->loadTranslations();
|
|
$this->loadTranslations();
|
|
@@ -67,7 +70,10 @@ class Translation {
|
|
|
$browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
|
$browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
|
|
if (isset($this->supportedLanguages[$browserLang])) {
|
|
if (isset($this->supportedLanguages[$browserLang])) {
|
|
|
$this->currentLanguage = $browserLang;
|
|
$this->currentLanguage = $browserLang;
|
|
|
- $_SESSION['language'] = $this->currentLanguage;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Set cookie for browser language preference
|
|
|
|
|
+ setcookie('language', $this->currentLanguage, time() + 31536000, '/', '', false, true);
|
|
|
|
|
+ $_COOKIE['language'] = $this->currentLanguage;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -123,7 +129,11 @@ class Translation {
|
|
|
public function setLanguage($language) {
|
|
public function setLanguage($language) {
|
|
|
if (isset($this->supportedLanguages[$language])) {
|
|
if (isset($this->supportedLanguages[$language])) {
|
|
|
$this->currentLanguage = $language;
|
|
$this->currentLanguage = $language;
|
|
|
- $_SESSION['language'] = $language;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Set cookie for language preference (expires in 1 year)
|
|
|
|
|
+ setcookie('language', $language, time() + 31536000, '/', '', false, true);
|
|
|
|
|
+ $_COOKIE['language'] = $language;
|
|
|
|
|
+
|
|
|
$this->loadTranslations();
|
|
$this->loadTranslations();
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|