我正在建立一个有四种语言的网站。我想能够翻译根页面。我已设置网站,以便在不同目录下提供翻译内容:
www.domain。www.domain。中国/法国www.domain。ch/it www.domain。我已经在www.domain上设置了重定向。切换/重定向到用户浏览器语言,例如www.domain。ch/de
所有这些都很好。
如何创建直接在这些URL上提供服务的页面(及其翻译)?我在wpml选项中定义的根页面不可翻译。
为什么会这样?翻译登录页的正确方法是什么?
UPDATE:
我按照@ErezLieberman在接受的答案中的解释设置了主页。使重定向从
www.domain.ch
到
www.domain.ch/[currentLanguage]
我在设置中标记了“使用默认语言目录”,并选择了“页面”,但没有
not 创建根页面。
此外,我还使用以下代码来实现重定向。(我还在做一个基本的浏览器语言/cookie检测)
global $sitepress;
// Redirect to language directory if we are on /
// e.g. domain.ch/ -> domain.ch/en
if (isset($sitepress)) {
$activeLanguages = icl_get_languages();
$onRootPage = !preg_match(\'/^\\/\' . implode(\'|\', array_keys($activeLanguages)) . \'/i\', $_SERVER[\'REQUEST_URI\']);
if ($onRootPage) {
$defaultLanguage = $sitepress->get_default_language();
$desiredLang = isset($_SERVER[\'HTTP_ACCEPT_LANGUAGE\']) ? substr($_SERVER[\'HTTP_ACCEPT_LANGUAGE\'], 0, 2) : null;
$langFromCookie = isset($_COOKIE[\'_icl_current_language\']) ? $_COOKIE[\'_icl_current_language\'] : null;
// Language from previous cookie
if (isset($langFromCookie) && array_key_exists($langFromCookie, $activeLanguages)) {
$allGood = wp_redirect($activeLanguages[$langFromCookie][\'url\']);
}
// Language from browser settings
else if (isset($desiredLang) && array_key_exists($desiredLang, $activeLanguages)) {
$allGood = wp_redirect($activeLanguages[$desiredLang][\'url\']);
}
// Default language
else {
$allGood = wp_redirect($activeLanguages[$defaultLanguage][\'url\']);
}
// If no filter has aborted the redirect, we redirected and can exit now.
if ($allGood) {
exit();
}
}
}
注意:如果创建并设置根页面,整个系统将不再工作。即使稍后删除根页面,它仍将存储在设置中。我必须手动设置
\'root_html_file_path\' => null,
\'root_page\' => null,
在wp\\u options表中设置为null,以确保系统再次工作。