]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
Update po files
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 7 Apr 2008 22:13:04 +0000 (00:13 +0200)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 7 Apr 2008 22:13:04 +0000 (00:13 +0200)
po/en_US/rbot.po
po/it/rbot.po
po/ja/rbot.po
po/rbot.pot
po/zh_CN/rbot.po
po/zh_TW/rbot.po

index 0d2694f14491b5188a8124b7220221583b3e1c4a..73651ccc369d5f7e653cc81e86c915c21d64be5f 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-07-14 00:06-0400\n"
 "Last-Translator: Yaohan Chen <yaohan.chen@gmail.com>\n"
 "Language-Team: English\n"
@@ -84,6 +84,7 @@ msgid "you probably forgot a comma"
 msgstr "you probably forgot a comma"
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr "couldn't find botuser %{name}"
 
@@ -131,35 +132,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr "welcome, %{user}"
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr "sorry, can't do"
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr "couldn't login: %{exception}"
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr "I couldn't find anything to let you login automatically"
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr "you are %{who}"
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr "no one that I know"
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr "my boss"
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -173,16 +188,16 @@ msgstr ""
 "netmask is among the known ones. if <botuser> is omitted too autologin will "
 "be attempted"
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr "whoami: names the botuser you're linked to"
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 #, fuzzy
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr "whoami: names the botuser you're linked to"
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
@@ -192,7 +207,7 @@ msgstr ""
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
 "using the +reset+ command, do not use any prefix"
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
@@ -202,23 +217,23 @@ msgstr ""
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
 "permissions for private addressing)"
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr "permissions view [for <user>]: display the permissions for user <user>"
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 #, fuzzy
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr "permissions view [for <user>]: display the permissions for user <user>"
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 #, fuzzy
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr "permission topics: syntax, (re)set, view"
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
@@ -226,7 +241,7 @@ msgstr ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
@@ -234,7 +249,7 @@ msgstr ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
@@ -244,7 +259,7 @@ msgstr ""
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
 "characters long"
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
@@ -252,7 +267,7 @@ msgstr ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -264,7 +279,7 @@ msgstr ""
 "be reset to the default value) or +password+ (a new one will be generated "
 "and you'll be told in private)"
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
@@ -272,7 +287,7 @@ msgstr ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -284,11 +299,11 @@ msgstr ""
 "generated. The <name> should only contain alphanumeric characters and the "
 "underscore (_)"
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr "user list : lists all the botusers"
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 #, fuzzy
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
@@ -304,7 +319,7 @@ msgstr ""
 "will be destroyed. If you want to cancel the destruction, issue the command "
 "+user cancel destroy <botuser>+"
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
@@ -312,202 +327,217 @@ msgstr ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 #, fuzzy
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user"
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
+msgid ""
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
 #, fuzzy
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
 msgstr "auth commands: auth, login, whoami, permission[s], user"
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr "sorry, I need more arguments to %{command}"
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr "I can only %{command} these: %{arguments}"
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 #, fuzzy
 msgid "no such bot user %{user}"
 msgstr "no such botuser %{user}"
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr "you can't mess with %{user}"
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr "you can't see the properties of %{user}"
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr "no way I'm telling you the master password!"
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr "you can't ask for someone else's password"
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr "the password for %{user} is %{password}"
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr "can %{action}"
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr "can not %{action}"
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr "knows no netmasks"
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr "knows %{netmasks}"
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr "you can't change the default user"
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr "you can't edit %{user}"
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr "I ignored %{things} because %{reason}"
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr "I haven't changed anything"
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr "is that a joke? setting the password in public?"
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr "the password for %{user} is now %{password}"
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr "sorry, I don't know how to %{request}"
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 #, fuzzy
 msgid "couldn't %{cmd}: %{exception}"
 msgstr "couldn't login: %{exception}"
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr "couldn't find botuser %{user}"
 
-#: lib/rbot/core/auth.rb:587
+#: lib/rbot/core/auth.rb:667
 msgid "I'm not telling the master password to anyone, pal"
 msgstr "I'm not telling the master password to anyone, pal"
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr "the password for botuser %{user} is %{password}"
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr "I told %{user} that %{message}"
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr "are you nuts, creating a botuser with a publicly known password?"
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr "failed to create %{user}: %{exception}"
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr "created botuser %{user}"
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr " (queued for destruction)"
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr "I have no botusers other than the default ones"
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] "botuser: %{list}"
 msgstr[1] "botusers: %{list}"
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr "You can't destroy %{user}"
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr "no such botuser %{user}"
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr "%{user} removed from the destruction queue"
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr "%{user} was not queued for destruction"
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 #, fuzzy
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
@@ -516,7 +546,7 @@ msgstr ""
 "%{user} already queued for destruction, use %{highlight}user destroy %{user} "
 "<password>%{highlight} to destroy it"
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 #, fuzzy
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
@@ -525,103 +555,103 @@ msgstr ""
 "%{user} queued for destruction, use %{highlight}user destroy %{user} "
 "<password>%{highlight} to destroy it"
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr "%{user} is not queued for destruction yet"
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr "failed: %{exception}"
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr "botuser %{user} destroyed"
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr "please don't touch the default users"
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr "no such botuser %{source}"
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr "botuser %{dest} exists already"
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr "botuser %{source} copied to %{dest}"
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr "botuser %{source} renamed to %{dest}"
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr "selecting data to export ..."
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr "preparing data for export ..."
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr "failed to prepare data: %{exception}"
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr "exporting to %{file} ..."
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr "failed to export users: %{exception}"
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr "done"
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr "reading %{file} ..."
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr "failed to import from: %{exception}"
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr "selecting data to import ..."
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr "parsing data from import ..."
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr "failed to parse data: %{exception}"
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr "quit [<message>] => quit IRC with message <message>"
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr "restart => completely stop and restart the bot (including reconnect)"
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr "part"
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr "hide => part all channels"
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr "nick <nick> => attempt to change nick to <nick>"
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
@@ -629,7 +659,7 @@ msgstr ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
@@ -637,7 +667,7 @@ msgstr ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
@@ -647,7 +677,7 @@ msgstr ""
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
@@ -657,11 +687,11 @@ msgstr ""
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr "ping => replies with a pong"
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
@@ -669,7 +699,7 @@ msgstr ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 #, fuzzy
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
@@ -887,70 +917,78 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr "incorrect usage, ask for help using '%{command}'"
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] "%{count} core module loaded"
 msgstr[1] "%{count} core modules loaded"
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] "%{count} core module: %{list}"
 msgstr[1] "%{count} core modules: %{list}"
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr "no core botmodules loaded"
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] "%{count} plugin loaded"
 msgstr[1] "%{count} plugins loaded"
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] "%{count} plugin: %{list}"
 msgstr[1] "%{count} plugins: %{list}"
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] "%{highlight}%{count} plugin ignored%{highlight}"
 msgstr[1] "%{highlight}%{count} plugins ignored%{highlight}"
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -964,13 +1002,13 @@ msgstr[1] ""
 "%{highlight}%{count} plugins ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] "%{highlight}%{count} plugin failed to load%{highlight}"
 msgstr[1] "%{highlight}%{count} plugins failed to load%{highlight}"
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -984,11 +1022,11 @@ msgstr[1] ""
 "%{highlight}%{count} plugins failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr "no plugins failed to load"
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
@@ -996,15 +1034,15 @@ msgstr ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr "at %{backtrace}"
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr "no plugins were ignored"
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr "overruled by previous"
 
@@ -1239,8 +1277,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1261,37 +1299,37 @@ msgstr "I don't know any %{lang} word %{word}"
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 #, fuzzy
 msgid "I know nothing about %{words}"
 msgstr "I already know the %{lang} word %{word}"
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 #, fuzzy
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr "failed to remove %{value} from %{key}: %{error}"
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1299,8 +1337,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] "%{count} try"
@@ -1310,7 +1348,7 @@ msgstr[1] "%{count} tries"
 msgid "winner, %{tries}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
