Определение языков , установленных , может быть не совсем возможным ...
... Но вы можете определить, какие языки пользователь желает получить с веб-сайтов - то есть, вообще, какие языки он может понимать.
Большинство браузеров отправляют заголовок HTTP с именем "Accept-Language
", который может иметь значение, например "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
" (это то, что мой текущий браузер отправляет на веб-сайты, которые я посещаю)
На стороне PHP вы можете получить это в массиве $_SERVER
:
var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
Будет выводить:
string 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' (length=35)
Здесь указано, что я хочу, чтобы сайты отправляли мне контент на французском языке; но я также принимаю английский (желательно американский английский, но я тоже в порядке с простым английским по умолчанию)
Вы можете найти довольно много примеров того, как разобрать это в PHP; например: Parse Accept-Language для определения языка пользователя .
Используя код, приведенный в этой статье, я получаю этот массив языков:
array
'fr' => int 1
'fr-fr' => string '0.8' (length=3)
'en-us' => string '0.5' (length=3)
'en' => string '0.3' (length=3)
то есть:
- Я предпочитаю французский
- если "fr" невозможен, мне нравится "french from France"
- если это тоже невозможно, я принимаю "английский из США"
- и если это тоже невозможно, я в порядке с "english"
И если веб-сайт не может обслуживать ни одного из этих ... Ну, я полагаю, у меня нет большого выбора, и я получу все, что захочет, чтобы отправить мне ...