Manage user language and language files in php

You can also get language settings from database as well. If the user has set it in the database, then that language should have priority over cookie settings since user could have changed it from a different computer. Best order of priority:database, $_GET(changed by user) , $_SESSION, $_COOKIE, browser.


//php
$lang_file = "profile";

//check if language settings were saved
if (!isset($_COOKIE["language"])) {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
} else {
    $lang = $_COOKIE["language"];
}

//check if user changed the language
if (isset($_GET["language"]) && (($_GET["language"] == "French")OR ( $_GET["language"] == "french")OR ( $_GET["language"] == "fr"))) {
    $lang = "fr";
} else if (isset($_GET["language"]) && (($_GET["language"] == "English")OR ( $_GET["language"] == "english")OR ( $_GET["language"] == "en"))) {
    $lang = "en";
}

//update language
setcookie("language", $lang);

switch ($lang) {
    case "fr":
        $lang_id = "2";
        require("/folder/languages/french/main.php"); 
        require("/folder/languages/french/".$lang_file.".php"); 
        break;
    case "en":
        $lang_id = "1";
        require("/folder/languages/english/main.php"); 
        require("/folder/languages/english/".$lang_file.".php"); 
        break;
    default:
        $lang_id = "1";
        require("/folder/languages/english/main.php"); 
        require("/folder/languages/english/".$lang_file.".php"); 
        break;
}

Be the first to comment “Manage user language and language files in php”

This site uses Akismet to reduce spam. Learn how your comment data is processed.