Ok! Όταν επιστρέψω στο σπίτι θα το δοκιμάσω.
-- Inviato dal mio cellulare Android con K-9 Mail.

Savvas Radevic <vice...@gmail.com> ha scritto:

Ευχαριστώ για την αλλαγή :)

Δίνω τον κώδικα για το Y/N input (cmdline/apt-get.cc):

// YnPrompt - Yes No Prompt.                        /*{{{*/
// ---------------------------------------------------------------------
/* Returns true on a Yes.*/
bool YnPrompt(bool Default=true)
{
   if (_config->FindB("APT::Get::Assume-Yes",false) == true)
   {
      c1out << _("Y") << endl;
      return true;
   }
   else if (_config->FindB("APT::Get::Assume-No",false) == true)
   {
      c1out << _("N") << endl;
      return false;
   }

   char response[1024] = "";
   cin.getline(response, sizeof(response));

   if (!cin)
      return false;

   if (strlen(response) == 0)
      return Default;

   regex_t Pattern;
   int Res;

   Res = regcomp(&Pattern, nl_langinfo(YESEXPR),
                 REG_EXTENDED|REG_ICASE|REG_NOSUB);

   if (Res != 0) {
      char Error[300];        
      regerror(Res,&Pattern,Error,sizeof(Error));
      return _error->Error(_("Regex compilation error - %s"),Error);
   }
   
   Res = regexec(&Pattern, response, 0, NULL, 0);
   if (Res == 0)
      return true;
   return false;
}


Κοιτώντας το nl_langinfo(YESEXPR), φαίνεται να χρησιμοποιεί το locale variable 
YESEXPR...
Ανήκει στην κατηγορία LC_MESSAGES:
http://pubs.opengroup.org/onlinepubs/009604599/basedefs/langinfo.h.html
http://pubs.opengroup.org/onlinepubs/009604599/functions/nl_langinfo.html

Στο ubuntu 11.10 υπάρχει σ' αυτό το αρχείο:

$ grep -i YESEXPR /usr/share/i18n/locales/el*
/usr/share/i18n/locales/el_GR:yesexpr 
"<U005E><U005B><U03BD><U039D><U0079><U0059><U005D><U002E><U002A>"

Διαφέρει από το YESEXPR του en_US:
$ grep -i YESEXPR /usr/share/i18n/locales/en_US
yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"


Χρησιμοποιεί regular expression για να συγκρίνει το input.
Χρησιμοποιώντας python για να βρούμε τι σημαίνουν αυτοί οι κώδικες:

$ python -c 'import locale; locale.setlocale(locale.LC_MESSAGES, 
"en_US.UTF-8"); print(locale.nl_langinfo(locale.YESEXPR))'
^[yY].*
^[nN].*

$ python -c 'import locale; locale.setlocale(locale.LC_MESSAGES, 
"el_GR.UTF-8"); print(locale.nl_langinfo(locale.YESEXPR))'
^[νΝyY].*
^[οΟnN].*

Το προβληματικό πακέτο φαίνεται να είναι το locales. "^[νΝyY].*" σημαίνει 
χαρακτήρας ν ή Ν ή y ή Y.
Σύμφωνα με αυτά θα πρέπει να δουλεύει και με το ελληνικό "Ν" αλλά και με το 
αγγλικό "Y".
Το ίδιο ισχύει και για το NOEXPR, ελληνικό "Ο" ή αγγλικό "N".

Το πακέτο locales ανήκει στο πρόγραμμα:
http://www.eglibc.org/home
http://www.eglibc.org/cgi-bin/viewvc.cgi/trunk/libc/localedata/locales/el_GR?view=markup

Κανονικά θα έπρεπε να δουλεύει και με τις δύο γλώσσες:

$ LANG=el_GR.UTF-8 LANGUAGE=el_GR:el LC_CTYPE=el_GR.UTF-8 
LC_NUMERIC=el_GR.UTF-8 LC_TIME=el_GR.UTF-8 LC_COLLATE=el_GR.UTF-8 
LC_MONETARY=el_GR.UTF-8 LC_MESSAGES=el_GR.UTF-8 LC_PAPER=el_GR.UTF-8 
LC_NAME=el_GR.UTF-8 LC_ADDRESS=el_GR.UTF-8 LC_TELEPHONE=el_GR.UTF-8 
LC_MEASUREMENT=el_GR.UTF-8 LC_IDENTIFICATION=el_GR.UTF-8 LC_ALL=el_GR.UTF-8 
sudo apt-get install deluge

