क्या phte में वेबसाइट को स्थानीयकृत करने का सबसे अच्छा तरीका है? मैं किसी भी ढांचे का उपयोग नहीं कर रहा हूं, और अंग्रेजी में केवल दो हल्के अलग-अलग संस्करणों का अनुवाद करने के लिए कई शब्द नहीं हैं।phte में वेबसाइट को स्थानीयकृत करने का सबसे अच्छा तरीका Gettext है? (केवल हल्के स्थानीयकरण की आवश्यकता है)
उत्तर
तुम सिर्फ अपने आवेदन में एक lang_XX.php
उपयोग करें और यह शामिल कर सकते हैं।
$lang = array(
"welcome" => "Welcome",
"bye" => "Bye"
);
अन्य भाषाओं के लिए, lang_fr.php
कहते हैं, ठीक वैसे ही जैसा कुछ है: एक छोटे से उपयोग के मामले के लिए
$lang = array(
"welcome" => "Accueil",
"bye" => "Au revoir"
);
, इस ठीक हो और .po
फाइलों के साथ जाने के लिए कोई जरूरत नहीं करना चाहिए। इसके अलावा, आप इसे इस तरह परिभाषित कर सकते हैं:
function _($l)
{
return $lang[$l];
}
स्थिर सामग्री के लिए जो कभी भी बेहद कम/कभी नहीं बदलता है, सुनिश्चित करें।
गतिशील सामग्री के लिए, थोड़ी सी नहीं। .po फाइलों को संकलित करना शीर्ष पर है, और मैं कैश किए गए संकलित टेम्पलेट्स के साथ किसी प्रकार का JSON या XML समाधान और टेम्पलेटिंग का सुझाव दूंगा।
आप आप से क्या मतलब है पर विस्तार किया जा सका है "पुलिस फाइलों संकलन तरीका है नहीं है सबसे ऊपर"? – dsas
मेरे लिए यह स्थिर सामग्री का एक मामला है। –
अभिनय की दृष्टि से, gettext
Extension एक स्ट्रिंग-सरणी कि स्थानीय पाठ करने के लिए स्ट्रिंग आईडी की तरह नक्शे का उपयोग कर की तुलना में तेजी है (उदाहरण के "WelcomeText" => "Welcome to our homepage."
के लिए कुछ <?= $strings["WelcomeText"] >
का उपयोग कर शामिल किया जाएगा। Gettext का शुद्ध पीएचपी कार्यान्वयन में धीमी और अगर आप की सिफारिश नहीं की है PHP एक्सटेंशन का उपयोग कर सकते हैं। अधिक जानकारी यहां Localizing PHP web sites using gettext और Benchmarking PHP Localization – Is gettext fast enough?
गेटटेक्स्ट सबसे अच्छा तरीका है। कुछ तारों वाली एक छोटी सी साइट के लिए जो पहले से पोस्ट किए गए समाधानों के समान कुछ लागू करने की उम्मीद नहीं है, वास्तव में गेटटेक्स्ट का उपयोग करने और इसे कॉन्फ़िगर करने के तरीके से सीखने से जल्दी हो सकता है।
tl; डॉ:
लोग एक अनुवाद प्रणाली है कि काम करता है, आप खर्च कर सकते हैं उम्र फिर से खोज करने कि पहिया, या आप जबकि एक छोटे से खर्च कैसे gettext का उपयोग करना सीख सकता है बनाने के लिए कई वर्षों से कठिन सोच कर दिया गया है ।
ओपन सोर्स वर्ल्ड में, गेटटेक्स्ट व्यावहारिक रूप से एक वास्तविक तथ्य है।
यहाँ कुछ कारण हैं gettext अनुवाद सरणियों की बड़ी सूचियों को बनाए रखने के सामान्य विकल्प की तुलना में बेहतर
- यह है तेजी से
- यह धागा प्रति एक बार स्मृति में हर एक स्ट्रिंग लोड हो रहा है की आवश्यकता नहीं है
- इसमें पीएडिट जैसे अनुवादकों के लिए बहुत सारे टूल समर्थन हैं, इसलिए आप अपने अनुवादकों पर निर्भर नहीं हैं कि PHP कोड को कैसे संपादित किया जाए।
- यह बहुत आगे आप के लिए उपकरण समर्थन, msgmerge और है, इसका मतलब यह है कि आप अपने फ़ाइल बंद भेज सकते हैं अभी भी काम और नए अनुवाद पाठ जोड़ने और उन्हें आसानी से वापस एक साथ विलय करते समय
- अनुवादक के लिए एक टिप्पणी देने के लिए की आवश्यकता अनुवाद किया जाना है एक स्ट्रिंग के संदर्भ के बारे में? गेटटेक्स्ट उस कोड से एक टिप्पणी लेगा जहां इसका उपयोग किया जाता है और इसे अनुवाद फ़ाइल में कॉपी करें
- अनुवाद कुंजी अंग्रेजी पाठ है, अगर इसका अनुवाद अभी तक नहीं किया गया है तो टेक्स्ट अभी भी सादे अंग्रेजी में प्रदर्शित होता है, इनमें से कोई भी इस उत्तर पर दिए गए समाधान इस अधिकार को प्राप्त करते हैं।
- यह स्ट्रिंग का समर्थन करता है, यदि एक स्ट्रिंग एक पूर्णांक पर निर्भर करती है, तो अंग्रेजी में केवल दो रूप
if n != 1 "There was a person" else "There were n people"
हैं। अन्य भाषाओं के लिए नियम के रूप में सरल रूप में अगर (एन! = 1), रूसी 3 अलग-अलग रूपों है और शासनn%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;
+1 एक साधारण साइट के लिए अच्छा समाधान – Tchoupi
हालांकि समाधान अच्छा है, फिर भी मैं गेटटेक्स्ट रूट जाने की अनुशंसा करता हूं। आप कभी नहीं जानते कि आपकी साइट कहां जा रही है। यह तेजी से हो सकता है और आपको अतिरिक्त भाषाएं जोड़ने की आवश्यकता हो सकती है। गेटटेक्स्ट को इस प्रस्तावित समाधान – eakkas
की तुलना में लागू करने में काफी समय नहीं लगेगा, यह भी अच्छा है कि @NatlsGleek इस तरह से अनुवाद फ़ाइलों को –