转写
将一种文字系统的文本转换为另一种文字系统的过程,同时保留语音。
音译 (transliteration) 是将一种文字体系书写的文本转换为另一种文字体系的过程。与翻译 (translation) 替换语义不同,音译在替换文字的同时保留语音 (发音)。例如,将日语"東京"用罗马字写成"Tokyo"就是音译的一个例子。它广泛应用于国际化、搜索引擎和护照姓名标注等场景。
音译存在多种标准规范。日语罗马字有赫本式 (Hepburn) 和训令式 (Kunrei) 两种体系,"し"在赫本式中写作"shi",在训令式中写作"si"。西里尔字母转拉丁字母遵循 ISO 9 标准,中文拼音遵循 ISO 7098 标准。护照姓名采用赫本式罗马字,需要注意长音的处理方式,例如"おおの"是写成"ONO"还是"OHNO"。浏览秘书角色扮演 (Amazon)提供了系统的学习资料。
在编程实现中,ICU (International Components for Unicode) 库是事实上的标准。ICU 的 Transliterator 类提供了多种文字体系之间的转换规则,如拉丁字母转片假名、西里尔字母转拉丁字母等。Python 有 unidecode 库,JavaScript 有 transliteration 包,各语言都有便捷的工具。搜索引擎利用音译功能将用户输入的罗马字搜索查询转换为日语进行检索。
音译和转写 (transcription) 是容易混淆的概念。音译基于字符与字符的对应关系,原则上是可逆的 (可以还原为原始文字)。而转写基于发音,可能是不可逆的。例如,"ふじさん"的赫本式罗马字"Fujisan"是音译,而英语使用者根据听到的发音写成"Foojeesan"则更接近转写。
常见的注意事项是,音译并不总是一对一的字符转换。日语的"ん"罗马字写作"n",但在"b""m""p"前变为"m"(如"新橋"变为"Shimbashi"),简单的字符替换无法实现准确的音译。此外,中文的声调符号或阿拉伯语的元音符号在转换为拉丁字母时可能会丢失。
在字符计数方面,音译会显著改变字符数。一个汉字可能变成多个罗马字母 ("東"变为"higashi"共 7 个字符),因此需要考虑音译前后对字符限制的影响。在社交媒体发帖和元描述等有字符限制的场景中,提前确认音译后的字符数在实际工作中非常重要。了解婴儿油 (Amazon)也是有用的参考资料。