将多语言 Drupal 6 升级到 Drupal 8
本页面文档提供了从 Drupal 6 升级到 Drupal 8 的多语言升级概览。Drupal 7 到 Drupal 8 的类似页面将很快创建。在等待该页面期间,请参阅 多语言迁移的 META 问题。
在开始之前:启用 D8 模块
Drupal 8 在核心中具有广泛的多语言支持。如《Drupal 8 多语言指南》中所述,多语言功能由以下核心模块提供:
- Language(语言)
- Interface Translation(界面翻译)
- Content Translation(内容翻译)
- Configuration Translation(配置翻译)
请确保在运行升级之前,您的 Drupal 8 站点已启用所有这些核心模块。除了上述四个模块外,请确保已启用核心多语言模块 Migrate Drupal。
多语言节点
i18n 模块在 Drupal 6 中为节点提供多语言功能。Drupal 8 核心中提供了类似功能。
内容类型的语言设置
- 支持从 Drupal 6 到 Drupal 8 的内容类型语言设置迁移。
没有翻译的语言节点
- 在 Drupal 6 中,节点可以具有语言而不带翻译。
- Drupal 8 中的结果与 Drupal 6 概念上相同。将存在两个单独的节点实体,每个节点的语言会被自动迁移。
- 下图说明了这种迁移。

节点翻译
Drupal 6 和 Drupal 8 的翻译概念根本不同。
在 Drupal 6 中,我们有两个节点,一个是英文,一个是芬兰文。这两个语言版本是单独的节点对象,具有各自的节点 ID。这些节点相互关联为翻译。
Drupal 8 的翻译概念完全不同。只有一个节点实体,它是所有语言版本的“共享”实体,翻译是在字段级别完成的。
下图展示了迁移过程。两个节点(英文和芬兰文)的内容会迁移到同一个节点,在字段级别具有语言版本。从 node/2 到 node/1 的重定向会在迁移过程中自动创建。

节点版本的翻译
警告:节点版本的翻译尚未迁移!剩余任务:
多语言菜单项
i18n 模块有一个菜单翻译子模块,在 Drupal 6 中提供以下功能:
- 为菜单项定义语言
- 通过字符串翻译界面翻译菜单项
Drupal 8 核心中提供了类似功能。支持从 Drupal 6 迁移菜单项的语言和翻译。
多语言评论
警告:评论的迁移尚未完成!剩余任务:
- #2981393: 迁移评论类型的语言设置。变通方法:此设置可以在升级后手动在 Drupal 8 的评论类型设置中修改。
多语言词汇表和分类术语
i18n 模块有一个分类翻译子模块,在 Drupal 6 中为词汇表和分类术语提供多语言功能。Drupal 8 核心中提供了类似功能。
警告:多语言词汇表的迁移尚未完成!
Drupal 6 有两种不同的多语言词汇表概念。请参阅下面的剩余任务。
迁移词汇表、名称和描述的翻译
- 支持迁移词汇表名称和描述的翻译
参考:Drupal 6 词汇表翻译模式
Drupal 6 支持不同的多语言词汇表概念,如下图所示。

“本地化术语”和“按语言划分”概念如下所述。“词汇表语言”仅在词汇表具有固定语言时适用(设置“将语言应用于词汇表”)。在固定语言概念中,词汇表的所有术语都会获得该语言。
本地化术语
“本地化术语”迁移的剩余任务
临时解决方案:语言设置可以在 Drupal 8 站点手动更改。
没有变通方法(只能在 Drupal 8 手动翻译术语)。
没有变通方法(只能在 Drupal 8 手动将术语与节点翻译关联)。
Drupal 6 中“本地化术语”的概念如下图所示。
- 我们有两个节点,一个英文(nid 1),一个芬兰文(nid 2)。这些节点相互关联为翻译。
- 我们有一个分类术语实体(tid 1)。英文和芬兰文节点都指向同一个术语。
- 术语的“标题和描述”可以通过 i18n / String 翻译模块翻译。
Drupal 8 对应于“本地化术语”的概念:
- 如上所述,节点翻译会迁移到 Drupal 8,因此我们只有一个节点包含两个语言版本。
- 我们有一个分类术语,与 Drupal 6 相同。
- 英文和芬兰文版本的节点都指向同一个术语。

按语言划分的术语
“按语言划分术语”迁移的剩余任务:
临时解决方案:语言设置可以在 Drupal 8 站点手动更改。
没有变通方法(只能在 Drupal 8 手动将术语与节点翻译关联)。
D6 “按语言划分术语”的概念如下图所示。
- 我们有两个节点,一个英文,一个芬兰文。它们可以关联为翻译。
- 我们有两个单独的分类术语对象,一个英文,一个芬兰文。它们有各自的术语 ID,并可以互相关联为翻译。
Drupal 8 中对应的概念如下:
- 如上所述,节点翻译会迁移到 Drupal 8,因此我们只有一个节点,但字段是可翻译的。
- 分类术语引用字段设置为可翻译,这样英文版本的节点可以指向英文术语(term/1),芬兰文版本的节点可以指向芬兰文术语(term/2)。
- 注意:在 Drupal 8 中,这两个术语不能相互关联为翻译。

其他多语言迁移
支持的其他迁移包括:
- 支持从 Drupal 6 到 Drupal 8 的启用语言迁移。
- 支持从 Drupal 6 到 Drupal 8 的语言协商设置迁移。
- 支持从 Drupal 6 到 Drupal 8 的区块翻译迁移。
D6-D8 其他剩余迁移任务:
#2845975: 迁移 Drupal 6 用户资料字段翻译选项
发现错误?需要支持?想要参与迁移贡献?
如果您发现与多语言迁移相关的错误,请将其报告为 多语言 META 问题的子问题。
如果您需要支持,请加入 Drupal Slack 的 #migration 活跃频道,或在 Drupal Stack Exchange 提问。
如果您想为迁移问题做出贡献,欢迎加入!请访问 迁移贡献 页面。