CodeIgniter Forums
Auto select language based on browser language - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: General Help (https://forum.codeigniter.com/forumdisplay.php?fid=24)
+--- Thread: Auto select language based on browser language (/showthread.php?tid=74309)



Auto select language based on browser language - gesdinet - 09-08-2019

I have a site made in 4 languages. I need to select automatically based on browser language (better than country, I imagine). Any idea? Thanks


RE: Auto select language based on browser language - InsiteFX - 09-09-2019

Add this to one of your helpers.

PHP Code:
<?php
/**
 * Get browser language, given an array of avalaible languages.
 * 
 * @param  [array]   $available  Avalaible languages for the site
 * @param  [string]  $default    Default language for the site
 * @return [string]              Language code/prefix
 */

if ( ! function_exists('getBrowserLanguage'))
{
    function getBrowserLanguage($available = [], $default 'en')
    {
        if ( ! empty($_SERVER['HTTP_ACCEPT_LANGUAGE']))
        {
            $langs explode(','$_SERVER['HTTP_ACCEPT_LANGUAGE']);

            if (empty($available))
            {
                return substr($lang02);
            }

            foreach ($langs as $lang)
            {
                $lang substr($lang02);

                if (in_array($lang$available))
                {
                    return $lang;
                }
            }
        }
    
        return $default;
    }


Detects the web browsers languages.


RE: Auto select language based on browser language - mboufos - 09-09-2019

well, you can use agent --> accept_lang to check what language is accepted
https://codeigniter.com/user_guide/libraries/user_agent.html

Tongue