Ανάγνωση Λιστών Πακέτων... Ολοκληρώθηκε
Κατασκευή Δένδρου Εξαρτήσεων                  
Ανάγνωση περιγραφής της τρέχουσας κατάσταση... Ολοκληρώθηκε
Τα ακόλουθα επιπλέον πακέτα θα εγκατασταθούν:
  deluge-common deluge-gtk libportmidi0 python-libtorrent python-pygame
Τα ακόλουθα ΝΕΑ πακέτα θα εγκατασταθούν:
  deluge deluge-common deluge-gtk libportmidi0 python-libtorrent python-pygame
0 αναβαθμίστηκαν, 6 νέο εγκατεστημένα, 0 θα αφαιρεθούν και 0 δεν αναβαθμίζονται.
Χρειάζεται να μεταφορτωθούν 5375 kB από αρχεία.
Μετά από αυτή τη λειτουργία, θα χρησιμοποιηθούν 29,0 MB χώρου από το δίσκο.
Θέλετε να συνεχίσετε [Ν/ο]; y
Φέρε:1 http://archive.ubuntu.com/ubuntu/ oneiric/universe python-libtorrent 
amd64 0.15.7-1 [980 kB]
12% [1 python-libtorrent 692 kB/980 kB 70%]^C


$ LANG=el_GR.UTF-8 LANGUAGE=el_GR:el LC_CTYPE=el_GR.UTF-8 
LC_NUMERIC=el_GR.UTF-8 LC_TIME=el_GR.UTF-8 LC_COLLATE=el_GR.UTF-8 
LC_MONETARY=el_GR.UTF-8 LC_MESSAGES=el_GR.UTF-8 LC_PAPER=el_GR.UTF-8 
LC_NAME=el_GR.UTF-8 LC_ADDRESS=el_GR.UTF-8 LC_TELEPHONE=el_GR.UTF-8 
LC_MEASUREMENT=el_GR.UTF-8 LC_IDENTIFICATION=el_GR.UTF-8 LC_ALL=el_GR.UTF-8 
sudo apt-get install deluge

Ανάγνωση Λιστών Πακέτων... Ολοκληρώθηκε
Κατασκευή Δένδρου Εξαρτήσεων                  
Ανάγνωση περιγραφής της τρέχουσας κατάσταση... Ολοκληρώθηκε
Τα ακόλουθα επιπλέον πακέτα θα εγκατασταθούν:
  deluge-common deluge-gtk libportmidi0 python-libtorrent python-pygame
Τα ακόλουθα ΝΕΑ πακέτα θα εγκατασταθούν:
  deluge deluge-common deluge-gtk libportmidi0 python-libtorrent python-pygame
0 αναβαθμίστηκαν, 6 νέο εγκατεστημένα, 0 θα αφαιρεθούν και 0 δεν αναβαθμίζονται.
Χρειάζεται να μεταφορτωθούν 5375 kB από αρχεία.
Μετά από αυτή τη λειτουργία, θα χρησιμοποιηθούν 29,0 MB χώρου από το δίσκο.
Θέλετε να συνεχίσετε [Ν/ο]; ν
Φέρε:1 http://archive.ubuntu.com/ubuntu/ oneiric/universe python-libtorrent 
amd64 0.15.7-1 [980 kB]
Φέρε:2 http://archive.ubuntu.com/ubuntu/ oneiric/universe deluge-common all 
1.3.3-1ubuntu1 [1210 kB]
19% [2 deluge-common 78,0 kB/1210 kB 6%]^C

Και δουλεύει... Θα ήθελα οι Sergey και Christos να δοκιμάσουν τις ακόλουθες 
εντολές και να δώσουν το αποτέλεσμα:
http://pastebin.com/RZ0ehuCE

Αν έχετε εγκατεστημένο το deluge δοκιμάστε κάποιο άλλο «εξωτικό» πακέτο με 
εξαρτώμενα πακέτα, π.χ... clementine

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.ubuntu.com/archives/ubuntu-gr/attachments/20120412/8480164e/attachment.html>
-- 
Ubuntu-gr mailing list
Ubuntu-gr@lists.ubuntu.com

If you do not want to receive any more messages from the ubuntu-gr mailing 
list, please follow this link and choose unsubscribe:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr

Απαντηση