html/translit.pl
1 use strict;
2 use vars qw(%IRSSI);
3
4 use Irssi;
5 %IRSSI = (
6 authors => 'dreg',
7 contact => 'dreg@fine.lv',
8 name => 'translit',
9 description => 'translitiratar',
10 license => 'GPL',
11 );
12
13 my $stripped_out = 0;
14
15 sub translit_out {
16 if(Irssi::settings_get_bool('translit') && !$stripped_out) {
17 my $emitted_signal = Irssi::signal_get_emitted();
18 my ($msg, $dummy1, $dummy2) = @_;
19
20 $dummy1 =~ s/à/a/g;
21 $dummy1 =~ s/á/b/g;
22 $dummy1 =~ s/â/v/g;
23 $dummy1 =~ s/ã/g/g;
24 $dummy1 =~ s/ä/d/g;
25 $dummy1 =~ s/å/e/g;
26 $dummy1 =~ s/¸/jo/g;
27 $dummy1 =~ s/æ/zh/g;
28 $dummy1 =~ s/ç/z/g;
29 $dummy1 =~ s/è/i/g;
30 $dummy1 =~ s/é/j/g;
31 $dummy1 =~ s/ê/k/g;
32 $dummy1 =~ s/ë/l/g;
33 $dummy1 =~ s/ì/m/g;
34 $dummy1 =~ s/í/n/g;
35 $dummy1 =~ s/î/o/g;
36 $dummy1 =~ s/ï/p/g;
37 $dummy1 =~ s/ð/r/g;
38 $dummy1 =~ s/ñ/s/g;
39 $dummy1 =~ s/ò/t/g;
40 $dummy1 =~ s/ó/u/g;
41 $dummy1 =~ s/ô/f/g;
42 $dummy1 =~ s/õ/h/g;
43 $dummy1 =~ s/ö/c/g;
44 $dummy1 =~ s/÷/ch/g;
45 $dummy1 =~ s/ø/sh/g;
46 $dummy1 =~ s/ù/sch/g;
47 $dummy1 =~ s/ú/`/g;
48 $dummy1 =~ s/û/y/g;
49 $dummy1 =~ s/ü/`/g;
50 $dummy1 =~ s/ý/e/g;
51 $dummy1 =~ s/þ/ju/g;
52 $dummy1 =~ s/ÿ/ja/g;
53
54 $dummy1 =~ s/À/A/g;
55 $dummy1 =~ s/Á/B/g;
56 $dummy1 =~ s/Â/V/g;
57 $dummy1 =~ s/Ã/G/g;
58 $dummy1 =~ s/Ä/D/g;
59 $dummy1 =~ s/Å/E/g;
60 $dummy1 =~ s/¨/JO/g;
61 $dummy1 =~ s/Æ/ZH/g;
62 $dummy1 =~ s/Ç/Z/g;
63 $dummy1 =~ s/È/I/g;
64 $dummy1 =~ s/É/J/g;
65 $dummy1 =~ s/Ê/K/g;
66 $dummy1 =~ s/Ë/L/g;
67 $dummy1 =~ s/Ì/M/g;
68 $dummy1 =~ s/Í/N/g;
69 $dummy1 =~ s/Î/O/g;
70 $dummy1 =~ s/Ï/P/g;
71 $dummy1 =~ s/Ð/R/g;
72 $dummy1 =~ s/Ñ/S/g;
73 $dummy1 =~ s/Ò/T/g;
74 $dummy1 =~ s/Ó/U/g;
75 $dummy1 =~ s/Ô/F/g;
76 $dummy1 =~ s/Õ/H/g;
77 $dummy1 =~ s/Ö/C/g;
78 $dummy1 =~ s/×/CH/g;
79 $dummy1 =~ s/Ø/SH/g;
80 $dummy1 =~ s/Ù/SCH/g;
81 $dummy1 =~ s/Ú/`/g;
82 $dummy1 =~ s/Û/Y/g;
83 $dummy1 =~ s/Ü/`/g;
84 $dummy1 =~ s/Ý/E/g;
85 $dummy1 =~ s/Þ/JU/g;
86 $dummy1 =~ s/ß/JA/g;
87
88 $stripped_out=1;
89
90 Irssi::signal_emit("$emitted_signal", $msg, $dummy1, $dummy2 );
91 Irssi::signal_stop();
92 $stripped_out=0;
93 }
94 }
95
96 Irssi::settings_add_bool('lookandfeel', 'translit', 1);
97
98 #output filters:
99 #Irssi::signal_add_first('send command', 'translit_out');
100 Irssi::signal_add_first('message own_public', 'translit_out');
101 Irssi::signal_add_first('message own_private', 'translit_out');
102