मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

अंतर्राष्ट्रीयकरण (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 का उपयोग करने के बजाय तिथि में / को हार्डकोड करना।

यह भी देखें

क्या यह पृष्ठ उपयोगी था?