@@ -1318,45 +1356,45 @@ msgstr ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr "%{word} is not in the range %{bold}%{range}%{bold}"
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr "%{word} doesn't exist or is not acceptable for the game"
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr "close, but no cigar. New range: %{bold}%{range}%{bold}"
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr "%{word} is already one of the range extrema: %{range}"
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr "hm, something went wrong while verifying %{word}"
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr "no A-Z game running here, can't check if %{word} is valid, can I?"
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr "I only accept single words composed by letters only, sorry"
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
@@ -1364,88 +1402,88 @@ msgstr ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr "no A-Z game running in this channel ..."
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr "let me think ..."
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr "couldn't think of anything ..."
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr "I can't play A-Z in %{lang}, sorry"
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr "got it!"
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 #, fuzzy
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr " (after %{total_tries} and %{invalid_tries}"
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] "%{count} invalid try"
 msgstr[1] "%{count} invalid tries"
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 #, fuzzy
 msgid " (after %{total_tries})"
 msgstr " (after %{total_tries}"
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr "A-Z: %{bold}%{range}%{bold}"
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] "I have %{count} %{lang} word in my cache"
 msgstr[1] "I have %{count} %{lang} words in my cache"
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr "provide a regexp to match"
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr "no %{lang} word I know match %{pattern}"
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr "provide a word"
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr "I don't know any %{lang} word %{word}"
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr "%{word} learned from %{user} on %{date}"
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr "%{word} learned from %{user}"
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr "I already know the %{lang} word %{word}"
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
@@ -1453,15 +1491,15 @@ msgstr ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr "az cancel => abort current game"
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr "az check <word> => checks <word> against current game"
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
@@ -1471,7 +1509,7 @@ msgstr ""
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
@@ -1481,7 +1519,7 @@ msgstr ""
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr "az topics: play, rules, cancel, manage, check"
 
@@ -1772,21 +1810,21 @@ msgstr "az cancel => abort current game"
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 #, fuzzy
 msgid "couldn't find keyword %{key}"
 msgstr "couldn't find botuser %{name}"
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 #, fuzzy
 msgid "failed to export keywords as factoids (%{err})"
 msgstr "failed to export users: %{exception}"
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 #, fuzzy
 msgid "no such feed %{handle}"
 msgstr "no such module %{module}"
@@ -1860,6 +1898,48 @@ msgstr ""
 msgid "actions will not be twitted"
 msgstr ""
 
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
+
 #~ msgid "wrong password for %{user}"
 #~ msgstr "wrong password for %{user}"
 
index 53dff46386e9acf0a3f1582edc5523eebda9aceb..23354665411fb471824ca49c61bf54915c8f99e9 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-08-23 17:49+0100\n"
 "Last-Translator: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>\n"
 "Language-Team: it\n"
@@ -84,6 +84,7 @@ msgid "you probably forgot a comma"
 msgstr "probabilmente hai dimenticato una virgola"
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr "impossibile trovare il botuser %{name}"
 
@@ -131,35 +132,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr "benvenuto, %{user}"
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr "spiacente, non si può"
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr "impossibile effettuare il login: %{exception}"
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr "non ho trovato nulla con cui farti effettuare il login automatico"
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr "sei %{who}"
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr "nessuno di mia conoscenza"
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr "il mio padrone"
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -173,16 +188,16 @@ msgstr ""
 "mask e la tua netmask è tra quelle conosciute. se anche <botuser> viene "
 "omesso tenterò il login automatico"
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr "whoami: fornisce il nome del botuser a cui sei identificato"
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 #, fuzzy
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr "whoami: fornisce il nome del botuser a cui sei identificato"
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
@@ -192,7 +207,7 @@ msgstr ""
 "abilitarlo, premetti un +; per disabilitarlo, premetti un -; per "
 "reimpostarlo (+reset+) non usare alcun prefisso"
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
@@ -202,23 +217,23 @@ msgstr ""
 "reimposta i permessi per il botuser <user> nel canale <channel> (usa ? per "
 "cambiare i permessi delle comunicazioni private)"
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr "permissions view [for <user>]: mostra i permessi per l'utente <user>"
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 #, fuzzy
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr "permissions view [for <user>]: mostra i permessi per l'utente <user>"
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 #, fuzzy
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr "argomenti di permission: syntax, (re)set, view"
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
@@ -226,7 +241,7 @@ msgstr ""
 "user show <what>: mostra informazioni sull'utente; <what> può essere "
 "autologin, login-by-mask, netmask"
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
@@ -234,7 +249,7 @@ msgstr ""
 "user enable|disable <what>: abilita o disabilita <what> per l'utente (<what> "
 "può essere autologin o login-by-mask)"
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
@@ -244,7 +259,7 @@ msgstr ""
 "essere lunga almeno 4 caratteri e può contenere solo lettere maiuscole e "
 "minuscole, e numeri"
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
@@ -252,7 +267,7 @@ msgstr ""
 "user add|rm netmask <mask>: aggiunge o rimuove la netmask <mask> dalla lista "
 "delle netmask conosciute dal botuser a cui sei identificato"
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -264,7 +279,7 @@ msgstr ""
 "(verranno reimpostati ai valori predefiniti) o +password+ (una nuova "
 "password verrà generata e ti verrà comunicata in privato)"
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
@@ -272,7 +287,7 @@ msgstr ""
 "user tell <who> the password for <botuser>: contatta <who> in privato per "
 "comunicargli la password per <botuser>"
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -284,11 +299,11 @@ msgstr ""
 "una casuale. <name> può contenere solo caratteri alfanumerici ed il "
 "carattere di sottolineatura (_)"
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr "user list: elenca i botuser"
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 #, fuzzy
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
@@ -304,7 +319,7 @@ msgstr ""
 "deve essere specificiata correttamente, ed il botuser verrà distrutto. per "
 "annullare la distruzione usa il comando +user cancel destroy <botuser>+"
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
@@ -312,203 +327,218 @@ msgstr ""
 "argomenti per user: show, enable|disable add|rm, netmask, set, reset, tell, "
 "create, list, destroy"
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 #, fuzzy
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 "auth <masterpassword>: ti identifica come il padrone del bot; altri comandi: "
 "login, whoami, permission syntax, permissions [re]set, permissions view, user"
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
+msgid ""
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
 #, fuzzy
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
 msgstr "comandi auth: auth, login, whoami, permission[s], user"
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr "scusa, ma mi servono più argomenti per %{command}"
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr "Posso usare %{command} solo su: %{arguments}"
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 #, fuzzy
 msgid "no such bot user %{user}"
 msgstr "nessun botuser %{user}"
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr "non puoi alterare %{user}"
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr "non puoi vedere le proprietà di %{user}"
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr "non esiste proprio che io ti dica la password del padrone!"
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr "non puoi chiedere la password di qualcun altro"
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr ""
 "non mi stai chiedendo veramente di dirti la passord in pubblico, spero!"
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr "la password per %{user} è %{password}"
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr "può %{action}"
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr "non può %{action}"
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr "non conosce netmask"
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr "conosce %{netmasks}"
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr "non puoi cambiare l'utente predefinito"
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr "non puoi modificare %{user}"
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr "ho ignorato %{things} perché %{reason}"
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr "non ho cambiato nulla"
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr "scherzi? cambiare la password in pubblico?"
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr "la password per %{user} è ora %{password}"
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 "Posso aggiungere e rimuovere solo le netmask. Vedi anche +help user add+ per "
 "ulteriori istruzioni"
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr "spiacente non so come fare %{request}"
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 #, fuzzy
 msgid "couldn't %{cmd}: %{exception}"
 msgstr "impossibile effettuare il login: %{exception}"
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr "non conosco alcun botuser %{user}"
 
