Index: pykota/trunk/po/nb_NO/pykota.po
===================================================================
--- pykota/trunk/po/nb_NO/pykota.po (revision 2344)
+++ pykota/trunk/po/nb_NO/pykota.po (revision 2487)
@@ -65,21 +65,205 @@
 
 #, python-format
+msgid "SIGTERM received, job %s cancelled."
+msgstr "Signalet SIGTERM ble sendt, utskriften %s ble avbrutt."
+
+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 ""
+"Klarer ikke �eregne st�sen p�tskriften ved hjelp av den generiske "
+"PDL analyseren : %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 ""
+"Utskriftsbanner vil ikke bli skrevet : det maksimale antall utskriftsbannere "
+"som nektes er n�."
+
+#, python-format
+msgid "Beware : computed job size (%s) != precomputed job size (%s)"
+msgstr ""
+"Advarsel : beregnet utskriftst�se (%s) != forberegnet utskriftst�se "
+"(%s)"
+
+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 ""
+"St�sen p�tskriften vil bli endret, i samsvar med 'trustjobsize' "
+"regelen : %s"
+
+#, python-format
+msgid ""
+"Printer %s not registered in the PyKota system, applying external policy (%"
+"s) for printer %s"
+msgstr ""
+"Skriver %s er ikke registret i Pykotasystemet, bruker ekstern regel (%s) p�
+"skriver %s"
+
+#, python-format
+msgid ""
+"User %s not registered in the PyKota system, applying external policy (%s) "
+"for printer %s"
+msgstr ""
+"Bruker %s er ikke registret i Pykotasystemet, bruker ekstern regel (%s) p�
+"skriver %s"
+
+#, python-format
+msgid ""
+"User %s doesn't have quota on printer %s in the PyKota system, applying "
+"external policy (%s) for printer %s"
+msgstr ""
+"Bruker %s har ingen kvote p�kriver %s i Pykotasystemet, bruker ekstern "
+"regel (%s) p�kriver %s"
+
+#, python-format
+msgid ""
+"External policy %s for printer %s produced an error. Job rejected. Please "
+"check PyKota's configuration files."
+msgstr ""
+
+#, python-format
+msgid ""
+"Printer %s not registered in the PyKota system, applying default policy (%s)"
+msgstr ""
+"Skriveren %s er ikke registrert i Pykotasystemet, bruker standard regel (%s)"
+
+#, python-format
+msgid ""
+"User %s not registered in the PyKota system, applying default policy (%s) "
+"for printer %s"
+msgstr ""
+"Bruker %s er ikke registrert i PyKota systemet, bruker standard regel (%s) "
+"for skriver %s"
+
+#, python-format
+msgid ""
+"User %s doesn't have quota on printer %s in the PyKota system, applying "
+"default policy (%s)"
+msgstr ""
+"Bruker %s har ingen kvote p�kriver %s i PyKota systemet, bruker standard "
+"regel (%s)"
+
+#, python-format
+msgid ""
+"Printer %s still not registered in the PyKota system, job will be rejected"
+msgstr ""
+"Skriver %s er fremdeles ikke registrert i Pykotasystemet, utskriften vil "
+"derfor bli nektet"
+
+#, python-format
+msgid ""
+"User %s still not registered in the PyKota system, job will be rejected on "
+"printer %s"
+msgstr ""
+"Bruker %s er fremdeles ikke registrert i Pykotasystemet, utskriften vil "
+"derfor bli nektet p�kriver %s"
+
+#, python-format
+msgid ""
+"User %s still doesn't have quota on printer %s in the PyKota system, job "
+"will be rejected"
+msgstr ""
+"Bruker %s har fremdeles ikke en kvote p�kriver %s i Pykotasystemet, "
+"utskriften vil derfor bli nektet"
+
+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 "Ikke mulig �oble seg til SMTP serveren . %s"
+
+msgid "Print Quota"
+msgstr "Utskriftskvote"
+
+#, python-format
+msgid "Impossible to send mail to %s, error %s : %s"
+msgstr "Ikke mulig �ende e-post til %s, feil %s : %s"
 
 msgid "Job contains no data. Printing is denied."
 msgstr "Utskriften inneholdt ingen data. Ingen utskrift utf�
 
