"fr_FR",
"nl_NL",
"pt_BR"
+ "hu_HU"
};
const char *AvailLangLoaded[NUM_LANGS];
* \param LocaleString the string from the browser http headers
*/
-void httplang_to_locale(StrBuf *LocaleString)
+void httplang_to_locale(StrBuf *LocaleString, wcsession *sess)
{
LangStruct wanted_locales[SEARCH_LANG];
LangStruct *ls;
int nParts;
StrBuf *Buf = NULL;
StrBuf *SBuf = NULL;
-
+
nParts=StrBufNum_tokens(LocaleString,',');
for (i=0; ((i<nParts)&&(i<SEARCH_LANG)); i++)
{
/** fall back to C */
nBest=0;
}
- WC->selected_language=nBest;
+ sess->selected_language=nBest;
lprintf(9, "language found: %s\n", AvailLangLoaded[WC->selected_language]);
FreeStrBuf(&Buf);
FreeStrBuf(&SBuf);
(wcsession *sess)
{
#ifdef ENABLE_NLS
- void *vLine;
-
- if (GetHash(WC->headers, HKEY("ACCEPT-LANGUAGE"), &vLine) &&
- (vLine != NULL)) {
- StrBuf *accept_language = (StrBuf*) vLine;
- httplang_to_locale(accept_language);
+ OneHttpHeader *vLine = NULL;
+
+ if ( (sess->Hdr->HTTPHeaders != NULL)
+ && GetHash(sess->Hdr->HTTPHeaders, HKEY("ACCEPT-LANGUAGE"), (void *)&vLine)
+ && (vLine != NULL)
+ && (vLine->Val != NULL)
+ ) {
+ StrBuf *accept_language = vLine->Val;
+ httplang_to_locale(accept_language, sess);
}
#endif
}