-#: lib/rbot/core/auth.rb:587
+#: lib/rbot/core/auth.rb:667
 msgid "I'm not telling the master password to anyone, pal"
 msgstr "tanto non te la dico la passowrd del padrone, compare"
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr "la password per %{user} è %{password}"
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr "ho detto a %{user} che %{message}"
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr "sei scemo, a creare botuser con una password in pubblico?"
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr "impossibile creare %{user}: %{exception}"
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr "botuser creato %{user}"
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr "(in coda per la distruzione)"
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr "non ho botuser se non i predefiniti"
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] "botuser: %{list}"
 msgstr[1] "botuser: %{list}"
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr "non puoi distruggere %{user}"
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr "nessun botuser %{user}"
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr "%{user} rimosso dalla coda per la distruzione"
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr "%{user} non era in coda per la distruzione"
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 #, fuzzy
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
@@ -517,7 +547,7 @@ msgstr ""
 "%{user} era già in coda per la distruzione, usa %{highlight}user destroy %"
 "{user} <password>%{highlight} per distruggerlo"
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 #, fuzzy
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
@@ -526,141 +556,141 @@ msgstr ""
 "%{user} messo in coda per la distruzione, usa %{highlight}user destroy %"
 "{user} <password>%{highlight} per distruggerlo"
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr "%{user} non è ancora in coda per la distruzione"
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr "fallito: %{exception}"
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr "botuser %{user} distrutto"
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr "per favore non toccare gli utenti predefiniti"
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr "nessun botuser %{source}"
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr "il botuser %{dest} esiste già"
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr "botuser %{source} copiato in %{dest}"
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr "botuser %{source} rinominato %{dest}"
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr "sto selezionando i dati da esportare ..."
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr "preparo i dati da esportare ..."
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr "impossibile preparare i dati: %{exception}"
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr "esporto su %{file} ..."
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr "impossibile esportare gli utenti: %{exception}"
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr "fatto"
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr "leggo %{file} ..."
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr "impossibile importare: %{exception}"
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr "seleziono i dati da importare ..."
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr "elaboro i dati da importare ..."
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr "impossibile elaborare i dati: %{exception}"
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr "quit [<messaggio>] => esce da IRC con il messaggio <messaggio>"
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr ""
 "restart => ferma il bot completamente e lo riavvia (facendolo anche "
 "ricollegare)"
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr "hide => lascia tutti i canali"
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr "nick <nick> => cerca di cambiare il nick in <nick>"
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr "ping => risponde con un pong"
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
 "quiet, talk, ping, mode"
@@ -868,72 +898,80 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr "argomenti: "
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr " (help <argomento> per ulteriori informazioni)"
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr "nessun aiuto disponibile su %{topic}"
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 "Attivo da %{up}, %{plug} plugin attivi, %{sent} righe spedite, %{recv} righe "
 "ricevute."
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr "uso errato, chiedi aiuto con '%{command}'"
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] "%{count} moduli di base caricati"
 msgstr[1] "%{count} modulo di base caricato"
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] "%{count} moduli di base: %{list}"
 msgstr[1] "%{count} modulo di base: %{list}"
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr "nessun modulo di base caricato"
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] "%{count} plugin caricati"
 msgstr[1] "%{count} plugin caricato"
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] "%{count} plugin: %{list}"
 msgstr[1] "%{count} plugin: %{list}"
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] "%{highlight}%{count} plugin ignorati%{highlight}"
 msgstr[1] "%{highlight}%{count} plugin ignorato%{highlight}"
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -947,13 +985,13 @@ msgstr[1] ""
 "%{highlight}%{count} plugin ignorato%{highlight}: usa %{bold}%{command}%"
 "{bold} per vedere perché"
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] "%{highlight}caricamento di %{count} plugin fallito%{highlight}"
 msgstr[1] "%{highlight}caricamento di %{count} plugin fallito%{highlight}"
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -967,11 +1005,11 @@ msgstr[1] ""
 "%{highlight}caricamento di %{count} plugin fallito%{highlight}: usa %{bold}%"
 "{command}%{bold} per vedere perché"
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr "nessun plugin ha fallito il caricamento"
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
@@ -979,15 +1017,15 @@ msgstr ""
 "%{highlight}%{plugin}%{highlight} in %{dir} fallito con errore %{exception}: "
 "%{reason}"
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr "in %{backtrace}"
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr "nessun plugin ignorato"
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr "preceduto da un omonimo"
 
@@ -1210,8 +1248,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1231,36 +1269,36 @@ msgstr ""
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 msgid "I know nothing about %{words}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 #, fuzzy
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr "impossibile rimuovere %{value} da %{key}: %{errore}"
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1268,8 +1306,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr "Percorso per il programma figlet"
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] ""
@@ -1279,162 +1317,162 @@ msgstr[1] ""
 msgid "winner, %{tries}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 msgid " (after %{total_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr ""
 
@@ -1714,21 +1752,21 @@ msgstr "non puoi cambiare l'utente predefinito"
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 #, fuzzy
 msgid "couldn't find keyword %{key}"
 msgstr "impossibile trovare il botuser %{name}"
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 #, fuzzy
 msgid "failed to export keywords as factoids (%{err})"
 msgstr "impossibile esportare gli utenti: %{exception}"
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 #, fuzzy
 msgid "no such feed %{handle}"
 msgstr "non esiste alcun modulo %{module}"
@@ -1802,6 +1840,48 @@ msgstr ""
 msgid "actions will not be twitted"
 msgstr ""
 
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
+
 #~ msgid "wrong password for %{user}"
 #~ msgstr "password errata per %{user}"
 
index d35c5a5b1baf31151688955da5559d27cc05ca15..07c8a28ec5e87f9dd3aa46de2e9185ab3341caf8 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-07-09 01:36-0400\n"
 "Last-Translator: Yaohan Chen <yaohan.chen@gmail.com>\n"
 "Language-Team: Japanese\n"
@@ -78,6 +78,7 @@ msgid "you probably forgot a comma"
 msgstr ""
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr ""
 
@@ -125,35 +126,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -162,68 +177,68 @@ msgid ""
 "be attempted"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
 "using the +reset+ command, do not use any prefix"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
 "permissions for private addressing)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
 "characters long"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -231,13 +246,13 @@ msgid ""
 "and you'll be told in private)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -245,11 +260,11 @@ msgid ""
 "underscore (_)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
 "{highlight} be called in two steps. On the first call <botuser> is queued "
@@ -258,343 +273,358 @@ msgid ""
 "destruction, issue the command 'user cancel destroy <botuser>'"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
+msgid ""
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 msgid "no such bot user %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 msgid "couldn't %{cmd}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:587
+#: lib/rbot/core/auth.rb:667
 msgid "I'm not telling the master password to anyone, pal"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] ""
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
 "%{user}%{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
 "{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
 "quiet, talk, ping, mode"
@@ -798,65 +828,73 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr ""
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] "コアモジュール%{count}個をロードしました"
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] "コアモジュール%{count}個:%{list}"
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr "コアモジュールロードしていません"
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] "プラグインを%{count}個ロードしました"
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] "プラグイン%{count}個:%{list}"
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] ""
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -865,12 +903,12 @@ msgid_plural ""
 "{bold} to see why"
 msgstr[0] ""
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] ""
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -879,25 +917,25 @@ msgid_plural ""
 "{command}%{bold} to see why"
 msgstr[0] ""
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr ""
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr ""
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr ""
 
@@ -1115,8 +1153,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1137,36 +1175,36 @@ msgstr "%{lang} の言葉「%{word}」知っていません。"
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 #, fuzzy
 msgid "I know nothing about %{words}"
 msgstr "%{lang} の言葉「%{word}」はもう知っています。"
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1174,8 +1212,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] "%{count}つのトライ"
@@ -1184,7 +1222,7 @@ msgstr[0] "%{count}つのトライ"
 msgid "winner, %{tries}"
 msgstr "(勝者)%{tries}"
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
@@ -1192,50 +1230,50 @@ msgstr ""
 "%{bold}ビンゴー!%{bold} 秘密の言葉は %{underline}%{word}%{underline} でした。"
 "おめでとうございます、%{bold}%{player}%{bold} さん!"
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 "このゲームが%{tries}つのトライの後勝ちました。スコアは:    %{scores} でし"
 "た。"
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr "%{word}は%{bold}%{range}%{bold}のレンジ外です。"
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr ""
 "「%{word}」って言葉は存在しませんか、このゲームに入れることができません。"
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr ""
 "レーンジを小さくしました。もっと頑張ってくださいね!新しいレーンジは:%"
 "{bold}%{range}%{bold}"
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr "%{word}はいまのレーンジの外れの一つです:%{range}"
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr "%{word}をチェックしたとき何かエラーが発生しました。"
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr "今A-Zのゲームをしていませんから、「%{word}」のチェックができません。"
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr ""
 "%{bold}%{range}%{bold}の以内の秘密の言葉は「%{bold}%{word}%{bold}」でした。"
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
@@ -1243,114 +1281,114 @@ msgstr ""
 "このゲームは%{tries}回のトライの後キャンセルされました。いままでのスコアは %"
 "{scores} でした。"
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr "このチャンネルにはA-Zのゲームを遊んでいません。"
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr "秘密の言葉を考えています・・・"
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr "考えられませんでした・・・"
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr "申し訳ありませんが、%{lang}の言語でA-Zのゲームができません"
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr "わかりました!"
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 #, fuzzy
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr " (%{total_tries}と%{invalid_tries}の後"
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] "%{count}つの間違えたトライ"
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 #, fuzzy
 msgid " (after %{total_tries})"
 msgstr " (%{total_tries}の後"
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] "キャッシュには、%{lang}の言葉は%{count}本あります。"
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr "%{lang} の言葉「%{word}」知っていません。"
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr "「{word}」は %{user} さんに%{date}に教えてもらいました"
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr "「{word}」は %{user} さんに教えてもらいました"
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr "%{lang} の言葉「%{word}」はもう知っています。"
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr "az cancel => いま遊んでいるゲームを終了します"
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr ""
 "az check <word> => いま遊んでいるゲームのルールで、<word> をチェックします"
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr ""
 
