Útmutató a nemzetközivé váláshoz a tavaszi csizmában

1. Áttekintés

Ebben a gyors bemutatóban megnézzük, hogyan tehetjük adjon nemzetközivé egy Spring Boot alkalmazást.

2. Maven-függőségek

A fejlődéshez a következő függőségre van szükségünk:

 org.springframework.boot spring-boot-starter-thymeleaf 1.5.2. KÖZLEMÉNY 

A spring-boot-starter-thymeleaf legújabb verziója letölthető a Maven Central oldalról.

3. LocaleResolver

Ahhoz, hogy alkalmazásunk meg tudja állapítani, hogy melyik területi beállítást használják jelenleg, hozzá kell adnunk a-t LocaleResolver bab:

@Bean public LocaleResolver localeResolver () {SessionLocaleResolver slr = new SessionLocaleResolver (); slr.setDefaultLocale (Locale.US); return slr; }

A LocaleResolver Az interfész olyan megvalósításokkal rendelkezik, amelyek a munkamenet, a cookie-k, a Elfogadás-Nyelv fejléc, vagy egy fix érték.

Példánkban a munkamenet-alapú megoldót használtuk SessionLocaleResolver és állítson be egy alapértelmezett területi beállítást értékkel MINKET.

4. LocaleChangeInterceptor

Ezután hozzá kell adnunk egy elfogó babot, amely a. Értéke alapján új területi beállításra vált lang egy kéréshez csatolt paraméter:

@Bean public LocaleChangeInterceptor localeChangeInterceptor () {LocaleChangeInterceptor lci = new LocaleChangeInterceptor (); lci.setParamName ("lang"); return lci; }

A hatálybalépéshez ezt a babot hozzá kell adni az alkalmazás elfogó nyilvántartásához.

Ennek elérése érdekében a mi @ Konfiguráció osztálynak végre kell hajtania a WebMvcConfigurer felületet, és felülírja a addInterceptors () módszer:

@Orride public void addInterceptors (InterceptorRegistry registry) {register.addInterceptor (localeChangeInterceptor ()); }

5. Az üzenetforrások meghatározása

Alapértelmezés szerint a Spring Boot alkalmazás megkeresi az internacionalizációs kulcsokat és értékeket tartalmazó üzenetfájlokat a src / main / resources mappába.

Az alapértelmezett területi fájl neve lesz üzenetek.tulajdonságok, és az egyes területi beállítások fájljai meg lesznek nevezve üzenetek_XX.tulajdonságok, hol XX a területi beállítás.

A lokalizálandó értékek kulcsainak minden fájlban azonosaknak kell lenniük, a megfelelő nyelvnek megfelelő értékekkel.

Ha egy kulcs nem létezik egy bizonyos kért területi beállításban, akkor az alkalmazás visszaáll az alapértelmezett területi beállításra.

Definiáljunk egy alapértelmezett üzenetfájlt az úgynevezett angol nyelvhez üzenetek.tulajdonságok:

üdvözlet = Helló! Üdvözöljük weboldalunkon! lang.change = Nyelv módosítása lang.eng = Angol lang.fr = Francia

Ezután hozzunk létre egy nevű fájlt üzenetek_fr.tulajdonságok a francia nyelv esetében ugyanazokkal a kulcsokkal:

üdvözlet = Bonjour! Bienvenue sur notre site! lang.change = Changez la langue lang.eng = angol lang.fr = Francais

6. Vezérlő és HTML oldal

Hozzunk létre egy vezérlő leképezést, amely egy egyszerű HTML oldalt ad vissza nemzetközi.html amit két különböző nyelven szeretnénk látni:

@Controller public class PageController {@GetMapping ("/ international") public String getInternationalPage () {return "international"; }}

Mivel a HTML-oldal megjelenítéséhez thymeleaf-et használunk, a területi beállításokra vonatkozó értékeket a szintaxis billentyűkkel fogjuk elérni #{kulcs}:

JSP fájlok használata esetén a szintaxis a következő:

Ha el akarjuk érni az oldalt a két különböző területtel, hozzá kell adnunk a paramétert lang az URL-re a következő formában: / international? lang = fr

Ha nem lang paraméter szerepel az URL-en, az alkalmazás az alapértelmezett területi beállítást használja, esetünkben MINKET területi beállítás.

Adjunk hozzá egy legördülő menüt a HTML oldalunkhoz azzal a két lokalizációval, amelyek neve szintén a tulajdonságfájljainkban található

:     

Ezután hozzáadhatunk egy jQuery szkriptet, amely a /nemzetközi URL a megfelelővel lang paraméter attól függően, hogy melyik legördülő menü van kiválasztva:

   $ (document) .ready (function () {$ ("# locales"). change (function () {var selectedOption = $ ('# locales'). val (); if (selectedOption! = '') {ablak .location.replace ('international? lang =' + selectedOption);}});}); 

7. Az alkalmazás futtatása

Alkalmazásunk inicializálása érdekében hozzá kell adnunk a főosztályt, amelyhez annotáltunk @SpringBootApplication:

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

A kiválasztott területtől függően az oldalt angol vagy francia nyelven fogjuk megtekinteni az alkalmazás futtatásakor.

Lássuk az angol változatot:

Most pedig lássuk a francia változatot:

8. Következtetés

Ebben az oktatóanyagban bemutattuk, hogyan használhatjuk fel a nemzetközivé válás támogatását a Spring Boot alkalmazásban.

A példa teljes forráskódja megtalálható a GitHub oldalon.


$config[zx-auto] not found$config[zx-overlay] not found