בינלאומית ב-Java או i18n ב-Java היא יכולת חשובה מאוד. Java מספקת תמיכה בבינלאומית (i18n) דרך bundles של משאבים.
בינלאומית ב-Java
כדי להפוך את היישום שלך לתומך בשפות שונות, עליך ליצור קובץ תכונות ספציפי לכל לוקל. שמות הקבצים עוקבים אחר תבנית של שם bundle עם קוד שפה וקוד מדינה, לדוגמא ApplicationMessages_en_US.properties
. לאחר שקבצי התכונות ללוקלים ספציפיים מוכנים, כל שעליך לעשות הוא לאתחל את ה-bundle של המשאב עם הלוקל הנכון. Java מספקת שני קלאסים java.util.ResourceBundle
ו-java.util.Locale
המשמשים למטרה זו. ResourceBundle קורא את קובץ התכונות הספציפי ללוקל ואפשר לקבל את הערך הספציפי ללוקל עבור כל מפתח. זה עוזר מאוד להפוך את הטקסטים ביישום האינטרנט שלך לספציפיים ללוקל, ניתן לקבל את מידע הלוקל מבקשת ה-HTTP וליצור את הדף הדינמי עם קבצי ה-bundle הספציפיים ללוקל זה. ניתן גם לספק למשתמש אפשרות לבחור את הלוקל ולעדכן את התוויות באופן דינמי.
דוגמא ל-i18n ב-Java
לדוגמה של java i18n, יצרתי פרויקט שמבנהו כמו בתמונה למטה. הנה הקוד של java עבור הכיתה JavaInternationalizationExample.
package com.journaldev.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class JavaInternationalizationExample {
public static void main(String[] args) {
//default locale
ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
//קבלת ResourceBundle עם הלוקל שכבר מוגדר
ResourceBundle bundleFR = ResourceBundle.getBundle("ApplicationMessages", Locale.FRANCE);
//קבלת ResourceBundle כאשר יש צורך ביצירת 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
ויש לי 2 ResourceBundle מיוחדים ללוקל ו-ResourceBundle אחד של ברירת מחדל. 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 ב-Java. הבינלאומיזציה ב-Java היא כלי מאוד שימושי ביישומי האינטרנט להצגת דפים בשפה ספציפית ללוקל.
Source:
https://www.digitalocean.com/community/tutorials/java-i18n-internationalization-in-java