@@ -1643,19 +1681,19 @@ msgstr "az cancel => いま遊んでいるゲームを終了します"
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 msgid "couldn't find keyword %{key}"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 msgid "failed to export keywords as factoids (%{err})"
 msgstr ""
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 msgid "no such feed %{handle}"
 msgstr ""
 
@@ -1727,3 +1765,45 @@ msgstr ""
 #: data/rbot/plugins/twitter.rb:174
 msgid "actions will not be twitted"
 msgstr ""
+
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
index e91e0651499b06f0ab3ca04e34ac2854d7125619..4757e4d62c61800804d35c697b94cd9adc1b9715 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-07-09 01:24-0400\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -79,6 +79,7 @@ msgid "you probably forgot a comma"
 msgstr ""
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr ""
 
@@ -126,35 +127,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -163,68 +178,68 @@ msgid ""
 "be attempted"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
 "using the +reset+ command, do not use any prefix"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
 "permissions for private addressing)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
 "characters long"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -232,13 +247,13 @@ msgid ""
 "and you'll be told in private)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -246,11 +261,11 @@ msgid ""
 "underscore (_)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
 "{highlight} be called in two steps. On the first call <botuser> is queued "
@@ -259,344 +274,359 @@ msgid ""
 "destruction, issue the command 'user cancel destroy <botuser>'"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
+msgid ""
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 msgid "no such bot user %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 msgid "couldn't %{cmd}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:587
-msgid "I'm not telling the master password to anyway, pal"
+#: lib/rbot/core/auth.rb:667
+msgid "I'm not telling the master password to anyone, pal"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
 "%{user}%{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
 "{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
 "quiet, talk, ping, mode"
@@ -799,70 +829,78 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr ""
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr ""
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -872,13 +910,13 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -888,25 +926,25 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr ""
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr ""
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr ""
 
@@ -1124,8 +1162,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1145,35 +1183,35 @@ msgstr ""
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 msgid "I know nothing about %{words}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1181,8 +1219,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] ""
@@ -1192,162 +1230,162 @@ msgstr[1] ""
 msgid "winner, %{tries}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 msgid " (after %{total_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr ""
 
@@ -1626,19 +1664,19 @@ msgstr ""
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 msgid "couldn't find keyword %{key}"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 msgid "failed to export keywords as factoids (%{err})"
 msgstr ""
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 msgid "no such feed %{handle}"
 msgstr ""
 
@@ -1710,3 +1748,45 @@ msgstr ""
 #: data/rbot/plugins/twitter.rb:174
 msgid "actions will not be twitted"
 msgstr ""
+
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
index d296729608d6cc7e377cba8ab6af55a24cba9f86..34a1bc455a623a41b44b23ed64d87cf63ebe9a2c 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-07-09 01:39-0400\n"
 "Last-Translator: Yaohan Chen <yaohan.chen@gmail.com>\n"
 "Language-Team: Chinese\n"
@@ -78,6 +78,7 @@ msgid "you probably forgot a comma"
 msgstr ""
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr ""
 
@@ -125,35 +126,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -162,68 +177,68 @@ msgid ""
 "be attempted"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
 "using the +reset+ command, do not use any prefix"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
 "permissions for private addressing)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
 "characters long"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -231,13 +246,13 @@ msgid ""
 "and you'll be told in private)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -245,11 +260,11 @@ msgid ""
 "underscore (_)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
 "{highlight} be called in two steps. On the first call <botuser> is queued "
@@ -258,344 +273,359 @@ msgid ""
 "destruction, issue the command 'user cancel destroy <botuser>'"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
+msgid ""
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 msgid "no such bot user %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 msgid "couldn't %{cmd}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:587
+#: lib/rbot/core/auth.rb:667
 msgid "I'm not telling the master password to anyone, pal"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
 "%{user}%{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
 "{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
 "quiet, talk, ping, mode"
@@ -798,70 +828,78 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr ""
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] "%{count}个核心模块"
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] "%{count}个核心模块:%{list}"
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr "没有核心模块"
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -871,13 +909,13 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -887,25 +925,25 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr ""
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr ""
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr ""
 
