Condivisione della tecnologia

Risoluzione dei problemi di internazionalizzazione e localizzazione in Spring Boot

2024-07-12

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

Risoluzione dei problemi di internazionalizzazione e localizzazione in Spring Boot

Ciao a tutti, sono l'editore di Weizhuang Taoke System 3.0 e sono anche un programmatore che non indossa mutandoni in inverno, ma deve comunque essere aggraziato quando fa freddo!

Panoramica su internazionalizzazione e localizzazione

L'internazionalizzazione (i18n in breve) e la localizzazione (l10n in breve) sono considerazioni molto importanti quando si sviluppano applicazioni per utenti globali. L'internazionalizzazione si riferisce alla progettazione e all'implementazione di prodotti software in modo che possano adattarsi alle esigenze di diverse lingue e abitudini culturali. La localizzazione si basa sull'internazionalizzazione e sull'adattamento in base a regioni o abitudini linguistiche specifiche per fornire un'esperienza più user-friendly.

1. Configurazione dell'internazionalizzazione in Spring Boot

In Spring Boot, l'internazionalizzazione e la localizzazione vengono ottenute principalmente tramite file di risorse e il relativo supporto forniti da Spring. Diamo prima un'occhiata a come configurare e utilizzare queste funzionalità.

1.1. Configurare i file di risorse

In un progetto Spring Boot è possibile utilizzare file di proprietà (*.properties) o file YAML per definire informazioni di testo in diverse lingue. Normalmente, creeremo un file di risorse corrispondente per ciascuna lingua, come messaggi.properties (file predefinito), messaggi_en.properties (inglese), messaggi_zh_CN.properties (cinese semplificato), ecc.

File di risorse di esempio message.properties:

greeting.message=Welcome to our application!
button.submit=Submit
label.username=Username
label.password=Password
  • 1
  • 2
  • 3
  • 4
1.2 Utilizzo delle risorse internazionali in Spring Boot

In Spring Boot, passaMessageSourceELocaleResolverPer caricare e analizzare file di risorse in diverse lingue e adattarli in base alle impostazioni locali dell'utente.

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 Utilizzare risorse internazionali

In un controller o servizio, passaMessageSourcePer ottenere informazioni di testo in una locale specifica.

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. Migliori pratiche di internazionalizzazione e localizzazione

Oltre alla configurazione e all'utilizzo di base, gli effetti dell'internazionalizzazione e della localizzazione possono essere ulteriormente ottimizzati nei seguenti modi:

  • Supporta più lingue: aggiungi file di risorse in più lingue in base alle esigenze dell'utente.
  • Cambia dinamicamente le lingue: supporta gli utenti nel cambiare lingua sull'interfaccia, ad esempio tramite parametri di richiesta o impostazioni utente.
  • Data, ora e valuta localizzate: utilizza gli strumenti di formattazione forniti da Spring per localizzare data, ora e valuta.
  • Informazioni sulle eccezioni di internazionalizzazione: internazionalizza le informazioni sulle eccezioni dell'applicazione per migliorare l'esperienza dell'utente.

Insomma

Questo articolo illustra come risolvere i problemi di internazionalizzazione e localizzazione nei progetti Spring Boot e ottenere un adattamento multilingue e regionale configurando file di risorse, utilizzando il supporto per l'internazionalizzazione fornito da Spring e le best practice. Queste tecnologie e metodi aiutano gli sviluppatori a creare applicazioni amichevoli e professionali per utenti globali.

Prodotto dall'editore di Micro-earning Taoke System 3.0, deve essere un prodotto di alta qualità. Si prega di indicare la fonte in caso di ristampa!