2009-05-18 135 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也不安全(但它有很多工具可以创建包含应用程序所有文本的映射文件)。

相关问题