- 状态
- 未解决
- 报告针对
- WPML Multilingual CMS 4.5.0
问题概述
过去,WordPress 和 WPML 总是假设字符串的默认语言是英语。
虽然现在可以使用 WPML 更改字符串的默认语言(从而将字符串从其他语言翻译成英语),但您仍然无法在导入/导出 .po 部分中导入或导出英语字符串。
临时解决方法
在我们努力寻找永久解决方案期间,您可以按照以下步骤解决此问题:
-
- 确保您使用的是最新版本的 WPML
- 打开 …/wp-content/plugins/wpml-string-translation/menu/string-translation.php 文件。 您需要在 3 个不同的位置进行修改
- 首先,找到第 640 行和第 748 行,并替换此行:
<span class="token delimiter important"><?php</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token variable">$active_languages</span> <span class="token keyword">as</span> <span class="token variable">$al</span> <span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$al</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'code'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token variable">$string_settings</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'strings_language'</span><span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">continue</span><span class="token punctuation">;</span><span class="token punctuation">}</span> <span class="token delimiter important">?></span> - 替换为:
<?php foreach($active_languages as $al): ?>
- 然后,找到第 655 行并删除此代码:
if ( $al['code'] == $string_settings['strings_language'] ) { continue;} - 最后,前往 WPML > 字符串翻译,请选择同时根据 .po 文件创建翻译,并从下拉菜单中选择英语(修改代码后应该会出现),然后将其导入。