我有一个Drupal 7多语言(3)网站。我已经安装了Internationalization(7.x-1.0-beta2)模块。
我为每种语言创建了一个页面,并将其翻译成另外两种语言。
现在我想做的就是:设置一种智能的“头版”来了解选择的语言,并用该语言设置首页(我选择)。
我该怎么做?我知道在国际化模块中,没有这样的东西,我是对的吗?如果我将首页设置为空,我会收到以下消息:“尚未创建首页内容。”这是正常的,因为Drupal要求我设置一个首页,但是我想要为每种语言设置一个头版。
答案 0 :(得分:36)
这个答案可能要迟到了,但是在我花了很多时间试图解决这个问题之后,我有以下解决方案。
对于Drupal 7:
1-确保已打开“变量和可变平移”模块
2-转到admin / config / regional / i18n / variable
3-选择“站点信息”列表选项卡并选中“默认首页”,保存设置
4-转到admin / config / system / site-information,你会注意到那里有一段文字说你的一些设置是多语言变量和你正在运行的语言的链接列表,它们允许你设置设置对于每种语言。
现在,这就是真正的GOTCHA出现的地方......单击这些链接并更改设置无效。您的左侧使用相同的设置仍然适用于所有语言。这个方法呢?
检查您当前所在的网址,以及整个内容,例如:http://www.example.com/en/admin/config/system/site-information/
注意/ admin之前的语言前缀?要更改要使用的其他语言的设置,请在URL中切换前缀,然后进行更改。现在,好像通过魔术,多个首页,根据语言进行适当改变。
这一定是Drupal中的一个错误,我应该开始打开一张票。但就目前而言,如果其他人遇到此问题,我希望它也能解决您的问题。
答案 1 :(得分:4)
我一直在寻找同样的东西。我想推荐Drupal 7 - multi-lingual front page node,它是完整的,适用于Drupal 7项目。
答案 2 :(得分:2)
继续撕掉我的头发之后,我发现此功能与匿名页面缓存不兼容!
转到/ admin / config / development / performance并关闭匿名用户的页面缓存。
答案 3 :(得分:1)
可能有更好的方法,但最后他就是我做的。
我在template.php
添加了以下代码:
/**
* Implements hook_preprocess_page().
*/
function aelius_preprocess_page(&$vars) {
if ($vars['is_front']) {
$langcode = $GLOBALS['language']->language;
if ($langcode == "en") {
drupal_goto('home');
} elseif ($langcode == "fr") {
drupal_goto('accueil');
}
}
}
答案 4 :(得分:0)
我还没有使用Drupal 7 i18n,但是在Drupal 6中你会在settings.php中为$ conf ['i18n_variables']添加一个site_frontpage变量,然后依次切换到每种语言并在网站信息页面。
或者,您可以在主题front-page.tpl.php like so
中指定条件