词典

元数据中的语言是什么?

语言是一个元数据字段,用来标明文件中文本、语音或字幕所使用的语言。文件通常以简短的代码来存储它,例如 eng 或 en-US。

language

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 电子书可以列出多种语言。阅读系统会将列表中的第一种语言视为这本书的主要语言。