Add irssi theme
37e5ca28c8bd1d5aacc16e507ce7e9dedb2b7aeb
1 parent
9fec8b33
.irssi/default.theme
added
+672 -0
| 1 | + | # When testing changes, the easiest way to reload the theme is with /RELOAD. |
|
| 2 | + | # This reloads the configuration file too, so if you did any changes remember |
|
| 3 | + | # to /SAVE it first. Remember also that /SAVE overwrites the theme file with |
|
| 4 | + | # old data so keep backups :) |
|
| 5 | + | ||
| 6 | + | # TEMPLATES: |
|
| 7 | + | ||
| 8 | + | # The real text formats that irssi uses are the ones you can find with |
|
| 9 | + | # /FORMAT command. Back in the old days all the colors and texts were mixed |
|
| 10 | + | # up in those formats, and it was really hard to change the colors since you |
|
| 11 | + | # might have had to change them in tens of different places. So, then came |
|
| 12 | + | # this templating system. |
|
| 13 | + | ||
| 14 | + | # Now the /FORMATs don't have any colors in them, and they also have very |
|
| 15 | + | # little other styling. Most of the stuff you need to change is in this |
|
| 16 | + | # theme file. If you can't change something here, you can always go back |
|
| 17 | + | # to change the /FORMATs directly, they're also saved in these .theme files. |
|
| 18 | + | ||
| 19 | + | # So .. the templates. They're those {blahblah} parts you see all over the |
|
| 20 | + | # /FORMATs and here. Their usage is simply {name parameter1 parameter2}. |
|
| 21 | + | # When irssi sees this kind of text, it goes to find "name" from abstracts |
|
| 22 | + | # block below and sets "parameter1" into $0 and "parameter2" into $1 (you |
|
| 23 | + | # can have more parameters of course). Templates can have subtemplates. |
|
| 24 | + | # Here's a small example: |
|
| 25 | + | # /FORMAT format hello {colorify {underline world}} |
|
| 26 | + | # abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } |
|
| 27 | + | # When irssi expands the templates in "format", the final string would be: |
|
| 28 | + | # hello %G%Uworld%U%n |
|
| 29 | + | # ie. underlined bright green "world" text. |
|
| 30 | + | # and why "$0-", why not "$0"? $0 would only mean the first parameter, |
|
| 31 | + | # $0- means all the parameters. With {underline hello world} you'd really |
|
| 32 | + | # want to underline both of the words, not just the hello (and world would |
|
| 33 | + | # actually be removed entirely). |
|
| 34 | + | ||
| 35 | + | # COLORS: |
|
| 36 | + | ||
| 37 | + | # You can find definitions for the color format codes in docs/formats.txt. |
|
| 38 | + | ||
| 39 | + | # There's one difference here though. %n format. Normally it means the |
|
| 40 | + | # default color of the terminal (white mostly), but here it means the |
|
| 41 | + | # "reset color back to the one it was in higher template". For example |
|
| 42 | + | # if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would |
|
| 43 | + | # print yellow "foo" (as set with %Y) but "bar" would be green, which was |
|
| 44 | + | # set at the beginning before the {foo} template. If there wasn't the %g |
|
| 45 | + | # at start, the normal behaviour of %n would occur. If you _really_ want |
|
| 46 | + | # to use the terminal's default color, use %N. |
|
| 47 | + | ||
| 48 | + | ############################################################################# |
|
| 49 | + | ||
| 50 | + | # default foreground color (%N) - -1 is the "default terminal color" |
|
| 51 | + | default_color = "-1"; |
|
| 52 | + | ||
| 53 | + | # print timestamp/servertag at the end of line, not at beginning |
|
| 54 | + | info_eol = "false"; |
|
| 55 | + | ||
| 56 | + | # these characters are automatically replaced with specified color |
|
| 57 | + | # (dark grey by default) |
|
| 58 | + | replaces = { "[]=" = "%K$*%n"; "·" = "%K$*%n"; }; |
|
| 59 | + | ||
| 60 | + | abstracts = { |
|
| 61 | + | ## |
|
| 62 | + | ## generic |
|
| 63 | + | ## |
|
| 64 | + | ||
| 65 | + | # text to insert at the beginning of each non-message line |
|
| 66 | + | line_start = ""; |
|
| 67 | + | ||
| 68 | + | # timestamp styling, grey |
|
| 69 | + | timestamp = "%K$*%n"; |
|
| 70 | + | ||
| 71 | + | # any kind of text that needs hilighting, default is to bold |
|
| 72 | + | hilight = "%_$*%_"; |
|
| 73 | + | ||
| 74 | + | # any kind of error message, default is bright red |
|
| 75 | + | error = "%R$*%n"; |
|
| 76 | + | ||
| 77 | + | # channel name is printed |
|
| 78 | + | channel = "%_$*%_"; |
|
| 79 | + | ||
| 80 | + | # nick is printed |
|
| 81 | + | nick = "%_$*%_"; |
|
| 82 | + | ||
| 83 | + | # nick host is printed |
|
| 84 | + | nickhost = "[$*]"; |
|
| 85 | + | ||
| 86 | + | # server name is printed |
|
| 87 | + | server = "%_$*%_"; |
|
| 88 | + | ||
| 89 | + | # some kind of comment is printed |
|
| 90 | + | comment = "($*)"; |
|
| 91 | + | ||
| 92 | + | # reason for something is printed (part, quit, kick, ..) |
|
| 93 | + | reason = "{comment $*}"; |
|
| 94 | + | ||
| 95 | + | # mode change is printed ([+o nick]) |
|
| 96 | + | mode = "{comment $*}"; |
|
| 97 | + | ||
| 98 | + | ## |
|
| 99 | + | ## channel specific messages |
|
| 100 | + | ## |
|
| 101 | + | ||
| 102 | + | # highlighted nick/host is printed (joins) |
|
| 103 | + | channick_hilight = "%C$*%n"; |
|
| 104 | + | chanhost_hilight = "{nickhost %c$*%n}"; |
|
| 105 | + | ||
| 106 | + | # nick/host is printed (parts, quits, etc.) |
|
| 107 | + | channick = "%c$*%n"; |
|
| 108 | + | chanhost = "{nickhost $*}"; |
|
| 109 | + | ||
| 110 | + | # highlighted channel name is printed |
|
| 111 | + | channelhilight = "%c$*%n"; |
|
| 112 | + | ||
| 113 | + | # ban/ban exception/invite list mask is printed |
|
| 114 | + | ban = "%c$*%n"; |
|
| 115 | + | ||
| 116 | + | ## |
|
| 117 | + | ## messages |
|
| 118 | + | ## |
|
| 119 | + | ||
| 120 | + | # the basic styling of how to print message, $0 = nick mode, $1 = nick |
|
| 121 | + | msgnick = "%K%n$0$1-%K%n│ %|"; |
|
| 122 | + | ||
| 123 | + | # message from you is printed. "ownnick" specifies the styling of the |
|
| 124 | + | # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the |
|
| 125 | + | # whole line. |
|
| 126 | + | ||
| 127 | + | # Example1: You want the message text to be green: |
|
| 128 | + | # ownmsgnick = "{msgnick $0 $1-}%g"; |
|
| 129 | + | # Example2.1: You want < and > chars to be yellow: |
|
| 130 | + | # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; |
|
| 131 | + | # (you'll also have to remove <> from replaces list above) |
|
| 132 | + | # Example2.2: But you still want to keep <> grey for other messages: |
|
| 133 | + | # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; |
|
| 134 | + | # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; |
|
| 135 | + | # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; |
|
| 136 | + | # ownprivmsgnick = "%K{msgnick $*%K}%n"; |
|
| 137 | + | # privmsgnick = "%K{msgnick %R$*%K}%n"; |
|
| 138 | + | ||
| 139 | + | # $0 = nick mode, $1 = nick |
|
| 140 | + | ownmsgnick = "{msgnick $0 $1-}"; |
|
| 141 | + | ownnick = "%_$*%n"; |
|
| 142 | + | ||
| 143 | + | # public message in channel, $0 = nick mode, $1 = nick |
|
| 144 | + | pubmsgnick = "{msgnick $0 $1-}"; |
|
| 145 | + | pubnick = "%0%W$*%n"; |
|
| 146 | + | ||
| 147 | + | # public message in channel meant for me, $0 = nick mode, $1 = nick |
|
| 148 | + | pubmsgmenick = "{msgnick $0 $1-}"; |
|
| 149 | + | menick = "%Y$*%n"; |
|
| 150 | + | ||
| 151 | + | # public highlighted message in channel |
|
| 152 | + | # $0 = highlight color, $1 = nick mode, $2 = nick |
|
| 153 | + | pubmsghinick = "{msgnick $1 $0$2-%n}"; |
|
| 154 | + | ||
| 155 | + | # channel name is printed with message |
|
| 156 | + | msgchannel = "%K%c$*%n"; |
|
| 157 | + | ||
| 158 | + | # private message, $0 = nick, $1 = host |
|
| 159 | + | privmsg = "[%R$0%K(%r$1-%K)%n] "; |
|
| 160 | + | ||
| 161 | + | # private message from you, $0 = "msg", $1 = target nick |
|
| 162 | + | ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; |
|
| 163 | + | ||
| 164 | + | # own private message in query |
|
| 165 | + | ownprivmsgnick = "{msgnick $*}"; |
|
| 166 | + | ownprivnick = "%_$*%n"; |
|
| 167 | + | ||
| 168 | + | # private message in query |
|
| 169 | + | privmsgnick = "{msgnick %R$*%n}"; |
|
| 170 | + | ||
| 171 | + | ## |
|
| 172 | + | ## Actions (/ME stuff) |
|
| 173 | + | ## |
|
| 174 | + | ||
| 175 | + | # used internally by this theme |
|
| 176 | + | action_core = "%_ * $*%n"; |
|
| 177 | + | ||
| 178 | + | # generic one that's used by most actions |
|
| 179 | + | action = "{action_core $*} "; |
|
| 180 | + | ||
| 181 | + | # own action, both private/public |
|
| 182 | + | ownaction = "{action $*}"; |
|
| 183 | + | ||
| 184 | + | # own action with target, both private/public |
|
| 185 | + | ownaction_target = "{action_core $0}%K:%c$1%n "; |
|
| 186 | + | ||
| 187 | + | # private action sent by others |
|
| 188 | + | pvtaction = "%_ (*) $*%n "; |
|
| 189 | + | pvtaction_query = "{action $*}"; |
|
| 190 | + | ||
| 191 | + | # public action sent by others |
|
| 192 | + | pubaction = "{action $*}"; |
|
| 193 | + | ||
| 194 | + | ||
| 195 | + | ## |
|
| 196 | + | ## other IRC events |
|
| 197 | + | ## |
|
| 198 | + | ||
| 199 | + | # whois |
|
| 200 | + | whois = "%# $[8]0 : $1-"; |
|
| 201 | + | ||
| 202 | + | # notices |
|
| 203 | + | ownnotice = "[%r$0%K(%R$1-%K)]%n "; |
|
| 204 | + | notice = "%K-%M$*%K-%n "; |
|
| 205 | + | pubnotice_channel = "%K%m$*"; |
|
| 206 | + | pvtnotice_host = "%K(%m$*%K)"; |
|
| 207 | + | servernotice = "%g!$*%n "; |
|
| 208 | + | ||
| 209 | + | # CTCPs |
|
| 210 | + | ownctcp = "[%r$0%K(%R$1-%K)] "; |
|
| 211 | + | ctcp = "%g$*%n"; |
|
| 212 | + | ||
| 213 | + | # wallops |
|
| 214 | + | wallop = "%_$*%n: "; |
|
| 215 | + | wallop_nick = "%n$*"; |
|
| 216 | + | wallop_action = "%_ * $*%n "; |
|
| 217 | + | ||
| 218 | + | # netsplits |
|
| 219 | + | netsplit = "%R$*%n"; |
|
| 220 | + | netjoin = "%C$*%n"; |
|
| 221 | + | ||
| 222 | + | # /names list |
|
| 223 | + | names_prefix = ""; |
|
| 224 | + | names_nick = "[%_$0%_$1-] "; |
|
| 225 | + | names_nick_op = "{names_nick $*}"; |
|
| 226 | + | names_nick_halfop = "{names_nick $*}"; |
|
| 227 | + | names_nick_voice = "{names_nick $*}"; |
|
| 228 | + | names_users = "[%g$*%n]"; |
|
| 229 | + | names_channel = "%G$*%n"; |
|
| 230 | + | ||
| 231 | + | # DCC |
|
| 232 | + | dcc = "%g$*%n"; |
|
| 233 | + | dccfile = "%_$*%_"; |
|
| 234 | + | ||
| 235 | + | # DCC chat, own msg/action |
|
| 236 | + | dccownmsg = "[%r$0%K($1-%K)%n] "; |
|
| 237 | + | dccownnick = "%R$*%n"; |
|
| 238 | + | dccownquerynick = "%_$*%n"; |
|
| 239 | + | dccownaction = "{action $*}"; |
|
| 240 | + | dccownaction_target = "{action_core $0}%K:%c$1%n "; |
|
| 241 | + | ||
| 242 | + | # DCC chat, others |
|
| 243 | + | dccmsg = "[%G$1-%K(%g$0%K)%n] "; |
|
| 244 | + | dccquerynick = "%G$*%n"; |
|
| 245 | + | dccaction = "%_ (*dcc*) $*%n %|"; |
|
| 246 | + | ||
| 247 | + | ## |
|
| 248 | + | ## statusbar |
|
| 249 | + | ## |
|
| 250 | + | ||
| 251 | + | # default background for all statusbars. You can also give |
|
| 252 | + | # the default foreground color for statusbar items. |
|
| 253 | + | sb_background = "%0%K"; |
|
| 254 | + | ||
| 255 | + | # default backround for "default" statusbar group |
|
| 256 | + | #sb_default_bg = "%4"; |
|
| 257 | + | # background for prompt / input line |
|
| 258 | + | sb_prompt_bg = "%n"; |
|
| 259 | + | # background for info statusbar |
|
| 260 | + | sb_info_bg = "%8"; |
|
| 261 | + | # background for topicbar (same default) |
|
| 262 | + | #sb_topic_bg = "%4"; |
|
| 263 | + | ||
| 264 | + | # text at the beginning of statusbars. sb-item already puts |
|
| 265 | + | # space there,so we don't use anything by default. |
|
| 266 | + | sbstart = ""; |
|
| 267 | + | # text at the end of statusbars. Use space so that it's never |
|
| 268 | + | # used for anything. |
|
| 269 | + | sbend = " "; |
|
| 270 | + | ||
| 271 | + | topicsbstart = "{sbstart $*}"; |
|
| 272 | + | topicsbend = "{sbend $*}"; |
|
| 273 | + | ||
| 274 | + | prompt = "$* "; |
|
| 275 | + | ||
| 276 | + | sb = "$* · "; |
|
| 277 | + | sbmode = "(+$*)"; |
|
| 278 | + | sbaway = " (%GzZzZ%n)"; |
|
| 279 | + | sbservertag = ":$0 (change with ^X)"; |
|
| 280 | + | sbnickmode = "$0"; |
|
| 281 | + | ||
| 282 | + | # activity in statusbar |
|
| 283 | + | ||
| 284 | + | # ',' separator |
|
| 285 | + | sb_act_sep = "$*"; |
|
| 286 | + | # normal text |
|
| 287 | + | sb_act_text = "%w$*%n"; |
|
| 288 | + | # public message |
|
| 289 | + | sb_act_msg = "%W$*%n"; |
|
| 290 | + | # hilight |
|
| 291 | + | sb_act_hilight = "%M$*%n"; |
|
| 292 | + | # hilight with specified color, $0 = color, $1 = text |
|
| 293 | + | sb_act_hilight_color = "$0$1-%n"; |
|
| 294 | + | }; |
|
| 295 | + | ||
| 296 | + | formats = { |
|
| 297 | + | "fe-common/core" = { |
|
| 298 | + | query_start = "Starting query in {server $1} with {nick $0}"; |
|
| 299 | + | join = " %c* │%n {channick_hilight $0} %chas joined {msgchannel $2}"; |
|
| 300 | + | part = " %c* │%n {channick $0}"; |
|
| 301 | + | quit = " %c* │%n {channick $0} %chas left {reason $2}"; |
|
| 302 | + | quit_once = "{channel $3} {channick $0} {chanhost $1} quit {reason $2}"; |
|
| 303 | + | nick_changed = "{channick $[-21]0} %c│%n has changed their nick to {channick_hilight $1}"; |
|
| 304 | + | line_start_irssi = "{line_start}{hilight Irssi} %W│%n "; |
|
| 305 | + | ||
| 306 | + | own_msg = "{ownmsgnick {ownnick %_%c$2 %W%_$[-19]0 }}$1"; |
|
| 307 | + | own_msg_channel = "{ownmsgnick {ownnick $[-19]0$3}{msgchannel $1}}$2"; |
|
| 308 | + | pubmsg_me = "{pubmsgmenick {menick $[-21]0}$2}$1"; |
|
| 309 | + | pubmsg_me_channel = "{pubmsgmenick {menick $[-21]0$3}{msgchannel $1}}$2"; |
|
| 310 | + | pubmsg_hilight = "{pubmsghinick $0 $0 $[-21]1$3%n}$2"; |
|
| 311 | + | pubmsg_hilight_channel = "{pubmsghinick $0 $[-21]1$4{msgchannel $2}}$3"; |
|
| 312 | + | pubmsg = "{pubmsgnick {pubnick %w$[-21]0}%_%K$2}$1"; |
|
| 313 | + | pubmsg_channel = "{pubmsgnick {pubnick %m$[-21]0}$2}$1"; |
|
| 314 | + | ||
| 315 | + | line_start = "{line_start}"; |
|
| 316 | + | timestamp = "{timestamp $Z} "; |
|
| 317 | + | servertag = "$[-10]0 %W|%n "; |
|
| 318 | + | daychange = "Day changed to %%d %%b %%Y"; |
|
| 319 | + | talking_with = "You are now talking with {nick $0}"; |
|
| 320 | + | refnum_too_low = "Window number must be greater than 1"; |
|
| 321 | + | error_server_sticky = "Window's server is sticky and it cannot be changed without -unsticky option"; |
|
| 322 | + | set_server_sticky = "Window's server set sticky"; |
|
| 323 | + | unset_server_sticky = "Window's server isn't sticky anymore"; |
|
| 324 | + | window_name_not_unique = "Window names must be unique"; |
|
| 325 | + | window_level = "Window level is now $0"; |
|
| 326 | + | windowlist_header = "Ref Name Active item Server Level"; |
|
| 327 | + | windowlist_line = "$[3]0 %|$[20]1 $[15]2 $[15]3 $4"; |
|
| 328 | + | windowlist_footer = ""; |
|
| 329 | + | windows_layout_saved = "Layout of windows is now remembered next time you start irssi"; |
|
| 330 | + | windows_layout_reset = "Layout of windows reset to defaults"; |
|
| 331 | + | window_info_header = ""; |
|
| 332 | + | window_info_footer = ""; |
|
| 333 | + | window_info_refnum = "Window : {hilight #$0}"; |
|
| 334 | + | window_info_refnum_sticky = "Window : {hilight #$0 (sticky)}"; |
|
| 335 | + | window_info_name = "Name : $0"; |
|
| 336 | + | window_info_history = "History : $0"; |
|
| 337 | + | window_info_size = "Size : $0x$1"; |
|
| 338 | + | window_info_level = "Level : $0"; |
|
| 339 | + | window_info_server = "Server : $0"; |
|
| 340 | + | window_info_server_sticky = "Server : $0 (sticky)"; |
|
| 341 | + | window_info_theme = "Theme : $0$1"; |
|
| 342 | + | window_info_bound_items_header = "Bounds : {hilight Name Server tag}"; |
|
| 343 | + | window_info_bound_item = " : $[!30]0 $[!15]1 $2"; |
|
| 344 | + | window_info_bound_items_footer = ""; |
|
| 345 | + | window_info_items_header = "Items : {hilight Name Server tag}"; |
|
| 346 | + | window_info_item = " $[7]0: $[!30]1 $2"; |
|
| 347 | + | window_info_items_footer = ""; |
|
| 348 | + | looking_up = "Looking up {server $0}"; |
|
| 349 | + | connecting = "Connecting to {server $0} [$1] port {hilight $2}"; |
|
| 350 | + | connection_established = "Connection to {server $0} established"; |
|
| 351 | + | cant_connect = "Unable to connect server {server $0} port {hilight $1} {reason $2}"; |
|
| 352 | + | connection_lost = "Connection lost to {server $0}"; |
|
| 353 | + | lag_disconnected = "No PONG reply from server {server $0} in $1 seconds, disconnecting"; |
|
| 354 | + | disconnected = "Disconnected from {server $0} {reason $1}"; |
|
| 355 | + | server_quit = "Disconnecting from server {server $0}: {reason $1}"; |
|
| 356 | + | server_changed = "Changed to {hilight $2} server {server $1}"; |
|
| 357 | + | unknown_server_tag = "Unknown server tag {server $0}"; |
|
| 358 | + | no_connected_servers = "Not connected to any servers"; |
|
| 359 | + | server_list = "{server $0}: $1:$2 ($3)"; |
|
| 360 | + | server_lookup_list = "{server $0}: $1:$2 ($3) (connecting...)"; |
|
| 361 | + | server_reconnect_list = "{server $0}: $1:$2 ($3) ($5 left before reconnecting)"; |
|
| 362 | + | server_reconnect_removed = "Removed reconnection to server {server $0} port {hilight $1}"; |
|
| 363 | + | server_reconnect_not_found = "Reconnection tag {server $0} not found"; |
|
| 364 | + | setupserver_added = "Server {server $0} saved"; |
|
| 365 | + | setupserver_removed = "Server {server $0} removed"; |
|
| 366 | + | setupserver_not_found = "Server {server $0} not found"; |
|
| 367 | + | your_nick = "Your nickname is {nick $0}"; |
|
| 368 | + | kick = "{channick $[-16]0} %W<%n kicked from {channel $1} by {nick $2} {reason $3}"; |
|
| 369 | + | invite = "{nick $0} invites you to {channel $1}"; |
|
| 370 | + | not_invited = "You have not been invited to a channel!"; |
|
| 371 | + | new_topic = "{nick $[-16]0} %W|%n changes topic of {channel $1} to: $2"; |
|
| 372 | + | topic_unset = "{nick $[-16]0} %W|%n unsets topic on {channel $1}"; |
|
| 373 | + | your_nick_changed = "You're now known as {nick $1}"; |
|
| 374 | + | talking_in = "You are now talking in {channel $0}"; |
|
| 375 | + | not_in_channels = "You are not on any channels"; |
|
| 376 | + | current_channel = "Current channel {channel $0}"; |
|
| 377 | + | names = "{names_users Users {names_channel $0}} {comment $1 total}"; |
|
| 378 | + | names_prefix = "{names_prefix $0}"; |
|
| 379 | + | names_nick_op = "{names_nick_op $0 $1}"; |
|
| 380 | + | names_nick_halfop = "{names_nick_halfop $0 $1}"; |
|
| 381 | + | names_nick_voice = "{names_nick_voice $0 $1}"; |
|
| 382 | + | names_nick = "{names_nick $0 $1}"; |
|
| 383 | + | endofnames = "{channel $0}: Total of {hilight $1} nicks {comment {hilight $2} ops, {hilight $3} halfops, {hilight $4} voices, {hilight $5} normal}"; |
|
| 384 | + | chanlist_header = "You are on the following channels:"; |
|
| 385 | + | chanlist_line = "{channel $[-10]0} %|+$1 ($2): $3"; |
|
| 386 | + | chansetup_not_found = "Channel {channel $0} not found"; |
|
| 387 | + | chansetup_added = "Channel {channel $0} saved"; |
|
| 388 | + | chansetup_removed = "Channel {channel $0} removed"; |
|
| 389 | + | chansetup_header = "Channel Network Password Settings"; |
|
| 390 | + | chansetup_line = "{channel $[15]0} %|$[10]1 $[10]2 $3"; |
|
| 391 | + | chansetup_footer = ""; |
|
| 392 | + | channel_move_notify = "{channel $0} is already joined in window $1, use \"/WINDOW ITEM MOVE $0\" to move it to this window"; |
|
| 393 | + | own_msg_private = "{ownprivmsg msg $0}$1"; |
|
| 394 | + | own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-16]2}}$1"; |
|
| 395 | + | msg_private = "{privmsg $0 $1}$2"; |
|
| 396 | + | msg_private_query = "{privmsgnick $[-16]0}$2"; |
|
| 397 | + | no_msgs_got = "You have not received a message from anyone yet"; |
|
| 398 | + | no_msgs_sent = "You have not sent a message to anyone yet"; |
|
| 399 | + | query_stop = "Closing query with {nick $0}"; |
|
| 400 | + | no_query = "No query with {nick $0}"; |
|
| 401 | + | query_server_changed = "Query with {nick $0} changed to server {server $1}"; |
|
| 402 | + | query_move_notify = "Query with {nick $0} is already created to window $1, use \"/WINDOW ITEM MOVE $0\" to move it to this window"; |
|
| 403 | + | hilight_header = "Highlights:"; |
|
| 404 | + | hilight_line = "$[-4]0 $1 $2 $3$4$5"; |
|
| 405 | + | hilight_footer = ""; |
|
| 406 | + | hilight_not_found = "Highlight not found: $0"; |
|
| 407 | + | hilight_removed = "Highlight removed: $0"; |
|
| 408 | + | alias_added = "Alias $0 added"; |
|
| 409 | + | alias_removed = "Alias $0 removed"; |
|
| 410 | + | alias_not_found = "No such alias: $0"; |
|
| 411 | + | aliaslist_header = "Aliases:"; |
|
| 412 | + | aliaslist_line = "$[10]0 $1"; |
|
| 413 | + | aliaslist_footer = ""; |
|
| 414 | + | log_opened = "Log file {hilight $0} opened"; |
|
| 415 | + | log_closed = "Log file {hilight $0} closed"; |
|
| 416 | + | log_create_failed = "Couldn't create log file {hilight $0}: $1"; |
|
| 417 | + | log_locked = "Log file {hilight $0} is locked, probably by another running Irssi"; |
|
| 418 | + | log_not_open = "Log file {hilight $0} not open"; |
|
| 419 | + | log_started = "Started logging to file {hilight $0}"; |
|
| 420 | + | log_stopped = "Stopped logging to file {hilight $0}"; |
|
| 421 | + | log_list_header = "Logs:"; |
|
| 422 | + | log_list = "$0 $1: $2 $3$4"; |
|
| 423 | + | log_list_footer = ""; |
|
| 424 | + | windowlog_file = "Window LOGFILE set to $0"; |
|
| 425 | + | windowlog_file_logging = "Can't change window's logfile while log is on"; |
|
| 426 | + | no_away_msgs = "No new messages in awaylog"; |
|
| 427 | + | away_msgs = "{hilight $1} new messages in awaylog:"; |
|
| 428 | + | module_header = "Module Type Submodules"; |
|
| 429 | + | module_line = "$[!20]0 $[7]1 $2"; |
|
| 430 | + | module_footer = ""; |
|
| 431 | + | module_already_loaded = "Module {hilight $0/$1} already loaded"; |
|
| 432 | + | module_not_loaded = "Module {hilight $0/$1} is not loaded"; |
|
| 433 | + | module_load_error = "Error loading module {hilight $0/$1}: $2"; |
|
| 434 | + | module_invalid = "{hilight $0/$1} isn't Irssi module"; |
|
| 435 | + | module_loaded = "Loaded module {hilight $0/$1}"; |
|
| 436 | + | module_unloaded = "Unloaded module {hilight $0/$1}"; |
|
| 437 | + | command_unknown = "Unknown command: $0"; |
|
| 438 | + | command_ambiguous = "Ambiguous command: $0"; |
|
| 439 | + | option_unknown = "Unknown option: $0"; |
|
| 440 | + | option_ambiguous = "Ambiguous option: $0"; |
|
| 441 | + | option_missing_arg = "Missing required argument for: $0"; |
|
| 442 | + | not_enough_params = "Not enough parameters given"; |
|
| 443 | + | not_connected = "Not connected to server"; |
|
| 444 | + | not_joined = "Not joined to any channel"; |
|
| 445 | + | chan_not_found = "Not joined to such channel"; |
|
| 446 | + | chan_not_synced = "Channel not fully synchronized yet, try again after a while"; |
|
| 447 | + | illegal_proto = "Command isn't designed for the chat protocol of the active server"; |
|
| 448 | + | not_good_idea = "Doing this is not a good idea. Add -YES if you really mean it"; |
|
| 449 | + | theme_saved = "Theme saved to $0"; |
|
| 450 | + | theme_save_failed = "Error saving theme to $0: $1"; |
|
| 451 | + | theme_not_found = "Theme {hilight $0} not found"; |
|
| 452 | + | theme_changed = "Using now theme {hilight $0} ($1)"; |
|
| 453 | + | window_theme = "Using theme {hilight $0} in this window"; |
|
| 454 | + | window_theme_default = "No theme is set for this window"; |
|
| 455 | + | window_theme_changed = "Using now theme {hilight $0} ($1) in this window"; |
|
| 456 | + | window_theme_removed = "Removed theme from this window"; |
|
| 457 | + | format_title = "%:[{hilight $0}] - [{hilight $1}]%:"; |
|
| 458 | + | format_subtitle = "[{hilight $0}]"; |
|
| 459 | + | format_item = "$0 = $1"; |
|
| 460 | + | ignored = "Ignoring {hilight $1} from {nick $0}"; |
|
| 461 | + | unignored = "Unignored {nick $0}"; |
|
| 462 | + | ignore_not_found = "{nick $0} is not being ignored"; |
|
| 463 | + | ignore_no_ignores = "There are no ignores"; |
|
| 464 | + | ignore_header = "Ignorance List:"; |
|
| 465 | + | ignore_line = "$[-4]0 $1: $2 $3 $4"; |
|
| 466 | + | ignore_footer = ""; |
|
| 467 | + | unknown_chat_protocol = "Unknown chat protocol: $0"; |
|
| 468 | + | unknown_chatnet = "Unknown chat network: $0 (create it with /IRCNET ADD)"; |
|
| 469 | + | not_toggle = "Value must be either ON, OFF or TOGGLE"; |
|
| 470 | + | perl_error = "Perl error: $0"; |
|
| 471 | + | bind_key = "$[!20]0 $1 $2"; |
|
| 472 | + | bind_unknown_id = "Unknown bind action: $0"; |
|
| 473 | + | config_saved = "Saved configuration to file $0"; |
|
| 474 | + | config_reloaded = "Reloaded configuration"; |
|
| 475 | + | config_modified = "Configuration file was modified since irssi was last started - do you want to overwrite the possible changes?"; |
|
| 476 | + | glib_error = "{error GLib $0} $1"; |
|
| 477 | + | overwrite_config = "Overwrite config (y/N)?"; |
|
| 478 | + | set_title = "[{hilight $0}]"; |
|
| 479 | + | set_item = "$0 = $1"; |
|
| 480 | + | set_unknown = "Unknown setting $0"; |
|
| 481 | + | set_not_boolean = "Setting {hilight $0} isn't boolean, use /SET"; |
|
| 482 | + | translation_not_found = "Error opening translation table file $0: $1"; |
|
| 483 | + | translation_file_error = "Error parsing translation table file $0"; |
|
| 484 | + | }; |
|
| 485 | + | "fe-common/irc/dcc" = { |
|
| 486 | + | dcc_list_header = "{line_start_irssi}{dcc DCC connections:}"; |
|
| 487 | + | dcc_list_footer = "{line_start_irssi}{dcc ];}"; |
|
| 488 | + | own_dcc = "{dccownmsg dcc {dccownnick $1}}$2"; |
|
| 489 | + | own_dcc_action = "{dccownaction_target $0 $1}$2"; |
|
| 490 | + | own_dcc_action_query = "{dccownaction $0}$2"; |
|
| 491 | + | own_dcc_ctcp = "{ownctcp ctcp $0}$1 $2"; |
|
| 492 | + | dcc_msg = "{dccmsg dcc $0}$1"; |
|
| 493 | + | action_dcc = "{dccaction $0}$1"; |
|
| 494 | + | action_dcc_query = "{dccaction $0}$1"; |
|
| 495 | + | own_dcc_query = "{ownmsgnick {dccownquerynick $0}}$2"; |
|
| 496 | + | dcc_msg_query = "{privmsgnick $0}$1"; |
|
| 497 | + | dcc_ctcp = "{dcc >>> DCC CTCP {hilight $1} received from {hilight $0}: $2}"; |
|
| 498 | + | dcc_chat = "{dcc DCC CHAT from {nick $0} [$1 port $2]}"; |
|
| 499 | + | dcc_chat_channel = "{dcc DCC CHAT from {nick $0} [$1 port $2] requested in channel {channel $3}}"; |
|
| 500 | + | dcc_chat_not_found = "{dcc No DCC CHAT connection open to {nick $0}}"; |
|
| 501 | + | dcc_chat_connected = "{dcc DCC CHAT connection with {nick $0} [$1 port $2] established}"; |
|
| 502 | + | dcc_chat_disconnected = "{dcc DCC lost chat to {nick $0}}"; |
|
| 503 | + | dcc_send = "{dcc DCC SEND from {nick $0} [$1 port $2]: $3 [$4 bytes]}"; |
|
| 504 | + | dcc_send_channel = "{dcc DCC SEND from {nick $0} [$1 port $2]: $3 [$4 bytes] requested in channel {channel $5}}"; |
|
| 505 | + | dcc_send_exists = "{dcc DCC already sending file {dccfile $0} for {nick $1}}"; |
|
| 506 | + | dcc_send_not_found = "{dcc DCC not sending file {dccfile $1} to {nick $0}}"; |
|
| 507 | + | dcc_send_file_open_error = "{dcc DCC can't open file {dccfile $0}: $1}"; |
|
| 508 | + | dcc_send_connected = "{dcc DCC sending file {dccfile $0} for {nick $1} [$2 port $3]}"; |
|
| 509 | + | dcc_send_complete = "{dcc DCC sent file {dccfile $0} [{hilight $1}kB] for {nick $2} in {hilight $3} secs [{hilight $4kB/s}]}"; |
|
| 510 | + | dcc_send_aborted = "{dcc DCC aborted sending file {dccfile $0} for {nick $1}}"; |
|
| 511 | + | dcc_get_not_found = "{dcc DCC no file offered by {nick $0}}"; |
|
| 512 | + | dcc_get_connected = "{dcc DCC receiving file {dccfile $0} from {nick $1} [$2 port $3]}"; |
|
| 513 | + | dcc_get_complete = "{dcc DCC received file {dccfile $0} [$1kB] from {nick $2} in {hilight $3} secs [$4kB/s]}"; |
|
| 514 | + | dcc_get_aborted = "{dcc DCC aborted receiving file {dccfile $0} from {nick $1}}"; |
|
| 515 | + | dcc_unknown_ctcp = "{dcc DCC unknown ctcp {hilight $0} from {nick $1} [$2]}"; |
|
| 516 | + | dcc_unknown_reply = "{dcc DCC unknown reply {hilight $0} from {nick $1} [$2]}"; |
|
| 517 | + | dcc_unknown_type = "{dcc DCC unknown type {hilight $0}}"; |
|
| 518 | + | dcc_invalid_ctcp = "{dcc DCC received CTCP {hilight $0} with invalid parameters from {nick $1}}"; |
|
| 519 | + | dcc_connect_error = "{dcc DCC can't connect to {hilight $0} port {hilight $1}}"; |
|
| 520 | + | dcc_cant_create = "{dcc DCC can't create file {dccfile $0}}"; |
|
| 521 | + | dcc_rejected = "{dcc DCC $0 was rejected by {nick $1} [{hilight $2}]}"; |
|
| 522 | + | dcc_request_send = "{dcc DCC $0 request sent to {nick $1}: $2"; |
|
| 523 | + | dcc_close = "{dcc DCC $0 close for {nick $1} [{hilight $2}]}"; |
|
| 524 | + | dcc_lowport = "{dcc Warning: Port sent with DCC request is a lowport ({hilight $0, $1}) - this isn't normal. It is possible the address/port is faked (or maybe someone is just trying to bypass firewall)}"; |
|
| 525 | + | dcc_list_line_chat = "%WChat ->%n {dcc $0 $1}"; |
|
| 526 | + | dcc_list_line_file = "%WFile ->%n {dcc $0 $1 : $2k of $3k ($4%%) - $5kB/s - $6}"; |
|
| 527 | + | }; |
|
| 528 | + | "fe-text" = { |
|
| 529 | + | lastlog_too_long = "/LASTLOG would print $0 lines. If you really want to print all these lines use -force option."; |
|
| 530 | + | lastlog_count = "{hilight Lastlog}: $0 lines"; |
|
| 531 | + | lastlog_start = "{hilight Lastlog}:"; |
|
| 532 | + | lastlog_end = "{hilight End of Lastlog}"; |
|
| 533 | + | refnum_not_found = "Window number $0 not found"; |
|
| 534 | + | window_too_small = "Not enough room to resize this window"; |
|
| 535 | + | cant_hide_last = "You can't hide the last window"; |
|
| 536 | + | cant_hide_sticky_windows = "You can't hide sticky windows (use /WINDOW STICK OFF)"; |
|
| 537 | + | cant_show_sticky_windows = "You can't show sticky windows (use /WINDOW STICK OFF)"; |
|
| 538 | + | window_not_sticky = "Window is not sticky"; |
|
| 539 | + | window_set_sticky = "Window set sticky"; |
|
| 540 | + | window_unset_sticky = "Window is not sticky anymore"; |
|
| 541 | + | window_info_sticky = "Sticky : $0"; |
|
| 542 | + | window_scroll = "Window scroll mode is now $0"; |
|
| 543 | + | window_scroll_unknown = "Unknown scroll mode $0, must be ON, OFF or DEFAULT"; |
|
| 544 | + | }; |
|
| 545 | + | "fe-common/irc" = { |
|
| 546 | + | own_action = " %n*%n │ {channick_hilight $0} $1"; |
|
| 547 | + | action_public = " %_*%n │ {channick_hilight $0} $1"; |
|
| 548 | + | chanmode_change = "{nick $[-21]2} │ {mode $1} on {channelhilight $0}"; |
|
| 549 | + | ||
| 550 | + | channel_synced = "Join to {channel $0} was synced in {hilight $1} secs"; |
|
| 551 | + | ||
| 552 | + | netsplit = "{netsplit Netsplit} %W<%n {server $0} %W<%n-%W>%n {server $1} quits: $2"; |
|
| 553 | + | netsplit_more = "{netsplit Netsplit} %W<%n {server $0} %W<%n-%W>%n {server $1} quits: $2 (%K+$3 more%n)"; |
|
| 554 | + | netsplit_join = "{netjoin Netsplit} %W>%n $0"; |
|
| 555 | + | netsplit_join_more = "{netjoin Netsplit} %W>%n $0 (%K+$1 more%n)"; |
|
| 556 | + | no_netsplits = "There are no net splits"; |
|
| 557 | + | netsplits_header = "Nick Channel Server Splitted server"; |
|
| 558 | + | netsplits_line = "$[9]0 $[10]1 $[20]2 $3"; |
|
| 559 | + | netsplits_footer = ""; |
|
| 560 | + | ircnet_added = "Ircnet $0 saved"; |
|
| 561 | + | ircnet_removed = "Ircnet $0 removed"; |
|
| 562 | + | ircnet_not_found = "Ircnet $0 not found"; |
|
| 563 | + | ircnet_header = "Ircnets:"; |
|
| 564 | + | ircnet_line = "$0: $1"; |
|
| 565 | + | ircnet_footer = ""; |
|
| 566 | + | setupserver_header = "Server Port Network Settings"; |
|
| 567 | + | setupserver_line = "%|$[!20]0 $[5]1 $[10]2 $3"; |
|
| 568 | + | setupserver_footer = ""; |
|
| 569 | + | joinerror_toomany = "Join fails: {channel $0} (You have joined to too many channels)"; |
|
| 570 | + | joinerror_full = "Join fails: {channel $0} (Channel is full)"; |
|
| 571 | + | joinerror_invite = "Join fails: {channel $0} (You must be invited)"; |
|
| 572 | + | joinerror_banned = "Join fails: {channel $0} (You are banned)"; |
|
| 573 | + | joinerror_bad_key = "Join fails: {channel $0} (Wrong channel key)"; |
|
| 574 | + | joinerror_bad_mask = "Join fails: {channel $0} (Bad channel mask)"; |
|
| 575 | + | joinerror_unavail = "Join fails: {channel $0} (Channel is temporarily unavailable)"; |
|
| 576 | + | joinerror_duplicate = "Channel {channel $0} already exists - cannot create it"; |
|
| 577 | + | channel_rejoin = "Channel {channel $0} is temporarily unavailable. Setting up a rejoin, to not rejoin, use /rmrejoins."; |
|
| 578 | + | inviting = "Inviting {nick $0} to {channel $1}"; |
|
| 579 | + | channel_created = "Channel {channelhilight $0} created $1"; |
|
| 580 | + | url = "Home page for {channelhilight $0}: $1"; |
|
| 581 | + | topic = "Topic for {channelhilight $0}: $1"; |
|
| 582 | + | no_topic = "No topic set for {channelhilight $0}"; |
|
| 583 | + | topic_info = "Topic set by {nick $0} {comment $1}"; |
|
| 584 | + | server_chanmode_change = "{netsplit ServerMode}/{channelhilight $0} {mode $1} by {nick $2}"; |
|
| 585 | + | channel_mode = "mode/{channelhilight $0} {mode $1}"; |
|
| 586 | + | bantype = "Ban type changed to {channel $0}"; |
|
| 587 | + | no_bans = "No bans in channel {channel $0}"; |
|
| 588 | + | banlist = "$0 - {channel $1}: ban {ban $2}"; |
|
| 589 | + | banlist_long = "$0 - {channel $1}: ban {ban $2} {comment by {nick $3}, $4 secs ago}"; |
|
| 590 | + | ebanlist = "{channel $0}: ban exception {ban $1}"; |
|
| 591 | + | ebanlist_long = "{channel $0}: ban exception {ban $1} {comment by {nick $2}, $3 secs ago}"; |
|
| 592 | + | no_invitelist = "Invite list is empty in channel {channel $0}"; |
|
| 593 | + | invitelist = "{channel $0}: invite {ban $1}"; |
|
| 594 | + | no_such_channel = "{channel $0}: No such channel"; |
|
| 595 | + | usermode_change = "Mode change {mode $0} for user {nick $1}"; |
|
| 596 | + | user_mode = "Your user mode is {mode $0}"; |
|
| 597 | + | away = "You have been marked as being away"; |
|
| 598 | + | unaway = "You are no longer marked as being away"; |
|
| 599 | + | nick_away = "{nick $0} is away: $1"; |
|
| 600 | + | no_such_nick = "{nick $0}: No such nick/channel"; |
|
| 601 | + | nick_in_use = "Nick {nick $0} is already in use"; |
|
| 602 | + | nick_unavailable = "Nick {nick $0} is temporarily unavailable"; |
|
| 603 | + | your_nick_owned = "Your nick is owned by {nick $3} {comment $1@$2}"; |
|
| 604 | + | whois = "{nick $0} {nickhost $1@$2}%:{whois ircname $3}"; |
|
| 605 | + | whowas = "{nick $0} {nickhost $1@$2}%:{whois ircname $3}"; |
|
| 606 | + | whois_idle = "{whois idle %|$1 days $2 hours $3 mins $4 secs}"; |
|
| 607 | + | whois_idle_signon = "{whois idle %|$1 days $2 hours $3 mins $4 secs {comment signon: $5}}"; |
|
| 608 | + | whois_server = "{whois server %|$1 {comment $2}}"; |
|
| 609 | + | whois_oper = "{whois {hilight $1}}"; |
|
| 610 | + | whois_registered = "{whois has registered this nick}"; |
|
| 611 | + | whois_help = "{whois is available for help}"; |
|
| 612 | + | whois_modes = " {whois modes $1}"; |
|
| 613 | + | whois_realhost = "{whois hostname $1-}"; |
|
| 614 | + | whois_usermode = "{whois usermode $1}"; |
|
| 615 | + | whois_channels = "{whois channels %|$1}"; |
|
| 616 | + | whois_away = "{whois away %|$1}"; |
|
| 617 | + | whois_special = "{whois %|{hilight $1}}"; |
|
| 618 | + | end_of_whois = "End of WHOIS"; |
|
| 619 | + | end_of_whowas = "End of WHOWAS"; |
|
| 620 | + | whois_not_found = "There is no such nick $0"; |
|
| 621 | + | who = "{channelhilight $[-10]0} %|{nick $[!9]1} $[!3]2 $[!2]3 $4@$5 {comment {hilight $6}}"; |
|
| 622 | + | end_of_who = "End of /WHO list"; |
|
| 623 | + | own_notice = "{ownnotice notice $0}$1"; |
|
| 624 | + | own_action_target = "{ownaction_target $0 $2}$1"; |
|
| 625 | + | own_ctcp = "{ownctcp ctcp $0}$1 $2"; |
|
| 626 | + | notice_server = "{servernotice $0}$1"; |
|
| 627 | + | notice_public = "{notice $0{pubnotice_channel $1}}$2"; |
|
| 628 | + | notice_private = "{notice $0{pvtnotice_host $1}}$2"; |
|
| 629 | + | action_private = "{pvtaction $0}$2"; |
|
| 630 | + | action_private_query = "{pvtaction_query $0}$2"; |
|
| 631 | + | action_public_channel = "{pubaction $0{msgchannel $1}}$2"; |
|
| 632 | + | ctcp_reply = "CTCP {hilight $0} reply from {nick $1}: $2"; |
|
| 633 | + | ctcp_reply_channel = "CTCP {hilight $0} reply from {nick $1} in channel {channel $3}: $2"; |
|
| 634 | + | ctcp_ping_reply = "CTCP {hilight PING} reply from {nick $0}: $1.$[-3.0]2 seconds"; |
|
| 635 | + | ctcp_requested = "{ctcp {hilight $0} {comment $1} requested {hilight $2} from {nick $3}}"; |
|
| 636 | + | online = "Users online: {hilight $0}"; |
|
| 637 | + | pong = "PONG received from $0: $1"; |
|
| 638 | + | wallops = "{wallop WALLOP {wallop_nick $0}} $1"; |
|
| 639 | + | action_wallops = "{wallop WALLOP {wallop_action $[-21]0}} $1"; |
|
| 640 | + | kill = "You were {error killed} by {nick $0} {nickhost $1} {reason $2} {comment Path: $3}"; |
|
| 641 | + | kill_server = "You were {error killed} by {server $0} {reason $1} {comment Path: $2}"; |
|
| 642 | + | error = "{error ERROR} $0"; |
|
| 643 | + | unknown_mode = "Unknown mode character $0"; |
|
| 644 | + | not_chanop = "You're not channel operator in {channel $0}"; |
|
| 645 | + | silenced = "Silenced {nick $0}"; |
|
| 646 | + | unsilenced = "Unsilenced {nick $0}"; |
|
| 647 | + | silence_line = "{nick $0}: silence {ban $1}"; |
|
| 648 | + | ask_oper_pass = "Operator password:"; |
|
| 649 | + | }; |
|
| 650 | + | "fe-common/perl" = { |
|
| 651 | + | script_not_found = "Script {hilight $0} not found"; |
|
| 652 | + | script_not_loaded = "Script {hilight $0} is not loaded"; |
|
| 653 | + | script_loaded = "Loaded script {hilight $0}"; |
|
| 654 | + | script_unloaded = "Unloaded script {hilight $0}"; |
|
| 655 | + | no_scripts_loaded = "No scripts are loaded"; |
|
| 656 | + | script_list_header = "Loaded scripts:"; |
|
| 657 | + | script_list_line = "$[!15]0 $1"; |
|
| 658 | + | script_list_footer = ""; |
|
| 659 | + | script_error = "{error Error in script {hilight $0}:}"; |
|
| 660 | + | }; |
|
| 661 | + | "fe-common/irc/notifylist" = { |
|
| 662 | + | notify_join = "{nick $0} [$1@$2] [{hilight $3}] has joined to $4"; |
|
| 663 | + | notify_part = "{nick $0} has left $4"; |
|
| 664 | + | notify_away = "{nick $0} [$5] [$1@$2] [{hilight $3}] is now away: $4"; |
|
| 665 | + | notify_unaway = "{nick $0} [$4] [$1@$2] [{hilight $3}] is now unaway"; |
|
| 666 | + | notify_unidle = "{nick $0} [$5] [$1@$2] [{hilight $3}] just stopped idling"; |
|
| 667 | + | notify_online = "On $0: {hilight $1}"; |
|
| 668 | + | notify_offline = "Offline: $0"; |
|
| 669 | + | notify_list = "$0: $1 $2 $3"; |
|
| 670 | + | notify_list_empty = "The notify list is empty"; |
|
| 671 | + | }; |
|
| 672 | + | }; |