es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Internacionalización para servicios RESTful

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.

@GetMapping(path="/internationalized")
public String internationalized(@RequestHeader(name="Accept-Language",required=false) Locale locale ){
    return messageSource.getMessage("good.morning.message", null,"Default Message", locale);
}

Tengo messages.properties, messages_nl.properties y messages_fr.properties en recursos.

No puedo mostrar el mensaje predeterminado cada vez que doy cualquier otro idioma como entrada. Está mostrando el mensaje del archivo messages.properties aunque estoy dando localidad china.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar el mensaje predeterminado cuando se recibe un idioma diferente pero no se encuentra el mensaje predeterminado en el archivo de propiedades del idioma correspondiente, debes modificar el código de la siguiente manera:

    @GetMapping(path="/internationalized")
    public String internationalized(@RequestHeader(name="Accept-Language",required=false) Locale locale ){
        String defaultMessage = messageSource.getMessage("good.morning.message", null, Locale.getDefault());
        return messageSource.getMessage("good.morning.message", null, defaultMessage, locale);
    }
    

    El código anterior recupera el mensaje predeterminado del archivo messages.properties y lo pasa como tercer argumento al método messageSource.getMessage(). Esto asegura que si el mensaje no se encuentra en el archivo de propiedades del idioma correspondiente, se mostrará el mensaje predeterminado.

Comments are closed.