-msgid "Job is a duplicate. Printing is denied."
-msgstr "Utskriften er en duplikat. Utskriften blir ikke skrevet."
-
-msgid "Banner won't be printed : maximum number of deny banners reached."
-msgstr ""
-"Utskriftsbanner vil ikke bli skrevet : det maksimale antall utskriftsbannere "
-"som nektes er n�."
+msgid "Job allowed by printer policy. No accounting will be done."
+msgstr ""
+
+#, python-format
+msgid "Invalid policy %s for printer %s"
+msgstr "Ugyldige regel %s for skriver %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 "Utskriftskvoten er oversteget for bruker %s p�kriver %s"
+
+#, python-format
+msgid "Print Quota low for user %s on printer %s"
+msgstr "Utskriftskvoten er lav for bruker %s p�kriver %s"
+
+msgid "Job denied, no accounting will be done."
+msgstr ""
 
 msgid "Job accounting begins."
 msgstr "Telling av utskrifter begynner."
 
+msgid "Job denied, no accounting has been done."
+msgstr ""
+
 msgid "Job accounting ends."
 msgstr "Telling av utskrifter avsluttes."
@@ -91,31 +275,12 @@
 
 #, python-format
-msgid "Beware : computed job size (%s) != precomputed job size (%s)"
-msgstr ""
-"Advarsel : beregnet utskriftst�se (%s) != forberegnet utskriftst�se "
-"(%s)"
-
-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 ""
-"St�sen p�tskriften vil bli endret, i samsvar med 'trustjobsize' "
-"regelen : %s"
-
-#, python-format
 msgid "Job size : %i"
 msgstr "St�se p�tskriften : %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 "Oppdaterer brukeren %s sin kvote p�kriveren %s"
@@ -125,14 +290,6 @@
 
 #, python-format
-msgid "File number %s unregistered twice from polling object, ignored."
-msgstr ""
-
-#, python-format
-msgid "SIGTERM was sent to real backend %s (pid: %s)"
-msgstr "Signalet SIGTERM ble sendt til bakgrunnen %s (pid: %s)"
-
-#, python-format
-msgid "CUPS backend %s died abnormally."
-msgstr "CUPS bakgrunnen %s stoppet p�n unormal m�."
+msgid "Billing code %s was updated."
+msgstr ""
 
 #, python-format
@@ -302,4 +459,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"
@@ -315,8 +473,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 "
@@ -330,8 +494,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"
@@ -438,32 +610,4 @@
 msgstr "Du har ikke tillatelse til �ruke denne kommandoen."
 
-#, python-format
-msgid "Invalid used value %s."
-msgstr "Ugyldig verdi brukt %s."
-
-#, python-format
-msgid "Invalid softlimit value %s."
-msgstr "Ugyldig verdi for mykgrense %s."
-
-#, python-format
-msgid "Invalid hardlimit value %s."
-msgstr "Ugyldig verdi for hardgrense %s."
-
-#, python-format
-msgid "Hard limit %i is less than soft limit %i, values will be exchanged."
-msgstr "Hardgrensen %i er mindre enn mykgrensen %i, verdiene vil bli utbyttet."
-
-#, python-format
-msgid "Invalid overcharge value %s"
-msgstr "Ugyldig overcharge verdi %s"
-
-#, python-format
-msgid "Invalid balance value %s"
-msgstr "Ugyldig verdi p�alanse %s."
-
-#, python-format
-msgid "Invalid charge amount value %s"
-msgstr "Ugyldig verdi p�ostnad %s."
-
 #, fuzzy, python-format
 msgid "Invalid limitby value %s"
@@ -471,4 +615,36 @@
 
 #, python-format
+msgid "Invalid used value %s."
+msgstr "Ugyldig verdi brukt %s."
+
+#, python-format
+msgid "Invalid increase value %s."
+msgstr ""
+
+#, python-format
+msgid "Invalid softlimit value %s."
+msgstr "Ugyldig verdi for mykgrense %s."
+
+#, python-format
+msgid "Invalid hardlimit value %s."
+msgstr "Ugyldig verdi for hardgrense %s."
+
+#, python-format
+msgid "Hard limit %i is less than soft limit %i, values will be exchanged."
+msgstr "Hardgrensen %i er mindre enn mykgrensen %i, verdiene vil bli utbyttet."
+
+#, python-format
+msgid "Invalid overcharge value %s"
+msgstr "Ugyldig overcharge verdi %s"
+
+#, python-format
+msgid "Invalid balance value %s"
+msgstr "Ugyldig verdi p�alanse %s."
+
+#, python-format
+msgid "Invalid charge amount value %s"
+msgstr "Ugyldig verdi p�ostnad %s."
+
+#, python-format
 msgid "Impossible to add printer %s"
 msgstr "Ikke mulig �egge til skriver %s"
@@ -526,18 +702,128 @@
 
 #, 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 "Gruppen %s ble ikke funnet i PyKotasystemet."
 
