Wordpress:q使用语言代码翻译X语言切换器

时间:2015-04-15 12:12:44

标签: wordpress qtranslate-x

我尝试使用qTranslate X制作基本的语言切换器,例如:

FR | EN

实现这一目标的功能:qtranxf_generateLanguageSelectCode('text');但它只能接受文字','图像'或者'两者都是,所以它不符合我的需要:' text'是该语言的全名。

如何显示语言代码?有没有想过制作过滤器呢?

7 个答案:

答案 0 :(得分:8)

尝试在翻译代码下面添加以下脚本。

echo qtranxf_generateLanguageSelectCode('text');
<script>jQuery(document).ready(function(){ jQuery('.lang-en a span').html('EN'); jQuery('.lang-fr a span').html('FR'); })</script>

Serverside解决方案:

请在下面找到将语言名称修改为语言代码而不更改插件代码的代码,您可以通过word press filter进行。

将下面的代码粘贴到function.php文件中。

add_filter('template_include','start_buffer_EN',1);
function start_buffer_EN($template) {
  ob_start('end_buffer_EN');  
  return $template;
}
function end_buffer_EN($buffer) {
  return str_replace('<span>English</span>','<span>EN</span>',$buffer);  
}

add_filter('template_include','start_buffer_FR',1);
function start_buffer_FR($template) {
  ob_start('end_buffer_FR');
  return $template;
}
function end_buffer_FR($buffer) {  
  return str_replace('<span>Français</span>','<span>FR</span>',$buffer);
}

您可以直接通过编辑语言名称从wp-admin更改语言名称..

Q-translate-x-change-image-name-from-admin

答案 1 :(得分:1)

一位朋友帮我解决了这个问题,它以Ash Patel的答案为基础,但以更清洁的方式(恕我直言):

function my_qtranxf_generateLanguageSelectCode($style='', $id='') {
    ob_start();  
    qtranxf_generateLanguageSelectCode($style, $id);
    $o = ob_get_contents();
    ob_end_clean();
    return str_replace(array('English', 'Français'),array('EN', 'FR'), $o); 
}

答案 2 :(得分:1)

您可以使用小部件

<?php the_widget('qTranslateXWidget', array('type' => 'custom', 'format' => '%c') );?>

(%c - 语言2字母代码)

应该注意的是,如果您想使用下拉类型和2字母代码 - 这将无效,因为格式参数仅适用于'自定义'类型。在这种情况下,我会选择Yehuda Tiram的答案(特别是如果你有很多语言,而且你不知道你的客户想要使用哪种语言)。

More documentation here

答案 3 :(得分:1)

检查插件我发现generateLanguageSelectCode的类型多于记录的类型。因此,要使用语言代码,您只需使用“短”类型,如下所示:

qtranxf_generateLanguageSelectCode('short');

这可能是自上次回答后添加的功能。

以下是所有切换台类型的概述: 'text','image','both','short','css_only','custom'和'dropdown'。我没有研究过不同类型的工作方式,但你可以在插件文件夹的qtranslate_widget.php中找到它们。

答案 4 :(得分:0)

为什么不根据需要更改语言名称? 它可以在语言编辑中使用,不会影响任何内容。

答案 5 :(得分:0)

我已经使用以下查询完成了它,它对我来说很好。

<?php if (qtranxf_getLanguage() == 'ar') { ?>
<script>
    jQuery(document).ready(function () {
        var current_URL = jQuery(location).attr('href');
        url = current_URL.replace('/ar/', '/en/')
        jQuery('.languages-selection ul li a').attr('href', url)
    });
</script>
<?php } elseif (qtranxf_getLanguage() == 'en') { ?>
<script>
    jQuery(document).ready(function() {
        var current_URL = jQuery(location).attr('href');
        url = current_URL.replace('/en/', '/ar/')
        jQuery('.languages-selection ul li a').attr('href', url)
    });
</script>
<?php } ?>

答案 6 :(得分:0)

this

例如,要仅在顶部语言菜单项中显示标志,请输入#qtransLangSw?title = none,如果不需要显示此当前语言,则输入#qtransLangSw?title = none&current = hidden,然后等等。