diff options
Diffstat (limited to 'lib/Lingua/HI')
-rw-r--r-- | lib/Lingua/HI/Romanize.pm | 44 |
1 files changed, 20 insertions, 24 deletions
diff --git a/lib/Lingua/HI/Romanize.pm b/lib/Lingua/HI/Romanize.pm index 8dfdda9..694dd48 100644 --- a/lib/Lingua/HI/Romanize.pm +++ b/lib/Lingua/HI/Romanize.pm @@ -11,43 +11,39 @@ has unicode => ( has default_ascii => ( is => 'ro', isa => 'Str', - default => 'itrans', + default => 'ITRANS', ); has default_unicode => ( is => 'ro', isa => 'Str', - default => 'iast', + default => 'IAST', ); sub romanize { my $self = shift; - my $method = "romanize_"; + my ($text) = @_; + my $package = 'Lingua::HI::Romanize::'; if ($self->unicode) { - $method .= $self->default_unicode; + $package .= $self->default_unicode; } else { - $method .= $self->default_ascii; + $package .= $self->default_ascii; } - return $self->$method(@_); -} - -sub romanize_iast { -} - -sub romanize_kolkata { -} - -sub romanize_iso15919 { -} - -sub romanize_harvard_kyoto { -} - -sub romanize_itrans { -} - -sub romanize_velthuis { + my %translit = %{ $package->TRANSLIT }; + my $output = ''; + for my $word (split /\b/s, $text) { + for my $char (split //, $word) { + if (exists $translit{$char}) { + $output .= $translit{$char}; + } + else { + $output .= $char; + } + } + # XXX: word-final 'a' should be stripped + } + return $output; } 1; |