Compartir tecnología

Resolver problemas de internacionalización y localización en Spring Boot

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Resolver problemas de internacionalización y localización en Spring Boot

Hola a todos, soy el editor de Weizhuan Taoke System 3.0 y también soy un programador que no usa calzoncillos largos en invierno, ¡pero aún así tiene que estar fresco en climas fríos!

Descripción general de la internacionalización y la localización

La internacionalización (i18n para abreviar) y la localización (l10n para abreviar) son consideraciones muy importantes al desarrollar aplicaciones para usuarios globales. La internacionalización se refiere al diseño e implementación de productos de software para que puedan adaptarse a las necesidades de diferentes idiomas y hábitos culturales; la localización se basa en la internacionalización y adaptación según regiones o hábitos lingüísticos específicos para brindar una experiencia más amigable para el usuario.

1. Configuración de internacionalización en Spring Boot

En Spring Boot, la internacionalización y localización se logran principalmente a través de archivos de recursos y soporte relacionado proporcionado por Spring. Primero veamos cómo configurar y usar estas funciones.

1.1. Configurar archivos de recursos

En un proyecto Spring Boot, puede utilizar archivos de propiedades (*.properties) o archivos YAML para definir información de texto en diferentes idiomas. Normalmente, crearemos un archivo de recursos correspondiente para cada idioma, como mensajes.properties (archivo predeterminado), mensajes_en.properties (inglés), mensajes_zh_CN.properties (chino simplificado), etc.

Archivo de recursos de muestra mensajes.properties:

greeting.message=Welcome to our application!
button.submit=Submit
label.username=Username
label.password=Password
  • 1
  • 2
  • 3
  • 4
1.2. Uso de recursos internacionales en Spring Boot

En Spring Boot, paseMessageSourceyLocaleResolverCargar y analizar archivos de recursos en diferentes idiomas y adaptarlos según la configuración regional del usuario.

package cn.juwatech.localization;

import cn.juwatech.Application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;

import java.util.Locale;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

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

    @Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
1.3. Utilizar recursos internacionales

En un controlador o servicio, paseMessageSourcePara obtener información de texto en una configuración regional específica.

package cn.juwatech.localization;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    @Autowired
    private MessageSource messageSource;

    @GetMapping("/greeting")
    public String greeting() {
        Locale locale = LocaleContextHolder.getLocale();
        return messageSource.getMessage("greeting.message", null, locale);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

2. Mejores prácticas de internacionalización y localización

Además de la configuración y el uso básicos, los efectos de internacionalización y localización se pueden optimizar aún más de las siguientes maneras:

  • Soporta más idiomas: Agregue archivos de recursos en más idiomas según las necesidades del usuario.
  • Cambiar de idioma dinámicamente: Admite a los usuarios cambiar de idioma en la interfaz, como a través de parámetros de solicitud o configuraciones de usuario.
  • Fecha, hora y moneda localizadas: utilice las herramientas de formato proporcionadas por Spring para localizar la fecha, la hora y la moneda.
  • Información de excepción de internacionalización: Internacionalice la información de excepciones de la aplicación para mejorar la experiencia del usuario.

en conclusión

Este artículo presenta cómo resolver problemas de internacionalización y localización en proyectos Spring Boot y lograr una adaptación regional y en varios idiomas mediante la configuración de archivos de recursos, utilizando el soporte de internacionalización proporcionado por Spring y las mejores prácticas. Estas tecnologías y métodos ayudan a los desarrolladores a crear aplicaciones amigables y profesionales para usuarios globales.

Producido por el editor de Micro-earning Taoke System 3.0, debe ser un producto de alta calidad. ¡Indique la fuente al reimprimir!