- 状态
- 已解决
问题概述
当您更改语言区域设置时,例如,将德语从 de_DE 更改为 de_DE_formal,您可能会注意到字符串的翻译停止显示。
出现此问题是因为 WPML 无法再找到具有匹配语言区域设置的 MO 文件。在我们的示例中,它会查找 some-domain-de_DE_formal.mo,但该文件不存在。相反,WPML 只有 some-domain-de_DE.mo 的记录。
临时解决方法
要解决此问题,您需要执行以下两项操作:
1. 如果您有任何通过 WPML -> 字符串翻译页面翻译的字符串,请前往 WPML -> 支持 -> 故障排除页面,然后单击 Show custom MO Files Pre-generation dialog box 按钮。在出现的对话框中,单击蓝色按钮以重新生成自定义 MO 文件。
2. 第一步很可能无法修复所有缺失的字符串。这是因为某些值可能来自其他插件或主题提供的缺失的本机 MO 文件。要解决此问题,您必须找到缺失的 MO 文件,并使用带有新语言代码的新名称创建副本。
在我们的示例中,如果字符串通常从 woocommerce-de_DE.mo 文件加载,我们必须找到该文件并使用与当前区域设置匹配的名称创建它的副本:woocommerce-de_DE_formal.mo。您必须复制网站使用的所有缺失文件。
您可以找到这些 MO 文件的典型位置包括:
- ../wp-content/languages/
- ../wp-content/plugins/plugin-in-question/
- ../wp-content/plugins/plugin-in-question/languages/
最后,您还可以在数据库的 wp_icl_mo_files_domains 表中找到特定路径。