我正在使用Haml作为模板语言处理Merb应用程序。由于haml鼓励将逻辑移出视图并进入帮助者,我很快就开始考虑从模板本身中删除副本/文本。在过去,我要么只是将文本内联到模板中,要么将其移动到由控制器分隔的单独的yaml文件中。我发现将文本内联更方便,但更丑陋并且需要使用Ack来查找特定文本的存储位置。将它存储在yaml文件中更容易搜索,但更难以找到一个合理的命名模式来查找给定区域中的特定文本。
我也对这个问题的其他方法感到好奇。
答案 0 :(得分:1)
如果要对应用程序进行全球化/国际化,则单独存储文本很有用。对于rails来说,有很多很好的插件可以做到这一点(Rails 2.3甚至有一个api为此),但这些通常也适用于merb。有各种方法,两种主要方法是如何存储密钥:
这两种方法都有其优点和缺点。除了密钥之外,您可以使用许多存储设施,例如YAML,或者您实际上可以构建完整的ActiveRecord / DataMapper /等。基于存储机制。
您可以查看rails 2.3对全球化的影响,因为它们的命名架构可能是您的良好起点。或者使用命名空间来拆分YAML文件,这样它们就更容易搜索。您也可以尝试使用gettext方法,但实际上并不认为它既不干也不安全(但它有很多工具可以创建包含应用程序所有文本的映射文件)。