Merged from silc_1_0_branch.
[silc.git] / apps / irssi / src / fe-common / silc / module-formats.c
index 2b30bffe7feb57cad3d7fbf289e0832c6bbb0692..09440ca5c9c5c4606944c3566f705fe22c73785f 100644 (file)
 /*
- module-formats.c : irssi
 
-    Copyright (C) 2000 Timo Sirainen
+  modules-formats.c
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
+  Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+  Copyright (C) 2001 Pekka Riikonen
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+  
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
 #include "module.h"
+#include "fe-common/core/formats.h"
 #include "printtext.h"
 
-FORMAT_REC fecommon_irc_formats[] = {
-       { MODULE_NAME, "IRC", 0 },
-
-       /* ---- */
-       { NULL, "Server", 0 },
-
-       { "lag_disconnected", "No PONG reply from server %_$0%_ in $1 seconds, disconnecting", 2, { 0, 1 } },
-       { "disconnected", "Disconnected from %_$0%_ %K[%n$1%K]", 2, { 0, 0 } },
-       { "server_list", "%_$0%_: $1:$2 ($3)", 5, { 0, 0, 1, 0, 0 } },
-       { "server_lookup_list", "%_$0%_: $1:$2 ($3) (connecting...)", 5, { 0, 0, 1, 0, 0 } },
-       { "server_reconnect_list", "%_$0%_: $1:$2 ($3) ($5 left before reconnecting)", 6, { 0, 0, 1, 0, 0, 0 } },
-       { "server_reconnect_removed", "Removed reconnection to server %_$0%_ port %_$1%_", 3, { 0, 1, 0 } },
-       { "server_reconnect_not_found", "Reconnection tag %_$0%_ not found", 1, { 0 } },
-       { "query_server_changed", "Query with %_$2%_ changed to server %_$1%_", 3, { 0, 0, 0 } },
-       { "setupserver_added", "Server $0 saved", 2, { 0, 1 } },
-       { "setupserver_removed", "Server $0 removed", 2, { 0, 1 } },
-       { "setupserver_not_found", "Server $0 not found", 2, { 0, 1 } },
-       { "setupserver_header", "Server               Port  IRC Net    Settings", 0 },
-       { "setupserver_line", "%|$[!20]0 $[5]1 $[10]2 $3", 4, { 0, 1, 0, 0 } },
-       { "setupserver_footer", "", 0 },
-       { "netsplit", "%RNetsplit%n %_$0%_ %_$1%_ quits: $2", 3, { 0, 0, 0 } },
-       { "netsplit_more", "%RNetsplit%n %_$0%_ %_$1%_ quits: $2 (+$3 more, use /NETSPLIT to show all of them)", 4, { 0, 0, 0, 1 } },
-       { "netsplit_join", "%CNetsplit%n over, joins: $0", 1, { 0 } },
-       { "netsplit_join_more", "%CNetsplit%n over, joins: $0 (+$1 more)", 2, { 0, 1 } },
-       { "no_netsplits", "There are no net splits", 0 },
-       { "netsplits_header", "Nick      Channel    Server               Splitted server", 0 },
-       { "netsplits_line", "$[9]0 $[10]1 $[20]2 $3", 4, { 0, 0, 0, 0 } },
-       { "netsplits_footer", "", 0 },
-       { "ircnet_added", "Ircnet $0 saved", 1, { 0 } },
-       { "ircnet_removed", "Ircnet $0 removed", 1, { 0 } },
-       { "ircnet_not_found", "Ircnet $0 not found", 1, { 0 } },
-       { "ircnet_header", "Ircnets:", 0 },
-       { "ircnet_line", "$0: $1", 2, { 0, 0 } },
-       { "ircnet_footer", "", 0 },
-
-       /* ---- */
-       { NULL, "Channels", 0 },
-
-       { "join", "%c%_$0%_ %K[%c$1%K]%n has joined %_$2", 3, { 0, 0, 0 } },
-       { "part", "%c$0 %K[%n$1%K]%n has left %_$2%_ %K[%n$3%K]", 4, { 0, 0, 0, 0 } },
-       { "joinerror_toomany", "Cannot join to channel %_$0%_ %K(%nYou have joined to too many channels%K)", 1, { 0 } },
-       { "joinerror_full", "Cannot join to channel %_$0%_ %K(%nChannel is full%K)", 1, { 0 } },
-       { "joinerror_invite", "Cannot join to channel %_$0%_ %K(%nYou must be invited%K)", 1, { 0 } },
-       { "joinerror_banned", "Cannot join to channel %_$0%_ %K(%nYou are banned%K)", 1, { 0 } },
-       { "joinerror_bad_key", "Cannot join to channel %_$0%_ %K(%nBad channel key%K)", 1, { 0 } },
-       { "joinerror_bad_mask", "Cannot join to channel %_$0%_ %K(%nBad channel mask%K)", 1, { 0 } },
-       { "joinerror_unavail", "Cannot join to channel %_$0%_ %K(%nChannel is temporarily unavailable%K)", 1, { 0 } },
-       { "kick", "%c$0%n was kicked from %_$1%_ by %_$2%_ %K[%n$3%K]", 4, { 0, 0, 0, 0 } },
-       { "quit", "%c$0 %K[%n$1%K]%n has quit IRC %K[%n$2%K]", 3, { 0, 0, 0 } },
-       { "quit_once", "%_$3%_ %c$0 %K[%n$1%K]%n has quit IRC %K[%n$2%K]", 4, { 0, 0, 0, 0 } },
-       { "invite", "%_$0%_ invites you to %_$1", 2, { 0, 0 } },
-       { "inviting", "Inviting $0 to %_$1", 2, { 0, 0 } },
-       { "not_invited", "You have not been invited to a channel!", 0 },
-       { "names", "%K[%g%_Users%_%K(%g$0%K)]%n $1", 2, { 0, 0 } },
-       { "names_nick", "%K[%n%_$0%_$1%K] ", 2, { 0, 0 } },
-       { "endofnames", "%g%_$0%_%K:%n Total of %_$1%_ nicks %K[%n%_$2%_ ops, %_$3%_ voices, %_$4%_ normal%K]", 5, { 0, 1, 1, 1, 1 } },
-       { "channel_created", "Channel %_$0%_ created $1", 2, { 0, 0 } },
-       { "topic", "Topic for %c$0%K:%n $1", 2, { 0, 0 } },
-       { "no_topic", "No topic set for %c$0", 1, { 0 } },
-       { "new_topic", "%_$0%_ changed the topic of %c$1%n to%K:%n $2", 3, { 0, 0, 0 } },
-       { "topic_unset", "Topic unset by %_$0%_ on %c$1", 2, { 0, 0 } },
-       { "topic_info", "Topic set by %_$0%_ %K[%n$1%K]", 2, { 0, 0 } },
-       { "chanmode_change", "mode/%c$0 %K[%n$1%K]%n by %_$2", 3, { 0, 0, 0 } },
-       { "server_chanmode_change", "%RServerMode/%c$0 %K[%n$1%K]%n by %_$2", 3, { 0, 0, 0 } },
-       { "channel_mode", "mode/%c$0 %K[%n$1%K]", 2, { 0, 0 } },
-       { "bantype", "Ban type changed to %_$0", 1, { 0 } },
-       { "no_bans", "No bans in channel %_$0%_", 1, { 0 } },
-       { "banlist", "%_$0%_: ban %c$1", 2, { 0, 0 } },
-       { "banlist_long", "%_$0%_: ban %c$1 %K[%nby %_$2%_, $3 secs ago%K]", 4, { 0, 0, 0, 1 } },
-       { "ebanlist", "%_$0%_: ban exception %c$1", 2, { 0, 0 } },
-       { "ebanlist_long", "%_$0%_: ban exception %c$1 %K[%nby %_$2%_, $3 secs ago%K]", 4, { 0, 0, 0, 1 } },
-       { "invitelist", "%_$0%_: invite %c$1", 2, { 0, 0 } },
-       { "no_such_channel", "$0: No such channel", 1, { 0 } },
-       { "channel_synced", "Join to %_$0%_ was synced in %_$1%_ secs", 2, { 0, 2 } },
-       { "not_in_channels", "You are not on any channels", 0 },
-       { "current_channel", "Current channel $0", 1, { 0 } },
-       { "chanlist_header", "You are on the following channels:", 0 },
-       { "chanlist_line", "$[-10]0 %|+$1 ($2): $3", 4, { 0, 0, 0, 0 } },
-       { "chansetup_not_found", "Channel $0 not found", 2, { 0, 0 } },
-       { "chansetup_added", "Channel $0 saved", 2, { 0, 0 } },
-       { "chansetup_removed", "Channel $0 removed", 2, { 0, 0 } },
-       { "chansetup_header", "Channel         IRC net    Password   Settings", 0 },
-       { "chansetup_line", "$[15]0 %|$[10]1 $[10]2 $3", 4, { 0, 0, 0, 0 } },
-       { "chansetup_footer", "", 0 },
-
-       /* ---- */
-       { NULL, "Nick", 0 },
-
-       { "usermode_change", "Mode change %K[%n%_$0%_%K]%n for user %c$1", 2, { 0, 0 } },
-       { "user_mode", "Your user mode is %K[%n%_$0%_%K]", 1, { 0 } },
-       { "away", "You have been marked as being away", 0 },
-       { "unaway", "You are no longer marked as being away", 0 },
-       { "nick_away", "$0 is away: $1", 2, { 0, 0 } },
-       { "no_such_nick", "$0: No such nick/channel", 1, { 0 } },
-       { "your_nick", "Your nickname is $0", 1, { 0 } },
-       { "your_nick_changed", "You're now known as %c$0", 1, { 0 } },
-       { "nick_changed", "%_$0%_ is now known as %c$1", 2, { 0, 0 } },
-       { "nick_in_use", "Nick %_$0%_ is already in use", 1, { 0 } },
-       { "nick_unavailable", "Nick %_$0%_ is temporarily unavailable", 1, { 0 } },
-       { "your_nick_owned", "Your nick is owned by %_$3%_ %K[%n$1@$2%K]", 4, { 0, 0, 0, 0 } },
-
-       /* ---- */
-       { NULL, "Who queries", 0 },
-
-       { "whois", "%_$0%_ %K[%n$1@$2%K]%n%: ircname  : $3", 4, { 0, 0, 0, 0 } },
-       { "whowas", "%_$0%_ %K[%n$1@$2%K]%n%: ircname  : $3", 4, { 0, 0, 0, 0 } },
-       { "whois_idle", " idle     : $1 days $2 hours $3 mins $4 secs", 5, { 0, 1, 1, 1, 1 } },
-       { "whois_idle_signon", " idle     : $1 days $2 hours $3 mins $4 secs %K[%nsignon: $5%K]", 6, { 0, 1, 1, 1, 1, 0 } },
-       { "whois_server", " server   : $1 %K[%n$2%K]", 3, { 0, 0, 0 } },
-       { "whois_oper", "          : %_IRC operator%_", 1, { 0 } },
-       { "whois_registered", "          : has registered this nick", 1, { 0 } },
-       { "whois_channels", " channels : $1", 2, { 0, 0 } },
-       { "whois_away", " away     : $1", 2, { 0, 0 } },
-       { "end_of_whois", "End of WHOIS", 1, { 0 } },
-       { "end_of_whowas", "End of WHOWAS", 1, { 0 } },
-       { "whois_not_found", "There is no such nick $0", 1, { 0 } },
-       { "who", "$[-10]0 %|%_$[!9]1%_ $[!3]2 $[!2]3 $4@$5 %K(%W$6%K)", 7, { 0, 0, 0, 0, 0, 0, 0 } },
-       { "end_of_who", "End of /WHO list", 1, { 0 } },
-
-       /* ---- */
-       { NULL, "Your messages", 0 },
-
-       { "own_msg", "%K<%n$2%W$0%K>%n %|$1", 3, { 0, 0, 0 } },
-       { "own_msg_channel", "%K<%n$3%W$0%K:%c$1%K>%n %|$2", 4, { 0, 0, 0, 0 } },
-       { "own_msg_private", "%K[%rmsg%K(%R$0%K)]%n $1", 2, { 0, 0 } },
-       { "own_msg_private_query", "%K<%W$2%K>%n %|$1", 3, { 0, 0, 0 } },
-       { "own_notice", "%K[%rnotice%K(%R$0%K)]%n $1", 2, { 0, 0 } },
-       { "own_me", "%W * $0%n $1", 2, { 0, 0 } },
-       { "own_ctcp", "%K[%rctcp%K(%R$0%K)]%n $1 $2", 3, { 0, 0, 0 } },
-       { "own_wall", "%K[%WWall%K/%c$0%K]%n $1", 2, { 0, 0 } },
-
-       /* ---- */
-       { NULL, "Received messages", 0 },
-
-       { "pubmsg_me", "%K<%n$2%Y$0%K>%n %|$1", 3, { 0, 0, 0 } },
-       { "pubmsg_me_channel", "%K<%n$3%Y$0%K:%c$1%K>%n %|$2", 4, { 0, 0, 0, 0 } },
-       { "pubmsg_hilight", "%K<%n$3$0$1%K>%n %|$2", 4, { 0, 0, 0, 0 } },
-       { "pubmsg_hilight_channel", "%K<%n$4$0$1%K:%c$2%K>%n %|$3", 5, { 0, 0, 0, 0, 0 } },
-       { "pubmsg", "%K<%n$2$0%K>%n %|$1", 3, { 0, 0, 0 } },
-       { "pubmsg_channel", "%K<%n$3$0%K:%c$1%K>%n %|$2", 4, { 0, 0, 0, 0 } },
-       { "msg_private", "%K[%R$0%K(%r$1%K)]%n $2", 3, { 0, 0, 0 } },
-       { "msg_private_query", "%K<%R$0%K>%n %|$2", 3, { 0, 0, 0 } },
-       { "notice_server", "%g!$0%n $1", 2, { 0, 0 } },
-       { "notice_public", "%K-%M$0%K:%m$1%K-%n $2", 3, { 0, 0, 0 } },
-       { "notice_public_ops", "%K-%M$0%K:%m@$1%K-%n $2", 3, { 0, 0, 0 } },
-       { "notice_private", "%K-%M$0%K(%m$1%K)-%n $2", 3, { 0, 0, 0 } },
-       { "action_private", "%W (*) $0%n $2", 3, { 0, 0, 0 } },
-       { "action_private_query", "%W * $0%n $2", 3, { 0, 0, 0 } },
-       { "action_public", "%W * $0%n $1", 2, { 0, 0 } },
-       { "action_public_channel", "%W * $0%K:%c$1%n $2", 3, { 0, 0, 0 } },
-
-       /* ---- */
-       { NULL, "CTCPs", 0 },
-
-       { "ctcp_reply", "CTCP %_$0%_ reply from %_$1%_%K:%n $2", 3, { 0, 0, 0 } },
-       { "ctcp_reply_channel", "CTCP %_$0%_ reply from %_$1%_ in channel %_$3%_%K:%n $2", 4, { 0, 0, 0, 0 } },
-       { "ctcp_ping_reply", "CTCP %_PING%_ reply from %_$0%_: $1.$2 seconds", 3, { 0, 2, 2 } },
-       { "ctcp_requested", "%g>>> %_$0%_ %K[%g$1%K] %grequested %_$2%_ from %_$3", 4, { 0, 0, 0, 0 } },
-
-       /* ---- */
-       { NULL, "Other server events", 0 },
-
-       { "online", "Users online: %_$0", 1, { 0 } },
-       { "pong", "PONG received from $0: $1", 2, { 0, 0 } },
-       { "wallops", "%WWALLOP%n $0: $1", 2, { 0, 0 } },
-       { "action_wallops", "%WWALLOP * $0%n $1", 2, { 0, 0 } },
-       { "error", "%_ERROR%_ $0", 1, { 0 } },
-       { "unknown_mode", "Unknown mode character $0", 1, { 0 } },
-       { "not_chanop", "You're not channel operator in $0", 1, { 0 } },
-
-       /* ---- */
-       { NULL, "Misc", 0 },
-
-       { "ignored", "Ignoring %_$1%_ from %_$0%_", 2, { 0, 0 } },
-       { "unignored", "Unignored %_$0%_", 1, { 0 } },
-       { "ignore_not_found", "%_$0%_ is not being ignored", 1, { 0 } },
-       { "ignore_no_ignores", "There are no ignores", 0 },
-       { "ignore_header", "Ignorance List:", 0 },
-       { "ignore_line", "$[-4]0 $1: $2 $3 $4", 4, { 1, 0, 0, 0 } },
-       { "ignore_footer", "", 0 },
-       { "talking_in", "You are now talking in %_$0%_", 1, { 0 } },
-       { "query_start", "Starting query with %_$0%_", 1, { 0 } },
-       { "no_query", "No query with %_$0%_", 1, { 0 } },
+FORMAT_REC fecommon_silc_formats[] = {
+       { MODULE_NAME, "SILC", 0 },
+
+       /* Channel related messages */
+       { NULL, "Channel", 0 },
+
+       { "channel_founder_you", "You are channel founder on {channel $0}", 1, { 0 } },
+       { "channel_founder", "channel founder on {channel $0} is: {channick_hilight $1}", 2, { 0, 0 } },
+       { "channel_topic", "Topic for {channel $0} is: $1", 2, { 0, 0 } },
+       { "channel_topic_not_set", "Topic for {channel $0} not set", 1, { 0 } },
+       { "cmode", "channel mode/{channel $0} {mode $1} by {nick $2}", 3, { 0, 0, 0 } },
+       { "cumode", "channel user mode/{channel $0}/{nick $1} {mode $2} by {nick $3}", 4, { 0, 0, 0, 0 } },
+       { "action", "{action $0-}", 2, { 0, 0 } },
+       { "notice", "{notice $0-}", 2, { 0, 0 } },
+       { "ownaction", "{ownaction $0-}", 2, { 0, 0 } },
+       { "ownnotice", "{ownnotice $0-}", 2, { 0, 0 } },
+       { "inviteban_list", "channel {channel $0} $1 list:", 2, { 0, 0 } },
+       { "inviteban_string", "$0 - {channel $1}: $2 {ban $3}", 4, { 1, 0, 0, 0 } },
+       { "inviteban_pubkey", "$0 - {channel $1}: $2 Fingerprint (SHA1) {ban $3} (Babbleprint (SHA1)  {ban $4})", 5, { 1, 0, 0, 0, 0 } },
+       { "inviteban_reget", "Resolving incomplete information found in the $0 list for {channel $1}.", 2, { 0, 0 } },
+       { "no_inviteban_list", "channel {channel $0} $1 list not set", 2, { 0, 0 } },
+       { "inviting", "Inviting {nick $0} to channel {channel $1}", 2, { 0, 0 } },
+       { "kicked_you", "You have been kicked off channel {channel $0} by {nick $1} ($2)", 3, { 0, 0, 0 } },
+       { "kicked", "{nick $0} has been kicked off channel {channel $1} by {nick $2} ($3)", 4, { 0, 0, 0, 0 } },
+       { "killed_you", "You have been killed from the SILC Network by {nick $0} ($1)", 2, { 0, 0 } },
+       { "killed", "{nick $0} has been killed from the SILC Network by {nick $1} ($2)", 3, { 0, 0, 0 } },
+       { "quieted", "You have been queited and cannot talk on {channel $0}", 1, { 0 } },
+       { "appears", "{channick $0} now appears as {channick_hilight $1}", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_hilight_signed", "{pubmsghinick_signed $0 $3 $1}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_hilight_unknown", "{pubmsghinick_unknown $0 $3 $1}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_hilight_failed", "{pubmsghinick_failed $0 $3 $1}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_me_signed", "{pubmsgmenick_signed $2 {menick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_me_unknown", "{pubmsgmenick_unknown $2 {menick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_me_failed", "{pubmsgmenick_failed $2 {menick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_signed", "{pubmsgnick_signed $2 {pubnick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_unknown", "{pubmsgnick_unknown $2 {pubnick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_failed", "{pubmsgnick_failed $2 {pubnick $0}}$1", 3, { 0, 0, 0 } },
+       { "pubmsg_hilight_channel_signed", "{pubmsghinick_signed $0 $4 $1{msgchannel $2}}$3", 5, { 0, 0, 0, 0, 0 } },
+       { "pubmsg_hilight_channel_unknown", "{pubmsghinick_unknown $0 $4 $1{msgchannel $2}}$3", 5, { 0, 0, 0, 0, 0 } },
+       { "pubmsg_hilight_channel_failed", "{pubmsghinick_failed $0 $4 $1{msgchannel $2}}$3", 5, { 0, 0, 0, 0, 0 } },
+       { "pubmsg_me_channel_signed", "{pubmsgmenick_signed $3 {menick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_me_channel_unknown", "{pubmsgmenick_unknown $3 {menick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_me_channel_failed", "{pubmsgmenick_failed $3 {menick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_channel_signed", "{pubmsgnick_signed $3 {pubnick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_channel_unknown", "{pubmsgnick_unknown $3 {pubnick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "pubmsg_channel_failed", "{pubmsgnick_failed $3 {pubnick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
+       { "msg_private_signed", "{privmsg_signed $0 $1}$2", 3, { 0, 0, 0 } },
+       { "msg_private_unknown", "{privmsg_unknown $0 $1}$2", 3, { 0, 0, 0 } },
+       { "msg_private_failed", "{privmsg_failed $0 $1}$2", 3, { 0, 0, 0 } },
+       { "msg_private_query_signed", "{privmsgnick_signed $0}$2", 3, { 0, 0, 0 } },
+       { "msg_private_query_unknown", "{privmsgnick_unknown $0}$2", 3, { 0, 0, 0 } },
+       { "msg_private_query_failed", "{privmsgnick_failed $0}$2", 3, { 0, 0, 0 } },
+       { "own_msg_signed", "{ownmsgnick_signed $2 {ownnick $0}}$1", 3, { 0, 0, 0 } },
+       { "own_msg_channel_signed", "{ownmsgnick_signed $3 {ownnick $0}{msgchannel $1}}$2", 4, { 0, 0, 0, 0 } },
        { "no_msgs_got", "You have not received a message from anyone yet", 0 },
        { "no_msgs_sent", "You have not sent a message to anyone yet", 0 },
+       { "own_msg_private_signed", "{ownprivmsg_signed msg $0}$1", 2, { 0, 0 } },
+       { "own_msg_private_query_signed", "{ownprivmsgnick_signed {ownprivnick $2}}$1", 3, { 0, 0, 0 } },
+
+       /* WHOIS, WHOWAS and USERS (alias WHO) messages */
+       { NULL, "Who Queries", 0 },
+
+       { "whois", "{nick $0} {nickhost $1@$2}%: nickname    : $3 ($4)", 5, { 0, 0, 0, 0, 0 } },
+       { "whois_realname",    " realname    : $0", 1, { 0 } },
+       { "whois_channels",    " channels    : $0", 1, { 0 } },
+       { "whois_modes",       " modes       : $0", 1, { 0 } },
+       { "whois_idle",        " idle        : $0", 1, { 0 } },
+       { "whois_fingerprint", " fingerprint : $0", 1, { 0 } },
+       { "whowas", "{nick $0} was {nickhost $1} ($2)", 3, { 0, 0, 0 } },
+       { "users_header", "Users on {channelhilight $0}", 1, { 0 } },
+       { "users", " %|{nick $[!20]0} $[!5]1 $2@$3 {comment {hilight $4}}", 5, { 0, 0, 0, 0, 0 } },
+
+       /* Key management and key agreement */
+       { NULL, "Key Management And Key Agreement", 0 },
+
+       { "channel_private_key_add", "Private key set to channel {channel $0}", 1, { 0 } },
+       { "channel_private_key_nomode", "Private key mode is not set on channel {channel $0}", 1, { 0 } },
+       { "channel_private_key_error", "Could not add private key to channel {channel $0}", 1, { 0 } },
+       { "channel_private_key_list", "Channel {channel $0} private keys%:  Cipher           Hmac             Key", 1, { 0 } },
+       { "channel_private_change", "You are using private key n:o $0 on {channel $1}", 2, { 1, 0 } },
+       { "private_key_list", "Private message keys%:  Client                         Cipher         Key", 0 },
+       { "private_key_list_nick", "Private message keys with {nick $0}%:  Client                         Cipher         Key", 1, { 0 } },
+       { "key_agreement", "Requesting key agreement with {nick $0}", 1, { 0 } },
+       { "key_agreement_request", "{nick $0} wants to perform key agreement", 1, { 0 } },
+       { "key_agreement_request_host", "{nick $0} wants to perform key agreement on {nickhost $1} port {hilight $2}", 3, { 0, 0, 0 } },
+       { "key_agreement_negotiate", "Starting key agreement with {nick $0}", 1, { 0 } },
+       { "key_agreement_privmsg", "The private messages with {nick $0} are now protected with private key", 1, { 0 } },
+       { "key_agreement_ok", "Key agreement completed successfully with {nick $0}", 1, { 0 } },
+       { "key_agreement_error", "Error occurred during key agreement with {nick $0}", 1, { 0 } },
+       { "key_agreement_failure", "Key agreement failed with {nick $0}", 1, { 0 } },
+       { "key_agreement_timeout", "Timeout during key agreement. The key agreement was not performed with {nick $0}", 1, { 0 } },
+       { "key_agreement_aborted", "Key agreement was aborted with {nick $0}", 1, { 0 } },
+       { "key_agreement_started", "Key agreement is already started with {nick $0}", 1, { 0 } },
+       { "key_agreement_denied", "Key agreement cannot be started with yourself", 0 },
+       { "pubkey_received", "Received {hilight $0} public key", 1, { 0 } },
+       { "pubkey_fingerprint", "Fingerprint and babbleprint for the {hilight $0} key are %: $1", 2, { 0, 0 } },
+       { "pubkey_babbleprint", " $0", 1, { 0 } },
+       { "pubkey_unsupported", "We don't support {hilight $0} public key type {hilight $1}", 2, { 0, 0 } },
+       { "pubkey_discard", "Will not accept the {hilight $0} key", 1, { 0 } },
+       { "pubkey_accept", "Would you like to accept the key (y/n)? ", 0 },
+       { "pubkey_accept_anyway", "Would you like to accept the key anyway (y/n)? ", 0 },
+       { "pubkey_could_not_load", "Could not load your local copy of the {hilight $0} key", 1, { 0 } },
+       { "pubkey_malformed", "Your local copy of the {hilight $0} key is malformed", 1, { 0 } },
+       { "pubkey_no_match", "{hilight $0} key does not match with your local copy", 1, { 0 } },
+       { "pubkey_maybe_expired", "It is possible that the key has expired or changed", 0 },
+       { "pubkey_mitm_attack", "It is also possible that someone is performing a man-in-the-middle attack", 0 },
+       { "pubkey_notkey", "Server did not return any public key", 0 },
+       { "pubkey_verified", "Verified successfully $0 {hilight $1}'s cached public key", 2, { 0, 0 } },
+       { "pubkey_notverified", "Could not verify $0 {hilight $1}'s public key", 2, { 0, 0 } },
+
+       /* Misc messages */
+       { NULL, "Misc", 0 },
+
+       { "server_oper", "You are now {hilight server operator}", 0 },
+       { "router_oper", "You are now {hilight SILC operator}", 0 },
+       { "list_header", "  Channel                              Users   Topic", 0 },
+       { "list", "  %|{channelhilight $[36]0} {hilight $[7]1} $2", 3, { 0, 0, 0 } },
+       { "bad_nick", "Bad nickname {hilight $0}", 1, { 0 } },
+       { "unknown_notify", "Unknown notify type {hilight $0}", 1, { 1 } },
+       { "ke_bad_version", "You are running an incompatible client version (it may be too old or too new) ", 0 },
+       { "ke_unsupported_public_key", "Remote does not trust/support your public key", 0 },
+       { "ke_unknown_group", "Remote does not support one of your proposed KE group", 0 },
+       { "ke_unknown_cipher", "Remote does not support one of your proposed cipher", 0 },
+       { "ke_unknown_pkcs", "Remote does not support one of your proposed PKCS", 0 },
+       { "ke_unknown_hash_function", "Remote does not support one of your proposed hash function", 0 },
+       { "ke_unknown_hmac", "Remote does not support one of your proposed HMAC", 0 },
+       { "ke_incorrect_signature", "Incorrect signature", 0 },
+       { "ke_invalid_cookie", "Invalid cookie", 0 },
+       { "auth_failed", "Authentication failed", 0 },
+       { "set_away", "You have been marked as being away (away message: {hilight $0})", 1, { 0 } },
+       { "unset_away", "You are no longer marked as being away", 0 },
+       { "auth_meth_unresolved", "Could not resolve authentication method to use, assume no authentication", 0 },
+       { "watch_present", "Watch: {nick $0} is now present in the network", 1, { 0 } },
+       { "watch_signoff", "Watch: {nick $0} left the network", 1, { 0 } },
+       { "watch_killed", "Watch: {nick $0} was killed from the network", 1, { 0 } },
+       { "watch_umode_change", "Watch: {nick $0} is now {hilight $1}", 2, { 0, 0 } },
+       { "watch_nick_change", "Watch: {nick $0} changed nickname to {nick $1}", 2, { 0, 0 } },
+       { "message_data", "{nick $0} sent \"{hilight $1}\" data message: cannot display", 2, { 0, 0 } },
+       { "stats", "$[25]0: {hilight $1}", 2, { 0, 0 } },
+
+       /* File transfer messages */
+       { NULL, "FileTransfer", 0 },
+
+       { "file_send", "File transfer request sent to {nick $0} for $1", 2, { 0, 0 } },
+       { "file_transmit", "Transmitting file {hilight $0} [$1kB] to {nick $2}", 3, { 0, 0, 0 } },
+       { "file_transmitted", "Transmitted file {hilight $0} [$1kB] to {nick $2} [{hilight $3kB/s}]", 4, { 0, 0, 0, 3 } },
+       { "file_receive", "Receiving file {hilight $0} [$1kB] from {nick $2}", 3, { 0, 0 } },
+       { "file_received", "Received file {hilight $0} [$1kB] from {nick $2} [{hilight $3kB/s}]", 4, { 0, 0, 0, 3 } },
+       { "file_request", "File transfer request from {nick $0}", 1, { 0 } },
+       { "file_request_host", "File transfer request from {nick $0} [$1 port $2]", 3, { 0, 0, 0 } },
+       { "file_key_exchange", "Negotiating keys for file transfer with {nick $0}", 1, { 0 } },
+       { "file_na", "No file transfers available", 0 },
+       { "file_client_na", "No file transfer offered by {nick $0}", 1, { 0 } },
+       { "file_show_header", "File transfers", 0 },
+       { "file_show_line", "  $0 $1: $2kB of $3kB ($4%%) - $5kB/s - $6", 7, { 0, 0, 1, 1, 1, 3, 0 } },
+       { "file_already_started", "File transfer already started with {nick $0}", 1, { 0  } },
+       { "file_error", "Error during file transfer with {nick $0}", 1, { 0 } },
+       { "file_error_no_such_file", "Error during file transfer with {nick $0}: $1: No such file", 2, { 0, 0 } },
+       { "file_error_permission_denied", "Error during file transfer with {nick $0}: Permission denied", 1, { 0 } },
+       { "file_close", "File transfer closed with {nick $0} - $1", 2, { 0, 0 } },
+
+       /* Requested Attributes */
+       { NULL, "Requested Attributes", 0 },
+
+       { "attr_header",      "Requested Attributes", 0 },
+       { "attr_footer",      "End of Requested Attributes", 0 },
+       { "attr_allow",       " Sending allowed    : $0", 1, { 0 } },
+       { "attr_vcard_file",  " Business card      : $0", 1, { 0 } },
+       { "attr_services",    " Services used      : $0", 1, { 0 } },
+       { "attr_service",     " Service            : port [$0] address [$1] logged in [$2] login time [$3] idle [$4]", 5, { 0, 0, 0, 0, 0 } },
+       { "attr_status_mood", " User's mood        : $0", 1, { 0 } },
+       { "attr_status_text", " User's message     : $0", 1, { 0 } },
+       { "attr_status_message",      " User's message     : $0", 1, { 0 } },
+       { "attr_status_message_file", " Message file       : $0", 1, { 0 } },
+       { "attr_preferred_language",  " Preferred language : $0", 1, { 0 } },
+       { "attr_preferred_contact",   " Preferred contact  : $0", 1, { 0 } },
+       { "attr_geolocation",    " Geolocation        : $0", 1, { 0 } },
+       { "attr_device_info",    " Device Info        : $0", 1, { 0 } },
+       { "attr_public_keys",    " Public keys        : $0", 1, { 0 } },
+       { "attr_timezone",       " Timezone           : $0", 1, { 0 } },
+       { "attr_timezone_allow", " Sending timezone   : $0", 1, { 0 } },
+       { "attr_user_sign_verified",  " User's signature   : verified successfully", 0 },
+       { "attr_user_sign_failed",    " User's signature   : {hilight signature failed}", 0 },
+       { "attr_user_sign_not_present",  " User's signature   : not available", 0 },
+       { "attr_server_sign_verified", " Server's signature : verified successfully", 0 },
+       { "attr_server_sign_failed",   " Server's signature : {hilight signature failed}", 0 },
+       { "attr_extension",            " Extension          : $0", 1, { 0 } },
+       { "attr_save", "Would you like to save the attributes (y/n)?", 0 },
+       { "attr_saved", "Requested Attributes located in {hilight $0}", 1, { 0 } },
 
        { NULL, NULL, 0 }
 };