2011-12-25 54 views
1

我有一個drupal英文/法文網站。 我有一個自定義的內容類型叫'廣告'與各種領域。 我在我的主題目錄 中創建了文件'node - ad.tpl.php'來自定義'ad'內容的顯示。 我使用pixture重新加載的主題和DRUPAL 7.用drupal 7翻譯node.tpl.php文件中的字段

我試圖通過使用「字段翻譯」模塊翻譯域(標籤和值) 。

當我通過管理員創建或修改內容時,字段翻譯工作。

但是,當我顯示'ad'類型的內容時,字段不會被翻譯。 這是因爲drupal調用'node - ad.tpl.php',翻譯 模塊可能不會被調用。 刪除'node - ad.tpl.php'時,drupal會調用默認的node.tpl.php ,並得到相似的結果。

任何幫助,將不勝感激,在先進 感謝,

注: 1 - 我正確激活該模塊的每個依賴性。 2 - 用戶界面翻譯正常工作。

回答

1

好吧 我發現自己該怎麼做。 我在這裏給解決方案。 它可能對其他人有所幫助:

首先,在Configuration> Regional和language> Translate> Import中轉換字段標籤和值。不要將值作爲字段導入,而要作爲用戶界面導入。不要指定 的URL(僅限msgstr和msgid)。

現在,您需要在node.tpl.php中添加t()函數以使翻譯生效。所以:

在node.tpl.php文件中,如果要翻譯字段標籤,請寫下: $ content ['field_my_field'] ['#title'] = t($ content ['field_my_field']] ['#標題']);

然後要翻譯字段值,請執行以下操作: $ content ['field_my_field'] [「#items」] [0] ['value'] = t($ content ['field_my_field'] [「#items」] [0] [ '值']);你可以渲染你的字段:print render($ content ['field_my_field']);