有没有办法改变文件格式& ResourceBundle的名称格式?这可能听起来像一个毫无意义的目标,但实质上我想改变它,而不是寻找:
> baseName + "_" + language + "_" + country + ".properties"
它将寻找:
> language + "_" + country + ".specifiedformat"
我正在创建一个小程序,并希望将每个语言环境放入一个文件格式不同的单个文件中.properties,只需使用特定的语言环境作为默认语言。
我已经尝试过使用ResourceBundle.Control,但没有任何运气。仅针对文件格式部分,我试图扩展ResourceBundle&控制,以便我可以声明一个新的格式。 getControl是最终的,所以不能轻易做任何事情。
public static class MyControl extends Control {
public static final List<String> FORMAT_MYFORMAT
= Collections.unmodifiableList(Arrays.asList("java.myformat",
"java.class",
"java.properties"));
@Override
public List<String> getFormats(String baseName) {
if (baseName == null) {
throw new NullPointerException();
}
return FORMAT_MYFORMAT;
}
}
我不知道我尝试的是否接近标记。我几乎可以全面了解ResourceBundle
中的方法,而不仅仅是整个方面。
感谢。
答案 0 :(得分:0)
您也必须覆盖<!-- Added for NGram field-->
<fieldType name="text_ngram" class="solr.TextField">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\b \b" replacement=""/>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="\b \b" replacement=""/>
</analyzer>
</fieldType>
,如果格式不是ResourceBundle.Control.newBundle(...)
或IllegalArgumentException
,则在默认实施中会抛出java.class
。