我有兩個網站以英文和阿拉伯文版本顯示。雙語wordpress:如何更好地切換語言?
環顧四周後,我發現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
用於檢測語言以下:我用於切換RTL/LTR樣式表
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");
此會話設置。有沒有更好的方法來做到這一點?現在
,我面臨的問題是:
- 如何使用一個鏈接,會切換當前頁面,博客成其他語言?我使用domain/ar和domain/en進行切換,但首先要回家。
- 我想保留類似
domain.com/ar/someslugsoranything
和domain.com/en/someslugsoranything
的網址。 - 我有一些圖片,幻燈片在需要切換語言變化的模板。什麼是最好的方式?還有HTML格式的文本,也需要切換。
編輯: 我後來因爲啓用了qTranslate自己的語言切換器而保留了所選語言的持久性,因此註釋如下。事實上,整個inspectVars
功能可以省略。
$GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
旁註;無需逃避斜線。如果你有像'en /?key = value'這樣的URL,你也可以添加QSA標誌。所以'RewriteRule^ar /?$ index.php?lang = ar [QSA]' – Gerben
對於'domain.com/ar/someslugsoranything',使用'RewriteRule^ar(/(.*))?$ index.php?lang = ar&page = $ 2 [QSA]' – Gerben