翻字 (トランスリテレーション)
ある文字体系のテキストを別の文字体系に変換する処理。音韻を保持しながら文字を置き換える。
翻字 (トランスリテレーション) とは、ある文字体系で書かれたテキストを別の文字体系に変換する処理です。翻訳 (translation) が意味を別の言語に置き換えるのに対し、翻字は音韻 (発音) を保持しながら文字だけを置き換えます。たとえば日本語の「東京」をローマ字で「Tokyo」と表記するのは翻字の一例です。国際化対応、検索エンジン、パスポートの氏名表記など、多くの場面で使われています。
翻字にはいくつかの標準規格が存在します。日本語のローマ字表記にはヘボン式 (Hepburn) と訓令式 (Kunrei) があり、「し」をヘボン式では「shi」、訓令式では「si」と表記するなど違いがあります。キリル文字からラテン文字への変換には ISO 9 規格、中国語のピンイン表記には ISO 7098 規格が定められています。パスポートの氏名表記ではヘボン式ローマ字が採用されており、「おおの」を「ONO」とするか「OHNO」とするかなど、長音の扱いに注意が必要です。言語学・文字体系の書籍で体系的に学べます。
プログラミングにおける翻字の実装では、ICU (International Components for Unicode) ライブラリが事実上の標準です。ICU の Transliterator クラスは、ラテン文字からカタカナ、キリル文字からラテン文字など、多数の文字体系間の変換ルールを提供しています。Python では unidecode ライブラリ、JavaScript では transliteration パッケージなど、言語ごとに便利なライブラリが存在します。検索エンジンでは、ユーザーがローマ字で入力した検索クエリを日本語に変換して検索する機能に翻字が活用されています。
翻字と転写 (transcription) は混同されやすい概念です。翻字は文字と文字の対応関係に基づく変換で、原則として可逆的 (元の文字に戻せる) です。一方、転写は発音に基づく変換で、不可逆的な場合があります。たとえば「ふじさん」のヘボン式ローマ字「Fujisan」は翻字ですが、英語話者が聞いた音を「Foojeesan」と書くのは転写に近い処理です。
よくある注意点として、翻字は完全に一対一の変換にならないケースがあります。日本語の「ん」はローマ字で「n」と表記しますが、「b」「m」「p」の前では「m」になるルール (「新橋」→「Shimbashi」) があり、単純な文字置換では正確な翻字ができません。また、中国語の声調記号やアラビア語の母音記号など、元の文字体系にある情報がラテン文字への翻字で失われることもあります。
文字数カウントとの関連では、翻字によって文字数が大きく変化する点が重要です。漢字 1 文字がローマ字では複数文字になるため (「東」→「higashi」で 7 文字)、翻字前後で文字数制限への影響を考慮する必要があります。SNS の投稿やメタディスクリプションなど文字数制限がある場面では、翻字後の文字数を事前に確認することが実務上重要です。多言語テキスト処理の書籍も参考になります。