LanguageSwitcher
परिचय
LanguageSwitcher विजेट आपके Nylo Website प्रोजेक्ट्स में भाषा बदलने को हैंडल करने का एक आसान तरीका प्रदान करता है। यह स्वचालित रूप से आपकी /lang डायरेक्टरी में उपलब्ध भाषाओं का पता लगाता है और उन्हें यूज़र को दिखाता है।
LanguageSwitcher क्या करता है?
- आपकी
/langडायरेक्टरी से उपलब्ध भाषाएँ दिखाता है - जब यूज़र कोई भाषा चुनता है तो ऐप की भाषा बदल देता है
- ऐप रीस्टार्ट होने पर भी चुनी हुई भाषा बनी रहती है
- भाषा बदलने पर UI स्वचालित रूप से अपडेट होता है
नोट: यदि आपका ऐप अभी तक लोकलाइज़्ड नहीं है, तो इस विजेट का उपयोग करने से पहले Localization डॉक्यूमेंटेशन में जानें कि यह कैसे करें।
ड्रॉपडाउन विजेट
LanguageSwitcher का उपयोग करने का सबसे सरल तरीका आपके ऐप बार में ड्रॉपडाउन के रूप में है:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Settings"),
actions: [
LanguageSwitcher(), // Add to the app bar
],
),
body: Center(
child: Text("Hello World".tr()),
),
);
}
जब यूज़र ड्रॉपडाउन पर टैप करता है, तो उसे उपलब्ध भाषाओं की एक लिस्ट दिखाई देगी। भाषा चुनने के बाद, ऐप स्वचालित रूप से बदल जाएगा और UI अपडेट हो जाएगा।
बॉटम शीट मोडल
आप भाषाओं को बॉटम शीट मोडल में भी दिखा सकते हैं:
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: MaterialButton(
child: Text("Change Language"),
onPressed: () {
LanguageSwitcher.showBottomModal(context);
},
),
),
);
}
बॉटम मोडल वर्तमान में चुनी गई भाषा के बगल में चेकमार्क के साथ भाषाओं की एक लिस्ट दिखाता है।
मोडल की ऊँचाई कस्टमाइज़ करना
LanguageSwitcher.showBottomModal(
context,
height: 300, // Custom height
);
कस्टम ड्रॉपडाउन बिल्डर
ड्रॉपडाउन में प्रत्येक भाषा विकल्प कैसे दिखाई देता है इसे कस्टमाइज़ करें:
LanguageSwitcher(
dropdownBuilder: (Map<String, dynamic> language) {
return Row(
children: [
Icon(Icons.language),
SizedBox(width: 8),
Text(language['name']), // e.g., "English"
// language['locale'] contains the locale code, e.g., "en"
],
);
},
)
भाषा बदलाव हैंडल करना
LanguageSwitcher(
onLanguageChange: (Map<String, dynamic> language) {
print('Language changed to: ${language['name']}');
// Perform additional actions when language changes
},
)
पैरामीटर्स
| पैरामीटर | टाइप | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
icon |
Widget? |
- | ड्रॉपडाउन बटन के लिए कस्टम आइकन |
iconEnabledColor |
Color? |
- | ड्रॉपडाउन आइकन का रंग |
iconSize |
double |
24 |
ड्रॉपडाउन आइकन का आकार |
dropdownBgColor |
Color? |
- | ड्रॉपडाउन मेनू का बैकग्राउंड रंग |
hint |
Widget? |
- | कोई भाषा न चुनी होने पर हिंट विजेट |
itemHeight |
double |
kMinInteractiveDimension |
प्रत्येक ड्रॉपडाउन आइटम की ऊँचाई |
elevation |
int |
8 |
ड्रॉपडाउन मेनू का एलिवेशन |
padding |
EdgeInsetsGeometry? |
- | ड्रॉपडाउन के चारों ओर पैडिंग |
borderRadius |
BorderRadius? |
- | ड्रॉपडाउन मेनू का बॉर्डर रेडियस |
textStyle |
TextStyle? |
- | ड्रॉपडाउन आइटम्स के लिए टेक्स्ट स्टाइल |
langPath |
String |
'lang' |
एसेट्स में भाषा फ़ाइलों का पथ |
dropdownBuilder |
Function(Map<String, dynamic>)? |
- | ड्रॉपडाउन आइटम्स के लिए कस्टम बिल्डर |
dropdownAlignment |
AlignmentGeometry |
AlignmentDirectional.centerStart |
ड्रॉपडाउन आइटम्स का अलाइनमेंट |
dropdownOnTap |
Function()? |
- | ड्रॉपडाउन आइटम पर टैप करने पर कॉलबैक |
onTap |
Function()? |
- | ड्रॉपडाउन बटन पर टैप करने पर कॉलबैक |
onLanguageChange |
Function(Map<String, dynamic>)? |
- | भाषा बदलने पर कॉलबैक |
स्टैटिक मेथड्स
वर्तमान भाषा प्राप्त करें
वर्तमान में चुनी गई भाषा प्राप्त करें:
Map<String, dynamic>? lang = await LanguageSwitcher.currentLanguage();
// Returns: {"en": "English"} or null if not set
भाषा स्टोर करें
मैन्युअली भाषा प्राथमिकता स्टोर करें:
await LanguageSwitcher.storeLanguage(
object: {"fr": "French"},
);
भाषा क्लियर करें
स्टोर की गई भाषा प्राथमिकता हटाएँ:
await LanguageSwitcher.clearLanguage();
भाषा डेटा प्राप्त करें
लोकेल कोड से भाषा जानकारी प्राप्त करें:
Map<String, String>? langData = LanguageSwitcher.getLanguageData("en");
// Returns: {"en": "English"}
Map<String, String>? langData = LanguageSwitcher.getLanguageData("fr_CA");
// Returns: {"fr_CA": "French (Canada)"}
भाषा सूची प्राप्त करें
/lang डायरेक्टरी से सभी उपलब्ध भाषाएँ प्राप्त करें:
List<Map<String, String>> languages = await LanguageSwitcher.getLanguageList();
// Returns: [{"en": "English"}, {"es": "Spanish"}, ...]
बॉटम मोडल दिखाएँ
भाषा चयन मोडल दिखाएँ:
await LanguageSwitcher.showBottomModal(context);
// With custom height
await LanguageSwitcher.showBottomModal(context, height: 400);
समर्थित लोकेल्स
LanguageSwitcher विजेट मानव-पठनीय नामों के साथ सैकड़ों लोकेल कोड्स को सपोर्ट करता है। कुछ उदाहरण:
| लोकेल कोड | भाषा का नाम |
|---|---|
en |
English |
en_US |
English (United States) |
en_GB |
English (United Kingdom) |
es |
Spanish |
fr |
French |
de |
German |
zh |
Chinese |
zh_Hans |
Chinese (Simplified) |
ja |
Japanese |
ko |
Korean |
ar |
Arabic |
hi |
Hindi |
pt |
Portuguese |
ru |
Russian |
पूर्ण सूची में अधिकांश भाषाओं के क्षेत्रीय वेरिएंट्स शामिल हैं।