我想创建并保存文件 Language_mylang.properties 包含我的在线翻译。但是当我这样做时,Liferay 看不到更改并使用默认语言 .properties 文件。只有在重新启动 Liferay(重新部署我的 portlet)后问题才会消失。有谁知道如何添加自己的属性文件并实现 Liferay 看到它,而无需重新部署?
问候
我想创建并保存文件 Language_mylang.properties 包含我的在线翻译。但是当我这样做时,Liferay 看不到更改并使用默认语言 .properties 文件。只有在重新启动 Liferay(重新部署我的 portlet)后问题才会消失。有谁知道如何添加自己的属性文件并实现 Liferay 看到它,而无需重新部署?
问候
如果您坚持使用属性文件,则重新部署是应用服务器的一项功能:它不会在未重新部署的情况下获取您在运行系统中更改的文件的任何更改。JSP 是一个显着的区别,但您不应该依赖此功能在生产系统中可用:它是一个开发时间功能。
也就是说,如果您想动态更新 Liferay 的翻译,您可以查看部署过程或尝试访问com.liferay.portal.language.LanguageResources
,尽管插件无法使用此类。您可以尝试使用类加载魔法来访问它(请参阅com.liferay.portal.kernel.util.PortalClassInvoker
,但要准备好丑陋的代码(例如,它类似于反射)以动态更新翻译。
我敢肯定还有其他可能性(它们甚至可能更好),但这些是我发现的第一个。