Scan for language files during bootstrap instead of using a hard-coded list.
authorArt Cancro <ajc@uncensored.citadel.org>
Thu, 23 Feb 2012 05:31:41 +0000 (00:31 -0500)
committerArt Cancro <ajc@uncensored.citadel.org>
Thu, 23 Feb 2012 05:31:41 +0000 (00:31 -0500)
webcit/.gitignore
webcit/gettext.c
webcit/mk_module_init.sh

index 2be77a2f282fe9c78f6dda262b9cb7abe2415447..042f838f2b67e6a88b083b95c8d7fe28f76430a5 100644 (file)
@@ -13,6 +13,7 @@ ical_maps.c
 locale/
 modules_init.c
 modules_init.h
+language_list.c
 po/Makefile
 setup
 sysdep.h
index 4df641a28e7ce01f4eb1a8fda82878ae59140fa1..1e51e93acfc075106e1b5af2bd01205bbc5b300a 100644 (file)
 #define SEARCH_LANG 20         /* how many langs should we parse? */
 
 #ifdef ENABLE_NLS
-/* 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",
-       ""
-};
+#include "language_list.h"
 
 const char **AvailLangLoaded;
 long nLocalesLoaded = 0;
@@ -312,12 +286,7 @@ void initialize_locales(void) {
                        wc_locales[0]
                );
                if (wc_locales[nLocalesLoaded] == NULL) {
-                       syslog(1, "locale for %s disabled: %s (domain: %s, path: %s)",
-                               AvailLang[i],
-                               strerror(errno),
-                               textdomain(NULL),
-                               bindtextdomain(textdomain(NULL), NULL)
-                       );
+                       syslog(1, "locale for %s disabled: %s", AvailLang[i], strerror(errno));
                }
                else {
                        syslog(3, "Found locale: %s", AvailLang[i]);
index ae1cd375133a4c594c57fc073610fed36459eab6..6f6871bf20d147cf90d2461659b463677cb735fd 100755 (executable)
@@ -26,6 +26,7 @@ H_FILE="$CUR_DIR/modules_init.h"
 MOD_FILE="$CUR_DIR/Make_modules"
 SRC_FILE="$CUR_DIR/Make_sources"
 U_FILE="$CUR_DIR/modules_upgrade.c"
+L_FILE="$CUR_DIR/language_list.h"
 
 /usr/bin/printf "Scanning extension modules for entry points.\n"
 
@@ -501,3 +502,25 @@ cat <<EOF  >> $H_FILE
 #endif /* MODULES_INIT_H */
 
 EOF
+
+
+### Now see what language modules we have installed ###
+/usr/bin/printf "Scanning language modules.\n"
+
+cat >$L_FILE <<EOF
+/* This file is generated automatically by mk_module_init.sh
+ * Editing it by hand would be an exercise in futility.
+ */
+const char *AvailLang[] = {
+        "C",
+EOF
+
+for x in po/webcit/*.po
+do
+       echo \  \"`basename $x | sed s/\.po\$//g`\",
+done >>$L_FILE
+
+cat >>$L_FILE <<EOF
+        ""
+};
+EOF