# angligu.nawk: Tiu cxi "nawk" ordonaro sxangas Esperanto-lingvaj # Diplomatioj ordonoj al "angla" por la jugxiloj. Se gxi ne faras # tion, kion vi deziras, bonvolu skribi al mi. Mi provos gxustigi. # # Jon.C.Stewart-Taylor@adn.alcatel.com Esperanto: La lingvo internacia. # * Diplomacy estas fabrikmarko registrita de Avalon-Hill Game Company. # #---------------------------------------------------------------------- # Jen la ordonoj komprenata de tiu cxi ordonaro: # # nuligu # historio [de ] [gxis ] [linioj ] # mi ankaux estas # listu [plenan|] # rigardu # eldonu, dissendu: # eldonu | dissendu [falsu | blanka | griza] [falsu] # [al [cxiuj krom] ] [falsu] # ... plenata | elskribigxu # rezignu # [ne] atendu # sxlosvorto estas # elskribigxu # enskribigxu ? [ []] # resumon [] # kiu estas [ ... ] # konstruu [en] # forigu [] [de] # detruu [] [en] # formetu # movaj ordonoj: # [] staru | tenu # forigu | detruu [] # [] apogu # [] konvoju [] movu | - # [] movu | - [ - ... ] # [] forigu | detruu # BEGIN { if (userAddr != "") { gsub(/'/, "", userAddr); print "Reply-To: " userAddr; } } # # Antauxfarado, por cxiu linio # { sub(/^[ >]*/, ""); gsub (/[>]/, " "); sxangxu_centron() linio = $0; } /[Xx]-[Jj]ugxilo:/ { next; } # # nuligu # /^[nN][uU][lL][iI][gG][uu]$/ { linio = "CLEAR" } # # historio [de ] [gxis ] [linioj ] # /^[hH][iI][sS][tT][oO][rR][iI][oO][nN]*/ { sub(/^[hH][iI][sS][tT][oO][rR][iI][oO][nN]*/, "HISTORY", linio); sub(/[dD][eE]/, "FROM ", linio); sub(/[gG][xX][iI][sS]/, "TO ", linio); sub(/[lL][iI][nN][iI][oO][jJ]/, "LINES ", linio); } # # mi ankaux estas # /^[mM][iI][ ][aA][nN][kK][aA][uU][xX][ ][eE][sS][tT][aA][sS]/ { linio = "IAMALSO " $4; } # # listu [plenan|] # /^[lL][iI][sS][tT][uU]/ { linio = "LIST " $2; sub(/[pP][lL][eE][nN][aA][nN]*/, "FULL", linio); } # # rigardu # /^[rR][iI][gG][aA][rR][dD][uU]/ { linio = "OBSERVE " $2 " " $3; } # # eldonu, dissendu: # dissendu [falsu | blanka | griza] [falsu] [al [cxiuj krom] ] [falsu] # plenata | elskribigxu # /^[eE][lL][dD][oO][nN][uU]/ { faru_eldonon(); } /^[dD][iI][sS][sS][eE][nN][dD][uU]/ { faru_eldonon(); } # # rezignu /^[rR][eE][zZ][iI][gG][nN][uU]/ { linio = "RESIGN"; } # # [ne] atendu # /^[aA][tT][eE][nN][dD][uU]/ { linio = "SET WAIT"; } /^[nN][eE][ ]*[aA][tT][eE][nN][dD][uU]/ { linio = "SET NOWAIT"; } # # sxlosvorto estas # /^[sS][xX][lL][oO][sS][vV][oO][rR][tT][oO][ ]+[eE][sS][tT][aA][sS]/ { linio = "SET PASSWORD " $3; } # # elskribigxu # /^[eE][lL][sS][kK][rR][iI][bB][iI][gG][xX][uU]/ { linio = "SIGNOFF";} # # enskribigxu ? [ []] # /^[eE][nN][sS][kK][rR][iI][bB][iI][gG][xX][uU]/ { linio = "SIGNON " $2 " " $3 " " $4 " " $5; } # # resumon [] # /^[rR][eE][sS][uU][mM][oO][nN]/ { linio = "SUMMARY " $2} # # kiu estas [ ... ] # /^[kK][iI][uU][ ]+[eE][sS][tT][aA][sS]/ { sub(/^[kK][iI][uU][ ]+[eE][sS][tT][aA][sS]/, "WHOIS", linio); } # # konstruu [en] # /^[kK][oO][nN][sS][tT][rR][uU][uU]/ { linio = "BUILD " $2 " " $3 " " $4; sub(/[ ]+[eE][nN][ ]+/," ", linio); sxangxu_unuon(); } # # forigu [] [de] # detruu [] [en] # /^[fF][oO][rR][iI][gG][uU]/ { sub(/[ ]+[dD][eE][ ]+/," ", linio); linio = "REMOVE " $2 " " $3 " " $4; sxangxu_unuon(); } /^[dD][eE][tT][rR][uU][uU]/ { linio = "REMOVE " $2 " " $3 " " $4; sub(/[ ]+[eE][nN][ ]+/," ", linio); sxangxu_unuon(); } # # formetu # /^[fF][oO][rR][mM][eE][tT][uU]/ { linio = "WAIVE"} # # sxiparo, floto, armeo, soldataro: movoj # { gsub (/\-/, " - ", linio); } /^[aA][rR][mM][eE][oO]/ { faru_movon(); } /^[sS][oO][lL][dD][aA][tT][aA][rR][oO]/ { faru_movon(); } /^[sS][xX][iI][pP][aA][rR][oO]/ { faru_movon(); } /^[fF][lL][oO][tT][oO]/ { faru_movon(); } /\-/ { faru_movon(); } /[ ]+[tT][eE][nN][uU]*[aA]*[sS]*/ { faru_movon(); } /[sS][tT][aA][rR][uU]*[aA]*[sS]*/ { faru_movon(); } /[fF][oO][rR][iI][gG][uU]*[aA]*[sS]*/ { faru_movon(); } /[dD][eE][tT][rR][uU][uU]*[aA]*[sS]*/ { faru_movon(); } /[aA][pP][oO][gG][uU]*[aA]*[sS]*/ { faru_movon(); } /[kK][oO][nN][vV][oO][jJ][uU]*[aA]*[sS]*/ { faru_movon(); } # # Elmetu linion # { print linio } # #---------------------------------------------------------------------- # # sxangxu_unuon: Sxangxas unuojn de esperanto al "judge". Gxi nur konas la # tutan vortojn, ne la mallongigojn. # function sxangxu_unuon() { sub (/[aA][rR][mM][eE][oO][nN]*/, "ARMY", linio); sub (/[sS][oO][lL][dD][aA][tT][aA][rR][oO]n*/, "ARMY", linio); sub (/[fF][lL][oO][tT][oO][nN]*/, "FLEET", linio); sub (/[sS][xX][iI][pP][aA][rR][oO][Nn]*/, "FLEET", linio); } # #---------------------------------------------------------------------- # function faru_movon() { # # armeo -> army, ktp # sxangxu_unuon(); sxangxu_unuon(); # estos ne pli ol du # # staru/tenu # sub (/[tT][eE][nN][uU]*[aA]*[sS]*/, "HOLDS", linio); sub (/[sS][tT][aA][rR][uU]*[aA]*[sS]*/, "HOLDS", linio); # # forigu/detruu # sub (/[fF][oO][rR][iI][gG][uU]*[aA]*[sS]*/, "DISBANDS", linio); sub (/[dD][eE][tT][rR][uU][uU]*[aA]*[sS]*/, "DISBANDS", linio); # # apogu # sub (/[aA][pP][oO][gG][uU]*[aA]*[sS]*/, "SUPPORT", linio); # # konvoju # sub (/[kK][oO][nN][vV][oO][jJ][uU]*[aA]*[sS]*/, "CONVOY", linio); # # movado # gsub(/[ ]+[eE][nN][ ]/, " ", linio); gsub (/[mM][oO][vV][uU]*[aA]*[sS]*[Ii]*/, " ", linio); gsub(/[ ]+[aA][lL][ ]/, " - ", linio); # # marbordoj # gsub (/[mM][aA][rR][bB][oO][rR][dD][oO]/, "COAST", linio); gsub (/[nN][oO][rR][dD][aA]/, "NORTH", linio); gsub (/[oO][kK][cC][iI][dD][eE][nN][tT][aA]/, "WEST", linio); gsub (/[oO][rR][iI][eE][nN][tT][aA]/, "EAST", linio); gsub (/[sS][uU][dD][aA]/, "SOUTH", linio); gsub(/\([Nn][Mm]\)/, "(nc)",linio); gsub(/\([Ss][Mm]\)/, "(sc)",linio); gsub(/\([oO][rR][mM]\)/, "(ec)",linio); gsub(/\([Oo][Rr][Ii]\)/, "(ec)",linio); gsub(/\([Oo][Kk][Mm]\)/, "(wc)",linio); gsub(/\([Oo][Kk][Cc]\)/, "(wc)",linio); # # mallongigxoj # sxangxu_mallongigxon(); } # #---------------------------------------------------------------------- # function faru_eldonon() { # # traduku la kaplinion: # sub(/^[eE][lL][dD][oO][nN][uU]/, "PRESS", linio); sub(/^[dD][iI][sS][sS][eE][nN][dD][uU]/, "BROADCAST", linio); gsub(/[fF][aA][lL][sS][uU]/, "FAKE", linio); sub(/[bB][lL][aA][nN][kK][aA]/, "WHITE", linio); sub(/[gG][rR][iI][zZ][aA]/, "GRAY", linio); sub(/[aA][lL]/, "TO", linio); sub(/[cC][xX][iI][uU][jJ]/, "ALL", linio); sub(/[kK][rR][oO][mM]/, "BUT", linio); print linio; getline; # # kopiu la korpon: # while (($0 !~ /^[pP][lL][eE][nN][aA][tT][aA]$/) && ($0 !~ /^[eE][lL][sS][kK][rR][iI][bB][iI][gG][xX][uU]$/)) { print $0; if (1 != getline) { exit } } # # traduku la lastan linion, kaj dauxri. # sub(/[pP][lL][eE][nN][aA][tT][aA]/, "ENDPRESS"); sub(/[eE][lL][sS][kK][rR][iI][bB][iI]*[gG]*[xX]*[uU]/, "SIGNOFF"); print $0; next; } # #---------------------------------------------------------------------- # function sxangxu_mallongigxon() { gsub(/[Dd][Aa][Nn]/, "DEN", linio); gsub(/[Ee][Gg][Aa]/, "AEG", linio); gsub(/[Ll][Ii][Oo]/, "LYO", linio); gsub(/[Hh][Ii][Ss]/, "SPA", linio); gsub(/[Ii][Rr][Ll]/, "IRI", linio); gsub(/[Kk][Ii][Mm]/, "WAL", linio); gsub(/[Kk][Ll][Aa]/, "CLY", linio); gsub(/[Kk][Oo][Nn]/, "CON", linio); gsub(/[Mm][Aa][Nn]/, "ENG", linio); gsub(/[Nn][Ee][Dd]/, "HOL", linio); gsub(/[Nn][Ii][Gg]/, "BLA", linio); gsub(/[Nn][Oo][Mm]/, "NTH", linio); gsub(/[Nn][Vv][Mm]/, "NWG", linio); gsub(/[Oo][Kk][Cc]/, "WES", linio); gsub(/[Oo][Rr][Ii]/, "EAS", linio); gsub(/[Pp][Ii][Kk]/, "PIC", linio); gsub(/[Rr][Uu][Rr]/, "RUH", linio); gsub(/[Ss][Ee][Bb]/, "SEV", linio); gsub(/[Ss][Ii][Rr]/, "SYR", linio); gsub(/[Ss][Mm][Ii]/, "SMY", linio); gsub(/[Ss][Vv][Ee]/, "SWE", linio); gsub(/[Ss][Vv][Ii]/, "SWI", linio); gsub(/[Tt][Ii][Mm]/, "TYS", linio); gsub(/[Tt][Ii][Rr]/, "TYR", linio); gsub(/[Tt][Ii][Rr]/, "TRL", linio); gsub(/[Tt][Oo][Ss]/, "TUS", linio); gsub(/[Vv][Aa][Rr]/, "WAR", linio); } # #---------------------------------------------------------------------- # function sxangxu_centron() { gsub(/[Aa]dria [Mm]aro/," ADR "); gsub(/[Aa]lbanio/," ALB "); gsub(/[Aa]nkaro/," ANK "); gsub(/[Aa]pulio/," APU "); gsub(/[Aa]rmenio/," ARM "); gsub(/[Bb]alta [Mm]aro/," BAL "); gsub(/[Bb]arenca [Mm]aro/," BAR "); gsub(/[Bb]elgio/," BEL "); gsub(/[Bb]erlino/," BER "); gsub(/[Bb]ohemio/," BOH "); gsub(/[Bb]otnia [Gg]olfo/," BOT "); gsub(/[Bb]resto/," BRE "); gsub(/[Bb]udapesxto/," BUD "); gsub(/[Bb]ulgario/," BUL "); gsub(/[Bb]urgonjo/," BUR "); gsub(/[Dd]anio/," DEN "); gsub(/[Ee]dinburgo/," EDI "); gsub(/[Ee]gea [Mm]aro/," AEG "); gsub(/[Ff]inlando/," FIN "); gsub(/[Gg]alicio/," GAL "); gsub(/[Gg]askonio/," GAS "); gsub(/[Gg]olfo de [Ll]iono/," LYO "); gsub(/[Gg]rekio/," GRE "); gsub(/[Hh]elgolanda [Gg]olfo/," HEL "); gsub(/[Hh]ispanio/," SPA "); gsub(/[Ii]onia [Mm]aro/," ION "); gsub(/[Ii]rlanda [Mm]aro/," IRI "); gsub(/[Jj]orksxiro/," YOR "); gsub(/[Kk]ielo/," KIE "); gsub(/[Kk]imrio/," WAL "); gsub(/[Kk]lajdo/," CLY "); gsub(/[Kk]onstantinopolo/," CON "); gsub(/[Ll]iverpolo/," LVP "); gsub(/[Ll]ivonio/," LVN "); gsub(/[Ll]ondono/," LON "); gsub(/[Mm]aniko/," ENG "); gsub(/[Mm]arsejlo/," MAR "); gsub(/[Mm]ez-* *[Aa]tlantika [Oo]ceano/," MAO "); gsub(/[Mm]oskvo/," MOS "); gsub(/[Mm]unkeno/," MUN "); gsub(/[Nn]apolo/," NAP "); gsub(/[Nn]ederlando/," HOL "); gsub(/[Nn]igra [Mm]aro/," BLA "); gsub(/[Nn]ord-* *[Aa]friko/," NAF "); gsub(/[Nn]ord-* *[Aa]tlantika [Oo]ceano/," NAO "); gsub(/[Nn]orda [Mm]aro/," NTH "); gsub(/[Nn]orvegia [Mm]aro/," NWG "); gsub(/[Nn]orvegio/," NOR "); gsub(/[Oo]kcidenta Mediteraneo/," WES "); gsub(/[Oo]rienta Mediteraneo/," EAS "); gsub(/[Pp]arizo/," PAR "); gsub(/[Pp]iemonto/," PIE "); gsub(/[Pp]ikardio/," PIC "); gsub(/[Pp]ortugalio/," POR "); gsub(/[Pp]rusio/," PRU "); gsub(/[Rr]omo/," ROM "); gsub(/[Rr]umanio/," RUM "); gsub(/[Rr]uro/," RUH "); gsub(/[Ss]ebastopolo/," SEV "); gsub(/[Ss]erbio/," SER "); gsub(/[Ss]ilezio/," SIL "); gsub(/[Ss]irio/," SYR "); gsub(/[Ss]kagerako/," SKA "); gsub(/[Ss]ankta [Pp]etersburgo/," STP "); gsub(/[Ss]mirno/," SMY "); gsub(/[Ss]vedio/," SWE "); gsub(/[Ss]visio/," SWI "); gsub(/[Tt]irena [Mm]aro/," TYS "); gsub(/[Tt]irolo/," TYR "); gsub(/[Tt]oskanio/," TUS "); gsub(/[Tt]riesto/," TRI "); gsub(/[Tt]unizo/," TUN "); gsub(/[Uu]krainio/," UKR "); gsub(/[Vv]arsovio/," WAR "); gsub(/[Vv]enecio/," VEN "); gsub(/[Vv]ieno/," VIE "); }