Selaa lähdekoodia

Fixing translation

svalavuo 5 päivää sitten
vanhempi
sitoutus
9c1d6c4e48
1 muutettua tiedostoa jossa 16 lisäystä ja 6 poistoa
  1. 16 6
      includes/translation.php

+ 16 - 6
includes/translation.php

@@ -24,16 +24,19 @@ class Translation {
     }
     
     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;
         }
         
         // Check URL parameter
         if (isset($_GET['lang']) && isset($this->supportedLanguages[$_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
             $this->loadTranslations();
@@ -67,7 +70,10 @@ class Translation {
             $browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
             if (isset($this->supportedLanguages[$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;
             }
         }
@@ -123,7 +129,11 @@ class Translation {
     public function setLanguage($language) {
         if (isset($this->supportedLanguages[$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();
             return true;
         }