#define SEARCH_LANG 20 /* how many langs should we parse? */
#ifdef ENABLE_NLS
-#include "language_list.h"
+/* actual supported locales */
+const char *AvailLang[] = {
+ "C",
+ "bg_BG",
+ "cs_CZ",
+ "en_US",
+ "da_DK",
+ "de_DE",
+ "el_GR",
+ "en_GB",
+ "es_ES",
+ "et_EE",
+ "fi_FI",
+ "fr_FR",
+ "hu_HU",
+ "it_IT",
+ "nl_NL",
+ "pt_BR",
+ "ru_RU",
+ "zh_CN",
+ "he_IL",
+ "kk_KK",
+ "ro_RO",
+ "sl_SL",
+ "tr_TR",
+ ""
+};
const char **AvailLangLoaded;
long nLocalesLoaded = 0;
*/
void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP)
{
-#ifdef HAVE_USELOCALE
int i;
+#ifndef HAVE_USELOCALE
+ char *Lang = getenv("LANG");
+
+ if (Lang == NULL)
+ Lang = "C";
+#endif
+
+ if (nLocalesLoaded == 1) {
+ wc_printf("<p>%s</p>", AvailLangLoaded[0]);
+ return;
+ }
wc_printf("<select name=\"language\" id=\"lname\" size=\"1\" onChange=\"switch_to_lang($('lname').value);\">\n");
for (i=0; i < nLocalesLoaded; ++i) {
+#ifndef HAVE_USELOCALE
+ if (strcmp(AvailLangLoaded[i], Lang) == 0)
+#endif
wc_printf("<option %s value=%s>%s</option>\n",
((WC->selected_language == i) ? "selected" : ""),
AvailLangLoaded[i],
}
wc_printf("</select>\n");
-#else
- wc_printf("%s", (getenv("LANG") ? getenv("LANG") : "C"));
-#endif
}
/*
wc_locales[nLocalesLoaded] = newlocale(
(LC_MESSAGES_MASK|LC_TIME_MASK),
AvailLang[i],
- NULL
+ wc_locales[0]
);
if (wc_locales[nLocalesLoaded] == NULL) {
- syslog(1, "locale for %s disabled: %s", AvailLang[i], strerror(errno));
+ syslog(1, "locale for %s disabled: %s (domain: %s, path: %s)",
+ AvailLang[i],
+ strerror(errno),
+ textdomain(NULL),
+ bindtextdomain(textdomain(NULL), NULL)
+ );
}
else {
syslog(3, "Found locale: %s", AvailLang[i]);