Giới thiệu ngôn từ bài viết

Chào chúng ta, các bạn đã từng thấy sang 1 website rất có thể hiển thị nhiều đồ vật tiếng không giống nhau chưa ? lấy ví dụ trang lazadomain authority ví như ta lựa chọn giờ đồng hồ Việt ta đã quan sát thấytrang web là giờ đồng hồ Việt, nếu ta lựa chọn tiếng Anh thì website vẫn hiển thị giờ đồng hồ Anh? Để làm được điều đó thì ta dùng cái gì vào Spring để làm. Hôm ni anh đang giới thiệuđến gần như tín đồ bí quyết áp dụng đa ngôn ngữ i18n vào Spring.

Bạn đang xem: I18n trong spring mvc là gì? hướng dẫn tạo ứng dụng web đa ngôn ngữ

Hiểu về có mang đa ngôn ngữ

Đa ngữ điệu là gì ? Anh lấy ví như đầy đủ người làm cho website bán hàng. Đối với người toàn nước thì mình người tiêu dùng sẽ chọn ngữ điệu toàn nước trên trang web . Lúc đótoàn bộ câu chữ của trang web đang hiển thị tiếng Việt . Cũng là trang web bán hàng đó , nếu là người Mỹ vào , chúng ta đã lựa chọn ngữ điệu giờ đồng hồ Anh . Khi kia tất cả nội dung của website vẫn hiển thị giờ đồng hồ Anh.

Internationalization nhiều ngôn ngữ hoặc trong lập trình sẵn mình còn được gọi là i18n. Bởi bởi bản thân gồm 18 ký kết tự ở giữa ký trường đoản cú I với cam kết tự N.Internationalization (nước ngoài hoá) là 1 chuyên môn cho phép họ tạo thành những vận dụng cơ mà rất có thể đam mê ứng với tương đối nhiều ngôn ngữ cùng nhiều khu vực không giống nhau.

Localization cũng hoàn toàn có thể được viết tắt là l10n vì chưng 10 ký kết từ bỏ trọng điểm L cùng N. Localization (trong nước hoá) là chuyên môn giúp tạo nên một ứng dụng rất có thể ham mê ứng với cùng 1 ngôn từ và vùng miền cụ thể.vì vậy, một vận dụng hỗ trợ nhiều ngữ điệu thì gọi là Internationalization (thế giới hoá) cùng Lúc người tiêu dùng lựa chọn một ngôn ngữ rõ ràng để hiển thị thì Call là Localization (trong nước hoá).

1. Hướng dẫn phương pháp làm cho đa ngôn ngữ

Bây giờ chúng ta sẽ đi từng bước để làm một ứng dụng nhiều ngữ điệu trong Spring. Tại bài bác này mình đang tạo nên tiếng Anh và giờ đồng hồ Việt .Nào ban đầu thôi .

Cách 1 : Thêm dependency spring boot vào file pom.xml

12345dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-thymeleafartifactId> version>1.5.2.RELEASEversion>dependency>

Cách 2 Cấu hình LocaleResolver

Cấu hình tệp tin LocaleResolver nhằm vận dụng có thể hiểu rằng locale (giờ Mỹ , giờ đồng hồ Việt giỏi giờ Pháp) nhưng mà áp dụng đang thực hiện là gì ? .

123456
Beanpublic LocaleResolver localeResolver() SessionLocaleResolver slr = new SessionLocaleResolver(); slr.setDefaultLocale(Locale.US); return slr;
LocaleResolver interface có chức năng xác định được ngôn ngữ nào đã áp dụng bởi vì nó gồm setup chức năng xác minh localedựa trên session , cookie , Accept-Language , hoặc các quý giá mình thêm trên header của request.

Trong ví dụ của họ mình đã thực hiện Session để đổi khác hỗ tương các ngôn ngữ .

Xem thêm: Tổng Thư Ký Liên Hợp Quốc Mới Là Ai, António Guterres

Cách 3 thông số kỹ thuật LocaleChangeInterceptor

Tiếp theo , chúng ta đề nghị thêm một Interceptor bao gồm trọng trách thay đổi qua lại giữa các locale bắt đầu Khi cực hiếm đổi khác.

123456
Beanpublic LocaleChangeInterceptor localeChangeInterceptor() LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); lci.setParamName("lang"); return lci;
Trong file configure
Configuration
class bọn họ implement the WebMvcConfigurer interface với override the addInterceptors() method:

1234
Overridepublic void addInterceptors(InterceptorRegistry registry) registry.addInterceptor(localeChangeInterceptor());

Cách 4 Định nghĩa ngôn từ locale vào tệp tin Message Sources

Mặc định , Spring Boot đang search kiếm các file messageresource vào thỏng mục /src/main/resources.File locale khoác định là message.properties . Các nước khác nhau thì bao gồm format tệp tin khác nhau message_XX.properties. XX là locale code của mỗi nước.Ví dụ tiếng Anh thì đã là message_en.properties , tiếng Việt đang là message_vi.properties.

Sau đấy là ví dụ tệp tin locale giờ Anh messages.properties:

greeting=Hello! Welcome to our website!lang.change=Change the languagelang.eng=Englishlang.vi=VietNam

Tiếp bọn họ sẽ tạo nên file locale giờ Việt message_vi.properties tất cả key y như tệp tin message nghỉ ngơi trên .

greeting= Xin Chào ! Chào mừng bạn mang lại cùng với websitelang.change= Tgiỏi đổi ngôn ngữlang.eng=Tiếng Anhlang.vi =Tiếng Việt

Bước 5 Tạo Controller với trang HTML

Chúng ta sẽ tạo nên controller đang mapping với request của fan dung là /international .

12345678
GetMapping("/international") public String getInternationalPage() return "international"; }
Chúng ta đang sử dụng thymeleaf nhằm hiển thị kết quả trên trang HTML .

1 th:text="#greeting">
Nếu ta mong mỏi triển khai đổi ngôn ngữ tiếng Anh quý phái giờ đồng hồ Việt thì chỉ cần thêm tham mê số lang=vi trên URL trong khung /international?lang=viNếu ta ý muốn thực hiện thay đổi ngôn ngữ tiếng Việt lịch sự giờ đồng hồ Anh thì chỉ việc thêm tsay đắm số lang=en bên trên URL trong form /international?lang=enNếu không có tsay đắm số lang bên trên URL thì áp dụng đã rước locale mặc định vào ngôi trường phù hợp này đã rước quý giá vào file message.properties.

Xem thêm: Công Ty Do Hiếu Orion Là Ai ? Tiểu Sử, Sự Nghiệp Và Tai Tiếng Của Hot Facebooker

Đây là đoạn mã thymeleaf nhằm cho tất cả những người sử dụng chọn ngôn từ. Chúng ta đã truyền cực hiếm người dùng chọn là en tốt vi lên mang đến controller từ kia ta thaythay đổi ngôn từ .

123456 th:text="#lang.change">: id="locales"> value=""> value="en" th:text="#lang.eng"> value="vi " th:text="#lang.fr">

Cách 6 Running the Application

2. Video Demo


*
Play

chúng ta cũng rất có thể làm locale mang đến webservice phần đông fan coi github này nhé

link

3. Source code

*

Mọi tín đồ hãy Subscribe kênh youtube tiếp sau đây nhé nhằm update các video clip tiên tiến nhất về kỹ thuật và kỹ năng mượt



Chuyên mục: ĐỊNH NGHĨA
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *