2009-11-16 17 views
5

PHP में बहुभाषी एप्लिकेशन को डिज़ाइन करने के कई तरीके हैं। कुछ भाषा फ़ाइल आधारित, अन्य डेटाबेस आधारित। सबसे एक पैराग्राफ में -PHP - बहुभाषी अनुप्रयोग डिजाइन

  • मैं ज्यादातर पाठ, उदा, त्रुटियों की थोड़ी मात्रा के लिए उपयोग करने के लिए देख रहा हूँ।

  • मुझे लगता है कि मुझे बीस या तो
    भाषाओं की आवश्यकता होगी।

वास्तव में मैं एक निश्चित उत्तर के बजाय सिफारिशों की तलाश में हूं। क्या आप इससे पहले कि इस्तेमाल किया है, क्या सबसे तेज है, सबसे आसान अद्यतन करने के लिए आदि

बहुत धन्यवाद,

उत्तर

8

कार्यों का Gettext परिवार एक अच्छा प्रारंभिक बिंदु है:

gettext कार्यों को लागू एक NLS (मूल भाषा समर्थन) एपीआई जो का उपयोग आपके PHP अनुप्रयोगों को अंतर्राष्ट्रीयकृत करने के लिए किया जा सकता है।

Zend_Translate बेहद लचीला है और gettext का थ्रेड-सुरक्षित कार्यान्वयन है। मैनुअल कहा गया है कि यह देशी अंतर्राष्ट्रीयकरण कार्यान्वयन के साथ निम्न समस्याओं को हल:

  • असंगत एपीआई: वहाँ विभिन्न स्रोत प्रारूपों के लिए कोई एक एपीआई है। उदाहरण के लिए गेटटेक्स्ट का उपयोग बहुत जटिल है।
  • PHP केवल गेटटेक्स्ट और मूल सरणी का समर्थन करता है: PHP स्वयं केवल सरणी या गेटटेक्स्ट के लिए समर्थन प्रदान करता है। अन्य सभी स्रोत प्रारूपों को मैन्युअल रूप से कोडित होना चाहिए, क्योंकि मूल समर्थन नहीं है।
  • डिफ़ॉल्ट भाषा का कोई पता नहीं: की डिफ़ॉल्ट भाषा उपयोगकर्ता को के बिना विभिन्न वेब ब्राउज़र के लिए पृष्ठभूमि के गहरे ज्ञान के बिना पता नहीं लगाया जा सकता है।
  • गेटटेक्स्ट थ्रेड-सुरक्षित नहीं है: PHP की गेटटेक्स्ट लाइब्रेरी थ्रेड सुरक्षित नहीं है, और इसका उपयोग बहु-प्रसारित वातावरण में नहीं किया जाना चाहिए। यह गेटटेक्स्ट के साथ समस्याओं के कारण है, PHP नहीं, लेकिन यह एक मौजूदा समस्या है।

यह ध्यान देने योग्य है कि Zend Framework एक पूर्ण ढेर ढांचा नहीं है लायक है - दूसरे शब्दों में, आप अपनी अंतर्राष्ट्रीयकरण एपीआई का उपयोग करने के लिए बस पूरी बात का उपयोग करने की जरूरत नहीं होगी।

मुझे इसके बारे में वास्तव में क्या पसंद है multiple adapters for different data sources के लिए इसका समर्थन है, जिसे आप आसानी से मिश्रण, मिलान और बदल सकते हैं केवल आपके आवेदन में बहुत हल्के संशोधन लागू कर सकते हैं। उम्मीद है की वो मदद करदे।

0

मैंने दोनों समाधानों के साथ निपटाया। (डेटाबेस और फ्लैट फ़ाइल।) लेकिन मैं आपको एक और दृश्य कोण दूंगा। जब आप अपना एप्लिकेशन या सॉफ़्टवेयर डिज़ाइन करते हैं तो एक और महत्वपूर्ण बिंदु है जिसे आपको शुरुआत से ही सोचना चाहिए।आप अपनी भाषा वस्तुओं को डेटाबेस और फ्लैट फ़ाइल में सहेज लेंगे। डेटाबेस (या तालिका) और पाठ फ़ाइल का भाषा समर्थन महत्वपूर्ण है। यदि आप लैटिन 1 डेटाबेस में तुर्की वर्ण रखने की कोशिश करते हैं तो आपको कुछ समस्याएं वर्णित होंगी। तुर्की एक उदाहरण है। डेटाबेस को आपकी भाषा वस्तु के पात्रों का समर्थन करना चाहिए।

संबंधित मुद्दे