+#, 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 "valgene passer ikke sammen, se i Hjelp."
 
-msgid "Software accounting already done in first pass. Ignoring."
-msgstr "Programvare basert bokf� ble utf� f� omgang. Ignorerer."
-
-msgid "Hardware accounting already done in first pass. Ignoring."
-msgstr "Maskinvare basert bokf� ble utf� f� omgang. Ignorerer."
-
-msgid "Job size and price now set in history."
-msgstr "Utskriftst�se og pris er bokf�
+#, 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 ""
 
 #, python-format
@@ -651,64 +937,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 "Ugyldig enhets URI : %s"
-
-msgid ""
-"\n"
-"Please wait while pkhint analyzes your printing system's configuration..."
-msgstr ""
-"\n"
-"Vent litt mens pkhint sjekker hvordan ditt utskriftssystem er "
-"konfigurert ... "
-
-#, python-format
-msgid "Unknown device %s for printer %s"
-msgstr "Ukjent enhet %s for skriver %s"
-
-msgid ""
-"\n"
-"Put the following lines into your /etc/pykota/pykota.conf file :\n"
-msgstr ""
-"\n"
-"Legg til f�de linjer i fila /etc/pykota/pykota.conf :\n"
-
-msgid "# BEWARE : if software accounting is suggested, this doesn't mean"
-msgstr ""
-"# OBS! : selv om programvare basert bokf� er anbefalt, s�etyr ikke det "
-"at"
-
-msgid "# that hardware accounting wouldn't work, this only means that PyKota"
-msgstr "# maskinvare basert bokf� ikke virker, det betyr kun at PyKota"
-
-msgid "# wasn't able to autodetect which hardware accounting method to use."
-msgstr ""
-"# ikke automatisk klarte �vgj�vilken type maskinvare bsaert bokf� "
-"den skulle bruke."
+"  $ 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
@@ -807,4 +1111,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"
@@ -842,4 +1157,8 @@
 
 #, python-format
+msgid "Invalid maximum job size value %s"
+msgstr ""
+
+#, python-format
 msgid "Printer %s already exists, skipping."
 msgstr "Skriveren %s finnes allerede, avbryter."
@@ -852,4 +1171,25 @@
 msgstr "i"
 
+#, 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 "Du m�ppgi skrivergruppe p�ommandolinja"
@@ -857,4 +1197,123 @@
 msgid "You have to pass printer names on the command line"
 msgstr "Du m�ppgi skrivernavn p�ommandolinja"
+
+#, 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
@@ -984,102 +1443,4 @@
 msgstr "Prisen p�kriver %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 "PyKota Data Dumper"
@@ -1100,4 +1461,10 @@
 msgstr "Filter"
 
+msgid "Summarize"
+msgstr ""
+
+msgid "only for payments or history"
+msgstr ""
+
 msgid "PyKota Reports"
 msgstr "Pykota rapporter"
@@ -1133,18 +1500,18 @@
 msgstr "UtskriftsId"
 
-msgid "JobSize"
-msgstr "UtskriftsSt�se"
-
-msgid "JobPrice"
-msgstr "UtskriftsPris"
+msgid "Number of pages"
+msgstr ""
+
+msgid "Cost"
+msgstr ""
 
 msgid "Copies"
 msgstr "Kopier"
 
-msgid "JobBytes"
-msgstr "UtskriftsBytes"
-
-msgid "PageCounter"
-msgstr "SideTeller"
+msgid "Number of bytes"
+msgstr ""
+
+msgid "Printer's internal counter"
+msgstr ""
 
 msgid "Options"
@@ -1154,9 +1521,18 @@
 msgstr "MD5Sum"
 
-msgid "BillingCode"
-msgstr "PrisKode"
-
-msgid "Pages"
-msgstr "Sider"
+msgid "Billing code"
+msgstr ""
+
+msgid "Precomputed number of pages"
+msgstr ""
+
+msgid "Precomputed cost"
+msgstr ""
+
+msgid "Pages details"
+msgstr ""
+
+msgid "(not supported yet)"
+msgstr ""
 
 msgid "Previous page"
@@ -1169,6 +1545,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 ""
 
@@ -1178,4 +1555,10 @@
 
 #, 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 "Konfigurasjonsfil %s ble ikke funnet."
@@ -1207,4 +1590,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 ""
@@ -1213,8 +1604,4 @@
 msgid "Option onaccountererror in section %s only supports values in %s"
 msgstr ""
-
-#, python-format
-msgid "Invalid policy %s for printer %s"
-msgstr "Ugyldige regel %s for skriver %s"
 
 #, python-format
