# # PyKota : Print Quotas for CUPS # # (c) 2003-2013 Jerome Alet # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # $Id: pykota.po 3561 2013-01-04 22:34:24Z jerome $ # msgid "" msgstr "" "Project-Id-Version: PyKota v1.20\n" "Report-Msgid-Bugs-To: alet@librelogiciel.com\n" "POT-Creation-Date: 2006-03-30 22:00+0200\n" "PO-Revision-Date: 2004-07-21 15:35:00+0100\n" "Last-Translator: Suthep Yonpimai \n" "Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # # NB : THE FIVE ENTRIES BELOW WERE ADDED MANUALLY # msgid "ALLOW" msgstr "" msgid "DENY" msgstr "" msgid "CANCEL" msgstr "" msgid "PROBLEM" msgstr "" msgid "REFUND" msgstr "" #, python-format msgid "" "autopykota v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "A tool to automate user account creation and initial balance setting.\n" "\n" "THIS TOOL MUST NOT BE USED IF YOU WANT TO LIMIT YOUR USERS BY PAGE QUOTA !\n" "\n" "command line usage :\n" "\n" " THIS TOOL MUST NOT BE USED FROM THE COMMAND LINE BUT ONLY AS PART\n" " OF AN external policy IN pykota.conf\n" " \n" " autopykota { -i | --initbalance value } \n" "\n" "options :\n" "\n" " -v | --version Prints autopykota's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -i | --initbalance b Sets the user's account initial balance value to b.\n" " If the user already exists, actual balance is left\n" " unmodified. If unset, the default value is 0.\n" "\n" " -e | --email addr Sets the user's e-mail address.\n" " \n" msgstr "" #, python-format msgid "SIGTERM received, job %s cancelled." msgstr "ได้รับค่า SIGTERM , งาน %s ถูกยกเลิก." #, python-format msgid "Network error while querying the CUPS server : %s" msgstr "" msgid "You are not allowed to print at this time." msgstr "" msgid "Print job cancelled." msgstr "" msgid "Unlimited" msgstr "" msgid "ON" msgstr "" msgid "OFF" msgstr "" #, 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 "เครื่องพิมพ์ %s ยังไม่ได้ลงทะเบียนในระบบของ PyKota ,ลงทะเบียนในส่วนกฏการใช้งานภายนอก (%s) สำหรับเครื่องพิมพ์ %s" #, python-format msgid "User %s not registered in the PyKota system, applying external policy (%s) for printer %s" msgstr "ผู้ใช้ %s ยังไม่ได้ลงทะเบียนในระบบของ PyKota, ,ลงทะเบียนในส่วนกฏการใช้งานภายนอก (%s) สำหรับเครื่องพิมพ์ %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 "ผู้ใช้ %s ไม่มีโควต้าในการพิมพ์บนเครื่องพิมพ์ %s ในระบบของ PyKota, ลงทะเบียนในส่วนกฏการใช้งานภายนอก (%s) สำหรับเครื่องพิมพ์ %s" #, python-format msgid "External policy %s for printer %s produced an error. Job rejected. Please check PyKota's configuration files." msgstr "กฏการใช้งานภายนอก %s สำหรับเครื่องพิมพ์ %s แจ้งข้อผิดพลาด. ยกเลิกการทำงาน. กรุณาตรวจสอบไฟล์คอนฟิกกุเรชั่นของ PyKota" #, python-format msgid "Printer %s not registered in the PyKota system, applying default policy (%s)" msgstr "เครื่องพิมพ์ %s ยังไม่ได้ลงทะเบียนในระบบของ PyKota, ลงทะเบียนในส่วนกฏการใช้งานเบื้องต้น (%s)" #, python-format msgid "User %s not registered in the PyKota system, applying default policy (%s) for printer %s" msgstr "ผู้ใช้ %s ยังไม่ได้ลงทะเบียนในระบบของ PyKota, ลงทะเบียนในส่วนกฏการใช้งานเบื้องต้น (%s) สำหรับเครื่องพิมพ์ %s" #, python-format msgid "User %s doesn't have quota on printer %s in the PyKota system, applying default policy (%s)" msgstr "ผู้ใช้ %s ไม่มีโควต้าในการพิมพ์บนเครื่องพิมพ์ %s ในระบบของ PyKota , ลงทะเบียน ในส่วนกฏการใช้งานเบื้องต้น (%s)" #, python-format msgid "Printer %s still not registered in the PyKota system, job will be rejected" msgstr "เครื่องพิมพ์ %s ยังคงไม่ได้ลงทะเบียนในระบบ PyKota, งานที่สั่งจะถูกยกเลิก" #, python-format msgid "User %s still not registered in the PyKota system, job will be rejected on printer %s" msgstr "ผู้ใช้ %s ยังคงไม่ได้ลงทะเบียนในระบบ PyKota, งานที่สั่งจะถูกยกเลิก printer %s" #, python-format msgid "User %s still doesn't have quota on printer %s in the PyKota system, job will be rejected" msgstr "ผู้ใช้ %s ยังคงไม่มีโควต้าในการพิมพ์บนเครื่องพิมพ์ %s ในระบบ PyKota ,งานที่สั่งจะถูกยกเลิก " 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 เซิร์ฟเวอร์ได้" msgid "Print Quota" msgstr "โควต้าในการพิมพ์" #, python-format msgid "Impossible to send mail to %s, error %s : %s" msgstr "ไม่สามารถส่งเมล์ถึง %s, พบข้อผิดพลาด %s : %s" #, python-format msgid "Problem when sending mail : %s" msgstr "" msgid "Job contains no data. Printing is denied." msgstr "ไม่พบข้อมูลในงาน ปฏิเสธการพิมพ์ " msgid "Error in external policy script. Printing is denied." msgstr "" #, python-format msgid "Still no print quota entry for user %s on printer %s after external policy. Printing is denied." msgstr "" msgid "Printing is denied by printer policy." msgstr "" msgid "Job allowed by printer policy. No accounting will be done." msgstr "" #, python-format msgid "Invalid policy %s for printer %s" msgstr "กฏการใช้ %s สำหรับเครื่องพิมพ์ %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 "โควต้าในการพิมพ์ของ %s บนเครื่องพิมพ์ %s หมดแล้ว" #, python-format msgid "Print Quota low for user %s on printer %s" msgstr "โควต้าในการพิมพ์ของ %s บนเครื่องพิมพ์ %s ใกล้หมดแล้ว" msgid "Job denied, no accounting will be done." msgstr "" msgid "Job cancelled, no accounting will be done." msgstr "" msgid "Job accounting begins." msgstr "เริ่มการทำงานของสมาชิก" msgid "Job denied, no accounting has been done." msgstr "" msgid "Job cancelled, no accounting has been done." msgstr "" msgid "Job accounting ends." msgstr "จบการทำงานของสมาชิก" msgid "Job size forced to 0 because the real CUPS backend failed. No accounting will be done." msgstr "" msgid "The real CUPS backend failed, but the job will be accounted for anyway." msgstr "" msgid "Job size forced to 0 because printing is denied." msgstr "ขนาดของงานถูกเปลี่ยนเป็น 0 เพราะปฏิเสธการพิมพ์" msgid "Job size forced to 0 because printing was cancelled." msgstr "" #, python-format msgid "Job size : %i" msgstr "ขนาดงาน : %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 "กำลังปรับปรุงโควต้าของผู้ใช้ %s บนเครื่องพิมพ์ %s" msgid "Job added to history." msgstr "ส่งงานเข้าสู่ประวัติ" #, python-format msgid "Billing code %s was updated." msgstr "" #, python-format msgid "Incorrect value for the 'onbackenderror' directive in section [%s]" msgstr "" #, python-format msgid "The real backend produced an error, we will try again in %s seconds." msgstr "" #, python-format msgid "Job %s interrupted by the administrator !" msgstr "" #, python-format msgid "" "dumpykota v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Dumps PyKota database's content.\n" "\n" "command line usage :\n" "\n" " dumpykota [options] [filterexpr]\n" "\n" "options :\n" "\n" " -v | --version Prints dumpykota's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -d | --data type Dumps 'type' datas. Allowed types are :\n" " \n" " - history : dumps the jobs history.\n" " - users : dumps users.\n" " - groups : dumps user groups.\n" " - printers : dump printers.\n" " - upquotas : dump user quotas.\n" " - gpquotas : dump user groups quotas.\n" " - payments : dumps user payments.\n" " - pmembers : dumps printer groups members.\n" " - umembers : dumps user groups members.\n" " - billingcodes : dumps billing codes.\n" " - all : dumps all PyKota datas. The output format\n" " is always XML in this case.\n" " \n" " NB : the -d | --data command line option \n" " is MANDATORY.\n" " \n" " -f | --format fmt Dumps datas in the 'fmt' format. When not specified,\n" " the format is to dump datas in the csv format (comma\n" " separated values). All data dumped is between double\n" " quotes. Allowed formats are :\n" " \n" " - csv : separate datas with commas\n" " - ssv : separate datas with semicolons\n" " - tsv : separate datas with tabs\n" " - xml : dump data as XML \n" " - cups : dump datas in CUPS' page_log format :\n" " ONLY AVAILABLE WITH --data history\n" " \n" " -o | --output fname All datas will be dumped to the file instead of\n" " to the standard output. The special '-' filename\n" " is the default value and means stdout.\n" " WARNING : existing files are truncated !\n" "\n" " -O | --orderby exp Change the ordering or result. 'exp' is a comma\n" " separated list of ordering statements, for example\n" " '--orderby +username,-printername'. Not all expression\n" " values are meaningful, so using this command line \n" " switch is not recommanded if you don't know the \n" " exact layout of PyKota's database schema.\n" " \n" " -s | --sum Summarize the selected datas.\n" " ONLY AVAILABLE WITH --data history or payments\n" "\n" " Use the filter expressions to extract only parts of the \n" " datas. Allowed filters are of the form :\n" " \n" " key=value\n" " \n" " Allowed keys for now are : \n" " \n" " username User's name\n" " groupname Users group's name\n" " printername Printer's name\n" " pgroupname Printers group's name\n" " hostname Client's hostname\n" " jobid Job's Id\n" " billingcode Job's billing code\n" " start Job's date of printing\n" " end Job's date of printing\n" " \n" " Dates formatting with 'start' and 'end' filter keys :\n" " \n" " YYYY : year boundaries\n" " YYYYMM : month boundaries\n" " YYYYMMDD : day boundaries\n" " YYYYMMDDhh : hour boundaries\n" " YYYYMMDDhhmm : minute boundaries\n" " YYYYMMDDhhmmss : second boundaries\n" " yesterday[+-NbDays] : yesterday more or less N days (e.g. : yesterday-15)\n" " today[+-NbDays] : today more or less N days (e.g. : today-15)\n" " tomorrow[+-NbDays] : tomorrow more or less N days (e.g. : tomorrow-15)\n" " now[+-NbDays] : now more or less N days (e.g. now-15)\n" "\n" " 'now' and 'today' are not exactly the same since today represents the first\n" " or last second of the day depending on if it's used in a start= or end=\n" " date expression. The utility to be able to specify dates in the future is\n" " a question which remains to be answered :-)\n" " \n" " Contrary to other PyKota management tools, wildcard characters are not \n" " expanded, so you can't use them.\n" " \n" " NB : not all keys are allowed for each data type, so the result may be \n" " empty if you use a key not available for a particular data type.\n" " \n" "Examples :\n" "\n" " $ dumpykota --data history --format csv >myfile.csv\n" " \n" " This dumps the history in a comma separated values file, for possible\n" " use in a spreadsheet.\n" " \n" " $ dumpykota --data users --format xml -o users.xml\n" " \n" " Dumps all users datas to the users.xml file.\n" " \n" " $ dumpykota --data history printername=HP2100 username=jerome\n" " \n" " Dumps the job history for user jerome on printer HP2100 only.\n" " \n" " $ dumpykota --data history start=200503 end=20050730234615\n" " \n" " Dumps all jobs printed between March 1st 2005 at midnight and\n" " July 30th 2005 at 23 hours 46 minutes and 15 secondes included.\n" msgstr "" msgid "The -d | --data command line option is mandatory, see help." msgstr "" #, python-format msgid "" "edpykota v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "A Print Quota editor for PyKota.\n" "\n" "command line usage :\n" "\n" " edpykota [options] user1 user2 ... userN\n" " \n" " edpykota [options] group1 group2 ... groupN\n" "\n" "options :\n" "\n" " -v | --version Prints edpykota's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -a | --add Adds users or groups print quota entries if\n" " they don't exist in database.\n" " \n" " -d | --delete Deletes users or groups print quota entries.\n" " Users or groups are never deleted, you have\n" " to use the pkusers command to delete them.\n" " The history will be purge from all matching\n" " jobs, unless -g | --groups is used.\n" " \n" " -P | --printer p Edit quotas on printer p 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" " -g | --groups Edit groups print quota entries instead of \n" " users print quota entries.\n" " \n" " -L | --list Lists users or groups print quota entries.\n" " \n" " -n | --noquota Sets both soft and hard limits to None for users\n" " or groups print quota entries.\n" " \n" " -r | --reset Resets the actual page counter for the user\n" " or group to zero on the specified printers. \n" " The life time page counter is kept unchanged.\n" " \n" " -R | --hardreset Resets the actual and life time page counters\n" " for the user or group to zero on the specified \n" " printers. This is a shortcut for '--used 0'.\n" " \n" " -s | --skipexisting In combination with the --add option above, tells\n" " edpykota to not modify existing print quota entries.\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 existing 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 u Sets the page counters for the user u pages on\n" " the selected printers. Doesn't work for groups, since\n" " their page counters are the sum of all their members'\n" " page counters.\n" " Useful for migrating users from a different system\n" " where they have already used some pages. Actual\n" " and Life Time page counters may be increased or decreased\n" " if u is prefixed with + or -.\n" " WARNING : BOTH page counters are modified in all cases,\n" " so be careful.\n" " NB : if u equals '0', then the action taken is\n" " the same as if --hardreset was used.\n" "\n" " user1 through userN and group1 through groupN can use wildcards\n" " if the --add option is not set.\n" " \n" "examples : \n" "\n" " $ edpykota --add john paul george ringo\n" " \n" " This will create print quota entries for users john, paul, george\n" " and ringo on all printers. These print quota entries will have no\n" " limit set.\n" " \n" " $ edpykota --printer lp -S 50 -H 60 jerome\n" " \n" " This will set jerome's print quota on the lp printer to a soft limit\n" " of 50 pages, and a hard limit of 60 pages. Both user jerome and\n" " printer lp have been previously created with the pkusers and pkprinters\n" " commands, respectively.\n" "\n" " $ edpykota -g -S 500 -H 550 financial support \n" " \n" " This will set print quota soft limit to 500 pages and hard limit\n" " to 550 pages for groups financial and support on all printers.\n" " \n" " $ edpykota --reset jerome \"jo*\"\n" " \n" " This will reset jerome's page counter to zero on all printers, as\n" " well as every user whose name begins with 'jo'.\n" " Their life time page counter on each printer will be kept unchanged.\n" " You can also reset the life time page counters by using the\n" " --hardreset | -R command line option.\n" " \n" " $ edpykota --printer hpcolor --noquota jerome\n" " \n" " This will tell PyKota to not limit jerome when printing on the \n" " hpcolor printer. All his jobs will be allowed on this printer, but \n" " accounting of the pages he prints will still be kept.\n" " Print Quotas for jerome on other printers are unchanged.\n" " \n" " $ edpykota --delete --printer \"HP*,XER*\" jerome rachel\n" " \n" " This will delete users jerome and rachel's print quota\n" " entries on all printers which name begin with 'HP' or\n" " 'XER'. The jobs printed by these users on these printers\n" " will be deleted from the history.\n" msgstr "" #, python-format msgid "You can't set negative limits for %s" msgstr "" msgid "Extracting datas" msgstr "" #, python-format msgid "Page counter : %s" msgstr "" #, python-format msgid "Lifetime page counter : %s" msgstr "" #, python-format msgid "Soft limit : %s" msgstr "" #, python-format msgid "Hard limit : %s" msgstr "" #, python-format msgid "Date limit : %s" msgstr "" #, python-format msgid "Maximum job size : %s" msgstr "" #, python-format msgid "%s pages" msgstr "" #, python-format msgid "Warning banners printed : %s" msgstr "" msgid "Deletion" msgstr "" #, python-format msgid "Invalid used value %s." msgstr "" #, python-format msgid "Invalid increase value %s." msgstr "" #, python-format msgid "Invalid softlimit value %s." msgstr "ค่า %s ของ softlimit ไม่ถูกต้อง" #, python-format msgid "Invalid hardlimit value %s." msgstr "ค่า %s ของ hardlimitไม่ถูกต้อง " #, python-format msgid "Hard limit %i is less than soft limit %i, values will be exchanged." msgstr "ค่า Hard limit %i มีค่าน้อยกว่า soft limit %i กรุณาแก้ไข" #, python-format msgid "Undefined hard limit set to soft limit (%s)." msgstr "" #, python-format msgid "Undefined soft limit set to hard limit (%s)." msgstr "" msgid "Creation" msgstr "" #, python-format msgid "No entry matches %s. Please use pkusers to create them first." msgstr "" msgid "Modification" msgstr "" msgid "incompatible options, see help." msgstr "ตัวเลือกไม่เหมาะสม, กรุณาดูจากส่วนช่วยเหลือ" msgid "You have to pass user or group names on the command line" msgstr "คุณได้รับการผ่านผู้ใช้ หรือกลุ่มผู้ใช้บนคอมมานด์ไลน์" #, 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 "There's no printer matching %s" msgstr "ไม่พบเครื่องพิมพ์ %s ที่ใช้งานได้" #, 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 msgid "" "pkbanner v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Generates banners.\n" "\n" "command line usage :\n" "\n" " pkbanner [options] [more info]\n" "\n" "options :\n" "\n" " -v | --version Prints pkbanner's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -l | --logo img Use the image as the banner's logo. The logo will\n" " be drawn at the center top of the page. The default\n" " logo is /usr/share/pykota/logos/pykota.jpeg\n" " \n" " -p | --pagesize sz Sets sz as the page size. Most well known\n" " page sizes are recognized, like 'A4' or 'Letter'\n" " to name a few. The default size is A4.\n" " \n" " -s | --savetoner s Sets the text luminosity factor to s%%. This can be \n" " used to save toner. The default value is 0, which\n" " means that no toner saving will be done.\n" " \n" " -u | --url u Uses u as an url to be written at the bottom of \n" " the banner page. The default url is :\n" " http://www.pykota.com/\n" " \n" "examples : \n" "\n" " Using pkbanner directly from the command line is not recommended,\n" " excepted for testing purposes. You should use pkbanner in the\n" " 'startingbanner' or 'endingbanner' directives in pykota.conf\n" " \n" " startingbanner: /usr/bin/pkbanner --logo=\"\" --savetoner=75\n" " \n" " With such a setting in pykota.conf, all print jobs will be \n" " prefixed with an A4 banner with no logo, and text luminosity will\n" " be increased by 75%%. The PostScript output will be directly sent\n" " to your printer.\n" " \n" " You'll find more examples in the sample configuration file included \n" " in PyKota.\n" msgstr "" msgid "Unknown" msgstr "" msgid "Username" msgstr "" msgid "More Info" msgstr "" msgid "Job" msgstr "" msgid "Date" msgstr "วันที่" msgid "Allowed" msgstr "" msgid "Denied" msgstr "" msgid "Allowed with Warning" msgstr "" msgid "Problem" msgstr "" msgid "Cancelled" msgstr "" msgid "Result" msgstr "" msgid "Title" msgstr "ชื่อเรื่อง" msgid "Filename" msgstr "ชื่อแฟ้มข้อมูล" #, python-format msgid "Pages printed so far on %s" msgstr "" msgid "Account balance" msgstr "" msgid "Soft Limit" msgstr "" msgid "Hard Limit" msgstr "" msgid "Date Limit" msgstr "" msgid "No Limit" msgstr "" msgid "No Accounting" msgstr "" msgid "Forbidden" msgstr "" msgid "Printing Mode" msgstr "" msgid "Allowed range is (0..99)" msgstr "" #, python-format msgid "Invalid 'savetoner' option %s : %s" msgstr "" #, python-format msgid "Invalid 'pagesize' option %s, defaulting to A4." msgstr "" #, python-format msgid "" "pkbcodes v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "A billing codes Manager for PyKota.\n" "\n" "command line usage :\n" "\n" " pkbcodes [options] code1 code2 code3 ... codeN\n" "\n" "options :\n" "\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" " -r | --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" " $ 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 "" msgid "You're not allowed to use this command." msgstr "" #, python-format msgid "There's no billingcode matching %s" msgstr "" msgid "pages" msgstr "" msgid "and" msgstr "" msgid "credits" msgstr "" #, python-format msgid "Billing code [%s] already exists, skipping." msgstr "" #, python-format msgid "Billing code [%s] already exists, will be modified." msgstr "" msgid "You have to pass billing codes on the command line" msgstr "" #, python-format msgid "" "pkinvoice v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "An invoice generator for PyKota.\n" "\n" "command line usage :\n" "\n" " pkinvoice [options] [filterexpr]\n" "\n" "options :\n" "\n" " -v | --version Prints pkinvoice's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -l | --logo img Use the image as the invoice's logo. The logo will\n" " be drawn at the center top of the page. The default\n" " logo is /usr/share/pykota/logos/pykota.jpeg\n" " \n" " -p | --pagesize sz Sets sz as the page size. Most well known\n" " page sizes are recognized, like 'A4' or 'Letter'\n" " to name a few. The default size is A4.\n" " \n" " -n | --number N Sets the number of the first invoice. This number\n" " will automatically be incremented for each invoice.\n" " \n" " -o | --output f.pdf Defines the name of the invoice file which will\n" " be generated as a PDF document. If not set or\n" " set to '-', the PDF document is sent to standard\n" " output. \n" " \n" " -u | --unit u Defines the name of the unit to use on the invoice. \n" " The default unit is 'Credits', optionally translated\n" " to your native language if it is supported by PyKota.\n" " \n" " -V | --vat p Sets the percent value of the applicable VAT to be\n" " exposed. The default is 0.0, meaning no VAT\n" " information will be included.\n" " \n" "\n" " Use the filter expressions to extract only parts of the \n" " datas. Allowed filters are of the form :\n" " \n" " key=value\n" " \n" " Allowed keys for now are : \n" " \n" " username User's name\n" " printername Printer's name\n" " hostname Client's hostname\n" " jobid Job's Id\n" " billingcode Job's billing code\n" " start Job's date of printing\n" " end Job's date of printing\n" " \n" " Dates formatting with 'start' and 'end' filter keys :\n" " \n" " YYYY : year boundaries\n" " YYYYMM : month boundaries\n" " YYYYMMDD : day boundaries\n" " YYYYMMDDhh : hour boundaries\n" " YYYYMMDDhhmm : minute boundaries\n" " YYYYMMDDhhmmss : second boundaries\n" " yesterday[+-NbDays] : yesterday more or less N days (e.g. : yesterday-15)\n" " today[+-NbDays] : today more or less N days (e.g. : today-15)\n" " tomorrow[+-NbDays] : tomorrow more or less N days (e.g. : tomorrow-15)\n" " now[+-NbDays] : now more or less N days (e.g. now-15)\n" "\n" " 'now' and 'today' are not exactly the same since today represents the first\n" " or last second of the day depending on if it's used in a start= or end=\n" " date expression. The utility to be able to specify dates in the future is\n" " a question which remains to be answered :-)\n" " \n" " Contrary to other PyKota management tools, wildcard characters are not \n" " expanded, so you can't use them.\n" " \n" "examples :\n" "\n" " $ pkinvoice --unit EURO --output /tmp/invoices.pdf start=now-30\n" " \n" " Will generate a PDF document containing invoices for all users\n" " who have spent some credits last month. Invoices will be done in\n" " EURO. No VAT information will be included.\n" msgstr "" msgid "Invoice" msgstr "" msgid "Edited on" msgstr "" msgid "Number of jobs printed" msgstr "" msgid "Number of pages printed" msgstr "" msgid "Amount due" msgstr "" msgid "Included VAT" msgstr "" msgid "Here's the invoice for your printouts" msgstr "" msgid "Generating invoices" msgstr "" #, python-format msgid "Incorrect value '%s' for the --vat command line option" msgstr "" #, python-format msgid "Incorrect value '%s' for the --number command line option" msgstr "" #, python-format msgid "Invalid filter value [%s], see help." msgstr "" #, python-format msgid "Invoiced %i users for %i jobs, %i pages and %.3f credits" msgstr "" msgid "Credits" msgstr "" #, python-format msgid "" "pkmail v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Email gateway for PyKota.\n" "\n" "command line usage :\n" "\n" " pkmail [options]\n" "\n" "options :\n" "\n" " -v | --version Prints pkmail's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " \n" " This command is meant to be used from your mail server's aliases file,\n" " as a pipe. It will then accept commands send to it in email messages,\n" " and will send the answer to the command's originator.\n" " \n" " To use this command, create an email alias in /etc/aliases with\n" " the following format :\n" " \n" " pykotacmd: \"|/usr/bin/pkmail\"\n" " \n" " Then run the 'newaliases' command to regenerate the aliases database.\n" " \n" " You can now send commands by email to 'pykotacmd@yourdomain.com', with\n" " the command in the subject.\n" " \n" " List of supported commands :\n" " \n" " report [username]\n" " \n" " NB : For pkmail to work correctly, you may have to put the 'mail'\n" " system user in the 'pykota' system group to ensure this user can\n" " read the /etc/pykota/pykotadmin.conf file, and restart your\n" " mail server (e.g. /etc/init.d/exim restart). It is strongly advised\n" " that you think at least twice before doing this though.\n" " \n" " Use at your own risk !\n" msgstr "" msgid "Result of your commands" msgstr "" #, python-format msgid "" "pknotify v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Notifies or ask questions to end users who launched the PyKotIcon application.\n" "\n" "command line usage :\n" "\n" " pknotify [options] [arguments]\n" "\n" "options :\n" "\n" " -v | --version Prints pknotify's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -d | --destination h[:p] Sets the destination hostname and optional\n" " port onto which contact the remote PyKotIcon\n" " application. This option is mandatory.\n" " When not specified, the port defaults to 7654.\n" " \n" " -a | --ask Tells pknotify to ask something to the end\n" " user. Then pknotify will output the result.\n" " \n" " -C | --checkauth When --ask is used and both an 'username' and a\n" " 'password' are asked to the end user, then\n" " pknotify will try to authenticate the user\n" " through PAM. If authentified, this program\n" " will print \"AUTH=YES\", else \"AUTH=NO\".\n" " If a field is missing, \"AUTH=IMPOSSIBLE\" will\n" " be printed. If the user is authenticated, then\n" " \"USERNAME=xxxx\" will be printed as well.\n" " \n" " -c | --confirm Tells pknotify to ask for either a confirmation \n" " or abortion.\n" " \n" " -D | --denyafter N With --checkauth above, makes pknotify loop \n" " up to N times if the password is incorrect.\n" " After having reached the limit, \"DENY\" will\n" " be printed, which effectively rejects the job.\n" " The default value of N is 1, meaning the job\n" " is denied after the first unsuccessful try.\n" " \n" " -N | --noremote action If it's impossible to connect to the remote\n" " PyKotIcon machine, do this action instead.\n" " Allowed actions are 'CONTINUE' and 'CANCEL', \n" " which will respectively allow the processing\n" " of the print job to continue, or the job to\n" " be cancelled. The default value is CANCEL.\n" " \n" " -n | --notify Tells pknotify to send an informational message\n" " to the end user.\n" " \n" " -q | --quit Tells pknotify to send a message asking the\n" " PyKotIcon application to exit. This option can\n" " be combined with the other ones to make PyKotIcon\n" " exit after having sent the answer from the dialog.\n" " \n" " -t | --timeout T Tells pknotify to ignore the end user's answer if\n" " it comes past T seconds after the dialog box being\n" " opened. The default value is 0 seconds, which \n" " tells pknotify to wait indefinitely.\n" " Use this option to avoid having an user who\n" " leaved his computer stall a whole print queue.\n" " \n" " You MUST specify either --ask, --confirm, --notify or --quit.\n" "\n" " arguments : \n" " \n" " -a | --ask : Several arguments are accepted, of the form\n" " \"label:varname:defaultvalue\". The result will\n" " be printed to stdout in the following format :\n" " VAR1NAME=VAR1VALUE\n" " VAR2NAME=VAR2VALUE\n" " ...\n" " If the dialog was cancelled, nothing will be\n" " printed. If one of the varname is 'password'\n" " then this field is asked as a password (you won't\n" " see what you type in), and is NOT printed. Although\n" " it is not printed, it will be used to check if\n" " authentication is valid if you specify --checkauth.\n" " \n" " -c | --confirm : A single argument is expected, representing the\n" " message to display. If the dialog is confirmed\n" " then pknotify will print OK, else CANCEL.\n" " \n" " -n | --notify : A single argument is expected, representing the \n" " message to display. In this case pknotify will\n" " always print OK.\n" " \n" "examples : \n" "\n" " pknotify -d client:7654 --noremote CONTINUE --confirm \"This job costs 10 credits\"\n" " \n" " Would display the cost of the print job and asks for confirmation.\n" " If the end user doesn't have PyKotIcon running and accepting connections\n" " from the print server, PyKota will consider that the end user accepted\n" " to print this job.\n" " \n" " pknotify --destination $PYKOTAJOBORIGINATINGHOSTNAME:7654 \\\n" " --checkauth --ask \"Your name:username:\" \"Your password:password:\"\n" " \n" " Asks an username and password, and checks if they are valid. \n" " NB : The PYKOTAJOBORIGINATINGHOSTNAME environment variable is\n" " only set if you launch pknotify from cupspykota through a directive\n" " in ~pykota/pykota.conf\n" " \n" " The TCP port you'll use must be reachable on the client from the\n" " print server.\n" msgstr "" msgid "You MUST install PyPAM for this functionnality to work !" msgstr "" #, python-format msgid "Authentication error for user %s : %s" msgstr "" #, python-format msgid "Internal error : can't authenticate user %s" msgstr "" #, python-format msgid "Password correct for user %s" msgstr "" #, python-format msgid "The end user at %s:%i didn't answer within %i seconds. The print job will be cancelled." msgstr "" #, python-format msgid "Are you sure that PyKotIcon is running and accepting incoming connections on %s:%s ?" msgstr "" msgid "Connection error" msgstr "" msgid "some options are mandatory, see help." msgstr "" msgid "incorrect value for the --noremote command line switch, see help." msgstr "" msgid "some options require arguments, see help." msgstr "" #, python-format msgid "" "pkprinters v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "A Printers Manager for PyKota.\n" "\n" "command line usage :\n" "\n" " pkprinters [options] printer1 printer2 printer3 ... printerN\n" "\n" "options :\n" "\n" " -v | --version Prints pkprinters's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -a | --add Adds printers if they don't exist on the Quota \n" " Storage Server. If they exist, they are modified\n" " unless -s|--skipexisting is also used.\n" " \n" " -d | --delete Deletes printers from the quota storage.\n" " \n" " -D | --description d Adds a textual description to printers.\n" "\n" " -C | --cups Also modifies the DeviceURI in CUPS' printers.conf\n" "\n" " -c | --charge p[,j] Sets the price per page and per job to charge.\n" " Job price is optional.\n" " If both are to be set, separate them with a comma.\n" " Floating point and negative values are allowed.\n" " \n" " -g | --groups pg1[,pg2...] Adds or Remove the printer(s) to the printer \n" " groups pg1, pg2, etc... which must already exist.\n" " A printer group is just like a normal printer,\n" " only that it is usually unknown from the printing\n" " system. Create printer groups exactly the same\n" " way that you create printers, then add other \n" " printers to them with this option.\n" " Accounting is done on a printer and on all\n" " the printer groups it belongs to, quota checking\n" " is done on a printer and on all the printer groups\n" " it belongs to.\n" " If the --remove option below is not used, the \n" " default action is to add printers to the specified\n" " printer groups.\n" " \n" " -l | --list List informations about the printer(s) and the\n" " printers groups it is a member of.\n" " \n" " -r | --remove In combination with the --groups option above, \n" " remove printers from the specified printers groups.\n" " \n" " -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" " is not set.\n" " \n" "examples : \n" "\n" " $ pkprinters --add -D \"HP Printer\" --charge 0.05,0.1 hp2100 hp2200 hp8000\n" " \n" " Will create three printers named hp2100, hp2200 and hp8000.\n" " Their price per page will be set at 0.05 unit, and their price\n" " per job will be set at 0.1 unit. Units are in your own currency,\n" " or whatever you want them to mean.\n" " All of their descriptions will be set to the string \"HP Printer\".\n" " If any of these printers already exists, it will also be modified \n" " unless the -s|--skipexisting command line option is also used.\n" " \n" " $ pkprinters --delete \"*\"\n" " \n" " This will completely delete all printers and associated quota information,\n" " as well as their job history. USE WITH CARE !\n" " \n" " $ pkprinters --groups Laser,HP \"hp*\"\n" " \n" " This will put all printers which name matches \"hp*\" into printers groups \n" " Laser and HP, which MUST already exist.\n" " \n" " $ pkprinters --groups LexMark --remove hp2200\n" " \n" " This will remove the hp2200 printer from the LexMark printer group.\n" msgstr "" #, python-format msgid "Passthrough mode : %s" msgstr "" #, python-format msgid "Routed through PyKota : %s" msgstr "" msgid "YES" msgstr "" msgid "NO" msgstr "" msgid "in" msgstr "ใน" msgid "Rerouting printers to CUPS" msgstr "" #, python-format msgid "Invalid charge amount value %s" msgstr "อัตราค่าบริการไม่ถูกต้อง %s" #, python-format msgid "Invalid maximum job size value %s" msgstr "" #, python-format msgid "Printer %s already exists, skipping." msgstr "เครื่องพิมพ์ %s ได้ถูกติดตั้งแล้ว, ข้ามไป" #, python-format msgid "Printer %s already exists, will be modified." msgstr "เครื่องพิมพ์ %s ได้ถูกติดตั้งแล้ว, ทำการแก้ใขหรือไม่" #, python-format msgid "Invalid printer name %s" msgstr "ชื่อเครื่องพิมพ์ %s ไม่ถูกต้อง" msgid "You have to pass printer groups names on the command line" msgstr "คุณได้ผ่านชื่อกลุ่มเครื่องพิมพ์บนคอมมานด์ไลน์" msgid "You have to pass printer names on the command line" msgstr "คุณได้ผ่านชื่อเครื่องพิมพ์บนคอมมานด์ไลน์" #, python-format msgid "" "pkrefund v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Refunds jobs.\n" "\n" "command line usage :\n" "\n" " pkrefund [options] [filterexpr]\n" "\n" "options :\n" "\n" " -v | --version Prints pkrefund's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -f | --force Doesn't ask for confirmation before refunding jobs.\n" " -r | --reason txt Sets textual information to explain the refunding.\n" "\n" " -l | --logo img Use the image as the receipt's logo. The logo will\n" " be drawn at the center top of the page. The default\n" " logo is /usr/share/pykota/logos/pykota.jpeg\n" "\n" " -p | --pagesize sz Sets sz as the page size. Most well known\n" " page sizes are recognized, like 'A4' or 'Letter'\n" " to name a few. The default size is A4.\n" "\n" " -n | --number N Sets the number of the first receipt. This number\n" " will automatically be incremented for each receipt.\n" "\n" " -o | --output f.pdf Defines the name of the PDF file which will contain\n" " the receipts. If not set, then no PDF file will\n" " be created. If set to '-', then --force is assumed,\n" " and the PDF document is sent to standard output.\n" "\n" " -u | --unit u Defines the name of the unit to use on the receipts.\n" " The default unit is 'Credits', optionally translated\n" " to your native language if it is supported by PyKota.\n" " \n" "\n" " Use the filter expressions to extract only parts of the \n" " datas. Allowed filters are of the form :\n" " \n" " key=value\n" " \n" " Allowed keys for now are : \n" " \n" " username User's name\n" " printername Printer's name\n" " hostname Client's hostname\n" " jobid Job's Id\n" " billingcode Job's billing code\n" " start Job's date of printing\n" " end Job's date of printing\n" " \n" " Dates formatting with 'start' and 'end' filter keys :\n" " \n" " YYYY : year boundaries\n" " YYYYMM : month boundaries\n" " YYYYMMDD : day boundaries\n" " YYYYMMDDhh : hour boundaries\n" " YYYYMMDDhhmm : minute boundaries\n" " YYYYMMDDhhmmss : second boundaries\n" " yesterday[+-NbDays] : yesterday more or less N days (e.g. : yesterday-15)\n" " today[+-NbDays] : today more or less N days (e.g. : today-15)\n" " tomorrow[+-NbDays] : tomorrow more or less N days (e.g. : tomorrow-15)\n" " now[+-NbDays] : now more or less N days (e.g. now-15)\n" "\n" " 'now' and 'today' are not exactly the same since today represents the first\n" " or last second of the day depending on if it's used in a start= or end=\n" " date expression. The utility to be able to specify dates in the future is\n" " a question which remains to be answered :-)\n" " \n" " Contrary to other PyKota management tools, wildcard characters are not \n" " expanded, so you can't use them.\n" " \n" "Examples :\n" "\n" " $ pkrefund --output /tmp/receipts.pdf jobid=503\n" " \n" " This will refund all jobs which Id is 503. BEWARE : installing CUPS\n" " afresh will reset the first job id at 1, so you probably want to use\n" " a more precise filter as explained below. A confirmation will\n" " be asked for each job to refund, and a PDF file named /tmp/receipts.pdf\n" " will be created which will contain printable receipts.\n" " \n" " $ pkrefund --reason \"Hardware problem\" jobid=503 start=today-7\n" " \n" " Refunds all jobs which id is 503 but which were printed during the\n" " past week. The reason will be marked as being an hardware problem.\n" " \n" " $ pkrefund --force username=jerome printername=HP2100\n" " \n" " Refunds all jobs printed by user jerome on printer HP2100. No\n" " confirmation will be asked.\n" " \n" " $ pkrefund --force printername=HP2100 start=200602 end=yesterday\n" " \n" " Refunds all jobs printed on printer HP2100 between February 1st 2006\n" " and yesterday. No confirmation will be asked.\n" msgstr "" msgid "Refunding receipt" msgstr "" msgid "Jobs refunded" msgstr "" msgid "Pages refunded" msgstr "" msgid "Amount refunded" msgstr "" msgid "Reason" msgstr "" msgid "Here's the receipt for the refunding of your print jobs" msgstr "" msgid "Generating receipts" msgstr "" msgid "Refunding for no reason is forbidden. Please use the --reason command line option." msgstr "" msgid "The PDF file containing the receipts will be sent to stdout. --force is assumed." msgstr "" #, python-format msgid "Date : %s" msgstr "" #, python-format msgid "JobId : %s" msgstr "" #, python-format msgid "User : %s" msgstr "" #, python-format msgid "Printer : %s" msgstr "" #, python-format msgid "Billing code : %s" msgstr "" #, python-format msgid "Pages : %i" msgstr "" #, python-format msgid "Credits : %.3f" msgstr "" #, python-format msgid "Title : %s" msgstr "" msgid "Refund (Y/N)" msgstr "" msgid "Y" msgstr "" msgid "N" msgstr "" #, python-format msgid "Refunded %i users for %i jobs, %i pages and %.3f credits" msgstr "" #, 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. That's why you'll probably want to also use\n" "edpykota once the database has been initialized.\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 msgid "" "pkusers v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "An Users and Groups Manager for PyKota.\n" "\n" "command line usage :\n" "\n" " pkusers [options] user1 user2 user3 ... userN\n" " \n" "or : \n" "\n" " pkusers --groups [options] group1 group2 group3 ... groupN\n" "\n" "options :\n" "\n" " -v | --version Prints pkusers's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -a | --add Adds users if they don't exist on the database.\n" " If they exist, they are modified unless\n" " -s|--skipexisting is also used.\n" " \n" " -d | --delete Deletes users from the quota storage.\n" "\n" " -e | --email addr Sets the email address for the users.\n" " If the addr parameter begins with @, then\n" " the username is prepended to addr to form\n" " a valid email address.\n" "\n" " -D | --description d Adds a textual description to users or groups.\n" " \n" " -g | --groups Edit users groups instead of users.\n" " \n" " -o | --overcharge f Sets the overcharging factor applied to the user \n" " when computing the cost of a print job. Positive or \n" " negative floating point values are allowed,\n" " this allows you to do some really creative\n" " things like giving money to an user whenever\n" " he prints. The number of pages in a print job\n" " is not modified by this coefficient, only the\n" " cost of the job for a particular user.\n" " Only users have such a coefficient.\n" " \n" " -i | --ingroups g1[,g2...] Puts the users into each of the groups\n" " listed, separated by commas. The groups\n" " must already exist in the Quota Storage.\n" " \n" " -L | --list Lists users or groups.\n" " \n" " -l | --limitby l Choose if the user/group is limited in printing \n" " by its account balance or by its page quota.\n" " The default value is 'quota'. Allowed values\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 b. \n" " Account balance may be increase or decreased\n" " if b is prefixed with + or -.\n" " WARNING : when decreasing account balance,\n" " the total paid so far by the user is decreased\n" " too.\n" " Groups don't have a real balance, but the\n" " 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" " \n" " -r | --remove In combination with the --ingroups option above, \n" " remove users from the specified users groups.\n" " \n" " -s | --skipexisting In combination with the --add option above, tells\n" " pkusers to not modify existing users.\n" " \n" " user1 through userN and group1 through groupN can use wildcards\n" " if the --add option is not set.\n" " \n" "examples : \n" "\n" " $ pkusers --add john paul george ringo/ringo@example.com\n" " \n" " This will add users john, paul, george and ringo to the quota\n" " database. User ringo's email address will also be set to \n" " 'ringo@example.com'\n" " \n" " $ pkusers --ingroups coders,it jerome\n" " \n" " User jerome is put into the groups \"coders\" and \"it\" which must\n" " already exist in the quota database.\n" " \n" " $ pkusers --limitby balance jerome\n" " \n" " This will tell PyKota to limit jerome by his account's balance\n" " when printing.\n" " \n" " $ pkusers --balance +10.0 --comment \"He paid with his blood !\" jerome\n" " \n" " This will increase jerome's account balance by 10.0 (in your\n" " own currency). You can decrease the account balance with a\n" " dash prefix, and set it to a fixed amount with no prefix.\n" " A comment will be stored for this balance change.\n" " \n" " $ pkusers --delete jerome rachel\n" " \n" " This will completely delete jerome and rachel from the quota\n" " database. All their quotas and jobs will be deleted too.\n" " \n" " $ pkusers --overcharge 2.5 poorstudent\n" " \n" " This will overcharge the poorstudent user by a factor of 2.5.\n" " \n" " $ pkusers --overcharge -1 jerome\n" " \n" " User jerome will actually earn money whenever he prints.\n" " \n" " $ pkusers --overcharge 0 boss\n" " \n" " User boss can print at will, it won't cost him anything because the\n" " cost of each print job will be multiplied by zero before charging\n" " his account.\n" "\n" " $ pkusers --email @example.com\n" "\n" " This will set the email address for each user to username@example.com\n" msgstr "" #, python-format msgid "Invalid email address %s" msgstr "email address %s ไม่ถูกต้อง" #, python-format msgid "There's no %s matching %s" msgstr "" #, python-format msgid "Limited by : %s" msgstr "" #, python-format msgid "Account balance : %.2f" msgstr "" #, python-format msgid "Total paid so far : %.2f" msgstr "" #, python-format msgid "Overcharging factor : %.2f" msgstr "" #, python-format msgid "Group balance : %.2f" msgstr "" #, python-format msgid "Invalid limitby value %s" msgstr "ค่าการจำกัด %s ไม่ถูกต้อง" #, python-format msgid "Invalid overcharge value %s" msgstr "" #, python-format msgid "Invalid balance value %s" msgstr "ยอดเงินคงเหลือไม่ถูกต้อง %s" #, python-format msgid "There's no users group matching %s" msgstr "" #, python-format msgid "Unknown group %s" msgstr "" #, python-format msgid "Unknown user %s" msgstr "" #, python-format msgid "%s %s already exists, skipping." msgstr "" #, python-format msgid "%s %s already exists, will be modified." msgstr "" #, python-format msgid "Invalid name %s" msgstr "" msgid "You have to pass user groups names on the command line" msgstr "" #, python-format msgid "" "pykosd v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "An OSD quota monitor for PyKota.\n" "\n" "command line usage :\n" "\n" " pykosd [options]\n" "\n" "options :\n" "\n" " -v | --version Prints pykosd's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -c | --color #rrggbb Sets the color to use for display as an hexadecimal\n" " triplet, for example #FF0000 is 100%% red.\n" " Defaults to 100%% green (#00FF00).\n" " \n" " -d | --duration d Sets the duration of the display in seconds. \n" " Defaults to 3 seconds.\n" " \n" " -f | --font f Sets the font to use for display. \n" " Defaults to the Python OSD library's default.\n" " \n" " -l | --loop n Sets the number of times the info will be displayed.\n" " Defaults to 0, which means loop forever.\n" " \n" " -s | --sleep s Sets the sleeping duration between two displays \n" " in seconds. Defaults to 180 seconds (3 minutes).\n" " \n" " \n" "examples : \n" "\n" " $ pykosd -s 60 --loop 5\n" " \n" " Will launch pykosd. Display will be refreshed every 60 seconds,\n" " and will last for 3 seconds (the default) each time. After five\n" " iterations, the program will exit.\n" msgstr "" #, python-format msgid "Invalid duration option %s" msgstr "การตั้งค่าช่วงเวลาไม่ถูกต้อง" #, python-format msgid "Invalid loop option %s" msgstr "กาตั้งค่าการทำซ้ำไม่ถูกต้อง" #, python-format msgid "Invalid sleep option %s" msgstr "การตั้งค่าการพักเครื่องไม่ถูกต้อง" #, python-format msgid "Invalid color option %s" msgstr "การตั้งค่าสีไม่ถูกต้อง" #, python-format msgid "User %s doesn't exist in PyKota's database" msgstr "ไม่มีชื่อผู้ใช้ %s ในฐานข้อมูลของ PyKota" #, python-format msgid "Pages used on %s : %s" msgstr "จำนวนหน้าที่ใช้ไปบน %s : %s" #, python-format msgid "PyKota Units left : %.2f" msgstr "หน่วยที่เหลือของ PyKota : %.2f" msgid "Printing denied." msgstr "" msgid "Printing not limited." msgstr "" msgid "Printing not limited, no accounting." msgstr "" #, python-format msgid "" "pykotme v%(__version__)s (c) %(__years__)s %(__author__)s\n" "\n" "Gives print quotes to users.\n" "\n" "command line usage :\n" "\n" " pykotme [options] [files]\n" "\n" "options :\n" "\n" " -v | --version Prints pykotme's version number then exits.\n" " -h | --help Prints this message then exits.\n" " \n" " -P | --printer p Gives a quote for 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" " $ pykotme --printer apple file1.ps file2.ps\n" " \n" " This will give a print quote to the current user. The quote will show\n" " the price and size of a job consisting in file1.ps and file2.ps \n" " which would be sent to the apple printer.\n" " \n" " $ pykotme --printer apple,hplaser \n" msgstr "" "\n" "\n" "กรุณาติดต่อผู้ดูแลระบบ :\n" "\n" "\t%s - <%s>\n" #, python-format msgid "Unable to match user %s on printer %s, applying default policy (%s)" msgstr "ไม่พบชื่อผู้ใช้ %s บนเครื่องพิมพ์ %s, ตรวจสอบกฏการใช้งานเบื้องต้น (%s)" #, python-format msgid "Unable to find user %s's account balance, applying default policy (%s) for printer %s" msgstr "ไม่พบยอดเงินของผู้ใช้ %s, ตรวจสอบกฏการใช้งานเบื้องต้น(%s) ของ เครื่องพิมพ์ %s" #, python-format msgid "User %s will not be charged for printing." msgstr "" #, python-format msgid "Print Quota exceeded for group %s on printer %s" msgstr "ขออภัย! โควต้าในการพิมพ์ของกลุ่ม %s บนเครื่องพิมพ์ %s หมดแล้ว" msgid "Print Quota Exceeded" msgstr "โควต้าในการพิมพ์เกินแล้ว" #, python-format msgid "Print Quota low for group %s on printer %s" msgstr "โควต้าในการพิมพ์ของกลุ่ม %s บนเครื่องพิมพ์ %s ใกล้หมดแล้ว" msgid "Print Quota Low" msgstr "โควต้าในการพิมพ์ใกล้หมดแล้ว" #, python-format msgid "Search base %s doesn't seem to exist. Probable misconfiguration. Please double check /etc/pykota/pykota.conf : %s" msgstr "ผลการค้นหา %s ไม่พบ. อาจมีการตั้งค่าไม่ถูกต้อง กรุณา ตรวสอบ /etc/pykota/pykota.conf : %s อีกครั้ง" #, python-format msgid "Search for %s(%s) from %s(scope=%s) returned no answer." msgstr "ผลการค้นหา %s(%s) จาก %s(scope=%s) คือ ไม่พบสิ่งที่ค้น." #, python-format msgid "Problem adding LDAP entry (%s, %s)" msgstr "เกิดปัญหาในการเพิ่มข้อมูลเข้าสู่ LDAP (%s, %s)" #, python-format msgid "Problem deleting LDAP entry (%s)" msgstr "เกิดปัญหาในการลบข้อมูลจาก LDAP (%s, %s)" #, python-format msgid "Problem modifying LDAP entry (%s, %s)" msgstr "เกิดปัญหาในการแก้ใขข้อมูลใน LDAP (%s, %s)" #, python-format msgid "No pykotaAccountBalance object found for user %s. Did you create LDAP entries manually ?" msgstr "" msgid "Hidden because of privacy concerns" msgstr "" #, python-format msgid "Unable to find an existing objectClass %s entry with %s=%s to attach pykotaAccount objectClass" msgstr "ไม่สามารถค้นพบออปเจ็กคลาส %s ที่เข้าถึงด้วย %s=%s เพื่อแนบกับ ระบบสมาชิก Pykota ออปเจ็กคลาส" #, python-format msgid "%s. A new entry will be created instead." msgstr "" #, python-format msgid "Unable to find an existing entry to attach pykotaGroup objectclass %s" msgstr "ไม่สามารถค้นพบสิ่งใดที่เข้าถึงเพื่อเชื่อมต่อกับ pykotaGroup ออปเจ็กคลาส %s" msgid "Your version of python-mysqldb is too old. Please install a newer release." msgstr "" #, python-format msgid "A problem occured while reading printer %s's internal page counter." msgstr "" #, python-format msgid "Retrieving printer %s's page counter from database instead." msgstr "" #, python-format msgid "Couldn't retrieve printer %s's internal page counter either before or after printing." msgstr "" #, python-format msgid "Job's size forced to 1 page for printer %s." msgstr "" #, python-format msgid "No previous job in database for printer %s." msgstr "" #, python-format msgid "Inconsistent values for printer %s's internal page counter." msgstr "" #, python-format msgid "Unknown printer address in HARDWARE(%s) for printer %s" msgstr "ไม่พบที่อยู่ของเครื่องพิมพ์ในอุปกรณ์ (%s) สำหรับเครื่องพิมพ์ %s" #, python-format msgid "Launching HARDWARE(%s)..." msgstr "เริ่มการทำงานของอุปกรณ์ (%s)..." #, python-format msgid "SIGTERM was sent to hardware accounter %s (pid: %s)" msgstr "สัญญาณ SIGTERM ถูกส่งไปยังอุปกรณ์ระบบบัญชีสมาชิก %s (pid: %s)" #, python-format msgid "Line [%s] skipped in accounter's output. Trying again..." msgstr "" #, python-format msgid "Hardware accounter %s exit code is %s" msgstr "" #, python-format msgid "Unable to query printer %s via HARDWARE(%s)" msgstr "ไม่สามารค้นหาเครื่องพิมพ์ %s โดยผ่านอุปกรณ์(%s)" #, python-format msgid "Unable to precompute the job's size and ink coverage with the generic PDL analyzer : %s" msgstr "" #, python-format msgid "Problem during connection to %s:%s : %s" msgstr "" #, python-format msgid "Problem while sending PJL query to %s:%s : %s" msgstr "" #, python-format msgid "Problem while receiving PJL answer from %s:%s : %s" msgstr "" #, python-format msgid "Waiting for printer %s to be printing..." msgstr "" #, python-format msgid "Waiting for printer %s's idle status to stabilize..." msgstr "" #, python-format msgid "PJL querying stage interrupted. Using latest value seen for internal page counter (%s) on printer %s." msgstr "" #, python-format msgid "SNMP querying stage interrupted. Using latest value seen for internal page counter (%s) on printer %s." msgstr "" #, python-format msgid "Network error while doing SNMP queries on printer %s : %s" msgstr "" #, python-format msgid "SNMP message decoding error for printer %s : %s" msgstr "" #, python-format msgid "Problem encountered while doing SNMP queries on printer %s : %s" msgstr "" #, python-format msgid "Unable to precompute the job's size with the generic PDL analyzer : %s" msgstr "ไม่สามารถทำการคำนวณขนาดของงานได้ด้วย PDL analyzer : %s" #, python-format msgid "Launching SOFTWARE(%s)..." msgstr "เริ่มการทำงานของซอฟต์แวร์(%s)..." #, python-format msgid "Unable to compute job size with accounter %s" msgstr "ไม่สามารถคำนวณขนาดงานได้ด้วยระบบสมาชิก %s" #, python-format msgid "Problem while waiting for software accounter pid %s to exit : %s" msgstr "เกิดปัญหาจากการคอยซอฟต์แวร์ระบบสมาชิก pid %s เพื่อออก : %s" #, python-format msgid "Software accounter %s exit code is %s" msgstr "ซอฟต์แวร์ระบบสมาชิก %s ที่สั่งการออกคือ %s" msgid "Totals may be inaccurate if some users are members of several groups." msgstr "จำนวนรวมอาจไม่ถูกต้อง หากผู้ใช้บางท่านเป็นสมาชิกของกลุ่มหลายกลุ่ม." msgid "PyKota Data Dumper" msgstr "" msgid "Dump" msgstr "" msgid "Please click on the above button" msgstr "" msgid "Data Type" msgstr "" msgid "Output Format" msgstr "" msgid "Filter" msgstr "" msgid "Summarize" msgstr "" msgid "only for payments or history" msgstr "" msgid "PyKota Reports" msgstr "รายงาน PyKota" msgid "Report" msgstr "รายงาน" msgid "Printer" msgstr "เครื่องพิมพ์" msgid "User / Group names mask" msgstr "ซ่อน ชื่อผู้ใช้/ชื่อกลุ่มผู้ใช้" msgid "Groups report" msgstr "รายงานกลุ่ม" msgid "Empty" msgstr "ล้าง" msgid "Action" msgstr "กิจกรรม" msgid "User" msgstr "ผู้ใช้" msgid "Hostname" msgstr "ชื่อเครื่อง" msgid "JobId" msgstr "หมายเลขงาน" msgid "Number of pages" msgstr "" msgid "Cost" msgstr "" msgid "Copies" msgstr "จำนวนสำเนา" msgid "Number of bytes" msgstr "" msgid "Printer's internal counter" msgstr "" msgid "Options" msgstr "ตัวเลือก" msgid "MD5Sum" msgstr "" 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" msgstr "หน้าที่แล้ว" msgid "PyKota Quotes" msgstr "" msgid "Quote" msgstr "" msgid "The exact cost of a print job can only be determined for a particular user. Please retry while logged-in." msgstr "" msgid "Ordering" msgstr "" #~ msgid "Impossible to add printer %s" #~ msgstr "ไม่สามารถทำการเพิ่มเครื่องพิมพ์ได้" #~ msgid "Prototype object %s not found in Quota Storage." #~ msgstr "ไม่พบวัตถุต้นแบบ %s ในโคว้ต้าพื้นที่" #~ msgid "Prototype %s not found in Quota Storage for printer %s." #~ msgstr "ไม่พบต้นแบบ %s ในโคว้ต้าพื้นที่สำหรับเครื่องพิมพ์ %s " #~ msgid "Undefined hard limit set to soft limit (%s) on printer %s." #~ msgstr "ไม่ได้ทำการตั้งค่า hard limit ถึง soft limit (%s) บนเครื่องพิมพ์ %s" #~ msgid "Undefined soft limit set to hard limit (%s) on printer %s." #~ msgstr "ไม่ได้ทำการตั้งค่า soft limit ถึง hard limit (%s) บนเครื่องพิมพ์ %s" #~ msgid "Invalid group name %s" #~ msgstr "ชื่อกลุ่มผู้ใช้ %s ไม่ถูกต้อง" #~ msgid "Invalid user name %s" #~ msgstr "ชื่อผู้ใช้ %s ไม่ถูกต้อง" #~ msgid "Quota not found for object %s on printer %s." #~ msgstr "ไม่พบโควต้าในการพิมพ์สำหรับ %s บนเครื่องพิมพ์ %s" #~ msgid "Group %s not found in the PyKota Storage." #~ msgstr "ไม่พบกลุ่มผู้ใช้ %s ในส่วนเก็บข้อมูลของ PyKota" #~ msgid "File number %s unregistered twice from polling object, ignored." #~ msgstr "แฟ้มข้อมูลหมายเลข %s ไม่ได้รับการลงทะเบียน 2 ครั้งจากขั้นเตรียมการ ,ข้ามไป" #~ msgid "SIGTERM was sent to real backend %s (pid: %s)" #~ msgstr "สัญญาณ SIGTERM ถูกส่งไปยังเครื่องรับ %s (pid: %s)" #~ msgid "CUPS backend %s died abnormally." #~ msgstr "CUPS ของเครื่องรับ %s มีการหยุดทำงานแบบผิดปรกติ" #~ msgid "Software accounting already done in first pass. Ignoring." #~ msgstr "พบมีซอฟต์แวร์ระบบบัญชีสมาชิกแล้วในส่วนแรก ข้ามไป" #~ msgid "Hardware accounting already done in first pass. Ignoring." #~ msgstr "พบมีฮาร์ดแวร์ระบบบัญชีสมาชิกแล้วในส่วนแรก ข้ามไป" #~ msgid "Invalid DeviceURI : %s" #~ msgstr "ค่า DeviceURI : %s ไม่ถูกต้อง" #~ msgid "" #~ "\n" #~ "Please wait while pkhint analyzes your printing system's configuration..." #~ msgstr "" #~ "\n" #~ "กรุณารอ pkhint จะทำการวิเคราะห์การตั้งค่าระบบการพิมพ์ของท่าน..." #~ msgid "Unknown device %s for printer %s" #~ msgstr "ไม่รู้จักอุปกรณ์ %s สำหรับเครื่องพิมพ์ %s" #~ msgid "" #~ "\n" #~ "Put the following lines into your /etc/pykota/pykota.conf file :\n" #~ msgstr "" #~ "\n" #~ "กรุณาใส่บรรทัดต่อไปนี้ลงในแฟ้ม /etc/pykota/pykota.conf file :\n" #~ msgid "# BEWARE : if software accounting is suggested, this doesn't mean" #~ msgstr "# โปรดระวัง : ถ้าซอฟต์แวร์ระบบสมาชิกมีข้อแนะนำ" #~ msgid "# that hardware accounting wouldn't work, this only means that PyKota" #~ msgstr "# ฮาร์ดแวร์ระบบสมาชิกไม่สามารถทำงานได้, ปัญหานี้อาจเกิดเฉพาะกับ PyKota" #~ msgid "# wasn't able to autodetect which hardware accounting method to use." #~ msgstr "# ตรวจไม่พบฮาร์ดแวร์ระบบสมาชิกที่สามารถใช้ได้" #~ msgid "JobSize" #~ msgstr "ขนาดงาน" #~ msgid "JobPrice" #~ msgstr "ราคางาน" #~ msgid "JobBytes" #~ msgstr "ข้อมูลขนาดงาน" #~ msgid "PageCounter" #~ msgstr "จำนวนหน้า" #~ msgid "Printing system %s, args=%s" #~ msgstr "ระบบการพิมพ์ %s, args=%s" #~ msgid "Printer hostname undefined, set to 'localhost'" #~ msgstr "ไม่ได้ตั้งชื่อเครื่องพิมพ์, กรุณาตั้งเป็น 'localhost'" #~ msgid "Printing system unknown, args=%s" #~ msgstr "ไม่ทราบระบบการพิมพ์, args=%s" #~ msgid "Group used soft hard balance grace total paid" #~ msgstr "กลุ่ม ใช้ไป soft hard ยอดเงิน grace รวม ชำระ" #~ msgid "User used soft hard balance grace total paid" #~ msgstr "ผู้ใช้ ใช้ไป soft hard ยอดเงิน grace รวม ชำระ"