Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2022, 22:30
Новичок на форуме
Отправить личное сообщение для df12 Посмотреть профиль Найти все сообщения от df12
 
Регистрация: 16.09.2022
Сообщений: 5

Как адаптировать этот PHP код?
Здравствуйте, я не очень селён в JavaScript, не могли бы вы мне помочь PHP -> JS
$prefLocales = array_reduce(
    explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']), 
      function ($res, $el) { 
        list($l, $q) = array_merge(explode(';q=', $el), [1]); 
        $res[$l] = (float) $q; 
        return $res; 
      }, []);
    arsort($prefLocales);
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2022, 23:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Тебе для сервера или для клиента?

Если для клиента, то тебе нужен navigator.languages - список языков в порядке предпочтения(но без весов "q=<bullshit>"), или вообще navigator.language - текущий язык.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2022, 10:10
Новичок на форуме
Отправить личное сообщение для df12 Посмотреть профиль Найти все сообщения от df12
 
Регистрация: 16.09.2022
Сообщений: 5

Сообщение от Aetae Посмотреть сообщение
Тебе для сервера или для клиента?
Для сервера.
Ответить с цитированием
  #4 (permalink)  
Старый 17.09.2022, 15:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

df12, тогда нужно больше деталей. На чём у тебя сервер? На express, на чистом http(s) или ещё на чём?

const prefLocales = {}; 

req.headers['accept-language']
  ?.split(',')
  .map(el => {
    const [name, quality] = el.split(';q=');
    return [quality ? +quality : 1, name];
  })
  .sort(([a], [b]) => b - a)
  .reduce((res, [quality, name]) => {
    res[name] = quality;
    return res;
  }, prefLocales);
__________________
29375, 35

Последний раз редактировалось Aetae, 17.09.2022 в 16:31.
Ответить с цитированием
  #5 (permalink)  
Старый 18.09.2022, 11:41
Новичок на форуме
Отправить личное сообщение для df12 Посмотреть профиль Найти все сообщения от df12
 
Регистрация: 16.09.2022
Сообщений: 5

Сообщение от Aetae Посмотреть сообщение
df12, тогда нужно больше деталей. На чём у тебя сервер? На express, на чистом http(s) или ещё на чём?
Next.js
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2022, 11:44
Новичок на форуме
Отправить личное сообщение для df12 Посмотреть профиль Найти все сообщения от df12
 
Регистрация: 16.09.2022
Сообщений: 5

Сообщение от Aetae Посмотреть сообщение
,
const prefLocales = {}; 

req.headers['accept-language']
  ?.split(',')
  .map(el => {
    const [name, quality] = el.split(';q=');
    return [quality ? +quality : 1, name];
  })
  .sort(([a], [b]) => b - a)
  .reduce((res, [quality, name]) => {
    res[name] = quality;
    return res;
  }, prefLocales);
Спасибо, код помог!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сократить код? js123 Общие вопросы Javascript 4 05.07.2019 08:26
Как упростить этот код при использовании jquery ? Нубопрогер Элементы интерфейса 3 15.02.2015 07:20
Как вставить PHP редирект в javascript 87464644764 Общие вопросы Javascript 1 23.07.2013 08:36
Как часть php кода(не весь файл) подгружать через ajax/jquery? strol AJAX и COMET 0 19.02.2012 16:01
Как выполнить код javascript при инклюде странички на php wfire jQuery 7 27.05.2011 14:43