我有两个网站以英语和阿拉伯语版本显示。
环顾四周后,我发现 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/ar 和 domain/en 进行切换,但首先要回家。
- 我想保留 url
domain.com/ar/someslugsoranything
和domain.com/en/someslugsoranything
. - 我有一些图像,模板上的幻灯片需要随着语言的变化而切换。什么是最好的方法?还有HTML格式的文本,也需要切换。
编辑:我后来注释掉了以下内容,因为启用 qTranslate 自己的语言切换器可以保持所选语言的持久性。实际上整个inspectVars
函数都可以省略。
$GLOBALS['q_config']['language']= $_SESSION['custom_lang'];