package com.qianwen.core.i18n.source;
|
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Locale;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
|
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
/* loaded from: blade-starter-i18n-9.3.0.0-SNAPSHOT.jar:org/springblade/core/i18n/source/WildcardReloadableResourceBundleMessageSource.class */
|
public class WildcardReloadableResourceBundleMessageSource extends ReloadableResourceBundleMessageSource {
|
private static final Logger log = LoggerFactory.getLogger(WildcardReloadableResourceBundleMessageSource.class);
|
private static final String PROPERTIES_SUFFIX = ".properties";
|
private final PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
|
|
protected List<String> calculateAllFilenames(String basename, Locale locale) {
|
List<String> filenames = super.calculateAllFilenames(basename, locale);
|
if (basename.contains("*")) {
|
filenames.remove(basename);
|
}
|
return filenames;
|
}
|
|
protected List<String> calculateFilenamesForLocale(String basename, Locale locale) {
|
String basename2 = basename.replace(".", "/");
|
List<String> fileNames = new ArrayList<>();
|
List<String> matchFilenames = super.calculateFilenamesForLocale(basename2, locale);
|
for (String matchFilename : matchFilenames) {
|
try {
|
Resource[] resources = this.resolver.getResources("classpath*:" + matchFilename + PROPERTIES_SUFFIX);
|
for (Resource resource : resources) {
|
String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, "");
|
fileNames.add(sourcePath);
|
}
|
} catch (IOException ex) {
|
log.error("读取国际化信息文件异常", ex);
|
}
|
}
|
return fileNames;
|
}
|
}
|