如下图,一般项目多语言文件只有两个
如果人多编辑就很容易冲突,能否可以使用多个这样的文件,每个开发有自己的这个文件,然后使用include类似函数导入文件?
感觉这种处理必要性不是很大,但是也是可以的。
研究一下 JmixMessageSource
类, Jmix message 文件加载大概是通过这个类处理的。 这个类在构造器中设置了要加载的message文件所在的包,如下:
public JmixMessageSource(JmixModules modules, Resources resources) {
this.resources = resources;
setDefaultEncoding("UTF-8");
setResourceLoader(resources);
setFallbackToSystemLocale(false);
ListIterator<JmixModuleDescriptor> iterator = modules.getAll().listIterator(modules.getAll().size());
while (iterator.hasPrevious()) {
JmixModuleDescriptor module = iterator.previous();
addBasenames(addModuleBasename(module.getBasePackage()));
}
}
可根据需要重写这个逻辑,然后使用新的类创建一个 MessageSource
类型的 bean 来覆盖框架提供的 Bean。
但是这自定义的message文件,Jmix Studio 可能识别不到,也是麻烦。
多个文件容易造成重复key的问题,建议还是单文件处理好一点,冲突问题用idea开发会有合并冲突的可视化操作,基本不是什么问题
1 个赞