Spring资源包delimer

时间:2013-09-18 22:58:09

标签: spring localization resources

我们正在使用Spring LocaleChangeInterceptor和ReloadableResourceBundleMessageSource满足我们所有的本地化需求。一切都很好,直到出现一个奇怪的要求。

新要求需要的是我们必须允许每个语言属性文件“浮动”,这意味着不再需要这些资源包使所有密钥同步。

在此用例中,缺少密钥必须默认使用en_US属性。我们已经建议用英文消息编写工具来填补缺失的密钥,但是从上面开始就难以回击。他们说在Struts中它是可行的,Spring也应该这样做。

我一直在网上搜索,但我找不到这样的例子。甚至可以在Spring 3中完成吗?

1 个答案:

答案 0 :(得分:1)

也许您可以扩展类ResourceBundle并覆盖其方法handleGetObject,如下所示:

    @Override
    public Object handleGetObject(String key) {
        try {
            return messages.getMessage(key, null, getLocale());
        } catch (NoSuchMessageException e) {
            return messages.getMessage(key, null, new Locale("en_US"));;
        }
    }

我在我的项目中做了一些非常类似的事情。我还必须处理丢失的钥匙。