个性化阅读
专注于IT技术分析

在导航中使用语言按钮切换语言WordPress

我创建了一个Wordpress主题, 需要使用德语和英语。在导航中, 我有一个按钮, 该按钮应根据他们当前使用的语言来更改语言。 (如果他们正在查看英语页面, 则应该显示” Deutsch”, 反之亦然。)

我正在使用qTranslate Plus, 并选择在url(/ de或/ en)中显示语言代码。我的主要问题在于, 当我进入自定义页面(带有模板的Wordpress页面)(/ custom-page)并更改语言时, 它不会更改为德语, 尽管在源代码中链接显示/ de / custom-page 。它完全忽略了语言代码, 并再次带我进入/ custom-page。因此, 似乎正在剥离语言代码。

这是标准的Wordpress行为吗?如果是, 该如何禁用它?还有没有更好, 更可靠的语言更改方式?可以在会议中存储该语言吗?

注意:”隐藏未翻译的内容”和”隐藏默认语言的URL语言信息”。未选中。

预先感谢, 彼得


#1


我在一个正在处理的网站上遇到了类似的问题。我安装了此扩展程序, 似乎可以解决URL的某些问题

Qtranslate Slug

或者, 你可以使用条件语句来检测html lang属性, 从而使用javascript / jQuery定位按钮。像这样:

   var lang = document.documentElement.lang;
 if (lang == 'en-US'){
    $('button').html('your button text')
 }

#2


qTranslate支持不佳。如果你刚刚开始实施它, 我想你应该尝试一下其他插件。以下是qTranslate的一些替代品:mqTranslate和zTranslate。两者都是qTranslate分支, 因此你不应松动任何东西。

至于你的问题, 你可以使用lang选择器简单地使用CSS隐藏当前语言:

:lang(当前语言代码){显示:无; / *另一种隐藏事物的方式* /文字缩进:9999px;溢出:隐藏; }

希望这可以帮助。

最好的祝福。


#3


我在我的2个wordpress安装(3.8.1更新为4.0)中注意到, 使用基于URL的路由时, mqtranslate(相同的代码)不会转换内容, 类似于你的问题。

我刚刚在新的wp 4.0上安装了” qtranslate plus”, 它与基于url的路由一样工作正常(但似乎弄乱了post标头中的日期格式)。

所以我认为问题可能是版本号不能与qtranslate一起正常工作。 ppqtranslate_core.php第173行中的preg_match-code可能无法给出正确的结果。

解决方法:我此时停止挖掘, 并切换到基于域的路由(en.site.com(英语)和site.com(德语))。这可以完美地工作。如果可以做到, 请尝试。你需要

  1. 将子域* .site.com路由到域提供商管理器面板中的服务器ip(如果提供商不允许使用通配符*, 则将en.site.com用于单一语言)
  2. 在你的网络服务器(en.site.com)上设置一个子域, 以在与原始站点相同的目录中进行路由。只需将以下代码(编辑域名和webroot的路径)添加到你的httpd.conf(或某些服务器上的apache2.conf)

添加到httpd.conf:

<VirtualHost *:80>
ServerName "en.site.com"
ServerAdmin webmaster@localhost
DocumentRoot /the/path/to/your/html/
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /the/path/to/your/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow, deny
    allow from all
</Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

并重新启动Web服务器

/etc/init.d/httpd restart

这种基于域的翻译应该可以。

赞(0)
未经允许不得转载:srcmini » 在导航中使用语言按钮切换语言WordPress

评论 抢沙发

评论前必须登录!