]> err.no Git - dpkg/commitdiff
Add gettext-support to dselect
authorWichert Akkerman <wakkerma@debian.org>
Mon, 25 Oct 1999 15:29:18 +0000 (15:29 +0000)
committerWichert Akkerman <wakkerma@debian.org>
Mon, 25 Oct 1999 15:29:18 +0000 (15:29 +0000)
19 files changed:
ChangeLog
debian/changelog
dselect/basecmds.cc
dselect/baselist.cc
dselect/bindings.cc
dselect/main.cc
dselect/methlist.cc
dselect/method.cc
dselect/methparse.cc
dselect/pkgcmds.cc
dselect/pkgdepcon.cc
dselect/pkgdisplay.cc
dselect/pkginfo.cc
dselect/pkglist.cc
dselect/pkgsublist.cc
dselect/pkgtop.cc
po/.cvsignore
po/POTFILES.in
po/dpkg.pot

index 51e4bd6051b3f6ae2cce54f78fca4c67ce135d06..19dffc39490747a662f56c31d52e8d07c39a1b5c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Oct 25 17:12:34 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+  * gettextize dselect
+
 Mon Oct 25 08:42:52 EDT 1999 Ben Collins <bcollins.debian.org>
 
   * debian/rules: fix symlink creaton for /usr/share/doc/dpkg-dev -> dpkg,
@@ -11,6 +15,11 @@ Mon Oct 25 06:50:17 EDT 1999 Ben Collins <bcollins.debian.org>
     squeez the full path to < 30 chars (even if the basename is > than 30
     chars)
 
+Mon Oct 25 02:27:49 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+  * dselect/main.cc: Fixup error message for invalid parameter to reflect
+    we are dselect, not dpkg
+
 Sun Oct 24 20:46:44 EDT 1999 Ben Collins <bcollins.debian.org>
 
   * scripts/dpkg-source.pl: we want to 'delete' the POSIXLY_CORRECT env
@@ -21,11 +30,6 @@ Sun Oct 24 20:25:11 EDT 1999 Ben Collins <bcollins.debian.org>
   * debian/dpkg-doc-{postrm,prerm}: Added install-info for internals.info
   * debian/dpkg-internals: fixed misplaced description
 
-Mon Oct 25 02:27:49 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
-
-  * dselect/main.cc: Fixup error message for invalid parameter to reflect
-    we are dselect, not dpkg
-
 Sun Oct 24 11:39:21 EDT 1999 Ben Collins <bcollins.debian.org>
 
   * debian/control: added dpkg-doc
index 69f8271a7b3b32dada3e133eadd99f0c62b3882d..6d1de825d6618151d0a5d150d42590f9b3e1701a 100644 (file)
@@ -1,5 +1,6 @@
 dpkg (1.4.1.19) unstable; urgency=low
 
+  * Add gettext-support to dselect
   * Fixed incorrect patch for --print-architecture (oops, oh well
     it was already broken when there was no gcc anyway :)
   * Fixed missing mipseb that was supposed to be in the archtable