@@ -1299,4 +1686,7 @@
 msgstr "Brukerens gruppemedlemskap"
 
+msgid "Billing Codes"
+msgstr ""
+
 msgid "Comma Separated Values"
 msgstr "Komma Separerte Verdier"
@@ -1330,4 +1720,8 @@
 msgstr "Bruk av XML er ikke mulig fordi jaxml modulen ikke er tilgjengelig."
 
+#, 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 datadumper feilet: I/O-feil"
@@ -1415,11 +1809,6 @@
 msgstr "Fikk tilbake privilegier. Kj�n�om root."
 
-#, python-format
-msgid "Impossible to connect to SMTP server : %s"
-msgstr "Ikke mulig �oble seg til SMTP serveren . %s"
-
-#, python-format
-msgid "Impossible to send mail to %s, error %s : %s"
-msgstr "Ikke mulig �ende e-post til %s, feil %s : %s"
+msgid "Please report bugs to :"
+msgstr ""
 
 #, python-format
@@ -1456,7 +1845,4 @@
 msgstr "Utskriftskvoten er oversteget for gruppe %s p�kriver %s"
 
-msgid "Print Quota"
-msgstr "Utskriftskvote"
-
 msgid "Print Quota Exceeded"
 msgstr "Utskriftskvoten er oversteget"
@@ -1466,112 +1852,8 @@
 msgstr "Utskriftskvoten er lav for gruppe %s p�kriver %s"
 
-#, python-format
-msgid "Print Quota exceeded for user %s on printer %s"
-msgstr "Utskriftskvoten er oversteget for bruker %s p�kriver %s"
-
-#, python-format
-msgid "Print Quota low for user %s on printer %s"
-msgstr "Utskriftskvoten er lav for bruker %s p�kriver %s"
-
 msgid "Print Quota Low"
 msgstr "Utskriftskvoten er lav"
 
 #, python-format
-msgid "Printing system %s, args=%s"
-msgstr "Utskriftssystem %s, args=%s"
-
-#, python-format
-msgid "Unable to precompute the job's size with the generic PDL analyzer : %s"
-msgstr ""
-"Klarer ikke �eregne st�sen p�tskriften ved hjelp av den generiske "
-"PDL analyseren : %s"
-
-#, python-format
-msgid "SIGTERM received, job %s cancelled."
-msgstr "Signalet SIGTERM ble sendt, utskriften %s ble avbrutt."
-
-msgid "Printer hostname undefined, set to 'localhost'"
-msgstr "Vertsnavnet til skriveren er udefinert, setter det lik 'localhost'"
-
-#, python-format
-msgid "Printing system unknown, args=%s"
-msgstr "Utskriftssystemet er ukjent, args=%s"
-
-#, python-format
-msgid ""
-"Printer %s not registered in the PyKota system, applying external policy (%"
-"s) for printer %s"
-msgstr ""
-"Skriver %s er ikke registret i Pykotasystemet, bruker ekstern regel (%s) p�
-"skriver %s"
-
-#, python-format
-msgid ""
-"User %s not registered in the PyKota system, applying external policy (%s) "
-"for printer %s"
-msgstr ""
-"Bruker %s er ikke registret i Pykotasystemet, bruker ekstern regel (%s) p�
-"skriver %s"
-
-#, python-format
-msgid ""
-"User %s doesn't have quota on printer %s in the PyKota system, applying "
-"external policy (%s) for printer %s"
-msgstr ""
-"Bruker %s har ingen kvote p�kriver %s i Pykotasystemet, bruker ekstern "
-"regel (%s) p�kriver %s"
-
-#, python-format
-msgid ""
-"External policy %s for printer %s produced an error. Job rejected. Please "
-"check PyKota's configuration files."
-msgstr ""
-
-#, python-format
-msgid ""
-"Printer %s not registered in the PyKota system, applying default policy (%s)"
-msgstr ""
-"Skriveren %s er ikke registrert i Pykotasystemet, bruker standard regel (%s)"
-
-#, python-format
-msgid ""
-"User %s not registered in the PyKota system, applying default policy (%s) "
-"for printer %s"
-msgstr ""
-"Bruker %s er ikke registrert i PyKota systemet, bruker standard regel (%s) "
-"for skriver %s"
-
-#, python-format
-msgid ""
-"User %s doesn't have quota on printer %s in the PyKota system, applying "
-"default policy (%s)"
-msgstr ""
-"Bruker %s har ingen kvote p�kriver %s i PyKota systemet, bruker standard "
-"regel (%s)"
-
-#, python-format
-msgid ""
-"Printer %s still not registered in the PyKota system, job will be rejected"
-msgstr ""
-"Skriver %s er fremdeles ikke registrert i Pykotasystemet, utskriften vil "
-"derfor bli nektet"
-
-#, python-format
-msgid ""
-"User %s still not registered in the PyKota system, job will be rejected on "
-"printer %s"
-msgstr ""
-"Bruker %s er fremdeles ikke registrert i Pykotasystemet, utskriften vil "
-"derfor bli nektet p�kriver %s"
-
-#, python-format
-msgid ""
-"User %s still doesn't have quota on printer %s in the PyKota system, job "
-"will be rejected"
-msgstr ""
-"Bruker %s har fremdeles ikke en kvote p�kriver %s i Pykotasystemet, "
-"utskriften vil derfor bli nektet"
-
-#, python-format
 msgid "A problem occured while reading printer %s's internal page counter."
 msgstr "Det oppstod et problem under avlesing av sidetelleren til skriver %s."
