अब तक केवल 2 अच्छी चीजें जिन्हें मैंने सरणी के बजाय गेटटेक्स्ट का उपयोग करने के बारे में देखा है, मुझे यह है कि मुझे "ग्रीटिंग" "उप-सरणी" (या जिसे भी कहा जाता है) बनाना नहीं है। और मुझे "डिफ़ॉल्ट भाषा" के लिए फ़ोल्डर बनाने की ज़रूरत नहीं है।बहुभाषी वेबसाइटों में PHP गेटटेक्स्ट एक्सटेंशन बनाम PHP Arrays का उपयोग करना?
बहुभाषी वेबसाइटों के लिए गेटटेक्स्ट और PHP एरे का उपयोग करने के अन्य पेशेवर और क्या हैं?
का उपयोग gettext:
स्पेनिश/messages.po:
#: test.php:3
msgid "Hello World!"
msgstr "Hola Mundo"
index.php:
<?php echo _("Hello World!"); ?>
index.php lang = स्पेनिश:
<?php echo _("Hello World!"); ?> turns to Hola Mundo
का उपयोग कर PHP सरणियों:
lang.en.php
<?php
$lang = array(
"greeting" => "Hello World",
);
?>
lang.es.php
<?php
$lang = array(
"greeting" => "Hola Mundo",
);
?>
index.php:
<?php echo $lang['greeting']; ?> greeting turns to Hello World
index.php lang = स्पेनिश
<?php echo $lang['greeting']; ?> greeting turns to Hola Mundo
(मैं पहली बार gettext के साथ शुरू किया, लेकिन यह मेरी साझा मुक्त होस्टिंग Zymic में समर्थित नहीं किया गया था। मैं ज़ेंड_ट्रांसलेट का उपयोग नहीं करना चाहता था, मुझे अपने सरल कार्य के लिए यह बहुत जटिल पाया गया, इसलिए मैंने अंततः php define
का उपयोग करके समाप्त कर दिया, लेकिन बाद में किसी ने मुझे बताया कि मुझे सरणी का उपयोग करना चाहिए)
आप सरणियों का उपयोग कर रहे, तब भी आप printf का उपयोग कर pladeholders उपयोग कर सकते हैं और अधिक विस्तार, है ना? (आपके पास बहुवचन रूप नहीं हैं, हालांकि) – middus
हाँ आप कर सकते हैं। :) –
PHP का अपना गेटटेक्स्ट कम से कम mod_php के साथ वास्तव में flaky है। न केवल कैशिंग समस्या बल्कि कुछ ताज़ा करने पर अनुवाद सिर्फ काम नहीं करते हैं। तो प्रतिस्थापन में लगभग एक बूंद है: [php-gettext] (https://launchpad.net/php-gettext/) 'setlocale' के बजाय उपयोग करना बेहद आसान है जिसका उपयोग आप' _setlocale' 'करते हैं और इसी तरह ... – Ciantic