index bacaac1135db95f5bad2938c182af093dcea6430..95f1b1134d4713a4c6c046856cd810117c82d1d5 100644 (file)
@@ -86,7 +86,7 @@ void baselist::kd_redraw() {
 //  RFSH(whatinfowin); /* fixme-ncurses: why does ncurses need this ? */
   clearok(curscr,TRUE);
   redrawall();
-  if (debug) fprintf(debug,"baselist[%p]::kd_redraw() done\n",this);
+  if (debug) fprintf(debug,_("baselist[%p]::kd_redraw() done\n"),this);
 }
 
 void baselist::kd_searchagain() {
@@ -96,7 +96,7 @@ void baselist::kd_searchagain() {
 
 void baselist::kd_search() {
   werase(querywin);
-  mvwaddstr(querywin,0,0, "Search for ? ");
+  mvwaddstr(querywin,0,0, _("Search for ? "));
   echo(); /* fixme: ncurses documentation or implementation */
   /* fixme: make / RET do `search again' and / DEL to abort */
   if (wgetnstr(querywin,searchstring,sizeof(searchstring)-1) == ERR)
@@ -123,13 +123,13 @@ void baselist::displayhelp(const struct helpmenuentry *helpmenu, int key) {
       attrset(list_attr);
       mvaddstr(1,0, hme->msg->text);
       attrset(title_attr);
-      mvaddstr(0,0, "Help: ");
+      mvaddstr(0,0, _("Help: "));
       addstr(hme->msg->title);
       getyx(stdscr,y,x);
       while (++x<maxx) addch(' ');
       attrset(thisstate_attr);
       mvaddstr(maxy-1,0,
-"? = help menu    Space = exit help    . = next help    or a help page key "
+_("? = help menu    Space = exit help    . = next help    or a help page key ")
                );
       getyx(stdscr,y,x);
       while (++x<maxx) addch(' ');
@@ -137,7 +137,7 @@ void baselist::displayhelp(const struct helpmenuentry *helpmenu, int key) {
       attrset(A_NORMAL);
       nextkey= hme[1].key;
     } else {
-      mvaddstr(1,1, "Help information is available under the following topics:");
+      mvaddstr(1,1, _("Help information is available under the following topics:"));
       for (i=0, hme=helpmenu; hme->key; hme++,i++) {
         attrset(A_BOLD);
         mvaddch(i+3,3, hme->key);
@@ -145,13 +145,13 @@ void baselist::displayhelp(const struct helpmenuentry *helpmenu, int key) {
         mvaddstr(i+3,6, hme->msg->title);
       }
       mvaddstr(i+4,1,
-               "Press a key from the list above, Space to exit help,\n"
-               "  or `.' (full stop) to read each help page in turn. ");
+               _("Press a key from the list above, Space to exit help,\n"
+               "  or `.' (full stop) to read each help page in turn. "));
       nextkey= helpmenu[0].key;
     }
     refresh();
     key= getch();
-    if (key == EOF) ohshite("error reading keyboard in help");
+    if (key == EOF) ohshite(_("error reading keyboard in help"));
     if (key == ' ') {
       break;
     } else if (key == '?') {
index e22737738851336ce89d81944664513cbcefdf5f..a40fec7ca950d53de131dd5bddb1ac1dd0a01c73 100644 (file)
@@ -49,16 +49,16 @@ void baselist::sigwinchhandler(int) {
   p->enddisplay();
   endwin(); initscr();
   p->startdisplay();
-  if (doupdate() == ERR) ohshite("doupdate in SIGWINCH handler failed");
+  if (doupdate() == ERR) ohshite(_("doupdate in SIGWINCH handler failed"));
 }
 
 static void cu_sigwinch(int, void **argv) {
   struct sigaction *osigactp= (struct sigaction*)argv[0];
   sigset_t *oblockedp= (sigset_t*)argv[1];
   
-  if (sigaction(SIGWINCH,osigactp,0)) ohshite("failed to restore old SIGWINCH sigact");
+  if (sigaction(SIGWINCH,osigactp,0)) ohshite(_("failed to restore old SIGWINCH sigact"));
   delete osigactp;
-  if (sigprocmask(SIG_SETMASK,oblockedp,0)) ohshite("failed to restore old signal mask");
+  if (sigprocmask(SIG_SETMASK,oblockedp,0)) ohshite(_("failed to restore old signal mask"));
   delete oblockedp;
 } 
 
@@ -68,17 +68,17 @@ void baselist::setupsigwinch() {
     
   osigactp= new(struct sigaction);
   oblockedp= new(sigset_t);
-  if (sigprocmask(0,0,oblockedp)) ohshite("failed to get old signal mask");
-  if (sigaction(SIGWINCH,0,osigactp)) ohshite("failed to get old SIGWINCH sigact");
+  if (sigprocmask(0,0,oblockedp)) ohshite(_("failed to get old signal mask"));
+  if (sigaction(SIGWINCH,0,osigactp)) ohshite(_("failed to get old SIGWINCH sigact"));
 
   push_cleanup(cu_sigwinch,~0, 0,0, 2,(void*)osigactp,(void*)oblockedp);
 
-  if (sigprocmask(SIG_BLOCK,&sigwinchset,0)) ohshite("failed to block SIGWINCH");
+  if (sigprocmask(SIG_BLOCK,&sigwinchset,0)) ohshite(_("failed to block SIGWINCH"));
   memset(&nsigact,0,sizeof(nsigact));
   nsigact.sa_handler= sigwinchhandler;
   sigemptyset(&nsigact.sa_mask);
   nsigact.sa_flags= SA_INTERRUPT;
-  if (sigaction(SIGWINCH,&nsigact,0)) ohshite("failed to set new SIGWINCH sigact");
+  if (sigaction(SIGWINCH,&nsigact,0)) ohshite(_("failed to set new SIGWINCH sigact"));
 }
 
 void baselist::setheights() {
@@ -105,7 +105,7 @@ void baselist::setheights() {
 }
 
 void baselist::startdisplay() {
-  if (debug) fprintf(debug,"baselist[%p]::startdisplay()\n",this);
+  if (debug) fprintf(debug,_("baselist[%p]::startdisplay()\n"),this);
   cbreak(); noecho(); nonl(); keypad(stdscr,TRUE);
   clear(); wnoutrefresh(stdscr);
 
@@ -114,7 +114,7 @@ void baselist::startdisplay() {
     if (init_pair(1,COLOR_WHITE,COLOR_BLACK) != OK ||
         init_pair(2,COLOR_WHITE,COLOR_RED) != OK ||
         init_pair(3,COLOR_WHITE,COLOR_BLUE) != OK)
-      ohshite("failed to allocate colour pairs");
+      ohshite(_("failed to allocate colour pairs"));
     list_attr= COLOR_PAIR(1);
     listsel_attr= list_attr|A_REVERSE;
     title_attr= COLOR_PAIR(2);
@@ -144,30 +144,30 @@ void baselist::startdisplay() {
   setwidths();
   
   titlewin= newwin(1,xmax, 0,0);
-  if (!titlewin) ohshite("failed to create title window");
+  if (!titlewin) ohshite(_("failed to create title window"));
   wattrset(titlewin,title_attr);
   
   whatinfowin= newwin(1,xmax, whatinfo_row,0);
-  if (!whatinfowin) ohshite("failed to create whatinfo window");
+  if (!whatinfowin) ohshite(_("failed to create whatinfo window"));
   wattrset(whatinfowin,whatinfo_attr);
   
   listpad= newpad(nitems+1, total_width);
-  if (!listpad) ohshite("failed to create baselist pad");
+  if (!listpad) ohshite(_("failed to create baselist pad"));
   
   colheadspad= newpad(1, total_width);
-  if (!colheadspad) ohshite("failed to create heading pad");
+  if (!colheadspad) ohshite(_("failed to create heading pad"));
   wattrset(colheadspad,colheads_attr);
   
   thisstatepad= newpad(1, total_width);
-  if (!thisstatepad) ohshite("failed to create thisstate pad");
+  if (!thisstatepad) ohshite(_("failed to create thisstate pad"));
   wattrset(thisstatepad,thisstate_attr);
 
   infopad= newpad(MAX_DISPLAY_INFO, total_width);
-  if (!infopad) ohshite("failed to create info pad");
+  if (!infopad) ohshite(_("failed to create info pad"));
   wattrset(infopad,info_attr);
 
   querywin= newwin(1,xmax,ymax-1,0);
-  if (!querywin) ohshite("failed to create query window");
+  if (!querywin) ohshite(_("failed to create query window"));
 
   if (cursorline >= topofscreen + list_height) topofscreen= cursorline;
   if (topofscreen > nitems - list_height) topofscreen= nitems - list_height;
@@ -179,12 +179,12 @@ void baselist::startdisplay() {
 
   if (debug)
     fprintf(debug,
-            "baselist::startdisplay() done ...\n\n"
+            _("baselist::startdisplay() done ...\n\n"
             " xmax=%d, ymax=%d;\n\n"
             " title_height=%d, colheads_height=%d, list_height=%d;\n"
             " thisstate_height=%d, info_height=%d, whatinfo_height=%d;\n\n"
             " colheads_row=%d, thisstate_row=%d, info_row=%d;\n"
-            " whatinfo_row=%d, list_row=%d;\n\n",
+            " whatinfo_row=%d, list_row=%d;\n\n"),
             xmax, ymax,
             title_height, colheads_height, list_height,
             thisstate_height, info_height, whatinfo_height,
@@ -220,7 +220,7 @@ void baselist::redraw1item(int index) {
 
 baselist::baselist(keybindings *kb) {
   if (debug)
-    fprintf(debug,"baselist[%p]::baselist()\n",this);
+    fprintf(debug,_("baselist[%p]::baselist()\n"),this);
 
   bindings= kb;
   nitems= 0;
@@ -235,7 +235,7 @@ baselist::baselist(keybindings *kb) {
 }  
 
 void baselist::itd_keys() {
-  whatinfovb("keybindings");
+  whatinfovb(_("keybindings"));
   
   const int givek= xmax/3;
   bindings->describestart();
@@ -243,7 +243,7 @@ void baselist::itd_keys() {
   while ((ta= bindings->describenext()) != 0) {
     const char **tap= ta+1;
     for (;;) {
-      waddstr(infopad, *tap);
+      waddstr(infopad, gettext(*tap));
       tap++;  if (!*tap) break;
       waddstr(infopad, ", ");
     }
@@ -258,7 +258,7 @@ void baselist::itd_keys() {
 void baselist::dosearch() {
   int offset, index, searchlen;
   searchlen= strlen(searchstring);
-  if (debug) fprintf(debug,"packagelist[%p]::dosearch(); searchstring=`%s' len=%d\n",
+  if (debug) fprintf(debug,_("packagelist[%p]::dosearch(); searchstring=`%s' len=%d\n"),
                      this,searchstring,searchlen);
   for (offset=1, index=greaterint(topofscreen,cursorline+1);
        offset<nitems;
@@ -290,14 +290,14 @@ void baselist::refreshinfo() {
     mywerase(whatinfowin);
     mvwaddstr(whatinfowin,0,0, whatinfovb.string());
     if (infolines > info_height) {
-      wprintw(whatinfowin,"  -- %d%%, press ",
+      wprintw(whatinfowin,_("  -- %d%%, press "),
               (int)((infotopofscreen + info_height) * 100.0 / infolines));
       if (infotopofscreen + info_height < infolines) {
-        wprintw(whatinfowin,"%s for more", bindings->find("iscrollon"));
+        wprintw(whatinfowin,_("%s for more"), bindings->find("iscrollon"));
         if (infotopofscreen) waddstr(whatinfowin, ", ");
       }
       if (infotopofscreen)
-        wprintw(whatinfowin, "%s to go back",bindings->find("iscrollback"));
+        wprintw(whatinfowin, _("%s to go back"),bindings->find("iscrollback"));
       waddch(whatinfowin,'.');
     }
     wnoutrefresh(whatinfowin);
@@ -306,7 +306,7 @@ void baselist::refreshinfo() {
 
 void baselist::wordwrapinfo(int offset, const char *m) {
   int usemax= xmax-5;
-  if (debug) fprintf(debug,"baselist[%p]::wordwrapinfo(%d, `%s')\n",this,offset,m);
+  if (debug) fprintf(debug,_("baselist[%p]::wordwrapinfo(%d, `%s')\n"),this,offset,m);
   int wrapping=0;
   for (;;) {
     int offleft=offset; while (*m == ' ' && offleft>0) { m++; offleft--; }
@@ -352,7 +352,7 @@ void baselist::wordwrapinfo(int offset, const char *m) {
     if (!p) break;
     m= ++p;
   }
-  if (debug) fprintf(debug,"baselist[%p]::wordwrapinfo() done\n",this);
+  if (debug) fprintf(debug,_("baselist[%p]::wordwrapinfo() done\n"),this);
 }
 
 baselist::~baselist() { }
index ce7c0b688a796afc9fbfcee167d9056a8d52e492..39d294706ab4359c272c492b12b2f1757546ec00 100644 (file)
@@ -68,11 +68,11 @@ int keybindings::bind(int key, const char *action) {
 const char *keybindings::find(const char *action) {
   binding *b;
   for (b=bindings; b && strcmp(action,b->interp->action); b=b->next);
-  if (!b) return "[not bound]";
+  if (!b) return _("[not bound]");
   const char *n= key2name(b->key);
   if (n) return n;
   static char buf[50];
-  sprintf(buf,"[unk: %d]",b->key);
+  sprintf(buf,_("[unk: %d]"),b->key);
   return buf;
 }
 
@@ -126,41 +126,41 @@ keybindings::~keybindings() {
 
 const keybindings::description keybindings::descriptions[]= {
   // Actions which apply to both types of list.
-  { "iscrollon",       "Scroll onwards through help/information"               },
-  { "iscrollback",     "Scroll backwards through help/information"             },
-  { "up",              "Move up"                                               },
-  { "down",            "Move down"                                             },
-  { "top",             "Go to top of list"                                     },
-  { "bottom",          "Go to end of list"                                     },
-  { "help",            "Request help (cycle through help screens)"             },
-  { "info",            "Cycle through information displays"                    },
-  { "redraw",          "Redraw display"                                        },
-  { "scrollon1",       "Scroll onwards through list by 1 line"                 },
-  { "scrollback1",     "Scroll backwards through list by 1 line"               },
-  { "iscrollon1",      "Scroll onwards through help/information by 1 line"     },
-  { "iscrollback1",    "Scroll backwards through help/information by 1 line"   },
-  { "scrollon",        "Scroll onwards through list"                           },
-  { "scrollback",      "Scroll backwards through list"                         },
+  { "iscrollon",       N_("Scroll onwards through help/information")             },
+  { "iscrollback",     N_("Scroll backwards through help/information")           },
+  { "up",              N_("Move up")                                             },
+  { "down",            N_("Move down")                                           },
+  { "top",             N_("Go to top of list")                                   },
+  { "bottom",          N_("Go to end of list")                                   },
+  { "help",            N_("Request help (cycle through help screens)")           },
+  { "info",            N_("Cycle through information displays")                  },
+  { "redraw",          N_("Redraw display")                                      },
+  { "scrollon1",       N_("Scroll onwards through list by 1 line")               },
+  { "scrollback1",     N_("Scroll backwards through list by 1 line")             },
+  { "iscrollon1",      N_("Scroll onwards through help/information by 1 line")   },
+  { "iscrollback1",    N_("Scroll backwards through help/information by 1 line") },
+  { "scrollon",        N_("Scroll onwards through list")                         },
+  { "scrollback",      N_("Scroll backwards through list")                       },
 
   // Actions which apply only to lists of packages.
-  { "install",         "Mark package(s) for installation"                      },
-  { "remove",          "Mark package(s) for deinstallation"                    },
-  { "purge",           "Mark package(s) for deinstall and purge"               },
-  { "morespecific",    "Make highlight more specific"                          },
-  { "lessspecific",    "Make highlight less specific"                          },
-  { "search",          "Search for a package whose name contains a string"     },
-  { "searchagain",     "Repeat last search."                                   },
-  { "swaporder",       "Swap sort order priority/section"                      },
-  { "quitcheck",       "Quit, confirming, and checking dependencies"           },
-  { "quitnocheck",     "Quit, confirming without check"                        },
-  { "quitrejectsug",   "Quit, rejecting conflict/dependency suggestions"       },
-  { "abortnocheck",    "Abort - quit without making changes"                   },
-  { "revert",          "Revert to old state for all packages"                  },
-  { "revertsuggest",   "Revert to suggested state for all packages"            },
-  { "revertdirect",    "Revert to directly requested state for all packages"   },
+  { "install",         N_("Mark package(s) for installation")                    },
+  { "remove",          N_("Mark package(s) for deinstallation")                  },
+  { "purge",           N_("Mark package(s) for deinstall and purge")             },
+  { "morespecific",    N_("Make highlight more specific")                        },
+  { "lessspecific",    N_("Make highlight less specific")                        },
+  { "search",          N_("Search for a package whose name contains a string")   },
+  { "searchagain",     N_("Repeat last search.")                                 },
+  { "swaporder",       N_("Swap sort order priority/section")                    },
+  { "quitcheck",       N_("Quit, confirming, and checking dependencies")         },
+  { "quitnocheck",     N_("Quit, confirming without check")                      },
+  { "quitrejectsug",   N_("Quit, rejecting conflict/dependency suggestions")     },
+  { "abortnocheck",    N_("Abort - quit without making changes")                 },
+  { "revert",          N_("Revert to old state for all packages")                },
+  { "revertsuggest",   N_("Revert to suggested state for all packages")          },
+  { "revertdirect",    N_("Revert to directly requested state for all packages") },
   
   // Actions which apply only to lists of methods.
-  { "select-and-quit", "Select currently-highlighted access method"            },
-  { "abort",           "Quit without changing selected access method"          },
-  {  0,                0                                                       }
+  { "select-and-quit", N_("Select currently-highlighted access method")          },
+  { "abort",           N_("Quit without changing selected access method")        },
+  {  0,                0                                                         }
 };
index 3522e7dd32560e4b0bc03903a1ffe31e50bdf0c5..d400655d2d707250378f953adcb00878be0ef7d7 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 #include "pkglist.h"
 
 const char thisname[]= DSELECT;
-const char printforhelp[]= "Type " DSELECT " --help for help.";
+const char printforhelp[]= N_("Type " DSELECT " --help for help.");
 
 modstatdb_rw readwrite;
 const char *admindir= ADMINDIR;
@@ -63,36 +63,36 @@ struct menuentry {
 };
 
 static const menuentry menuentries[]= {
-  { "access",  "Choose the access method to use.",                &urq_setup   },
-  { "update",  "Update list of available packages, if possible.", &urq_update  },
-  { "select",  "Request which packages you want on your system.", &urq_list    },
-  { "install", "Install and upgrade wanted packages.",            &urq_install },
-  { "config",  "Configure any packages that are unconfigured.",   &urq_config  },
-  { "remove",  "Remove unwanted software.",                       &urq_remove  },
-  { "quit",    "Quit dselect.",                                   &urq_quit    },
-  { "menu",     0,                                                &urq_menu    },
-  {  0                                                                         }
+  { N_("access"),  N_("Choose the access method to use."),                &urq_setup   },
+  { N_("update"),  N_("Update list of available packages, if possible."), &urq_update  },
+  { N_("select"),  N_("Request which packages you want on your system."), &urq_list    },
+  { N_("install"), N_("Install and upgrade wanted packages."),            &urq_install },
+  { N_("config"),  N_("Configure any packages that are unconfigured."),   &urq_config  },
+  { N_("remove"),  N_("Remove unwanted software."),                       &urq_remove  },
+  { N_("quit"),    N_("Quit dselect."),                                   &urq_quit    },
+  { N_("menu"),    0,                                                     &urq_menu    },
+  { 0                                                                              }
 };
 
 static const char programdesc[]=
-      "Debian Linux `" DSELECT "' package handling frontend.";
+      N_("Debian Linux `" DSELECT "' package handling frontend.");
 
-static const char copyrightstring[]=
+static const char copyrightstring[]= N_(
       "Version " DPKG_VERSION_ARCH ".  Copyright (C) 1994-1996 Ian Jackson.   This is\n"
       "free software; see the GNU General Public Licence version 2 or later for\n"
-      "copying conditions.  There is NO warranty.  See dselect --licence for details.\n";
+      "copying conditions.  There is NO warranty.  See dselect --licence for details.\n");
 
 static void printversion(void) {
-  if (fprintf(stdout,"%s\n%s",programdesc,copyrightstring) == EOF) werr("stdout");
+  if (fprintf(stdout,"%s\n%s",gettext(programdesc),gettext(copyrightstring)) == EOF) werr("stdout");
 }
 
 static void usage(void) {
-  if (!fputs
-      ("Usage: dselect [options]\n"
+  if (!fputs(
+     _("Usage: dselect [options]\n"
        "       dselect [options] action ...\n"
        "Options:  --admindir <directory>  (default is /var/lib/dpkg)\n"
        "          --help  --version  --licence   --debug <file> | -D<file> | -D\n"
-       "Actions:  access update select install config remove quit menu\n",
+       "Actions:  access update select install config remove quit menu\n"),
        stdout)) werr("stdout");
 }
 
@@ -134,7 +134,7 @@ extern "C" {
 
   static void setdebug(const struct cmdinfo*, const char *v) {
     debug= fopen(v,"a");
-    if (!debug) ohshite("couldn't open debug file `%.255s'\n",v);
+    if (!debug) ohshite(_("couldn't open debug file `%.255s'\n"),v);
     setvbuf(debug,0,_IONBF,0);
   }
 
@@ -160,12 +160,12 @@ void curseson() {
     if (!cup || !smso) {
       endwin();
       if (!cup)
-        fputs("Terminal does not appear to support cursor addressing.\n",stderr);
+        fputs(_("Terminal does not appear to support cursor addressing.\n"),stderr);
       if (!smso)
-        fputs("Terminal does not appear to support highlighting.\n",stderr);
-      fputs("Set your TERM variable correctly, use a better terminal,\n"
-            "or make do with the per-package management tool " DPKG ".\n",stderr);
-      ohshit("terminal lacks necessary features, giving up");
+        fputs(_("Terminal does not appear to support highlighting.\n"),stderr);
+      fputs(_("Set your TERM variable correctly, use a better terminal,\n"
+            "or make do with the per-package management tool " DPKG ".\n"),stderr);
+      ohshit(_("terminal lacks necessary features, giving up"));
     }
   }
   cursesareon= 1;
@@ -209,10 +209,11 @@ urqresult urq_list(void) {
 void dme(int i, int so) {
   char buf[120];
   const menuentry *me= &menuentries[i];
+  const char* option = gettext(me->option);
   sprintf(buf," %c %d. [%c]%-10.10s %-80.80s ",
           so ? '*' : ' ', i,
-          toupper(me->option[0]), me->option+1,
-          me->menuent);
+          toupper(option[0]), option+1,
+          gettext(me->menuent));
   
   int y,x;
   getmaxyx(stdscr,y,x);
@@ -230,7 +231,7 @@ int refreshmenu(void) {
 
   clear();
   attrset(A_BOLD);
-  mvaddnstr(0,0, programdesc,x-1);
+  mvaddnstr(0,0, gettext(programdesc),x-1);
 
   attrset(A_NORMAL);
   const struct menuentry *mep; int i;
@@ -238,12 +239,12 @@ int refreshmenu(void) {
     dme(i,0);
 
   attrset(A_BOLD);
-  addstr("\n\n"
+  addstr(_("\n\n"
          "Use ^P and ^N, cursor keys, initial letters, or digits to select;\n"
-         "Press ENTER to confirm selection.   ^L to redraw screen.\n\n");
+         "Press ENTER to confirm selection.   ^L to redraw screen.\n\n"));
 
   attrset(A_NORMAL);
-  addstr(copyrightstring);
+  addstr(gettext(copyrightstring));
 
   return i;
 }
@@ -256,7 +257,7 @@ urqresult urq_menu(void) {
   dme(0,1);
   for (;;) {
     refresh();
-    c= getch();  if (c==ERR) ohshite("failed to getch in main menu");
+    c= getch();  if (c==ERR) ohshite(_("failed to getch in main menu"));
     if (c==C('n') || c==KEY_DOWN || c==' ') {
       dme(cursor,0); cursor++; cursor %= entries; dme(cursor,1);
     } else if (c==C('p') || c==KEY_UP || c==C('h') ||
@@ -272,7 +273,7 @@ urqresult urq_menu(void) {
       case urqr_fail:
         break;
       default:
-        internerr("unknown menufn");
+        internerr(_("unknown menufn"));
       }
       refreshmenu(); dme(cursor,1);
     } else if (c==C('l')) {
@@ -286,7 +287,7 @@ urqresult urq_menu(void) {
       }
     } else if (isalpha(c)) {
       c= tolower(c);
-      for (i=0; i<entries && menuentries[i].option[0] != c; i++);
+      for (i=0; i<entries && gettext(menuentries[i].option)[0] != c; i++);
       if (i < entries) {
         dme(cursor,0); cursor=i; dme(cursor,1);
       } else {
@@ -306,6 +307,10 @@ urqresult urq_quit(void) {
 int main(int, const char *const *argv) {
   jmp_buf ejbuf;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
 #if CAN_RESIZE
   (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
 #endif
@@ -323,7 +328,7 @@ int main(int, const char *const *argv) {
     while ((a= *argv++) != 0) {
       const menuentry *me;
       for (me= menuentries; me->option && strcmp(me->option,a); me++);
-      if (!me->option) badusage("unknown action string `%.50s'",a);
+      if (!me->option) badusage(_("unknown action string `%.50s'"),a);
       me->fn();
     }
   } else {
index f995189a7dbf29c9e0d9893f415849844ac615ac..cb063f1244aa82f8d9117f1661fe20dba9766af7 100644 (file)
@@ -44,13 +44,13 @@ const char *methodlist::itemname(int index) {
 void methodlist::kd_abort() { }
 
 void methodlist::kd_quit() {
-  if (debug) fprintf(debug,"methodlist[%p]::kd_quit() setting coption=%p\n",
+  if (debug) fprintf(debug,_("methodlist[%p]::kd_quit() setting coption=%p\n"),
                      this, table[cursorline]);
   coption= table[cursorline];
 }
 
 void methodlist::setwidths() {
-  if (debug) fprintf(debug,"methodlist[%p]::setwidths()\n",this);
+  if (debug) fprintf(debug,_("methodlist[%p]::setwidths()\n"),this);
 
   status_width= 1;
   gap_width= 1;
@@ -65,7 +65,7 @@ void methodlist::setwidths() {
 void methodlist::redrawtitle() {
   if (title_height) {
     mywerase(titlewin);
-    mvwaddnstr(titlewin,0,0,"dselect - list of access methods",xmax);
+    mvwaddnstr(titlewin,0,0,_("dselect - list of access methods"),xmax);
     wnoutrefresh(titlewin);
   }
 }
@@ -74,7 +74,7 @@ void methodlist::redrawthisstate() {
   if (!thisstate_height) return;
   mywerase(thisstatepad);
   wprintw(thisstatepad,
-          "Access method `%s'.",
+          _("Access method `%s'."),
           table[cursorline]->name);
   pnoutrefresh(thisstatepad, 0,0, thisstate_row,0,
                thisstate_row, lesserint(total_width - 1, xmax - 1));
@@ -108,8 +108,8 @@ void methodlist::redrawcolheads() {
     wattrset(colheadspad,colheads_attr);
     mywerase(colheadspad);
     mvwaddstr(colheadspad,0,0, "  ");
-    mvwaddnstr(colheadspad,0,name_column, "Abbrev.", name_width);
-    mvwaddnstr(colheadspad,0,description_column, "Description", description_width);
+    mvwaddnstr(colheadspad,0,name_column, _("Abbrev."), name_width);
+    mvwaddnstr(colheadspad,0,description_column, _("Description"), description_width);
   }
   refreshcolheads();
 }
@@ -118,7 +118,7 @@ methodlist::methodlist() : baselist(&methodlistbindings) {
   int newcursor= -1;
   
   if (debug)
-    fprintf(debug,"methodlist[%p]::methodlist()\n",this);
+    fprintf(debug,_("methodlist[%p]::methodlist()\n"),this);
 
   table= new struct option*[noptions];
 
@@ -133,11 +133,11 @@ methodlist::methodlist() : baselist(&methodlistbindings) {
   setcursor(newcursor);
 
   if (debug)
-    fprintf(debug,"methodlist[%p]::methodlist done; noptions=%d\n", this, noptions);
+    fprintf(debug,_("methodlist[%p]::methodlist done; noptions=%d\n"), this, noptions);
 }
 
 methodlist::~methodlist() {
-  if (debug) fprintf(debug,"methodlist[%p]::~methodlist()\n",this);
+  if (debug) fprintf(debug,_("methodlist[%p]::~methodlist()\n"),this);
   delete[] table;
 }
 
@@ -145,24 +145,24 @@ quitaction methodlist::display() {
   int response;
   const keybindings::interpretation *interp;
 
-  if (debug) fprintf(debug,"methodlist[%p]::display()\n",this);
+  if (debug) fprintf(debug,_("methodlist[%p]::display()\n"),this);
 
   setupsigwinch();
   startdisplay();
   
-  if (debug) fprintf(debug,"methodlist[%p]::display() entering loop\n",this);
+  if (debug) fprintf(debug,_("methodlist[%p]::display() entering loop\n"),this);
   for (;;) {
     if (whatinfo_height) wcursyncup(whatinfowin);
-    if (doupdate() == ERR) ohshite("doupdate failed");
+    if (doupdate() == ERR) ohshite(_("doupdate failed"));
     signallist= this;
-    if (sigprocmask(SIG_UNBLOCK,&sigwinchset,0)) ohshite("failed to unblock SIGWINCH");
+    if (sigprocmask(SIG_UNBLOCK,&sigwinchset,0)) ohshite(_("failed to unblock SIGWINCH"));
     response= getch();
-    if (sigprocmask(SIG_BLOCK,&sigwinchset,0)) ohshite("failed to re-block SIGWINCH");
-    if (response == ERR) ohshite("getch failed");
+    if (sigprocmask(SIG_BLOCK,&sigwinchset,0)) ohshite(_("failed to re-block SIGWINCH"));
+    if (response == ERR) ohshite(_("getch failed"));
     interp= (*bindings)(response);
     if (debug)
-      fprintf(debug,"methodlist[%p]::display() response=%d interp=%s\n",
-              this,response, interp ? interp->action : "[none]");
+      fprintf(debug,_("methodlist[%p]::display() response=%d interp=%s\n"),
+              this,response, interp ? interp->action : _("[none]"));
     if (!interp) { beep(); continue; }
     (this->*(interp->mfn))();
     if (interp->qa != qa_noquit) break;
@@ -170,13 +170,13 @@ quitaction methodlist::display() {
   pop_cleanup(ehflag_normaltidy); // unset the SIGWINCH handler
   enddisplay();
   
-  if (debug) fprintf(debug,"methodlist[%p]::display() done\n",this);
+  if (debug) fprintf(debug,_("methodlist[%p]::display() done\n"),this);
 
   return interp->qa;
 }
 
 void methodlist::itd_description() {
-  whatinfovb("explanation of ");
+  whatinfovb(_("explanation of "));
   whatinfovb(table[cursorline]->name);
 
   wattrset(infopad,info_headattr);
@@ -186,7 +186,7 @@ void methodlist::itd_description() {
   wattrset(infopad,info_attr);
 
   const char *m= table[cursorline]->description;
-  if (!m || !*m) m= "No explanation available.";
+  if (!m || !*m) m= _("No explanation available.");
   waddstr(infopad,"\n\n");
   wordwrapinfo(0,m);
 }
@@ -196,7 +196,7 @@ void methodlist::redrawinfo() {
   whatinfovb.reset();
   werase(infopad); wmove(infopad,0,0);
   
-  if (debug) fprintf(debug,"methodlist[%p]::redrawinfo()\n", this);
+  if (debug) fprintf(debug,_("methodlist[%p]::redrawinfo()\n"), this);
 
   itd_description();
 
index a835d0a50bea26bb0308248665134a3a68c316e6..27e1dc2cf29aa5610e5e844c4bd40ec6798176e2 100644 (file)
@@ -59,7 +59,7 @@ static void cu_unlockmethod(int, void**) {
   assert(methodlockfile);
   assert(methlockfd);
   if (flock(methlockfd,LOCK_UN))
-    ohshite("unable to unlock access method area");
+    ohshite(_("unable to unlock access method area"));
 }
 
 static enum urqresult ensureoptions(void) {
@@ -74,8 +74,8 @@ static enum urqresult ensureoptions(void) {
       readmethods(*ccpp, &newoptions, &nread);
     if (!newoptions) {
       curseson();
-      addstr("No access methods are available.\n\n"
-             "Press RETURN to continue.");
+      addstr(_("No access methods are available.\n\n"
+             "Press RETURN to continue."));
       refresh(); getch();
       return urqr_fail;
     }
@@ -97,14 +97,14 @@ static void lockmethod(void) {
     methlockfd= open(methodlockfile, O_RDWR|O_CREAT|O_TRUNC, 0660);
     if (methlockfd == -1) {
       if (errno == EPERM)
-        ohshit("you do not have permission to change the access method");
-      ohshite("unable to open/create access method lockfile");
+        ohshit(_("you do not have permission to change the access method"));
+      ohshite(_("unable to open/create access method lockfile"));
     }
   }
   if (flock(methlockfd,LOCK_EX|LOCK_NB)) {
     if (errno == EWOULDBLOCK || errno == EAGAIN)
-      ohshit("the access method area is already locked");
-    ohshite("unable to lock access method area");
+      ohshit(_("the access method area is already locked"));
+    ohshite(_("unable to lock access method area"));
   }
   push_cleanup(cu_unlockmethod,~0, 0,0, 0);
 }
@@ -117,7 +117,7 @@ void cu_restoresignals(int, void**) {
   int i;
   for (i=0; i<NCATCHSIGNALS; i++)
     if (sigaction(catchsignals[i],&uncatchsignal[i],0))
-      fprintf(stderr,"error un-catching signal %d: %s\n",
+      fprintf(stderr,_("error un-catching signal %d: %s\n"),
               catchsignals[i],strerror(errno));
 }
 
@@ -135,20 +135,20 @@ urqresult falliblesubprocess(const char *exepath, const char *name,
   catchsig.sa_flags= 0;
   for (i=0; i<NCATCHSIGNALS; i++)
     if (sigaction(catchsignals[i],&catchsig,&uncatchsignal[i]))
-      ohshite("unable to ignore signal %d before running %.250s",
+      ohshite(_("unable to ignore signal %d before running %.250s"),
               catchsignals[i], name);
   push_cleanup(cu_restoresignals,~0, 0,0, 0);
 
   if (!(c1= m_fork())) {
     cu_restoresignals(0,0);
     execvp(exepath,(char* const*) args);
-    ohshite("unable to run %.250s process `%.250s'",name,exepath);
+    ohshite(_("unable to run %.250s process `%.250s'"),name,exepath);
   }
 
   while ((cr= waitpid(c1,&status,0)) == -1)
-    if (errno != EINTR) ohshite("unable to wait for %.250s",name);
+    if (errno != EINTR) ohshite(_("unable to wait for %.250s"),name);
   if (cr != c1)
-    ohshit("got wrong child's status - asked for %ld, got %ld",(long)c1,(long)cr);
+    ohshit(_("got wrong child's status - asked for %ld, got %ld"),(long)c1,(long)cr);
 
   pop_cleanup(ehflag_normaltidy);
 
@@ -159,25 +159,25 @@ urqresult falliblesubprocess(const char *exepath, const char *name,
   fprintf(stderr,"\n%s ",name);
   if (WIFEXITED(status)) {
     i= WEXITSTATUS(status);
-    fprintf(stderr,"returned error exit status %d.\n",i);
+    fprintf(stderr,_("returned error exit status %d.\n"),i);
   } else if (WIFSIGNALED(status)) {
     i= WTERMSIG(status);
     if (i == SIGINT) {
-      fprintf(stderr,"was interrupted.\n");
+      fprintf(stderr,_("was interrupted.\n"));
     } else {
-      fprintf(stderr,"was terminated by a signal: %s.\n",strsignal(i));
+      fprintf(stderr,_("was terminated by a signal: %s.\n"),strsignal(i));
     }
     if (WCOREDUMP(status))
-      fprintf(stderr,"(It left a coredump.)\n");
+      fprintf(stderr,_("(It left a coredump.)\n"));
   } else {
-    fprintf(stderr,"failed with an unknown wait return code %d.\n",status);
+    fprintf(stderr,_("failed with an unknown wait return code %d.\n"),status);
   }
-  fprintf(stderr,"Press RETURN to continue.\n");
+  fprintf(stderr,_("Press RETURN to continue.\n"));
   if (ferror(stderr))
-    ohshite("write error on standard error");
+    ohshite(_("write error on standard error"));
   do { c= fgetc(stdin); } while (c != EOF && c != '\n');
   if (c == EOF)
-    ohshite("error reading acknowledgement of program failure message");
+    ohshite(_("error reading acknowledgement of program failure message"));
   return urqr_fail;
 }
 
@@ -200,8 +200,8 @@ static urqresult runscript(const char *exepath, const char *name) {
     ur= falliblesubprocess(coption->meth->path,name,fallibleargs);
   } else {
     curseson();
-    addstr("No access method is selected/configured.\n\n"
-           "Press RETURN to continue.");
+    addstr(_("No access method is selected/configured.\n\n"
+           "Press RETURN to continue."));
     refresh(); getch();
     ur= urqr_fail;
   }
@@ -211,11 +211,11 @@ static urqresult runscript(const char *exepath, const char *name) {
 }
 
 urqresult urq_update(void) {
-  return runscript(METHODUPDATESCRIPT,"update available list script");
+  return runscript(METHODUPDATESCRIPT,_("update available list script"));
 }
 
 urqresult urq_install(void) {
-  return runscript(METHODINSTALLSCRIPT,"installation script");
+  return runscript(METHODINSTALLSCRIPT,_("installation script"));
 }
 
 static urqresult rundpkgauto(const char *name, const char *dpkgmode) {
@@ -261,7 +261,7 @@ urqresult urq_setup(void) {
       coption->name,
       0
     };
-    ur= falliblesubprocess(coption->meth->path,"query/setup script",fallibleargs);
+    ur= falliblesubprocess(coption->meth->path,_("query/setup script"),fallibleargs);
     if (ur == urqr_normal) writecurrentopt();
   } else {
     ur= urqr_fail;
index 4388415cc7d9ff4024ea360d29cfe95847963353..913fd2fa7d3c89d454ba9cb55676757a038e15b1 100644 (file)
@@ -50,12 +50,12 @@ struct method *methods=0;
 static void badmethod(const char *pathname, const char *why) NONRETURNING;
 static void badmethod(const char *pathname, const char *why)
 {
-  ohshit("syntax error in method options file `%.250s' -- %s", pathname, why);
+  ohshit(_("syntax error in method options file `%.250s' -- %s"), pathname, why);
 }
 
 static void eofmethod(const char *pathname, FILE *f, const char *why) NONRETURNING;
 static void eofmethod(const char *pathname, FILE *f, const char *why) {
-  if (ferror(f)) ohshite("error reading options file `%.250s'",pathname);
+  if (ferror(f)) ohshite(_("error reading options file `%.250s'"),pathname);
   badmethod(pathname,why);
 }
 
@@ -83,21 +83,21 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
   dir= opendir(pathbuf);
   if (!dir) {
     if (errno == ENOENT) return;
-    ohshite("unable to read `%.250s' directory for reading methods",pathbuf);
+    ohshite(_("unable to read `%.250s' directory for reading methods"),pathbuf);
   }
 
-  if (debug) fprintf(debug,"readmethods(`%s',...) directory open\n", pathbase);
+  if (debug) fprintf(debug,_("readmethods(`%s',...) directory open\n"), pathbase);
   
   while ((dent= readdir(dir)) != 0) {
     c= dent->d_name[0];
-    if (debug) fprintf(debug,"readmethods(`%s',...) considering `%s' ...\n",
+    if (debug) fprintf(debug,_("readmethods(`%s',...) considering `%s' ...\n"),
                        pathbase,dent->d_name);
     if (c != '_' && !isalpha(c)) continue;
     for (p= dent->d_name+1; (c= *p) != 0 && isalnum(c) && c != '_'; p++);
     if (c) continue;
     methodlen= strlen(dent->d_name);
     if (methodlen > IMETHODMAXLEN)
-      ohshit("method `%.250s' has name that is too long (%d > %d characters)",
+      ohshit(_("method `%.250s' has name that is too long (%d > %d characters)"),
              dent->d_name, methodlen, IMETHODMAXLEN);
     /* Check if there is a localized version of this method */
     
@@ -108,13 +108,13 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
     for (ccpp= methodprograms; *ccpp; ccpp++) {
       strcpy(pathinmeth,*ccpp);
       if (access(pathbuf,R_OK|X_OK))
-        ohshite("unable to access method script `%.250s'",pathbuf);
+        ohshite(_("unable to access method script `%.250s'"),pathbuf);
     }
-    if (debug) fprintf(debug," readmethods(`%s',...) scripts ok\n", pathbase);
+    if (debug) fprintf(debug,_(" readmethods(`%s',...) scripts ok\n"), pathbase);
 
     strcpy(pathinmeth,METHODOPTIONSFILE);
     names= fopen(pathbuf,"r");
-    if (!names) ohshite("unable to read method options file `%.250s'",pathbuf);
+    if (!names) ohshite(_("unable to read method options file `%.250s'"),pathbuf);
 
     meth= new method;
     meth->name= new char[strlen(dent->d_name)+1];
@@ -127,8 +127,8 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
     meth->back= 0;
     if (methods) methods->back= meth;
     methods= meth;
-    if (debug) fprintf(debug," readmethods(`%s',...) new method"
-                       " name=`%s' path=`%s' pathinmeth=`%s'\n",
+    if (debug) fprintf(debug,_(" readmethods(`%s',...) new method"
+                       " name=`%s' path=`%s' pathinmeth=`%s'\n"),
                        pathbase, meth->name, meth->path, meth->pathinmeth);
     
     while ((c= fgetc(names)) != EOF) {
@@ -137,40 +137,40 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
       opt->meth= meth;
       vb.reset();
       do {
-        if (!isdigit(c)) badmethod(pathbuf,"non-digit where digit wanted");
+        if (!isdigit(c)) badmethod(pathbuf,_("non-digit where digit wanted"));
         vb(c);
         c= fgetc(names);
-        if (c == EOF) eofmethod(pathbuf,names,"EOF in index string");
+        if (c == EOF) eofmethod(pathbuf,names,_("EOF in index string"));
       } while (!isspace(c));
       if (strlen(vb.string()) > OPTIONINDEXMAXLEN)
-        badmethod(pathbuf,"index string too long");
+        badmethod(pathbuf,_("index string too long"));
       strcpy(opt->index,vb.string());
       do {
-        if (c == '\n') badmethod(pathbuf,"newline before option name start");
+        if (c == '\n') badmethod(pathbuf,_("newline before option name start"));
         c= fgetc(names);
-        if (c == EOF) eofmethod(pathbuf,names,"EOF before option name start");
+        if (c == EOF) eofmethod(pathbuf,names,_("EOF before option name start"));
       } while (isspace(c));
       vb.reset();
       if (!isalpha(c) && c != '_')
-        badmethod(pathbuf,"nonalpha where option name start wanted");
+        badmethod(pathbuf,_("nonalpha where option name start wanted"));
       do {
-        if (!isalnum(c) && c != '_') badmethod(pathbuf,"non-alphanum in option name");
+        if (!isalnum(c) && c != '_') badmethod(pathbuf,_("non-alphanum in option name"));
         vb(c);
         c= fgetc(names);
-        if (c == EOF) eofmethod(pathbuf,names,"EOF in option name");
+        if (c == EOF) eofmethod(pathbuf,names,_("EOF in option name"));
       } while (!isspace(c));
       opt->name= new char[strlen(vb.string())+1];
       strcpy(opt->name,vb.string());
       do {
-        if (c == '\n') badmethod(pathbuf,"newline before summary");
+        if (c == '\n') badmethod(pathbuf,_("newline before summary"));
         c= fgetc(names);
-        if (c == EOF) eofmethod(pathbuf,names,"EOF before summary");
+        if (c == EOF) eofmethod(pathbuf,names,_("EOF before summary"));
       } while (isspace(c));
       vb.reset();
       do {
         vb(c);
         c= fgetc(names);
-        if (c == EOF) eofmethod(pathbuf,names,"EOF in summary - missing newline");
+        if (c == EOF) eofmethod(pathbuf,names,_("EOF in summary - missing newline"));
       } while (c != '\n');
       opt->summary= new char[strlen(vb.string())+1];
       strcpy(opt->summary,vb.string());
@@ -180,26 +180,26 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
       descfile= fopen(pathbuf,"r");
       if (!descfile) {
         if (errno != ENOENT)
-          ohshite("unable to open option description file `%.250s'",pathbuf);
+          ohshite(_("unable to open option description file `%.250s'"),pathbuf);
         opt->description= 0;
       } else { /* descfile != 0 */
         if (fstat(fileno(descfile),&stab))
-          ohshite("unable to stat option description file `%.250s'",pathbuf);
+          ohshite(_("unable to stat option description file `%.250s'"),pathbuf);
         opt->description= new char[stab.st_size+1];  errno=0;
         unsigned long filelen= stab.st_size;
         if (fread(opt->description,1,stab.st_size+1,descfile) != filelen)
-          ohshite("failed to read option description file `%.250s'",pathbuf);
+          ohshite(_("failed to read option description file `%.250s'"),pathbuf);
         opt->description[stab.st_size]= 0;
         if (ferror(descfile))
-          ohshite("error during read of option description file `%.250s'",pathbuf);
+          ohshite(_("error during read of option description file `%.250s'"),pathbuf);
         fclose(descfile);
       }
       strcpy(pathinmeth,METHODOPTIONSFILE);
       
-      if (debug) fprintf(debug," readmethods(`%s',...) new option"
+      if (debug) fprintf(debug,_(" readmethods(`%s',...) new option"
                          " index=`%s' name=`%s' summary=`%.20s'"
                          " strlen(description=%s)=%ld"
-                         " method name=`%s' path=`%s' pathinmeth=`%s'\n",
+                         " method name=`%s' path=`%s' pathinmeth=`%s'\n"),
                          pathbase,
                          opt->index, opt->name, opt->summary,
                          opt->description ? "`...'" : "null",
@@ -213,11 +213,11 @@ void readmethods(const char *pathbase, option **optionspp, int *nread) {
       (*nread)++;
     }
     if (ferror(names))
-      ohshite("error during read of method options file `%.250s'",pathbuf);
+      ohshite(_("error during read of method options file `%.250s'"),pathbuf);
     fclose(names);
   }
   closedir(dir);
-  if (debug) fprintf(debug,"readmethods(`%s',...) done\n", pathbase);
+  if (debug) fprintf(debug,_("readmethods(`%s',...) done\n"), pathbase);
   delete[] pathbuf;
 }
 
@@ -243,28 +243,28 @@ void getcurrentopt() {
   cmo= fopen(methoptfile,"r");
   if (!cmo) {
     if (errno == ENOENT) return;
-    ohshite("unable to open current option file `%.250s'",methoptfile);
+    ohshite(_("unable to open current option file `%.250s'"),methoptfile);
   }
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt open\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt open\n"));
   if (!fgets(methoptbuf,sizeof(methoptbuf),cmo)) { fclose(cmo); return; }
   if (fgetc(cmo) != EOF) { fclose(cmo); return; }
   if (!feof(cmo)) { fclose(cmo); return; }
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt eof\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt eof\n"));
   fclose(cmo);
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt read\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt read\n"));
   l= strlen(methoptbuf);  if (!l || methoptbuf[l-1] != '\n') return;
   methoptbuf[--l]= 0;
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt len and newline\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt len and newline\n"));
   p= strchr(methoptbuf,' ');  if (!p) return;
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt space\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt space\n"));
   *p++= 0;
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt meth name `%s'\n", methoptbuf);
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt meth name `%s'\n"), methoptbuf);
   for (meth= methods; meth && strcmp(methoptbuf,meth->name); meth= meth->next);
   if (!meth) return;
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt meth found; opt `%s'\n",p);
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt meth found; opt `%s'\n"),p);
   for (opt= options; opt && (opt->meth != meth || strcmp(p,opt->name)); opt= opt->next);
   if (!opt) return;
-  if (debug) fprintf(debug,"getcurrentopt() cmethopt opt found\n");
+  if (debug) fprintf(debug,_("getcurrentopt() cmethopt opt found\n"));
   coption= opt;
 }
 
@@ -281,13 +281,13 @@ void writecurrentopt() {
     strcpy(newfile+l, NEWDBEXT);
   }
   cmo= fopen(newfile,"w");
-  if (!cmo) ohshite("unable to open new option file `%.250s'",newfile);
+  if (!cmo) ohshite(_("unable to open new option file `%.250s'"),newfile);
   if (fprintf(cmo,"%s %s\n",coption->meth->name,coption->name) == EOF) {
     fclose(cmo);
-    ohshite("unable to write new option to `%.250s'",newfile);
+    ohshite(_("unable to write new option to `%.250s'"),newfile);
   }
   if (fclose(cmo))
-    ohshite("unable to close new option file `%.250s'",newfile);
+    ohshite(_("unable to close new option file `%.250s'"),newfile);
   if (rename(newfile,methoptfile))
-    ohshite("unable to install new option as `%.250s'",methoptfile);
+    ohshite(_("unable to install new option as `%.250s'"),methoptfile);
 }
index a2e9d2915472e075288a202664ca98796a6ce004..1de9e8e27ff7743da99a6bd46c7e1d11311a04bf 100644 (file)
@@ -44,7 +44,7 @@ int packagelist::affectedmatches(struct pkginfo *pkg, struct pkginfo *comparewit
   case sso_unsorted:
     break;
   default:
-    internerr("unknown statsortorder in affectedmatches");
+    internerr(_("unknown statsortorder in affectedmatches"));
   }
   if (comparewith->priority != pkginfo::pri_unset &&
       (comparewith->priority != pkg->priority ||
@@ -136,7 +136,7 @@ void packagelist::kd_purge()    { setwant(pkginfo::want_purge);     }
 
 int would_like_to_install(pkginfo::pkgwant wantvalue, pkginfo *pkg) {
   /* Returns: 1 for yes, 0 for no, -1 for if they want to preserve an error condition. */
-  if (debug) fprintf(debug,"would_like_to_install(%d, %s) status %d\n",
+  if (debug) fprintf(debug,_("would_like_to_install(%d, %s) status %d\n"),
                      wantvalue,pkg->name,pkg->status);
   
   if (wantvalue == pkginfo::want_install) return 1;
@@ -157,7 +157,7 @@ void packagelist::kd_swapstatorder() {
   case sso_avail:     statsortorder= sso_state;     break;
   case sso_state:     statsortorder= sso_unsorted;  break;
   case sso_unsorted:  statsortorder= sso_avail;     break;
-  default: internerr("unknown statsort in kd_swapstatorder");
+  default: internerr(_("unknown statsort in kd_swapstatorder"));
   }
   resortredisplay();
 }
@@ -168,7 +168,7 @@ void packagelist::kd_swaporder() {
   case so_section:   sortorder= so_alpha;     break;
   case so_alpha:     sortorder= so_priority;  break;
   case so_unsorted:                           return;
-  default: internerr("unknown sort in kd_swaporder");
+  default: internerr(_("unknown sort in kd_swaporder"));
   }
   resortredisplay();
 }
@@ -204,7 +204,7 @@ void packagelist::kd_versiondisplay() {
   case vdo_both:       versiondisplayopt= vdo_none;       break;
   case vdo_none:       versiondisplayopt= vdo_available;  break;
   case vdo_available:  versiondisplayopt= vdo_both;       break;
-  default: internerr("unknown versiondisplayopt in kd_versiondisplay");
+  default: internerr(_("unknown versiondisplayopt in kd_versiondisplay"));
   }
   setwidths();
   leftofscreen= 0;
index 6b2b7fd3a3c35f193f6798bf590647b3a3558138..5e11470f149ab1b0c4daf7b618ac3fd3f35ec58c 100644 (file)
@@ -49,7 +49,7 @@ pkginfoperfile *packagelist::findinfo(pkginfo *pkg) {
   pkginfoperfile *r;
   r= useavailable(pkg) ? &pkg->available : &pkg->installed;
   if (debug)
-    fprintf(debug,"packagelist[%p]::findinfo(%s) useavailable=%d\n",this,pkg->name,useavailable(pkg));
+    fprintf(debug,_("packagelist[%p]::findinfo(%s) useavailable=%d\n"),this,pkg->name,useavailable(pkg));
   if (!r->valid) blankpackageperfile(r);
   return r;
 }
@@ -78,7 +78,7 @@ int packagelist::resolvesuggest() {
   // Return 2 if we made a change due to a Recommended, Depends or Conficts,
   // or 1 if we offered or made a change because of an Optional line.
   if (debug)
-    fprintf(debug,"packagelist[%p]::resolvesuggest()\n",this);
+    fprintf(debug,_("packagelist[%p]::resolvesuggest()\n"),this);
   int changemade, maxchangemade;
   maxchangemade= 0;
   for (;;) {
@@ -87,7 +87,7 @@ int packagelist::resolvesuggest() {
     for (index=0; index<nitems; index++) {
       if (!table[index]->pkg->name) continue;
       if (depdebug && debug)
-        fprintf(debug,"packagelist[%p]::resolvesuggest() loop[%i] %s / %d\n",
+        fprintf(debug,_("packagelist[%p]::resolvesuggest() loop[%i] %s / %d\n"),
                 this, index, table[index]->pkg->name, changemade);
       dependency *depends;
       for (depends= findinfo(table[index]->pkg)->depends;
@@ -103,14 +103,14 @@ int packagelist::resolvesuggest() {
         changemade= checkdependers(depends->list->ed,changemade);
       }
       if (depdebug && debug)
-        fprintf(debug,"packagelist[%p]::resolvesuggest() loop[%i] %s / -> %d\n",
+        fprintf(debug,_("packagelist[%p]::resolvesuggest() loop[%i] %s / -> %d\n"),
                 this, index, table[index]->pkg->name, changemade);
     }
     if (!changemade) break;
     maxchangemade= greaterint(maxchangemade, changemade);
   }
   if (debug)
-    fprintf(debug,"packagelist[%p]::resolvesuggest() done; maxchangemade=%d\n",
+    fprintf(debug,_("packagelist[%p]::resolvesuggest() done; maxchangemade=%d\n"),
             this,maxchangemade);
   return maxchangemade;
 }
@@ -120,7 +120,7 @@ static int dep_update_best_to_change_stop(perpackagestate *& best, pkginfo *tryt
   if (!trythis->clientdata) return 0;
   
   if (depdebug && debug)
-    fprintf(debug,"update_best_to_change(best=%s{%d}, test=%s{%d});\n",
+    fprintf(debug,_("update_best_to_change(best=%s{%d}, test=%s{%d});\n"),
             best ? best->pkg->name : "", best ? (int)best->spriority : -1,
             trythis->name, trythis->clientdata->spriority);
 
@@ -150,7 +150,7 @@ static int dep_update_best_to_change_stop(perpackagestate *& best, pkginfo *tryt
   return 0;
   
  yes:
-  if (depdebug && debug) fprintf(debug,"update_best_to_change(); yes\n");
+  if (depdebug && debug) fprintf(debug,_("update_best_to_change(); yes\n"));
 
   best=trythis->clientdata; return 0;
 }
@@ -168,7 +168,7 @@ int packagelist::deselect_one_of(pkginfo *per, pkginfo *ped, dependency *display
   ed= ped->clientdata;
   
   if (depdebug && debug)
-    fprintf(debug,"packagelist[%p]::deselect_one_of(): er %s{%d} ed %s{%d} [%p]\n",
+    fprintf(debug,_("packagelist[%p]::deselect_one_of(): er %s{%d} ed %s{%d} [%p]\n"),
             this, er->pkg->name, er->spriority, ed->pkg->name, ed->spriority, display);
   
   perpackagestate *best;
@@ -185,7 +185,7 @@ int packagelist::deselect_one_of(pkginfo *per, pkginfo *ped, dependency *display
   else best= ed;                                      // ... failing that, the second
 
   if (depdebug && debug)
-    fprintf(debug,"packagelist[%p]::deselect_one_of(): best %s{%d}\n",
+    fprintf(debug,_("packagelist[%p]::deselect_one_of(): best %s{%d}\n"),
             this, best->pkg->name, best->spriority);
 
   if (best->spriority >= sp_deselecting) return 0;
@@ -204,14 +204,14 @@ int packagelist::resolvedepcon(dependency *depends) {
   int r, foundany;
 
   if (depdebug && debug) {
-    fprintf(debug,"packagelist[%p]::resolvedepcon([%p] %s --%s-->",
-            this,depends,depends->up->name,relatestrings[depends->type]);
+    fprintf(debug,_("packagelist[%p]::resolvedepcon([%p] %s --%s-->"),
+          this,depends,depends->up->name,gettext(relatestrings[depends->type]));
     for (possi=depends->list; possi; possi=possi->next)
       fprintf(debug," %s",possi->ed->name);
     fprintf(debug,"); (ing)->want=%s\n",
             depends->up->clientdata
-            ? wantstrings[depends->up->clientdata->suggested]
-            : "(no clientdata)");
+            ? gettext(wantstrings[depends->up->clientdata->suggested])
+            : _("(no clientdata)"));
   }
   
   if (!depends->up->clientdata) return 0;
@@ -238,9 +238,9 @@ int packagelist::resolvedepcon(dependency *depends) {
          possi && !deppossatisfied(possi,&fixbyupgrade);
          possi= possi->next);
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): depends found %s\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): depends found %s\n"),
               this,depends,
-              possi ? possi->ed->name : "[none]");
+              possi ? possi->ed->name : _("[none]"));
     if (possi) return 0;
 
     // Ensures all in the recursive list; adds info strings; ups priorities
@@ -249,8 +249,8 @@ int packagelist::resolvedepcon(dependency *depends) {
     if (depends->type == dep_suggests) return r;
 
     if (fixbyupgrade) {
-      if (depdebug && debug) fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): "
-                            "fixbyupgrade %s\n", this,depends,fixbyupgrade->pkg->name);
+      if (depdebug && debug) fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): "
+                            "fixbyupgrade %s\n"), this,depends,fixbyupgrade->pkg->name);
       best= fixbyupgrade;
     } else {
       best= 0;
@@ -270,13 +270,13 @@ int packagelist::resolvedepcon(dependency *depends) {
         if (!foundany) addunavailable(possi);
       }
       if (!best) {
-        if (depdebug && debug) fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): "
-                              "mustdeselect nobest\n", this,depends);
+        if (depdebug && debug) fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): "
+                              "mustdeselect nobest\n"), this,depends);
         return r;
       }
     }
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): select best=%s{%d}\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): select best=%s{%d}\n"),
               this,depends, best->pkg->name, best->spriority);
     if (best->spriority >= sp_selecting) return r;
     best->selected= best->suggested= pkginfo::want_install;
@@ -286,7 +286,7 @@ int packagelist::resolvedepcon(dependency *depends) {
   mustdeselect:
     best= depends->up->clientdata;
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): mustdeselect best=%s{%d}\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): mustdeselect best=%s{%d}\n"),
               this,depends, best->pkg->name, best->spriority);
 
     if (best->spriority >= sp_deselecting) return r;
@@ -299,20 +299,20 @@ int packagelist::resolvedepcon(dependency *depends) {
   case dep_conflicts:
 
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): conflict\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): conflict\n"),
               this,depends);
     
     if (would_like_to_install(depends->up->clientdata->selected,depends->up) == 0)
       return 0;
 
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): conflict installing 1\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): conflict installing 1\n"),
               this,depends);
 
     if (!deppossatisfied(depends->list,0)) return 0;
 
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): conflict satisfied - ouch\n",
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): conflict satisfied - ouch\n"),
               this,depends);
 
     if (depends->up != depends->list->ed) {
@@ -327,11 +327,11 @@ int packagelist::resolvedepcon(dependency *depends) {
       r= deselect_one_of(depends->up, provider->up->up, depends);  if (r) return r;
     }
     if (depdebug && debug)
-      fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): no desel\n", this,depends);
+      fprintf(debug,_("packagelist[%p]::resolvedepcon([%p]): no desel\n"), this,depends);
     return 0;
     
   default:
-    internerr("unknown deptype");
+    internerr(_("unknown deptype"));
   }
   /* never reached, make gcc happy */
   return 1;
index 16a4ff2865b3d6b0ecb6063de122207a30fe0e8e..82ac23623f90ca1d1bbfebe271fa27511d565bff 100644 (file)
@@ -35,54 +35,90 @@ extern "C" {
 
 /* These MUST be in the same order as the corresponding enums in dpkg-db.h */
 const char
-  *const wantstrings[]=   { "new package", "install", "hold", "remove", "purge", 0 },
-  *const eflagstrings[]=   { "", "REINSTALL", 0 },
-  *const statusstrings[]= { "not installed", "unpacked (not set up)",
-                            "failed config", "installed", "half installed",
-                            "removed (configs remain)", 0                             },
-  *const prioritystrings[]=  { "Required", "Important", "Standard", "Recommended",
-                               "Optional", "Extra", "Contrib",
-                               "!Bug!", "Unclassified", 0                             },
-  *const relatestrings[]= { "suggests", "recommends", "depends on", "pre-depends on",
-                            "conflicts with", "provides", "replaces", 0               },
-  *const priorityabbrevs[]=  { "Req", "Imp", "Std", "Rec",
-                               "Opt", "Xtr", "Ctb",
-                               "bUG", "?"                  };
+  *const wantstrings[]=   { N_("new package"), 
+                           N_("install"),
+                           N_("hold"),
+                           N_("remove"), 
+                           N_("purge"),
+                           0 },
+
+  *const eflagstrings[]=   { N_(""), 
+                            N_("REINSTALL"), 
+                            0 },
+
+  *const statusstrings[]= { N_("not installed"),
+                           N_("unpacked (not set up)"),
+                           N_("failed config"),
+                           N_("installed"),
+                           N_("half installed"),
+                           N_("removed (configs remain)"),
+                           0 },
+
+  *const prioritystrings[]=  { N_("Required"),
+                              N_("Important"),
+                              N_("Standard"),
+                              N_("Recommended"),
+                              N_("Optional"),
+                              N_("Extra"),
+                              N_("Contrib"),
+                              N_("!Bug!"),
+                              N_("Unclassified"),
+                              0 },
+
+  *const relatestrings[]= { N_("suggests"),
+                           N_("recommends"),
+                           N_("depends on"),
+                           N_("pre-depends on"),
+                           N_("conflicts with"),
+                           N_("provides"),
+                           N_("replaces"),
+                           0 },
+
+  *const priorityabbrevs[]=  { N_("Req"),
+                              N_("Imp"),
+                              N_("Std"),
+                              N_("Rec"),
+                              N_("Opt"),
+                              N_("Xtr"),
+                              N_("Ctb"),
+                              N_("bUG"),
+                              N_("?") };
+
 const char statuschars[]=   " UC*I-";
 const char eflagchars[]=     " R?#";
 const char wantchars[]=     "n*=-_";
 
 /* These MUST be in the same order as the corresponding enums in pkglist.h */
 const char
-  *const ssaabbrevs[]= { "Broken",
-                         "New",
-                         "Updated",
-                         "Obsolete/local",
-                         "Up-to-date",
-                         "Available",
-                         "Removed" },
-  *const ssastrings[]= { "Brokenly installed packages",
-                         "Newly available packages",
-                         "Updated packages (newer version is available)",
-                         "Obsolete and local packages present on system",
-                         "Up to date installed packages",
-                         "Available packages (not currently installed)",
-                         "Removed and no longer available packages" };
+  *const ssaabbrevs[]= { N_("Broken"),
+                         N_("New"),
+                         N_("Updated"),
+                         N_("Obsolete/local"),
+                         N_("Up-to-date"),
+                         N_("Available"),
+                         N_("Removed") },
+  *const ssastrings[]= { N_("Brokenly installed packages"),
+                         N_("Newly available packages"),
+                         N_("Updated packages (newer version is available)"),
+                         N_("Obsolete and local packages present on system"),
+                         N_("Up to date installed packages"),
+                         N_("Available packages (not currently installed)"),
+                         N_("Removed and no longer available packages") };
 
 const char
-  *const sssstrings[]= { "Brokenly installed packages",
-                         "Installed packages",
-                         "Removed packages (configuration still present)",
-                         "Purged packages and those never installed" },
-  *const sssabbrevs[]= { "Broken",
-                         "Installed",
-                         "Removed",
-                         "Purged" };
+  *const sssstrings[]= { N_("Brokenly installed packages"),
+                         N_("Installed packages"),
+                         N_("Removed packages (configuration still present)"),
+                         N_("Purged packages and those never installed") },
+  *const sssabbrevs[]= { N_("Broken"),
+                         N_("Installed"),
+                         N_("Removed"),
+                         N_("Purged") };
 
 static int maximumstring(const char *const *array) {
   int maxlen= 0;
   while (*array) {
-    int l= strlen(*array);
+    int l= strlen(gettext(*array));
     const char *p= strchr(*array, '(');
     if (p && p > *array && *--p == ' ') l= p - *array;
     if (l > maxlen) maxlen= l;
@@ -92,7 +128,7 @@ static int maximumstring(const char *const *array) {
 }
 
 void packagelist::setwidths() {
-  if (debug) fprintf(debug,"packagelist[%p]::setwidths()\n",this);
+  if (debug) fprintf(debug,_("packagelist[%p]::setwidths()\n"),this);
 
   if (verbose) {
     status_hold_width= 9;
@@ -142,7 +178,7 @@ void packagelist::setwidths() {
     description_column= versionavailable_column + versionavailable_width + gap_width;
     break;
   default:
-    internerr("unknown versiondisplayopt in setwidths");
+    internerr(_("unknown versiondisplayopt in setwidths"));
   }
     
   total_width= TOTAL_LIST_WIDTH;
@@ -155,9 +191,9 @@ void packagelist::redrawtitle() {
   if (title_height) {
     mywerase(titlewin);
     mvwaddnstr(titlewin,0,0,
-               recursive ?  "dselect - recursive package listing" :
-               !readwrite ? "dselect - inspection of package states" :
-                            "dselect - main package listing",
+               recursive ?  _("dselect - recursive package listing") :
+               !readwrite ? _("dselect - inspection of package states") :
+                            _("dselect - main package listing"),
                xmax);
     getyx(titlewin,y,x);
     if (x < xmax) {
@@ -165,60 +201,60 @@ void packagelist::redrawtitle() {
       case so_section:
         switch (statsortorder) {
         case sso_unsorted:
-          waddnstr(titlewin, " (by section)", xmax-x);
+          waddnstr(titlewin, _(" (by section)"), xmax-x);
           break;
         case sso_avail:
-          waddnstr(titlewin, " (avail., section)", xmax-x);
+          waddnstr(titlewin, _(" (avail., section)"), xmax-x);
           break;
         case sso_state:
-          waddnstr(titlewin, " (status, section)", xmax-x);
+          waddnstr(titlewin, _(" (status, section)"), xmax-x);
           break;
         default:
-          internerr("bad statsort in redrawtitle/so_section");
+          internerr(_("bad statsort in redrawtitle/so_section"));
         }
         break;
       case so_priority:
         switch (statsortorder) {
         case sso_unsorted:
-          waddnstr(titlewin, " (by priority)", xmax-x);
+          waddnstr(titlewin, _(" (by priority)"), xmax-x);
           break;
         case sso_avail:
-          waddnstr(titlewin, " (avail., priority)", xmax-x);
+          waddnstr(titlewin, _(" (avail., priority)"), xmax-x);
           break;
         case sso_state:
-          waddnstr(titlewin, " (status, priority)", xmax-x);
+          waddnstr(titlewin, _(" (status, priority)"), xmax-x);
           break;
         default:
-          internerr("bad statsort in redrawtitle/so_priority");
+          internerr(_("bad statsort in redrawtitle/so_priority"));
         }
         break;
       case so_alpha:
         switch (statsortorder) {
         case sso_unsorted:
-          waddnstr(titlewin, " (alphabetically)", xmax-x);
+          waddnstr(titlewin, _(" (alphabetically)"), xmax-x);
           break;
         case sso_avail:
-          waddnstr(titlewin, " (by availability)", xmax-x);
+          waddnstr(titlewin, _(" (by availability)"), xmax-x);
           break;
         case sso_state:
-          waddnstr(titlewin, " (by status)", xmax-x);
+          waddnstr(titlewin, _(" (by status)"), xmax-x);
           break;
         default:
-          internerr("bad statsort in redrawtitle/so_priority");
+          internerr(_("bad statsort in redrawtitle/so_priority"));
         }
         break;
-        waddnstr(titlewin, " (alphabetically)", xmax-x);
+        waddnstr(titlewin, _(" (alphabetically)"), xmax-x);
         break;
       case so_unsorted:
         break;
       default:
-        internerr("bad sort in redrawtitle");
+        internerr(_("bad sort in redrawtitle"));
       }
     }
-    const char *helpstring= readwrite ? (verbose ? " mark:+/=/- terse:v help:?"
-                                                 : " mark:+/=/- verbose:v help:?")
-                                      : (verbose ? " terse:v help:?"
-                                                 : " verbose:v help:?");
+    const char *helpstring= readwrite ? (verbose ? _(" mark:+/=/- terse:v help:?")
+                                                 : _(" mark:+/=/- verbose:v help:?"))
+                                      : (verbose ? _(" terse:v help:?")
+                                                 : _(" verbose:v help:?"));
     int l= strlen(helpstring);
     getyx(titlewin,y,x);
     if (xmax-l > 0) {
index 1428c580d7edac1b9824952de84841657f373ffe..aa9ad06a77bb52c13dcd0ace1db867a8eb5e4295 100644 (file)
@@ -78,7 +78,7 @@ const packagelist::infotype *const packagelist::baseinfo= infoinfos;
 void packagelist::severalinfoblurb(const char *whatinfoline) {
   whatinfovb(whatinfoline);
   varbuf vb;
-  vb("The line you have highlighted represents many packages; "
+  vb(_("The line you have highlighted represents many packages; "
      "if you ask to install, remove, hold, &c it you will affect all "
      "the packages which match the criterion shown.\n"
      "\n"
@@ -86,29 +86,29 @@ void packagelist::severalinfoblurb(const char *whatinfoline) {
      "you will see information about that package displayed here."
      "\n"
      "You can use `o' and `O' to change the sort order and give yourself "
-     "the opportunity to mark packages in different kinds of groups.");
+     "the opportunity to mark packages in different kinds of groups."));
   wordwrapinfo(0,vb.string());
 }
 
 void packagelist::itd_relations() {
   if (table[cursorline]->pkg->name) {
-    whatinfovb("interrelationships affecting ");
+    whatinfovb(_("interrelationships affecting "));
     whatinfovb(table[cursorline]->pkg->name);
-    if (debug) fprintf(debug,"packagelist[%p]::idt_relations(); `%s'\n",
+    if (debug) fprintf(debug,_("packagelist[%p]::idt_relations(); `%s'\n"),
                        this,table[cursorline]->relations.string());
     waddstr(infopad,table[cursorline]->relations.string());
   } else {
-    severalinfoblurb("interrelationships");
+    severalinfoblurb(_("interrelationships"));
   }
 }
 
 void packagelist::itd_description() {
   if (table[cursorline]->pkg->name) {
-    whatinfovb("description of ");
+    whatinfovb(_("description of "));
     whatinfovb(table[cursorline]->pkg->name);
 
     const char *m= table[cursorline]->pkg->available.description;
-    if (!m || !*m) m= "no description available.";
+    if (!m || !*m) m= _("no description available.");
     const char *p= strchr(m,'\n');
     int l= p ? (int)(p-m) : strlen(m);
     wattrset(infopad,info_headattr);
@@ -121,22 +121,22 @@ void packagelist::itd_description() {
       wordwrapinfo(1,++p);
     }
   } else {
-    severalinfoblurb("description");
+    severalinfoblurb(_("description"));
   }
 }
 
 void packagelist::itd_statuscontrol() {
   werase(infopad);
   if (!table[cursorline]->pkg->name) {
-    severalinfoblurb("currently installed control info");
+    severalinfoblurb(_("currently installed control info"));
   } else {
-    whatinfovb("installed control info for ");
+    whatinfovb(_("installed control info for "));
     whatinfovb(table[cursorline]->pkg->name);
     varbuf vb;
     varbufrecord(&vb,table[cursorline]->pkg,&table[cursorline]->pkg->installed);
     vb.terminate();
     if (debug)
-      fprintf(debug,"packagelist[%p]::idt_statuscontrol(); `%s'\n",this,vb.string());
+      fprintf(debug,_("packagelist[%p]::idt_statuscontrol(); `%s'\n"),this,vb.string());
     waddstr(infopad,vb.string());
   }
 }
@@ -144,15 +144,15 @@ void packagelist::itd_statuscontrol() {
 void packagelist::itd_availablecontrol() {
   werase(infopad);
   if (!table[cursorline]->pkg->name) {
-    severalinfoblurb("available version of control file info");
+    severalinfoblurb(_("available version of control file info"));
   } else {
-    whatinfovb("available version of control info for ");
+    whatinfovb(_("available version of control info for "));
     whatinfovb(table[cursorline]->pkg->name);
     varbuf vb;
     varbufrecord(&vb,table[cursorline]->pkg,&table[cursorline]->pkg->available);
     vb.terminate();
     if (debug)
-      fprintf(debug,"packagelist[%p]::idt_availablecontrol(); `%s'\n",this,vb.string());
+      fprintf(debug,_("packagelist[%p]::idt_availablecontrol(); `%s'\n"),this,vb.string());
     waddstr(infopad,vb.string());
   }
 }
@@ -169,7 +169,7 @@ void packagelist::redrawinfo() {
   werase(infopad); wmove(infopad,0,0);
   
   if (debug)
-    fprintf(debug,"packagelist[%p]::redrawinfo(); #=%d\n", this,
+    fprintf(debug,_("packagelist[%p]::redrawinfo(); #=%d\n"), this,
             (int)(currentinfo - baseinfo));
   
   (this->*currentinfo->display)();
index a3987adce01c13ede6ba780c7e13a91649a1d7f9..829a21ddde6acdf95cfea965400209a6a21f67a5 100644 (file)
@@ -45,7 +45,7 @@ int packagelist::compareentries(struct perpackagestate *a,
   case sso_unsorted:
     break;
   default:
-    internerr("unknown statsortorder in compareentries");
+    internerr(_("unknown statsortorder in compareentries"));
   }
 
   const char *asection= a->pkg->section;
@@ -76,7 +76,7 @@ int packagelist::compareentries(struct perpackagestate *a,
     return c_name;
   case so_unsorted:
   default:
-    internerr("unsorted or unknown in compareentries");
+    internerr(_("unsorted or unknown in compareentries"));
   }
   /* never reached, make gcc happy */
   return 1;
@@ -116,10 +116,10 @@ void packagelist::addheading(enum ssavailval ssavail,
     table= newtable;
   }
   
-  if (debug) fprintf(debug,"packagelist[%p]::addheading(%d,%d,%d,%s,%s)\n",
+  if (debug) fprintf(debug,_("packagelist[%p]::addheading(%d,%d,%d,%s,%s)\n"),
                      this,ssavail,ssstate,priority,
-                     otherpriority ? otherpriority : "<null>",
-                     section ? section : "<null>");
+                     otherpriority ? otherpriority : _("<null>"),
+                     section ? section : _("<null>"));
 
   struct pkginfo *newhead= new pkginfo;
   newhead->name= 0;
@@ -148,7 +148,7 @@ int qsort_compareentries(const void *a, const void *b) {
 void packagelist::sortinplace() {
   sortpackagelist= this;
 
-  if (debug) fprintf(debug,"packagelist[%p]::sortinplace()\n",this);
+  if (debug) fprintf(debug,_("packagelist[%p]::sortinplace()\n"),this);
   qsort(table,nitems,sizeof(struct pkginfoperfile*),qsort_compareentries);
 }
 
@@ -158,20 +158,20 @@ void packagelist::ensurestatsortinfo() {
   struct pkginfo *pkg;
   int index;
   
-  if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() "
-                     "sortorder=%d nitems=%d\n",this,statsortorder,nitems);
+  if (debug) fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() "
+                     "sortorder=%d nitems=%d\n"),this,statsortorder,nitems);
   
   switch (statsortorder) {
   case sso_unsorted:
-    if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() unsorted\n",this);
+    if (debug) fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() unsorted\n"),this);
     return;
   case sso_avail:
-    if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() calcssadone=%d\n",
+    if (debug) fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() calcssadone=%d\n"),
                        this,calcssadone);
     if (calcssadone) return;
     for (index=0; index < nitems; index++) {
       if (debug)
-        fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n",
+        fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n"),
                 this,index,table[index]->pkg->name);
       pkg= table[index]->pkg;
       if (!pkg->installed.valid) blankpackageperfile(&pkg->installed);
@@ -204,22 +204,22 @@ void packagelist::ensurestatsortinfo() {
         }
         break;
       default:
-        internerr("unknown stat in ensurestatsortinfo sso_avail");
+        internerr(_("unknown stat in ensurestatsortinfo sso_avail"));
       }
       if (debug)
-        fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d ssavail=%d\n",
+        fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() i=%d ssavail=%d\n"),
                 this,index,table[index]->ssavail);
   
     }
     calcssadone= 1;
     break;
   case sso_state:
-    if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() calcsssdone=%d\n",
+    if (debug) fprintf(debug,_(_("packagelist[%p]::ensurestatsortinfos() calcsssdone=%d\n")),
                        this,calcsssdone);
     if (calcsssdone) return;
     for (index=0; index < nitems; index++) {
       if (debug)
-        fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n",
+        fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n"),
                 this,index,table[index]->pkg->name);
       switch (table[index]->pkg->status) {
       case pkginfo::stat_unpacked:
@@ -237,17 +237,17 @@ void packagelist::ensurestatsortinfo() {
         table[index]->ssstate= sss_installed;
         break;
       default:
-        internerr("unknown stat in ensurestatsortinfo sso_state");
+        internerr(_("unknown stat in ensurestatsortinfo sso_state"));
       }
       if (debug)
-        fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d ssstate=%d\n",
+        fprintf(debug,_("packagelist[%p]::ensurestatsortinfos() i=%d ssstate=%d\n"),
                 this,index,table[index]->ssstate);
   
     }
     calcsssdone= 1;
     break;
   default:
-    internerr("unknown statsortorder in ensurestatsortinfo");
+    internerr(_("unknown statsortorder in ensurestatsortinfo"));
   }
 }
 
index 1c301f62f9865390d916f6fa245b277695816857..b9b9db82633a7b3dd94d6a6eb70ed6734a95fbcf 100644 (file)
@@ -34,12 +34,12 @@ extern "C" {
 #include "bindings.h"
 
 void packagelist::add(pkginfo *pkg) {
-  if (debug) fprintf(debug,"packagelist[%p]::add(pkginfo %s)\n",this,pkg->name);
+  if (debug) fprintf(debug,_("packagelist[%p]::add(pkginfo %s)\n"),this,pkg->name);
   if (!recursive ||  // never add things to top level
       !pkg->clientdata ||  // don't add pure virtual packages
       pkg->clientdata->uprec)  // don't add ones already in the recursive list
     return;
-  if (debug) fprintf(debug,"packagelist[%p]::add(pkginfo %s) adding\n",this,pkg->name);
+  if (debug) fprintf(debug,_("packagelist[%p]::add(pkginfo %s) adding\n"),this,pkg->name);
   perpackagestate *state= &datatable[nitems];
   state->pkg= pkg;
   state->direct= state->original= pkg->clientdata->selected;
@@ -53,15 +53,15 @@ void packagelist::add(pkginfo *pkg) {
 }   
 
 void packagelist::add(pkginfo *pkg, pkginfo::pkgwant nw) {
-  if (debug) fprintf(debug,"packagelist[%p]::add(pkginfo %s, %s)\n",
-                     this,pkg->name,wantstrings[nw]);
+  if (debug) fprintf(debug,_("packagelist[%p]::add(pkginfo %s, %s)\n"),
+                     this,pkg->name,gettext(wantstrings[nw]));
   add(pkg);  if (!pkg->clientdata) return;
   pkg->clientdata->direct= nw;
   selpriority np;
   np= would_like_to_install(nw,pkg) ? sp_selecting : sp_deselecting;
   if (pkg->clientdata->spriority > np) return;
-  if (debug) fprintf(debug,"packagelist[%p]::add(pkginfo %s, %s) setting\n",
-                     this,pkg->name,wantstrings[nw]);
+  if (debug) fprintf(debug,_("packagelist[%p]::add(pkginfo %s, %s) setting\n"),
+                     this,pkg->name,gettext(wantstrings[nw]));
   pkg->clientdata->suggested= pkg->clientdata->selected= nw;
   pkg->clientdata->spriority= np;
     
@@ -69,7 +69,7 @@ void packagelist::add(pkginfo *pkg, pkginfo::pkgwant nw) {
 
 void packagelist::add(pkginfo *pkg, const char *extrainfo, showpriority showimp) {
   if (debug)
-    fprintf(debug,"packagelist[%p]::add(pkginfo %s, \"...\", showpriority %d)\n",
+    fprintf(debug,_("packagelist[%p]::add(pkginfo %s, \"...\", showpriority %d)\n"),
             this,pkg->name,showimp);
   add(pkg);  if (!pkg->clientdata) return;
   if (pkg->clientdata->dpriority < showimp) pkg->clientdata->dpriority= showimp;
@@ -82,7 +82,7 @@ int packagelist::alreadydone(doneent **done, void *check) {
   
   for (search= *done; search && search->dep != check; search=search->next);
   if (search) return 1;
-  if (debug) fprintf(debug,"packagelist[%p]::alreadydone(%p,%p) new\n",
+  if (debug) fprintf(debug,_("packagelist[%p]::alreadydone(%p,%p) new\n"),
                      this,done,check);
   search= new doneent;
   search->next= *done;
@@ -92,7 +92,7 @@ int packagelist::alreadydone(doneent **done, void *check) {
 }
 
 void packagelist::addunavailable(deppossi *possi) {
-  if (debug) fprintf(debug,"packagelist[%p]::addunavail(%p)\n",this,possi);
+  if (debug) fprintf(debug,_("packagelist[%p]::addunavail(%p)\n"),this,possi);
 
   if (!recursive) return;
   if (alreadydone(&unavdone,possi)) return;
@@ -106,7 +106,7 @@ void packagelist::addunavailable(deppossi *possi) {
 }
 
 int packagelist::add(dependency *depends, showpriority displayimportance) {
-  if (debug) fprintf(debug,"packagelist[%p]::add(dependency[%p])\n",this,depends);
+  if (debug) fprintf(debug,_("packagelist[%p]::add(dependency[%p])\n"),this,depends);
 
   if (alreadydone(&depsdone,depends)) return 0;
   
@@ -114,7 +114,7 @@ int packagelist::add(dependency *depends, showpriority displayimportance) {
   varbuf info;
   info(depends->up->name);
   info(' ');
-  info(relatestrings[depends->type]);
+  info(gettext(relatestrings[depends->type]));
   info(' ');
   deppossi *possi;
   for (possi=depends->list;
@@ -129,7 +129,7 @@ int packagelist::add(dependency *depends, showpriority displayimportance) {
       case dvr_earlierstrict: info(" (<< "); break;
       case dvr_laterstrict:   info(" (>> "); break;
       case dvr_exact:         info(" (= "); break;
-      default: internerr("unknown verrel");
+      default: internerr(_("unknown verrel"));
       }
       info(versiondescribe(&possi->version,vdew_never));
       info(")");
@@ -161,29 +161,29 @@ void repeatedlydisplay(packagelist *sub,
   pkginfo **newl;
   keybindings *kb;
   
-  if (debug) fprintf(debug,"repeatedlydisplay(packagelist[%p])\n",sub);
+  if (debug) fprintf(debug,_("repeatedlydisplay(packagelist[%p])\n"),sub);
   if (sub->resolvesuggest() != 0 && sub->deletelessimp_anyleft(initial)) {
-    if (debug) fprintf(debug,"repeatedlydisplay(packagelist[%p]) once\n",sub);
+    if (debug) fprintf(debug,_("repeatedlydisplay(packagelist[%p]) once\n"),sub);
     if (unredisplay) unredisplay->enddisplay();
     for (;;) {
       newl= sub->display();
       if (!newl) break;
-      if (debug) fprintf(debug,"repeatedlydisplay(packagelist[%p]) newl\n",sub);
+      if (debug) fprintf(debug,_("repeatedlydisplay(packagelist[%p]) newl\n"),sub);
       kb= sub->bindings; delete sub;
       sub= new packagelist(kb,newl);
       if (sub->resolvesuggest() <= 1) break;
       if (!sub->deletelessimp_anyleft(dp_must)) break;
-      if (debug) fprintf(debug,"repeatedlydisplay(packagelist[%p]) again\n",sub);
+      if (debug) fprintf(debug,_("repeatedlydisplay(packagelist[%p]) again\n"),sub);
     }
     if (unredisplay) unredisplay->startdisplay();
   }
   delete sub;
-  if (debug) fprintf(debug,"repeatedlydisplay(packagelist[%p]) done\n",sub);
+  if (debug) fprintf(debug,_("repeatedlydisplay(packagelist[%p]) done\n"),sub);
 }
 
 int packagelist::deletelessimp_anyleft(showpriority than) {
   if (debug)
-    fprintf(debug,"packagelist[%p]::dli_al(%d): nitems=%d\n",this,than,nitems);
+    fprintf(debug,_("packagelist[%p]::dli_al(%d): nitems=%d\n"),this,than,nitems);
   int insat, runthr;
   for (runthr=0, insat=0;
        runthr < nitems;
@@ -196,7 +196,7 @@ int packagelist::deletelessimp_anyleft(showpriority than) {
     }
   }
   nitems= insat;
-  if (debug) fprintf(debug,"packagelist[%p]::dli_al(%d) done; nitems=%d\n",
+  if (debug) fprintf(debug,_("packagelist[%p]::dli_al(%d) done; nitems=%d\n"),
                      this,than,nitems);
   return nitems;
 }
index 80577786d9bd83a98a5c1b17e7bd95790417d416..ba609505474bb46e91ec9bc056faa818575600aa 100644 (file)
@@ -41,7 +41,7 @@ const char *pkgprioritystring(const struct pkginfo *pkg) {
     return pkg->otherpriority;
   } else {
     assert(pkg->priority <= pkginfo::pri_unknown);
-    return prioritystrings[pkg->priority];
+    return gettext(prioritystrings[pkg->priority]);
   }
 }
 
@@ -53,7 +53,7 @@ int packagelist::describemany(char buf[], const char *prioritystring,
 
   statindent= 0;
   ssostring= 0;
-  ssoabbrev= "All";
+  ssoabbrev= _("All");
   switch (statsortorder) {
   case sso_avail:
     if (pps->ssavail == -1) break;
@@ -70,30 +70,30 @@ int packagelist::describemany(char buf[], const char *prioritystring,
   case sso_unsorted:
     break;
   default:
-    internerr("unknown statsortrder in describemany all");
+    internerr(_("unknown statsortrder in describemany all"));
   }
   
   if (!prioritystring) {
     if (!section) {
-      strcpy(buf, ssostring ? ssostring : "All packages");
+      strcpy(buf, ssostring ? gettext(ssostring) : _("All packages"));
       return statindent;
     } else {
       if (!*section) {
-        sprintf(buf,"%s packages without a section",ssoabbrev);
+        sprintf(buf,_("%s packages without a section"),gettext(ssoabbrev));
       } else {
-        sprintf(buf,"%s packages in section %s",ssoabbrev,section);
+        sprintf(buf,_("%s packages in section %s"),gettext(ssoabbrev),section);
       }
       return statindent+1;
     }
   } else {
     if (!section) {
-      sprintf(buf,"%s %s packages",ssoabbrev,prioritystring);
+      sprintf(buf,_("%s %s packages"),gettext(ssoabbrev),prioritystring);
       return statindent+1;
     } else {
       if (!*section) {
-        sprintf(buf,"%s %s packages without a section",ssoabbrev,prioritystring);
+        sprintf(buf,_("%s %s packages without a section"),gettext(ssoabbrev),prioritystring);
       } else {
-        sprintf(buf,"%s %s packages in section %s",ssoabbrev,prioritystring,section);
+        sprintf(buf,_("%s %s packages in section %s"),gettext(ssoabbrev),prioritystring,section);
       }
       return statindent+2;
     }
@@ -114,14 +114,14 @@ void packagelist::redrawthisstate() {
     
   if (table[cursorline]->pkg->name) {
     sprintf(buf,
-            "%-*s %s%s%s;  %s (was: %s).  %s",
+            _("%-*s %s%s%s;  %s (was: %s).  %s"),
             package_width,
             table[cursorline]->pkg->name,
-            statusstrings[table[cursorline]->pkg->status],
+            gettext(statusstrings[table[cursorline]->pkg->status]),
             eflagstrings[table[cursorline]->pkg->eflag][0] ? " - " : "",
-            eflagstrings[table[cursorline]->pkg->eflag],
-            wantstrings[table[cursorline]->selected],
-            wantstrings[table[cursorline]->original],
+            gettext(eflagstrings[table[cursorline]->pkg->eflag]),
+            gettext(wantstrings[table[cursorline]->selected]),
+            gettext(wantstrings[table[cursorline]->original]),
             priority);
   } else {
     describemany(buf,priority,section,table[cursorline]->pkg->clientdata);
@@ -147,26 +147,26 @@ void packagelist::redraw1itemsel(int index, int selected) {
 
       mvwprintw(listpad,index,0, "%-*.*s ",
                 status_hold_width, status_hold_width,
-                eflagstrings[pkg->eflag]);
+                gettext(eflagstrings[pkg->eflag]));
       wprintw(listpad, "%-*.*s ",
               status_status_width, status_status_width,
-              statusstrings[pkg->status]);
+              gettext(statusstrings[pkg->status]));
       wprintw(listpad, "%-*.*s ",
               status_want_width, status_want_width,
               /* fixme: keep this ? */
               /*table[index]->original == table[index]->selected ? "(same)"
-              : */wantstrings[table[index]->original]);
+              : */gettext(wantstrings[table[index]->original]));
       wattrset(listpad, selected ? selstatesel_attr : selstate_attr);
       wprintw(listpad, "%-*.*s",
               status_want_width, status_want_width,
-              wantstrings[table[index]->selected]);
+              gettext(wantstrings[table[index]->selected]));
       wattrset(listpad, selected ? listsel_attr : list_attr);
       waddch(listpad, ' ');
   
       mvwprintw(listpad,index,priority_column-1, " %-*.*s",
                 priority_width, priority_width,
                 pkg->priority == pkginfo::pri_other ? pkg->otherpriority :
-                prioritystrings[pkg->priority]);
+                gettext(prioritystrings[pkg->priority]));
 
     } else {
 
@@ -192,7 +192,7 @@ void packagelist::redraw1itemsel(int index, int selected) {
         while (i-- > 0) waddch(listpad,' ');
       } else {
         wprintw(listpad, "%-*.*s", priority_width, priority_width,
-                priorityabbrevs[pkg->priority]);
+                gettext(priorityabbrevs[pkg->priority]));
       }
 
     }
@@ -265,26 +265,26 @@ void packagelist::redrawcolheads() {
       for (int i=0; i<status_width-status_want_width; i++) waddch(colheadspad,'.');
       mvwaddnstr(colheadspad,0,
                  0,
-                 "Error",
+                 _("Error"),
                  status_hold_width);
       mvwaddnstr(colheadspad,0,
                  status_hold_width+1,
-                 "Installed?",
+                 _("Installed?"),
                  status_status_width);
       mvwaddnstr(colheadspad,0,
                  status_hold_width+status_status_width+2,
-                 "Old mark",
+                 _("Old mark"),
                  status_want_width);
       mvwaddnstr(colheadspad,0,
                  status_hold_width+status_status_width+status_want_width+3,
-                 "Marked for",
+                 _("Marked for"),
                  status_want_width);
     } else {
       mvwaddstr(colheadspad,0,0, "EIOM");
     }
-    mvwaddnstr(colheadspad,0,section_column, "Section", section_width);
-    mvwaddnstr(colheadspad,0,priority_column, "Priority", priority_width);
-    mvwaddnstr(colheadspad,0,package_column, "Package", package_width);
+    mvwaddnstr(colheadspad,0,section_column, _("Section"), section_width);
+    mvwaddnstr(colheadspad,0,priority_column, _("Priority"), priority_width);
+    mvwaddnstr(colheadspad,0,package_column, _("Package"), package_width);
 
     if (versioninstalled_width)
       mvwaddnstr(colheadspad,0,versioninstalled_column,
@@ -293,7 +293,7 @@ void packagelist::redrawcolheads() {
       mvwaddnstr(colheadspad,0,versionavailable_column,
                  "Avail.ver",versionavailable_width);
 
-    mvwaddnstr(colheadspad,0,description_column, "Description", description_width);
+    mvwaddnstr(colheadspad,0,description_column, _("Description"), description_width);
   }
   refreshcolheads();
 }
index 6d0f3f91a9ecdb6fb73609a30e63d56c3c7f303c..45fb898de5d166287a3800fedac51546b5fe2073 100644 (file)
@@ -4,3 +4,4 @@ dpkg.pot
 en.fmo
 fr.gmo
 stamp-cat-id
+POTFILES
index e691686bde9da9c52cf6a82149b3af11ae39665c..7254d3a545df8ff622718b536921901ff27fa0a6 100644 (file)
@@ -41,3 +41,19 @@ split/queue.c
 split/split.c
 
 md5sum/md5sum.c
+
+dselect/basecmds.cc
+dselect/baselist.cc
+dselect/bindings.cc
+dselect/main.cc
+dselect/methlist.cc
+dselect/method.cc
+dselect/methparse.cc
+dselect/pkgcmds.cc
+dselect/pkgdepcon.cc
+dselect/pkgdisplay.cc
+dselect/pkginfo.cc
+dselect/pkglist.cc
+dselect/pkgsublist.cc
+dselect/pkgtop.cc
+
index 98bb24a97270c9bd2d3ffd0b08fb2349b1188834..e5d7f440f5cebbef9f21993eeaffb70c0e41e028 100644 (file)
@@ -2,11 +2,12 @@
 # Copyright (C) YEAR Free Software Foundation, Inc.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
+#: dselect/pkgdisplay.cc:45
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-10-18 00:25-0400\n"
+"POT-Creation-Date: 1999-10-25 16:39+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -150,41 +151,41 @@ msgstr ""
 msgid "unable to install updated status of `%.250s'"
 msgstr ""
 
-#: lib/dump.c:247
+#: lib/dump.c:249
 #, c-format
 msgid "failed to open `%s' for writing %s information"
 msgstr ""
 
-#: lib/dump.c:250 lib/parse.c:94
+#: lib/dump.c:252 lib/parse.c:94
 msgid "unable to set buffering on status file"
 msgstr ""
 
-#: lib/dump.c:261
+#: lib/dump.c:263
 #, c-format
 msgid "failed to write %s record about `%.50s' to `%.250s'"
 msgstr ""
 
-#: lib/dump.c:268
+#: lib/dump.c:270
 #, c-format
 msgid "failed to flush %s information to `%.250s'"
 msgstr ""
 
-#: lib/dump.c:270
+#: lib/dump.c:272
 #, c-format
 msgid "failed to fsync %s information to `%.250s'"
 msgstr ""
 
-#: lib/dump.c:272
+#: lib/dump.c:274
 #, c-format
 msgid "failed to close `%.250s' after writing %s information"
 msgstr ""
 
-#: lib/dump.c:276
+#: lib/dump.c:278
 #, c-format
 msgid "failed to link `%.250s' to `%.250s' for backup of %s info"
 msgstr ""
 
-#: lib/dump.c:279
+#: lib/dump.c:281
 #, c-format
 msgid "failed to install `%.250s' as `%.250s' containing %s info"
 msgstr ""
@@ -421,7 +422,7 @@ msgstr ""
 msgid "subprocess %s failed with wait status code %d"
 msgstr ""
 
-#: lib/mlib.c:122 main/help.c:362
+#: lib/mlib.c:122 main/help.c:363
 #, c-format
 msgid "wait for %s failed"
 msgstr ""
@@ -787,85 +788,85 @@ msgid ""
 "%s"
 msgstr ""
 
-#: main/archives.c:599
+#: main/archives.c:601
 #, c-format
 msgid "dpkg: considering removing %s in favour of %s ...\n"
 msgstr ""
 
-#: main/archives.c:603
+#: main/archives.c:605
 #, c-format
 msgid "%s is not properly installed - ignoring any dependencies on it.\n"
 msgstr ""
 
-#: main/archives.c:630
+#: main/archives.c:632
 #, c-format
 msgid "dpkg: may have trouble removing %s, as it provides %s ...\n"
 msgstr ""
 
-#: main/archives.c:645
+#: main/archives.c:647
 #, c-format
 msgid ""
 "dpkg: package %s requires reinstallation, but will remove anyway as you "
 "request.\n"
 msgstr ""
 
-#: main/archives.c:648
+#: main/archives.c:650
 #, c-format
 msgid "dpkg: package %s requires reinstallation, will not remove.\n"
 msgstr ""
 
-#: main/archives.c:657
+#: main/archives.c:667
 #, c-format
 msgid "dpkg: yes, will remove %s in favour of %s.\n"
 msgstr ""
 
-#: main/archives.c:665
+#: main/archives.c:675
 #, c-format
 msgid ""
 "dpkg: regarding %s containing %s:\n"
 "%s"
 msgstr ""
 
-#: main/archives.c:668
+#: main/archives.c:678
 #, c-format
 msgid "conflicting packages - not installing %.250s"
 msgstr ""
 
-#: main/archives.c:669
+#: main/archives.c:679
 msgid "dpkg: warning - ignoring conflict, may proceed anyway !\n"
 msgstr ""
 
-#: main/archives.c:706
+#: main/archives.c:722
 #, c-format
 msgid "--%s --recursive needs at least one path argument"
 msgstr ""
 
-#: main/archives.c:735
+#: main/archives.c:751
 msgid "failed to exec find for --recursive"
 msgstr ""
 
-#: main/archives.c:739
+#: main/archives.c:755
 msgid "failed to fdopen find's pipe"
 msgstr ""
 
-#: main/archives.c:746
+#: main/archives.c:762
 msgid "error reading find's pipe"
 msgstr ""
 
-#: main/archives.c:747
+#: main/archives.c:763
 msgid "error closing find's pipe"
 msgstr ""
 
-#: main/archives.c:750
+#: main/archives.c:766
 msgid "searched, but found no packages (files matching *.deb"
 msgstr ""
 
-#: main/archives.c:767
+#: main/archives.c:783
 #, c-format
 msgid "--%s needs at least one package archive file argument"
 msgstr ""
 
-#: main/archives.c:814
+#: main/archives.c:824
 msgid "unknown action"
 msgstr ""
 
@@ -893,61 +894,66 @@ msgstr ""
 
 #: main/configure.c:82
 #, c-format
+msgid "package %.250s is already installed and configured"
+msgstr ""
+
+#: main/configure.c:84
+#, c-format
 msgid ""
 "package %.250s is not ready for configuration\n"
 " cannot configure (current status `%.250s')"
 msgstr ""
 
-#: main/configure.c:99
+#: main/configure.c:101
 #, c-format
 msgid ""
 "dpkg: dependency problems prevent configuration of %s:\n"
 "%s"
 msgstr ""
 
-#: main/configure.c:102
+#: main/configure.c:104
 msgid "dependency problems - leaving unconfigured"
 msgstr ""
 
-#: main/configure.c:106
+#: main/configure.c:108
 #, c-format
 msgid ""
 "dpkg: %s: dependency problems, but configuring anyway as you request:\n"
 "%s"
 msgstr ""
 
-#: main/configure.c:114
+#: main/configure.c:116
 msgid ""
 "Package is in a very bad inconsistent state - you should\n"
 " reinstall it before attempting configuration."
 msgstr ""
 
-#: main/configure.c:117
+#: main/configure.c:119
 #, c-format
 msgid "Setting up %s (%s) ...\n"
 msgstr ""
 
-#: main/configure.c:165
+#: main/configure.c:167
 #, c-format
 msgid "unable to stat new dist conffile `%.250s'"
 msgstr ""
 
-#: main/configure.c:174
+#: main/configure.c:176
 #, c-format
 msgid "unable to change ownership of new dist conffile `%.250s'"
 msgstr ""
 
-#: main/configure.c:177
+#: main/configure.c:179
 #, c-format
 msgid "unable to set mode of new dist conffile `%.250s'"
 msgstr ""
 
-#: main/configure.c:180
+#: main/configure.c:182
 #, c-format
 msgid "unable to stat current installed conffile `%.250s'"
 msgstr ""
 
-#: main/configure.c:189
+#: main/configure.c:191
 #, c-format
 msgid ""
 "\n"
@@ -955,62 +961,62 @@ msgid ""
 "Installing new config file as you request.\n"
 msgstr ""
 
-#: main/configure.c:228
+#: main/configure.c:230
 #, c-format
 msgid ""
 "\n"
 "Configuration file `%s'"
 msgstr ""
 
-#: main/configure.c:230
+#: main/configure.c:232
 #, c-format
 msgid " (actually `%s')"
 msgstr ""
 
-#: main/configure.c:235
+#: main/configure.c:237
 msgid ""
 "\n"
 " ==> File on system created by you or by a script.\n"
 " ==> File also in package provided by package maintainer.\n"
 msgstr ""
 
-#: main/configure.c:242
+#: main/configure.c:244
 msgid ""
 "\n"
 " ==> Modified (by you or by a script) since installation.\n"
 msgstr ""
 
-#: main/configure.c:243
+#: main/configure.c:245
 msgid ""
 "\n"
 "     Not modified since installation.\n"
 msgstr ""
 
-#: main/configure.c:246
+#: main/configure.c:248
 msgid " ==> Package distributor has shipped an updated version.\n"
 msgstr ""
 
-#: main/configure.c:247
+#: main/configure.c:249
 msgid "     Version in package is the same as at last installation.\n"
 msgstr ""
 
-#: main/configure.c:253
+#: main/configure.c:255
 msgid " ==> Using new file as you requested.\n"
 msgstr ""
 
-#: main/configure.c:257
+#: main/configure.c:259
 msgid " ==> Using current old file as you requested.\n"
 msgstr ""
 
-#: main/configure.c:264
+#: main/configure.c:266
 msgid " ==> Keeping old config file as default.\n"
 msgstr ""
 
-#: main/configure.c:268
+#: main/configure.c:270
 msgid " ==> Using new config file as default.\n"
 msgstr ""
 
-#: main/configure.c:274
+#: main/configure.c:276
 msgid ""
 "   What would you like to do about it ?  Your options are:\n"
 "    Y or I  : install the package maintainer's version\n"
@@ -1019,48 +1025,48 @@ msgid ""
 "      Z     : background this process to examine the situation\n"
 msgstr ""
 
-#: main/configure.c:281
+#: main/configure.c:283
 msgid " The default action is to keep your current version.\n"
 msgstr ""
 
-#: main/configure.c:283
+#: main/configure.c:285
 msgid " The default action is to install the new version.\n"
 msgstr ""
 
-#: main/configure.c:289
+#: main/configure.c:291
 msgid "[default=N]"
 msgstr ""
 
-#: main/configure.c:290
+#: main/configure.c:292
 msgid "[default=Y]"
 msgstr ""
 
-#: main/configure.c:290
+#: main/configure.c:292
 msgid "[no default]"
 msgstr ""
 
-#: main/configure.c:293
+#: main/configure.c:295
 msgid "error writing to stderr, discovered before conffile prompt"
 msgstr ""
 
-#: main/configure.c:300
+#: main/configure.c:302
 msgid "read error on stdin at conffile prompt"
 msgstr ""
 
-#: main/configure.c:301
+#: main/configure.c:303
 msgid "EOF on stdin at conffile prompt"
 msgstr ""
 
-#: main/configure.c:321
+#: main/configure.c:323
 #, c-format
 msgid "failed to run diff (%.250s)"
 msgstr ""
 
-#: main/configure.c:324 main/configure.c:351
+#: main/configure.c:326 main/configure.c:353
 msgid "wait for shell failed"
 msgstr ""
 
-#: main/configure.c:332
+#: main/configure.c:334
 #, c-format
 msgid ""
 "Your currently installed version of the file is in:\n"
@@ -1072,120 +1078,120 @@ msgid ""
 " I do not mess up your careful work.\n"
 msgstr ""
 
-#: main/configure.c:343
+#: main/configure.c:345
 msgid "Type `exit' when you're done.\n"
 msgstr ""
 
-#: main/configure.c:348
+#: main/configure.c:350
 #, c-format
 msgid "failed to exec shell (%.250s)"
 msgstr ""
 
-#: main/configure.c:353
+#: main/configure.c:355
 msgid "Don't forget to foreground (`fg') this process when you're done !\n"
 msgstr ""
 
-#: main/configure.c:374
+#: main/configure.c:376
 #, c-format
 msgid "dpkg: %s: warning - failed to remove old backup `%.250s': %s\n"
 msgstr ""
 
-#: main/configure.c:382
+#: main/configure.c:384
 #, c-format
 msgid "dpkg: %s: warning - failed to rename `%.250s' to `%.250s': %s\n"
 msgstr ""
 
-#: main/configure.c:390
+#: main/configure.c:392
 #, c-format
 msgid "dpkg: %s: warning - failed to remove `%.250s': %s\n"
 msgstr ""
 
-#: main/configure.c:398
+#: main/configure.c:400
 #, c-format
 msgid "dpkg: %s: warning - failed to remove old distrib version `%.250s': %s\n"
 msgstr ""
 
-#: main/configure.c:403
+#: main/configure.c:405
 #, c-format
 msgid "dpkg: %s: warning - failed to remove `%.250s' (before overwrite): %s\n"
 msgstr ""
 
-#: main/configure.c:407
+#: main/configure.c:409
 #, c-format
 msgid "dpkg: %s: warning - failed to link `%.250s' to `%.250s': %s\n"
 msgstr ""
 
-#: main/configure.c:411
+#: main/configure.c:413
 #, c-format
 msgid "Installing new version of config file %s ...\n"
 msgstr ""
 
-#: main/configure.c:415
+#: main/configure.c:417
 #, c-format
 msgid "unable to install `%.250s' as `%.250s'"
 msgstr ""
 
-#: main/configure.c:471
+#: main/configure.c:473
 #, c-format
 msgid ""
 "dpkg: %s: warning - unable to stat config file `%s'\n"
 " (= `%s'): %s\n"
 msgstr ""
 
-#: main/configure.c:482
+#: main/configure.c:484
 #, c-format
 msgid ""
 "dpkg: %s: warning - config file `%s' is a circular link\n"
 " (= `%s')\n"
 msgstr ""
 
-#: main/configure.c:495
+#: main/configure.c:497
 #, c-format
 msgid ""
 "dpkg: %s: warning - unable to readlink conffile `%s'\n"
 " (= `%s'): %s\n"
 msgstr ""
 
-#: main/configure.c:514
+#: main/configure.c:516
 #, c-format
 msgid ""
 "dpkg: %s: warning - conffile `%.250s' resolves to degenerate filename\n"
 " (`%s' is a symlink to `%s')\n"
 msgstr ""
 
-#: main/configure.c:527
+#: main/configure.c:529
 #, c-format
 msgid ""
 "dpkg: %s: warning - conffile `%.250s' is not a plain file or symlink (= "
 "`%s')\n"
 msgstr ""
 
-#: main/configure.c:549
+#: main/configure.c:551
 msgid "failed to exec md5sum"
 msgstr ""
 
-#: main/configure.c:554
+#: main/configure.c:556
 #, c-format
 msgid "unable to fdopen for md5sum of `%.250s'"
 msgstr ""
 
-#: main/configure.c:562
+#: main/configure.c:564
 msgid "error reading pipe from md5sum"
 msgstr ""
 
-#: main/configure.c:563
+#: main/configure.c:565
 msgid "error closing pipe from md5sum"
 msgstr ""
 
 #. file= fdopen(p1[0])
 #. m_pipe()
 #. fd= open(cdr.buf)
-#: main/configure.c:567
+#: main/configure.c:569
 #, c-format
 msgid "md5sum gave malformatted output `%.250s'"
 msgstr ""
 
-#: main/configure.c:571
+#: main/configure.c:573
 #, c-format
 msgid "dpkg: %s: warning - unable to open conffile %s for hash: %s\n"
 msgstr ""
@@ -1414,85 +1420,85 @@ msgid ""
 "and dpkg --contents (= dpkg-deb --contents) to list their contents."
 msgstr ""
 
-#: main/enquiry.c:527
+#: main/enquiry.c:537
 msgid "--predep-package does not take any argument"
 msgstr ""
 
-#: main/enquiry.c:579
+#: main/enquiry.c:589
 #, c-format
 msgid ""
 "dpkg: cannot see how to satisfy pre-dependency:\n"
 " %s\n"
 msgstr ""
 
-#: main/enquiry.c:580
+#: main/enquiry.c:590
 #, c-format
 msgid "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgstr ""
 
-#: main/enquiry.c:600
+#: main/enquiry.c:610
 #, c-format
 msgid ""
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
 " `%s'\n"
 msgstr ""
 
-#: main/enquiry.c:603
+#: main/enquiry.c:613
 #, c-format
 msgid "compiler libgcc filename not understood: %.250s"
 msgstr ""
 
-#: main/enquiry.c:607
+#: main/enquiry.c:617
 msgid "--print-installation-architecture does not take any argument"
 msgstr ""
 
-#: main/enquiry.c:627
+#: main/enquiry.c:637
 msgid "--print-architecture does not take any argument"
 msgstr ""
 
-#: main/enquiry.c:633
+#: main/enquiry.c:643
 msgid "failed to fdopen CC pipe"
 msgstr ""
 
-#: main/enquiry.c:651
+#: main/enquiry.c:662
 msgid "error reading from CC pipe"
 msgstr ""
 
-#: main/enquiry.c:653
+#: main/enquiry.c:664
 msgid "empty output"
 msgstr ""
 
-#: main/enquiry.c:655
+#: main/enquiry.c:666
 msgid "no newline"
 msgstr ""
 
-#: main/enquiry.c:658
+#: main/enquiry.c:669
 msgid "no gcc-lib component"
 msgstr ""
 
-#: main/enquiry.c:660
+#: main/enquiry.c:671
 msgid "no hyphen after gcc-lib"
 msgstr ""
 
-#: main/enquiry.c:672
+#: main/enquiry.c:683
 #, c-format
 msgid "dpkg: warning, architecture `%s' not in remapping table\n"
 msgstr ""
 
-#: main/enquiry.c:714
+#: main/enquiry.c:725
 msgid "--cmpversions takes three arguments: <version> <relation> <version>"
 msgstr ""
 
-#: main/enquiry.c:719
+#: main/enquiry.c:730
 msgid "--cmpversions bad relation"
 msgstr ""
 
-#: main/enquiry.c:724
+#: main/enquiry.c:735
 #, c-format
 msgid "version a has bad syntax: %s\n"
 msgstr ""
 
-#: main/enquiry.c:734
+#: main/enquiry.c:745
 #, c-format
 msgid "version b has bad syntax: %s\n"
 msgstr ""
@@ -1667,130 +1673,130 @@ msgstr ""
 msgid "read error in diversions [i]"
 msgstr ""
 
-#: main/help.c:40
+#: dselect/pkgdisplay.cc:49 main/help.c:41
 msgid "not installed"
 msgstr ""
 
-#: main/help.c:40
+#: main/help.c:41
 msgid "unpacked but not configured"
 msgstr ""
 
-#: main/help.c:41
+#: main/help.c:42
 msgid "broken due to postinst failure"
 msgstr ""
 
-#: main/help.c:42
+#: dselect/pkgdisplay.cc:52 main/help.c:43
 msgid "installed"
 msgstr ""
 
-#: main/help.c:43
+#: main/help.c:44
 msgid "broken due to failed removal"
 msgstr ""
 
-#: main/help.c:44
+#: main/help.c:45
 msgid "not installed but configs remain"
 msgstr ""
 
-#: main/help.c:82
+#: main/help.c:83
 msgid "dpkg - warning: PATH is not set.\n"
 msgstr ""
 
-#: main/help.c:97
+#: main/help.c:98
 #, c-format
 msgid "dpkg: `%s' not found on PATH.\n"
 msgstr ""
 
-#: main/help.c:104
+#: main/help.c:105
 #, c-format
 msgid ""
 "%d expected program(s) not found on PATH.\n"
 "NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin."
 msgstr ""
 
-#: main/help.c:221
+#: main/help.c:222
 #, c-format
 msgid "error un-catching signal %s: %s\n"
 msgstr ""
 
-#: main/help.c:239
+#: main/help.c:240
 #, c-format
 msgid "unable to ignore signal %s before running script"
 msgstr ""
 
-#: main/help.c:248
+#: main/help.c:249
 #, c-format
 msgid "unable to set execute permissions on `%.250s'"
 msgstr ""
 
-#: main/help.c:272
+#: main/help.c:273
 #, c-format
 msgid "unable to stat installed %s script `%.250s'"
 msgstr ""
 
-#: main/help.c:279 main/help.c:358 main/help.c:398
+#: main/help.c:280 main/help.c:359 main/help.c:399
 #, c-format
 msgid "unable to execute %s"
 msgstr ""
 
-#: main/help.c:309
+#: main/help.c:310
 #, c-format
 msgid "unable to stat new %s script `%.250s'"
 msgstr ""
 
-#: main/help.c:316
+#: main/help.c:317
 #, c-format
 msgid "unable to execute new %s"
 msgstr ""
 
-#: main/help.c:350
+#: main/help.c:351
 #, c-format
 msgid "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgstr ""
 
-#: main/help.c:366
+#: main/help.c:367
 #, c-format
 msgid "dpkg: warning - %s returned error exit status %d\n"
 msgstr ""
 
-#: main/help.c:369
+#: main/help.c:370
 #, c-format
 msgid "dpkg: warning - %s killed by signal (%s)%s\n"
 msgstr ""
 
-#: main/help.c:372
+#: main/help.c:373
 #, c-format
 msgid "%s failed with unknown wait status code %d"
 msgstr ""
 
-#: main/help.c:376
+#: main/help.c:377
 msgid "dpkg - trying script from the new package instead ...\n"
 msgstr ""
 
-#: main/help.c:383
+#: main/help.c:384
 #, c-format
 msgid "new %s script"
 msgstr ""
 
-#: main/help.c:387
+#: main/help.c:388
 msgid "there is no script in the new version of the package - giving up"
 msgstr ""
 
-#: main/help.c:389
+#: main/help.c:390
 #, c-format
 msgid "unable to stat %s `%.250s'"
 msgstr ""
 
-#: main/help.c:403
+#: main/help.c:404
 msgid "dpkg: ... it looks like that went OK.\n"
 msgstr ""
 
 #. Huh ?
-#: main/help.c:498
+#: main/help.c:499
 #, c-format
 msgid "failed to rmdir/unlink `%.255s'"
 msgstr ""
 
-#: dpkg-deb/info.c:52 main/help.c:502
+#: dpkg-deb/info.c:52 main/help.c:503
 msgid "failed to exec rm for cleanup"
 msgstr ""
 
@@ -1812,39 +1818,41 @@ msgid ""
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
 "  dpkg --unpack          <.deb file name> ... | -R|--recursive <dir> ...\n"
 "  dpkg -A|--record-avail <.deb file name> ... | -R|--recursive <dir> ...\n"
-"  dpkg --configure           <package name> ... | -a|--pending\n"
-"  dpkg -r|--remove | --purge <package name> ... | -a|--pending\n"
-"  dpkg --get-selections [<pattern> ...]   get list of selections to stdout\n"
-"  dpkg --set-selections                   set package selections from stdin\n"
-"  dpkg --update-avail <Packages-file>     replace available packages info\n"
-"  dpkg --merge-avail <Packages-file>      merge with info from file\n"
-"  dpkg --clear-avail                      erase existing available info\n"
-"  dpkg --forget-old-unavail               forget uninstalled unavailable "
+"  dpkg --configure              <package name> ... | -a|--pending\n"
+"  dpkg -r|--remove | -P|--purge <package name> ... | -a|--pending\n"
+"  dpkg --get-selections [<pattern> ...]    get list of selections to stdout\n"
+"  dpkg --set-selections                    set package selections from "
+"stdin\n"
+"  dpkg --update-avail <Packages-file>      replace available packages info\n"
+"  dpkg --merge-avail <Packages-file>       merge with info from file\n"
+"  dpkg --clear-avail                       erase existing available info\n"
+"  dpkg --forget-old-unavail                forget uninstalled unavailable "
 "pkgs\n"
-"  dpkg -s|--status <package-name> ...     display package status details\n"
-"  dpkg --print-avail <package-name> ...   display available version details\n"
-"  dpkg -L|--listfiles <package-name> ...  list files `owned' by package(s)\n"
-"  dpkg -l|--list [<pattern> ...]          list packages concisely\n"
-"  dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n"
-"  dpkg -C|--audit                         check for broken package(s)\n"
-"  dpkg --abort-after <n>                  abort after encountering <n> "
+"  dpkg -s|--status <package-name> ...      display package status details\n"
+"  dpkg -p|--print-avail <package-name> ... display available version "
+"details\n"
+"  dpkg -L|--listfiles <package-name> ...   list files `owned' by package(s)\n"
+"  dpkg -l|--list [<pattern> ...]           list packages concisely\n"
+"  dpkg -S|--search <pattern> ...           find package(s) owning file(s)\n"
+"  dpkg -C|--audit                          check for broken package(s)\n"
+"  dpkg --abort-after <n>                   abort after encountering <n> "
 "errors\n"
-"  dpkg --print-architecture               print target architecture (uses "
+"  dpkg --print-architecture                print target architecture (uses "
 "GCC)\n"
-"  dpkg --print-gnu-build-architecture     print GNU version of target arch\n"
-"  dpkg --print-installation-architecture  print host architecture (for "
+"  dpkg --print-gnu-build-architecture      print GNU version of target arch\n"
+"  dpkg --print-installation-architecture   print host architecture (for "
 "inst'n)\n"
-"  dpkg --compare-versions <a> <rel> <b>   compare version numbers - see "
+"  dpkg --compare-versions <a> <rel> <b>    compare version numbers - see "
 "below\n"
-"  dpkg --help | --version                 show this help / version number\n"
-"  dpkg --force-help | -Dh|--debug=help    help on forcing resp. debugging\n"
-"  dpkg --licence                          print copyright licencing terms\n"
+"  dpkg --help | --version                  show this help / version number\n"
+"  dpkg --force-help | -Dh|--debug=help     help on forcing resp. debugging\n"
+"  dpkg --licence                           print copyright licencing terms\n"
 "\n"
 "Use dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|\n"
 " -x|--extract|-X|--vextract|--fsys-tarfile  on archives (type %s --help.)\n"
 "\n"
 "For internal use: dpkg --assert-support-predepends | --predep-package |\n"
-"  --assert-working-epoch\n"
+"  --assert-working-epoch | --assert-longfilenames | --assert-multi-conrep\n"
 "\n"
 "Options:\n"
 "  --admindir=<directory>     Use <directory> instead of %s\n"
@@ -1943,11 +1951,11 @@ msgstr ""
 msgid "unknown force/refuse option `%.*s'"
 msgstr ""
 
-#: main/main.c:378
+#: main/main.c:380
 msgid "failed to exec dpkg-deb"
 msgstr ""
 
-#: dpkg-deb/main.c:150 main/main.c:414 split/main.c:163
+#: dpkg-deb/main.c:150 main/main.c:416 split/main.c:163
 msgid "need an action option"
 msgstr ""
 
@@ -2014,193 +2022,177 @@ msgstr ""
 msgid "; however:\n"
 msgstr ""
 
-#: main/processarc.c:104
+#: main/processarc.c:105
 msgid "cannot access archive"
 msgstr ""
 
-#: main/processarc.c:114
+#: main/processarc.c:115
 #, c-format
 msgid "error ensuring `%.250s' doesn't exist"
 msgstr ""
 
-#: main/processarc.c:119
+#: main/processarc.c:120
 msgid "failed to exec dpkg-split to see if it's part of a multiparter"
 msgstr ""
 
-#: main/processarc.c:122
+#: main/processarc.c:123
 msgid "wait for dpkg-split failed"
 msgstr ""
 
-#: main/processarc.c:143
+#: main/processarc.c:144
 msgid "unable to get unique filename for control info"
 msgstr ""
 
-#: main/processarc.c:165
+#: main/processarc.c:166
 msgid "failed to exec dpkg-deb to extract control information"
 msgstr ""
 
-#: main/processarc.c:179
+#: main/processarc.c:182
 #, c-format
 msgid "Recorded info about %s from %s.\n"
 msgstr ""
 
-#: main/processarc.c:188
+#: main/processarc.c:191
 #, c-format
 msgid "package architecture (%s) does not match system (%s)"
 msgstr ""
 
-#: main/processarc.c:235 main/processarc.c:255
+#: main/processarc.c:238
 #, c-format
 msgid ""
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
 "%s"
 msgstr ""
 
-#: main/processarc.c:238 main/processarc.c:258
+#: main/processarc.c:241
 #, c-format
 msgid "pre-dependency problem - not installing %.250s"
 msgstr ""
 
-#: main/processarc.c:239 main/processarc.c:259
+#: main/processarc.c:242
 msgid "dpkg: warning - ignoring pre-dependency problem !\n"
 msgstr ""
 
-#: main/processarc.c:247
-#, c-format
-msgid ""
-"dpkg: regarding %s containing %s, dependency problem:\n"
-"%s"
-msgstr ""
-
-#: main/processarc.c:250
-#, c-format
-msgid "dependency problem - not installing %.250s"
-msgstr ""
-
-#: main/processarc.c:251
-msgid "dpkg: warning - ignoring dependency problem !\n"
-msgstr ""
-
-#: main/processarc.c:268
+#: main/processarc.c:256
 #, c-format
 msgid "Preparing to replace %s %s (using %s) ...\n"
 msgstr ""
 
-#: main/processarc.c:273
+#: main/processarc.c:261
 #, c-format
 msgid "Unpacking %s (from %s) ...\n"
 msgstr ""
 
-#: main/processarc.c:293
+#: main/processarc.c:281
 #, c-format
 msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgstr ""
 
-#: main/processarc.c:347
+#: main/processarc.c:335
 #, c-format
 msgid "read error in %.250s"
 msgstr ""
 
 #. conff= fopen()
-#: main/processarc.c:349
+#: main/processarc.c:337
 #, c-format
 msgid "error closing %.250s"
 msgstr ""
 
-#: main/processarc.c:351
+#: main/processarc.c:339
 #, c-format
 msgid "error trying to open %.250s"
 msgstr ""
 
-#: main/processarc.c:383
+#: main/processarc.c:372
 #, c-format
 msgid "De-configuring %s, so that we can remove %s ...\n"
 msgstr ""
 
-#: main/processarc.c:440
+#: main/processarc.c:429
 #, c-format
 msgid "Unpacking replacement %.250s ...\n"
 msgstr ""
 
-#: main/processarc.c:519
+#: main/processarc.c:508
 msgid "unable to exec dpkg-deb to get filesystem archive"
 msgstr ""
 
-#: main/processarc.c:527
+#: main/processarc.c:516
 msgid "unable to fdopen dpkg-deb extract pipe"
 msgstr ""
 
-#: main/processarc.c:533
+#: main/processarc.c:522
 msgid "error reading dpkg-deb tar output"
 msgstr ""
 
-#: main/processarc.c:536
+#: main/processarc.c:525
 msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgstr ""
 
-#: main/processarc.c:538
+#: main/processarc.c:527
 msgid "corrupted filesystem tarfile - corrupted package archive"
 msgstr ""
 
-#: main/processarc.c:627
+#: main/processarc.c:623
 #, c-format
 msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgstr ""
 
-#: main/processarc.c:649 main/processarc.c:884 main/remove.c:396
+#: main/processarc.c:645 main/processarc.c:882 main/remove.c:396
 msgid "cannot read info directory"
 msgstr ""
 
-#: main/processarc.c:662
+#: main/processarc.c:658
 #, c-format
 msgid "old version of package has overly-long info file name starting `%.250s'"
 msgstr ""
 
-#: main/processarc.c:674
+#: main/processarc.c:670
 #, c-format
 msgid "unable to remove obsolete info file `%.250s'"
 msgstr ""
 
-#: main/processarc.c:677
+#: main/processarc.c:673
 #, c-format
 msgid "unable to install (supposed) new info file `%.250s'"
 msgstr ""
 
-#: main/processarc.c:684
+#: main/processarc.c:680
 msgid "unable to open temp control directory"
 msgstr ""
 
-#: main/processarc.c:693
+#: main/processarc.c:689
 #, c-format
 msgid "package contains overly-long control info file name (starting `%.50s')"
 msgstr ""
 
-#: main/processarc.c:698
+#: main/processarc.c:694
 #, c-format
 msgid "package control info contained directory `%.250s'"
 msgstr ""
 
-#: main/processarc.c:700
+#: main/processarc.c:696
 #, c-format
 msgid "package control info rmdir of `%.250s' didn't say not a dir"
 msgstr ""
 
-#: main/processarc.c:706
+#: main/processarc.c:702
 #, c-format
 msgid "dpkg: warning - package %s contained list as info file"
 msgstr ""
 
-#: main/processarc.c:713
+#: main/processarc.c:709
 #, c-format
 msgid "unable to install new info file `%.250s' as `%.250s'"
 msgstr ""
 
-#: main/processarc.c:864
+#: main/processarc.c:862
 #, c-format
 msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgstr ""
 
-#: main/processarc.c:900
+#: main/processarc.c:898
 #, c-format
 msgid "unable to delete disappearing control info file `%.250s'"
 msgstr ""
@@ -2407,170 +2399,192 @@ msgstr ""
 msgid "--build needs a directory argument"
 msgstr ""
 
-#: dpkg-deb/build.c:75
+#: dpkg-deb/build.c:81
 msgid "--build takes at most two arguments"
 msgstr ""
 
-#: dpkg-deb/build.c:79
+#: dpkg-deb/build.c:85
 #, c-format
 msgid "unable to check for existence of archive `%.250s'"
 msgstr ""
 
-#: dpkg-deb/build.c:92
+#: dpkg-deb/build.c:98
 msgid "target is directory - cannot skip control file check"
 msgstr ""
 
-#: dpkg-deb/build.c:93
+#: dpkg-deb/build.c:99
 #, c-format
 msgid ""
 "dpkg-deb: warning, not checking contents of control area.\n"
 "dpkg-deb: building an unknown package in `%s'.\n"
 msgstr ""
 
-#: dpkg-deb/build.c:110
+#: dpkg-deb/build.c:116
 msgid "package name has characters that aren't lowercase alphanums or `-+.'"
 msgstr ""
 
-#: dpkg-deb/build.c:112
+#: dpkg-deb/build.c:118
 #, c-format
 msgid "warning, `%s' contains user-defined Priority value `%s'\n"
 msgstr ""
 
-#: dpkg-deb/build.c:117
+#: dpkg-deb/build.c:123
 #, c-format
 msgid "warning, `%s' contains user-defined field `%s'\n"
 msgstr ""
 
-#: dpkg-deb/build.c:123
+#: dpkg-deb/build.c:129
 #, c-format
 msgid "%d errors in control file"
 msgstr ""
 
-#: dpkg-deb/build.c:134
+#: dpkg-deb/build.c:140
 #, c-format
 msgid "dpkg-deb: building package `%s' in `%s'.\n"
 msgstr ""
 
-#: dpkg-deb/build.c:141
+#: dpkg-deb/build.c:147
 #, c-format
 msgid "control directory has bad permissions %03lo (must be >=0755 and <=0775)"
 msgstr ""
 
-#: dpkg-deb/build.c:152
+#: dpkg-deb/build.c:158
 #, c-format
 msgid "maintainer script `%.50s' is not a plain file or symlink"
 msgstr ""
 
-#: dpkg-deb/build.c:154
+#: dpkg-deb/build.c:160
 #, c-format
 msgid ""
 "maintainer script `%.50s' has bad permissions %03lo (must be >=0555 and "
 "<=0775)"
 msgstr ""
 
-#: dpkg-deb/build.c:158
+#: dpkg-deb/build.c:164
 #, c-format
 msgid "maintainer script `%.50s' is not stattable"
 msgstr ""
 
-#: dpkg-deb/build.c:167
+#: dpkg-deb/build.c:173
 msgid "empty string from fgets reading conffiles"
 msgstr ""
 
-#: dpkg-deb/build.c:169
+#: dpkg-deb/build.c:175
 #, c-format
 msgid ""
 "warning, conffile name `%.50s...' is too long, or missing final newline\n"
 msgstr ""
 
-#: dpkg-deb/build.c:181
+#: dpkg-deb/build.c:187
 #, c-format
 msgid "conffile `%.250s' does not appear in package"
 msgstr ""
 
-#: dpkg-deb/build.c:183
+#: dpkg-deb/build.c:189
 #, c-format
 msgid "conffile `%.250s' is not stattable"
 msgstr ""
 
-#: dpkg-deb/build.c:185
+#: dpkg-deb/build.c:191
 #, c-format
 msgid "warning, conffile `%s' is not a plain file\n"
 msgstr ""
 
-#: dpkg-deb/build.c:190
+#: dpkg-deb/build.c:196
 msgid "error reading conffiles file"
 msgstr ""
 
-#: dpkg-deb/build.c:193
+#: dpkg-deb/build.c:199
 msgid "error opening conffiles file"
 msgstr ""
 
-#: dpkg-deb/build.c:196
+#: dpkg-deb/build.c:202
 #, c-format
 msgid "dpkg-deb: ignoring %d warnings about the control file(s)\n"
 msgstr ""
 
-#: dpkg-deb/build.c:202
+#: dpkg-deb/build.c:208
 #, c-format
 msgid "unable to create `%.255s'"
 msgstr ""
 
-#: dpkg-deb/build.c:203
+#: dpkg-deb/build.c:209
 #, c-format
 msgid "unable to unbuffer `%.255s'"
 msgstr ""
 
-#: dpkg-deb/build.c:207 dpkg-deb/build.c:267
+#: dpkg-deb/build.c:213 dpkg-deb/build.c:276
 #, c-format
 msgid "failed to chdir to `%.255s'"
 msgstr ""
 
-#: dpkg-deb/build.c:208
+#: dpkg-deb/build.c:214
 msgid "failed to chdir to .../DEBIAN"
 msgstr ""
 
-#: dpkg-deb/build.c:209
+#: dpkg-deb/build.c:215
 msgid "failed to exec tar -cf"
 msgstr ""
 
-#: dpkg-deb/build.c:219
+#: dpkg-deb/build.c:218
 msgid "failed to make tmpfile (control)"
 msgstr ""
 
-#: dpkg-deb/build.c:224
-msgid "failed to exec gzip -9c"
+#: dpkg-deb/build.c:219
+#, c-format
+msgid "failed to open tmpfile (control), %s"
+msgstr ""
+
+#. make sure it's gone, the fd will remain until we close it
+#: dpkg-deb/build.c:222
+#, c-format
+msgid "failed to unlink tmpfile (control), %s"
 msgstr ""
 
 #: dpkg-deb/build.c:229
+msgid "failed to exec gzip -9c"
+msgstr ""
+
+#: dpkg-deb/build.c:234
 msgid "failed to fstat tmpfile (control)"
 msgstr ""
 
-#: dpkg-deb/build.c:249
+#: dpkg-deb/build.c:254
 msgid "failed to rewind tmpfile (control)"
 msgstr ""
 
-#: dpkg-deb/build.c:252
+#: dpkg-deb/build.c:257
 msgid "failed to exec cat (control)"
 msgstr ""
 
-#: dpkg-deb/build.c:261
+#: dpkg-deb/build.c:263
 msgid "failed to make tmpfile (data)"
 msgstr ""
 
-#: dpkg-deb/build.c:269
+#: dpkg-deb/build.c:264
+#, c-format
+msgid "failed to open tmpfile (data), %s"
+msgstr ""
+
+#. make sure it's gone, the fd will remain until we close it
+#: dpkg-deb/build.c:267
+#, c-format
+msgid "failed to unlink tmpfile (data), %s"
+msgstr ""
+
+#: dpkg-deb/build.c:278
 msgid "failed to exec tar --exclude"
 msgstr ""
 
-#: dpkg-deb/build.c:276
+#: dpkg-deb/build.c:285
 msgid "failed to exec gzip -9c from tar --exclude"
 msgstr ""
 
-#: dpkg-deb/build.c:291
+#: dpkg-deb/build.c:300
 msgid "failed to rewind tmpfile (data)"
 msgstr ""
 
-#: dpkg-deb/build.c:294
+#: dpkg-deb/build.c:303
 msgid "failed to exec cat (data)"
 msgstr ""
 
@@ -2778,76 +2792,76 @@ msgstr ""
 msgid "failed to exec rm -rf"
 msgstr ""
 
-#: dpkg-deb/info.c:96
+#: dpkg-deb/info.c:95
 msgid "failed to exec cat component"
 msgstr ""
 
-#: dpkg-deb/info.c:100
+#: dpkg-deb/info.c:99
 #, c-format
 msgid "dpkg-deb: `%.255s' contains no control component `%.255s'\n"
 msgstr ""
 
-#: dpkg-deb/info.c:104
+#: dpkg-deb/info.c:103
 #, c-format
 msgid "open component `%.255s' (in %.255s) failed in an unexpected way"
 msgstr ""
 
-#: dpkg-deb/info.c:108
+#: dpkg-deb/info.c:107
 msgid "at least one requested control component missing"
 msgstr ""
 
-#: dpkg-deb/info.c:121
+#: dpkg-deb/info.c:120
 #, c-format
 msgid "cannot scan directory `%.255s'"
 msgstr ""
 
-#: dpkg-deb/info.c:126
+#: dpkg-deb/info.c:125
 #, c-format
 msgid "cannot stat `%.255s' (in `%.255s')"
 msgstr ""
 
-#: dpkg-deb/info.c:129
+#: dpkg-deb/info.c:128
 #, c-format
 msgid "cannot open `%.255s' (in `%.255s')"
 msgstr ""
 
-#: dpkg-deb/info.c:143
+#: dpkg-deb/info.c:142
 #, c-format
 msgid "failed to read `%.255s' (in `%.255s')"
 msgstr ""
 
-#: dpkg-deb/info.c:146
+#: dpkg-deb/info.c:145
 #, c-format
 msgid " %7ld bytes, %5d lines   %c  %-20.127s %.127s\n"
 msgstr ""
 
-#: dpkg-deb/info.c:152
+#: dpkg-deb/info.c:151
 #, c-format
 msgid "     not a plain file          %.255s\n"
 msgstr ""
 
-#: dpkg-deb/info.c:157
+#: dpkg-deb/info.c:156
 #, c-format
 msgid "failed to read `control' (in `%.255s')"
 msgstr ""
 
-#: dpkg-deb/info.c:158
+#: dpkg-deb/info.c:157
 msgid "(no `control' file in control archive!)\n"
 msgstr ""
 
-#: dpkg-deb/info.c:178
+#: dpkg-deb/info.c:177
 msgid "could not open the `control' component"
 msgstr ""
 
-#: dpkg-deb/info.c:208
+#: dpkg-deb/info.c:207
 msgid "failed during read of `control' component"
 msgstr ""
 
-#: dpkg-deb/info.c:240
+#: dpkg-deb/info.c:239
 msgid "--contents takes exactly one argument"
 msgstr ""
 
-#: dpkg-deb/main.c:44
+#: dpkg-deb/main.c:44 dselect/main.cc:78
 msgid "Debian Linux `"
 msgstr ""
 
@@ -3270,3 +3284,1509 @@ msgstr ""
 #, c-format
 msgid "%s: no files checked\n"
 msgstr ""
+
+#: dselect/basecmds.cc:89
+#, c-format
+msgid "baselist[%p]::kd_redraw() done\n"
+msgstr ""
+
+#: dselect/basecmds.cc:99
+msgid "Search for ? "
+msgstr ""
+
+#: dselect/basecmds.cc:126
+msgid "Help: "
+msgstr ""
+
+#: dselect/basecmds.cc:132
+msgid ""
+"? = help menu    Space = exit help    . = next help    or a help page key "
+msgstr ""
+
+#: dselect/basecmds.cc:140
+msgid "Help information is available under the following topics:"
+msgstr ""
+
+#: dselect/basecmds.cc:148
+msgid ""
+"Press a key from the list above, Space to exit help,\n"
+"  or `.' (full stop) to read each help page in turn. "
+msgstr ""
+
+#: dselect/basecmds.cc:154
+msgid "error reading keyboard in help"
+msgstr ""
+
+#: dselect/baselist.cc:52
+msgid "doupdate in SIGWINCH handler failed"
+msgstr ""
+
+#: dselect/baselist.cc:59
+msgid "failed to restore old SIGWINCH sigact"
+msgstr ""
+
+#: dselect/baselist.cc:61
+msgid "failed to restore old signal mask"
+msgstr ""
+
+#: dselect/baselist.cc:71
+msgid "failed to get old signal mask"
+msgstr ""
+
+#: dselect/baselist.cc:72
+msgid "failed to get old SIGWINCH sigact"
+msgstr ""
+
+#: dselect/baselist.cc:76
+msgid "failed to block SIGWINCH"
+msgstr ""
+
+#: dselect/baselist.cc:81
+msgid "failed to set new SIGWINCH sigact"
+msgstr ""
+
+#: dselect/baselist.cc:108
+#, c-format
+msgid "baselist[%p]::startdisplay()\n"
+msgstr ""
+
+#: dselect/baselist.cc:117
+msgid "failed to allocate colour pairs"
+msgstr ""
+
+#: dselect/baselist.cc:147
+msgid "failed to create title window"
+msgstr ""
+
+#: dselect/baselist.cc:151
+msgid "failed to create whatinfo window"
+msgstr ""
+
+#: dselect/baselist.cc:155
+msgid "failed to create baselist pad"
+msgstr ""
+
+#: dselect/baselist.cc:158
+msgid "failed to create heading pad"
+msgstr ""
+
+#: dselect/baselist.cc:162
+msgid "failed to create thisstate pad"
+msgstr ""
+
+#: dselect/baselist.cc:166
+msgid "failed to create info pad"
+msgstr ""
+
+#: dselect/baselist.cc:170
+msgid "failed to create query window"
+msgstr ""
+
+#: dselect/baselist.cc:182
+#, c-format
+msgid ""
+"baselist::startdisplay() done ...\n"
+"\n"
+" xmax=%d, ymax=%d;\n"
+"\n"
+" title_height=%d, colheads_height=%d, list_height=%d;\n"
+" thisstate_height=%d, info_height=%d, whatinfo_height=%d;\n"
+"\n"
+" colheads_row=%d, thisstate_row=%d, info_row=%d;\n"
+" whatinfo_row=%d, list_row=%d;\n"
+"\n"
+msgstr ""
+
+#: dselect/baselist.cc:223
+#, c-format
+msgid "baselist[%p]::baselist()\n"
+msgstr ""
+
+#: dselect/baselist.cc:238
+msgid "keybindings"
+msgstr ""
+
+#: dselect/baselist.cc:261
+#, c-format
+msgid "packagelist[%p]::dosearch(); searchstring=`%s' len=%d\n"
+msgstr ""
+
+#: dselect/baselist.cc:293
+msgid "  -- %d%%, press "
+msgstr ""
+
+#: dselect/baselist.cc:296
+#, c-format
+msgid "%s for more"
+msgstr ""
+
+#: dselect/baselist.cc:300
+#, c-format
+msgid "%s to go back"
+msgstr ""
+
+#: dselect/baselist.cc:309
+#, c-format
+msgid "baselist[%p]::wordwrapinfo(%d, `%s')\n"
+msgstr ""
+
+#: dselect/baselist.cc:355
+#, c-format
+msgid "baselist[%p]::wordwrapinfo() done\n"
+msgstr ""
+
+#: dselect/bindings.cc:71
+msgid "[not bound]"
+msgstr ""
+
+#: dselect/bindings.cc:75
+#, c-format
+msgid "[unk: %d]"
+msgstr ""
+
+#. Actions which apply to both types of list.
+#: dselect/bindings.cc:129
+msgid "Scroll onwards through help/information"
+msgstr ""
+
+#: dselect/bindings.cc:130
+msgid "Scroll backwards through help/information"
+msgstr ""
+
+#: dselect/bindings.cc:131
+msgid "Move up"
+msgstr ""
+
+#: dselect/bindings.cc:132
+msgid "Move down"
+msgstr ""
+
+#: dselect/bindings.cc:133
+msgid "Go to top of list"
+msgstr ""
+
+#: dselect/bindings.cc:134
+msgid "Go to end of list"
+msgstr ""
+
+#: dselect/bindings.cc:135
+msgid "Request help (cycle through help screens)"
+msgstr ""
+
+#: dselect/bindings.cc:136
+msgid "Cycle through information displays"
+msgstr ""
+
+#: dselect/bindings.cc:137
+msgid "Redraw display"
+msgstr ""
+
+#: dselect/bindings.cc:138
+msgid "Scroll onwards through list by 1 line"
+msgstr ""
+
+#: dselect/bindings.cc:139
+msgid "Scroll backwards through list by 1 line"
+msgstr ""
+
+#: dselect/bindings.cc:140
+msgid "Scroll onwards through help/information by 1 line"
+msgstr ""
+
+#: dselect/bindings.cc:141
+msgid "Scroll backwards through help/information by 1 line"
+msgstr ""
+
+#: dselect/bindings.cc:142
+msgid "Scroll onwards through list"
+msgstr ""
+
+#: dselect/bindings.cc:143
+msgid "Scroll backwards through list"
+msgstr ""
+
+#. Actions which apply only to lists of packages.
+#: dselect/bindings.cc:146
+msgid "Mark package(s) for installation"
+msgstr ""
+
+#: dselect/bindings.cc:147
+msgid "Mark package(s) for deinstallation"
+msgstr ""
+
+#: dselect/bindings.cc:148
+msgid "Mark package(s) for deinstall and purge"
+msgstr ""
+
+#: dselect/bindings.cc:149
+msgid "Make highlight more specific"
+msgstr ""
+
+#: dselect/bindings.cc:150
+msgid "Make highlight less specific"
+msgstr ""
+
+#: dselect/bindings.cc:151
+msgid "Search for a package whose name contains a string"
+msgstr ""
+
+#: dselect/bindings.cc:152
+msgid "Repeat last search."
+msgstr ""
+
+#: dselect/bindings.cc:153
+msgid "Swap sort order priority/section"
+msgstr ""
+
+#: dselect/bindings.cc:154
+msgid "Quit, confirming, and checking dependencies"
+msgstr ""
+
+#: dselect/bindings.cc:155
+msgid "Quit, confirming without check"
+msgstr ""
+
+#: dselect/bindings.cc:156
+msgid "Quit, rejecting conflict/dependency suggestions"
+msgstr ""
+
+#: dselect/bindings.cc:157
+msgid "Abort - quit without making changes"
+msgstr ""
+
+#: dselect/bindings.cc:158
+msgid "Revert to old state for all packages"
+msgstr ""
+
+#: dselect/bindings.cc:159
+msgid "Revert to suggested state for all packages"
+msgstr ""
+
+#: dselect/bindings.cc:160
+msgid "Revert to directly requested state for all packages"
+msgstr ""
+
+#. Actions which apply only to lists of methods.
+#: dselect/bindings.cc:163
+msgid "Select currently-highlighted access method"
+msgstr ""
+
+#: dselect/bindings.cc:164
+msgid "Quit without changing selected access method"
+msgstr ""
+
+#: dselect/main.cc:51
+msgid "Type "
+msgstr ""
+
+#: dselect/main.cc:66
+msgid "access"
+msgstr ""
+
+#: dselect/main.cc:66
+msgid "Choose the access method to use."
+msgstr ""
+
+#: dselect/main.cc:67
+msgid "update"
+msgstr ""
+
+#: dselect/main.cc:67
+msgid "Update list of available packages, if possible."
+msgstr ""
+
+#: dselect/main.cc:68
+msgid "select"
+msgstr ""
+
+#: dselect/main.cc:68
+msgid "Request which packages you want on your system."
+msgstr ""
+
+#: dselect/main.cc:69 dselect/pkgdisplay.cc:39
+msgid "install"
+msgstr ""
+
+#: dselect/main.cc:69
+msgid "Install and upgrade wanted packages."
+msgstr ""
+
+#: dselect/main.cc:70
+msgid "config"
+msgstr ""
+
+#: dselect/main.cc:70
+msgid "Configure any packages that are unconfigured."
+msgstr ""
+
+#: dselect/main.cc:71 dselect/pkgdisplay.cc:41
+msgid "remove"
+msgstr ""
+
+#: dselect/main.cc:71
+msgid "Remove unwanted software."
+msgstr ""
+
+#: dselect/main.cc:72
+msgid "quit"
+msgstr ""
+
+#: dselect/main.cc:72
+msgid "Quit dselect."
+msgstr ""
+
+#: dselect/main.cc:73
+msgid "menu"
+msgstr ""
+
+#: dselect/main.cc:81
+msgid "Version "
+msgstr ""
+
+#: dselect/main.cc:91
+msgid ""
+"Usage: dselect [options]\n"
+"       dselect [options] action ...\n"
+"Options:  --admindir <directory>  (default is /var/lib/dpkg)\n"
+"          --help  --version  --licence   --debug <file> | -D<file> | -D\n"
+"Actions:  access update select install config remove quit menu\n"
+msgstr ""
+
+#: dselect/main.cc:137
+#, c-format
+msgid "couldn't open debug file `%.255s'\n"
+msgstr ""
+
+#: dselect/main.cc:163
+msgid "Terminal does not appear to support cursor addressing.\n"
+msgstr ""
+
+#: dselect/main.cc:165
+msgid "Terminal does not appear to support highlighting.\n"
+msgstr ""
+
+#: dselect/main.cc:166
+msgid ""
+"Set your TERM variable correctly, use a better terminal,\n"
+"or make do with the per-package management tool "
+msgstr ""
+
+#: dselect/main.cc:168
+msgid "terminal lacks necessary features, giving up"
+msgstr ""
+
+#: dselect/main.cc:242
+msgid ""
+"\n"
+"\n"
+"Use ^P and ^N, cursor keys, initial letters, or digits to select;\n"
+"Press ENTER to confirm selection.   ^L to redraw screen.\n"
+"\n"
+msgstr ""
+
+#: dselect/main.cc:260
+msgid "failed to getch in main menu"
+msgstr ""
+
+#: dselect/main.cc:276
+msgid "unknown menufn"
+msgstr ""
+
+#: dselect/main.cc:331
+#, c-format
+msgid "unknown action string `%.50s'"
+msgstr ""
+
+#: dselect/methlist.cc:47
+#, c-format
+msgid "methodlist[%p]::kd_quit() setting coption=%p\n"
+msgstr ""
+
+#: dselect/methlist.cc:53
+#, c-format
+msgid "methodlist[%p]::setwidths()\n"
+msgstr ""
+
+#: dselect/methlist.cc:68
+msgid "dselect - list of access methods"
+msgstr ""
+
+#: dselect/methlist.cc:77
+#, c-format
+msgid "Access method `%s'."
+msgstr ""
+
+#: dselect/methlist.cc:111
+msgid "Abbrev."
+msgstr ""
+
+#: dselect/methlist.cc:112 dselect/pkgtop.cc:296
+msgid "Description"
+msgstr ""
+
+#: dselect/methlist.cc:121
+#, c-format
+msgid "methodlist[%p]::methodlist()\n"
+msgstr ""
+
+#: dselect/methlist.cc:136
+#, c-format
+msgid "methodlist[%p]::methodlist done; noptions=%d\n"
+msgstr ""
+
+#: dselect/methlist.cc:140
+#, c-format
+msgid "methodlist[%p]::~methodlist()\n"
+msgstr ""
+
+#: dselect/methlist.cc:148
+#, c-format
+msgid "methodlist[%p]::display()\n"
+msgstr ""
+
+#: dselect/methlist.cc:153
+#, c-format
+msgid "methodlist[%p]::display() entering loop\n"
+msgstr ""
+
+#: dselect/methlist.cc:156
+msgid "doupdate failed"
+msgstr ""
+
+#: dselect/methlist.cc:158
+msgid "failed to unblock SIGWINCH"
+msgstr ""
+
+#: dselect/methlist.cc:160
+msgid "failed to re-block SIGWINCH"
+msgstr ""
+
+#: dselect/methlist.cc:161
+msgid "getch failed"
+msgstr ""
+
+#: dselect/methlist.cc:164
+#, c-format
+msgid "methodlist[%p]::display() response=%d interp=%s\n"
+msgstr ""
+
+#: dselect/methlist.cc:165 dselect/pkgdepcon.cc:243
+msgid "[none]"
+msgstr ""
+
+#: dselect/methlist.cc:173
+#, c-format
+msgid "methodlist[%p]::display() done\n"
+msgstr ""
+
+#: dselect/methlist.cc:179
+msgid "explanation of "
+msgstr ""
+
+#: dselect/methlist.cc:189
+msgid "No explanation available."
+msgstr ""
+
+#: dselect/methlist.cc:199
+#, c-format
+msgid "methodlist[%p]::redrawinfo()\n"
+msgstr ""
+
+#: dselect/method.cc:62
+msgid "unable to unlock access method area"
+msgstr ""
+
+#: dselect/method.cc:77
+msgid ""
+"No access methods are available.\n"
+"\n"
+"Press RETURN to continue."
+msgstr ""
+
+#: dselect/method.cc:100
+msgid "you do not have permission to change the access method"
+msgstr ""
+
+#: dselect/method.cc:101
+msgid "unable to open/create access method lockfile"
+msgstr ""
+
+#: dselect/method.cc:106
+msgid "the access method area is already locked"
+msgstr ""
+
+#: dselect/method.cc:107
+msgid "unable to lock access method area"
+msgstr ""
+
+#: dselect/method.cc:120
+#, c-format
+msgid "error un-catching signal %d: %s\n"
+msgstr ""
+
+#: dselect/method.cc:138
+#, c-format
+msgid "unable to ignore signal %d before running %.250s"
+msgstr ""
+
+#: dselect/method.cc:145
+#, c-format
+msgid "unable to run %.250s process `%.250s'"
+msgstr ""
+
+#: dselect/method.cc:149
+#, c-format
+msgid "unable to wait for %.250s"
+msgstr ""
+
+#: dselect/method.cc:151
+#, c-format
+msgid "got wrong child's status - asked for %ld, got %ld"
+msgstr ""
+
+#: dselect/method.cc:162
+#, c-format
+msgid "returned error exit status %d.\n"
+msgstr ""
+
+#: dselect/method.cc:166
+msgid "was interrupted.\n"
+msgstr ""
+
+#: dselect/method.cc:168
+#, c-format
+msgid "was terminated by a signal: %s.\n"
+msgstr ""
+
+#: dselect/method.cc:171
+msgid "(It left a coredump.)\n"
+msgstr ""
+
+#: dselect/method.cc:173
+#, c-format
+msgid "failed with an unknown wait return code %d.\n"
+msgstr ""
+
+#: dselect/method.cc:175
+msgid "Press RETURN to continue.\n"
+msgstr ""
+
+#: dselect/method.cc:177
+msgid "write error on standard error"
+msgstr ""
+
+#: dselect/method.cc:180
+msgid "error reading acknowledgement of program failure message"
+msgstr ""
+
+#: dselect/method.cc:203
+msgid ""
+"No access method is selected/configured.\n"
+"\n"
+"Press RETURN to continue."
+msgstr ""
+
+#: dselect/method.cc:214
+msgid "update available list script"
+msgstr ""
+
+#: dselect/method.cc:218
+msgid "installation script"
+msgstr ""
+
+#: dselect/method.cc:264
+msgid "query/setup script"
+msgstr ""
+
+#: dselect/methparse.cc:53
+#, c-format
+msgid "syntax error in method options file `%.250s' -- %s"
+msgstr ""
+
+#: dselect/methparse.cc:58
+#, c-format
+msgid "error reading options file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:86
+#, c-format
+msgid "unable to read `%.250s' directory for reading methods"
+msgstr ""
+
+#: dselect/methparse.cc:89
+#, c-format
+msgid "readmethods(`%s',...) directory open\n"
+msgstr ""
+
+#: dselect/methparse.cc:93
+#, c-format
+msgid "readmethods(`%s',...) considering `%s' ...\n"
+msgstr ""
+
+#: dselect/methparse.cc:100
+#, c-format
+msgid "method `%.250s' has name that is too long (%d > %d characters)"
+msgstr ""
+
+#: dselect/methparse.cc:111
+#, c-format
+msgid "unable to access method script `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:113
+#, c-format
+msgid " readmethods(`%s',...) scripts ok\n"
+msgstr ""
+
+#: dselect/methparse.cc:117
+#, c-format
+msgid "unable to read method options file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:130
+#, c-format
+msgid " readmethods(`%s',...) new method name=`%s' path=`%s' pathinmeth=`%s'\n"
+msgstr ""
+
+#: dselect/methparse.cc:140
+msgid "non-digit where digit wanted"
+msgstr ""
+
+#: dselect/methparse.cc:143
+msgid "EOF in index string"
+msgstr ""
+
+#: dselect/methparse.cc:146
+msgid "index string too long"
+msgstr ""
+
+#: dselect/methparse.cc:149
+msgid "newline before option name start"
+msgstr ""
+
+#: dselect/methparse.cc:151
+msgid "EOF before option name start"
+msgstr ""
+
+#: dselect/methparse.cc:155
+msgid "nonalpha where option name start wanted"
+msgstr ""
+
+#: dselect/methparse.cc:157
+msgid "non-alphanum in option name"
+msgstr ""
+
+#: dselect/methparse.cc:160
+msgid "EOF in option name"
+msgstr ""
+
+#: dselect/methparse.cc:165
+msgid "newline before summary"
+msgstr ""
+
+#: dselect/methparse.cc:167
+msgid "EOF before summary"
+msgstr ""
+
+#: dselect/methparse.cc:173
+msgid "EOF in summary - missing newline"
+msgstr ""
+
+#: dselect/methparse.cc:183
+#, c-format
+msgid "unable to open option description file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:187
+#, c-format
+msgid "unable to stat option description file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:191
+#, c-format
+msgid "failed to read option description file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:194
+#, c-format
+msgid "error during read of option description file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:199
+#, c-format
+msgid ""
+" readmethods(`%s',...) new option index=`%s' name=`%s' summary=`%.20s' "
+"strlen(description=%s)=%ld method name=`%s' path=`%s' pathinmeth=`%s'\n"
+msgstr ""
+
+#: dselect/methparse.cc:216
+#, c-format
+msgid "error during read of method options file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:220
+#, c-format
+msgid "readmethods(`%s',...) done\n"
+msgstr ""
+
+#: dselect/methparse.cc:246
+#, c-format
+msgid "unable to open current option file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:248
+msgid "getcurrentopt() cmethopt open\n"
+msgstr ""
+
+#: dselect/methparse.cc:252
+msgid "getcurrentopt() cmethopt eof\n"
+msgstr ""
+
+#: dselect/methparse.cc:254
+msgid "getcurrentopt() cmethopt read\n"
+msgstr ""
+
+#: dselect/methparse.cc:257
+msgid "getcurrentopt() cmethopt len and newline\n"
+msgstr ""
+
+#: dselect/methparse.cc:259
+msgid "getcurrentopt() cmethopt space\n"
+msgstr ""
+
+#: dselect/methparse.cc:261
+#, c-format
+msgid "getcurrentopt() cmethopt meth name `%s'\n"
+msgstr ""
+
+#: dselect/methparse.cc:264
+#, c-format
+msgid "getcurrentopt() cmethopt meth found; opt `%s'\n"
+msgstr ""
+
+#: dselect/methparse.cc:267
+msgid "getcurrentopt() cmethopt opt found\n"
+msgstr ""
+
+#: dselect/methparse.cc:284
+#, c-format
+msgid "unable to open new option file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:287
+#, c-format
+msgid "unable to write new option to `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:290
+#, c-format
+msgid "unable to close new option file `%.250s'"
+msgstr ""
+
+#: dselect/methparse.cc:292
+#, c-format
+msgid "unable to install new option as `%.250s'"
+msgstr ""
+
+#: dselect/pkgcmds.cc:47
+msgid "unknown statsortorder in affectedmatches"
+msgstr ""
+
+#. Returns: 1 for yes, 0 for no, -1 for if they want to preserve an error condition.
+#: dselect/pkgcmds.cc:139
+#, c-format
+msgid "would_like_to_install(%d, %s) status %d\n"
+msgstr ""
+
+#: dselect/pkgcmds.cc:160
+msgid "unknown statsort in kd_swapstatorder"
+msgstr ""
+
+#: dselect/pkgcmds.cc:171
+msgid "unknown sort in kd_swaporder"
+msgstr ""
+
+#: dselect/pkgcmds.cc:207
+msgid "unknown versiondisplayopt in kd_versiondisplay"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:52
+#, c-format
+msgid "packagelist[%p]::findinfo(%s) useavailable=%d\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:81
+#, c-format
+msgid "packagelist[%p]::resolvesuggest()\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:90
+#, c-format
+msgid "packagelist[%p]::resolvesuggest() loop[%i] %s / %d\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:106
+#, c-format
+msgid "packagelist[%p]::resolvesuggest() loop[%i] %s / -> %d\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:113
+#, c-format
+msgid "packagelist[%p]::resolvesuggest() done; maxchangemade=%d\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:123
+#, c-format
+msgid "update_best_to_change(best=%s{%d}, test=%s{%d});\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:153
+msgid "update_best_to_change(); yes\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:171
+#, c-format
+msgid "packagelist[%p]::deselect_one_of(): er %s{%d} ed %s{%d} [%p]\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:188
+#, c-format
+msgid "packagelist[%p]::deselect_one_of(): best %s{%d}\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:207
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p] %s --%s-->"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:214
+msgid "(no clientdata)"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:241
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): depends found %s\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:252
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): fixbyupgrade %s\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:273
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): mustdeselect nobest\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:279
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): select best=%s{%d}\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:289
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): mustdeselect best=%s{%d}\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:302
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): conflict\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:309
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): conflict installing 1\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:315
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): conflict satisfied - ouch\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:330
+#, c-format
+msgid "packagelist[%p]::resolvedepcon([%p]): no desel\n"
+msgstr ""
+
+#: dselect/pkgdepcon.cc:334
+msgid "unknown deptype"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:38
+msgid "new package"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:40
+msgid "hold"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:42
+msgid "purge"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:46
+msgid "REINSTALL"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:50
+msgid "unpacked (not set up)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:51
+msgid "failed config"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:53
+msgid "half installed"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:54
+msgid "removed (configs remain)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:57
+msgid "Required"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:58
+msgid "Important"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:59
+msgid "Standard"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:60
+msgid "Recommended"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:61
+msgid "Optional"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:62
+msgid "Extra"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:63
+msgid "Contrib"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:64
+msgid "!Bug!"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:65
+msgid "Unclassified"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:68
+msgid "suggests"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:69
+msgid "recommends"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:70
+msgid "depends on"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:71
+msgid "pre-depends on"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:72
+msgid "conflicts with"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:73
+msgid "provides"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:74
+msgid "replaces"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:77
+msgid "Req"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:78
+msgid "Imp"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:79
+msgid "Std"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:80
+msgid "Rec"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:81
+msgid "Opt"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:82
+msgid "Xtr"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:83
+msgid "Ctb"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:84
+msgid "bUG"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:85
+msgid "?"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:93 dselect/pkgdisplay.cc:113
+msgid "Broken"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:94
+msgid "New"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:95
+msgid "Updated"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:96
+msgid "Obsolete/local"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:97
+msgid "Up-to-date"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:98
+msgid "Available"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:99 dselect/pkgdisplay.cc:115
+msgid "Removed"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:100 dselect/pkgdisplay.cc:109
+msgid "Brokenly installed packages"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:101
+msgid "Newly available packages"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:102
+msgid "Updated packages (newer version is available)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:103
+msgid "Obsolete and local packages present on system"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:104
+msgid "Up to date installed packages"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:105
+msgid "Available packages (not currently installed)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:106
+msgid "Removed and no longer available packages"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:110
+msgid "Installed packages"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:111
+msgid "Removed packages (configuration still present)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:112
+msgid "Purged packages and those never installed"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:114
+msgid "Installed"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:116
+msgid "Purged"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:131
+#, c-format
+msgid "packagelist[%p]::setwidths()\n"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:181
+msgid "unknown versiondisplayopt in setwidths"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:194
+msgid "dselect - recursive package listing"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:195
+msgid "dselect - inspection of package states"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:196
+msgid "dselect - main package listing"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:204
+msgid " (by section)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:207
+msgid " (avail., section)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:210
+msgid " (status, section)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:213
+msgid "bad statsort in redrawtitle/so_section"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:219
+msgid " (by priority)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:222
+msgid " (avail., priority)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:225
+msgid " (status, priority)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:228 dselect/pkgdisplay.cc:243
+msgid "bad statsort in redrawtitle/so_priority"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:234 dselect/pkgdisplay.cc:246
+msgid " (alphabetically)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:237
+msgid " (by availability)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:240
+msgid " (by status)"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:251
+msgid "bad sort in redrawtitle"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:254
+msgid " mark:+/=/- terse:v help:?"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:255
+msgid " mark:+/=/- verbose:v help:?"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:256
+msgid " terse:v help:?"
+msgstr ""
+
+#: dselect/pkgdisplay.cc:257
+msgid " verbose:v help:?"
+msgstr ""
+
+#: dselect/pkginfo.cc:81
+msgid ""
+"The line you have highlighted represents many packages; if you ask to "
+"install, remove, hold, &c it you will affect all the packages which match "
+"the criterion shown.\n"
+"\n"
+"If you move the highlight to a line for a particular package you will see "
+"information about that package displayed here.\n"
+"You can use `o' and `O' to change the sort order and give yourself the "
+"opportunity to mark packages in different kinds of groups."
+msgstr ""
+
+#: dselect/pkginfo.cc:95
+msgid "interrelationships affecting "
+msgstr ""
+
+#: dselect/pkginfo.cc:97
+#, c-format
+msgid "packagelist[%p]::idt_relations(); `%s'\n"
+msgstr ""
+
+#: dselect/pkginfo.cc:101
+msgid "interrelationships"
+msgstr ""
+
+#: dselect/pkginfo.cc:107
+msgid "description of "
+msgstr ""
+
+#: dselect/pkginfo.cc:111
+msgid "no description available."
+msgstr ""
+
+#: dselect/pkginfo.cc:124
+msgid "description"
+msgstr ""
+
+#: dselect/pkginfo.cc:131
+msgid "currently installed control info"
+msgstr ""
+
+#: dselect/pkginfo.cc:133
+msgid "installed control info for "
+msgstr ""
+
+#: dselect/pkginfo.cc:139
+#, c-format
+msgid "packagelist[%p]::idt_statuscontrol(); `%s'\n"
+msgstr ""
+
+#: dselect/pkginfo.cc:147
+msgid "available version of control file info"
+msgstr ""
+
+#: dselect/pkginfo.cc:149
+msgid "available version of control info for "
+msgstr ""
+
+#: dselect/pkginfo.cc:155
+#, c-format
+msgid "packagelist[%p]::idt_availablecontrol(); `%s'\n"
+msgstr ""
+
+#: dselect/pkginfo.cc:172
+#, c-format
+msgid "packagelist[%p]::redrawinfo(); #=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:48
+msgid "unknown statsortorder in compareentries"
+msgstr ""
+
+#: dselect/pkglist.cc:79
+msgid "unsorted or unknown in compareentries"
+msgstr ""
+
+#: dselect/pkglist.cc:119
+#, c-format
+msgid "packagelist[%p]::addheading(%d,%d,%d,%s,%s)\n"
+msgstr ""
+
+#: dselect/pkglist.cc:121 dselect/pkglist.cc:122
+msgid "<null>"
+msgstr ""
+
+#: dselect/pkglist.cc:151
+#, c-format
+msgid "packagelist[%p]::sortinplace()\n"
+msgstr ""
+
+#: dselect/pkglist.cc:161
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() sortorder=%d nitems=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:166
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() unsorted\n"
+msgstr ""
+
+#: dselect/pkglist.cc:169
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() calcssadone=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:174 dselect/pkglist.cc:222
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n"
+msgstr ""
+
+#: dselect/pkglist.cc:207
+msgid "unknown stat in ensurestatsortinfo sso_avail"
+msgstr ""
+
+#: dselect/pkglist.cc:210
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() i=%d ssavail=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:217
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() calcsssdone=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:240
+msgid "unknown stat in ensurestatsortinfo sso_state"
+msgstr ""
+
+#: dselect/pkglist.cc:243
+#, c-format
+msgid "packagelist[%p]::ensurestatsortinfos() i=%d ssstate=%d\n"
+msgstr ""
+
+#: dselect/pkglist.cc:250
+msgid "unknown statsortorder in ensurestatsortinfo"
+msgstr ""
+
+#: dselect/pkgsublist.cc:37
+#, c-format
+msgid "packagelist[%p]::add(pkginfo %s)\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:42
+#, c-format
+msgid "packagelist[%p]::add(pkginfo %s) adding\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:56
+#, c-format
+msgid "packagelist[%p]::add(pkginfo %s, %s)\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:63
+#, c-format
+msgid "packagelist[%p]::add(pkginfo %s, %s) setting\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:72
+#, c-format
+msgid "packagelist[%p]::add(pkginfo %s, \"...\", showpriority %d)\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:85
+#, c-format
+msgid "packagelist[%p]::alreadydone(%p,%p) new\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:95
+#, c-format
+msgid "packagelist[%p]::addunavail(%p)\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:109
+#, c-format
+msgid "packagelist[%p]::add(dependency[%p])\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:132
+msgid "unknown verrel"
+msgstr ""
+
+#: dselect/pkgsublist.cc:164
+#, c-format
+msgid "repeatedlydisplay(packagelist[%p])\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:166
+#, c-format
+msgid "repeatedlydisplay(packagelist[%p]) once\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:171
+#, c-format
+msgid "repeatedlydisplay(packagelist[%p]) newl\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:176
+#, c-format
+msgid "repeatedlydisplay(packagelist[%p]) again\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:181
+#, c-format
+msgid "repeatedlydisplay(packagelist[%p]) done\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:186
+#, c-format
+msgid "packagelist[%p]::dli_al(%d): nitems=%d\n"
+msgstr ""
+
+#: dselect/pkgsublist.cc:199
+#, c-format
+msgid "packagelist[%p]::dli_al(%d) done; nitems=%d\n"
+msgstr ""
+
+#: dselect/pkgtop.cc:56
+msgid "All"
+msgstr ""
+
+#: dselect/pkgtop.cc:73
+msgid "unknown statsortrder in describemany all"
+msgstr ""
+
+#: dselect/pkgtop.cc:78
+msgid "All packages"
+msgstr ""
+
+#: dselect/pkgtop.cc:82
+#, c-format
+msgid "%s packages without a section"
+msgstr ""
+
+#: dselect/pkgtop.cc:84
+#, c-format
+msgid "%s packages in section %s"
+msgstr ""
+
+#: dselect/pkgtop.cc:90
+#, c-format
+msgid "%s %s packages"
+msgstr ""
+
+#: dselect/pkgtop.cc:94
+#, c-format
+msgid "%s %s packages without a section"
+msgstr ""
+
+#: dselect/pkgtop.cc:96
+#, c-format
+msgid "%s %s packages in section %s"
+msgstr ""
+
+#: dselect/pkgtop.cc:117
+#, c-format
+msgid "%-*s %s%s%s;  %s (was: %s).  %s"
+msgstr ""
+
+#: dselect/pkgtop.cc:268
+msgid "Error"
+msgstr ""
+
+#: dselect/pkgtop.cc:272
+msgid "Installed?"
+msgstr ""
+
+#: dselect/pkgtop.cc:276
+msgid "Old mark"
+msgstr ""
+
+#: dselect/pkgtop.cc:280
+msgid "Marked for"
+msgstr ""
+
+#: dselect/pkgtop.cc:285
+msgid "Section"
+msgstr ""
+
+#: dselect/pkgtop.cc:286
+msgid "Priority"
+msgstr ""
+
+#: dselect/pkgtop.cc:287
+msgid "Package"
+msgstr ""