मैं प्रतिक्रिया, i18next
और i18next-browser-languagedetector
का उपयोग कर बहुभाषी अनुप्रयोग विकसित कर रहा हूं।प्रतिक्रिया i18next और भाषा बदलने का सही तरीका
मैं निम्नलिखित तरीके i18next प्रारंभ:
i18n
.use(LanguageDetector)
.init({
lng: localStorage.getItem(I18N_LANGUAGE) || "pt",
fallbackLng: "pt",
resources: {
en: stringsEn,
pt: stringsPt
},
detection: {
order: ["localStorage", "navigator"],
lookupQuerystring: "lng",
lookupLocalStorage: I18N_LANGUAGE,
caches: ["localStorage"]
}
});
export default i18n;
और मुझे लगता है कि सिर्फ तुम क्या उपयोगकर्ता चुना localStorage
में मूल्य में परिवर्तन एक भाषा चयनकर्ता लागू किया है।
क्या यह करने का सही तरीका है?
मैं पूछता हूं क्योंकि यह काम करता है, मुझे लगता है कि मैं localStorage.getItem(I18N_LANGUAGE) || "pt"
सेट करके "धोखाधड़ी" कर रहा हूं और मैं भाषा पहचान का उपयोग नहीं कर रहा हूं जैसा मुझे करना चाहिए।
मैं एक ही समस्या को हल करने की कोशिश कर रहा हूं और दो समाधान ढूंढ चुका हूं। सबसे पहले: आप लोकेल को url पैरामीटर (: locale \ you_url) के रूप में स्टोर कर सकते हैं जैसे [this] (https://alicoding.com/language-code-url-in-react-intl/)। दूसरा स्थानीय संस्करण या कुकीज़ में आपका संस्करण - स्टोर लोकेल है। मैं आपके जैसा ही करना चाहता हूं, लेकिन i18next को चाबियाँ नहीं मिलती हैं। क्या आप एक उदाहरण लिख सकते हैं या अपना कोड साझा कर सकते हैं? –
हमने लोकलॉरेज में लोकेल सेट करना चुना है। आपका क्या मतलब है 'i18next' कुंजी नहीं मिलती है? मैं वैसे भी 'प्रतिक्रिया-i18next' का उपयोग कर रहा हूँ। चेक करें: https://gist.github.com/pteixeira/4a75160ca15e3edf6975 मैं भी एक भाषा चयनकर्ता घटक है कि भाषा के मूल्य के साथ localStorage प्रविष्टि सेट जब यह initializes एक डिफ़ॉल्ट मान या क्या के लिए जाँच की है उपयोगकर्ता खो देता है। – pteixeira
धन्यवाद, यह मेरे लिए वास्तव में उपयोगी है। एक और सवाल: रनटाइम में भाषा बदलने का कोई तरीका है? –