我注意到在我的 2 个 wordpress 安装(3.8.1 更新到 4.0)中,mqtranslate(相同的代码)在使用基于 url 的路由时不会翻译内容,类似于你的问题。
我刚刚在新的 wp 4.0 上安装了“qtranslate plus”,它与基于 url 的路由按预期工作(但似乎弄乱了帖子标题中的日期格式)。
所以我认为问题可能是版本号不能很好地与 qtranslate 一起使用。ppqtranslate_core.php 第 173 行中的 preg_match-code 可能没有给出正确的结果。
解决方法:此时我停止挖掘并切换到基于域的路由(英语为 en.site.com,德语为 site.com)。这完美无缺。如果你能做到,那就试试吧。你需要
- 在您的域提供商管理面板中将子域 *.site.com 路由到您的服务器 ip(或 en.site.com 用于单一语言,如果您的提供商不允许使用通配符 *)
- 在您的网络服务器 (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>
并重新启动网络服务器
/etc/init.d/httpd restart
在此基于域的翻译应该可以工作之后。