التدويل في الإقلاع او التمهيد الربيع Spring Boot Internationalization
التدويل في الإقلاع او التمهيد الربيع
Spring Boot - Internationalization
التدويل هو عملية تجعل تطبيقك قابلاً للتكيف مع لغات ومناطق مختلفة دون إجراء تغييرات هندسية على الكود المصدري. في بعض الكلمات ، التدويل هو استعداد الترجمة.
في هذا الفصل ، سنتعلم بالتفصيل حول كيفية تطبيق التدويل في برنامج Spring Boot.
الاعتماديات Dependencies
نحتاج إلى اعتماد Spring Boot Starter Web و Spring Boot Starter Thymeleaf لتطوير تطبيق ويب في Spring Boot.
Maven
org.springframework.boot
Gradle
compile('org.springframework.boot:spring-boot-starter-web') compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
LocaleResolver
نحتاج إلى تحديد الإعدادات المحلية الافتراضية للتطبيق الخاص بك. نحتاج إلى إضافة حبة LocaleResolver في تطبيق Spring Boot الخاص بنا.
@Bean public LocaleResolver localeResolver() { SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver(); sessionLocaleResolver.setDefaultLocale(Locale.US); return sessionLocaleResolver; }
LocaleChangeInterceptor
LocaleChangeInterceptor يستخدم لتغيير الإعدادات المحلية الجديدة بناءً على قيمة معلمة اللغة المضافة إلى الطلب.
@Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("language"); return localeChangeInterceptor; }
لتنفيذ هذا التأثير ، نحتاج إلى إضافة LocaleChangeInterceptor إلى معترض تسجيل التطبيق. يجب على فئة التكوين توسيع فئة WebMvcConfigurerAdapter وتجاوز الأسلوب addInterceptors ().
@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); }
مصادر الرسائل Messages Sources
يأخذ تطبيق Spring Boot افتراضيًا مصادر الرسائل من مجلد src / main / resources أسفل classpath. يجب أن يكون اسم ملف رسالة الإعدادات المحلية الافتراضي هو message.properties ويجب تسمية الملفات لكل لغة باسم messages_XX.properties. يمثل "XX" الرمز المحلي.
يجب استخدام جميع خصائص الرسالة كقيم زوج المفاتيح. إذا لم يتم العثور على أي خصائص على الإعدادات المحلية ، فسيستخدم التطبيق الخاصية الافتراضية من ملف messages.properties.
سيتم عرض الرسائل الافتراضية.
welcome.text=Hi Welcome to Everyone
messages_fr.properties اللغة الفرنسية سوف
كما هو موضح -
welcome.text=Salut Bienvenue à tous
ملاحظة - يجب حفظ الملف المصدر للرسائل بتنسيق ملف "UTF-8".
ملف HTML
في ملف HTML ، استخدم بناء الجملة # {key} لعرض الرسائل من ملف الخصائص.
ويرد ركامل أدناه
Maven – pom.xml
xml version = "1.0" encoding = "UTF-8"?>
xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
Gradle – build.gradle
buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.ahmedalmahallawi' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf' testCompile('org.springframework.boot:spring-boot-starter-test') }
فيما يلي ملف فئة تطبيق Spring Boot الرئيسي -
package com.ahmedalmahallawi.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
The controller class file is given below −
package com.ahmedalmahallawi.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ViewController { @RequestMapping("/locale") public String locale() { return "locale"; } }
فئة التكوين لدعم التدويل
package com.ahmedalmahallawi.demo; import java.util.Locale; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; @Configuration public class Internationalization extends WebMvcConfigurerAdapter { @Bean public LocaleResolver localeResolver() { SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver(); sessionLocaleResolver.setDefaultLocale(Locale.US); return sessionLocaleResolver; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("language"); return localeChangeInterceptor; } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); } }
مصادر الرسائل - messages.properties كما هو موضح -
welcome.text = Hi Welcome to Everyone
مصادر الرسائل - message_fr.properties كما هو موضح -
welcome.text = Salut Bienvenue à tous
يجب وضع ملف HTML locale.html تحت دليل القوالب على classpath كما هو موضح -
charset = "ISO-8859-1"/>Internationalization
th:text = "#{welcome.text}">
يمكنك إنشاء ملف JAR قابل للتنفيذ ، وتشغيل تطبيق تمهيد Spring باستخدام أوامر Maven أو Gradle التالية -
بالنسبة إلى Maven ، استخدم الأمر التالي -
mvn clean install
بعد "BUILD SUCCESS" ، يمكنك العثور على ملف JAR ضمن الدليل الهدف.
بالنسبة إلى Gradle ، استخدم الأمر التالي -
gradle clean build
بعد "BUILD SUCCESSFUL" ، يمكنك العثور على ملف JAR ضمن دليل build / libs.
الآن ، قم بتشغيل ملف JAR باستخدام الأمر كما هو موضح -
java –jar
ستجد أن التطبيق قد بدأ تشغيله على منفذ Tomcat 8080.
الآن ، اضغط على عنوان URL http: // localhost: 8080 / الإعدادات المحلية في متصفح الويب الخاص بك ويمكنك رؤية المخرجات التالية -
عنوان URL http: // localhost: 8080 / locale؟ اللغة = fr ستمنحك المخرجات كما هو موضح -
التسميات: Spring Boot الإقلاع أو التمهيد الربيع#
<< الصفحة الرئيسية