8

我的 php 文件中有这样的字符串:

<?php
__('My string A', 'a_theme');
_e('My string B', 'a_theme');
?>

并且没有出现在“字符串翻译”中。

我还购买并安装了这个主题:http ://preview.ait-themes.com/index.php?bartype=desktop&theme=touroperator并且该主题的字符串也没有出现在 WPML 的“字符串翻译”中。

这是我安装它时已经在主题中的字符串的一个示例:

<input type="text" id="dir-searchinput-location" class="dir-searchinput-select" placeholder="{__ 'Destination'}">

是否有一些我需要做的额外配置或其他什么?

感谢帮助

4

3 回答 3

24

要让字符串出现在字符串翻译中,您首先需要转到主题和插件本地化。向下滚动到主题部分中的字符串,然后单击扫描主题以查找字符串按钮。然后,WPML 将检测任何未注册或新添加的正确格式化以进行本地化的字符串。

如果有效,您将a-theme在“域”列中看到您的主题,并在“计数”列中看到检测到的字符串数。单击查看需要翻译的字符串按钮将带您到字符串翻译。如果任何字符串的本地化格式不正确,则不会更新计数。

如果您更新现有字符串或添加新字符串,则需要在 WPML 将它们添加到字符串翻译之前重新扫描。

第一个示例中的格式看起来不错,WPML 应该检测到字符串,但在第二个示例中,您没有声明域。如果没有域,WPML 将不会提取该字符串。

正确的格式是

__('Your string', 'yourDomain') 或者 _e('Your string', 'yourDomain')

在这种情况下,域应该是您的主题的名称,'a_theme'.

于 2013-11-10T22:26:56.917 回答
1

我有同样的问题,我的主题是“bookyourtravel”,插件“WPML string translation”,没有翻译这些文本:

<?php _e('Accommodations', 'bookyourtravel'); ?>
<?php _e('Tour', 'bookyourtravel'); ?>
<?php _e('Accommodation', 'bookyourtravel'); ?>    

没有翻译!!!

我的解决方案是:

  1. 在 WPML 中转到“主题和插件的本地化”,检查由 WPML 翻译,然后单击保存。
  2. 现在在“翻译的字符串”中,单击按钮:保存设置并重新扫描字符串。

如果使用缓存,则清除页面中的所有缓存。

准备好了,这工作!!!!!!!

来源:https ://wpml.org/forums/topic/using-gettext-for-hard-coded-strings-what-else/

于 2015-10-12T17:07:50.703 回答
1

这些字符串以某种方式被缓存。因此,如果您添加了新的(以正确的方式)并且它仍然没有出现在字符串翻译中,请转到“主题和插件本地化”并点击“扫描主题以查找字符串”按钮。这将重新索引字符串,并且应该出现您新添加的字符串(对我有用)。

于 2015-08-18T09:28:31.660 回答