Internacionalización y localización en Spring MVC

Internacionalización y localización en Spring MVC

La internacionalización (i18n para abreviar) y la localización (l10n para abreviar) son conceptos importantes en la creación de aplicaciones en varios idiomas. Spring MVC proporciona un soporte completo que permite a los desarrolladores manejar fácilmente las necesidades de internacionalización y localización. Este artículo presentará cómo manejar la internacionalización y localización en Spring MVC y proporcionará código de muestra.

Insertar descripción de la imagen aquí

¿Qué son la internacionalización y la localización?

  • Internacionalización (i18n): La internacionalización se refiere al diseño y desarrollo de aplicaciones para que puedan adaptarse fácilmente a diferentes idiomas y regiones. Esto incluye localizar texto, fecha, hora, moneda, etc. para adaptarlo a diferentes prácticas culturales.

  • Localización (Localización - l10n): La localización se refiere a adaptar la interfaz y el contenido de una aplicación a un idioma y región específicos. Esto incluye traducir texto, ajustar formatos de fecha y hora, usar símbolos de moneda local y más para brindar una experiencia de usuario que se ajuste mejor a sus expectativas.

Internacionalización en Spring MVC

Spring MVC admite la internacionalización de las siguientes maneras:

  1. Archivos de recursos: Spring MVC le permite crear archivos de recursos que contienen versiones en diferentes idiomas. Estos archivos de recursos incluyen el origen del mensaje, el formato de fecha y hora, el formato de moneda, etc. Diferentes idiomas y regiones tendrán diferentes archivos de recursos.

  2. Análisis de configuración regional: Spring MVC LocaleResolveranaliza la información de idioma y región solicitada por el cliente a través de la interfaz. De forma predeterminada, utiliza Accept-Languageun encabezado para determinar el idioma preferido del cliente, pero puede personalizarlo LocaleResolverpara adaptarlo a sus necesidades específicas.

  3. Fuente: Spring MVC proporciona MessageSourceinterfaces para cargar y administrar archivos de recursos. Puede llamar a esto en su código MessageSourcepara obtener el texto localizado.

  4. Bibliotecas de etiquetas: Spring MVC proporciona bibliotecas de etiquetas JSTL y tecnologías de visualización como Thymeleaf, lo que le permite localizar texto fácilmente en sus vistas.

Crear proyecto Spring MVC

Primero, asegúrese de haber instalado el entorno de desarrollo Java y Maven. A continuación, puede crear un nuevo proyecto Spring MVC utilizando Spring Initializer. Seleccione la configuración de su proyecto en https://start.spring.io/ , luego cree el proyecto y descárguelo.

Agregue dependencias de Spring Web y Thymeleaf

En el proyecto generado, debe agregar dependencias para Spring Web y Thymeleaf. En pom.xmlel archivo, asegúrese de que se hayan agregado las siguientes dependencias:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Esto incluirá todas las dependencias requeridas por Spring MVC y Thymeleaf.

Configurar archivos de recursos

En src/main/resourcesel directorio, cree un messages.propertiesarchivo de recursos llamado para almacenar los mensajes internacionalizados predeterminados:

greeting.message=Hello, World!

En src/main/resourcesel directorio, cree un messages_fr.propertiesarchivo de recursos llamado para almacenar mensajes internacionalizados en francés:

greeting.message=Bonjour, le Monde!

Configurar el analizador de internacionalización

Configurar analizadores de internacionalización en Spring MVC es muy sencillo. src/main/java/com/example/demoCree una WebConfigclase de configuración en el paquete llamado:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;

import java.util.Locale;

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    
    

    @Bean
    public LocaleResolver localeResolver() {
    
    
        AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver();
        resolver.setDefaultLocale(Locale.US); // 设置默认语言
        return resolver;
    }
}

En el código anterior, creamos una WebConfigclase de configuración para configurar el analizador de internacionalización. AcceptHeaderLocaleResolverLos encabezados de la solicitud del cliente se analizan Accept-Languagepara determinar el idioma preferido del cliente. Puede resolver.setDefaultLocale()configurar el idioma predeterminado usando .

Crear controlador

src/main/java/com/example/demoCree una clase de controlador en el paquete llamada HelloController:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
    
    

    private final MessageSource messageSource;

    @Autowired
    public HelloController(MessageSource messageSource) {
    
    
        this.messageSource = messageSource;
    }

    @GetMapping("/hello")
    public String hello(Model model) {
    
    
        String greeting = messageSource.getMessage("greeting.message", null, LocaleContextHolder.getLocale());
        model.addAttribute("greeting", greeting);
        return "hello";
    }
}

En el código anterior, creamos uno HelloControlleral que se le inyecta MessageSourceel texto utilizado para obtener la localización. En helloel método que utilizamos messageSource.getMessage()para recibir el mensaje y agregarlo al modelo.

Crear una plantilla de Thymeleaf

En src/main/resources/templatesel directorio, cree una hello.htmlplantilla de Thymeleaf llamada:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Hello Spring MVC</title>
</head>
<body>
    <h1 th:text="${greeting}"></h1>
</body>
</html>

En la plantilla anterior, usamos th:textlas propiedades de Thymeleaf para representar texto.

Ejecutar aplicación

Ahora puedes ejecutar la aplicación.

programa. Utilice el comando Maven:

mvn spring-boot:run

Su aplicación Spring MVC se iniciará y ejecutará en el puerto predeterminado (generalmente 8080).

Visita la página de internacionalización

Accede a él usando un navegador http://localhost:8080/helloy verás una página que dice "¡Hola, mundo!" o "¡Bonjour, le Monde!", según el idioma preferido de la configuración de tu navegador.

Resumir

Este artículo explica cómo manejar las necesidades de internacionalización y localización en Spring MVC. Spring MVC proporciona un amplio soporte, que incluye archivos de recursos, analizadores de internacionalización, fuentes de mensajes y bibliotecas de etiquetas, lo que permite a los desarrolladores crear fácilmente aplicaciones multilingües.

Lo anterior es un ejemplo simple que demuestra cómo manejar la internacionalización y localización en Spring MVC. En aplicaciones reales, puede crear más archivos de recursos y ajustar configuraciones y plantillas según sus necesidades. Espero que este artículo le resulte útil y le brinde una mejor comprensión del procesamiento de internacionalización y localización en Spring MVC.

Supongo que te gusta

Origin blog.csdn.net/2301_77835649/article/details/133440914
Recomendado
Clasificación