У меня есть два веб-сайта, которые будут отображаться на английском и арабском языках.
Осмотревшись, я обнаружил, что плагин 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'];
en/?key=value
. ИтакRewriteRule ^ar/?$ index.php?lang=ar [QSA]
- person Gerben   schedule 05.12.2012domain.com/ar/someslugsoranything
используйтеRewriteRule ^ar(/(.*))?$ index.php?lang=ar&page=$2 [QSA]
- person Gerben   schedule 05.12.2012