使用Java国际化(i18n)修改Wicket的XML资源包
在资源XML中,所有这些值都与键关联。我想直接从Java修改与键关联的值 例如,我有Welcome to my app,它显示在视图中,但也可以从视图中修改消息,我希望在XML中自动更新使用Java国际化(i18n)修改Wicket的XML资源包,java,xml,internationalization,wicket,Java,Xml,Internationalization,Wicket,在资源XML中,所有这些值都与键关联。我想直接从Java修改与键关联的值 例如,我有Welcome to my app,它显示在视图中,但也可以从视图中修改消息,我希望在XML中自动更新 我通过使用javax.XML和org.w3c解析和更改XML来做到这一点,但我觉得我遗漏了一些东西。Java国际化或Wicket框架有实现这一点的方法吗 Wicket只有读取i18n资源的功能,例如XmlFilePropertiesLoader。在Wicket 6代码中未使用Properties.storeTo
我通过使用javax.XML和org.w3c解析和更改XML来做到这一点,但我觉得我遗漏了一些东西。Java国际化或Wicket框架有实现这一点的方法吗 Wicket只有读取i18n资源的功能,例如XmlFilePropertiesLoader。在Wicket 6代码中未使用Properties.storeToXML,而Properties.loadFromXML用于读取这些XML属性文件 要将这些翻译存储回XML文件,需要谨慎。至少,必须实现同步,以确保同步编辑不会丢失 我不建议将编辑内容存储在XML中,尤其是原始XML文件中。最好有两个级别的属性: 首先,immutable,level,基于原始的和不可变的XML文件。 第二级由“编辑”组成,其作用类似于第一级上的补丁。它可以存储在一个数据库中,该数据库对于存储诸如编辑之类的不断更新的数据更加方便。
是的,与实体相关联的内容存储在本地化结构化数据库中。但客户端希望所有文本都可编辑。从您的角度来看,我是否应该将所有文本移动到数据库中,而不是在这种情况下使用i18n资源?我的建议是使所有i18n数据都可编辑,但仅将编辑过的键存储在数据库中,同时从XML中获取未编辑键的默认值。这样,只需返回到“仅XML”就更容易了。但您删除所有XML文件并将所有内容存储在数据库中的方法似乎也是可行的,只有一层会更简单。