我正在尝试用qTranslate X制作一个基本的语言切换器,例如:
FR | EN
有一个函数可以实现: qtranxf_generateLanguageSelectCode('text'); 但它只能接受'text','image'或'both',所以它不是't fit to my needs : ' text'是该语言的全名 .
qtranxf_generateLanguageSelectCode('text');
我怎样才能显示语言代码?有没有想过制作过滤器来做到这一点?
https://qtranslatexteam.wordpress.com/faq/
例如,要仅在顶级语言菜单项中显示标志,请输入#qtransLangSw?title = none,如果不需要显示当前语言,请输入#qtransLangSw?title = none&current = hidden,依此类推 .
尝试在翻译代码下面添加以下脚本 .
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更改语言名称 .
一位朋友帮助了我,这是基于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); }
您可以使用小部件
<?php the_widget('qTranslateXWidget', array('type' => 'custom', 'format' => '%c') );?>
(%c - 语言2字母代码)
应该注意的是,如果您想使用下拉类型和2字母代码 - 这将不起作用,因为格式参数仅适用于'自定义'类型 . 在这种情况下,我会选择耶胡达提拉姆答案(特别是如果你有很多语言,你不知道你的客户想要使用哪种语言) .
More documentation here
检查插件我发现generateLanguageSelectCode有比记录更多的类型 . 因此,要使用语言代码,您只需使用“短”类型,如下所示:
qtranxf_generateLanguageSelectCode('short');
这可能是自上次回答后添加的功能 .
以下是所有切换器类型的概述:'text','image','both','short','css_only','custom'和'dropdown' . 我没有研究过不同类型的工作原理,但你可以在插件文件夹的qtranslate_widget.php中找到它们 .
为什么不根据需要更改语言名称?它可以在语言编辑中使用,不会影响任何内容 .
我已经使用以下查询完成了它,它对我来说很好 .
<?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 } ?>
7 回答
https://qtranslatexteam.wordpress.com/faq/
例如,要仅在顶级语言菜单项中显示标志,请输入#qtransLangSw?title = none,如果不需要显示当前语言,请输入#qtransLangSw?title = none&current = hidden,依此类推 .
尝试在翻译代码下面添加以下脚本 .
Serverside解决方案:
请查找以下代码,将语言名称修改为语言代码而不更改插件代码,您可以通过word press filter进行操作 .
将下面的代码粘贴到function.php文件中 .
您可以直接通过编辑语言名称从wp-admin更改语言名称 .
一位朋友帮助了我,这是基于Ash Patel的答案,但是以更清洁的方式(恕我直言):
您可以使用小部件
(%c - 语言2字母代码)
应该注意的是,如果您想使用下拉类型和2字母代码 - 这将不起作用,因为格式参数仅适用于'自定义'类型 . 在这种情况下,我会选择耶胡达提拉姆答案(特别是如果你有很多语言,你不知道你的客户想要使用哪种语言) .
More documentation here
检查插件我发现generateLanguageSelectCode有比记录更多的类型 . 因此,要使用语言代码,您只需使用“短”类型,如下所示:
这可能是自上次回答后添加的功能 .
以下是所有切换器类型的概述:'text','image','both','short','css_only','custom'和'dropdown' . 我没有研究过不同类型的工作原理,但你可以在插件文件夹的qtranslate_widget.php中找到它们 .
为什么不根据需要更改语言名称?它可以在语言编辑中使用,不会影响任何内容 .
我已经使用以下查询完成了它,它对我来说很好 .