为什么字符串不出现在WPML的“字符串翻译”中?

时间:2013-11-10 12:10:06

标签: wordpress wpml

我的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'}">

我需要做一些额外的配置吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:22)

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

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

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

第一个示例中的格式设置看起来没问题,WPML应检测字符串,但在第二个示例中,您尚未声明域。没有域名,WPML就不会拿起字符串。

格式正确

__('Your string', 'yourDomain') 要么 _e('Your string', 'yourDomain')

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我有同样的问题,我的主题是“bookyourtravel”,插件“WPML字符串翻译”,没有翻译这些文字:

#include <stdio.h>
#include <stdlib.h>

#define NUM_POINTS   5    // each vector has 5 points

int main()
{
  double xvals[NUM_POINTS] = {1.0, 2.0, 3.0, 4.0, 5.0};
  double yvals[NUM_POINTS] = {5.0 ,3.0, 1.0, 3.0, 5.0};
  double Avals[NUM_POINTS] = {4.0 ,5.0, 3.0, 0.0, 1.0};

  int i;
  //Write xvals, yvals, and Avals to a temporary file              
  FILE * temp = fopen("data.temp", "w");

  for(i=0; i < NUM_POINTS; i++)
    fprintf(temp, "%lf %lf %lf\n", xvals[i]  , yvals[i], Avals[i]);

  fclose(temp);   // close file if it won't be used anymore

  // open interface to gnuplot. Option -p lets plot windows survive after program exits
  FILE * gnuplotPipe = popen ("gnuplot -p", "w");

  // send commands to gnuplot one by one.
  fprintf(gnuplotPipe, "%s \n", "set title 'Trajectory\\_ARM'");      // command 0: define the graph title
  fprintf(gnuplotPipe, "%s \n", "plot 'data.temp' u 1:2 w lp");       // command 1: plot yvals vs xvals, and Avals vs xvals

  fflush(gnuplotPipe);      // plots the data with the current commands

  // we obtained a plot of data.temp
  // now, we place an instruction to pause the program until a key is typed
  getchar();                

  // add a plot to the current graph
  fprintf(gnuplotPipe, "%s \n", "replot 'data.temp' u 1:3 w lp");

  pclose(gnuplotPipe);      // close gnuplot if it won't be used anymore
  return 0;
}

没有翻译!!!

我的解决方案是:

  1. 在WPML中转到“主题和插件的本地化”,签入 由WPML翻译,然后clic en Save。
  2. 现在,“翻译字符串”,clic in按钮:保存设置并重新扫描字符串。
  3. 如果您使用缓存,则清除页面中的所有缓存。

    准备好了,这有效!!!!!!!

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