التدويل في الإقلاع او التمهيد الربيع Spring Boot Internationalization

التدويل في الإقلاع او التمهيد الربيع 

Spring Boot - Internationalization

التدويل في الإقلاع او التمهيد الربيع Spring Boot - Internationalization

التدويل هو عملية تجعل تطبيقك قابلاً للتكيف مع لغات ومناطق مختلفة دون إجراء تغييرات هندسية على الكود المصدري.  في بعض الكلمات ، التدويل هو استعداد الترجمة.

 في هذا الفصل ، سنتعلم بالتفصيل حول كيفية تطبيق التدويل في برنامج Spring Boot.

الاعتماديات Dependencies

نحتاج إلى اعتماد Spring Boot Starter Web و Spring Boot Starter Thymeleaf لتطوير تطبيق ويب في Spring Boot.

Maven


   org.springframework.boot
spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf

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
com.ahmedalmahallawi demo 0.0.1-SNAPSHOT jar demo Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE /> UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-maven-plugin

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"/>
      </span><span class="pln" style="color: rgb(0, 0, 0);">Internationalization</span><span class="tag" style="color: rgb(0, 0, 136);">
   

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.
Started Application on Tomcat Port_8080
الآن ، اضغط على عنوان URL http: // localhost: 8080 / الإعدادات المحلية في متصفح الويب الخاص بك ويمكنك رؤية المخرجات التالية -
Output Web Browser
عنوان URL http: // localhost: 8080 / locale؟ اللغة = fr ستمنحك المخرجات كما هو موضح -
Output Web Browser Salut Bienvenue





المشاركات الشائعة من هذه المدونة

Software Development Life Cycle دورة حياة تطوير البرمجيات او النظام

نموذج الشلال بالتفصيل دورة حياة تطوير النظام او البرمجيات SDLC Waterfall Model#