التدويل في جافا أو جافا i18n هو ميزة مهمة جدًا. توفر جافا الدعم للتدويل (i18n) من خلال مجموعات الموارد.
التدويل في جافا
لجعل تطبيقك يدعم لغات مختلفة، نحتاج إلى إنشاء ملفات خاصة باللغات المحددة. تتبع أسماء الملفات نمطًا معينًا يتضمن اسم الحزمة ورمز اللغة ورمز البلد، على سبيل المثال ApplicationMessages_en_US.properties
. بمجرد أن تكون ملفات الخصائص الخاصة باللغات المحددة جاهزة، كل ما عليك فعله هو تهيئة مجموعة الموارد مع تعيين اللغة الصحيحة. توفر جافا صنفين هما java.util.ResourceBundle
و java.util.Locale
يستخدمان لهذا الغرض. تقوم مجموعة الموارد بقراءة ملف الخصائص الخاص باللغة المحددة ويمكنك الحصول على القيمة الخاصة باللغة المحددة لأي مفتاح. هذا مفيد جدًا في جعل نصوص تطبيق الويب الخاصة بك تعتمد على اللغة، حيث يمكنك الحصول على معلومات اللغة من طلب HTTP وإنشاء الصفحة الديناميكية باستخدام ملفات حزم الموارد ذات اللغات المحددة. يمكنك أيضًا توفير خيار للمستخدم لاختيار اللغة وتحديث التسميات بشكل ديناميكي.
مثال على التدويل في جافا
لمثال توضيحي حول i18n في جافا، قمت بإنشاء مشروع يتبع الهيكل الموضح في الصورة أدناه. إليك الشيفرة الجافا للفئة JavaInternationalizationExample.
package com.journaldev.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class JavaInternationalizationExample {
public static void main(String[] args) {
// اللغة الافتراضية
ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
// الحصول على ResourceBundle بلغة محددة بالفعل
ResourceBundle bundleFR = ResourceBundle.getBundle("ApplicationMessages", Locale.FRANCE);
// الحصول على مجموعة الموارد عند الحاجة إلى إنشاء Locale
ResourceBundle bundleSWE = ResourceBundle.getBundle("ApplicationMessages", new Locale("sv", "SE"));
// دعونا نقوم بطباعة بعض الرسائل
printMessages(bundle);
printMessages(bundleFR);
printMessages(bundleSWE);
}
private static void printMessages(ResourceBundle bundle) {
System.out.println(bundle.getString("CountryName"));
System.out.println(bundle.getString("CurrencyCode"));
}
}
اسم الحزمة هو ApplicationMessages
ولدي مجموعتين من مجموعات الموارد المحددة للغة ومجموعة افتراضية واحدة. ApplicationMessages.properties
CountryName=USA
CurrencyCode=USD
ApplicationMessages_fr_FR.properties
CountryName=France
CurrencyCode=Euro
ApplicationMessages_sv_SE.properties
CountryName=Sweden
CurrencyCode=Kr
لاحظ استخدام فئة Locale، حيث يوجد بعض اللغات المعرفة بالفعل ولكن يمكننا دائمًا إنشاء لغة جديدة عن طريق تمرير رمز اللغة ورمز البلد إلى مكونه. عند تشغيل البرنامج أعلاه، إليك الناتج.
USA
USD
France
Euro
Sweden
Kr
هذا كل شيء بالنسبة لمثال سريع حول i18n في جافا. الدولة الدولية في جافا تكون مفيدة جدا في تطبيقات الويب لتقديم الصفحات بلغة معينة.
Source:
https://www.digitalocean.com/community/tutorials/java-i18n-internationalization-in-java