=head1 NAME

tran - transcribe between character scripts

=head1 SYNOPSIS

B<tran> E<lt>I<input>

B<echo> Hello world B<|> B<tran> I<script>

=head1 DESCRIPTION

B<tran> lets you convert between Latin and a number of other character
scripts.  It works as a filter, reading standard input and writing to the
standard output.

Please specify the target script as the argument.  If none is given, the
default is latin.  Specify "I<list>" to get the list of supported scripts.

=head1 OPTIONS

=over

=item B<-d>, B<--debug>

marks characters that haven't been touched in color.  The output must go to a
terminal, "B<less -R>" or something that can understand ANSI colors.

=back

=head1 CAVEATS

There is currently no triangulation -- to go between two scripts other than
latin you need to convert to latin first.

This especially matters for I<ascii>: to convert, eg, cyrillic text, you
need to use a pipe: B<tran|tran ascii>.

The I<ascii> conversion, like any other, leaves characters it doesn't have
data for intact, leading to non-ASCII output.  This might be what you want
if you need to just drop diacritics and expand digraphs, but if you're after
pure 7-bit text, use "B<tran ascii|perl -CIO -pe 'tr /\x1-\x7e/?/c'>"
(B</usr/bin/tr> works on bytes not characters).

Not all of your recipients may have all required fonts, especially for Plane
1 scripts.  Such support is especially bad on old terminals that use bitmap
fonts, such as I<xterm>, text-mode Linux or pre-Windows 10 console.

=head1 BUGS

Ancient (ie, non-Unicode) charsets are not supported at all.  B<tran> will
obliviously write UTF-8 even when inappropriate.

This tool is pretty slow, especially on startup.  If this is a problem for
anyone, please holler -- I did not optimize it at all.

=head1 AUTHOR

Adam Borowski (kilobyte@angband.pl)
