WPML

WPML 在自定义数据库表中存储语言、翻译和字符串数据。了解这些表如何与 WordPress 表和内容相关联。

WPML 数据库模型

下图展示了 WPML 使用的数据库表模型:

WPML 数据库表图解

语言和翻译表

保存语言和翻译信息的表名为 icl_translations

  • 每个配置为可翻译的网站内容元素(文章、页面、标签、分类、自定义文章类型和自定义分类法)都在此表中有一个条目。注意:评论不可翻译,但它们在 icl_translations 中有记录,因为它们被分配了语言信息。
  • 该条目指定了项目的语言及其所属的翻译组(元素类型)。
  • 同一翻译集群的条目在 element_type 和 trid 列中共享相同的值。
  • 在同一集群中没有源语言(NULL)的条目是原始条目。

它包含以下列:

  • translation_id – 序列号
  • element_type – 元素的类型。该值在钩子 wpml_element_type 中进行了解释和检索。
  • element_id – 项目的 ID(对于文章类型为 post_id,对于分类法术语为 term_taxonomy_id
  • trid – 翻译组的 ID
  • language_code – 项目的语言代码
  • source_language_code – 如果已翻译,则为原始项目的语言

例如,如果我们有一篇 ID=3 的英语文章,将其翻译为西班牙语,且西班牙语翻译的 ID=7,那么 icl_translations 表将如下所示:

translation_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* 因为这两个条目的 trid 值相同,所以它们互为翻译。该值本身并不重要。
WPML 的 icl_translations 及相关表

在较旧的站点(在 WPML 4.8 之前创建)上,您可以运行一次性流程来优化翻译表

国旗表

WPML 附带了大量的国旗集合。请注意,将语言与国家/地区相关联可能会带来问题。许多语言在不同的国家/地区使用(有时会有所不同)。不过,国旗仍然是一个有用的视觉提示,可帮助访问者轻松找到他们的语言。

WPML 的国旗存储在 res/flags 目录中,而 icl_flags 表指示每个国家/地区要返回的国旗。icl_flags 表的列包括:

  • id – 序列号
  • lang_code – 语言代码
  • flag – 国旗文件的名称
  • from_template – “0”:从 WPML 的 res/flags 文件夹中获取国旗,“1”:从主题目录中获取国旗

如果您想使用不同的旗帜,可以前往 WPML语言,然后单击编辑语言来上传自定义旗帜文件。

添加自定义旗帜
添加自定义旗帜

您可以使用同一个编辑语言页面来添加自定义语言

字符串翻译表

大多数 WordPress 网站都包含一些不属于任何项目(文章、页面、标签、分类)但仍需要翻译的字符串,例如博客的副标题。

WPML 包含一个名为字符串翻译的机制,用于处理这些字符串。

这些字符串保存在 icl_strings 表中,包含以下列:

  • id – 序列号
  • language – 语言
  • context – 字符串的上下文(指示字符串所属的内容)
  • name – 字符串的名称
  • value – 字符串的值(其内容)
  • string_package_id - 字符串所属包的 ID
  • type – 通过翻译编辑器编辑字符串时使用的编辑器类型(LINE、AREA 或 VISUAL)
  • title – 在翻译编辑器中显示的字符串标题
  • status – 翻译状态,指示字符串是否已完全翻译为所有语言
  • gettext_context – gettext 函数中设置的上下文,例如 _x
  • domain_name_context_md5 – 用于提高查找性能的唯一键

字符串的翻译保存在 icl_string_translations 表中:

  • id – 序列号
  • string_id – 正在翻译的字符串的 ID(序列号)
  • language – 翻译的语言
  • status – 翻译的状态(完成 / 未完成)
  • value – 翻译本身
  • translator_id – 译员的 ID
  • translation_service – 用于翻译字符串的翻译服务。可以为空、本地或远程服务。
  • batch_id – 通过翻译服务翻译字符串时的批次 ID
  • translation_date – 翻译日期
WPML 的 icl_strings 和 icl_string_translations 表

所有 WPML 表

以下是 WPML 使用的所有表的完整列表:

wp_icl_background_task
wp_icl_content_status
wp_icl_core_status
wp_icl_flags
wp_icl_languages
wp_icl_languages_translations
wp_icl_locale_map
wp_icl_message_status
wp_icl_mo_files_domains
wp_icl_node
wp_icl_reminders
wp_icl_strings
wp_icl_string_batches
wp_icl_string_packages
wp_icl_string_positions
wp_icl_string_status
wp_icl_string_translations
wp_icl_translate
wp_icl_translate_job
wp_icl_translations
wp_icl_translation_batches
wp_icl_translation_downloads
wp_icl_translation_status

本节更多内容

作者:Amir · 最后更新时间:2025年8月28日