Language 是一个元数据字段,用来记录文件使用的是哪种人类语言。在文档或电子书中,Language 字段标明文本的语言。在音频或视频文件中,这个字段通常标明某一轨道中说话或演唱所使用的语言。
哪些文件携带它
每种文件格式在不同位置存储语言信息:
- MKV 视频为每条轨道存储一种语言,因此每条音轨和字幕轨都有自己的取值
- MP4 和 MOV 视频在每条轨道的媒体头中存储语言代码
- MP3 文件可以在其 ID3 标签中携带语言信息,位于
TLAN帧中 - WAV 和 AVI 文件可以在其 RIFF INFO 块中的
ILNG字段中携带语言信息 - PDF 文件可以在
Lang条目中存储整个文档的默认语言 - EPUB 电子书必须在其包元数据中的
dc:language元素中至少标明一种语言 - DOCX、XLSX、PPTX 等 Office 文件可以在文档属性中存储语言信息
- JPG、TIFF 以及其他带有 XMP 块的文件可以在 XMP 字段
dc:language中存储语言信息
数值的呈现方式
文件主要使用两种代码系统。ISO 639-2 为每种语言分配一个由 3 个字母组成的代码。BCP 47 在有 2 个字母代码时使用 2 个字母,并且可以在连字符后添加地区代码。
eng是 ISO 639-2 中的英语,而en是 BCP 47 中的英语fre和fra都表示法语,因为在 ISO 639-2 中,有些语言同时有文献代码和术语代码ger和deu都表示德语en-US是在美国使用的英语fre-ca是 MKV 文件使用的旧格式中的加拿大法语代码
在 BCP 47 标签中,字母大小写没有意义,因此 en-us 和 en-US 表示相同的语言。按惯例,语言部分使用小写字母,地区部分使用大写字母。
ID3 标签使用 3 字母代码,而 EPUB 书籍使用 BCP 47 标签。一个 MKV 轨道可以同时包含这两种形式,程序在这种情况下必须忽略 3 字母代码。使用 FFmpeg 生成的报告会把这个取值列为每个流的标签,例如 language=eng。
特殊语言代码
代码 und 表示未确定。ISO 639-2 将其用于无法确定语言的内容。
ISO 639-2 还有更多特殊代码。mul 表示多种语言,zxx 表示完全没有语言内容。在评论、歌词等 ID3 帧中,字符串 XXX 用来标记未知语言。
它的重要性
媒体播放器会读取轨道语言为你选择音轨。如果你把偏好语言设置为法语,播放器会选择语言为法语的轨道。对于字幕,播放器还会检查例如 Hearing Impaired 等标记。
缺少取值可能会造成误导。在 MKV 文件中,没有 Language 元素的轨道会被视为英语,因为默认值是 eng。
在文档中,语言信息可以帮助屏幕阅读器。有了正确的 Lang 取值,屏幕阅读器就能为 PDF 加载正确的发音规则。PDF 还可以为单个短语标注另一种语言,例如在英文文本中用 es-MX 标记墨西哥西班牙语。
EPUB 电子书可以列出多种语言。阅读系统会将列表中的第一种语言视为这本书的主要语言。