<#--
Locale Header Check - TEMPORARY DIAGNOSTIC FRAGMENT
Contains NO #assign statements. FreeMarker only emits raw header
values into data- attributes using parenthesised chained defaults:
(request.getHeader("X"))!((themeDisplay.getRequest().getHeader("X"))!"__ABSENT__")
The parentheses make the ! default cover the ENTIRE expression, so a
missing `request` object or an uncallable getHeader both fall through
to the next accessor instead of throwing.
All parsing, the rewrite decision and rendering happen in main.js.
The raw Cookie header is deliberately NOT emitted - it contains the
HttpOnly session id. main.js reads document.cookie instead, which
exposes GUEST_LANGUAGE_ID (what we need) but never JSESSIONID.
Delete this fragment and its page once the question is settled.
-->
<#if ((request.getParameter("diag"))!((themeDisplay.getRequest().getParameter("diag"))!"")) == ((configuration.diagKey)!"dh-locale-check")
|| (themeDisplay.isSignedIn())!false
|| ((layoutMode)!"view") != "view">
Diagnostic · mobile-prelogin locale
Locale header check
Open this page from inside the Dubai Health mobile app, once for each language combination in the test matrix, then send the report back.
Server would serve
reading…
Sent by the app server side
- Accept-Language
reading…- Primary tag
reading…- X-App-Language
reading…- User-Agent
reading…- Referer
reading…- X-Forwarded-For
reading…
Resolved by Liferay
- themeDisplay locale
reading…- GUEST_LANGUAGE_ID cookie
reading…
Reported by the browser client side
- navigator.language
reading…- navigator.languages
reading…- Intl resolved locale
reading…- document lang / dir
reading…- Current URL
reading…