@@ -1632,4 +1914,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 "Venter p�t skriver %s skal begynne �krive ..."
@@ -1710,4 +1996,7 @@
 msgstr ""
 
+msgid "Hidden because of privacy concerns"
+msgstr ""
+
 #, python-format
 msgid ""
@@ -1724,24 +2013,83 @@
 msgstr ""
 
-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 "Job is a duplicate. Printing is denied."
+#~ msgstr "Utskriften er en duplikat. Utskriften blir ikke skrevet."
+
+#~ msgid "SIGTERM was sent to real backend %s (pid: %s)"
+#~ msgstr "Signalet SIGTERM ble sendt til bakgrunnen %s (pid: %s)"
+
+#~ msgid "CUPS backend %s died abnormally."
+#~ msgstr "CUPS bakgrunnen %s stoppet p�n unormal m�."
+
+#~ msgid "Software accounting already done in first pass. Ignoring."
+#~ msgstr "Programvare basert bokf� ble utf� f� omgang. Ignorerer."
+
+#~ msgid "Hardware accounting already done in first pass. Ignoring."
+#~ msgstr "Maskinvare basert bokf� ble utf� f� omgang. Ignorerer."
+
+#~ msgid "Job size and price now set in history."
+#~ msgstr "Utskriftst�se og pris er bokf�
+
+#~ msgid "Invalid DeviceURI : %s"
+#~ msgstr "Ugyldig enhets URI : %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Please wait while pkhint analyzes your printing system's configuration..."
+#~ msgstr ""
+#~ "\n"
+#~ "Vent litt mens pkhint sjekker hvordan ditt utskriftssystem er "
+#~ "konfigurert ... "
+
+#~ msgid "Unknown device %s for printer %s"
+#~ msgstr "Ukjent enhet %s for skriver %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Put the following lines into your /etc/pykota/pykota.conf file :\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Legg til f�de linjer i fila /etc/pykota/pykota.conf :\n"
+
+#~ msgid "# BEWARE : if software accounting is suggested, this doesn't mean"
+#~ msgstr ""
+#~ "# OBS! : selv om programvare basert bokf� er anbefalt, s�etyr ikke "
+#~ "det at"
+
+#~ msgid ""
+#~ "# that hardware accounting wouldn't work, this only means that PyKota"
+#~ msgstr "# maskinvare basert bokf� ikke virker, det betyr kun at PyKota"
+
+#~ msgid "# wasn't able to autodetect which hardware accounting method to use."
+#~ msgstr ""
+#~ "# ikke automatisk klarte �vgj�vilken type maskinvare bsaert "
+#~ "bokf� den skulle bruke."
+
+#~ msgid "JobSize"
+#~ msgstr "UtskriftsSt�se"
+
+#~ msgid "JobPrice"
+#~ msgstr "UtskriftsPris"
+
+#~ msgid "JobBytes"
+#~ msgstr "UtskriftsBytes"
+
+#~ msgid "PageCounter"
+#~ msgstr "SideTeller"
+
+#~ msgid "BillingCode"
+#~ msgstr "PrisKode"
+
+#~ msgid "Pages"
+#~ msgstr "Sider"
+
+#~ msgid "Printing system %s, args=%s"
+#~ msgstr "Utskriftssystem %s, args=%s"
+
+#~ msgid "Printer hostname undefined, set to 'localhost'"
+#~ msgstr "Vertsnavnet til skriveren er udefinert, setter det lik 'localhost'"
+
+#~ msgid "Printing system unknown, args=%s"
+#~ msgstr "Utskriftssystemet er ukjent, args=%s"
 
 #~ msgid ""
