八月 29, 2018 | 後端和Drupal

【Drupal教學】用Entity Translation製作多國語言網頁超簡單-Part1

Drupal提供的服務、功能與模組十分齊全,能夠提高網站開發的速度。然而,網站不僅是中文,像是官網或是購物平台的大型網站,自然可能有多語系的網站需求,過去一直開發中文網站的我們該從何開始呢?

Drupal提供的服務、功能與模組十分齊全,能夠提高網站開發的速度。然而,網站不僅是中文,像是官網或是購物平台的大型網站,自然可能有多語系的網站需求,過去一直開發中文網站的我們該從何開始呢?接下來就一起來看看Drupal是怎麼來製作多語系的吧!

<br>

Drupal Entity的概念

首先,在Drupal中很重要的概念是Entity。那Entity是什麼?詳細的請參考淺談 Entity 的概念。簡單來說,只要是Entity就可以依需求新增欄位,並對欄位進行管理與顯示,Entity彼此之間還能夠互相關聯。像是常用到的模組:ECK與Bean、內容類型與分類都是Entity。

哇,你會發現在Drupal中常用到的幾乎都是Entity耶。因此,我們就可利用Entity Translation這個模組,來幫助我們進行多語系的開發。

<br>

Drupal 多語系章節分輯

此系列文章會以目標來一一帶入Drupal的多語系功能,目前先分為這三個Part:<br>Part.1 - 翻譯站內的文章內容 ( 本篇 ) <br>Part.2 - 翻譯站內的分類、選單、麵包屑 <br> Part.3 - 翻譯 Views 模組做的頁面

本篇範例已安裝好了中文化,並自訂一個「最新消息」內容類型,以及下列模組:<br> 模組:ViewsPath BreadcrumbsCkeditor。<br>多語系模組: Entity TranslationtitleInternationalization ( i18n )


首先,來翻譯最新消息的文章內容吧

安裝並啟用Entity Translation模組,下一步就來開啟翻譯設定。記得先自行發布一篇文章唷。

1. 到語言中開啟URL設定,讓系統能夠以URL來判斷語系,例如/zh-hant/與/en/。路徑:設定 » 地區與語言 » 語言 » 偵測與選擇

2. 再來,要將Entity Translation的節點(node是一個獨立的內容,有自己的網址,也就是我們所說的內容類型)打開,並點選語言中性、打勾選項選項,讓文章可以有翻譯的選項。路徑:設定 » Entity Translation

3. 到最新消息「內容類型」中,開啟多國語言設定。 路徑:內容類型 » 最新消息 » 編輯

4. 到最新消息「內容類型」中,針對要翻譯的欄位開啟翻譯選項。我們要將最新消息的標題、body跟分類進行翻譯。首先,處理body跟分類的翻譯。 路徑:內容類型 » 最新消息 » 管理欄位

點擊body的編輯之後,拉到最底點擊Entity Translation之後,就能一併對其它內容類型的body翻譯。

回到標題翻譯的部分,你可以發現標題後方並沒有任何項目可以點擊,是因為標題為內容類型內建的欄位,因此要將內建的標題設為可以翻譯的項目,我們要再安裝title模組。安裝好後,就能夠看到標題後面多了一個replace。

點進去並選擇 Replace title with a field instance,儲存回到管理欄位,你就會發現標題可以編輯了~

不過標題的replace後到Entity Translation的部分,都僅針對當前的內容類型來設定。若「關於我們」的標題也要翻譯,就要再將「關於我們」內容類型的標題replace。

5. 做過第 3 步驟後,再回到Entity Translation設定中,就會看到節點出現了「最新消息」,選擇預設語言並勾選設定。路徑:設定 » Entity translation

<br>

設定完成,開始翻譯吧

之後到點進去某篇最新消息文章,就會看到上方多了一個翻譯的選項。

按進去後,針對你想翻譯的語言點選就可以拉~在這裡出現的語言,你可以在設定的語言裡看到,若想要新增其它語言,你可以參考這篇如何進行中文化安裝 ? (Drupal 7)

再去看是否翻譯成功前要先到架構的區塊中,將語言切換器擺到你想要的位置,才能做語言區換唷。

最後就來看看文章吧~你看到文章的標題、內容都變英文了,這代表翻譯成功了唷!


結語

文章的翻譯,總結有以下幾個部分:<br> 1.安裝並啟用 Entity Translation 模組<br> 2.到「語言 » 偵測與選擇」中開起URL的偵測方式,讓系統能夠以URL來判斷語系<br> 3.編輯要翻譯的內容類型,「發布選項」選擇 Enabled, with field translation<br> 4.在同樣的內容類型,點擊管理欄位,編輯想要翻譯的欄位拉到最底點開 Enable translation(除了標題要個別replace外,其它欄位會一併開啟其內容類型的相同欄位,請注意)。<br> 5.再去「設定 » Entity translation」中,開啟節點(node),針對要翻譯的內容類型做設定,就能在瀏覽文章時有「翻譯」的選項。

注意:<br> 1.自行至區塊設置「語言切換器」<br> 2.「語言」會跟著「地區與語言」來改變,本篇章是先中文化了,所以語言才有繁體中文與英文。此部分再請自行注意。

雖然很看起來很繁雜,但理解來看設定語言、用模組開啟設定、要翻譯的欄位,其實就這些項目而已。除了文章之外,還有很多部分需要翻譯呢!那下一章就來看看分類、選單與麵包屑要如何來翻譯吧。

hashtags: