Java i18n – בינלאומיות ב-Java

בינלאומית ב-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