我搜索了很多,但我找不到有关我主题的任何有用信息。让我解释一下。
我创建了一个spring应用程序,可以根据登录的用户更改其布局。此布局可以由管理员上传。现在我想添加一个管理员可以为该用户上传特定ReloadableResourceBundleMessageSource
的功能,因此文本也会根据登录用户进行更改。我用百里香叶创建的模板总是一样的。所以消息键是相同的,只是值正在改变。
我尝试创建动态messages.propertie
,但这不起作用,因为在配置时您不知道messages.properties
的名称是什么。
我只是不明白吗?我不知道。有没有办法创建一个动态temp1=matrixText.split(';')
temp2=temp1[0].split(',')
rows=len(temp1)
columns=len(temp2)
rA=np.zeros((rows, columns))
arrayText=matrixText.split(';')
rowText=range(len(arrayText))
for rowIndex, rowItem in enumerate(arrayText):
rowText[rowIndex]=arrayText[rowIndex].split(',')
for colIndex, colItem in enumerate(rowText[rowIndex]):
rA[[rowIndex, colIndex]]=rowText[rowIndex][colIndex]
- 加载器,可以识别具有如下名称的文件:
messages_foo_de_DE.properties
答案 0 :(得分:0)
尝试这种方法。 propsFileName
,property
和value
可以作为参数提供
@Autowired
ReloadableResourceBundleMessageSource messageSrc;
void updateProperty(String property, String value, String propsFileName) {
boolean success = false;
Properties props = new Properties();
FileOutputStream output = null;
FileInputStream configStream = null;
try {
configStream = new FileInputStream(propsFileName);
props.load(configStream);
props.setProperty(property, value);
// save modified property file
output = new FileOutputStream(propsFileName);
props.store(output, "This description goes to the header of a file");
} catch (IOException ex) {
log.error(ex);
} finally {
if (configStream != null) {
try {
configStream.close();
} catch (IOException e) {
log.error(e);
}
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
log.error(e);
}
}
}
messageSrc.clearCache();
}
答案 1 :(得分:0)
您可以保持与用户关联的区域设置或语言首选项。用户登录后,您将了解当前的用户区域设置或语言。现在,您可以使用LocaleResolver
设置区域设置LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
Locale userLocale = new Locale('de')// Locale loaded dynamically from DB or url parameter.
localeResolver.setLocale(request, response, userLocale );