QTranslate+高级自定义域:如何拥有多语言所见即所得编辑器?

时间:2012-11-07 作者:stefano1

这是我的设置:

Wordpress:3.4.2,qTranslate:2.5.32,高级自定义字段:3.5.1,我也安装了qTranslate扩展:1.1.1,但我不知道它是如何工作的如何将多语言WYSIWYG自定义字段编辑区域以及每种语言的选项卡作为主文本编辑器?

谢谢斯特凡诺

1 个回复
SO网友:gmazzap

提示1:不要使用qtranslate。我已经用了很多年了,现在我可以说,从来没有比这些钱花得更好的了WPML, 特别是与解决qT带来的问题所需的工作相比。还要考虑到WPML与大量插件和主题兼容,在我使用qTranslate的几年中,从未找到与之兼容的主题或插件。

提示2:无论您使用哪个插件(qT或WPML)来做您想要做的事情,都需要编写一个完整而复杂的插件。

解决方法是使用different fields for different languages.

E、 g.将字段“size”表示英语,将字段“taglia”表示意大利语,依此类推。而不是在模板文件中使用switch 陈述

下面的代码只是一个示例

function get_localized_size($postid) {
    if ( ! intval($postid) ) {
      global $post;
      if ( empty($post) || ! is_object($post) || ! isset($post->ID) ) return;
      $postid = $post->ID;
    }
    $currlang = qtrans_getLanguage() ? : \'en\'; // <-- qtranslate
    // $currlang = defined(\'ICL_LANGUAGE_CODE\') ? ICL_LANGUAGE_CODE : \'en\'; // <-- WPML
    switch ( strtolower($currlang) ) {
      case \'es\' :
        $field = \'tamano\';
        break;
      case \'it\' :
        $field = \'taglia\';
        break;
      case \'fr\' :
        $field = \'taille\';
        break;
      case \'en\' :
      default :
        $field = \'size\';
        break;
    }
    $size = get_post_meta($postid,  $field, true);
    return sprintf( __(\'The size is: %s\', YOURTEXTDOMAIN ), $size );
}
而不是在循环中:

...
the_post();
...
echo get_localized_size(); // pass post ID as argument when out of the loop
...

结束

相关推荐

wysiwyg is scrambled

我对wordpress编辑器有问题。它不断删除我的输入并扰乱内容。我如何解决这个问题?

QTranslate+高级自定义域:如何拥有多语言所见即所得编辑器? - 小码农CODE - 行之有效找到问题解决它

QTranslate+高级自定义域:如何拥有多语言所见即所得编辑器?

时间:2012-11-07 作者:stefano1

这是我的设置:

Wordpress:3.4.2,qTranslate:2.5.32,高级自定义字段:3.5.1,我也安装了qTranslate扩展:1.1.1,但我不知道它是如何工作的如何将多语言WYSIWYG自定义字段编辑区域以及每种语言的选项卡作为主文本编辑器?

谢谢斯特凡诺

1 个回复
SO网友:gmazzap

提示1:不要使用qtranslate。我已经用了很多年了,现在我可以说,从来没有比这些钱花得更好的了WPML, 特别是与解决qT带来的问题所需的工作相比。还要考虑到WPML与大量插件和主题兼容,在我使用qTranslate的几年中,从未找到与之兼容的主题或插件。

提示2:无论您使用哪个插件(qT或WPML)来做您想要做的事情,都需要编写一个完整而复杂的插件。

解决方法是使用different fields for different languages.

E、 g.将字段“size”表示英语,将字段“taglia”表示意大利语,依此类推。而不是在模板文件中使用switch 陈述

下面的代码只是一个示例

function get_localized_size($postid) {
    if ( ! intval($postid) ) {
      global $post;
      if ( empty($post) || ! is_object($post) || ! isset($post->ID) ) return;
      $postid = $post->ID;
    }
    $currlang = qtrans_getLanguage() ? : \'en\'; // <-- qtranslate
    // $currlang = defined(\'ICL_LANGUAGE_CODE\') ? ICL_LANGUAGE_CODE : \'en\'; // <-- WPML
    switch ( strtolower($currlang) ) {
      case \'es\' :
        $field = \'tamano\';
        break;
      case \'it\' :
        $field = \'taglia\';
        break;
      case \'fr\' :
        $field = \'taille\';
        break;
      case \'en\' :
      default :
        $field = \'size\';
        break;
    }
    $size = get_post_meta($postid,  $field, true);
    return sprintf( __(\'The size is: %s\', YOURTEXTDOMAIN ), $size );
}
而不是在循环中:

...
the_post();
...
echo get_localized_size(); // pass post ID as argument when out of the loop
...