यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
अंतर्राष्ट्रीयकरण (i18n)
विभाजन स्पष्ट है: फ़ॉर्मेटिंग स्वचालित है (LocaleFormats), टेक्स्ट का अनुवाद मैन्युअल है
(आप)। कौन सा कहाँ है यह जानना उस API को ढूँढने से बचाता है जो मौजूद नहीं है।
स्वचालित फ़ॉर्मेटिंग — LocaleFormats
LocaleFormats (dev.crossfly.util में) locale-संवेदी विभाजकों और प्रारूपों को केंद्रित करता है, और
DatePicker/TimePicker/मुद्रा मास्क द्वारा स्वचालित रूप से सम्मानित होता है:
| फ़ील्ड | प्रकार | नियंत्रित करता है |
|---|---|---|
dateFormat |
UIConstants.DateFormat |
तिथि का क्रम (DMY/MDY/YMD) |
dateSeparator |
char |
तिथि विभाजक (/, -, .) |
timeSeparator |
char |
समय विभाजक (:) |
is24Hour |
boolean |
12h बनाम 24h |
decimalSeparator |
char |
दशमलव (, या .) |
thousandsSeparator |
char |
हज़ार |
weekStart |
byte |
सप्ताह का पहला दिन |
LocaleFormats.decimalSeparator = ',';
LocaleFormats.thousandsSeparator = '.';
LocaleFormats.is24Hour = true;
// यहाँ से, मुद्रा मास्क और pickers पहले से ही pt-BR मानक में फ़ॉर्मेट करते हैं
टेक्स्ट का अनुवाद — मैन्युअल
कोई अंतर्निहित स्ट्रिंग कैटलॉग नहीं है। अपने टेक्स्ट को बाहरी बनाएँ (एक अपना Map/enum) और भाषा के अनुसार
बदलें:
enum Idioma { PT, EN }
static Idioma idioma = Idioma.PT;
static final Map<String, Map<Idioma,String>> T = Map.of(
"salvar", Map.of(Idioma.PT, "Salvar", Idioma.EN, "Save"),
"cancelar", Map.of(Idioma.PT, "Cancelar", Idioma.EN, "Cancel")
);
static String t(String chave) { return T.get(chave).get(idioma); }
// उपयोग:
new Button(t("salvar"));
महीनों/दिनों के नाम और pickers के लेबल सार्वजनिक फ़ील्ड हैं जिन्हें आप स्थानीयकृत करने के लिए पुनः-असाइन करते हैं।
लेआउट पहले से क्यों मदद करता है
अंश/Relative द्वारा लेआउट भाषाओं के बीच अलग-अलग लंबाई के टेक्स्ट (“Salvar” बनाम
“Enregistrer”) को बिना टूटे सहन करते हैं — निश्चित चौड़ाई का उपयोग न करने का एक और लाभ।
अच्छी प्रथाएँ
- उपयोगकर्ता के locale के अनुसार bootstrap में
LocaleFormatsको एक बार कॉन्फ़िगर करें। - शुरू से ही सभी दृश्य टेक्स्ट को बाहरी बनाएँ (बाद में रेट्रोफ़िट करना महँगा है)।
- सबसे “चौड़ी” भाषाओं का परीक्षण करें ताकि यह सुनिश्चित हो सके कि लेआउट उन्हें समेट सके।
आम गलतियाँ
- अंतर्निहित स्ट्रिंग सिस्टम/
R.stringढूँढना — यह मौजूद नहीं है; अपना बनाएँ। LocaleFormats.dateSeparatorका उपयोग करने के बजाय तिथि में/को हार्डकोड करना।