PhantomJS - неправильный язык в Google Analytics (Accept-Language)

Я провожу несколько тестов с PhantomJS/CasperJS в Ubuntu и Google Analytics, и у меня возникают проблемы с GA, чтобы правильно распознать мои языковые настройки, которые я отправляю в заголовках HTTP-запросов.

Независимо от того, что я ввожу в свой заголовок Accept-Language, я получаю, что GA классифицирует язык как «c».

PhantomJS - неправильный язык в Google Analytics (Accept-Language)

Я уверен, что мои заголовки Accept-Language верны, вот пример:

ACCEPT-ENCODING:gzip, deflate
CONNECTION:Keep-Alive
ACCEPT-LANGUAGE:en-US
USER-AGENT:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

После долгих часов проб и ошибок я обнаружил, что C на самом деле является настройкой по умолчанию для переменной env LANG внутри самой Ubuntu:

LANG=C.UTF-8

На самом деле я могу повлиять на классификацию Google Analytics, изменив свои переменные ENV с помощью следующей команды из командной строки:

export LC_ALL = "en_US.UTF-8"

Это не работает, если я устанавливаю только «экспорт LC_LANG» или «LANGUAGE». Я тоже не уверен, почему.

Но как мне управлять этим параметром изнутри PhantomJS/CasperJS? я не могу/не хочу менять свои переменные ENV для каждого запуска PhantomJS из CLI, я тестирую несколько языков одновременно в больших количествах.

Кто-нибудь сталкивался с этим и может помочь?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
58
1

Ответы 1

Мне удалось найти хакерское решение этой проблемы. Я просто использую следующую команду из CLI:

$ LC_ALL=en-gb phantomjs script.js

и это правильно передает Accept-Language в Google Analytics.

Я думаю, что есть проблема с правильной передачей заголовков запросов CasperJS в PhantomJS.

Другие вопросы по теме