首页 文章

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

提问于
浏览
4

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

FR | EN

有一个函数可以实现: qtranxf_generateLanguageSelectCode('text'); 但它只能接受'text','image'或'both',所以它不是't fit to my needs : ' text'是该语言的全名 .

我怎样才能显示语言代码?有没有想过制作过滤器来做到这一点?

7 回答

  • 0

    https://qtranslatexteam.wordpress.com/faq/

    例如,要仅在顶级语言菜单项中显示标志,请输入#qtransLangSw?title = none,如果不需要显示当前语言,请输入#qtransLangSw?title = none&current = hidden,依此类推 .

  • 0

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

    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

  • 0

    一位朋友帮助了我,这是基于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); 
    }
    
  • 1

    您可以使用小部件

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

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

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

    More documentation here

  • 1

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

    qtranxf_generateLanguageSelectCode('short');
    

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

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

  • 1

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

  • 9

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

    <?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 } ?>
    

相关问题