मैं ज़ेंड फ्रेमवर्क (जर्मन और अंग्रेजी) के साथ एक बहुभाषी परियोजना पर काम कर रहा हूं जहां मेरे पास उत्पाद का ऑर्डर करने के लिए एक छोटा सा रूप है। उपयोगकर्ता सक्षम करने के लिए किया जाना चाहिए: उत्पाद की कीमतों के लिएमुद्राओं और भाषा स्विच के साथ स्थानीय लोगों को संभालने का सर्वोत्तम अभ्यास
- बदलें अपने पसंदीदा मुद्रा
- बदलें पूरी वेबसाइट
फिलहाल के लिए अपने पसंदीदा भाषा का उपयोग मैं Zend_Locale :: findLocale() के लिए उपयोगकर्ता का लोकेल प्राप्त करें। मेरी ब्राउज़र सेटिंग्स के साथ मुझे 'de_CH' मिलता है और यह अच्छी तरह से काम करता है।
- उपयोगकर्ता अपने ब्राउज़र बस मुझे भाषा कोड ('डी' 'de_CH' के बजाय)
- उपयोगकर्ता एक भाषा है जो समर्थित नहीं है पसंद देने के लिए कॉन्फ़िगर किया है: लेकिन वहाँ कुछ समस्याओं जैसे ही हैं मेरी वेबसाइट द्वारा
- उपयोगकर्ता एक देश से है, जहां वे एक मुद्रा जो अपने उत्पाद आदेश फार्म
बस भाषा कोड भाषा कोड Zend_Translate को संभालने के लिए पर्याप्त है, ख द्वारा समर्थित नहीं है मिल गया Zend_Currency को अधिक जानकारी चाहिए। मुझे लगता है कि प्रत्येक संभावित उपयोगकर्ता से देश कोड के साथ पूर्ण लोकेल प्राप्त करने का कोई समाधान नहीं है। मेरा सवाल है: आप इन परिस्थितियों को कैसे संभालेंगे? क्या आप अपने बूटस्ट्रैप के _initLocale() में जांचते हैं यदि कोई देश कोड गुम है और डिफ़ॉल्ट देश कोड का उपयोग करता है? क्या ऐसा करने के लिए कोई ज़ेन फ्रेमवर्क विधियां हैं?
एक असमर्थित भाषा उपयोगकर्ताओं भाषा 'fr' है, मैं एक डिफ़ॉल्ट भाषा के उपयोग करने के लिए है, क्योंकि हमारी वेबसाइट फ्रेंच का समर्थन नहीं करता चाहते हैं, तो। बूटस्ट्रैप में श्वेतसूची सरणी जोड़ने की तुलना में बेहतर संभावना है? उदाहरण के लिए Zend_Translate से एक विधि?
एक असमर्थित मुद्रा यदि उपयोगकर्ता की भाषा समर्थित है, लेकिन उसकी मुद्रा नहीं है तो क्या होगा? क्या मुझे बूटस्ट्रैप में लोकेल बदलना चाहिए या क्या मुझे लोकेल की प्रतिलिपि बनाना चाहिए और इसे Zend_Currency के लिए बदलना चाहिए?
मुख्य समस्या मुझे लगता है कि मेरी मुख्य समस्या यह है कि मैं कैसे इन सभी विभिन्न वातावरण के मुद्दों को संभालने के लिए यकीन नहीं है। मेरा पसंदीदा दृष्टिकोण बूटस्ट्रैप के _initLocale() में लोकेल सेट को सत्यापित करना होगा, इसलिए मैं सुनिश्चित कर सकता हूं कि मैं इसकी भाषा और मुद्रा का समर्थन कर सकता हूं।
आपकी सलाह के लिए धन्यवाद।
सादर, निको
संपादन 1 मैं एक तरह से इन मुद्दों को संभालने के लिए के बारे में अपने आप को कुछ और विचारों को बना दिया है। इस दृष्टिकोण के बारे में आप क्या सोचते हैं?
Zend_Locale()
: सभी छोटे स्थानों (एक देश कोड के बिना) को फ़िल्टर और भाषाओं आपके एप्लिकेशन द्वारा समर्थित (सिर्फ भाषा कोड) के साथ एक श्वेत सूची का उपयोग करता है। यदि कोई मिलान नहीं है, तो अपने आवेदन द्वारा दिए गए डिफ़ॉल्ट का उपयोग करें।Zend_Translate
: लोकेल से भाषा कोड से शुरू करें।लेकिन यदि उपयोगकर्ता पसंदीदा भाषा बदलता है, तो लोकेल को छोड़ दें (शायद नए भाषा कोड और पुराने देश कोड के आधार पर कोई मेल खाने वाला लोकेल नहीं है) औरZend_Translate
में भाषा कोड बदलें।Zend_Currency
: लोकेल को डिफ़ॉल्ट के रूप में उपयोग करें। यदि उपयोगकर्ता पसंदीदा मुद्रा बदलता है, तो बस मुद्रा बदलें, न कि लोकेल। तो स्वरूपण पुराने लोकेल पर आधारित रहेगा क्योंकि मुद्रा में परिवर्तन का मतलब यह नहीं है कि उपयोगकर्ता भी अपना लोकेल बदलना चाहता है।
इस दृष्टिकोण स्वीकार्य होगा? ब्राउज़रों लोकेल इस तरह सेट कर रहे हैं, तो चरण 1 के साथ एक समस्या है: शायद आवेदन जर्मन का समर्थन नहीं करता
- डी
- en_US
, लेकिन क्योंकि यह एक छोटी स्थान, अनुप्रयोग है इसके बजाय en_US का उपयोग करेंगे। लेकिन मुझे नहीं पता कि कौन सा समाधान इस समस्या को ठीक करेगा, क्योंकि मैं एक पूर्ण लोकेल में एक छोटे से लोकेल को 'अपग्रेड नहीं कर सकता'।
मैं अगर यह मदद करता है यकीन नहीं है, लेकिन एक उपयोगकर्ता के रूप में मैं अनुप्रयोगों और वेबसाइटों है कि मेरे लिए यह पता लगाने की कोशिश मेरी भाषा पसंद नहीं। मुझे लगता है कि आपकी साइट पर भाषा बटन या ड्रॉपडाउन होना हमेशा बेहतर होता है। आपको लाभ यह है कि आपको विचित्र भाषा संयोजनों का पता लगाने की चिंता नहीं है। मैट के सुझाव पर – Matt
+1। मैं इस बात से परेशान हूं कि आप हर भाषा और मुद्रा का समर्थन क्यों करना चाहते हैं। आप शायद अपनी साइट का सबसे अधिक अनुवाद केवल 5 से 10 भाषाओं में करेंगे। तो एक लोकेल को 'पहचानने' की कोशिश कर रहा है और सही भाषा खोजने के लिए जो भी जादू की आवश्यकता है, वह अनावश्यक हो सकता है। एम्स्टर्डम से आने वाले लोगों के बारे में क्या, जो अंग्रेजी या फ्रेंच पसंद करेंगे, लेकिन आपकी साइट का पता लगाता है कि वे डच को सबसे ज्यादा समझेंगे? मैं एक भाषा/मुद्रा चयनकर्ता के लिए वोट देता हूं। चुम्मा। –
ठीक है, लेकिन पूर्ण लोकेल उत्पन्न करने में सक्षम होने के लिए उपयोगकर्ता को भी अपना देश चुनना होगा। अन्यथा मैं चुने गए मुद्रा को गलत तरीके से आउटपुट करूंगा (EUR 12.000.- उदाहरण के लिए 12'000 EUR के बजाय)। लेकिन हाँ, शायद के.आई.एस.एस. यहां सही मध्यमार्ग है ;-)। आपका सुझाव देने के लिए धन्यवाद। – Nico