Index: pykota/trunk/po/de/pykota.po
===================================================================
--- pykota/trunk/po/de/pykota.po (revision 2344)
+++ pykota/trunk/po/de/pykota.po (revision 2487)
@@ -62,14 +62,193 @@
 
 #, python-format
+msgid "SIGTERM received, job %s cancelled."
+msgstr "SIGTERM empfangen, Auftrag %s abgebrochen."
+
+msgid "You are not allowed to print at this time."
+msgstr ""
+
+#, python-format
+msgid "Unable to precompute the job's size with the generic PDL analyzer : %s"
+msgstr ""
+"Vorausberechnung der Auftragsgr�nicht m�ch mit der allgemeinen PDL "
+"Analyseroutine : %s"
+
+#, python-format
 msgid "Banner generator %s exit code is %s"
 msgstr ""
+
+msgid "Banner won't be printed : maximum number of deny banners reached."
+msgstr ""
+
+#, python-format
+msgid "Beware : computed job size (%s) != precomputed job size (%s)"
+msgstr ""
+
+msgid ""
+"The job size will be trusted anyway according to the 'trustjobsize' directive"
+msgstr ""
+
+#, python-format
+msgid ""
+"The job size will be trusted because it is inferior to the 'trustjobsize' "
+"directive's limit %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"The job size will be modified according to the 'trustjobsize' directive : %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Printer %s not registered in the PyKota system, applying external policy (%"
+"s) for printer %s"
+msgstr ""
+"Drucker %s ist nicht im PyKota System registriert, wende externe Richtlinie "
+"(%s) f�cker %s an"
+
+#, python-format
+msgid ""
+"User %s not registered in the PyKota system, applying external policy (%s) "
+"for printer %s"
+msgstr ""
+"Benutzer %s ist nicht in der PyKota-Verwaltung registriert, wende externe "
+"Richtlinie (%s) f�cker %s an"
+
+#, python-format
+msgid ""
+"User %s doesn't have quota on printer %s in the PyKota system, applying "
+"external policy (%s) for printer %s"
+msgstr ""
+"Benutzer %s hat in der PyKota-Verwaltung kein Kontingent auf Drucker %s, "
+"wende externe Richtlinie (%s) f�cker %s an"
+
+#, python-format
+msgid ""
+"External policy %s for printer %s produced an error. Job rejected. Please "
+"check PyKota's configuration files."
+msgstr ""
+"Externe Richtlinie %s f�cker %s hat eine Fehler erzeugt. Auftrag "
+"abgelehnt. Bitte ��ie PyKota's Konfigurationsdatei."
+
+#, python-format
+msgid ""
+"Printer %s not registered in the PyKota system, applying default policy (%s)"
+msgstr ""
+"Drucker %s ist nicht in der PyKota-Verwaltung registriert, wende Standard-"
+"Richtlinie (%s) an"
+
+#, python-format
+msgid ""
+"User %s not registered in the PyKota system, applying default policy (%s) "
+"for printer %s"
+msgstr ""
+"Benutzer %s ist nicht in der PyKota-Verwaltung registriert, wende Standard-"
+"Richtlinie (%s) f�cker %s an"
+
+#, python-format
+msgid ""
+"User %s doesn't have quota on printer %s in the PyKota system, applying "
+"default policy (%s)"
+msgstr ""
+"Benutzer %s hat in der PyKota-Verwaltung f�cker %s kein Kontingent, "
+"wende Standard-Richtlinie (%s) an"
+
+#, python-format
+msgid ""
+"Printer %s still not registered in the PyKota system, job will be rejected"
+msgstr ""
+"Drucker %s noch immer nicht in der PyKota-Verwaltung registriert, Auftrag "
+"wird abgelehnt werden"
+
+#, python-format
+msgid ""
+"User %s still not registered in the PyKota system, job will be rejected on "
+"printer %s"
+msgstr ""
+"Benutzer %s noch immer nicht in der PyKota-Verwaltung registriert, Auftrag "
+"f�cker %s wird abgelehnt"
+
+#, python-format
+msgid ""
+"User %s still doesn't have quota on printer %s in the PyKota system, job "
+"will be rejected"
+msgstr ""
+"Benutzer %s hat in der PyKota-Verwaltung noch immer kein Kontingent f�Drucker %s, Auftrag wird abgelehnt"
+
+msgid "Job is a dupe"
+msgstr ""
+
+msgid "Printing is denied by configuration"
+msgstr ""
+
+#, python-format
+msgid "Duplicate print jobs are not allowed on printer %s."
+msgstr ""
+
+msgid "Subprocess denied printing of a dupe"
+msgstr ""
+
+#, python-format
+msgid "Duplicate print jobs are not allowed on printer %s at this time."
+msgstr ""
+
+msgid "Subprocess allowed printing of a dupe"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+"\n"
+"Your system administrator :\n"
+"\n"
+"\t%s - <%s>\n"
+msgstr ""
+
+#, python-format
+msgid "Impossible to connect to SMTP server : %s"
+msgstr "SMTP-Server kann nicht erreicht werden: %s"
+
+msgid "Print Quota"
+msgstr "Druckkontingent"
+
+#, python-format
+msgid "Impossible to send mail to %s, error %s : %s"
+msgstr "Unm�ch Mail an %s zu senden, Fehler %s : %s"
 
 msgid "Job contains no data. Printing is denied."
 msgstr "Auftrag beinhaltet keine Daten. Druck verweigert."
 
-msgid "Job is a duplicate. Printing is denied."
-msgstr ""
-
-msgid "Banner won't be printed : maximum number of deny banners reached."
+msgid "Job allowed by printer policy. No accounting will be done."
+msgstr ""
+
+#, python-format
+msgid "Invalid policy %s for printer %s"
+msgstr "Ung� Richtlinie ('policy') %s f�cker %s"
+
+#, python-format
+msgid "Precomputed job size (%s pages) too large for printer %s."
+msgstr ""
+
+#, python-format
+msgid "You are not allowed to print so many pages on printer %s at this time."
+msgstr ""
+
+#, python-format
+msgid "User %s is not allowed to print at this time."
+msgstr ""
+
+msgid "Your account settings forbid you to print at this time."
+msgstr ""
+
+#, python-format
+msgid "Print Quota exceeded for user %s on printer %s"
+msgstr "�erzogenes Druckkontingent f�utzer %s auf Drucker %s"
+
+#, python-format
+msgid "Print Quota low for user %s on printer %s"
+msgstr "Niedriges Druckkontingent f�utzer %s auf Drucker %s"
+
+msgid "Job denied, no accounting will be done."
 msgstr ""
 
@@ -77,4 +256,7 @@
 msgstr "Auftrag Accounting beginnt."
 
+msgid "Job denied, no accounting has been done."
+msgstr ""
+
 msgid "Job accounting ends."
 msgstr "Auftrag Accounting endet."
@@ -84,27 +266,12 @@
 
 #, python-format
-msgid "Beware : computed job size (%s) != precomputed job size (%s)"
-msgstr ""
-
-msgid ""
-"The job size will be trusted anyway according to the 'trustjobsize' directive"
-msgstr ""
-
-#, python-format
-msgid ""
-"The job size will be trusted because it is inferior to the 'trustjobsize' "
-"directive's limit %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"The job size will be modified according to the 'trustjobsize' directive : %s"
-msgstr ""
-
-#, python-format
 msgid "Job size : %i"
 msgstr "Auftragsgr� %i"
 
 #, python-format
+msgid "User %s's quota on printer %s won't be modified"
+msgstr ""
+
+#, python-format
 msgid "Updating user %s's quota on printer %s"
 msgstr "Das Kontingent f�utzer %s auf Drucker %s wird angepasst"
@@ -113,14 +280,6 @@
 msgstr "Auftrag zum Verlauf hinzugef�
 #, python-format
-msgid "File number %s unregistered twice from polling object, ignored."
-msgstr "Datei Nummer %s zweimal vom Abfrage Objekt abgemeldet, wird ignoriert."
-
-#, python-format
-msgid "SIGTERM was sent to real backend %s (pid: %s)"
-msgstr "SIGTERM wurde an reales Backend %s (pid: %s) gesendet"
-
-#, python-format
-msgid "CUPS backend %s died abnormally."
-msgstr "CUPS Backend %s abgest�
+msgid "Billing code %s was updated."
+msgstr ""
 
 #, python-format
@@ -290,4 +449,5 @@
 "                       \n"
 "  -n | --noquota       Doesn't set a quota but only does accounting.\n"
+"                       This is the same as --limitby noquota.\n"
 "  \n"
 "  -r | --reset         Resets the actual page counter for the user\n"
@@ -303,8 +463,14 @@
 "                       by its account balance or by its page quota.\n"
 "                       The default value is 'quota'. Allowed values\n"
-"                       are 'quota' 'balance' 'quota-then-balance' and\n"
-"                       'balance-then-quota'.\n"
-"                       WARNING : quota-then-balance and balance-then-quota\n"
-"                       are not yet implemented.\n"
+"                       are 'quota' 'balance' 'noquota' 'noprint' \n"
+"                       and 'nochange' :\n"
+"                       \n"
+"                         - quota : limit by number of pages per printer.\n"
+"                         - balance : limit by number of credits in account.\n"
+"                         - noquota : no limit, accounting still done.\n"
+"                         - nochange : no limit, accounting not done. \n"
+"                         - noprint : printing is denied. \n"
+"                       NB : nochange and noprint are not supported for "
+"groups.\n"
 "                       \n"
 "  -b | --balance b     Sets the user's account balance to "
@@ -318,8 +484,16 @@
 "                       sum of their users' account balance.\n"
 "                       \n"
+"  -C | --comment txt   Defines some informational text to be associated\n"
+"                       with a change to an user's account balance.\n"
+"                       Only meaningful if -b | --balance is also used.\n"
+"                       \n"
 "  -S | --softlimit sl  Sets the quota soft limit to sl "
 "pages.                       \n"
 "  \n"
 "  -H | --hardlimit hl  Sets the quota hard limit to hl pages.\n"
+"  \n"
+"  -I | --increase v    Increase both Soft and Hard limits by the value\n"
+"                       of v. You can prefix v with + or -, if no sign is\n"
+"                       used, + is assumed.\n"
 "\n"
 "  -U | --used usage    Sets the pagecounters for the user to usage pages;\n"
@@ -427,5 +601,13 @@
 
 #, python-format
+msgid "Invalid limitby value %s"
+msgstr "Ung�r Wert f�itby %s"
+
+#, python-format
 msgid "Invalid used value %s."
+msgstr ""
+
+#, python-format
+msgid "Invalid increase value %s."
 msgstr ""
 
@@ -455,8 +637,4 @@
 
 #, python-format
-msgid "Invalid limitby value %s"
-msgstr "Ung�r Wert f�itby %s"
-
-#, python-format
 msgid "Impossible to add printer %s"
 msgstr "Unm�ch den Drucker %s hinzuzuf�
@@ -513,18 +691,127 @@
 
 #, python-format
+msgid "You can't increase limits by %s when no limit is set."
+msgstr ""
+
+msgid "You can't set negative limits."
+msgstr ""
+
+#, python-format
 msgid "Group %s not found in the PyKota Storage."
 msgstr "Gruppe %s in der PyKota Kontingentverwaltung nicht gefunden."
 
+#, python-format
+msgid "Nonexistent user %s or missing print quota entry."
+msgstr ""
+
+#, python-format
+msgid "Nonexistent group %s or missing print quota entry."
+msgstr ""
+
 msgid "incompatible options, see help."
 msgstr "Inkompatible Optionen, siehe Hilfe."
 
-msgid "Software accounting already done in first pass. Ignoring."
-msgstr ""
-"Software Kontof� bereits im ersten Durchgang erledigt. Wird ignoriert."
-
-msgid "Hardware accounting already done in first pass. Ignoring."
-msgstr "Hardware Kontof� bereits im ersten Durchgang erledigt. Ignoriere."
-
-msgid "Job size and price now set in history."
+#, python-format
+msgid ""
+"repykota v%(__version__)s (c) %(__years__)s %(__author__)s\n"
+"\n"
+"Generates print quota reports.\n"
+"\n"
+"command line usage :\n"
+"\n"
+"  repykota [options] \n"
+"\n"
+"options :\n"
+"\n"
+"  -v | --version       Prints repykota's version number then exits.\n"
+"  -h | --help          Prints this message then exits.\n"
+"  \n"
+"  -u | --users         Generates a report on users quota, this is \n"
+"                       the default.\n"
+"  \n"
+"  -g | --groups        Generates a report on group quota instead of users.\n"
+"  \n"
+"  -i | --ingroups g1[,g2...]  Only lists users who are members of these\n"
+"                              groups. Reserved to PyKota Administrators.\n"
+"  \n"
+"  -P | --printer p     Report quotas on this printer only. Actually p can\n"
+"                       use wildcards characters to select only\n"
+"                       some printers. The default value is *, meaning\n"
+"                       all printers.\n"
+"                       You can specify several names or wildcards, \n"
+"                       by separating them with commas.\n"
+"  \n"
+"examples :                              \n"
+"\n"
+"  $ repykota --printer lp\n"
+"  \n"
+"  This will print the quota status for all users who use the lp printer.\n"
+"\n"
+"  $ repykota \n"
+"  \n"
+"  This will print the quota status for all users on all printers.\n"
+"  \n"
+"  $ repykota --printer \"laser*,*pson\" jerome \"jo*\"\n"
+"  \n"
+"  This will print the quota status for user jerome and all users\n"
+"  whose name begins with \"jo\" on all printers which name begins\n"
+"  with \"laser\" or ends with \"pson\".\n"
+"  \n"
+"  If launched by an user who is not a PyKota administrator, additionnal\n"
+"  arguments representing users or groups names are ignored, and only the\n"
+"  current user/group is reported.\n"
+msgstr ""
+
+msgid "Option --ingroups is reserved to PyKota Administrators."
+msgstr ""
+
+#, python-format
+msgid ""
+"warnpykota v%(__version__)s (c) %(__years__)s %(__author__)s\n"
+"\n"
+"Sends mail to users over print quota.\n"
+"\n"
+"command line usage :\n"
+"\n"
+"  warnpykota  [options]  [names]\n"
+"\n"
+"options :\n"
+"\n"
+"  -v | --version       Prints warnpykota's version number then exits.\n"
+"  -h | --help          Prints this message then exits.\n"
+"  \n"
+"  -u | --users         Warns users over their print quota, this is the \n"
+"                       default.\n"
+"  \n"
+"  -g | --groups        Warns users whose groups quota are over limit.\n"
+"  \n"
+"  -P | --printer p     Verify quotas on this printer only. Actually p can\n"
+"                       use wildcards characters to select only\n"
+"                       some printers. The default value is *, meaning\n"
+"                       all printers.\n"
+"                       You can specify several names or wildcards, \n"
+"                       by separating them with commas.\n"
+"  \n"
+"examples :                              \n"
+"\n"
+"  $ warnpykota --printer lp\n"
+"  \n"
+"  This will warn all users of the lp printer who have exceeded their\n"
+"  print quota.\n"
+"\n"
+"  $ warnpykota \n"
+"  \n"
+"  This will warn all users  who have exceeded their print quota on\n"
+"  any printer.\n"
+"\n"
+"  $ warnpykota --groups --printer \"laserjet*\" \"dev*\"\n"
+"  \n"
+"  This will warn all users of groups which names begins with \"dev\" and\n"
+"  who have exceeded their print quota on any printer which name begins \n"
+"  with \"laserjet\"\n"
+"  \n"
+"  If launched by an user who is not a PyKota administrator, additionnal\n"
+"  arguments representing users or groups names are ignored, and only the\n"
+"  current user/group is reported.\n"
 msgstr ""
 
@@ -639,65 +926,82 @@
 #, python-format
 msgid ""
-"pkhint v%(__version__)s (c) %(__years__)s %(__author__)s\n"
-"\n"
-"A tool to give hints on what accounting method is best for each printer.\n"
+"pkbcodes v%(__version__)s (c) %(__years__)s %(__author__)s\n"
+"\n"
+"A billing codes Manager for PyKota.\n"
 "\n"
 "command line usage :\n"
 "\n"
-"  pkhint [options] [printer1 printer2 printer3 ... printerN] <file.conf\n"
+"  pkbcodes [options] code1 code2 code3 ... codeN\n"
 "\n"
 "options :\n"
 "\n"
-"  -v | --version       Prints pkhint's version number then exits.\n"
+"  -v | --version       Prints pkbcodes version number then exits.\n"
 "  -h | --help          Prints this message then exits.\n"
 "  \n"
+"  -a | --add           Adds billing codes if they don't exist in PyKota's\n"
+"                       database. If they exist, they are modified\n"
+"                       unless -s|--skipexisting is also used.\n"
+"\n"
+"  -d | --delete        Deletes billing codes from PyKota's database.\n"
+"                       NB : the history entries with this billing code\n"
+"                       are not deleted, voluntarily.\n"
+"\n"
+"  -D | --description d Adds a textual description to billing codes.\n"
+"\n"
+"  -l | --list          List informations about the billing codes.\n"
+"\n"
+"  -s | --reset         Resets the billing codes' balance and page counters\n"
+"                       to 0.\n"
+"\n"
+"  -s | --skipexisting  In combination with the --add option above, tells\n"
+"                       pkbcodes to not modify existing billing codes.\n"
+"\n"
+"  code1 through codeN can contain wildcards if the --add option\n"
+"  is not set.\n"
+"\n"
 "examples :                              \n"
 "\n"
-"  $ pkhint \"hp*\" printer103 </etc/cups/printers.conf\n"
-"  \n"
-"  Will analyze your printing system to test which accounter\n"
-"  is the best for each of the defined printer which\n"
-"  name matches one of the parameters.\n"
-"  \n"
-"  If you don't pass any argument on the command line, all\n"
-"  printers will be analyzed.\n"
-msgstr ""
-
-#, python-format
-msgid "Invalid DeviceURI : %s"
-msgstr "Ung� DeviceURI: %s"
-
-msgid ""
-"\n"
-"Please wait while pkhint analyzes your printing system's configuration..."
-msgstr ""
-"\n"
-"Bitte warten Sie w�end pkhint die Konfiguration ihres Drucksystems "
-"analysiert..."
-
-#, python-format
-msgid "Unknown device %s for printer %s"
-msgstr "Unbekannter Anschluss %s f�cker %s"
-
-msgid ""
-"\n"
-"Put the following lines into your /etc/pykota/pykota.conf file :\n"
-msgstr ""
-"\n"
-"F�ie folgende Zeilen in ihre /etc/pykota/pykota.conf Datei ein:\n"
-
-msgid "# BEWARE : if software accounting is suggested, this doesn't mean"
-msgstr ""
-"# ACHTUNG: wenn Software Accounting vorgeschlagen wird, bedeutet dies nicht,"
-
-msgid "# that hardware accounting wouldn't work, this only means that PyKota"
-msgstr ""
-" dass Hardware Accounting nicht funktionieren w�es bedeutet nur, dass "
-"PyKota"
-
-msgid "# wasn't able to autodetect which hardware accounting method to use."
-msgstr ""
-" nicht in der Lage war, automatisch festzustellen, welche Hardware "
-"Accounting Methode zu benutzen ist."
+"  $ pkbcodes --add -D \"My project\" myproj\n"
+"\n"
+"  Will create the myproj billing code with \"My project\"\n"
+"  as the description.\n"
+"\n"
+"  $ pkbcodes --delete \"*\"\n"
+"\n"
+"  This will completely delete all the billing codes, but without\n"
+"  removing any matching job from the history. USE WITH CARE ANYWAY !\n"
+"  \n"
+"  $ pkbcodes --list \"my*\"\n"
+"  \n"
+"  This will list all billing codes which name begins with 'my'.\n"
+msgstr ""
+
+#, python-format
+msgid "Billing code [%s] already exists, skipping."
+msgstr ""
+
+#, python-format
+msgid "Billing code [%s] already exists, will be modified."
+msgstr ""
+
+#, python-format
+msgid "Impossible to add billingcode %s"
+msgstr ""
+
+#, python-format
+msgid "There's no billingcode matching %s"
+msgstr ""
+
+msgid "pages"
+msgstr ""
+
+msgid "and"
+msgstr ""
+
+msgid "credits"
+msgstr ""
+
+msgid "You have to pass billing codes on the command line"
+msgstr ""
 
 #, python-format
@@ -796,4 +1100,15 @@
 "  -s | --skipexisting  In combination with the --add option above, tells\n"
 "                       pkprinters to not modify existing printers.\n"
+"                       \n"
+"  -m | --maxjobsize s  Sets the maximum job size allowed on the printer\n"
+"                       to s pages.\n"
+"                       \n"
+"  -p | --passthrough   Activate passthrough mode for the printer. In this\n"
+"                       mode, users are allowed to print without any impact\n"
+"                       on their quota or account balance.\n"
+"                       \n"
+"  -n | --nopassthrough Deactivate passthrough mode for the printer.\n"
+"                       Without -p or -n, printers are created in \n"
+"                       normal mode, i.e. no passthrough.\n"
 "  \n"
 "  printer1 through printerN can contain wildcards if the --add option \n"
@@ -831,4 +1146,8 @@
 
 #, python-format
+msgid "Invalid maximum job size value %s"
+msgstr ""
+
+#, python-format
 msgid "Printer %s already exists, skipping."
 msgstr "Drucker %s existiert bereits, wird �rungen"
@@ -841,4 +1160,25 @@
 msgstr "in"
 
+#, python-format
+msgid "Passthrough mode : %s"
+msgstr ""
+
+msgid "ON"
+msgstr ""
+
+msgid "OFF"
+msgstr ""
+
+#, python-format
+msgid "Maximum job size : %s"
+msgstr ""
+
+#, python-format
+msgid "%s pages"
+msgstr ""
+
+msgid "Unlimited"
+msgstr ""
+
 msgid "You have to pass printer groups names on the command line"
 msgstr ""
@@ -847,4 +1187,123 @@
 msgid "You have to pass printer names on the command line"
 msgstr "Sie m�Druckernamen auf der Kommandozeile �ben"
+
+#, python-format
+msgid ""
+"pkturnkey v%(__version__)s (c) %(__years__)s %(__author__)s\n"
+"\n"
+"A turn key tool for PyKota. When launched, this command will initialize\n"
+"PyKota's database with all existing print queues and some or all users.\n"
+"For now, no prices or limits are set, so printing is fully accounted\n"
+"for, but not limited.\n"
+"\n"
+"command line usage :\n"
+"\n"
+"  pkturnkey [options] [printqueues names]\n"
+"\n"
+"options :\n"
+"\n"
+"  -v | --version       Prints pkturnkey version number then exits.\n"
+"  -h | --help          Prints this message then exits.\n"
+"  \n"
+"  -c | --doconf        Give hints about what to put into pykota.conf\n"
+"  \n"
+"  -d | --dousers       Manages users accounts as well.\n"
+"  \n"
+"  -D | --dogroups      Manages users groups as well.\n"
+"                       Implies -d | --dousers.\n"
+"  \n"
+"  -e | --emptygroups   Includes empty groups.\n"
+"  \n"
+"  -f | --force         Modifies the database instead of printing what\n"
+"                       it would do.\n"
+"                       \n"
+"  -u | --uidmin uid    Only adds users whose uid is greater than or equal "
+"to\n"
+"                       uid. You can pass an username there as well, and its\n"
+"                       uid will be used automatically.\n"
+"                       If not set, 0 will be used automatically.\n"
+"                       Implies -d | --dousers.\n"
+"                       \n"
+"  -U | --uidmax uid    Only adds users whose uid is lesser than or equal to\n"
+"                       uid. You can pass an username there as well, and its\n"
+"                       uid will be used automatically.\n"
+"                       If not set, a large value will be used "
+"automatically.\n"
+"                       Implies -d | --dousers.\n"
+"\n"
+"  -g | --gidmin gid    Only adds groups whose gid is greater than or equal "
+"to\n"
+"                       gid. You can pass a groupname there as well, and its\n"
+"                       gid will be used automatically.\n"
+"                       If not set, 0 will be used automatically.\n"
+"                       Implies -D | --dogroups.\n"
+"                       \n"
+"  -G | --gidmax gid    Only adds groups whose gid is lesser than or equal "
+"to\n"
+"                       gid. You can pass a groupname there as well, and its\n"
+"                       gid will be used automatically.\n"
+"                       If not set, a large value will be used "
+"automatically.\n"
+"                       Implies -D | --dogroups.\n"
+"\n"
+"examples :                              \n"
+"\n"
+"  $ pkturnkey --dousers --uidmin jerome\n"
+"\n"
+"  Will simulate the initialization of PyKota's database will all existing\n"
+"  printers and print accounts for all users whose uid is greater than\n"
+"  or equal to jerome's one. Won't manage any users group.\n"
+"  \n"
+"  To REALLY initialize the database instead of simulating it, please\n"
+"  use the -f | --force command line switch.\n"
+"  \n"
+"  You can limit the initialization to only a subset of the existing\n"
+"  printers, by passing their names at the end of the command line.\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"Printer %s is not managed by PyKota yet. Please modify printers.conf and "
+"restart CUPS."
+msgstr ""
+
+msgid "Please be patient..."
+msgstr ""
+
+msgid "Don't worry, the database WILL NOT BE MODIFIED."
+msgstr ""
+
+msgid "Please WORRY NOW, the database WILL BE MODIFIED."
+msgstr ""
+
+msgid "System users will have a print account as well !"
+msgstr ""
+
+#, python-format
+msgid "Unknown username %s : %s"
+msgstr ""
+
+msgid "System groups will have a print account as well !"
+msgstr ""
+
+#, python-format
+msgid "Unknown groupname %s : %s"
+msgstr ""
+
+msgid "Simulation terminated."
+msgstr ""
+
+msgid "Database initialized !"
+msgstr ""
+
+msgid "The --uidmin or --uidmax command line option implies --dousers as well."
+msgstr ""
+
+msgid ""
+"The --gidmin or --gidmax command line option implies --dogroups as well."
+msgstr ""
+
+msgid "The --dogroups command line option implies --dousers as well."
+msgstr ""
 
 #, python-format
@@ -974,102 +1433,4 @@
 msgstr "Kosten f�cker %s : %.2f"
 
-#, python-format
-msgid ""
-"repykota v%(__version__)s (c) %(__years__)s %(__author__)s\n"
-"\n"
-"Generates print quota reports.\n"
-"\n"
-"command line usage :\n"
-"\n"
-"  repykota [options] \n"
-"\n"
-"options :\n"
-"\n"
-"  -v | --version       Prints repykota's version number then exits.\n"
-"  -h | --help          Prints this message then exits.\n"
-"  \n"
-"  -u | --users         Generates a report on users quota, this is \n"
-"                       the default.\n"
-"  \n"
-"  -g | --groups        Generates a report on group quota instead of users.\n"
-"  \n"
-"  -P | --printer p     Report quotas on this printer only. Actually p can\n"
-"                       use wildcards characters to select only\n"
-"                       some printers. The default value is *, meaning\n"
-"                       all printers.\n"
-"                       You can specify several names or wildcards, \n"
-"                       by separating them with commas.\n"
-"  \n"
-"examples :                              \n"
-"\n"
-"  $ repykota --printer lp\n"
-"  \n"
-"  This will print the quota status for all users who use the lp printer.\n"
-"\n"
-"  $ repykota \n"
-"  \n"
-"  This will print the quota status for all users on all printers.\n"
-"  \n"
-"  $ repykota --printer \"laser*,*pson\" jerome \"jo*\"\n"
-"  \n"
-"  This will print the quota status for user jerome and all users\n"
-"  whose name begins with \"jo\" on all printers which name begins\n"
-"  with \"laser\" or ends with \"pson\".\n"
-"  \n"
-"  If launched by an user who is not a PyKota administrator, additionnal\n"
-"  arguments representing users or groups names are ignored, and only the\n"
-"  current user/group is reported.\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"warnpykota v%(__version__)s (c) %(__years__)s %(__author__)s\n"
-"\n"
-"Sends mail to users over print quota.\n"
-"\n"
-"command line usage :\n"
-"\n"
-"  warnpykota  [options]  [names]\n"
-"\n"
-"options :\n"
-"\n"
-"  -v | --version       Prints warnpykota's version number then exits.\n"
-"  -h | --help          Prints this message then exits.\n"
-"  \n"
-"  -u | --users         Warns users over their print quota, this is the \n"
-"                       default.\n"
-"  \n"
-"  -g | --groups        Warns users whose groups quota are over limit.\n"
-"  \n"
-"  -P | --printer p     Verify quotas on this printer only. Actually p can\n"
-"                       use wildcards characters to select only\n"
-"                       some printers. The default value is *, meaning\n"
-"                       all printers.\n"
-"                       You can specify several names or wildcards, \n"
-"                       by separating them with commas.\n"
-"  \n"
-"examples :                              \n"
-"\n"
-"  $ warnpykota --printer lp\n"
-"  \n"
-"  This will warn all users of the lp printer who have exceeded their\n"
-"  print quota.\n"
-"\n"
-"  $ warnpykota \n"
-"  \n"
-"  This will warn all users  who have exceeded their print quota on\n"
-"  any printer.\n"
-"\n"
-"  $ warnpykota --groups --printer \"laserjet*\" \"dev*\"\n"
-"  \n"
-"  This will warn all users of groups which names begins with \"dev\" and\n"
-"  who have exceeded their print quota on any printer which name begins \n"
-"  with \"laserjet\"\n"
-"  \n"
-"  If launched by an user who is not a PyKota administrator, additionnal\n"
-"  arguments representing users or groups names are ignored, and only the\n"
-"  current user/group is reported.\n"
-msgstr ""
-
 msgid "PyKota Data Dumper"
 msgstr ""
@@ -1090,4 +1451,10 @@
 msgstr ""
 
+msgid "Summarize"
+msgstr ""
+
+msgid "only for payments or history"
+msgstr ""
+
 msgid "PyKota Reports"
 msgstr "PyKota Reporte"
@@ -1123,18 +1490,18 @@
 msgstr "AuftragsId"
 
-msgid "JobSize"
-msgstr "AuftragsGr�
-
-msgid "JobPrice"
-msgstr "AuftragsPreis"
+msgid "Number of pages"
+msgstr ""
+
+msgid "Cost"
+msgstr ""
 
 msgid "Copies"
 msgstr "Kopien"
 
-msgid "JobBytes"
-msgstr "Auftrag in Bytes"
-
-msgid "PageCounter"
-msgstr "SeitenZ�er"
+msgid "Number of bytes"
+msgstr ""
+
+msgid "Printer's internal counter"
+msgstr ""
 
 msgid "Options"
@@ -1144,8 +1511,17 @@
 msgstr ""
 
-msgid "BillingCode"
-msgstr ""
-
-msgid "Pages"
+msgid "Billing code"
+msgstr ""
+
+msgid "Precomputed number of pages"
+msgstr ""
+
+msgid "Precomputed cost"
+msgstr ""
+
+msgid "Pages details"
+msgstr ""
+
+msgid "(not supported yet)"
 msgstr ""
 
@@ -1159,6 +1535,7 @@
 msgstr ""
 
-#, python-format
-msgid "This file is %i pages long."
+msgid ""
+"The exact cost of a print job can only be determined for a particular user. "
+"Please retry while logged-in."
 msgstr ""
 
@@ -1166,4 +1543,10 @@
 msgid "Unsupported accounter backend %s"
 msgstr "Accounterbackend %s wird nicht unterst�#, python-format
+msgid ""
+"Configuration file %s can't be read. Please check that the file exists and "
+"that your permissions are sufficient."
+msgstr ""
+
+#, python-format
 msgid "Configuration file %s not found."
 msgstr "Konfigurationsdatei %s nicht gefunden."
@@ -1194,4 +1577,12 @@
 
 #, python-format
+msgid "Invalid unknown_billingcode directive %s for printer %s"
+msgstr ""
+
+#, python-format
+msgid "Directive unknown_billingcode in section %s only supports values in %s"
+msgstr ""
+
+#, python-format
 msgid "Option enforcement in section %s only supports values in %s"
 msgstr "Option 'enforcement' in Abschnitt %s unterst�ur folgende Werte %s"
@@ -1201,8 +1592,4 @@
 msgstr ""
 "Option 'onaccountererror' in Abschnitt %s unterst�ur folgende Werte %s"
-
-#, python-format
-msgid "Invalid policy %s for printer %s"
-msgstr "Ung� Richtlinie ('policy') %s f�cker %s"
 
 #, python-format
@@ -1288,4 +1675,7 @@
 msgstr ""
 
+msgid "Billing Codes"
+msgstr ""
+
 msgid "Comma Separated Values"
 msgstr ""
@@ -1320,4 +1710,8 @@
 msgstr "XML-Ausgabe ist unm�ch, weil das jaxml-Modul nicht verf�ist."
 
+#, python-format
+msgid "Invalid data type [%s] for --sum command line option, see help."
+msgstr ""
+
 msgid "PyKota data dumper failed : I/O error"
 msgstr "PyKota data dumper fehlgeschlagen: I/O-Fehler"
@@ -1400,11 +1794,6 @@
 msgstr ""
 
-#, python-format
-msgid "Impossible to connect to SMTP server : %s"
-msgstr "SMTP-Server kann nicht erreicht werden: %s"
-
-#, python-format
-msgid "Impossible to send mail to %s, error %s : %s"
-msgstr "Unm�ch Mail an %s zu senden, Fehler %s : %s"
+msgid "Please report bugs to :"
+msgstr ""
 
 #, python-format
@@ -1444,7 +1833,4 @@
 msgstr "�erzogenes Druckkontingent f�ppe %s auf Drucker %s"
 
-msgid "Print Quota"
-msgstr "Druckkontingent"
-
 msgid "Print Quota Exceeded"
 msgstr "�erzogenes Druckkontingent"
@@ -1454,114 +1840,8 @@
 msgstr "Niedriges Druckkontingent f�ppe %s auf Drucker %s"
 
-#, python-format
-msgid "Print Quota exceeded for user %s on printer %s"
-msgstr "�erzogenes Druckkontingent f�utzer %s auf Drucker %s"
-
-#, python-format
-msgid "Print Quota low for user %s on printer %s"
-msgstr "Niedriges Druckkontingent f�utzer %s auf Drucker %s"
-
 msgid "Print Quota Low"
 msgstr "Niedriges Druckkontingent"
 
 #, python-format
-msgid "Printing system %s, args=%s"
-msgstr "Drucksystem %s, args=%s"
-
-#, python-format
-msgid "Unable to precompute the job's size with the generic PDL analyzer : %s"
-msgstr ""
-"Vorausberechnung der Auftragsgr�nicht m�ch mit der allgemeinen PDL "
-"Analyseroutine : %s"
-
-#, python-format
-msgid "SIGTERM received, job %s cancelled."
-msgstr "SIGTERM empfangen, Auftrag %s abgebrochen."
-
-msgid "Printer hostname undefined, set to 'localhost'"
-msgstr "Hostname des Druckers nicht definiert, setze auf 'localhost'"
-
-#, python-format
-msgid "Printing system unknown, args=%s"
-msgstr "Drucksystem unbekannt, args=%s"
-
-#, python-format
-msgid ""
-"Printer %s not registered in the PyKota system, applying external policy (%"
-"s) for printer %s"
-msgstr ""
-"Drucker %s ist nicht im PyKota System registriert, wende externe Richtlinie "
-"(%s) f�cker %s an"
-
-#, python-format
-msgid ""
-"User %s not registered in the PyKota system, applying external policy (%s) "
-"for printer %s"
-msgstr ""
-"Benutzer %s ist nicht in der PyKota-Verwaltung registriert, wende externe "
-"Richtlinie (%s) f�cker %s an"
-
-#, python-format
-msgid ""
-"User %s doesn't have quota on printer %s in the PyKota system, applying "
-"external policy (%s) for printer %s"
-msgstr ""
-"Benutzer %s hat in der PyKota-Verwaltung kein Kontingent auf Drucker %s, "
-"wende externe Richtlinie (%s) f�cker %s an"
-
-#, python-format
-msgid ""
-"External policy %s for printer %s produced an error. Job rejected. Please "
-"check PyKota's configuration files."
-msgstr ""
-"Externe Richtlinie %s f�cker %s hat eine Fehler erzeugt. Auftrag "
-"abgelehnt. Bitte ��ie PyKota's Konfigurationsdatei."
-
-#, python-format
-msgid ""
-"Printer %s not registered in the PyKota system, applying default policy (%s)"
-msgstr ""
-"Drucker %s ist nicht in der PyKota-Verwaltung registriert, wende Standard-"
-"Richtlinie (%s) an"
-
-#, python-format
-msgid ""
-"User %s not registered in the PyKota system, applying default policy (%s) "
-"for printer %s"
-msgstr ""
-"Benutzer %s ist nicht in der PyKota-Verwaltung registriert, wende Standard-"
-"Richtlinie (%s) f�cker %s an"
-
-#, python-format
-msgid ""
-"User %s doesn't have quota on printer %s in the PyKota system, applying "
-"default policy (%s)"
-msgstr ""
-"Benutzer %s hat in der PyKota-Verwaltung f�cker %s kein Kontingent, "
-"wende Standard-Richtlinie (%s) an"
-
-#, python-format
-msgid ""
-"Printer %s still not registered in the PyKota system, job will be rejected"
-msgstr ""
-"Drucker %s noch immer nicht in der PyKota-Verwaltung registriert, Auftrag "
-"wird abgelehnt werden"
-
-#, python-format
-msgid ""
-"User %s still not registered in the PyKota system, job will be rejected on "
-"printer %s"
-msgstr ""
-"Benutzer %s noch immer nicht in der PyKota-Verwaltung registriert, Auftrag "
-"f�cker %s wird abgelehnt"
-
-#, python-format
-msgid ""
-"User %s still doesn't have quota on printer %s in the PyKota system, job "
-"will be rejected"
-msgstr ""
-"Benutzer %s hat in der PyKota-Verwaltung noch immer kein Kontingent f�Drucker %s, Auftrag wird abgelehnt"
-
-#, python-format
 msgid "A problem occured while reading printer %s's internal page counter."
 msgstr ""
@@ -1628,4 +1908,8 @@
 
 #, python-format
+msgid "Problem while receiving PJL answer from %s:%s : %s"
+msgstr ""
+
+#, python-format
 msgid "Waiting for printer %s to be printing..."
 msgstr ""
@@ -1717,4 +2001,7 @@
 "LDAP-Eintr� manuell erzeugt?"
 
+msgid "Hidden because of privacy concerns"
+msgstr ""
+
 #, python-format
 msgid ""
@@ -1733,24 +2020,80 @@
 "Unm�ch einen existierenden Eintrag zu finden, um pykotaGroup objectClass %"
 "s anzuf�
-msgid "Hidden because of privacy concerns"
-msgstr ""
-
-msgid "Summarize"
-msgstr ""
-
-msgid "Invalid data type [%s] for --sum command line option, see help."
-msgstr ""
-
-msgid "only for payments or history"
-msgstr ""
-
-msgid "Job is a duplicate. Printing is denied by subprocess."
-msgstr ""
-
-msgid "Job is a duplicate. Printing is allowed by subprocess."
-msgstr ""
-
-msgid "Please report bugs to :"
-msgstr ""
+#~ msgid "File number %s unregistered twice from polling object, ignored."
+#~ msgstr ""
+#~ "Datei Nummer %s zweimal vom Abfrage Objekt abgemeldet, wird ignoriert."
+
+#~ msgid "SIGTERM was sent to real backend %s (pid: %s)"
+#~ msgstr "SIGTERM wurde an reales Backend %s (pid: %s) gesendet"
+
+#~ msgid "CUPS backend %s died abnormally."
+#~ msgstr "CUPS Backend %s abgest�
+
+#~ msgid "Software accounting already done in first pass. Ignoring."
+#~ msgstr ""
+#~ "Software Kontof� bereits im ersten Durchgang erledigt. Wird "
+#~ "ignoriert."
+
+#~ msgid "Hardware accounting already done in first pass. Ignoring."
+#~ msgstr ""
+#~ "Hardware Kontof� bereits im ersten Durchgang erledigt. Ignoriere."
+
+#~ msgid "Invalid DeviceURI : %s"
+#~ msgstr "Ung� DeviceURI: %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Please wait while pkhint analyzes your printing system's configuration..."
+#~ msgstr ""
+#~ "\n"
+#~ "Bitte warten Sie w�end pkhint die Konfiguration ihres Drucksystems "
+#~ "analysiert..."
+
+#~ msgid "Unknown device %s for printer %s"
+#~ msgstr "Unbekannter Anschluss %s f�cker %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Put the following lines into your /etc/pykota/pykota.conf file :\n"
+#~ msgstr ""
+#~ "\n"
+#~ "F�ie folgende Zeilen in ihre /etc/pykota/pykota.conf Datei ein:\n"
+
+#~ msgid "# BEWARE : if software accounting is suggested, this doesn't mean"
+#~ msgstr ""
+#~ "# ACHTUNG: wenn Software Accounting vorgeschlagen wird, bedeutet dies "
+#~ "nicht,"
+
+#~ msgid ""
+#~ "# that hardware accounting wouldn't work, this only means that PyKota"
+#~ msgstr ""
+#~ " dass Hardware Accounting nicht funktionieren w�es bedeutet nur, "
+#~ "dass PyKota"
+
+#~ msgid "# wasn't able to autodetect which hardware accounting method to use."
+#~ msgstr ""
+#~ " nicht in der Lage war, automatisch festzustellen, welche Hardware "
+#~ "Accounting Methode zu benutzen ist."
+
+#~ msgid "JobSize"
+#~ msgstr "AuftragsGr�
+
+#~ msgid "JobPrice"
+#~ msgstr "AuftragsPreis"
+
+#~ msgid "JobBytes"
+#~ msgstr "Auftrag in Bytes"
+
+#~ msgid "PageCounter"
+#~ msgstr "SeitenZ�er"
+
+#~ msgid "Printing system %s, args=%s"
+#~ msgstr "Drucksystem %s, args=%s"
+
+#~ msgid "Printer hostname undefined, set to 'localhost'"
+#~ msgstr "Hostname des Druckers nicht definiert, setze auf 'localhost'"
+
+#~ msgid "Printing system unknown, args=%s"
+#~ msgstr "Drucksystem unbekannt, args=%s"
 
 #~ msgid ""
