2009-05-18 131 views
1

我正在使用Haml作爲模板語言的Merb應用程序。由於haml鼓勵將邏輯移出視圖並轉化爲助手,我很快開始考慮從模板本身中刪除副本/文本。在過去,我要麼將文本內聯在模板中,要麼將其移入由控制器分隔的單獨的yaml文件中。我發現將文本內聯更方便,但更醜陋,並且需要使用Ack很多才能找出存儲特定文本的位置。將它存儲在yaml文件中比較容易搜索,但難以想出一個用於在給定區域中查找特定文本的理想命名模式。存儲應用程序文本:內嵌與獨立文件

我也很好奇這個問題的其他方法。

回答

1

如果您希望全球化/國際化您的應用程序,單獨存儲文本效果很好。對於rails來說,有很多好的插件可以做到這一點(Rails 2.3甚至有一個API),但這些通常也適用於merb。有各種不同的方法來此,這兩個主要的方法是你如何存儲的關鍵:

  • 的YAML一樣的界面,您使用的商店,我認爲的符號,並將其分配文本到該符號。
  • gettext風格的方法是文本是符號,如果你想要的話你可以在一個單獨的文件中重新定義它(但是如果你不這樣做,那麼你會得到與關鍵字相同的字符串)。

這兩種方法各有利弊。除了關鍵之外,您可能會使用許多存儲設施,如YAML,或者實際上可以構建完整的ActiveRecord/DataMapper /等。基於存儲的機制。

您可能會檢查rails 2.3如何處理全球化,因爲它們的命名架構可能是您的一個很好的起點。或者使用命名空間來分割YAML文件,這樣他們將更容易搜索。你也可以嘗試gettext方法,但實際上它不被認爲是DRY也不安全(但它有很多工具可以創建包含應用程序所有文本的映射文件)。

相關問題