@@ -1123,8 +1161,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1144,35 +1182,35 @@ msgstr ""
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 msgid "I know nothing about %{words}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1180,8 +1218,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] ""
@@ -1191,162 +1229,162 @@ msgstr[1] ""
 msgid "winner, %{tries}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 msgid " (after %{total_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr ""
 
@@ -1625,19 +1663,19 @@ msgstr ""
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 msgid "couldn't find keyword %{key}"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 msgid "failed to export keywords as factoids (%{err})"
 msgstr ""
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 msgid "no such feed %{handle}"
 msgstr ""
 
@@ -1709,3 +1747,45 @@ msgstr ""
 #: data/rbot/plugins/twitter.rb:174
 msgid "actions will not be twitted"
 msgstr ""
+
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
index f6efd3cce81f57b8397ee6d271a2171941bb638f..99f9fac5ded51d76afcf01f75ac2b9a9a3d897f8 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: rbot\n"
-"POT-Creation-Date: 2008-03-21 11:48-0400\n"
+"POT-Creation-Date: 2008-04-08 00:11+0200\n"
 "PO-Revision-Date: 2007-07-09 01:24-0400\n"
 "Last-Translator: Liang-Bin Hsueh <hlb@handlino.com>\n"
 "Language-Team: Chinese\n"
@@ -82,6 +82,7 @@ msgid "you probably forgot a comma"
 msgstr "你也許忘了一個逗點"
 
 #: lib/rbot/core/auth.rb:111 lib/rbot/core/auth.rb:165
+#: lib/rbot/core/auth.rb:231
 msgid "couldn't find botuser %{name}"
 msgstr "無法找到使用者 ${name}"
 
@@ -129,35 +130,49 @@ msgstr ""
 msgid "%{cmd}: %{perms}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:221
+#: lib/rbot/core/auth.rb:262
+msgid "%{user} can already do that"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:264
+msgid "%{user} can't do that already"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:274
+msgid ""
+"sorry, %{cmd} doesn't look like a valid command. maybe you misspelled it, or "
+"you need to specify it should be in private?"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:297
 msgid "welcome, %{user}"
 msgstr "歡迎,%{user}"
 
-#: lib/rbot/core/auth.rb:236
+#: lib/rbot/core/auth.rb:312
 msgid "sorry, can't do"
 msgstr "抱歉,辦不到"
 
-#: lib/rbot/core/auth.rb:239
+#: lib/rbot/core/auth.rb:315
 msgid "couldn't login: %{exception}"
 msgstr "無法登入: %{exception}"
 
-#: lib/rbot/core/auth.rb:247
+#: lib/rbot/core/auth.rb:323
 msgid "I couldn't find anything to let you login automatically"
 msgstr "我不知道有什麼辦法可以讓你自動登入"
 
-#: lib/rbot/core/auth.rb:258
+#: lib/rbot/core/auth.rb:334
 msgid "you are %{who}"
 msgstr "你是%{who}"
 
-#: lib/rbot/core/auth.rb:260 lib/rbot/core/auth.rb:273
+#: lib/rbot/core/auth.rb:336 lib/rbot/core/auth.rb:349
 msgid "no one that I know"
 msgstr "我不認識認識的人"
 
-#: lib/rbot/core/auth.rb:261 lib/rbot/core/auth.rb:274
+#: lib/rbot/core/auth.rb:337 lib/rbot/core/auth.rb:350
 msgid "my boss"
 msgstr "我老大"
 
-#: lib/rbot/core/auth.rb:281
+#: lib/rbot/core/auth.rb:357
 msgid ""
 "login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with "
 "password <pass>. When using the full form, you must contact the bot in "
@@ -166,68 +181,68 @@ msgid ""
 "be attempted"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:283
+#: lib/rbot/core/auth.rb:359
 msgid "whoami: names the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:285
+#: lib/rbot/core/auth.rb:361
 msgid "who is <user>: names the botuser <user> is linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:289
+#: lib/rbot/core/auth.rb:365
 msgid ""
 "a permission is specified as module::path::to::cmd; when you want to enable "
 "it, prefix it with +; when you want to disable it, prefix it with -; when "
 "using the +reset+ command, do not use any prefix"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:291
+#: lib/rbot/core/auth.rb:367
 msgid ""
 "permissions [re]set <permission> [in <channel>] for <user>: sets or resets "
 "the permissions for botuser <user> in channel <channel> (use ? to change the "
 "permissions for private addressing)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:293
+#: lib/rbot/core/auth.rb:369
 msgid "permissions view [for <user>]: display the permissions for user <user>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:295
+#: lib/rbot/core/auth.rb:371
 msgid ""
 "permissions search <pattern>: display the permissions associated with the "
 "commands matching <pattern>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:297
+#: lib/rbot/core/auth.rb:373
 msgid "permission topics: syntax, (re)set, view, search"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:302
+#: lib/rbot/core/auth.rb:378
 msgid ""
 "user show <what> : shows info about the user; <what> can be any of "
 "autologin, login-by-mask, netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:304
+#: lib/rbot/core/auth.rb:380
 msgid ""
 "user enable|disable <what> : turns on or off <what> (autologin, login-by-"
 "mask)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:306
+#: lib/rbot/core/auth.rb:382
 msgid ""
 "user set password <blah> : sets the user password to <blah>; passwords can "
 "only contain upper and lowercase letters and numbers, and must be at least 4 "
 "characters long"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:308
+#: lib/rbot/core/auth.rb:384
 msgid ""
 "user add|rm netmask <mask> : adds/removes netmask <mask> from the list of "
 "netmasks known to the botuser you're linked to"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:310
+#: lib/rbot/core/auth.rb:386
 msgid ""
 "user reset <what> : resets <what> to the default values. <what> can be "
 "+netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will "
@@ -235,13 +250,13 @@ msgid ""
 "and you'll be told in private)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:312
+#: lib/rbot/core/auth.rb:388
 msgid ""
 "user tell <who> the password for <botuser> : contacts <who> in private to "
 "tell him/her the password for <botuser>"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:314
+#: lib/rbot/core/auth.rb:390
 msgid ""
 "user create <name> <password> : create botuser named <name> with password "
 "<password>. The password can be omitted, in which case a random one will be "
@@ -249,11 +264,11 @@ msgid ""
 "underscore (_)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:316
+#: lib/rbot/core/auth.rb:392
 msgid "user list : lists all the botusers"
 msgstr "user list : 列出所有使用者"
 
-#: lib/rbot/core/auth.rb:318
+#: lib/rbot/core/auth.rb:394
 msgid ""
 "user destroy <botuser> : destroys <botuser>. This function %{highlight}must%"
 "{highlight} be called in two steps. On the first call <botuser> is queued "
@@ -262,342 +277,357 @@ msgid ""
 "destruction, issue the command 'user cancel destroy <botuser>'"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:320
+#: lib/rbot/core/auth.rb:396
 msgid ""
 "user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, "
 "list, destroy"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:323
+#: lib/rbot/core/auth.rb:399
 #, fuzzy
 msgid ""
 "auth <masterpassword>: log in as the bot owner; other commands: login, "
 "whoami, permission syntax, permissions [re]set, permissions view, user, "
-"meet, hello"
+"meet, hello, allow, prevent"
 msgstr ""
 "auth <masterpassword>: 登入成為機器人擁有者; 其他指令: login, whoami, "
 "permission syntax, permissions [re]set, permissions view, user"
 
-#: lib/rbot/core/auth.rb:325
+#: lib/rbot/core/auth.rb:401
 msgid ""
 "meet <nick> [as <user>]: creates a bot user for nick, calling it user "
 "(defaults to the nick itself)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:327
+#: lib/rbot/core/auth.rb:403
 msgid "hello: creates a bot user for the person issuing the command"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:329
+#: lib/rbot/core/auth.rb:405
 msgid ""
-"auth commands: auth, login, whoami, who, permission[s], user, meet, hello"
+"allow <user> to do <sample command> [<where>]: gives botuser <user> the "
+"permissions to execute a command such as the provided sample command (in "
+"private or in channel, according to the optional <where>)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:334
+#: lib/rbot/core/auth.rb:407
+msgid ""
+"deny <user> from doing <sample command> [<where>]: removes from botuser "
+"<user> the permissions to execute a command such as the provided sample "
+"command (in private or in channel, according to the optional <where>)"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:409
+msgid ""
+"auth commands: auth, login, whoami, who, permission[s], user, meet, hello, "
+"allow, deny"
+msgstr ""
+
+#: lib/rbot/core/auth.rb:414
 msgid "sorry, I need more arguments to %{command}"
 msgstr "抱歉,我需要更多參數來執行 %{command}"
 
-#: lib/rbot/core/auth.rb:338
+#: lib/rbot/core/auth.rb:418
 msgid "I can only %{command} these: %{arguments}"
 msgstr "我只能用這些參數執行 %{command}: %{argument}"
 
-#: lib/rbot/core/auth.rb:373
+#: lib/rbot/core/auth.rb:453
 #, fuzzy
 msgid "no such bot user %{user}"
 msgstr "已建立使用者 %{user}"
 
-#: lib/rbot/core/auth.rb:376
+#: lib/rbot/core/auth.rb:456
 msgid "you can't mess with %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:388
+#: lib/rbot/core/auth.rb:468
 msgid "you can't see the properties of %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:397
+#: lib/rbot/core/auth.rb:477
 msgid "no way I'm telling you the master password!"
 msgstr "我不會告訴你密碼的!"
 
-#: lib/rbot/core/auth.rb:398
+#: lib/rbot/core/auth.rb:478
 msgid "you can't ask for someone else's password"
 msgstr "你不能詢問其他人的密碼"
 
-#: lib/rbot/core/auth.rb:400
+#: lib/rbot/core/auth.rb:480
 msgid ""
 "c'mon, you can't be asking me seriously to tell you the password in public!"
 msgstr "別鬧了,你不是真的要我在公開場合講出密碼吧!"
 
-#: lib/rbot/core/auth.rb:401
+#: lib/rbot/core/auth.rb:481
 msgid "the password for %{user} is %{password}"
 msgstr "%{user} 的密碼是 %{password}"
 
-#: lib/rbot/core/auth.rb:415
+#: lib/rbot/core/auth.rb:495
 msgid "can %{action}"
 msgstr "能 %{action}"
 
-#: lib/rbot/core/auth.rb:417
+#: lib/rbot/core/auth.rb:497
 msgid "can not %{action}"
 msgstr "不能 %{action}"
 
-#: lib/rbot/core/auth.rb:421
+#: lib/rbot/core/auth.rb:501
 msgid "knows no netmasks"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:423
+#: lib/rbot/core/auth.rb:503
 msgid "knows %{netmasks}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:430 lib/rbot/core/auth.rb:457
-#: lib/rbot/core/auth.rb:475 lib/rbot/core/auth.rb:507
+#: lib/rbot/core/auth.rb:510 lib/rbot/core/auth.rb:537
+#: lib/rbot/core/auth.rb:555 lib/rbot/core/auth.rb:587
 msgid "you can't change the default user"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:431 lib/rbot/core/auth.rb:459
-#: lib/rbot/core/auth.rb:477 lib/rbot/core/auth.rb:509
+#: lib/rbot/core/auth.rb:511 lib/rbot/core/auth.rb:539
+#: lib/rbot/core/auth.rb:557 lib/rbot/core/auth.rb:589
 msgid "you can't edit %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:446 lib/rbot/core/auth.rb:493
+#: lib/rbot/core/auth.rb:526 lib/rbot/core/auth.rb:573
 msgid "I ignored %{things} because %{reason}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:450 lib/rbot/core/auth.rb:497
+#: lib/rbot/core/auth.rb:530 lib/rbot/core/auth.rb:577
 msgid "I haven't changed anything"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:468
+#: lib/rbot/core/auth.rb:548
 msgid "is that a joke? setting the password in public?"
 msgstr "這是個玩笑嗎?在公開場合設定密碼?"
 
-#: lib/rbot/core/auth.rb:500
+#: lib/rbot/core/auth.rb:580
 msgid "the password for %{user} is now %{password}"
 msgstr "%{user} 的密碼已經是 %{password}"
 
-#: lib/rbot/core/auth.rb:514
+#: lib/rbot/core/auth.rb:594
 msgid ""
 "I can only add/remove netmasks. See +help user add+ for more instructions"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:535
+#: lib/rbot/core/auth.rb:615
 msgid "sorry, I don't know how to %{request}"
 msgstr "抱歉,我不知道如何 %{request}"
 
-#: lib/rbot/core/auth.rb:538
+#: lib/rbot/core/auth.rb:618
 #, fuzzy
 msgid "couldn't %{cmd}: %{exception}"
 msgstr "無法登入: %{exception}"
 
-#: lib/rbot/core/auth.rb:567
+#: lib/rbot/core/auth.rb:647
 msgid ""
 "you are now registered as %{buname}. I created a random password for you : %"
 "{pass} and you can change it at any time by telling me 'user set password "
 "<password>' in private"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:574
+#: lib/rbot/core/auth.rb:654
 msgid "but I already know %{buname}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:576
+#: lib/rbot/core/auth.rb:656
 msgid "I had problems meeting %{nick}: %{e}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:585
+#: lib/rbot/core/auth.rb:665
 msgid "couldn't find botuser %{user}"
 msgstr "找不到使用者 %{user}"
 
-#: lib/rbot/core/auth.rb:587
+#: lib/rbot/core/auth.rb:667
 msgid "I'm not telling the master password to anyone, pal"
 msgstr "我怎麼樣都不會說出密碼的"
 
-#: lib/rbot/core/auth.rb:588
+#: lib/rbot/core/auth.rb:668
 msgid "the password for botuser %{user} is %{password}"
 msgstr "使用者 %{user} 的密碼是 %{password}"
 
-#: lib/rbot/core/auth.rb:591
+#: lib/rbot/core/auth.rb:671
 msgid "I told %{user} that %{message}"
 msgstr "我告訴 %{user} 關於 %{message}"
 
-#: lib/rbot/core/auth.rb:597
+#: lib/rbot/core/auth.rb:677
 msgid "are you nuts, creating a botuser with a publicly known password?"
 msgstr "你瘋了嗎?用誰都曉得的密碼建立使用者?"
 
-#: lib/rbot/core/auth.rb:602
+#: lib/rbot/core/auth.rb:682
 msgid "failed to create %{user}: %{exception}"
 msgstr "無法建立 %{user}: %{exception}"
 
-#: lib/rbot/core/auth.rb:606
+#: lib/rbot/core/auth.rb:686
 msgid "created botuser %{user}"
 msgstr "已建立使用者 %{user}"
 
-#: lib/rbot/core/auth.rb:614
+#: lib/rbot/core/auth.rb:694
 msgid " (queued for destruction)"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:617
+#: lib/rbot/core/auth.rb:697
 msgid "I have no botusers other than the default ones"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:618
+#: lib/rbot/core/auth.rb:698
 msgid "botuser: %{list}"
 msgid_plural "botusers: %{list}"
 msgstr[0] "使用者: %{list}"
 
-#: lib/rbot/core/auth.rb:625
+#: lib/rbot/core/auth.rb:705
 msgid "You can't destroy %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:635
+#: lib/rbot/core/auth.rb:715
 msgid "no such botuser %{user}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:642
+#: lib/rbot/core/auth.rb:722
 msgid "%{user} removed from the destruction queue"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:644
+#: lib/rbot/core/auth.rb:724
 msgid "%{user} was not queued for destruction"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:649
+#: lib/rbot/core/auth.rb:729
 msgid ""
 "%{user} already queued for destruction, use %{highlight}user confirm destroy "
 "%{user}%{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:652
+#: lib/rbot/core/auth.rb:732
 msgid ""
 "%{user} queued for destruction, use %{highlight}user confirm destroy %{user}%"
 "{highlight} to destroy it"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:656
+#: lib/rbot/core/auth.rb:736
 msgid "%{user} is not queued for destruction yet"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:665 lib/rbot/core/auth.rb:705
+#: lib/rbot/core/auth.rb:745 lib/rbot/core/auth.rb:785
 msgid "failed: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:667
+#: lib/rbot/core/auth.rb:747
 msgid "botuser %{user} destroyed"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:674
+#: lib/rbot/core/auth.rb:754
 msgid "please don't touch the default users"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:683
+#: lib/rbot/core/auth.rb:763
 msgid "no such botuser %{source}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:685
+#: lib/rbot/core/auth.rb:765
 msgid "botuser %{dest} exists already"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:708
+#: lib/rbot/core/auth.rb:788
 msgid "botuser %{source} copied to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:711
+#: lib/rbot/core/auth.rb:791
 msgid "botuser %{source} renamed to %{dest}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:731
+#: lib/rbot/core/auth.rb:811
 msgid "selecting data to export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:747
+#: lib/rbot/core/auth.rb:827
 msgid "preparing data for export ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:770
+#: lib/rbot/core/auth.rb:850
 msgid "failed to prepare data: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:775
+#: lib/rbot/core/auth.rb:855
 msgid "exporting to %{file} ..."
 msgstr ""
 
-#: lib/rbot/core/auth.rb:782
+#: lib/rbot/core/auth.rb:862
 msgid "failed to export users: %{exception}"
 msgstr ""
 
-#: lib/rbot/core/auth.rb:786 lib/rbot/core/auth.rb:864
+#: lib/rbot/core/auth.rb:866 lib/rbot/core/auth.rb:944
 msgid "done"
 msgstr "完成"
 
-#: lib/rbot/core/auth.rb:803
+#: lib/rbot/core/auth.rb:883
 msgid "reading %{file} ..."
 msgstr "讀取 %{file} ..."
 
-#: lib/rbot/core/auth.rb:807
+#: lib/rbot/core/auth.rb:887
 msgid "failed to import from: %{exception}"
 msgstr "載入失敗: %{exception}"
 
-#: lib/rbot/core/auth.rb:814
+#: lib/rbot/core/auth.rb:894
 msgid "selecting data to import ..."
 msgstr "選擇資料以載入 ..."
 
-#: lib/rbot/core/auth.rb:824
+#: lib/rbot/core/auth.rb:904
 msgid "parsing data from import ..."
 msgstr "分析載入資料 ..."
 
-#: lib/rbot/core/auth.rb:844
+#: lib/rbot/core/auth.rb:924
 msgid "failed to parse data: %{exception}"
 msgstr "分析資料失敗: %{excaption}"
 
-#: lib/rbot/core/basics.rb:105
+#: lib/rbot/core/basics.rb:111
 msgid "quit [<message>] => quit IRC with message <message>"
 msgstr "quit [<message>] => 講 <message> 並離開 IRC"
 
-#: lib/rbot/core/basics.rb:107
+#: lib/rbot/core/basics.rb:113
 msgid "restart => completely stop and restart the bot (including reconnect)"
 msgstr "restart => 徹底停止並重新啟動機器人(包括重新連線)"
 
-#: lib/rbot/core/basics.rb:111
+#: lib/rbot/core/basics.rb:117
 msgid "part"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:113
+#: lib/rbot/core/basics.rb:119
 msgid "hide => part all channels"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:115
+#: lib/rbot/core/basics.rb:121
 msgid "nick <nick> => attempt to change nick to <nick>"
 msgstr "nick <nick> => 嘗試把暱稱改為 <nick>"
 
-#: lib/rbot/core/basics.rb:117
+#: lib/rbot/core/basics.rb:123
 msgid ""
 "say <channel>|<nick> <message> => say <message> to <channel> or in private "
 "message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:119
+#: lib/rbot/core/basics.rb:125
 msgid ""
 "action <channel>|<nick> <message> => does a /me <message> to <channel> or in "
 "private message to <nick>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:121
+#: lib/rbot/core/basics.rb:127
 msgid ""
 "quiet [in here|<channel>] => with no arguments, stop speaking in all "
 "channels, if \"in here\", stop speaking in this channel, or stop speaking in "
 "<channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:123
+#: lib/rbot/core/basics.rb:129
 msgid ""
 "talk [in here|<channel>] => with no arguments, resume speaking in all "
 "channels, if \"in here\", resume speaking in this channel, or resume "
 "speaking in <channel>"
 msgstr ""
 
-#: lib/rbot/core/basics.rb:125
+#: lib/rbot/core/basics.rb:131
 msgid "ping => replies with a pong"
 msgstr "ping => 回答 pong"
 
-#: lib/rbot/core/basics.rb:127
+#: lib/rbot/core/basics.rb:133
 msgid ""
 "mode <channel> <mode> <nicks> => set channel modes for <nicks> on <channel> "
 "to <mode>"
@@ -605,7 +635,7 @@ msgstr ""
 "mode <channel> <mode> <nicks> => 設定 <nicks> 在 <channel> 頻道的權限為 "
 "<mode>"
 
-#: lib/rbot/core/basics.rb:133
+#: lib/rbot/core/basics.rb:139
 msgid ""
 "%{name}: quit, restart, join, part, hide, save, nick, say, action, topic, "
 "quiet, talk, ping, mode"
@@ -812,65 +842,73 @@ msgstr ""
 msgid "known filters: "
 msgstr ""
 
+#: lib/rbot/core/filters_ui.rb:40
+msgid "no known filter groups"
+msgstr ""
+
 #: lib/rbot/core/filters_ui.rb:42
+msgid "known filter groups: "
+msgstr ""
+
+#: lib/rbot/core/filters_ui.rb:52
 msgid "no filters match %{pat}"
 msgstr ""
 
-#: lib/rbot/core/filters_ui.rb:44
+#: lib/rbot/core/filters_ui.rb:54
 msgid "filters matching %{pat}: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1184
+#: lib/rbot/ircbot.rb:1165
 msgid "help topics: "
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1186
+#: lib/rbot/ircbot.rb:1167
 msgid " (help <topic> for more info)"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1189
+#: lib/rbot/ircbot.rb:1170
 msgid "no help for topic %{topic}"
 msgstr ""
 
-#: lib/rbot/ircbot.rb:1200
+#: lib/rbot/ircbot.rb:1181
 msgid ""
 "Uptime %{up}, %{plug} plugins active, %{sent} lines sent, %{recv} received."
 msgstr ""
 
-#: lib/rbot/plugins.rb:305
+#: lib/rbot/plugins.rb:315
 msgid "incorrect usage, ask for help using '%{command}'"
 msgstr "用法錯誤,請用 %{command} 尋求協助"
 
-#: lib/rbot/plugins.rb:606
+#: lib/rbot/plugins.rb:616
 msgid "%{count} core module loaded"
 msgid_plural "%{count} core modules loaded"
 msgstr[0] "%{count} 個核心模組已載入"
 
-#: lib/rbot/plugins.rb:609
+#: lib/rbot/plugins.rb:619
 msgid "%{count} core module: %{list}"
 msgid_plural "%{count} core modules: %{list}"
 msgstr[0] "%{count} 個核心模組: %{list}"
 
-#: lib/rbot/plugins.rb:615
+#: lib/rbot/plugins.rb:625
 msgid "no core botmodules loaded"
 msgstr "未載入任何核心模組"
 
-#: lib/rbot/plugins.rb:620
+#: lib/rbot/plugins.rb:630
 msgid "%{count} plugin loaded"
 msgid_plural "%{count} plugins loaded"
 msgstr[0] "%{count} 個外掛程式已載入"
 
-#: lib/rbot/plugins.rb:623
+#: lib/rbot/plugins.rb:633
 msgid "%{count} plugin: %{list}"
 msgid_plural "%{count} plugins: %{list}"
 msgstr[0] "%{count} 個外掛程式: %{list}"
 
-#: lib/rbot/plugins.rb:634
+#: lib/rbot/plugins.rb:644
 msgid "%{highlight}%{count} plugin ignored%{highlight}"
 msgid_plural "%{highlight}%{count} plugins ignored%{highlight}"
 msgstr[0] "%{highlight}%{count} 個外掛程式被忽略%{highlight}"
 
-#: lib/rbot/plugins.rb:639
+#: lib/rbot/plugins.rb:649
 msgid ""
 "%{highlight}%{count} plugin ignored%{highlight}: use %{bold}%{command}%"
 "{bold} to see why"
@@ -881,12 +919,12 @@ msgstr[0] ""
 "%{highlight}%{count} 個外掛程式被忽略%{highlight}: 執行 %{bold}%{command}%"
 "{bold} 以瞭解原因"
 
-#: lib/rbot/plugins.rb:649
+#: lib/rbot/plugins.rb:659
 msgid "%{highlight}%{count} plugin failed to load%{highlight}"
 msgid_plural "%{highlight}%{count} plugins failed to load%{highlight}"
 msgstr[0] "%{highlight}%{count} 個外掛程式載入失敗%{highlight}"
 
-#: lib/rbot/plugins.rb:654
+#: lib/rbot/plugins.rb:664
 msgid ""
 "%{highlight}%{count} plugin failed to load%{highlight}: use %{bold}%"
 "{command}%{bold} to see why"
@@ -897,11 +935,11 @@ msgstr[0] ""
 "%{highlight}%{count} 個外掛程式載入失敗%{highlight}: 執行 %{bold}%{command}%"
 "{bold} 以瞭解原因"
 
-#: lib/rbot/plugins.rb:684
+#: lib/rbot/plugins.rb:694
 msgid "no plugins failed to load"
 msgstr "沒有外掛程式載入失敗"
 
-#: lib/rbot/plugins.rb:686
+#: lib/rbot/plugins.rb:696
 msgid ""
 "%{highlight}%{plugin}%{highlight} in %{dir} failed with error %{exception}: %"
 "{reason}"
@@ -909,15 +947,15 @@ msgstr ""
 "%{dir} 的 %{highlight}%{plugin}%{highlight} 外掛程式發生錯誤 %{exception}: %"
 "{reason}"
 
-#: lib/rbot/plugins.rb:690
+#: lib/rbot/plugins.rb:700
 msgid "at %{backtrace}"
 msgstr ""
 
-#: lib/rbot/plugins.rb:696
+#: lib/rbot/plugins.rb:706
 msgid "no plugins were ignored"
 msgstr "沒有外掛程式被忽略"
 
-#: lib/rbot/plugins.rb:700
+#: lib/rbot/plugins.rb:710
 msgid "overruled by previous"
 msgstr "已被前者取代"
 
@@ -1136,8 +1174,8 @@ msgid ""
 "<words>"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:402
-#: data/rbot/plugins/factoids.rb:434
+#: data/rbot/plugins/factoids.rb:292 data/rbot/plugins/factoids.rb:404
+#: data/rbot/plugins/factoids.rb:436
 msgid "please select a fact number between 1 and %{total}"
 msgstr ""
 
@@ -1157,36 +1195,36 @@ msgstr ""
 msgid "[%{idx}/%{total}] %{fact}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:340
+#: data/rbot/plugins/factoids.rb:342
 msgid "I know %{total} facts"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:350 data/rbot/plugins/factoids.rb:418
+#: data/rbot/plugins/factoids.rb:352 data/rbot/plugins/factoids.rb:420
 msgid "I know nothing about %{words}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:355
+#: data/rbot/plugins/factoids.rb:357
 msgid "%{len} out of %{total} facts refer to %{words}, I'll only show %{max}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:410
+#: data/rbot/plugins/factoids.rb:412
 msgid "I know nothing"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:450
+#: data/rbot/plugins/factoids.rb:452
 msgid "not a date '%{dstr}'"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:458
+#: data/rbot/plugins/factoids.rb:460
 msgid "couldn't change learn data for fact %{fact}: %{err}"
 msgstr ""
 
-#: data/rbot/plugins/factoids.rb:473
+#: data/rbot/plugins/factoids.rb:475
 #, fuzzy
 msgid "failed to import facts from %{fname}: %{err}"
 msgstr "載入失敗: %{exception}"
 
-#: data/rbot/plugins/factoids.rb:478
+#: data/rbot/plugins/factoids.rb:480
 msgid "%{len} facts loaded from %{fname}"
 msgstr ""
 
@@ -1194,8 +1232,8 @@ msgstr ""
 msgid "Path to the figlet program"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:252
-#: data/rbot/plugins/games/azgame.rb:258
+#: data/rbot/plugins/games/azgame.rb:78 data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:257
 msgid "%{count} try"
 msgid_plural "%{count} tries"
 msgstr[0] ""
@@ -1205,162 +1243,162 @@ msgstr[1] ""
 msgid "winner, %{tries}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:164
+#: data/rbot/plugins/games/azgame.rb:163
 msgid ""
 "%{bold}BINGO!%{bold} the word was %{underline}%{word}%{underline}. Congrats, "
 "%{bold}%{player}%{bold}!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:171
+#: data/rbot/plugins/games/azgame.rb:170
 msgid ""
 "The game was won after %{tries} tries. Scores for this game:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:174
+#: data/rbot/plugins/games/azgame.rb:173
 msgid "%{word} is not in the range %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:178
+#: data/rbot/plugins/games/azgame.rb:177
 msgid "%{word} doesn't exist or is not acceptable for the game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:184
+#: data/rbot/plugins/games/azgame.rb:183
 msgid "close, but no cigar. New range: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:188
+#: data/rbot/plugins/games/azgame.rb:187
 msgid "%{word} is already one of the range extrema: %{range}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:190
+#: data/rbot/plugins/games/azgame.rb:189
 msgid "hm, something went wrong while verifying %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:199
+#: data/rbot/plugins/games/azgame.rb:198
 msgid "no A-Z game running here, can't check if %{word} is valid, can I?"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:203
+#: data/rbot/plugins/games/azgame.rb:202
 msgid "I only accept single words composed by letters only, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:213
+#: data/rbot/plugins/games/azgame.rb:212
 msgid "the word in %{bold}%{range}%{bold} was:   %{bold}%{word}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:217
+#: data/rbot/plugins/games/azgame.rb:216
 msgid ""
 "The game was cancelled after %{tries} tries. Scores for this game would have "
 "been:    %{scores}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:220
+#: data/rbot/plugins/games/azgame.rb:219
 msgid "no A-Z game running in this channel ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:230
+#: data/rbot/plugins/games/azgame.rb:229
 msgid "let me think ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:234
+#: data/rbot/plugins/games/azgame.rb:233
 msgid "couldn't think of anything ..."
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:238
+#: data/rbot/plugins/games/azgame.rb:237
 msgid "I can't play A-Z in %{lang}, sorry"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:241
+#: data/rbot/plugins/games/azgame.rb:240
 msgid "got it!"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:251
+#: data/rbot/plugins/games/azgame.rb:250
 msgid " (after %{total_tries} and %{invalid_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:254
+#: data/rbot/plugins/games/azgame.rb:253
 msgid "%{count} invalid try"
 msgid_plural "%{count} invalid tries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:257
+#: data/rbot/plugins/games/azgame.rb:256
 msgid " (after %{total_tries})"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:263
+#: data/rbot/plugins/games/azgame.rb:262
 msgid "A-Z: %{bold}%{range}%{bold}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:274
+#: data/rbot/plugins/games/azgame.rb:273
 msgid "I have %{count} %{lang} word in my cache"
 msgid_plural "I have %{count} %{lang} words in my cache"
 msgstr[0] ""
 msgstr[1] ""
 
-#: data/rbot/plugins/games/azgame.rb:277
+#: data/rbot/plugins/games/azgame.rb:276
 msgid "provide a regexp to match"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:289
+#: data/rbot/plugins/games/azgame.rb:288
 msgid "no %{lang} word I know match %{pattern}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:291
+#: data/rbot/plugins/games/azgame.rb:290
 msgid ""
 "more than 25 %{lang} words I know match %{pattern}, try a stricter matching"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:297 data/rbot/plugins/games/azgame.rb:313
-#: data/rbot/plugins/games/azgame.rb:325
+#: data/rbot/plugins/games/azgame.rb:296 data/rbot/plugins/games/azgame.rb:312
+#: data/rbot/plugins/games/azgame.rb:324
 msgid "provide a word"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:302 data/rbot/plugins/games/azgame.rb:318
+#: data/rbot/plugins/games/azgame.rb:301 data/rbot/plugins/games/azgame.rb:317
 msgid "I don't know any %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:306
+#: data/rbot/plugins/games/azgame.rb:305
 msgid "%{word} learned from %{user} on %{date}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:308
+#: data/rbot/plugins/games/azgame.rb:307
 msgid "%{word} learned from %{user}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:330
+#: data/rbot/plugins/games/azgame.rb:329
 msgid "I already know the %{lang} word %{word}"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:546
+#: data/rbot/plugins/games/azgame.rb:545
 msgid ""
 "az [lang] word [count|list|add|delete] => manage the az wordlist for "
 "language lang (defaults to current bot language)"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:548
+#: data/rbot/plugins/games/azgame.rb:547
 msgid "az cancel => abort current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:550
+#: data/rbot/plugins/games/azgame.rb:549
 msgid "az check <word> => checks <word> against current game"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:552
+#: data/rbot/plugins/games/azgame.rb:551
 msgid ""
 "try to guess the word the bot is thinking of; if you guess wrong, the bot "
 "will use the new word to restrict the range of allowed words: eventually, "
 "the range will be so small around the correct word that you can't miss it"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:554
+#: data/rbot/plugins/games/azgame.rb:553
 msgid ""
 "az => start a game if none is running, show the current word range "
 "otherwise; you can say 'az <language>' if you want to play in a language "
 "different from the current bot default"
 msgstr ""
 
-#: data/rbot/plugins/games/azgame.rb:556
+#: data/rbot/plugins/games/azgame.rb:555
 msgid "az topics: play, rules, cancel, manage, check"
 msgstr ""
 
@@ -1639,20 +1677,20 @@ msgstr ""
 msgid "%{name} game cancelled after %{count} rounds. Partial score:"
 msgstr ""
 
-#: data/rbot/plugins/keywords.rb:452
+#: data/rbot/plugins/keywords.rb:457
 #, fuzzy
 msgid "couldn't find keyword %{key}"
 msgstr "無法找到使用者 ${name}"
 
-#: data/rbot/plugins/keywords.rb:501
+#: data/rbot/plugins/keywords.rb:506
 msgid "failed to export keywords as factoids (%{err})"
 msgstr ""
 
-#: data/rbot/plugins/markov.rb:134
+#: data/rbot/plugins/markov.rb:133
 msgid "markov has a %{prob}% chance of chipping in"
 msgstr ""
 
-#: data/rbot/plugins/rss.rb:802
+#: data/rbot/plugins/rss.rb:809
 #, fuzzy
 msgid "no such feed %{handle}"
 msgstr "沒有 %{module} 模組"
@@ -1726,6 +1764,48 @@ msgstr ""
 msgid "actions will not be twitted"
 msgstr ""
 
+#: data/rbot/plugins/youtube.rb:33
+msgid ""
+"Category: %{cat}. Rating: %{rating}. Author: %{author}. Duration: %"
+"{duration}. %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:76 data/rbot/plugins/youtube.rb:106
+msgid "unknown duration"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:182
+msgid ""
+"%{bold}%{title}%{bold} [%{cat}] %{rating} @ %{url} by %{author} (%"
+"{duration}). %{views} views, faved %{faves} times. %{desc}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:185
+msgid ""
+"\n"
+" -- also available at: "
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:192
+msgid "couldn't retrieve video info"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:202
+msgid "error looking for %{what} on youtube: %{e}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:210
+msgid "no videos found for %{what}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:214
+msgid "One video found for %{what}: %{show}"
+msgstr ""
+
+#: data/rbot/plugins/youtube.rb:221
+msgid "Videos for %{what}: %{shorts}"
+msgstr ""
+
 #~ msgid "config-related tasks: config topics, save, rescan"
 #~ msgstr "設定相關任務: config topics, save, rescan"