10

我有一個Drupal 7多語言(3)網站。我已經安裝了國際化(7.x-1.0-beta2)模塊。多種語言的多個首頁

我已經爲每種語言創建了一個頁面,並將其翻譯成另外兩種語言。

現在,我想要做的是:設置一種智能的「頭版」,以瞭解選擇何種語言並設置該語言的首頁(我選擇)。

我該怎麼做?我知道在國際化模塊中,沒有這種東西,我說得對嗎?如果我將首頁設置爲空白,我會收到以下消息:「尚未創建首頁內容」,這很正常,因爲Drupal要求我設置一個首頁,但是我希望每種語言都有一個首頁。

回答

36

可能會晚點到這個答案的一方,但畢竟花了很多時間試圖解決這個我自己,我下面的解決方案。

爲Drupal 7:

1 - 請確保您有模塊變量和可變翻譯接通。
2-轉到管理/配置/區域/ i18n /變量
3-選擇「網站信息」列表選項卡,並選中「默認首頁」,保存設置。
4-轉到管理/配置/系統/網站信息,你會注意到有一段文字說有關你的一些設置是多語言變量和你正在運行的語言的鏈接列表,允許你設置每種語言的設置。

現在,這是真正的GOTCHA出現的地方......單擊這些鏈接並更改設置什麼也不做。您左邊的設置仍然適用於所有語言。解決這個問題的方法?

檢查你當前的URL,整個事情,所以像:http://www.example.com/en/admin/config/system/site-information/

公告的語言前綴有前/管理?要更改要使用的其他語言的設置,請在URL中切換前綴,然後進行更改。現在,好像是通過魔法,多個頭版,根據語言正確地改變。

這肯定是Drupal中的一個錯誤,我應該繞過去打開一張票。但現在,如果有其他人遇到這個問題,我希望它也能解決你的問題。

+1

實際上,現在i18n模塊在帶有本地化變量的管理頁面頂部顯示語言切換器。 – nfechner 2014-12-10 09:39:16

+0

任何人都磕磕絆絆。截至2016年9月,這些步驟仍需要完成Drupal 7安裝才能使其工作。我相信D8是更好的/固定的,因爲翻譯是以不同的方式完成的(但是別聽我的話)。 – 2016-09-12 21:55:56

0

我還沒有與Drupal 7 i18n一起工作,但在Drupal 6中,您將在settings.php中爲$ conf ['i18n_variables']添加一個site_frontpage變量,然後依次切換到每種語言並設置首頁網站信息頁面。

或者,您可以在主題前page.tpl.php中指定一個條件like so

+0

感謝您的回答。我已經嘗試了這兩種方法,但不幸的是在Drupal 7中不起作用。 – 2011-03-17 13:11:17

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'); 
     } 
    } 
} 
+0

這會導致無限循環 – 118218 2015-01-16 14:53:30

2

繼續撕掉我的頭髮後,我發現這個功能是與匿名頁面緩存不兼容!

轉到/ admin/config/development/performance並關閉匿名用戶的頁面緩存。