X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Froundcube-core.config;h=4914ae781e81e2b8bce6a49acb88796fa1eb20e3;hb=5d44896a1af845d9b9fc0ab9e5b3708e94233496;hp=c5ef209aa49f1eaa9d1864cebca781df8ee1820b;hpb=41bb5e5480326673d34e7019e6561b06ddc5802d;p=roundcube.git diff --git a/debian/roundcube-core.config b/debian/roundcube-core.config index c5ef209..4914ae7 100644 --- a/debian/roundcube-core.config +++ b/debian/roundcube-core.config @@ -10,23 +10,31 @@ db_go || true # 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 - # 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 +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