0

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

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

在此用例中,缺少键必须默认使用 en_US 属性。我们曾提议编写工具来用英文消息填充缺失的键,但这遭到了来自上面的强烈反对。他们说它在 Struts 中是可行的,Spring 也应该这样做。

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

4

1 回答 1

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"));;
        }
    }

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

于 2013-09-19T06:55:37.267 回答