# Retrieve all available languages
instd_langs=$(echo /usr/share/roundcube/program/localization/*/messages.inc | \
sed 's+[^ ]*/\([^ ]*\)/messages.inc+\1,+g' | sed 's+,$++')
-# Retrieve the old list
-db_metaget roundcube/language languages && oldchoices="$RET"
-if [ ! "$oldchoices" ] || [ "$instd_langs" != "$oldchoices" ]; then
- db_subst roundcube/language languages $instd_langs
- db_fset roundcube/language seen false
- # Firs try to get the current choice in case of preseeding
- db_get roundcube/language || true
- locale="$RET"
- if [ -n $locale -a -d /usr/share/roundcube/program/localization/$locale ]; then
- db_set roundcube/language $locale
- else
- # Try to guess the locale
- locale=$(echo $LANG | sed 's/[@\.].*//')
- if [ -d /usr/share/roundcube/program/localization/$locale ]; then
- db_set roundcube/language $locale
- else
- locale=$(echo $locale | sed 's/_.*//')
- if [ -d /usr/share/roundcube/program/localization/$locale ]; then
- db_set roundcube/language $locale
- else
- db_set roundcube/language en_US
- fi
- fi
- fi
+db_subst roundcube/language languages $instd_langs
+# First try to get the current choice in case of preseeding or if the
+# question has already been asked
+db_get roundcube/language || true
+locale="$RET"
+if [ -n "$locale" -a -d "/usr/share/roundcube/program/localization/$locale" ]; then
+ # We get our answer (db_set should be useless in fact)
+ db_set roundcube/language $locale
+else
+ # Either we never answered the question or the locale does not
+ # exist any more. In both cases, we do as if we never seen the
+ # question.
+ db_fset roundcube/language seen false
+ # Try to guess the locale
+ locale=$(echo $LANG | sed 's/[@\.].*//')
+ if [ -d /usr/share/roundcube/program/localization/$locale ]; then
+ db_set roundcube/language $locale
+ else
+ locale=$(echo $locale | sed 's/_.*//')
+ if [ -d /usr/share/roundcube/program/localization/$locale ]; then
+ db_set roundcube/language $locale
+ else
+ db_set roundcube/language en_US
+ fi
+ fi
fi
# Ask the question
db_input medium roundcube/language || true
db_go || true
if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
- dbc_dbtypes="mysql, pgsql, sqlite"
+ dbc_dbtypes="sqlite, mysql, pgsql"
dbc_authmethod_user="password"
. /usr/share/dbconfig-common/dpkg/config
dbc_go roundcube $@