Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java国际化(i18n)修改Wicket的XML资源包_Java_Xml_Internationalization_Wicket - Fatal编程技术网

使用Java国际化(i18n)修改Wicket的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

在资源XML中,所有这些值都与键关联。我想直接从Java修改与键关联的值

例如,我有Welcome to my app,它显示在视图中,但也可以从视图中修改消息,我希望在XML中自动更新


我通过使用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文件并将所有内容存储在数据库中的方法似乎也是可行的,只有一层会更简单。