我有两个网站将显示英文和阿拉伯版本。
环顾四周后,我发现qTranslate插件对于一个简单的解决方案非常有用。
我使用.htaccess作为以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^ar[\/]?$ index.php?lang=ar
RewriteRule ^en[\/]?$ index.php?lang=en
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>在主题functions.php中,用于检测语言的内容如下:
function inspectVars($vars) {
session_start();
if ($_GET['lang'] == "ar") {
$_SESSION['custom_lang'] = "ar";
} elseif ($_GET['lang'] == "en") {
$_SESSION['custom_lang'] = "en";
} elseif (!isset($_GET['lang']) && !isset($_SESSION['custom_lang'])) {
$_SESSION['custom_lang'] = "en";
}
$GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
return $vars;
}
add_filter("query_vars", "inspectVars");此会话设置用于切换RTL/LTR样式表。有没有更好的方法来做到这一点?
现在,我面临的问题是:
domain.com/ar/someslugsoranything和domain.com/en/someslugsoranything那样保存这个网址。编辑:我后来评论了以下内容,因为启用qTranslate自己的语言开关将保持所选语言的持久性。实际上,可以省略整个inspectVars函数。
$GLOBALS['q_config']['language']= $_SESSION['custom_lang'];发布于 2012-12-04 19:11:13
我已经解决了大部分问题。
通过注释掉.htaccess文件的两行:
#RewriteRule ^ar[\/]?$ index.php?lang=ar
#RewriteRule ^en[\/]?$ index.php?lang=en 许多问题都是通过我刚刚发现的以下文章解决的:
基于qTranslate语言的内容显示我现在最大的问题是混合的HTML文本,需要用阿拉伯语进行切换。在模板中,我尝试了qTranslate短代码和<!--:lang--><!--:-->标记,但它们在那里不起作用。另外,将阿拉伯语直接写入HTML并不是一个好主意。
https://stackoverflow.com/questions/13708596
复制相似问题