Maison  >  Article  >  Java  >  Comment SpringBoot implémente l'internationalisation avec séparation front-end et back-end

Comment SpringBoot implémente l'internationalisation avec séparation front-end et back-end

王林
王林avant
2023-05-14 22:49:041612parcourir

Avant-propos

L'internationalisation de Springboot peut aider les utilisateurs à créer des applications dans différents environnements linguistiques, afin que les applications puissent s'adapter efficacement aux besoins des utilisateurs dans différents contextes linguistiques et culturels.

De plus, l'internationalisation de Springboot peut également faciliter la réutilisation et la maintenance d'applications multilingues, réduisant ainsi le coût du temps de déploiement du système et les coûts de maintenance.

Pour mettre en œuvre l'application internationale Springboot, il y a trois étapes principales.

1. Définir des fichiers de propriétés internationaux

Définissez des fichiers de ressources internationaux, utilisez des fichiers de format de propriétés, placez différentes ressources de texte multilingues dans différents fichiers et nommez chaque fichier en utilisant les méthodes [locale] + [messages], telles que zh_CN.properties. , en_US.properties, etc. Le contenu du fichier

Comment SpringBoot implémente linternationalisation avec séparation front-end et back-end

message.properties peut être vide.

exemple de contenu message.en_US.properties :

40001=Bonjour

message.zh_CN.properties exemple de contenu :

40001=Bonjour

2 Créer un analyseur et un intercepteur

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. . Ajoutez ce qui suit. contenu aux paramètres du fichier de configuration de démarrage

application.properties

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

Ajoutez le contenu suivant à application.yml

spring: 
  messages:
    basename: i18n/messages

4 Exemple de contrôleur

L'internationalisation de Springboot est implémentée via un bean appelé "messageSource".

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. Résumé

L'internationalisation de Springboot peut aider les utilisateurs à créer des applications dans différents environnements linguistiques, afin que les applications puissent s'adapter efficacement aux besoins des utilisateurs dans différents contextes linguistiques et culturels.

De plus, l'internationalisation de Springboot peut également faciliter la réutilisation et la maintenance d'applications multilingues, réduisant ainsi le coût du temps de déploiement du système et les coûts de maintenance. Pour implémenter l’application internationale Springboot, il y a trois étapes principales.

1. Définir des fichiers de propriétés internationaux : pour mettre en œuvre l'internationalisation de Springboot, vous devez d'abord préparer une série de fichiers de propriétés internationaux, y compris des informations sur la langue et la région.

2. Enregistrez les ressources de messages internationalisées : enregistrez les informations de langue et de région dans le fichier de propriétés dans l'application Springboot et spécifiez les valeurs par défaut afin que vous puissiez accéder rapidement et efficacement aux ressources de propriétés associées lors de l'expansion vers plusieurs langues.

3. Définir des fichiers de bundle multilingues : combinez les fichiers de propriétés d'internationalisation définis avec l'application pour former un fichier de bundle multilingue afin que la version linguistique de l'application puisse être ajustée à temps lorsque l'utilisateur sélectionne une langue différente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer