7 static const char *AvailLang[] = {
11 /* TODO: we skip the language weightening so far. */
12 /* Accept-Language: 'de-de,en-us;q=0.7,en;q=0.3' */
13 void httplang_to_locale(const char *LocaleString)
16 char *wanted_locales[10];
19 size_t len = strlen(LocaleString);
22 char *search = (char *) malloc(len);
25 // char *webcitdir = WEBCITDIR;
27 locale_t my_Empty_Locale;
28 memcpy(search, LocaleString, len);
29 search[len + 1] = '\0';
31 /* the web browser sends '-', we need '_' */
32 for (i = 0; i < len; i++)
36 while ((search[i] != '\0') && !done && (nFound < 10)) {
37 if ((search[i] == ',') || (search[i] == ';'))
42 wanted_locales[nFound] = (char *) &search[j];
51 for (i = 0; i <= nFound; i++) {
52 for (j = 0; j < nAvail; j++) {
53 int ret = strncasecmp(wanted_locales[i],
55 strlen(wanted_locales[i]));
57 locale = (char *) AvailLang[j]; //wanted_locales[i];
67 memcpy(search, locale, len);
68 memcpy(&search[len], ".UTF8", 5);
69 search[len + 5] = '\0';
70 my_Empty_Locale = newlocale(LC_ALL_MASK, NULL, NULL); /* create default locale */
71 my_Locale = newlocale(LC_MESSAGES_MASK /*|LC_TIME_MASK FIXME */ ,
72 search, my_Empty_Locale);
75 // freelocale(my_Locale);
76 // freelocale(my_Empty_Locale);