雲客Drupal源碼分析之語言Language模塊

以下內容僅是一個預覽,完整內容請見文尾:

在本系列前面已經發布過一篇語言主題,介紹了一些語言相關的知識以及核心提供的語言相關內容,本篇所講的語言模塊是建立在覈心語言組件基礎之上的,所以請先閱讀那一篇主題;在系統中和語言相關的核心模塊有四個:
language:本篇主題,站點的多語言基礎,支持其他三個模塊
locale:支持界面翻譯
content_translation:支持內容翻譯
config_translation:支持配置數據翻譯
後三個模塊都是建立在第一個“語言模塊”基礎之上的,且只提供某一方面的功能,比較簡單,語言模塊是系統多語言的重點,理解她才能理解系統多語言的架構設計。

語言類型:
在請求一個頁面的時候,我們可以爲不同的信息運用不同的語言,然後讓各種語言同時呈現在頁面上,要做到這一點首先需要將信息分類,然後請求時針對每一類決定一種語言,決定邏輯由語言協商器完成,可以按這種信息的類型(可翻譯信息的類型)對語言分類,得到一些語言類型,最易於理解的就是界面文本和內容,系統默認定義了三種...

語言相關關鍵配置項:
關於語言的一些核心關鍵的配置信息儲...

語言相關實體:
語言模塊提供了兩個實體類...

語言模塊服務提供器:
要理解語言模塊,首先從其提供的服務提供器開始,這用於動態向容器註冊或修改服務定義數據,功能比靜態服務定義文件(.services.yml文件)要強大,詳情可參考本系列《服務容器及Symfony依賴注入組件》,語言模塊提供的服務提供器類...

語言管理器:
核心定義了語言管理器服務:
  language_manager:
    class: Drupal\Core\Language\LanguageManager
    arguments: ['@language.default']
在語言模塊啓用的...

語言協商:
在系統派發請求事件時,用以確定當前請求中各語言類型的當前語言,服務...

語言協商方法插件管理器:
語言協商方法是以插件方式提供,該插件管理器負責收集管理,這是一個非...

系統默認提供的協商方法:
瀏覽器協商:
類:\Drupal\languag...

路徑處理:
從以上系統提供的協商器可知,有些語言協商方法是通過url路...

語言配置工廠覆寫:
語言模塊在配置系統的覆寫層中提供語言覆寫數據,在本系列配置系統相關章節有介紹過,默認安裝下僅語言模塊向配置系統提供了覆寫數...

語言配置訂閱器:
語言模塊定義了一個配置保存事件訂閱...

補充:
1、語言相關官網文檔:
https://www.drupal.org/node/1497272
https://www.drupal.org/docs/8/multilingual/enable-language-negotiation
2、通常一個站點在規劃階段就需要慎重考慮語言協商問題,一旦選擇了某種協商方法,就不要隨意變動,這可能會影響已存在的url的訪問,“已存在”不僅僅指被緩存頁面中的url,還指被用戶分享到其他地方的引用,後者幾乎無法改變
3、bug提示:用戶設置了管理頁首選語言...

 

各位《雲客drupal8源碼分析》系列的讀者:
本系列分享希望幫助大家理解drupal8底層原理,並縮短學習時間,但部分重點內容在博客僅發佈前言和目錄,這是因爲:drupal在國外如此流行但在國內卻很小衆,一個重要原因應該是中文資料的缺乏,我們是否能夠找到一種方式來激發高質量的中文資料出產?此時同是積極推動者的晴空提出能否用付費閱讀的方式來鼓勵更多教程作者?並建立了一個付費閱讀drupal資料的網站,學習者僅需支付很少費用即可查詢到最用心的知識註解,避免大量查找資料,可以節省大量學習時間是划算的,作者也能分配精力去開發高質量內容而得到回報,drupal是精品中的精品,超過一半的世界五百強用她做網站,難能可貴,國內普及初期需要一個良好的土壤,普及開後免費內容會越來越多,爲了支持國內發展,雲客決定將重點內容放在晴空的這個網站上收費閱讀,讀者只需要微信支付很少費用即可,雲客在這裏承諾該系列得到的所有訂閱費用全部捐獻給drupal深圳社區,用以組織活動等等,發展社區需要大家貢獻力量,該網站於2017年3月29日上線,請移步:http://nowicode.com/ 閱讀本篇完整版

我是雲客,【雲遊天下,做客四方】,聯繫方式見主頁,歡迎轉載,但須註明出處

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章