WPML
状态
未解决
报告针对
WPML Multilingual CMS 4.5.0

问题概述

过去,WordPress 和 WPML 总是假设字符串的默认语言是英语。

虽然现在可以使用 WPML 更改字符串的默认语言(从而将字符串从其他语言翻译成英语),但您仍然无法在导入/导出 .po 部分中导入或导出英语字符串。

临时解决方法

在我们努力寻找永久解决方案期间,您可以按照以下步骤解决此问题:



    1. 确保您使用的是最新版本的 WPML

    2. 打开 …/wp-content/plugins/wpml-string-translation/menu/string-translation.php 文件。 您需要在 3 个不同的位置进行修改

 

  1. 首先,找到第 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>


  2. 替换为:
    <?php foreach($active_languages as $al):  ?>  


  3. 然后,找到第 655 行并删除此代码:
    											if ( $al['code'] == $string_settings['strings_language'] ) {
    												continue;}


  4. 最后,前往 WPML > 字符串翻译,请选择同时根据 .po 文件创建翻译,并从下拉菜单中选择英语(修改代码后应该会出现),然后将其导入。

所有已知问题 →