我正在构建一个将il8n消息属性文件用于多种语言的应用程序。
但是,该应用必须可配置为显示不同的客户端名称,例如“查看您的[客户端应用程序名称]配置文件”,显然,如果不为每个客户端生成单独的.war,则无法在il8n消息文件中对其进行硬编码。
一种解决方案是让客户端在外部.properties或.groovy文件中定义名称,将硬编码的il8n字符串存储为“Manage your {0} profile”,并将名称作为grails消息参数传递,例如
但是,对类似问题的答复说,不建议从.gsps调用属性:
Grails - how to access properties file from GSP
我知道理想情况下应该从 Controller 内部检索属性,然后将其传递给 View gsp,但是从每个 Controller 和 View 方法传递客户端可配置的属性似乎过多,尤其是因为在外部.groovy中设置了多个客户端定义的术语或.properties文件。
那么,什么是更好/合适的方式呢?
谢谢
最佳答案
听起来您已经有了客户端配置的概念。这应该是一个外部配置文件。该文件的内容应由服务读取(在应用程序启动时加载),然后您可以创建一个标记库,该标记库从服务中获取这些值(认为键/值对),以供您在GSP和消息代码中使用。使用服务,您还可以在应用程序的其他位置( Controller 或其他服务)使用它。
这就是您应该采用的方法。
关于grails - Grails-在il8n消息中使用的访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32015622/