Heim  >  Artikel  >  Java  >  Wie SpringBoot die Internationalisierung mit Front-End- und Back-End-Trennung umsetzt

Wie SpringBoot die Internationalisierung mit Front-End- und Back-End-Trennung umsetzt

王林
王林nach vorne
2023-05-14 22:49:041659Durchsuche

Vorwort

Die Springboot-Internationalisierung kann Benutzern dabei helfen, Anwendungen in verschiedenen Sprachumgebungen zu erstellen, sodass sich Anwendungen effektiv an Benutzeranforderungen in unterschiedlichen Sprachen und kulturellen Hintergründen anpassen können.

Darüber hinaus kann die Springboot-Internationalisierung auch die Wiederverwendung und Wartung mehrsprachiger Anwendungen erleichtern und so den Zeitaufwand für die Systembereitstellung und die Wartungskosten senken.

Um die internationale Springboot-Anwendung zu implementieren, gibt es drei Hauptschritte.

1. Legen Sie internationale Eigenschaftendateien fest.

Definieren Sie internationale Ressourcendateien, verwenden Sie Eigenschaftenformatdateien, fügen Sie verschiedene mehrsprachige Textressourcen in verschiedene Dateien ein und benennen Sie jede Datei mit den Methoden [locale] + [messages], z. B. zh_CN.properties , en_US.properties usw.

Wie SpringBoot die Internationalisierung mit Front-End- und Back-End-Trennung umsetzt

Der Inhalt der Datei message.properties kann leer sein.

message.en_US.properties Inhaltsbeispiel:

40001=Hallo

message.zh_CN.properties Inhaltsbeispiel:

40001=Hallo

2. Erstellen Sie einen Parser und einen Interceptor

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import java.util.Locale;

@Configuration
public class LocaleConfig {

	@Bean
	public SessionLocaleResolver localeResolver() {
		SessionLocaleResolver localeResolver = new SessionLocaleResolver();
		localeResolver.setDefaultLocale(Locale.CHINA);
		return localeResolver;
	}
	
	@Bean
	public WebMvcConfigurer localeInterceptor() {
		return new WebMvcConfigurer() {
			@Override
			public void addInterceptors(InterceptorRegistry registry) {
				LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
				localeInterceptor.setParamName("lang");
				registry.addInterceptor(localeInterceptor);
			}
		};
	}
}

3. Fügen Sie Folgendes hinzu Inhalt zu den Einstellungen der Startkonfigurationsdatei

application.properties

#i18n
spring.messages.basename=i18n.messages
spring.messages.cache-duration=3600
spring.messages.encoding=UTF-8

Fügen Sie den folgenden Inhalt zu application.yml hinzu

spring: 
  messages:
    basename: i18n/messages

4. Controller-Beispiel

Die Internationalisierung von Springboot wird durch eine Bean namens „messageSource“ implementiert.

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

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

@RestController
@RequestMapping("/test")
public class TestControler {

	@Autowired
	private MessageSource messageSource;
	
	@GetMapping("/hello")
	public Map<Object, Object> test() {
		Map<Object, Object> result = new HashMap<Object, Object>();
		result.put("code", 40001);
		result.put("msg", messageSource.getMessage("40001", null, LocaleContextHolder.getLocale()));
		return result;
	}

}

5. Zusammenfassung

Die Springboot-Internationalisierung kann Benutzern dabei helfen, Anwendungen in verschiedenen Sprachumgebungen zu erstellen, sodass sich Anwendungen effektiv an Benutzeranforderungen in verschiedenen Sprachen und kulturellen Hintergründen anpassen können.

Darüber hinaus kann die Springboot-Internationalisierung auch die Wiederverwendung und Wartung mehrsprachiger Anwendungen erleichtern und so den Zeitaufwand für die Systembereitstellung und die Wartungskosten senken. Um die internationale Springboot-Anwendung zu implementieren, gibt es drei Hauptschritte.

1. Legen Sie internationale Eigenschaftendateien fest: Um die Springboot-Internationalisierung zu implementieren, müssen Sie zunächst eine Reihe internationaler Eigenschaftendateien vorbereiten, einschließlich Sprach- und Regionsinformationen.

2. Registrieren Sie internationalisierte Nachrichtenressourcen: Registrieren Sie die Sprach- und Regionsinformationen in der Eigenschaftendatei in der Springboot-Anwendung und geben Sie Standardwerte an, damit Sie bei der Erweiterung auf mehrere Sprachen schnell und effizient auf verwandte Eigenschaftsressourcen zugreifen können.

3. Definieren Sie mehrsprachige Bundle-Dateien: Kombinieren Sie die definierten Internationalisierungseigenschaftsdateien mit der Anwendung, um eine mehrsprachige Bundle-Datei zu bilden, damit die Sprachversion der Anwendung rechtzeitig angepasst werden kann, wenn der Benutzer eine andere Sprache auswählt.

Das obige ist der detaillierte Inhalt vonWie SpringBoot die Internationalisierung mit Front-End- und Back-End-Trennung umsetzt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen