मैं एक पुलिस और एक फ़ोल्डर जिसका पता /स्थानीय/nld_nld/LC_MESSAGES/ है में एक मो फ़ाइल है। दोनों फाइलों के नाम संदेश हैं।पीएचपी के साथ पीओ/पॉट फाइलों का उपयोग कैसे करें?
try.php:
<?php
require_once("Localization.php");
echo _("Hello World!");
?>
Localization.php यहाँ जाता है:
<?php
$locale = "nld_nld";
if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", 'UTF-8');
textdomain("messages");
?>
दोनों try.php और स्थानीयकरण फ़ाइलें हैं मैं निम्नलिखित कोड का उपयोग करने की कोशिश कर रहा है एक ही निर्देशिका में। इसके अलावा, मैं xampp
का उपयोग करता हूं। मैंने phpinfo();
भी लागू किया। तालिका में, 'गेटटेक्स्ट सपोर्ट' के सामने, सक्षम किया गया था। messages.po और messages.mo फ़ाइलें मान्य फ़ाइलें जो मैं poedit उपयोग कर बनाई गई है। मैं एक विंडोज उपयोगकर्ता हूँ। हालांकि, जब मैंने try.php खोला, तो उसने बस हैलो वर्ल्ड को प्रतिबिंबित किया! (नहीं अपने अनुवादित स्ट्रिंग। इसके अलावा, मैं पुलिस फ़ाइल 100% (poEdit
के अनुसार)। फिर भी, मैं परिणाम नहीं मिल रहा है अनुवाद किया है। इस पर एक छोटी सी मदद की सराहना की जाएगी।
धन्यवाद ! अग्रिम में
textdomain() आम तौर पर पिछले समारोह कॉल (वास्तव में यह पहले हर उर्फ gettext की आवश्यकता हो सकती है _() कहते हैं यदि आप एकाधिक डोमेन के साथ काम करते हैं।सबसे पहले आप सभी डोमेन बांधते हैं, फिर आप एक का चयन करते हैं। – eckes
आपके उदाहरण में आप दो अलग-अलग डोमेन नाम 'es' और 'message-es' का उपयोग करते हैं। यह काम नहीं कर सकता है (और आमतौर पर आपके पास फ़ाइल नाम में भाषा पहचानकर्ता नहीं है क्योंकि इसे इसके बजाय निर्देशिका द्वारा परिभाषित किया गया है)। तो "/full/path/here/application/locale/es_ES/LC_MESSAGES/messages.mo" डोमेन "संदेश" और LC_TYPE es_ES का फ़ाइल नाम होगा। – eckes