Re: simple katakana to romaji converter function

Lapo Luchini <[email protected]>
Newsgroups gmane.comp.php.internationalization
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lapo Luchini wrote:
> I solved the problem this way

Or, complete with katakana...

$k2r = array('/??/' => 'kya', '/??/' => 'kyu', '/??/' => 'kyo', '/
??/' => 'gya', '/??/' => 'gyu', '/??/' => 'gyo', '/??/' =>
'sha', '/??/' => 'shu', '/??/' => 'sho', '/??/' => 'ja', '/??/'
=> 'ju', '/??/' => 'jo', '/??/' => 'cha', '/??/' => 'chu', '/??
/' => 'cho', '/??/' => 'ja', '/??/' => 'ju', '/??/' => 'jo', '/
??/' => 'nya', '/??/' => 'nyu', '/??/' => 'nyo', '/??/' =>
'hya', '/??/' => 'hyu', '/??/' => 'hyo', '/??/' => 'bya', '/??/'
=> 'byu', '/??/' => 'byo', '/??/' => 'pya', '/??/' => 'pyu', '/
??/' => 'pyo', '/??/' => 'mya', '/??/' => 'myu', '/??/' =>
'myo', '/??/' => 'rya', '/??/' => 'ryu', '/??/' => 'ryo', '/??/'
=> 'ye', '/??/' => 'wi', '/??/' => 'we', '/??/' => 'wo', '/??/'
=> 'kya', '/??/' => 'kyu', '/??/' => 'kyo', '/??/' => 'gya', '/
??/' => 'gyu', '/??/' => 'gyo', '/??/' => 'she', '/??/' =>
'sha', '/??/' => 'shu', '/??/' => 'sho', '/??/' => 'je', '/??/'
=> 'ja', '/??/' => 'ju', '/??/' => 'jo', '/??/' => 'che', '/??/'
=> 'cha', '/??/' => 'chu', '/??/' => 'cho', '/??/' => 'ja', '/??
/' => 'ju', '/??/' => 'jo', '/??/' => 'tsa', '/??/' => 'tsi', '/
??/' => 'tse', '/??/' => 'tso', '/??/' => 'ti', '/??/' => 'tyu',
'/??/' => 'di', '/??/' => 'dyu', '/??/' => 'tu', '/??/' => 'du',
'/??/' => 'nya', '/??/' => 'nyu', '/??/' => 'nyo', '/??/' =>
'hya', '/??/' => 'hyu', '/??/' => 'hyo', '/??/' => 'bya', '/??/'
=> 'byu', '/??/' => 'byo', '/??/' => 'pya', '/??/' => 'pyu', '/
??/' => 'pyo', '/??/' => 'fa', '/??/' => 'fi', '/??/' => 'fe',
'/??/' => 'fo', '/??/' => 'fyu', '/??/' => 'mya', '/??/' =>
'myu', '/??/' => 'myo', '/??/' => 'rya', '/??/' => 'ryu', '/??/'
=> 'ryo', '/??/' => 'va', '/??/' => 'vi', '/??/' => 've', '/??/'
=> 'vo', '/?/' => 'a', '/?/' => 'i', '/?/' => 'u', '/?/' => 'e', '/
?/' => 'o', '/?/' => 'ka', '/?/' => 'ga', '/?/' => 'ki', '/?/' =>
'gi', '/?/' => 'ku', '/?/' => 'gu', '/?/' => 'ke', '/?/' => 'ge', '/
?/' => 'ko', '/?/' => 'go', '/?/' => 'sa', '/?/' => 'za', '/?/' =>
'shi', '/?/' => 'ji', '/?/' => 'su', '/?/' => 'zu', '/?/' => 'se',
'/?/' => 'ze', '/?/' => 'so', '/?/' => 'zo', '/?/' => 'ta', '/?/'
=> 'da', '/?/' => 'chi', '/?/' => 'ji', '/?/' => 'tsu', '/?/' =>
'zu', '/?/' => 'te', '/?/' => 'de', '/?/' => 'to', '/?/' => 'do', '/
?/' => 'na', '/?/' => 'ni', '/?/' => 'nu', '/?/' => 'ne', '/?/' =>
'no', '/?/' => 'ha', '/?/' => 'ba', '/?/' => 'pa', '/?/' => 'hi', '/
?/' => 'bi', '/?/' => 'pi', '/?/' => 'fu', '/?/' => 'bu', '/?/' =>
'pu', '/?/' => 'he', '/?/' => 'be', '/?/' => 'pe', '/?/' => 'ho', '/
?/' => 'bo', '/?/' => 'po', '/?/' => 'ma', '/?/' => 'mi', '/?/' =>
'mu', '/?/' => 'me', '/?/' => 'mo', '/?/' => 'ya', '/?/' => 'yu', '/
?/' => 'yo', '/?/' => 'ra', '/?/' => 'ri', '/?/' => 'ru', '/?/' =>
're', '/?/' => 'ro', '/?/' => 'wa', '/?/' => 'wi', '/?/' => 'we', '/
?/' => 'wo', '/?/' => 'n', '/?/' => 'a', '/?/' => 'i', '/?/' =>
'u', '/?/' => 'e', '/?/' => 'o', '/?/' => 'ka', '/?/' => 'ga', '/?
/' => 'ki', '/?/' => 'gi', '/?/' => 'ku', '/?/' => 'gu', '/?/' =>
'ke', '/?/' => 'ge', '/?/' => 'ko', '/?/' => 'go', '/?/' => 'sa', '/
?/' => 'za', '/?/' => 'shi', '/?/' => 'ji', '/?/' => 'su', '/?/' =>
'zu', '/?/' => 'se', '/?/' => 'ze', '/?/' => 'so', '/?/' => 'zo', '/
?/' => 'ta', '/?/' => 'da', '/?/' => 'chi', '/?/' => 'ji', '/?/' =>
'tsu', '/?/' => 'zu', '/?/' => 'te', '/?/' => 'de', '/?/' => 'to',
'/?/' => 'do', '/?/' => 'na', '/?/' => 'ni', '/?/' => 'nu', '/?/'
=> 'ne', '/?/' => 'no', '/?/' => 'ha', '/?/' => 'ba', '/?/' => 'pa',
'/?/' => 'hi', '/?/' => 'bi', '/?/' => 'pi', '/?/' => 'fu', '/?/'
=> 'bu', '/?/' => 'pu', '/?/' => 'he', '/?/' => 'be', '/?/' => 'pe',
'/?/' => 'ho', '/?/' => 'bo', '/?/' => 'po', '/?/' => 'ma', '/?/'
=> 'mi', '/?/' => 'mu', '/?/' => 'me', '/?/' => 'mo', '/?/' => 'ya',
'/?/' => 'yu', '/?/' => 'yo', '/?/' => 'ra', '/?/' => 'ri', '/?/'
=> 'ru', '/?/' => 're', '/?/' => 'ro', '/?/' => 'wa', '/?/' => 'wi',
'/?/' => 'we', '/?/' => 'wo', '/?/' => 'n', '/?/' => 'vu', '/?/' =>
'va', '/?/' => 'vi', '/?/' => 've', '/?/' => 'vo', '/aa/' => '?',
'/e[ei]/' => '?', '/ii/' => '?', '/o[ou]/' => '?', '/uu/' => '?');

function romaji($kana) {
    global $k2r;
    return preg_replace(array_keys($k2r), array_values($k2r), $kana);
}

- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iEYEARECAAYFAkKeo8kACgkQaJiCLMjyUvsmLQCfeiOy/bs8T1jN54fMR7rfAp+d
5t4An3G6UPbRsFNxQ/EpOoywHCtnTAKm
=cwyH
-----END PGP SIGNATURE-----

-- 
PHP Internationalization Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.