class CommonResultControllerAdvice implements ResponseBodyAdvice<Object> {
    @Resource
    private MessageSource messageSource;

    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        return AbstractJackson2HttpMessageConverter.class.isAssignableFrom(converterType);
    }

    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {<FILL_FUNCTION_BODY>}

    public static RespModel process(String l, RespModel respModel, MessageSource messageSource) {
        String language = "en_US";
        if (l != null) {
            language = l;
        }
        String[] split = language.split("_");
        Locale locale;
        if (split.length >= 2) {
            locale = new Locale(split[0], split[1]);
        } else {
            locale = new Locale("en", "US");
        }
        respModel.setMessage(messageSource.getMessage(respModel.getMessage(), new Object[]{}, locale));
        return respModel;
    }

    private MappingJacksonValue getOrCreateContainer(Object body) {
        return (body instanceof MappingJacksonValue ? (MappingJacksonValue) body : new MappingJacksonValue(body));
    }
}

        MappingJacksonValue container = getOrCreateContainer(body);

        String l = request.getHeaders().getFirst("Accept-Language");
        // Get return body
        Object returnBody = container.getValue();

        if (returnBody instanceof RespModel) {
            RespModel<?> baseResponse = (RespModel) returnBody;
            process(l, baseResponse, messageSource);
        }
        return container;
    
<no_super_class>