我正在构建一个使用多种语言的il8n消息属性文件的应用程序。
但是,应用程序必须可配置为显示不同的客户名称,例如"查看您的[客户端应用程序名称]配置文件",显然无法在il8n消息文件中进行硬编码,而不会为每个客户端生成单独的.war。
一种解决方案是让客户端在外部.properties或.groovy文件中定义名称,将硬编码的il8n字符串存储为"管理您的{0}配置文件",并传递名称作为grails消息参数,例如
但是,对类似问题的回复说不建议从.gsps调用属性:
Grails - how to access properties file from GSP
我知道理想情况下应该从控制器中检索属性然后传递给视图gsp,但是从每个控制器和视图方法传递客户端可配置属性似乎过多,特别是因为将设置多个客户端定义的术语外部.groovy或.properties文件。
这样做的更好/正确的方法是什么?
由于
答案 0 :(得分:0)
听起来你已经有了客户端配置的概念。这应该是外部配置文件。该文件的内容应由服务读取(在应用程序启动时加载),然后您可以创建一个标记库,从服务中获取这些值(思考键/值对),以便在GSP和消息代码中使用。使用服务,您也可以在应用程序的其他位置使用它(控制器或其他服务)。
这就是你应该采取的方式。