- my $img = sprintf '<img src="/flag/%s.png" alt="%s">', $code, $code
- if -e "flag/$code.png";
+ my ($name, $class, $short, $ref) = @$country;
+ $ref ||= $code;
+ local $_ = $ref;
+ if (exists $get{show}) {
+ my $img = "flag/$ref.png";
+ $_ = sprintf '<img src="/%s" alt="%s">', $img, $ref if -e $img;
+ }
+ else {
+ $_ = $short || $name;
+ s/,.*//;
+ s/(?<=.)\(.*\)\s*//;
+ s/ republic\b//gi;
+ s/ islands?\b//gi;
+ s/\bthe //g;
+ s/ and / & /g and s/(?<=.)[a-z ]+//g;
+ s/\bsaint /st /gi;
+ s/South(?:ern)? /S-/g;
+ s/North(?:ern)? /N-/g;
+ s/New /n./g;
+ s/(\S)(\S+)-/$1-/g; # strip most chars preceding dash
+ s/(\S{4}[b-df-hj-np-tv-xz])((?<!Austr)(?!land)\w{2,})/$1./g; # abbreviate (at consonant)
+ $_ = EscapeHTML($_);
+ }
+ $name =~ s/([^,]*), (.*)/$2 $1/;